@mui/x-data-grid 6.7.0 → 6.9.0

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 (205) hide show
  1. package/CHANGELOG.md +145 -5541
  2. package/components/GridColumnHeaders.d.ts +2 -2
  3. package/components/GridColumnHeaders.js +3 -1
  4. package/components/GridPagination.d.ts +2 -2
  5. package/components/GridRow.d.ts +2 -2
  6. package/components/GridRow.js +33 -79
  7. package/components/cell/GridCell.d.ts +24 -15
  8. package/components/cell/GridCell.js +422 -45
  9. package/components/cell/GridEditInputCell.js +9 -9
  10. package/components/cell/index.d.ts +2 -1
  11. package/components/cell/index.js +1 -1
  12. package/components/containers/GridRootStyles.js +30 -16
  13. package/components/menu/columnMenu/GridColumnHeaderMenu.js +1 -1
  14. package/components/panel/GridPanel.d.ts +1 -1
  15. package/components/toolbar/GridToolbar.js +2 -2
  16. package/components/virtualization/GridVirtualScroller.js +4 -9
  17. package/components/virtualization/GridVirtualScrollerContent.js +11 -20
  18. package/constants/defaultGridSlotsComponents.js +6 -2
  19. package/hooks/core/useGridApiInitialization.js +4 -1
  20. package/hooks/core/useGridStateInitialization.js +2 -9
  21. package/hooks/features/clipboard/useGridClipboard.js +1 -4
  22. package/hooks/features/columnGrouping/gridColumnGroupsSelector.js +4 -4
  23. package/hooks/features/columnHeaders/useGridColumnHeaders.js +9 -3
  24. package/hooks/features/columns/gridColumnsSelector.js +7 -7
  25. package/hooks/features/dimensions/useGridDimensions.js +6 -12
  26. package/hooks/features/editing/useGridCellEditing.js +5 -3
  27. package/hooks/features/editing/useGridRowEditing.js +14 -6
  28. package/hooks/features/filter/gridFilterSelector.js +8 -8
  29. package/hooks/features/filter/gridFilterUtils.d.ts +4 -1
  30. package/hooks/features/filter/gridFilterUtils.js +19 -13
  31. package/hooks/features/filter/useGridFilter.js +2 -1
  32. package/hooks/features/focus/useGridFocus.js +9 -4
  33. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -3
  34. package/hooks/features/pagination/gridPaginationSelector.js +4 -4
  35. package/hooks/features/rowSelection/gridRowSelectionSelector.js +3 -3
  36. package/hooks/features/rows/gridRowsSelector.js +3 -3
  37. package/hooks/features/rows/useGridParamsApi.d.ts +2 -0
  38. package/hooks/features/rows/useGridParamsApi.js +7 -15
  39. package/hooks/features/sorting/gridSortingSelector.js +3 -3
  40. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +8 -816
  41. package/hooks/features/virtualization/useGridVirtualScroller.js +40 -38
  42. package/hooks/utils/index.d.ts +1 -1
  43. package/hooks/utils/index.js +1 -1
  44. package/hooks/utils/useGridSelector.d.ts +3 -1
  45. package/hooks/utils/useGridSelector.js +37 -6
  46. package/hooks/utils/useLazyRef.d.ts +2 -0
  47. package/hooks/utils/useLazyRef.js +9 -0
  48. package/hooks/utils/useOnMount.d.ts +2 -0
  49. package/hooks/utils/useOnMount.js +7 -0
  50. package/index.js +1 -1
  51. package/internals/index.d.ts +1 -1
  52. package/internals/index.js +1 -1
  53. package/legacy/components/GridColumnHeaders.js +3 -1
  54. package/legacy/components/GridRow.js +35 -79
  55. package/legacy/components/cell/GridCell.js +425 -46
  56. package/legacy/components/cell/GridEditInputCell.js +9 -9
  57. package/legacy/components/cell/index.js +1 -1
  58. package/legacy/components/containers/GridRootStyles.js +20 -17
  59. package/legacy/components/menu/columnMenu/GridColumnHeaderMenu.js +1 -1
  60. package/legacy/components/toolbar/GridToolbar.js +2 -2
  61. package/legacy/components/virtualization/GridVirtualScroller.js +4 -7
  62. package/legacy/components/virtualization/GridVirtualScrollerContent.js +10 -17
  63. package/legacy/constants/defaultGridSlotsComponents.js +6 -2
  64. package/legacy/hooks/core/useGridApiInitialization.js +4 -1
  65. package/legacy/hooks/core/useGridStateInitialization.js +2 -7
  66. package/legacy/hooks/features/clipboard/useGridClipboard.js +1 -4
  67. package/legacy/hooks/features/columnGrouping/gridColumnGroupsSelector.js +4 -4
  68. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +9 -3
  69. package/legacy/hooks/features/columns/gridColumnsSelector.js +7 -7
  70. package/legacy/hooks/features/dimensions/useGridDimensions.js +6 -12
  71. package/legacy/hooks/features/editing/useGridCellEditing.js +5 -3
  72. package/legacy/hooks/features/editing/useGridRowEditing.js +15 -7
  73. package/legacy/hooks/features/filter/gridFilterSelector.js +8 -8
  74. package/legacy/hooks/features/filter/gridFilterUtils.js +23 -19
  75. package/legacy/hooks/features/filter/useGridFilter.js +2 -1
  76. package/legacy/hooks/features/focus/useGridFocus.js +9 -4
  77. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -3
  78. package/legacy/hooks/features/pagination/gridPaginationSelector.js +4 -4
  79. package/legacy/hooks/features/rowSelection/gridRowSelectionSelector.js +3 -3
  80. package/legacy/hooks/features/rows/gridRowsSelector.js +3 -3
  81. package/legacy/hooks/features/rows/useGridParamsApi.js +23 -15
  82. package/legacy/hooks/features/sorting/gridSortingSelector.js +3 -3
  83. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +38 -34
  84. package/legacy/hooks/utils/index.js +1 -1
  85. package/legacy/hooks/utils/useGridSelector.js +43 -5
  86. package/legacy/hooks/utils/useLazyRef.js +9 -0
  87. package/legacy/hooks/utils/useOnMount.js +7 -0
  88. package/legacy/index.js +1 -1
  89. package/legacy/internals/index.js +1 -1
  90. package/legacy/locales/elGR.js +70 -79
  91. package/legacy/locales/ptBR.js +12 -13
  92. package/legacy/utils/Store.js +34 -0
  93. package/legacy/utils/createSelector.js +74 -6
  94. package/legacy/utils/doesSupportPreventScroll.js +13 -0
  95. package/legacy/utils/fastMemo.js +5 -0
  96. package/legacy/utils/fastObjectShallowCompare.js +32 -0
  97. package/legacy/utils/keyboardUtils.js +4 -2
  98. package/locales/elGR.js +66 -79
  99. package/locales/ptBR.js +12 -13
  100. package/models/api/gridCoreApi.d.ts +6 -0
  101. package/models/colDef/gridColDef.d.ts +4 -3
  102. package/models/colDef/gridColType.d.ts +3 -1
  103. package/models/events/gridEventLookup.d.ts +3 -3
  104. package/modern/components/GridColumnHeaders.js +3 -1
  105. package/modern/components/GridRow.js +32 -79
  106. package/modern/components/cell/GridCell.js +421 -45
  107. package/modern/components/cell/GridEditInputCell.js +9 -9
  108. package/modern/components/cell/index.js +1 -1
  109. package/modern/components/containers/GridRootStyles.js +30 -16
  110. package/modern/components/menu/columnMenu/GridColumnHeaderMenu.js +1 -1
  111. package/modern/components/toolbar/GridToolbar.js +2 -2
  112. package/modern/components/virtualization/GridVirtualScroller.js +4 -9
  113. package/modern/components/virtualization/GridVirtualScrollerContent.js +10 -20
  114. package/modern/constants/defaultGridSlotsComponents.js +6 -2
  115. package/modern/hooks/core/useGridApiInitialization.js +4 -1
  116. package/modern/hooks/core/useGridStateInitialization.js +2 -9
  117. package/modern/hooks/features/clipboard/useGridClipboard.js +1 -4
  118. package/modern/hooks/features/columnGrouping/gridColumnGroupsSelector.js +4 -4
  119. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +9 -3
  120. package/modern/hooks/features/columns/gridColumnsSelector.js +7 -7
  121. package/modern/hooks/features/dimensions/useGridDimensions.js +6 -12
  122. package/modern/hooks/features/editing/useGridCellEditing.js +5 -3
  123. package/modern/hooks/features/editing/useGridRowEditing.js +14 -6
  124. package/modern/hooks/features/filter/gridFilterSelector.js +8 -8
  125. package/modern/hooks/features/filter/gridFilterUtils.js +17 -12
  126. package/modern/hooks/features/filter/useGridFilter.js +2 -1
  127. package/modern/hooks/features/focus/useGridFocus.js +8 -4
  128. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -3
  129. package/modern/hooks/features/pagination/gridPaginationSelector.js +4 -4
  130. package/modern/hooks/features/rowSelection/gridRowSelectionSelector.js +3 -3
  131. package/modern/hooks/features/rows/gridRowsSelector.js +3 -3
  132. package/modern/hooks/features/rows/useGridParamsApi.js +7 -15
  133. package/modern/hooks/features/sorting/gridSortingSelector.js +3 -3
  134. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +40 -38
  135. package/modern/hooks/utils/index.js +1 -1
  136. package/modern/hooks/utils/useGridSelector.js +37 -6
  137. package/modern/hooks/utils/useLazyRef.js +9 -0
  138. package/modern/hooks/utils/useOnMount.js +7 -0
  139. package/modern/index.js +1 -1
  140. package/modern/internals/index.js +1 -1
  141. package/modern/locales/elGR.js +66 -79
  142. package/modern/locales/ptBR.js +12 -13
  143. package/modern/utils/Store.js +24 -0
  144. package/modern/utils/createSelector.js +74 -6
  145. package/modern/utils/doesSupportPreventScroll.js +13 -0
  146. package/modern/utils/fastMemo.js +5 -0
  147. package/modern/utils/fastObjectShallowCompare.js +32 -0
  148. package/modern/utils/keyboardUtils.js +4 -2
  149. package/node/components/GridColumnHeaders.js +4 -2
  150. package/node/components/GridRow.js +32 -79
  151. package/node/components/cell/GridCell.js +424 -47
  152. package/node/components/cell/GridEditInputCell.js +9 -9
  153. package/node/components/cell/index.js +17 -10
  154. package/node/components/containers/GridRootStyles.js +30 -16
  155. package/node/components/menu/columnMenu/GridColumnHeaderMenu.js +1 -1
  156. package/node/components/toolbar/GridToolbar.js +2 -2
  157. package/node/components/virtualization/GridVirtualScroller.js +4 -9
  158. package/node/components/virtualization/GridVirtualScrollerContent.js +10 -20
  159. package/node/constants/defaultGridSlotsComponents.js +4 -1
  160. package/node/hooks/core/useGridApiInitialization.js +4 -1
  161. package/node/hooks/core/useGridStateInitialization.js +2 -9
  162. package/node/hooks/features/clipboard/useGridClipboard.js +1 -4
  163. package/node/hooks/features/columnGrouping/gridColumnGroupsSelector.js +3 -3
  164. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +8 -2
  165. package/node/hooks/features/columns/gridColumnsSelector.js +6 -6
  166. package/node/hooks/features/dimensions/useGridDimensions.js +6 -12
  167. package/node/hooks/features/editing/useGridCellEditing.js +5 -3
  168. package/node/hooks/features/editing/useGridRowEditing.js +14 -6
  169. package/node/hooks/features/filter/gridFilterSelector.js +7 -7
  170. package/node/hooks/features/filter/gridFilterUtils.js +17 -12
  171. package/node/hooks/features/filter/useGridFilter.js +2 -1
  172. package/node/hooks/features/focus/useGridFocus.js +8 -4
  173. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -3
  174. package/node/hooks/features/pagination/gridPaginationSelector.js +3 -3
  175. package/node/hooks/features/rowSelection/gridRowSelectionSelector.js +2 -2
  176. package/node/hooks/features/rows/gridRowsSelector.js +2 -2
  177. package/node/hooks/features/rows/useGridParamsApi.js +9 -15
  178. package/node/hooks/features/sorting/gridSortingSelector.js +2 -2
  179. package/node/hooks/features/virtualization/useGridVirtualScroller.js +40 -36
  180. package/node/hooks/utils/index.js +14 -10
  181. package/node/hooks/utils/useGridSelector.js +41 -7
  182. package/node/hooks/utils/useLazyRef.js +17 -0
  183. package/node/hooks/utils/useOnMount.js +15 -0
  184. package/node/index.js +1 -1
  185. package/node/internals/index.js +7 -0
  186. package/node/locales/elGR.js +66 -79
  187. package/node/locales/ptBR.js +12 -13
  188. package/node/utils/Store.js +31 -0
  189. package/node/utils/createSelector.js +77 -8
  190. package/node/utils/doesSupportPreventScroll.js +19 -0
  191. package/node/utils/fastMemo.js +13 -0
  192. package/node/utils/fastObjectShallowCompare.js +38 -0
  193. package/node/utils/keyboardUtils.js +4 -2
  194. package/package.json +2 -2
  195. package/utils/Store.d.ts +11 -0
  196. package/utils/Store.js +24 -0
  197. package/utils/createSelector.d.ts +1 -0
  198. package/utils/createSelector.js +74 -6
  199. package/utils/doesSupportPreventScroll.d.ts +1 -0
  200. package/utils/doesSupportPreventScroll.js +13 -0
  201. package/utils/fastMemo.d.ts +1 -0
  202. package/utils/fastMemo.js +5 -0
  203. package/utils/fastObjectShallowCompare.d.ts +1 -0
  204. package/utils/fastObjectShallowCompare.js +32 -0
  205. package/utils/keyboardUtils.js +4 -2
