@mui/x-data-grid 5.12.1 → 5.12.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/CHANGELOG.md +45 -2
  2. package/colDef/gridCheckboxSelectionColDef.d.ts +1 -0
  3. package/colDef/gridCheckboxSelectionColDef.js +2 -1
  4. package/colDef/gridDateOperators.d.ts +1 -1
  5. package/colDef/gridNumericColDef.js +1 -1
  6. package/components/columnHeaders/GridColumnHeaderItem.js +5 -3
  7. package/components/columnSelection/GridCellCheckboxRenderer.js +0 -1
  8. package/components/columnSelection/GridHeaderCheckbox.js +0 -1
  9. package/components/containers/GridRootStyles.js +1 -1
  10. package/components/panel/GridColumnsPanel.js +2 -5
  11. package/components/panel/filterPanel/GridFilterPanel.js +1 -2
  12. package/components/toolbar/GridToolbarColumnsButton.js +0 -1
  13. package/components/toolbar/GridToolbarDensitySelector.js +0 -1
  14. package/components/toolbar/GridToolbarExportContainer.js +0 -1
  15. package/components/toolbar/GridToolbarFilterButton.js +0 -1
  16. package/constants/localeTextConstants.js +1 -0
  17. package/hooks/features/columns/useGridColumnSpanning.d.ts +1 -1
  18. package/hooks/features/columns/useGridColumnSpanning.js +1 -1
  19. package/hooks/features/columns/useGridColumns.d.ts +1 -1
  20. package/hooks/features/dimensions/gridDimensionsApi.d.ts +5 -0
  21. package/hooks/features/dimensions/useGridDimensions.js +9 -8
  22. package/hooks/features/filter/gridFilterState.d.ts +1 -1
  23. package/hooks/features/filter/useGridFilter.d.ts +1 -1
  24. package/hooks/features/rows/useGridRowsMeta.js +79 -77
  25. package/hooks/features/selection/useGridSelectionPreProcessors.js +8 -6
  26. package/hooks/features/sorting/useGridSorting.d.ts +1 -1
  27. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +1 -1
  28. package/hooks/features/virtualization/useGridVirtualScroller.js +42 -8
  29. package/index.js +1 -1
  30. package/legacy/colDef/gridCheckboxSelectionColDef.js +2 -1
  31. package/legacy/colDef/gridNumericColDef.js +1 -1
  32. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +5 -3
  33. package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +0 -1
  34. package/legacy/components/columnSelection/GridHeaderCheckbox.js +0 -1
  35. package/legacy/components/containers/GridRootStyles.js +1 -1
  36. package/legacy/components/panel/GridColumnsPanel.js +2 -5
  37. package/legacy/components/panel/filterPanel/GridFilterPanel.js +1 -2
  38. package/legacy/components/toolbar/GridToolbarColumnsButton.js +0 -1
  39. package/legacy/components/toolbar/GridToolbarDensitySelector.js +0 -1
  40. package/legacy/components/toolbar/GridToolbarExportContainer.js +0 -1
  41. package/legacy/components/toolbar/GridToolbarFilterButton.js +0 -1
  42. package/legacy/constants/localeTextConstants.js +1 -0
  43. package/legacy/hooks/features/columns/useGridColumnSpanning.js +1 -1
  44. package/legacy/hooks/features/dimensions/useGridDimensions.js +9 -8
  45. package/legacy/hooks/features/rows/useGridRowsMeta.js +81 -77
  46. package/legacy/hooks/features/selection/useGridSelectionPreProcessors.js +8 -6
  47. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +42 -8
  48. package/legacy/index.js +1 -1
  49. package/legacy/locales/arSD.js +1 -0
  50. package/legacy/locales/bgBG.js +1 -0
  51. package/legacy/locales/csCZ.js +1 -0
  52. package/legacy/locales/daDK.js +1 -0
  53. package/legacy/locales/deDE.js +1 -0
  54. package/legacy/locales/elGR.js +1 -0
  55. package/legacy/locales/esES.js +1 -0
  56. package/legacy/locales/faIR.js +1 -0
  57. package/legacy/locales/fiFI.js +1 -0
  58. package/legacy/locales/frFR.js +1 -0
  59. package/legacy/locales/heIL.js +1 -0
  60. package/legacy/locales/huHU.js +1 -0
  61. package/legacy/locales/itIT.js +1 -0
  62. package/legacy/locales/jaJP.js +1 -0
  63. package/legacy/locales/koKR.js +1 -0
  64. package/legacy/locales/nbNO.js +1 -0
  65. package/legacy/locales/nlNL.js +1 -0
  66. package/legacy/locales/plPL.js +1 -0
  67. package/legacy/locales/ptBR.js +1 -0
  68. package/legacy/locales/ruRU.js +1 -0
  69. package/legacy/locales/skSK.js +1 -0
  70. package/legacy/locales/trTR.js +1 -0
  71. package/legacy/locales/ukUA.js +1 -0
  72. package/legacy/locales/viVN.js +1 -0
  73. package/legacy/locales/zhCN.js +1 -0
  74. package/locales/arSD.js +1 -0
  75. package/locales/bgBG.js +1 -0
  76. package/locales/csCZ.js +1 -0
  77. package/locales/daDK.js +1 -0
  78. package/locales/deDE.js +1 -0
  79. package/locales/elGR.js +1 -0
  80. package/locales/esES.js +1 -0
  81. package/locales/faIR.js +1 -0
  82. package/locales/fiFI.js +1 -0
  83. package/locales/frFR.js +1 -0
  84. package/locales/heIL.js +1 -0
  85. package/locales/huHU.js +1 -0
  86. package/locales/itIT.js +1 -0
  87. package/locales/jaJP.js +1 -0
  88. package/locales/koKR.js +1 -0
  89. package/locales/nbNO.js +1 -0
  90. package/locales/nlNL.js +1 -0
  91. package/locales/plPL.js +1 -0
  92. package/locales/ptBR.js +1 -0
  93. package/locales/ruRU.js +1 -0
  94. package/locales/skSK.js +1 -0
  95. package/locales/trTR.js +1 -0
  96. package/locales/ukUA.js +1 -0
  97. package/locales/viVN.js +1 -0
  98. package/locales/zhCN.js +1 -0
  99. package/models/api/gridLocaleTextApi.d.ts +1 -0
  100. package/models/colDef/gridColDef.d.ts +1 -1
  101. package/modern/colDef/gridCheckboxSelectionColDef.js +2 -1
  102. package/modern/colDef/gridNumericColDef.js +1 -1
  103. package/modern/components/columnHeaders/GridColumnHeaderItem.js +5 -3
  104. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +0 -1
  105. package/modern/components/columnSelection/GridHeaderCheckbox.js +0 -1
  106. package/modern/components/containers/GridRootStyles.js +1 -1
  107. package/modern/components/panel/GridColumnsPanel.js +2 -5
  108. package/modern/components/panel/filterPanel/GridFilterPanel.js +1 -2
  109. package/modern/components/toolbar/GridToolbarColumnsButton.js +0 -1
  110. package/modern/components/toolbar/GridToolbarDensitySelector.js +0 -1
  111. package/modern/components/toolbar/GridToolbarExportContainer.js +0 -1
  112. package/modern/components/toolbar/GridToolbarFilterButton.js +0 -1
  113. package/modern/constants/localeTextConstants.js +1 -0
  114. package/modern/hooks/features/columns/useGridColumnSpanning.js +1 -1
  115. package/modern/hooks/features/dimensions/useGridDimensions.js +9 -8
  116. package/modern/hooks/features/rows/useGridRowsMeta.js +77 -75
  117. package/modern/hooks/features/selection/useGridSelectionPreProcessors.js +8 -6
  118. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +42 -8
  119. package/modern/index.js +1 -1
  120. package/modern/locales/arSD.js +1 -0
  121. package/modern/locales/bgBG.js +1 -0
  122. package/modern/locales/csCZ.js +1 -0
  123. package/modern/locales/daDK.js +1 -0
  124. package/modern/locales/deDE.js +1 -0
  125. package/modern/locales/elGR.js +1 -0
  126. package/modern/locales/esES.js +1 -0
  127. package/modern/locales/faIR.js +1 -0
  128. package/modern/locales/fiFI.js +1 -0
  129. package/modern/locales/frFR.js +1 -0
  130. package/modern/locales/heIL.js +1 -0
  131. package/modern/locales/huHU.js +1 -0
  132. package/modern/locales/itIT.js +1 -0
  133. package/modern/locales/jaJP.js +1 -0
  134. package/modern/locales/koKR.js +1 -0
  135. package/modern/locales/nbNO.js +1 -0
  136. package/modern/locales/nlNL.js +1 -0
  137. package/modern/locales/plPL.js +1 -0
  138. package/modern/locales/ptBR.js +1 -0
  139. package/modern/locales/ruRU.js +1 -0
  140. package/modern/locales/skSK.js +1 -0
  141. package/modern/locales/trTR.js +1 -0
  142. package/modern/locales/ukUA.js +1 -0
  143. package/modern/locales/viVN.js +1 -0
  144. package/modern/locales/zhCN.js +1 -0
  145. package/node/colDef/gridCheckboxSelectionColDef.js +4 -2
  146. package/node/colDef/gridNumericColDef.js +1 -1
  147. package/node/components/columnHeaders/GridColumnHeaderItem.js +5 -3
  148. package/node/components/columnSelection/GridCellCheckboxRenderer.js +0 -1
  149. package/node/components/columnSelection/GridHeaderCheckbox.js +0 -1
  150. package/node/components/containers/GridRootStyles.js +1 -1
  151. package/node/components/panel/GridColumnsPanel.js +2 -5
  152. package/node/components/panel/filterPanel/GridFilterPanel.js +1 -2
  153. package/node/components/toolbar/GridToolbarColumnsButton.js +0 -1
  154. package/node/components/toolbar/GridToolbarDensitySelector.js +0 -1
  155. package/node/components/toolbar/GridToolbarExportContainer.js +0 -1
  156. package/node/components/toolbar/GridToolbarFilterButton.js +0 -1
  157. package/node/constants/localeTextConstants.js +1 -0
  158. package/node/hooks/features/columns/useGridColumnSpanning.js +11 -16
  159. package/node/hooks/features/dimensions/useGridDimensions.js +9 -8
  160. package/node/hooks/features/rows/useGridRowsMeta.js +80 -77
  161. package/node/hooks/features/selection/useGridSelectionPreProcessors.js +7 -5
  162. package/node/hooks/features/virtualization/useGridVirtualScroller.js +42 -9
  163. package/node/index.js +1 -1
  164. package/node/locales/arSD.js +1 -0
  165. package/node/locales/bgBG.js +1 -0
  166. package/node/locales/csCZ.js +1 -0
  167. package/node/locales/daDK.js +1 -0
  168. package/node/locales/deDE.js +1 -0
  169. package/node/locales/elGR.js +1 -0
  170. package/node/locales/esES.js +1 -0
  171. package/node/locales/faIR.js +1 -0
  172. package/node/locales/fiFI.js +1 -0
  173. package/node/locales/frFR.js +1 -0
  174. package/node/locales/heIL.js +1 -0
  175. package/node/locales/huHU.js +1 -0
  176. package/node/locales/itIT.js +1 -0
  177. package/node/locales/jaJP.js +1 -0
  178. package/node/locales/koKR.js +1 -0
  179. package/node/locales/nbNO.js +1 -0
  180. package/node/locales/nlNL.js +1 -0
  181. package/node/locales/plPL.js +1 -0
  182. package/node/locales/ptBR.js +1 -0
  183. package/node/locales/ruRU.js +1 -0
  184. package/node/locales/skSK.js +1 -0
  185. package/node/locales/trTR.js +1 -0
  186. package/node/locales/ukUA.js +1 -0
  187. package/node/locales/viVN.js +1 -0
  188. package/node/locales/zhCN.js +1 -0
  189. package/package.json +1 -1