@@ -3,20 +3,20 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- var _GridCell = require("./GridCell");
7
- Object.keys(_GridCell).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _GridCell[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _GridCell[key];
14
- }
15
- });
6
+ var _exportNames = {
7
+ GridCell: true
8
+ };
9
+ Object.defineProperty(exports, "GridCell", {
10
+ enumerable: true,
11
+ get: function () {
12
+ return _GridCell.GridCell;
13
+ }
16
14
  });
15
+ var _GridCell = require("./GridCell");
17
16
  var _GridBooleanCell = require("./GridBooleanCell");
18
17
  Object.keys(_GridBooleanCell).forEach(function (key) {
19
18
  if (key === "default" || key === "__esModule") return;
19
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
20
20
  if (key in exports && exports[key] === _GridBooleanCell[key]) return;
21
21
  Object.defineProperty(exports, key, {
22
22
  enumerable: true,
@@ -28,6 +28,7 @@ Object.keys(_GridBooleanCell).forEach(function (key) {
28
28
  var _GridEditBooleanCell = require("./GridEditBooleanCell");
29
29
  Object.keys(_GridEditBooleanCell).forEach(function (key) {
30
30
  if (key === "default" || key === "__esModule") return;
31
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
31
32
  if (key in exports && exports[key] === _GridEditBooleanCell[key]) return;
32
33
  Object.defineProperty(exports, key, {
33
34
  enumerable: true,
@@ -39,6 +40,7 @@ Object.keys(_GridEditBooleanCell).forEach(function (key) {
39
40
  var _GridEditDateCell = require("./GridEditDateCell");
40
41
  Object.keys(_GridEditDateCell).forEach(function (key) {
41
42
  if (key === "default" || key === "__esModule") return;
43
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
42
44
  if (key in exports && exports[key] === _GridEditDateCell[key]) return;
43
45
  Object.defineProperty(exports, key, {
44
46
  enumerable: true,
@@ -50,6 +52,7 @@ Object.keys(_GridEditDateCell).forEach(function (key) {
50
52
  var _GridEditInputCell = require("./GridEditInputCell");
51
53
  Object.keys(_GridEditInputCell).forEach(function (key) {
52
54
  if (key === "default" || key === "__esModule") return;
55
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
53
56
  if (key in exports && exports[key] === _GridEditInputCell[key]) return;
54
57
  Object.defineProperty(exports, key, {
55
58
  enumerable: true,
@@ -61,6 +64,7 @@ Object.keys(_GridEditInputCell).forEach(function (key) {
61
64
  var _GridEditSingleSelectCell = require("./GridEditSingleSelectCell");
62
65
  Object.keys(_GridEditSingleSelectCell).forEach(function (key) {
63
66
  if (key === "default" || key === "__esModule") return;
67
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
64
68
  if (key in exports && exports[key] === _GridEditSingleSelectCell[key]) return;
65
69
  Object.defineProperty(exports, key, {
66
70
  enumerable: true,
@@ -72,6 +76,7 @@ Object.keys(_GridEditSingleSelectCell).forEach(function (key) {
72
76
  var _GridActionsCell = require("./GridActionsCell");
73
77
  Object.keys(_GridActionsCell).forEach(function (key) {
74
78
  if (key === "default" || key === "__esModule") return;
79
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
75
80
  if (key in exports && exports[key] === _GridActionsCell[key]) return;
76
81
  Object.defineProperty(exports, key, {
77
82
  enumerable: true,
@@ -83,6 +88,7 @@ Object.keys(_GridActionsCell).forEach(function (key) {
83
88
  var _GridActionsCellItem = require("./GridActionsCellItem");
84
89
  Object.keys(_GridActionsCellItem).forEach(function (key) {
85
90
  if (key === "default" || key === "__esModule") return;
91
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
86
92
  if (key in exports && exports[key] === _GridActionsCellItem[key]) return;
87
93
  Object.defineProperty(exports, key, {
88
94
  enumerable: true,
@@ -94,6 +100,7 @@ Object.keys(_GridActionsCellItem).forEach(function (key) {
94
100
  var _GridSkeletonCell = require("./GridSkeletonCell");
95
101
  Object.keys(_GridSkeletonCell).forEach(function (key) {
96
102
  if (key === "default" || key === "__esModule") return;
103
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
97
104
  if (key in exports && exports[key] === _GridSkeletonCell[key]) return;
98
105
  Object.defineProperty(exports, key, {
99
106
  enumerable: true,
@@ -17,6 +17,22 @@ function getBorderColor(theme) {
17
17
  }
18
18
  return (0, _styles.darken)((0, _styles.alpha)(theme.palette.divider, 1), 0.68);
19
19
  }
20
+ const columnHeadersStyles = {
21
+ [`.${_gridClasses.gridClasses.columnSeparator}, .${_gridClasses.gridClasses['columnSeparator--resizing']}`]: {
22
+ visibility: 'visible',
23
+ width: 'auto'
24
+ }
25
+ };
26
+ const columnHeaderStyles = {
27
+ [`& .${_gridClasses.gridClasses.iconButtonContainer}`]: {
28
+ visibility: 'visible',
29
+ width: 'auto'
30
+ },
31
+ [`& .${_gridClasses.gridClasses.menuIcon}`]: {
32
+ width: 'auto',
33
+ visibility: 'visible'
34
+ }
35
+ };
20
36
  const GridRootStyles = (0, _styles.styled)('div', {
21
37
  name: 'MuiDataGrid',
22
38
  slot: 'Root',
@@ -58,6 +74,8 @@ const GridRootStyles = (0, _styles.styled)('div', {
58
74
  [`& .${_gridClasses.gridClasses['cell--rangeLeft']}`]: styles['cell--rangeLeft']
59
75
  }, {
60
76
  [`& .${_gridClasses.gridClasses['cell--rangeRight']}`]: styles['cell--rangeRight']
77
+ }, {
78
+ [`& .${_gridClasses.gridClasses['cell--withRightBorder']}`]: styles['cell--withRightBorder']
61
79
  }, {
62
80
  [`& .${_gridClasses.gridClasses.cellContent}`]: styles.cellContent
63
81
  }, {
@@ -82,6 +100,8 @@ const GridRootStyles = (0, _styles.styled)('div', {
82
100
  [`& .${_gridClasses.gridClasses['columnHeader--sortable']}`]: styles['columnHeader--sortable']
83
101
  }, {
84
102
  [`& .${_gridClasses.gridClasses['columnHeader--sorted']}`]: styles['columnHeader--sorted']
103
+ }, {
104
+ [`& .${_gridClasses.gridClasses['columnHeader--withRightBorder']}`]: styles['columnHeader--withRightBorder']
85
105
  }, {
86
106
  [`& .${_gridClasses.gridClasses.columnHeader}`]: styles.columnHeader
87
107
  }, {
@@ -207,9 +227,6 @@ const GridRootStyles = (0, _styles.styled)('div', {
207
227
  duration: theme.transitions.duration.shorter
208
228
  })
209
229
  },
210
- [`& .${_gridClasses.gridClasses.columnHeader}:not(.${_gridClasses.gridClasses['columnHeader--sorted']}):hover .${_gridClasses.gridClasses.sortIcon}`]: {
211
- opacity: 0.5
212
- },
213
230
  [`& .${_gridClasses.gridClasses.columnHeaderTitleContainer}`]: {
214
231
  display: 'flex',
215
232
  alignItems: 'center',
@@ -273,9 +290,16 @@ const GridRootStyles = (0, _styles.styled)('div', {
273
290
  justifyContent: 'center',
274
291
  color: borderColor
275
292
  },
276
- [`& .${_gridClasses.gridClasses.columnHeaders}:hover .${_gridClasses.gridClasses.columnSeparator}, .${_gridClasses.gridClasses['columnSeparator--resizing']}`]: {
277
- visibility: 'visible',
278
- width: 'auto'
293
+ '@media (hover: hover)': {
294
+ [`& .${_gridClasses.gridClasses.columnHeaders}:hover`]: columnHeadersStyles,
295
+ [`& .${_gridClasses.gridClasses.columnHeader}:hover`]: columnHeaderStyles,
296
+ [`& .${_gridClasses.gridClasses.columnHeader}:not(.${_gridClasses.gridClasses['columnHeader--sorted']}):hover .${_gridClasses.gridClasses.sortIcon}`]: {
297
+ opacity: 0.5
298
+ }
299
+ },
300
+ '@media (hover: none)': {
301
+ [`& .${_gridClasses.gridClasses.columnHeaders}`]: columnHeadersStyles,
302
+ [`& .${_gridClasses.gridClasses.columnHeader}`]: columnHeaderStyles
279
303
  },
280
304
  [`& .${_gridClasses.gridClasses['columnSeparator--sideLeft']}`]: {
281
305
  left: -12
@@ -311,16 +335,6 @@ const GridRootStyles = (0, _styles.styled)('div', {
311
335
  display: 'flex',
312
336
  alignItems: 'center'
313
337
  },
314
- [`& .${_gridClasses.gridClasses.columnHeader}:hover`]: {
315
- [`& .${_gridClasses.gridClasses.iconButtonContainer}`]: {
316
- visibility: 'visible',
317
- width: 'auto'
318
- },
319
- [`& .${_gridClasses.gridClasses.menuIcon}`]: {
320
- width: 'auto',
321
- visibility: 'visible'
322
- }
323
- },
324
338
  [`.${_gridClasses.gridClasses.menuOpen}`]: {
325
339
  visibility: 'visible',
326
340
  width: 'auto'
@@ -33,7 +33,7 @@ function GridColumnHeaderMenu({
33
33
  apiRef.current.hideColumnMenu();
34
34
  }
35
35
  }, [apiRef, target]);
36
- if (!target) {
36
+ if (!target || !colDef) {
37
37
  return null;
38
38
  }
39
39
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridMenu.GridMenu, {
@@ -22,8 +22,8 @@ const _excluded = ["className", "csvOptions", "printOptions", "excelOptions", "s
22
22
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
23
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
24
  const GridToolbar = /*#__PURE__*/React.forwardRef(function GridToolbar(props, ref) {
25
- // TODO v6: think about where export option should be passed.
26
- // from componentProps={{ toolbarExport: { ...exportOption} }} seems to be more appropriate
25
+ // TODO v7: think about where export option should be passed.
26
+ // from slotProps={{ toolbarExport: { ...exportOption } }} seems to be more appropriate
27
27
  const {
28
28
  csvOptions,
29
29
  printOptions,
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.GridVirtualScroller = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
9
  var React = _interopRequireWildcard(require("react"));
11
10
  var _clsx = _interopRequireDefault(require("clsx"));
12
11
  var _system = require("@mui/system");
@@ -14,7 +13,6 @@ var _utils = require("@mui/utils");
14
13
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
15
14
  var _gridClasses = require("../../constants/gridClasses");
16
15
  var _jsxRuntime = require("react/jsx-runtime");
17
- const _excluded = ["className"];
18
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
17
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
18
  const useUtilityClasses = ownerState => {
@@ -40,16 +38,13 @@ const VirtualScrollerRoot = (0, _system.styled)('div', {
40
38
  }
41
39
  });
42
40
  const GridVirtualScroller = /*#__PURE__*/React.forwardRef(function GridVirtualScroller(props, ref) {
43
- const {
44
- className
45
- } = props,
46
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
47
41
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
48
42
  const classes = useUtilityClasses(rootProps);
49
43
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(VirtualScrollerRoot, (0, _extends2.default)({
50
- ref: ref,
51
- className: (0, _clsx.default)(classes.root, className),
44
+ ref: ref
45
+ }, props, {
46
+ className: (0, _clsx.default)(classes.root, props.className),
52
47
  ownerState: rootProps
53
- }, other));
48
+ }));
54
49
  });
55
50
  exports.GridVirtualScroller = GridVirtualScroller;
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.GridVirtualScrollerContent = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
9
  var React = _interopRequireWildcard(require("react"));
11
10
  var _clsx = _interopRequireDefault(require("clsx"));
12
11
  var _system = require("@mui/system");
@@ -14,14 +13,12 @@ var _utils = require("@mui/utils");
14
13
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
15
14
  var _gridClasses = require("../../constants/gridClasses");
16
15
  var _jsxRuntime = require("react/jsx-runtime");
17
- const _excluded = ["className", "style"];
18
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
17
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
- const useUtilityClasses = ownerState => {
18
+ const useUtilityClasses = (props, overflowedContent) => {
21
19
  const {
22
- classes,
23
- overflowedContent
24
- } = ownerState;
20
+ classes
21
+ } = props;
25
22
  const slots = {
26
23
  root: ['virtualScrollerContent', overflowedContent && 'virtualScrollerContent--overflowed']
27
24
  };
@@ -33,21 +30,14 @@ const VirtualScrollerContentRoot = (0, _system.styled)('div', {
33
30
  overridesResolver: (props, styles) => styles.virtualScrollerContent
34
31
  })({});
35
32
  const GridVirtualScrollerContent = /*#__PURE__*/React.forwardRef(function GridVirtualScrollerContent(props, ref) {
36
- const {
37
- className,
38
- style
39
- } = props,
40
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
41
33
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
42
- const ownerState = (0, _extends2.default)({}, rootProps, {
43
- overflowedContent: !rootProps.autoHeight && style?.minHeight === 'auto'
44
- });
45
- const classes = useUtilityClasses(ownerState);
34
+ const overflowedContent = !rootProps.autoHeight && props.style?.minHeight === 'auto';
35
+ const classes = useUtilityClasses(rootProps, overflowedContent);
46
36
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(VirtualScrollerContentRoot, (0, _extends2.default)({
47
- ref: ref,
48
- className: (0, _clsx.default)(classes.root, className),
49
- ownerState: ownerState,
50
- style: style
51
- }, other));
37
+ ref: ref
38
+ }, props, {
39
+ ownerState: rootProps,
40
+ className: (0, _clsx.default)(classes.root, props.className)
41
+ }));
52
42
  });
53
43
  exports.GridVirtualScrollerContent = GridVirtualScrollerContent;
@@ -7,12 +7,15 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.DATA_GRID_DEFAULT_SLOTS_COMPONENTS = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _components = require("../components");
10
+ var _GridCell = require("../components/cell/GridCell");
10
11
  var _GridColumnHeaders = require("../components/GridColumnHeaders");
11
12
  var _GridColumnMenu = require("../components/menu/columnMenu/GridColumnMenu");
12
13
  var _GridNoResultsOverlay = require("../components/GridNoResultsOverlay");
13
14
  var _material = _interopRequireDefault(require("../material"));
15
+ // TODO: camelCase these key. It's a private helper now.
16
+ // Remove then need to call `uncapitalizeObjectKeys`.
14
17
  const DATA_GRID_DEFAULT_SLOTS_COMPONENTS = (0, _extends2.default)({}, _material.default, {
15
- Cell: _components.GridCell,
18
+ Cell: _GridCell.GridCellV7,
16
19
  SkeletonCell: _components.GridSkeletonCell,
17
20
  ColumnHeaderFilterIconButton: _components.GridColumnHeaderFilterIconButton,
18
21
  ColumnMenu: _GridColumnMenu.GridColumnMenu,
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.useGridApiInitialization = useGridApiInitialization;
7
7
  var React = _interopRequireWildcard(require("react"));
8
+ var _Store = require("../../utils/Store");
8
9
  var _useGridApiMethod = require("../utils/useGridApiMethod");
9
10
  var _useGridApiEventHandler = require("../utils/useGridApiEventHandler");
10
11
  var _EventManager = require("../../utils/EventManager");
@@ -43,8 +44,10 @@ const wrapPublicApi = publicApi => {
43
44
  function useGridApiInitialization(inputApiRef, props) {
44
45
  const publicApiRef = React.useRef();
45
46
  if (!publicApiRef.current) {
47
+ const state = {};
46
48
  publicApiRef.current = {
47
- state: {},
49
+ state,
50
+ store: _Store.Store.create(state),
48
51
  instanceId: {
49
52
  id: globalId
50
53
  }
@@ -6,25 +6,17 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.useGridStateInitialization = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
9
  var React = _interopRequireWildcard(require("react"));
11
10
  var _useGridApiEventHandler = require("../utils/useGridApiEventHandler");
12
11
  var _utils = require("../utils");
13
12
  var _utils2 = require("../../utils/utils");
14
- const _excluded = ["stateId"];
15
13
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
14
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
15
  const useGridStateInitialization = (apiRef, props) => {
18
16
  const controlStateMapRef = React.useRef({});
19
17
  const [, rawForceUpdate] = React.useState();
20
18
  const registerControlState = React.useCallback(controlStateItem => {
21
- const {
22
- stateId
23
- } = controlStateItem,
24
- others = (0, _objectWithoutPropertiesLoose2.default)(controlStateItem, _excluded);
25
- controlStateMapRef.current[stateId] = (0, _extends2.default)({}, others, {
26
- stateId
27
- });
19
+ controlStateMapRef.current[controlStateItem.stateId] = controlStateItem;
28
20
  }, []);
29
21
  const setState = React.useCallback((state, reason) => {
30
22
  let newState;
@@ -69,6 +61,7 @@ const useGridStateInitialization = (apiRef, props) => {
69
61
  if (apiRef.current.publishEvent) {
70
62
  apiRef.current.publishEvent('stateChange', newState);
71
63
  }
64
+ apiRef.current.store.update(newState);
72
65
  }
73
66
  if (updatedControlStateIds.length === 1) {
74
67
  const {
@@ -61,10 +61,7 @@ const useGridClipboard = (apiRef, props) => {
61
61
  const ignoreValueFormatter = (typeof ignoreValueFormatterProp === 'object' ? ignoreValueFormatterProp?.clipboardExport : ignoreValueFormatterProp) || false;
62
62
  const clipboardCopyCellDelimiter = props.clipboardCopyCellDelimiter;
63
63
  const handleCopy = React.useCallback(event => {
64
- const isModifierKeyPressed = event.ctrlKey || event.metaKey;
65
- // event.code === 'KeyC' is not enough as event.code assume a QWERTY keyboard layout which would
66
- // be wrong with a Dvorak keyboard (as if pressing J).
67
- if (String.fromCharCode(event.keyCode) !== 'C' || !isModifierKeyPressed) {
64
+ if (!((event.ctrlKey || event.metaKey) && event.key === 'c')) {
68
65
  return;
69
66
  }
70
67
 
@@ -11,11 +11,11 @@ var _createSelector = require("../../../utils/createSelector");
11
11
  */
12
12
  const gridColumnGroupingSelector = state => state.columnGrouping;
13
13
  exports.gridColumnGroupingSelector = gridColumnGroupingSelector;
14
- const gridColumnGroupsUnwrappedModelSelector = (0, _createSelector.createSelector)(gridColumnGroupingSelector, columnGrouping => columnGrouping?.unwrappedGroupingModel ?? {});
14
+ const gridColumnGroupsUnwrappedModelSelector = (0, _createSelector.createSelectorMemoized)(gridColumnGroupingSelector, columnGrouping => columnGrouping?.unwrappedGroupingModel ?? {});
15
15
  exports.gridColumnGroupsUnwrappedModelSelector = gridColumnGroupsUnwrappedModelSelector;
16
- const gridColumnGroupsLookupSelector = (0, _createSelector.createSelector)(gridColumnGroupingSelector, columnGrouping => columnGrouping?.lookup ?? {});
16
+ const gridColumnGroupsLookupSelector = (0, _createSelector.createSelectorMemoized)(gridColumnGroupingSelector, columnGrouping => columnGrouping?.lookup ?? {});
17
17
  exports.gridColumnGroupsLookupSelector = gridColumnGroupsLookupSelector;
18
- const gridColumnGroupsHeaderStructureSelector = (0, _createSelector.createSelector)(gridColumnGroupingSelector, columnGrouping => columnGrouping?.headerStructure ?? []);
18
+ const gridColumnGroupsHeaderStructureSelector = (0, _createSelector.createSelectorMemoized)(gridColumnGroupingSelector, columnGrouping => columnGrouping?.headerStructure ?? []);
19
19
  exports.gridColumnGroupsHeaderStructureSelector = gridColumnGroupsHeaderStructureSelector;
20
20
  const gridColumnGroupsHeaderMaxDepthSelector = (0, _createSelector.createSelector)(gridColumnGroupingSelector, columnGrouping => columnGrouping?.maxDepth ?? 0);
21
21
  exports.gridColumnGroupsHeaderMaxDepthSelector = gridColumnGroupsHeaderMaxDepthSelector;
@@ -58,12 +58,18 @@ const useGridColumnHeaders = props => {
58
58
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
59
59
  const innerRef = React.useRef(null);
60
60
  const handleInnerRef = (0, _utils.unstable_useForkRef)(innerRefProp, innerRef);
61
- const [renderContext, setRenderContext] = React.useState(null);
61
+ const [renderContext, setRenderContextRaw] = React.useState(null);
62
62
  const prevRenderContext = React.useRef(renderContext);
63
63
  const prevScrollLeft = React.useRef(0);
64
64
  const currentPage = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, rootProps);
65
65
  const totalHeaderHeight = (0, _gridColumnsUtils.getTotalHeaderHeight)(apiRef, rootProps.columnHeaderHeight);
66
66
  const headerHeight = Math.floor(rootProps.columnHeaderHeight * densityFactor);
67
+ const setRenderContext = React.useCallback(nextRenderContext => {
68
+ if (renderContext && nextRenderContext && (0, _useGridVirtualScroller.areRenderContextsEqual)(renderContext, nextRenderContext)) {
69
+ return;
70
+ }
71
+ setRenderContextRaw(nextRenderContext);
72
+ }, [renderContext]);
67
73
  React.useEffect(() => {
68
74
  apiRef.current.columnHeadersContainerElementRef.current.scrollLeft = 0;
69
75
  }, [apiRef]);
@@ -138,7 +144,7 @@ const useGridColumnHeaders = props => {
138
144
  if (nextRenderContext && canUpdateInnerPosition) {
139
145
  updateInnerPosition(nextRenderContext);
140
146
  }
141
- }, [updateInnerPosition]);
147
+ }, [updateInnerPosition, setRenderContext]);
142
148
  const handleColumnResizeStart = React.useCallback(params => setResizeCol(params.field), []);
143
149
  const handleColumnResizeStop = React.useCallback(() => setResizeCol(''), []);
144
150
  const handleColumnReorderStart = React.useCallback(params => setDragCol(params.field), []);
@@ -30,7 +30,7 @@ const gridColumnLookupSelector = (0, _createSelector.createSelector)(gridColumns
30
30
  * @category Columns
31
31
  */
32
32
  exports.gridColumnLookupSelector = gridColumnLookupSelector;
33
- const gridColumnDefinitionsSelector = (0, _createSelector.createSelector)(gridColumnFieldsSelector, gridColumnLookupSelector, (allFields, lookup) => allFields.map(field => lookup[field]));
33
+ const gridColumnDefinitionsSelector = (0, _createSelector.createSelectorMemoized)(gridColumnFieldsSelector, gridColumnLookupSelector, (allFields, lookup) => allFields.map(field => lookup[field]));
34
34
 
35
35
  /**
36
36
  * Get the column visibility model, containing the visibility status of each column.
@@ -45,21 +45,21 @@ const gridColumnVisibilityModelSelector = (0, _createSelector.createSelector)(gr
45
45
  * @category Visible Columns
46
46
  */
47
47
  exports.gridColumnVisibilityModelSelector = gridColumnVisibilityModelSelector;
48
- const gridVisibleColumnDefinitionsSelector = (0, _createSelector.createSelector)(gridColumnDefinitionsSelector, gridColumnVisibilityModelSelector, (columns, columnVisibilityModel) => columns.filter(column => columnVisibilityModel[column.field] !== false));
48
+ const gridVisibleColumnDefinitionsSelector = (0, _createSelector.createSelectorMemoized)(gridColumnDefinitionsSelector, gridColumnVisibilityModelSelector, (columns, columnVisibilityModel) => columns.filter(column => columnVisibilityModel[column.field] !== false));
49
49
 
50
50
  /**
51
51
  * Get the field of each visible column.
52
52
  * @category Visible Columns
53
53
  */
54
54
  exports.gridVisibleColumnDefinitionsSelector = gridVisibleColumnDefinitionsSelector;
55
- const gridVisibleColumnFieldsSelector = (0, _createSelector.createSelector)(gridVisibleColumnDefinitionsSelector, visibleColumns => visibleColumns.map(column => column.field));
55
+ const gridVisibleColumnFieldsSelector = (0, _createSelector.createSelectorMemoized)(gridVisibleColumnDefinitionsSelector, visibleColumns => visibleColumns.map(column => column.field));
56
56
 
57
57
  /**
58
58
  * Get the left position in pixel of each visible columns relative to the left of the first column.
59
59
  * @category Visible Columns
60
60
  */
61
61
  exports.gridVisibleColumnFieldsSelector = gridVisibleColumnFieldsSelector;
62
- const gridColumnPositionsSelector = (0, _createSelector.createSelector)(gridVisibleColumnDefinitionsSelector, visibleColumns => {
62
+ const gridColumnPositionsSelector = (0, _createSelector.createSelectorMemoized)(gridVisibleColumnDefinitionsSelector, visibleColumns => {
63
63
  const positions = [];
64
64
  let currentPosition = 0;
65
65
  for (let i = 0; i < visibleColumns.length; i += 1) {
@@ -87,14 +87,14 @@ const gridColumnsTotalWidthSelector = (0, _createSelector.createSelector)(gridVi
87
87
  * @category Columns
88
88
  */
89
89
  exports.gridColumnsTotalWidthSelector = gridColumnsTotalWidthSelector;
90
- const gridFilterableColumnDefinitionsSelector = (0, _createSelector.createSelector)(gridColumnDefinitionsSelector, columns => columns.filter(col => col.filterable));
90
+ const gridFilterableColumnDefinitionsSelector = (0, _createSelector.createSelectorMemoized)(gridColumnDefinitionsSelector, columns => columns.filter(col => col.filterable));
91
91
 
92
92
  /**
93
93
  * Get the filterable columns as a lookup (an object containing the field for keys and the definition for values).
94
94
  * @category Columns
95
95
  */
96
96
  exports.gridFilterableColumnDefinitionsSelector = gridFilterableColumnDefinitionsSelector;
97
- const gridFilterableColumnLookupSelector = (0, _createSelector.createSelector)(gridColumnDefinitionsSelector, columns => columns.reduce((acc, col) => {
97
+ const gridFilterableColumnLookupSelector = (0, _createSelector.createSelectorMemoized)(gridColumnDefinitionsSelector, columns => columns.reduce((acc, col) => {
98
98
  if (col.filterable) {
99
99
  acc[col.field] = col;
100
100
  }
@@ -161,22 +161,16 @@ function useGridDimensions(apiRef, props) {
161
161
  if (!mainEl) {
162
162
  return;
163
163
  }
164
- const height = mainEl.clientHeight || 0;
165
- const width = mainEl.clientWidth || 0;
166
164
  const win = (0, _utils.unstable_ownerWindow)(mainEl);
167
165
  const computedStyle = win.getComputedStyle(mainEl);
168
- const paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0;
169
- const paddingRight = parseInt(computedStyle.paddingRight, 10) || 0;
170
- const paddingTop = parseInt(computedStyle.paddingTop, 10) || 0;
171
- const paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0;
172
- const newHeight = height - paddingTop - paddingBottom;
173
- const newWidth = width - paddingLeft - paddingRight;
174
- const hasHeightChanged = newHeight !== previousSize.current?.height;
175
- const hasWidthChanged = newWidth !== previousSize.current?.width;
166
+ const height = parseFloat(computedStyle.height) || 0;
167
+ const width = parseFloat(computedStyle.width) || 0;
168
+ const hasHeightChanged = height !== previousSize.current?.height;
169
+ const hasWidthChanged = width !== previousSize.current?.width;
176
170
  if (!previousSize.current || hasHeightChanged || hasWidthChanged) {
177
171
  const size = {
178
- width: newWidth,
179
- height: newHeight
172
+ width,
173
+ height
180
174
  };
181
175
  apiRef.current.publishEvent('resize', size);
182
176
  previousSize.current = size;
@@ -23,7 +23,7 @@ const _excluded = ["id", "field"],
23
23
  _excluded2 = ["id", "field"];
24
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
25
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
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 http://mui.com/components/data-grid/editing/#persistence.'], 'error');
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 http://mui.com/components/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);
@@ -131,7 +131,8 @@ const useGridCellEditing = (apiRef, props) => {
131
131
  id,
132
132
  field,
133
133
  reason,
134
- key
134
+ key,
135
+ colDef
135
136
  } = params;
136
137
  const startCellEditModeParams = {
137
138
  id,
@@ -143,7 +144,8 @@ const useGridCellEditing = (apiRef, props) => {
143
144
  // The sequence of events makes the key pressed by the end-users update the textbox directly.
144
145
  startCellEditModeParams.deleteValue = true;
145
146
  } else {
146
- startCellEditModeParams.initialValue = key;
147
+ const initialValue = colDef.valueParser ? colDef.valueParser(key) : key;
148
+ startCellEditModeParams.initialValue = initialValue;
147
149
  }
148
150
  } else if (reason === _gridEditCellParams.GridCellEditStartReasons.deleteKeyDown) {
149
151
  startCellEditModeParams.deleteValue = true;
@@ -20,11 +20,12 @@ var _warning = require("../../../utils/warning");
20
20
  var _gridRowsSelector = require("../rows/gridRowsSelector");
21
21
  var _utils2 = require("../../../utils/utils");
22
22
  var _gridRowParams = require("../../../models/params/gridRowParams");
23
+ var _colDef = require("../../../colDef");
23
24
  const _excluded = ["id"],
24
25
  _excluded2 = ["id"];
25
26
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
27
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
- 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 http://mui.com/components/data-grid/editing/#persistence.'], 'error');
28
+ 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 http://mui.com/components/data-grid/editing/#server-side-persistence.'], 'error');
28
29
  const useGridRowEditing = (apiRef, props) => {
29
30
  const [rowModesModel, setRowModesModel] = React.useState({});
30
31
  const rowModesModelRef = React.useRef(rowModesModel);
@@ -122,7 +123,13 @@ const useGridRowEditing = (apiRef, props) => {
122
123
  } else if (event.key === 'Enter') {
123
124
  reason = _gridRowParams.GridRowEditStopReasons.enterKeyDown;
124
125
  } else if (event.key === 'Tab') {
125
- const columnFields = (0, _gridColumnsSelector.gridColumnFieldsSelector)(apiRef).filter(field => apiRef.current.isCellEditable(apiRef.current.getCellParams(params.id, field)));
126
+ const columnFields = (0, _gridColumnsSelector.gridColumnFieldsSelector)(apiRef).filter(field => {
127
+ const column = apiRef.current.getColumn(field);
128
+ if (column.type === _colDef.GRID_ACTIONS_COLUMN_TYPE) {
129
+ return true;
130
+ }
131
+ return apiRef.current.isCellEditable(apiRef.current.getCellParams(params.id, field));
132
+ });
126
133
  if (event.shiftKey) {
127
134
  if (params.field === columnFields[0]) {
128
135
  // Exit if user pressed Shift+Tab on the first field
@@ -143,8 +150,7 @@ const useGridRowEditing = (apiRef, props) => {
143
150
  }
144
151
  }
145
152
  if (reason) {
146
- const rowParams = apiRef.current.getRowParams(params.id);
147
- const newParams = (0, _extends2.default)({}, rowParams, {
153
+ const newParams = (0, _extends2.default)({}, apiRef.current.getRowParams(params.id), {
148
154
  reason,
149
155
  field: params.field
150
156
  });
@@ -186,7 +192,8 @@ const useGridRowEditing = (apiRef, props) => {
186
192
  id,
187
193
  field,
188
194
  reason,
189
- key
195
+ key,
196
+ columns
190
197
  } = params;
191
198
  const startRowEditModeParams = {
192
199
  id,
@@ -198,7 +205,8 @@ const useGridRowEditing = (apiRef, props) => {
198
205
  // The sequence of events makes the key pressed by the end-users update the textbox directly.
199
206
  startRowEditModeParams.deleteValue = !!field;
200
207
  } else {
201
- startRowEditModeParams.initialValue = key;
208
+ const colDef = columns.find(col => col.field === field);
209
+ startRowEditModeParams.initialValue = colDef.valueParser ? colDef.valueParser(key) : key;
202
210
  }
203
211
  } else if (reason === _gridRowParams.GridRowEditStartReasons.deleteKeyDown) {
204
212
  startRowEditModeParams.deleteValue = !!field;