@@ -107,6 +107,7 @@ const jaJPGrid = {
107
107
  groupColumn: name => `${name}でグループ化`,
108
108
  unGroupColumn: name => `${name}のグループを解除`,
109
109
  // Master/detail
110
+ // detailPanelToggle: 'Detail panel toggle',
110
111
  expandDetailPanel: '展開',
111
112
  collapseDetailPanel: '折りたたみ',
112
113
  // Row reordering text
@@ -106,6 +106,7 @@ const koKRGrid = {
106
106
  // groupColumn: name => `Group by ${name}`,
107
107
  // unGroupColumn: name => `Stop grouping by ${name}`,
108
108
  // Master/detail
109
+ // detailPanelToggle: 'Detail panel toggle',
109
110
  // expandDetailPanel: 'Expand',
110
111
  // collapseDetailPanel: 'Collapse',
111
112
  // Row reordering text
@@ -107,6 +107,7 @@ const nbNOGrid = {
107
107
  groupColumn: name => `Grupper på ${name}`,
108
108
  unGroupColumn: name => `Stopp å grupper på ${name}`,
109
109
  // Master/detail
110
+ // detailPanelToggle: 'Detail panel toggle',
110
111
  expandDetailPanel: 'Utvid',
111
112
  collapseDetailPanel: 'Kollaps',
112
113
  // Row reordering text
@@ -106,6 +106,7 @@ const nlNLGrid = {
106
106
  groupingColumnHeaderName: 'Groep',
107
107
  groupColumn: name => `Groepeer op ${name}`,
108
108
  unGroupColumn: name => `Stop groeperen op ${name}` // Master/detail
109
+ // detailPanelToggle: 'Detail panel toggle',
109
110
  // expandDetailPanel: 'Expand',
110
111
  // collapseDetailPanel: 'Collapse',
111
112
  // Row reordering text
@@ -107,6 +107,7 @@ const plPLGrid = {
107
107
  groupColumn: name => `Grupuj według ${name}`,
108
108
  unGroupColumn: name => `Rozgrupuj ${name}`,
109
109
  // Master/detail
110
+ // detailPanelToggle: 'Detail panel toggle',
110
111
  expandDetailPanel: 'Rozwiń',
111
112
  collapseDetailPanel: 'Zwiń' // Row reordering text
112
113
  // rowReorderingHeaderName: 'Row reordering',
@@ -107,6 +107,7 @@ const ptBRGrid = {
107
107
  groupColumn: name => `Agrupar por ${name}`,
108
108
  unGroupColumn: name => `Parar agrupamento por ${name}`,
109
109
  // Master/detail
110
+ detailPanelToggle: 'Painel de detalhes',
110
111
  expandDetailPanel: 'Expandir',
111
112
  collapseDetailPanel: 'Esconder' // Row reordering text
112
113
  // rowReorderingHeaderName: 'Row reordering',
@@ -140,6 +140,7 @@ const ruRUGrid = {
140
140
  groupColumn: name => `Сгруппировать по ${name}`,
141
141
  unGroupColumn: name => `Разгруппировать по ${name}`,
142
142
  // Master/detail
143
+ // detailPanelToggle: 'Detail panel toggle',
143
144
  expandDetailPanel: 'Развернуть',
144
145
  collapseDetailPanel: 'Свернуть' // Row reordering text
145
146
  // rowReorderingHeaderName: 'Row reordering',
@@ -141,6 +141,7 @@ const skSKGrid = {
141
141
  groupingColumnHeaderName: 'Skupina',
142
142
  groupColumn: name => `Zoskupiť podľa ${name}`,
143
143
  unGroupColumn: name => `Prestať zoskupovať podľa ${name}` // Master/detail
144
+ // detailPanelToggle: 'Detail panel toggle',
144
145
  // expandDetailPanel: 'Expand',
145
146
  // collapseDetailPanel: 'Collapse',
146
147
  // Row reordering text
@@ -107,6 +107,7 @@ const trTRGrid = {
107
107
  groupColumn: name => `${name} için grupla`,
108
108
  unGroupColumn: name => `${name} için gruplamayı kaldır`,
109
109
  // Master/detail
110
+ // detailPanelToggle: 'Detail panel toggle',
110
111
  expandDetailPanel: 'Genişlet',
111
112
  collapseDetailPanel: 'Gizle' // Row reordering text
112
113
  // rowReorderingHeaderName: 'Row reordering',
@@ -132,6 +132,7 @@ const ukUAGrid = {
132
132
  // groupColumn: name => `Group by ${name}`,
133
133
  // unGroupColumn: name => `Stop grouping by ${name}`,
134
134
  // Master/detail
135
+ // detailPanelToggle: 'Detail panel toggle',
135
136
  // expandDetailPanel: 'Expand',
136
137
  // collapseDetailPanel: 'Collapse',
137
138
  // Row reordering text
@@ -106,6 +106,7 @@ const viVNGrid = {
106
106
  // groupColumn: name => `Group by ${name}`,
107
107
  // unGroupColumn: name => `Stop grouping by ${name}`,
108
108
  // Master/detail
109
+ // detailPanelToggle: 'Detail panel toggle',
109
110
  // expandDetailPanel: 'Expand',
110
111
  // collapseDetailPanel: 'Collapse',
111
112
  // Row reordering text
@@ -106,6 +106,7 @@ const zhCNGrid = {
106
106
  // groupColumn: name => `Group by ${name}`,
107
107
  // unGroupColumn: name => `Stop grouping by ${name}`,
108
108
  // Master/detail
109
+ // detailPanelToggle: 'Detail panel toggle',
109
110
  // expandDetailPanel: 'Expand',
110
111
  // collapseDetailPanel: 'Collapse',
111
112
  // Row reordering text
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.GRID_CHECKBOX_SELECTION_COL_DEF = void 0;
8
+ exports.GRID_CHECKBOX_SELECTION_FIELD = exports.GRID_CHECKBOX_SELECTION_COL_DEF = void 0;
9
9
 
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
 
@@ -25,8 +25,10 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
25
25
 
26
26
  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
27
 
28
+ const GRID_CHECKBOX_SELECTION_FIELD = '__check__';
29
+ exports.GRID_CHECKBOX_SELECTION_FIELD = GRID_CHECKBOX_SELECTION_FIELD;
28
30
  const GRID_CHECKBOX_SELECTION_COL_DEF = (0, _extends2.default)({}, _gridBooleanColDef.GRID_BOOLEAN_COL_DEF, {
29
- field: '__check__',
31
+ field: GRID_CHECKBOX_SELECTION_FIELD,
30
32
  type: 'checkboxSelection',
31
33
  width: 50,
32
34
  resizable: false,
@@ -25,7 +25,7 @@ const GRID_NUMERIC_COL_DEF = (0, _extends2.default)({}, _gridStringColDef.GRID_S
25
25
  valueParser: value => value === '' ? null : Number(value),
26
26
  valueFormatter: ({
27
27
  value
28
- }) => value && (0, _utils.isNumber)(value) && value.toLocaleString() || value,
28
+ }) => (0, _utils.isNumber)(value) ? value.toLocaleString() : value || '',
29
29
  filterOperators: (0, _gridNumericOperators.getGridNumericOperators)(),
30
30
  getApplyQuickFilterFn: _gridNumericOperators.getGridNumericQuickFilterFn
31
31
  });
@@ -187,6 +187,7 @@ function GridColumnHeaderItem(props) {
187
187
  field: column.field,
188
188
  colDef: column
189
189
  }) : column.headerClassName;
190
+ const label = (_column$headerName = column.headerName) != null ? _column$headerName : column.field;
190
191
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", (0, _extends2.default)({
191
192
  ref: headerCellRef,
192
193
  className: (0, _clsx.default)(classes.root, headerClassName),
@@ -199,7 +200,8 @@ function GridColumnHeaderItem(props) {
199
200
  role: "columnheader",
200
201
  tabIndex: tabIndex,
201
202
  "aria-colindex": colIndex + 1,
202
- "aria-sort": ariaSort
203
+ "aria-sort": ariaSort,
204
+ "aria-label": column.renderHeader && headerComponent == null ? label : undefined
203
205
  }, mouseEventsHandlers, {
204
206
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", (0, _extends2.default)({
205
207
  className: classes.draggableContainer,
@@ -209,8 +211,8 @@ function GridColumnHeaderItem(props) {
209
211
  className: classes.titleContainer,
210
212
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
211
213
  className: classes.titleContainerContent,
212
- children: headerComponent || /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridColumnHeaderTitle.GridColumnHeaderTitle, {
213
- label: (_column$headerName = column.headerName) != null ? _column$headerName : column.field,
214
+ children: column.renderHeader ? headerComponent : /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridColumnHeaderTitle.GridColumnHeaderTitle, {
215
+ label: label,
214
216
  description: column.description,
215
217
  columnWidth: width
216
218
  })
@@ -108,7 +108,6 @@ const GridCellCheckboxForwardRef = /*#__PURE__*/React.forwardRef(function GridCe
108
108
  checked: isChecked,
109
109
  onChange: handleChange,
110
110
  className: classes.root,
111
- color: "primary",
112
111
  inputProps: {
113
112
  'aria-label': label
114
113
  },
@@ -138,7 +138,6 @@ const GridHeaderCheckbox = /*#__PURE__*/React.forwardRef(function GridHeaderChec
138
138
  checked: isChecked,
139
139
  onChange: handleChange,
140
140
  className: classes.root,
141
- color: "primary",
142
141
  inputProps: {
143
142
  'aria-label': label
144
143
  },
@@ -176,7 +176,7 @@ const GridRootStyles = (0, _styles.styled)('div', {
176
176
  minWidth: 0,
177
177
  flex: 1,
178
178
  whiteSpace: 'nowrap',
179
- overflow: 'hidden'
179
+ overflowX: 'hidden'
180
180
  },
181
181
  [`& .${_gridClasses.gridClasses.columnHeaderTitleContainerContent}`]: {
182
182
  overflow: 'hidden',
@@ -166,7 +166,6 @@ function GridColumnsPanel(props) {
166
166
  checked: columnVisibilityModel[column.field] !== false,
167
167
  onClick: toggleColumn,
168
168
  name: column.field,
169
- color: "primary",
170
169
  size: "small"
171
170
  }, (_rootProps$components2 = rootProps.componentsProps) == null ? void 0 : _rootProps$components2.baseSwitch)),
172
171
  label: column.headerName || column.field
@@ -183,13 +182,11 @@ function GridColumnsPanel(props) {
183
182
  })
184
183
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridPanelFooter.GridPanelFooter, {
185
184
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.components.BaseButton, (0, _extends2.default)({
186
- onClick: () => toggleAllColumns(false),
187
- color: "primary"
185
+ onClick: () => toggleAllColumns(false)
188
186
  }, (_rootProps$components3 = rootProps.componentsProps) == null ? void 0 : _rootProps$components3.baseButton, {
189
187
  children: apiRef.current.getLocaleText('columnsPanelHideAllButton')
190
188
  })), /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.components.BaseButton, (0, _extends2.default)({
191
- onClick: () => toggleAllColumns(true),
192
- color: "primary"
189
+ onClick: () => toggleAllColumns(true)
193
190
  }, (_rootProps$components4 = rootProps.componentsProps) == null ? void 0 : _rootProps$components4.baseButton, {
194
191
  children: apiRef.current.getLocaleText('columnsPanelShowAllButton')
195
192
  }))]
@@ -140,8 +140,7 @@ const GridFilterPanel = /*#__PURE__*/React.forwardRef(function GridFilterPanel(p
140
140
  }), !rootProps.disableMultipleColumnsFiltering && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridPanelFooter.GridPanelFooter, {
141
141
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.components.BaseButton, (0, _extends2.default)({
142
142
  onClick: addNewFilter,
143
- startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.GridAddIcon, {}),
144
- color: "primary"
143
+ startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.GridAddIcon, {})
145
144
  }, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.baseButton, {
146
145
  children: apiRef.current.getLocaleText('filterPanelAddFilter')
147
146
  }))
@@ -63,7 +63,6 @@ const GridToolbarColumnsButton = /*#__PURE__*/React.forwardRef(function GridTool
63
63
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.components.BaseButton, (0, _extends2.default)({
64
64
  ref: ref,
65
65
  size: "small",
66
- color: "primary",
67
66
  "aria-label": apiRef.current.getLocaleText('toolbarColumnsLabel'),
68
67
  startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.components.ColumnSelectorIcon, {})
69
68
  }, other, {
@@ -123,7 +123,6 @@ const GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function GridTo
123
123
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
124
124
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.components.BaseButton, (0, _extends2.default)({
125
125
  ref: handleRef,
126
- color: "primary",
127
126
  size: "small",
128
127
  startIcon: startIcon,
129
128
  "aria-label": apiRef.current.getLocaleText('toolbarDensityLabel'),
@@ -75,7 +75,6 @@ const GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function GridTo
75
75
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
76
76
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.components.BaseButton, (0, _extends2.default)({
77
77
  ref: handleRef,
78
- color: "primary",
79
78
  size: "small",
80
79
  startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.components.ExportIcon, {}),
81
80
  "aria-expanded": open ? 'true' : undefined,
@@ -136,7 +136,6 @@ const GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolb
136
136
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.components.BaseButton, (0, _extends2.default)({
137
137
  ref: ref,
138
138
  size: "small",
139
- color: "primary",
140
139
  "aria-label": apiRef.current.getLocaleText('toolbarFiltersLabel'),
141
140
  startIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Badge.default, {
142
141
  badgeContent: activeFilters.length,
@@ -111,6 +111,7 @@ const GRID_DEFAULT_LOCALE_TEXT = {
111
111
  groupColumn: name => `Group by ${name}`,
112
112
  unGroupColumn: name => `Stop grouping by ${name}`,
113
113
  // Master/detail
114
+ detailPanelToggle: 'Detail panel toggle',
114
115
  expandDetailPanel: 'Expand',
115
116
  collapseDetailPanel: 'Collapse',
116
117
  // Used core components translation keys
@@ -1,26 +1,27 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
6
  exports.useGridColumnSpanning = void 0;
9
7
 
10
- var _react = _interopRequireDefault(require("react"));
8
+ var React = _interopRequireWildcard(require("react"));
11
9
 
12
10
  var _useGridApiMethod = require("../../utils/useGridApiMethod");
13
11
 
14
12
  var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
15
13
 
14
+ 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); }
15
+
16
+ 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
+
16
18
  /**
17
19
  * @requires useGridColumns (method, event)
18
20
  * @requires useGridParamsApi (method)
19
21
  */
20
22
  const useGridColumnSpanning = apiRef => {
21
- const lookup = _react.default.useRef({});
22
-
23
- const setCellColSpanInfo = _react.default.useCallback((rowId, columnIndex, cellColSpanInfo) => {
23
+ const lookup = React.useRef({});
24
+ const setCellColSpanInfo = React.useCallback((rowId, columnIndex, cellColSpanInfo) => {
24
25
  const sizes = lookup.current;
25
26
 
26
27
  if (!sizes[rowId]) {
@@ -29,15 +30,13 @@ const useGridColumnSpanning = apiRef => {
29
30
 
30
31
  sizes[rowId][columnIndex] = cellColSpanInfo;
31
32
  }, []);
32
-
33
- const getCellColSpanInfo = _react.default.useCallback((rowId, columnIndex) => {
33
+ const getCellColSpanInfo = React.useCallback((rowId, columnIndex) => {
34
34
  var _lookup$current$rowId;
35
35
 
36
36
  return (_lookup$current$rowId = lookup.current[rowId]) == null ? void 0 : _lookup$current$rowId[columnIndex];
37
37
  }, []); // Calculate `colSpan` for the cell.
38
38
 
39
-
40
- const calculateCellColSpan = _react.default.useCallback(params => {
39
+ const calculateCellColSpan = React.useCallback(params => {
41
40
  const {
42
41
  columnIndex,
43
42
  rowId,
@@ -91,8 +90,7 @@ const useGridColumnSpanning = apiRef => {
91
90
  };
92
91
  }, [apiRef, setCellColSpanInfo]); // Calculate `colSpan` for each cell in the row
93
92
 
94
-
95
- const calculateColSpan = _react.default.useCallback(({
93
+ const calculateColSpan = React.useCallback(({
96
94
  rowId,
97
95
  minFirstColumn,
98
96
  maxLastColumn
@@ -110,18 +108,15 @@ const useGridColumnSpanning = apiRef => {
110
108
  }
111
109
  }
112
110
  }, [calculateCellColSpan]);
113
-
114
111
  const columnSpanningApi = {
115
112
  unstable_getCellColSpanInfo: getCellColSpanInfo,
116
113
  unstable_calculateColSpan: calculateColSpan
117
114
  };
118
115
  (0, _useGridApiMethod.useGridApiMethod)(apiRef, columnSpanningApi, 'GridColumnSpanningAPI');
119
-
120
- const handleColumnReorderChange = _react.default.useCallback(() => {
116
+ const handleColumnReorderChange = React.useCallback(() => {
121
117
  // `colSpan` needs to be recalculated after column reordering
122
118
  lookup.current = {};
123
119
  }, []);
124
-
125
120
  (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnOrderChange', handleColumnReorderChange);
126
121
  };
127
122
 
@@ -58,7 +58,7 @@ const hasScroll = ({
58
58
 
59
59
  function useGridDimensions(apiRef, props) {
60
60
  const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useResizeContainer');
61
- const warningShown = React.useRef(false);
61
+ const errorShown = React.useRef(false);
62
62
  const rootDimensionsRef = React.useRef(null);
63
63
  const fullDimensionsRef = React.useRef(null);
64
64
  const rowsMeta = (0, _utils2.useGridSelector)(apiRef, _gridRowsMetaSelector.gridRowsMetaSelector);
@@ -115,7 +115,8 @@ function useGridDimensions(apiRef, props) {
115
115
  viewportOuterSize,
116
116
  viewportInnerSize,
117
117
  hasScrollX,
118
- hasScrollY
118
+ hasScrollY,
119
+ scrollBarSize
119
120
  };
120
121
  const prevDimensions = fullDimensionsRef.current;
121
122
  fullDimensionsRef.current = newFullDimensions;
@@ -165,14 +166,14 @@ function useGridDimensions(apiRef, props) {
165
166
 
166
167
  const isJSDOM = /jsdom/.test(window.navigator.userAgent);
167
168
 
168
- if (size.height === 0 && !warningShown.current && !props.autoHeight && !isJSDOM) {
169
- logger.warn(['The parent of the grid has an empty height.', 'You need to make sure the container has an intrinsic height.', 'The grid displays with a height of 0px.', '', 'You can find a solution in the docs:', 'https://mui.com/x/react-data-grid/layout/'].join('\n'));
170
- warningShown.current = true;
169
+ if (size.height === 0 && !errorShown.current && !props.autoHeight && !isJSDOM) {
170
+ logger.error(['The parent DOM element of the data grid has an empty height.', 'Please make sure that this element has an intrinsic height.', 'The grid displays with a height of 0px.', '', 'More details: https://mui.com/r/x-data-grid-no-dimensions.'].join('\n'));
171
+ errorShown.current = true;
171
172
  }
172
173
 
173
- if (size.width === 0 && !warningShown.current && !isJSDOM) {
174
- logger.warn(['The parent of the grid has an empty width.', 'You need to make sure the container has an intrinsic width.', 'The grid displays with a width of 0px.', '', 'You can find a solution in the docs:', 'https://mui.com/x/react-data-grid/layout/'].join('\n'));
175
- warningShown.current = true;
174
+ if (size.width === 0 && !errorShown.current && !isJSDOM) {
175
+ logger.error(['The parent DOM element of the data grid has an empty width.', 'Please make sure that this element has an intrinsic width.', 'The grid displays with a width of 0px.', '', 'More details: https://mui.com/r/x-data-grid-no-dimensions.'].join('\n'));
176
+ errorShown.current = true;
176
177
  }
177
178
 
178
179
  if (isTestEnvironment) {
@@ -11,6 +11,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
 
12
12
  var React = _interopRequireWildcard(require("react"));
13
13
 
14
+ var _utils = require("@mui/material/utils");
15
+
14
16
  var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
15
17
 
16
18
  var _useGridApiMethod = require("../../utils/useGridApiMethod");
@@ -62,86 +64,86 @@ const useGridRowsMeta = (apiRef, props) => {
62
64
  const currentPage = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, props);
63
65
  const hydrateRowsMeta = React.useCallback(() => {
64
66
  hasRowWithAutoHeight.current = false;
65
- apiRef.current.setState(state => {
66
- const densityFactor = (0, _densitySelector.gridDensityFactorSelector)(state, apiRef.current.instanceId);
67
- const positions = [];
68
- const currentPageTotalHeight = currentPage.rows.reduce((acc, row) => {
69
- positions.push(acc);
70
-
71
- if (!rowsHeightLookup.current[row.id]) {
72
- rowsHeightLookup.current[row.id] = {
73
- sizes: {
74
- base: rowHeightFromDensity
75
- },
76
- isResized: false,
77
- autoHeight: false,
78
- needsFirstMeasurement: true // Assume all rows will need to be measured by default
79
-
80
- };
81
- }
67
+ const densityFactor = (0, _densitySelector.gridDensityFactorSelector)(apiRef.current.state, apiRef.current.instanceId);
68
+ const positions = [];
69
+ const currentPageTotalHeight = currentPage.rows.reduce((acc, row) => {
70
+ positions.push(acc);
71
+
72
+ if (!rowsHeightLookup.current[row.id]) {
73
+ rowsHeightLookup.current[row.id] = {
74
+ sizes: {
75
+ base: rowHeightFromDensity
76
+ },
77
+ isResized: false,
78
+ autoHeight: false,
79
+ needsFirstMeasurement: true // Assume all rows will need to be measured by default
82
80
 
83
- const {
84
- isResized,
85
- needsFirstMeasurement,
86
- sizes
87
- } = rowsHeightLookup.current[row.id];
88
- let baseRowHeight = rowHeightFromDensity;
89
- const existingBaseRowHeight = sizes.base;
90
-
91
- if (isResized) {
92
- // Do not recalculate resized row height and use the value from the lookup
93
- baseRowHeight = existingBaseRowHeight;
94
- } else if (getRowHeightProp) {
95
- const rowHeightFromUser = getRowHeightProp((0, _extends2.default)({}, row, {
96
- densityFactor
97
- }));
98
-
99
- if (rowHeightFromUser === 'auto') {
100
- if (needsFirstMeasurement) {
101
- const estimatedRowHeight = getEstimatedRowHeight ? getEstimatedRowHeight((0, _extends2.default)({}, row, {
102
- densityFactor
103
- })) : rowHeightFromDensity; // If the row was not measured yet use the estimated row height
104
-
105
- baseRowHeight = estimatedRowHeight != null ? estimatedRowHeight : rowHeightFromDensity;
106
- } else {
107
- baseRowHeight = existingBaseRowHeight;
108
- }
109
-
110
- hasRowWithAutoHeight.current = true;
111
- rowsHeightLookup.current[row.id].autoHeight = true;
81
+ };
82
+ }
83
+
84
+ const {
85
+ isResized,
86
+ needsFirstMeasurement,
87
+ sizes
88
+ } = rowsHeightLookup.current[row.id];
89
+ let baseRowHeight = rowHeightFromDensity;
90
+ const existingBaseRowHeight = sizes.base;
91
+
92
+ if (isResized) {
93
+ // Do not recalculate resized row height and use the value from the lookup
94
+ baseRowHeight = existingBaseRowHeight;
95
+ } else if (getRowHeightProp) {
96
+ const rowHeightFromUser = getRowHeightProp((0, _extends2.default)({}, row, {
97
+ densityFactor
98
+ }));
99
+
100
+ if (rowHeightFromUser === 'auto') {
101
+ if (needsFirstMeasurement) {
102
+ const estimatedRowHeight = getEstimatedRowHeight ? getEstimatedRowHeight((0, _extends2.default)({}, row, {
103
+ densityFactor
104
+ })) : rowHeightFromDensity; // If the row was not measured yet use the estimated row height
105
+
106
+ baseRowHeight = estimatedRowHeight != null ? estimatedRowHeight : rowHeightFromDensity;
112
107
  } else {
113
- // Default back to base rowHeight if getRowHeight returns null or undefined.
114
- baseRowHeight = rowHeightFromUser != null ? rowHeightFromUser : rowHeightFromDensity;
115
- rowsHeightLookup.current[row.id].needsFirstMeasurement = false;
116
- rowsHeightLookup.current[row.id].autoHeight = false;
108
+ baseRowHeight = existingBaseRowHeight;
117
109
  }
110
+
111
+ hasRowWithAutoHeight.current = true;
112
+ rowsHeightLookup.current[row.id].autoHeight = true;
118
113
  } else {
114
+ // Default back to base rowHeight if getRowHeight returns null or undefined.
115
+ baseRowHeight = rowHeightFromUser != null ? rowHeightFromUser : rowHeightFromDensity;
119
116
  rowsHeightLookup.current[row.id].needsFirstMeasurement = false;
120
- } // We use an object to make simple to check if a height is already added or not
121
-
122
-
123
- const initialHeights = {
124
- base: baseRowHeight
125
- };
126
-
127
- if (getRowSpacing) {
128
- var _spacing$top, _spacing$bottom;
129
-
130
- const indexRelativeToCurrentPage = apiRef.current.getRowIndexRelativeToVisibleRows(row.id);
131
- const spacing = getRowSpacing((0, _extends2.default)({}, row, {
132
- isFirstVisible: indexRelativeToCurrentPage === 0,
133
- isLastVisible: indexRelativeToCurrentPage === currentPage.rows.length - 1,
134
- indexRelativeToCurrentPage
135
- }));
136
- initialHeights.spacingTop = (_spacing$top = spacing.top) != null ? _spacing$top : 0;
137
- initialHeights.spacingBottom = (_spacing$bottom = spacing.bottom) != null ? _spacing$bottom : 0;
117
+ rowsHeightLookup.current[row.id].autoHeight = false;
138
118
  }
139
-
140
- const processedSizes = apiRef.current.unstable_applyPipeProcessors('rowHeight', initialHeights, row);
141
- rowsHeightLookup.current[row.id].sizes = processedSizes;
142
- const finalRowHeight = Object.values(processedSizes).reduce((acc2, value) => acc2 + value, 0);
143
- return acc + finalRowHeight;
144
- }, 0);
119
+ } else {
120
+ rowsHeightLookup.current[row.id].needsFirstMeasurement = false;
121
+ } // We use an object to make simple to check if a height is already added or not
122
+
123
+
124
+ const initialHeights = {
125
+ base: baseRowHeight
126
+ };
127
+
128
+ if (getRowSpacing) {
129
+ var _spacing$top, _spacing$bottom;
130
+
131
+ const indexRelativeToCurrentPage = apiRef.current.getRowIndexRelativeToVisibleRows(row.id);
132
+ const spacing = getRowSpacing((0, _extends2.default)({}, row, {
133
+ isFirstVisible: indexRelativeToCurrentPage === 0,
134
+ isLastVisible: indexRelativeToCurrentPage === currentPage.rows.length - 1,
135
+ indexRelativeToCurrentPage
136
+ }));
137
+ initialHeights.spacingTop = (_spacing$top = spacing.top) != null ? _spacing$top : 0;
138
+ initialHeights.spacingBottom = (_spacing$bottom = spacing.bottom) != null ? _spacing$bottom : 0;
139
+ }
140
+
141
+ const processedSizes = apiRef.current.unstable_applyPipeProcessors('rowHeight', initialHeights, row);
142
+ rowsHeightLookup.current[row.id].sizes = processedSizes;
143
+ const finalRowHeight = Object.values(processedSizes).reduce((acc2, value) => acc2 + value, 0);
144
+ return acc + finalRowHeight;
145
+ }, 0);
146
+ apiRef.current.setState(state => {
145
147
  return (0, _extends2.default)({}, state, {
146
148
  rowsMeta: {
147
149
  currentPageTotalHeight,
@@ -174,6 +176,7 @@ const useGridRowsMeta = (apiRef, props) => {
174
176
  rowsHeightLookup.current[id].needsFirstMeasurement = false;
175
177
  hydrateRowsMeta();
176
178
  }, [hydrateRowsMeta]);
179
+ const debouncedHydrateRowsMeta = React.useMemo(() => (0, _utils.debounce)(hydrateRowsMeta), [hydrateRowsMeta]);
177
180
  const storeMeasuredRowHeight = React.useCallback((id, height) => {
178
181
  if (!rowsHeightLookup.current[id] || !rowsHeightLookup.current[id].autoHeight) {
179
182
  return;
@@ -185,9 +188,9 @@ const useGridRowsMeta = (apiRef, props) => {
185
188
  rowsHeightLookup.current[id].sizes.base = height;
186
189
 
187
190
  if (needsHydration) {
188
- hydrateRowsMeta();
191
+ debouncedHydrateRowsMeta();
189
192
  }
190
- }, [hydrateRowsMeta]);
193
+ }, [debouncedHydrateRowsMeta]);
191
194
  const rowHasAutoHeight = React.useCallback(id => {
192
195
  var _rowsHeightLookup$cur2;
193
196
 
@@ -197,7 +200,7 @@ const useGridRowsMeta = (apiRef, props) => {
197
200
  return lastMeasuredRowIndex.current;
198
201
  }, []);
199
202
  const setLastMeasuredRowIndex = React.useCallback(index => {
200
- if (hasRowWithAutoHeight.current) {
203
+ if (hasRowWithAutoHeight.current && index > lastMeasuredRowIndex.current) {
201
204
  lastMeasuredRowIndex.current = index;
202
205
  }
203
206
  }, []); // The effect is used to build the rows meta data - currentPageTotalHeight and positions.
@@ -48,14 +48,16 @@ const useGridSelectionPreProcessors = (apiRef, props) => {
48
48
  headerName: apiRef.current.getLocaleText('checkboxSelectionHeaderName')
49
49
  });
50
50
  const shouldHaveSelectionColumn = props.checkboxSelection;
51
- const haveSelectionColumn = columnsState.lookup[selectionColumn.field] != null;
51
+ const haveSelectionColumn = columnsState.lookup[_colDef.GRID_CHECKBOX_SELECTION_FIELD] != null;
52
52
 
53
53
  if (shouldHaveSelectionColumn && !haveSelectionColumn) {
54
- columnsState.lookup[selectionColumn.field] = selectionColumn;
55
- columnsState.all = [selectionColumn.field, ...columnsState.all];
54
+ columnsState.lookup[_colDef.GRID_CHECKBOX_SELECTION_FIELD] = selectionColumn;
55
+ columnsState.all = [_colDef.GRID_CHECKBOX_SELECTION_FIELD, ...columnsState.all];
56
56
  } else if (!shouldHaveSelectionColumn && haveSelectionColumn) {
57
- delete columnsState.lookup[selectionColumn.field];
58
- columnsState.all = columnsState.all.filter(field => field !== selectionColumn.field);
57
+ delete columnsState.lookup[_colDef.GRID_CHECKBOX_SELECTION_FIELD];
58
+ columnsState.all = columnsState.all.filter(field => field !== _colDef.GRID_CHECKBOX_SELECTION_FIELD);
59
+ } else if (shouldHaveSelectionColumn && haveSelectionColumn) {
60
+ columnsState.lookup[_colDef.GRID_CHECKBOX_SELECTION_FIELD] = (0, _extends2.default)({}, selectionColumn, columnsState.lookup[_colDef.GRID_CHECKBOX_SELECTION_FIELD]);
59
61
  }
60
62
 
61
63
  return columnsState;