@mui/x-data-grid 6.0.0-beta.5 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/CHANGELOG.md +175 -36
  2. package/DataGrid/DataGrid.js +6 -8
  3. package/components/GridColumnHeaders.d.ts +7 -0
  4. package/components/GridColumnHeaders.js +108 -0
  5. package/components/GridFooter.d.ts +1 -1
  6. package/components/GridLoadingOverlay.d.ts +1 -1
  7. package/components/GridNoResultsOverlay.d.ts +1 -1
  8. package/components/GridNoRowsOverlay.d.ts +1 -1
  9. package/components/GridRow.d.ts +13 -7
  10. package/components/GridRow.js +48 -30
  11. package/components/GridRowCount.d.ts +1 -1
  12. package/components/GridRowCount.js +1 -1
  13. package/components/GridScrollArea.js +1 -1
  14. package/components/GridSelectedRowCount.d.ts +1 -1
  15. package/components/GridSelectedRowCount.js +1 -1
  16. package/components/base/GridBody.d.ts +1 -4
  17. package/components/base/GridBody.js +43 -5
  18. package/components/base/GridOverlays.js +1 -1
  19. package/components/cell/GridCell.d.ts +2 -5
  20. package/components/cell/GridCell.js +14 -12
  21. package/components/cell/GridEditInputCell.js +1 -2
  22. package/components/cell/GridEditSingleSelectCell.js +17 -10
  23. package/components/columnHeaders/GridBaseColumnHeaders.d.ts +7 -0
  24. package/{modern/components/columnHeaders/GridColumnHeaders.js → components/columnHeaders/GridBaseColumnHeaders.js} +11 -15
  25. package/components/columnHeaders/GridColumnHeaderTitle.js +4 -6
  26. package/components/columnHeaders/GridColumnHeadersInner.d.ts +1 -1
  27. package/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  28. package/components/columnHeaders/GridIconButtonContainer.js +1 -1
  29. package/components/containers/GridFooterContainer.d.ts +1 -1
  30. package/components/containers/GridFooterContainer.js +7 -10
  31. package/components/containers/GridMainContainer.js +1 -1
  32. package/components/containers/GridOverlay.d.ts +1 -2
  33. package/components/containers/GridOverlay.js +4 -6
  34. package/components/containers/GridRootStyles.js +7 -3
  35. package/components/containers/GridToolbarContainer.d.ts +1 -1
  36. package/components/containers/GridToolbarContainer.js +1 -1
  37. package/components/index.d.ts +1 -1
  38. package/components/index.js +1 -1
  39. package/components/panel/GridColumnsPanel.js +1 -2
  40. package/components/panel/GridPanel.d.ts +1 -1
  41. package/components/panel/GridPanelContent.d.ts +1 -1
  42. package/components/panel/GridPanelContent.js +1 -1
  43. package/components/panel/GridPanelFooter.d.ts +1 -1
  44. package/components/panel/GridPanelFooter.js +1 -1
  45. package/components/panel/GridPanelHeader.d.ts +1 -1
  46. package/components/panel/GridPanelHeader.js +1 -1
  47. package/components/panel/filterPanel/GridFilterForm.js +32 -30
  48. package/components/panel/filterPanel/GridFilterInputBoolean.js +12 -9
  49. package/components/panel/filterPanel/GridFilterInputDate.js +1 -2
  50. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -1
  51. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +30 -13
  52. package/components/panel/filterPanel/GridFilterInputValue.js +1 -2
  53. package/components/panel/filterPanel/GridFilterPanel.d.ts +3 -3
  54. package/components/panel/filterPanel/GridFilterPanel.js +8 -1
  55. package/components/virtualization/GridVirtualScroller.d.ts +1 -1
  56. package/components/virtualization/GridVirtualScroller.js +1 -1
  57. package/components/virtualization/GridVirtualScrollerContent.d.ts +1 -1
  58. package/components/virtualization/GridVirtualScrollerContent.js +1 -1
  59. package/components/virtualization/GridVirtualScrollerRenderZone.d.ts +1 -1
  60. package/components/virtualization/GridVirtualScrollerRenderZone.js +1 -1
  61. package/constants/defaultGridSlotsComponents.js +5 -56
  62. package/constants/gridClasses.d.ts +1 -1
  63. package/hooks/core/useGridLocaleText.js +2 -4
  64. package/hooks/features/columnGrouping/gridColumnGroupsUtils.js +5 -5
  65. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +22 -1
  66. package/hooks/features/columnHeaders/useGridColumnHeaders.js +17 -26
  67. package/hooks/features/columnMenu/columnMenuInterfaces.d.ts +2 -2
  68. package/hooks/features/editing/useGridCellEditing.js +1 -1
  69. package/hooks/features/editing/useGridEditing.js +1 -1
  70. package/hooks/features/editing/useGridRowEditing.js +1 -1
  71. package/hooks/features/export/useGridPrintExport.js +10 -11
  72. package/hooks/features/statePersistence/gridStatePersistenceInterface.d.ts +2 -0
  73. package/hooks/features/virtualization/useGridVirtualScroller.js +35 -18
  74. package/index.d.ts +3 -0
  75. package/index.js +5 -1
  76. package/internals/index.d.ts +2 -1
  77. package/internals/index.js +1 -1
  78. package/legacy/DataGrid/DataGrid.js +6 -8
  79. package/legacy/components/GridColumnHeaders.js +106 -0
  80. package/legacy/components/GridRow.js +46 -30
  81. package/legacy/components/GridRowCount.js +1 -1
  82. package/legacy/components/GridScrollArea.js +1 -1
  83. package/legacy/components/GridSelectedRowCount.js +1 -1
  84. package/legacy/components/base/GridBody.js +43 -5
  85. package/legacy/components/base/GridOverlays.js +1 -1
  86. package/legacy/components/cell/GridCell.js +14 -12
  87. package/legacy/components/cell/GridEditInputCell.js +1 -2
  88. package/legacy/components/cell/GridEditSingleSelectCell.js +17 -12
  89. package/legacy/components/columnHeaders/{GridColumnHeaders.js → GridBaseColumnHeaders.js} +11 -14
  90. package/legacy/components/columnHeaders/GridColumnHeaderTitle.js +6 -9
  91. package/legacy/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  92. package/legacy/components/columnHeaders/GridIconButtonContainer.js +1 -1
  93. package/legacy/components/containers/GridFooterContainer.js +7 -10
  94. package/legacy/components/containers/GridMainContainer.js +1 -1
  95. package/legacy/components/containers/GridOverlay.js +9 -12
  96. package/legacy/components/containers/GridRootStyles.js +7 -3
  97. package/legacy/components/containers/GridToolbarContainer.js +1 -1
  98. package/legacy/components/index.js +1 -1
  99. package/legacy/components/panel/GridColumnsPanel.js +1 -2
  100. package/legacy/components/panel/GridPanelContent.js +1 -1
  101. package/legacy/components/panel/GridPanelFooter.js +1 -1
  102. package/legacy/components/panel/GridPanelHeader.js +1 -1
  103. package/legacy/components/panel/filterPanel/GridFilterForm.js +32 -30
  104. package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +12 -9
  105. package/legacy/components/panel/filterPanel/GridFilterInputDate.js +1 -2
  106. package/legacy/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +2 -2
  107. package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +29 -13
  108. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +1 -2
  109. package/legacy/components/panel/filterPanel/GridFilterPanel.js +8 -1
  110. package/legacy/components/virtualization/GridVirtualScroller.js +1 -1
  111. package/legacy/components/virtualization/GridVirtualScrollerContent.js +1 -1
  112. package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +1 -1
  113. package/legacy/constants/defaultGridSlotsComponents.js +5 -56
  114. package/legacy/hooks/core/useGridLocaleText.js +2 -4
  115. package/legacy/hooks/features/columnGrouping/gridColumnGroupsUtils.js +5 -5
  116. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +17 -26
  117. package/legacy/hooks/features/editing/useGridCellEditing.js +1 -1
  118. package/legacy/hooks/features/editing/useGridEditing.js +1 -1
  119. package/legacy/hooks/features/editing/useGridRowEditing.js +1 -1
  120. package/legacy/hooks/features/export/useGridPrintExport.js +10 -11
  121. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +33 -16
  122. package/legacy/index.js +5 -1
  123. package/legacy/internals/index.js +1 -1
  124. package/legacy/locales/arSD.js +14 -19
  125. package/legacy/locales/csCZ.js +25 -33
  126. package/legacy/locales/esES.js +1 -1
  127. package/legacy/material/components/MUISelectOption.js +14 -0
  128. package/legacy/material/index.js +65 -0
  129. package/legacy/models/gridFilterItem.js +2 -0
  130. package/legacy/models/params/gridRowParams.js +4 -0
  131. package/locales/arSD.js +14 -19
  132. package/locales/csCZ.js +24 -32
  133. package/locales/esES.js +1 -1
  134. package/material/components/MUISelectOption.d.ts +3 -0
  135. package/material/components/MUISelectOption.js +16 -0
  136. package/material/index.d.ts +57 -0
  137. package/material/index.js +65 -0
  138. package/material/package.json +6 -0
  139. package/models/api/gridEditingApi.d.ts +1 -1
  140. package/models/colDef/gridColDef.d.ts +6 -0
  141. package/models/gridExport.d.ts +4 -0
  142. package/models/gridFilterItem.d.ts +2 -0
  143. package/models/gridFilterItem.js +2 -0
  144. package/models/gridFilterModel.d.ts +2 -0
  145. package/models/gridFilterOperator.d.ts +2 -0
  146. package/models/gridIconSlotsComponent.d.ts +10 -0
  147. package/models/gridSlotsComponent.d.ts +15 -0
  148. package/models/gridSlotsComponentsProps.d.ts +104 -24
  149. package/models/params/gridRowParams.d.ts +6 -0
  150. package/models/params/gridRowParams.js +4 -0
  151. package/models/props/DataGridProps.d.ts +6 -6
  152. package/modern/DataGrid/DataGrid.js +6 -8
  153. package/modern/components/GridColumnHeaders.js +108 -0
  154. package/modern/components/GridRow.js +48 -27
  155. package/modern/components/GridRowCount.js +1 -1
  156. package/modern/components/GridScrollArea.js +1 -1
  157. package/modern/components/GridSelectedRowCount.js +1 -1
  158. package/modern/components/base/GridBody.js +43 -5
  159. package/modern/components/base/GridOverlays.js +1 -1
  160. package/modern/components/cell/GridCell.js +14 -12
  161. package/modern/components/cell/GridEditInputCell.js +1 -2
  162. package/modern/components/cell/GridEditSingleSelectCell.js +16 -10
  163. package/{components/columnHeaders/GridColumnHeaders.js → modern/components/columnHeaders/GridBaseColumnHeaders.js} +11 -15
  164. package/modern/components/columnHeaders/GridColumnHeaderTitle.js +4 -6
  165. package/modern/components/columnHeaders/GridColumnHeadersInner.js +1 -1
  166. package/modern/components/columnHeaders/GridIconButtonContainer.js +1 -1
  167. package/modern/components/containers/GridFooterContainer.js +7 -10
  168. package/modern/components/containers/GridMainContainer.js +1 -1
  169. package/modern/components/containers/GridOverlay.js +4 -6
  170. package/modern/components/containers/GridRootStyles.js +7 -3
  171. package/modern/components/containers/GridToolbarContainer.js +1 -1
  172. package/modern/components/index.js +1 -1
  173. package/modern/components/panel/GridColumnsPanel.js +1 -2
  174. package/modern/components/panel/GridPanelContent.js +1 -1
  175. package/modern/components/panel/GridPanelFooter.js +1 -1
  176. package/modern/components/panel/GridPanelHeader.js +1 -1
  177. package/modern/components/panel/filterPanel/GridFilterForm.js +27 -25
  178. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +9 -6
  179. package/modern/components/panel/filterPanel/GridFilterInputDate.js +1 -2
  180. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -1
  181. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +27 -10
  182. package/modern/components/panel/filterPanel/GridFilterInputValue.js +1 -2
  183. package/modern/components/panel/filterPanel/GridFilterPanel.js +8 -1
  184. package/modern/components/virtualization/GridVirtualScroller.js +1 -1
  185. package/modern/components/virtualization/GridVirtualScrollerContent.js +1 -1
  186. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +1 -1
  187. package/modern/constants/defaultGridSlotsComponents.js +5 -56
  188. package/modern/hooks/core/useGridLocaleText.js +2 -4
  189. package/modern/hooks/features/columnGrouping/gridColumnGroupsUtils.js +5 -5
  190. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +17 -26
  191. package/modern/hooks/features/editing/useGridCellEditing.js +1 -1
  192. package/modern/hooks/features/editing/useGridEditing.js +1 -1
  193. package/modern/hooks/features/editing/useGridRowEditing.js +1 -1
  194. package/modern/hooks/features/export/useGridPrintExport.js +10 -11
  195. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +33 -17
  196. package/modern/index.js +5 -1
  197. package/modern/internals/index.js +1 -1
  198. package/modern/locales/arSD.js +14 -19
  199. package/modern/locales/csCZ.js +24 -32
  200. package/modern/locales/esES.js +1 -1
  201. package/modern/material/components/MUISelectOption.js +16 -0
  202. package/modern/material/index.js +65 -0
  203. package/modern/models/gridFilterItem.js +2 -0
  204. package/modern/models/params/gridRowParams.js +4 -0
  205. package/node/DataGrid/DataGrid.js +6 -8
  206. package/node/components/GridColumnHeaders.js +116 -0
  207. package/node/components/GridRow.js +48 -27
  208. package/node/components/GridRowCount.js +2 -2
  209. package/node/components/GridScrollArea.js +2 -2
  210. package/node/components/GridSelectedRowCount.js +2 -2
  211. package/node/components/base/GridBody.js +43 -5
  212. package/node/components/base/GridOverlays.js +3 -3
  213. package/node/components/cell/GridCell.js +14 -11
  214. package/node/components/cell/GridEditInputCell.js +1 -2
  215. package/node/components/cell/GridEditSingleSelectCell.js +15 -10
  216. package/node/components/columnHeaders/{GridColumnHeaders.js → GridBaseColumnHeaders.js} +14 -18
  217. package/node/components/columnHeaders/GridColumnHeaderTitle.js +5 -7
  218. package/node/components/columnHeaders/GridColumnHeadersInner.js +2 -2
  219. package/node/components/columnHeaders/GridIconButtonContainer.js +2 -2
  220. package/node/components/containers/GridFooterContainer.js +8 -11
  221. package/node/components/containers/GridMainContainer.js +2 -2
  222. package/node/components/containers/GridOverlay.js +5 -7
  223. package/node/components/containers/GridRootStyles.js +7 -3
  224. package/node/components/containers/GridToolbarContainer.js +2 -2
  225. package/node/components/index.js +1 -1
  226. package/node/components/panel/GridColumnsPanel.js +1 -2
  227. package/node/components/panel/GridPanelContent.js +2 -2
  228. package/node/components/panel/GridPanelFooter.js +2 -2
  229. package/node/components/panel/GridPanelHeader.js +2 -2
  230. package/node/components/panel/filterPanel/GridFilterForm.js +26 -25
  231. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +9 -6
  232. package/node/components/panel/filterPanel/GridFilterInputDate.js +1 -2
  233. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -1
  234. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +26 -10
  235. package/node/components/panel/filterPanel/GridFilterInputValue.js +1 -2
  236. package/node/components/panel/filterPanel/GridFilterPanel.js +8 -1
  237. package/node/components/virtualization/GridVirtualScroller.js +2 -2
  238. package/node/components/virtualization/GridVirtualScrollerContent.js +2 -2
  239. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +2 -2
  240. package/node/constants/defaultGridSlotsComponents.js +4 -55
  241. package/node/hooks/core/useGridLocaleText.js +2 -4
  242. package/node/hooks/features/columnGrouping/gridColumnGroupsUtils.js +5 -5
  243. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +19 -28
  244. package/node/hooks/features/editing/useGridCellEditing.js +1 -1
  245. package/node/hooks/features/editing/useGridEditing.js +1 -1
  246. package/node/hooks/features/editing/useGridRowEditing.js +1 -1
  247. package/node/hooks/features/export/useGridPrintExport.js +10 -11
  248. package/node/hooks/features/virtualization/useGridVirtualScroller.js +32 -15
  249. package/node/index.js +9 -1
  250. package/node/internals/index.js +4 -4
  251. package/node/locales/arSD.js +14 -19
  252. package/node/locales/csCZ.js +24 -32
  253. package/node/locales/esES.js +1 -1
  254. package/node/{components/DataGridColumnHeaders.js → material/components/MUISelectOption.js} +13 -35
  255. package/node/material/index.js +73 -0
  256. package/node/models/gridFilterItem.js +2 -0
  257. package/node/models/params/gridRowParams.js +4 -0
  258. package/package.json +1 -1
  259. package/components/DataGridColumnHeaders.d.ts +0 -6
  260. package/components/DataGridColumnHeaders.js +0 -38
  261. package/components/columnHeaders/GridColumnHeaders.d.ts +0 -7
  262. package/legacy/components/DataGridColumnHeaders.js +0 -36
  263. package/modern/components/DataGridColumnHeaders.js +0 -38
  264. /package/legacy/{components/columnHeaders → material/icons}/GridColumnUnsortedIcon.js +0 -0
  265. /package/legacy/{components → material}/icons/index.js +0 -0
  266. /package/{components/columnHeaders → material/icons}/GridColumnUnsortedIcon.d.ts +0 -0
  267. /package/{components/columnHeaders → material/icons}/GridColumnUnsortedIcon.js +0 -0
  268. /package/{components → material}/icons/index.d.ts +0 -0
  269. /package/{components → material}/icons/index.js +0 -0
  270. /package/modern/{components/columnHeaders → material/icons}/GridColumnUnsortedIcon.js +0 -0
  271. /package/modern/{components → material}/icons/index.js +0 -0
  272. /package/node/{components/columnHeaders → material/icons}/GridColumnUnsortedIcon.js +0 -0
  273. /package/node/{components → material}/icons/index.js +0 -0
@@ -5,7 +5,6 @@ var _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef"];
5
5
  import * as React from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import { unstable_useId as useId } from '@mui/utils';
8
- import { GridLoadIcon } from '../../icons';
9
8
  import { useGridRootProps } from '../../../hooks/utils/useGridRootProps';
10
9
  import { jsx as _jsx } from "react/jsx-runtime";
11
10
  export var SUBMIT_FILTER_STROKE_TIME = 500;
@@ -51,7 +50,7 @@ function GridFilterInputValue(props) {
51
50
  setFilterValueState(String(itemValue));
52
51
  }, [item.value]);
53
52
  var InputProps = applying ? {
54
- endAdornment: /*#__PURE__*/_jsx(GridLoadIcon, {})
53
+ endAdornment: /*#__PURE__*/_jsx(rootProps.slots.loadIcon, {})
55
54
  } : others.InputProps;
56
55
  return /*#__PURE__*/_jsx(rootProps.slots.baseTextField, _extends({
57
56
  id: id,
@@ -55,6 +55,9 @@ var GridFilterPanel = /*#__PURE__*/React.forwardRef(function GridFilterPanel(pro
55
55
  currentFilters: (filterModel == null ? void 0 : filterModel.items) || [],
56
56
  columns: filterableColumns
57
57
  });
58
+ if (nextFieldName === null) {
59
+ return null;
60
+ }
58
61
  nextColumnWithOperator = filterableColumns.find(function (_ref) {
59
62
  var field = _ref.field;
60
63
  return field === nextFieldName;
@@ -81,6 +84,9 @@ var GridFilterPanel = /*#__PURE__*/React.forwardRef(function GridFilterPanel(pro
81
84
  currentFilters: currentFilters,
82
85
  columns: filterableColumns
83
86
  });
87
+ if (nextColumnFieldName === null) {
88
+ return null;
89
+ }
84
90
  var nextColumnWithOperator = filterableColumns.find(function (_ref2) {
85
91
  var field = _ref2.field;
86
92
  return field === nextColumnFieldName;
@@ -188,6 +194,7 @@ process.env.NODE_ENV !== "production" ? GridFilterPanel.propTypes = {
188
194
  columnInputProps: PropTypes.any,
189
195
  columnsSort: PropTypes.oneOf(['asc', 'desc']),
190
196
  deleteIconProps: PropTypes.any,
197
+ filterColumns: PropTypes.func,
191
198
  logicOperatorInputProps: PropTypes.any,
192
199
  operatorInputProps: PropTypes.any,
193
200
  valueInputProps: PropTypes.any
@@ -195,7 +202,7 @@ process.env.NODE_ENV !== "production" ? GridFilterPanel.propTypes = {
195
202
  /**
196
203
  * Function that returns the next filter item to be picked as default filter.
197
204
  * @param {GetColumnForNewFilterArgs} args Currently configured filters and columns.
198
- * @returns {GridColDef['field']} The field to be used for the next filter.
205
+ * @returns {GridColDef['field']} The field to be used for the next filter or `null` to prevent adding a filter.
199
206
  */
200
207
  getColumnForNewFilter: PropTypes.func,
201
208
  /**
@@ -3,7 +3,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
3
3
  var _excluded = ["className"];
4
4
  import * as React from 'react';
5
5
  import clsx from 'clsx';
6
- import { styled } from '@mui/material/styles';
6
+ import { styled } from '@mui/system';
7
7
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
8
8
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
@@ -3,7 +3,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
3
3
  var _excluded = ["className", "style"];
4
4
  import * as React from 'react';
5
5
  import clsx from 'clsx';
6
- import { styled } from '@mui/material/styles';
6
+ import { styled } from '@mui/system';
7
7
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
8
8
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
@@ -3,7 +3,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
3
3
  var _excluded = ["className"];
4
4
  import * as React from 'react';
5
5
  import clsx from 'clsx';
6
- import { styled } from '@mui/material/styles';
6
+ import { styled } from '@mui/system';
7
7
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
8
8
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
@@ -1,66 +1,15 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import MUICheckbox from '@mui/material/Checkbox';
3
- import MUITextField from '@mui/material/TextField';
4
- import MUIFormControl from '@mui/material/FormControl';
5
- import MUISelect from '@mui/material/Select';
6
- import MUISwitch from '@mui/material/Switch';
7
- import MUIButton from '@mui/material/Button';
8
- import MUIIconButton from '@mui/material/IconButton';
9
- import MUITooltip from '@mui/material/Tooltip';
10
- import MUIPopper from '@mui/material/Popper';
11
- import { GridArrowDownwardIcon, GridArrowUpwardIcon, GridCell, GridSkeletonCell, GridCheckIcon, GridCloseIcon, GridColumnIcon, GridColumnsPanel, GridFilterAltIcon, GridFilterListIcon, GridFilterPanel, GridFooter, GridLoadingOverlay, GridNoRowsOverlay, GridPagination, GridPanel, GridPreferencesPanel, GridRow, GridSaveAltIcon, GridSeparatorIcon, GridTableRowsIcon, GridTripleDotsVerticalIcon, GridViewHeadlineIcon, GridViewStreamIcon, GridMoreVertIcon, GridExpandMoreIcon, GridKeyboardArrowRight, GridAddIcon, GridRemoveIcon, GridDragIcon, GridColumnHeaderFilterIconButton, GridSearchIcon, GridVisibilityOffIcon, GridViewColumnIcon, GridClearIcon, GridDeleteIcon, GridDeleteForeverIcon } from '../components';
2
+ import { GridCell, GridSkeletonCell, GridColumnsPanel, GridFilterPanel, GridFooter, GridLoadingOverlay, GridNoRowsOverlay, GridPagination, GridPanel, GridPreferencesPanel, GridRow, GridColumnHeaderFilterIconButton } from '../components';
3
+ import { GridColumnHeaders } from '../components/GridColumnHeaders';
12
4
  import { GridColumnMenu } from '../components/menu/columnMenu/GridColumnMenu';
13
- import { GridColumnUnsortedIcon } from '../components/columnHeaders/GridColumnUnsortedIcon';
14
5
  import { GridNoResultsOverlay } from '../components/GridNoResultsOverlay';
15
- var DEFAULT_GRID_ICON_SLOTS_COMPONENTS = {
16
- BooleanCellTrueIcon: GridCheckIcon,
17
- BooleanCellFalseIcon: GridCloseIcon,
18
- ColumnMenuIcon: GridTripleDotsVerticalIcon,
19
- OpenFilterButtonIcon: GridFilterListIcon,
20
- FilterPanelAddIcon: GridAddIcon,
21
- FilterPanelDeleteIcon: GridDeleteIcon,
22
- FilterPanelRemoveAllIcon: GridDeleteForeverIcon,
23
- ColumnFilteredIcon: GridFilterAltIcon,
24
- ColumnSelectorIcon: GridColumnIcon,
25
- ColumnUnsortedIcon: GridColumnUnsortedIcon,
26
- ColumnSortedAscendingIcon: GridArrowUpwardIcon,
27
- ColumnSortedDescendingIcon: GridArrowDownwardIcon,
28
- ColumnResizeIcon: GridSeparatorIcon,
29
- DensityCompactIcon: GridViewHeadlineIcon,
30
- DensityStandardIcon: GridTableRowsIcon,
31
- DensityComfortableIcon: GridViewStreamIcon,
32
- ExportIcon: GridSaveAltIcon,
33
- MoreActionsIcon: GridMoreVertIcon,
34
- TreeDataCollapseIcon: GridExpandMoreIcon,
35
- TreeDataExpandIcon: GridKeyboardArrowRight,
36
- GroupingCriteriaCollapseIcon: GridExpandMoreIcon,
37
- GroupingCriteriaExpandIcon: GridKeyboardArrowRight,
38
- DetailPanelExpandIcon: GridAddIcon,
39
- DetailPanelCollapseIcon: GridRemoveIcon,
40
- RowReorderIcon: GridDragIcon,
41
- QuickFilterIcon: GridSearchIcon,
42
- QuickFilterClearIcon: GridCloseIcon,
43
- ColumnMenuHideIcon: GridVisibilityOffIcon,
44
- ColumnMenuSortAscendingIcon: GridArrowUpwardIcon,
45
- ColumnMenuSortDescendingIcon: GridArrowDownwardIcon,
46
- ColumnMenuFilterIcon: GridFilterAltIcon,
47
- ColumnMenuManageColumnsIcon: GridViewColumnIcon,
48
- ColumnMenuClearIcon: GridClearIcon
49
- };
50
- export var DATA_GRID_DEFAULT_SLOTS_COMPONENTS = _extends({}, DEFAULT_GRID_ICON_SLOTS_COMPONENTS, {
51
- BaseCheckbox: MUICheckbox,
52
- BaseTextField: MUITextField,
53
- BaseFormControl: MUIFormControl,
54
- BaseSelect: MUISelect,
55
- BaseSwitch: MUISwitch,
56
- BaseButton: MUIButton,
57
- BaseIconButton: MUIIconButton,
58
- BaseTooltip: MUITooltip,
59
- BasePopper: MUIPopper,
6
+ import materialSlots from '../material';
7
+ export var DATA_GRID_DEFAULT_SLOTS_COMPONENTS = _extends({}, materialSlots, {
60
8
  Cell: GridCell,
61
9
  SkeletonCell: GridSkeletonCell,
62
10
  ColumnHeaderFilterIconButton: GridColumnHeaderFilterIconButton,
63
11
  ColumnMenu: GridColumnMenu,
12
+ ColumnHeaders: GridColumnHeaders,
64
13
  Footer: GridFooter,
65
14
  Toolbar: null,
66
15
  PreferencesPanel: GridPreferencesPanel,
@@ -1,5 +1,4 @@
1
1
  import * as React from 'react';
2
- import { useGridApiMethod } from '../utils/useGridApiMethod';
3
2
  export var useGridLocaleText = function useGridLocaleText(apiRef, props) {
4
3
  var getLocaleText = React.useCallback(function (key) {
5
4
  if (props.localeText[key] == null) {
@@ -7,8 +6,7 @@ export var useGridLocaleText = function useGridLocaleText(apiRef, props) {
7
6
  }
8
7
  return props.localeText[key];
9
8
  }, [props.localeText]);
10
- var localeTextApi = {
9
+ apiRef.current.register('public', {
11
10
  getLocaleText: getLocaleText
12
- };
13
- useGridApiMethod(apiRef, localeTextApi, 'public');
11
+ });
14
12
  };
@@ -2,18 +2,18 @@ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
2
  import { isLeaf } from '../../../models/gridColumnGrouping';
3
3
  import { isDeepEqual } from '../../../utils/utils';
4
4
  // This is the recurrence function that help writing `unwrapGroupingColumnModel()`
5
- var recurrentUnwrapGroupingColumnModel = function recurrentUnwrapGroupingColumnModel(columnGroupNode, parents, unwrappedGroupingModelToComplet) {
5
+ var recurrentUnwrapGroupingColumnModel = function recurrentUnwrapGroupingColumnModel(columnGroupNode, parents, unwrappedGroupingModelToComplete) {
6
6
  if (isLeaf(columnGroupNode)) {
7
- if (unwrappedGroupingModelToComplet[columnGroupNode.field] !== undefined) {
8
- throw new Error(["MUI: columnGroupingModel contains duplicated field", "column field ".concat(columnGroupNode.field, " occurrs two times in the grouping model:"), "- ".concat(unwrappedGroupingModelToComplet[columnGroupNode.field].join(' > ')), "- ".concat(parents.join(' > '))].join('\n'));
7
+ if (unwrappedGroupingModelToComplete[columnGroupNode.field] !== undefined) {
8
+ throw new Error(["MUI: columnGroupingModel contains duplicated field", "column field ".concat(columnGroupNode.field, " occurs two times in the grouping model:"), "- ".concat(unwrappedGroupingModelToComplete[columnGroupNode.field].join(' > ')), "- ".concat(parents.join(' > '))].join('\n'));
9
9
  }
10
- unwrappedGroupingModelToComplet[columnGroupNode.field] = parents;
10
+ unwrappedGroupingModelToComplete[columnGroupNode.field] = parents;
11
11
  return;
12
12
  }
13
13
  var groupId = columnGroupNode.groupId,
14
14
  children = columnGroupNode.children;
15
15
  children.forEach(function (child) {
16
- recurrentUnwrapGroupingColumnModel(child, [].concat(_toConsumableArray(parents), [groupId]), unwrappedGroupingModelToComplet);
16
+ recurrentUnwrapGroupingColumnModel(child, [].concat(_toConsumableArray(parents), [groupId]), unwrappedGroupingModelToComplete);
17
17
  });
18
18
  };
19
19
 
@@ -3,16 +3,9 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
3
  import * as React from 'react';
4
4
  import * as ReactDOM from 'react-dom';
5
5
  import { unstable_useForkRef as useForkRef } from '@mui/utils';
6
- import { styled, useTheme } from '@mui/material/styles';
6
+ import { styled, useTheme } from '@mui/system';
7
7
  import { defaultMemoize } from 'reselect';
8
8
  import { useGridPrivateApiContext } from '../../utils/useGridPrivateApiContext';
9
- import { useGridSelector } from '../../utils/useGridSelector';
10
- import { gridVisibleColumnDefinitionsSelector, gridColumnPositionsSelector, gridColumnVisibilityModelSelector } from '../columns/gridColumnsSelector';
11
- import { gridTabIndexColumnHeaderSelector, gridTabIndexCellSelector, gridFocusColumnHeaderSelector, unstable_gridFocusColumnGroupHeaderSelector, unstable_gridTabIndexColumnGroupHeaderSelector } from '../focus/gridFocusStateSelector';
12
- import { gridDensityFactorSelector } from '../density/densitySelector';
13
- import { gridFilterActiveItemsLookupSelector } from '../filter/gridFilterSelector';
14
- import { gridSortColumnLookupSelector } from '../sorting/gridSortingSelector';
15
- import { gridColumnMenuSelector } from '../columnMenu/columnMenuSelector';
16
9
  import { useGridRootProps } from '../../utils/useGridRootProps';
17
10
  import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
18
11
  import { GridColumnHeaderItem } from '../../../components/columnHeaders/GridColumnHeaderItem';
@@ -20,7 +13,6 @@ import { getFirstColumnIndexToRender, getTotalHeaderHeight } from '../columns/gr
20
13
  import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
21
14
  import { getRenderableIndexes } from '../virtualization/useGridVirtualScroller';
22
15
  import { GridColumnGroupHeader } from '../../../components/columnHeaders/GridColumnGroupHeader';
23
- import { gridColumnGroupsHeaderMaxDepthSelector, gridColumnGroupsHeaderStructureSelector } from '../columnGrouping/gridColumnGroupsSelector';
24
16
  import { jsx as _jsx } from "react/jsx-runtime";
25
17
  var GridColumnHeaderRow = styled('div', {
26
18
  name: 'MuiDataGrid',
@@ -39,7 +31,21 @@ function isUIEvent(event) {
39
31
  export var useGridColumnHeaders = function useGridColumnHeaders(props) {
40
32
  var innerRefProp = props.innerRef,
41
33
  _props$minColumnIndex = props.minColumnIndex,
42
- minColumnIndex = _props$minColumnIndex === void 0 ? 0 : _props$minColumnIndex;
34
+ minColumnIndex = _props$minColumnIndex === void 0 ? 0 : _props$minColumnIndex,
35
+ visibleColumns = props.visibleColumns,
36
+ sortColumnLookup = props.sortColumnLookup,
37
+ filterColumnLookup = props.filterColumnLookup,
38
+ columnPositions = props.columnPositions,
39
+ columnHeaderTabIndexState = props.columnHeaderTabIndexState,
40
+ columnGroupHeaderTabIndexState = props.columnGroupHeaderTabIndexState,
41
+ columnHeaderFocus = props.columnHeaderFocus,
42
+ columnGroupHeaderFocus = props.columnGroupHeaderFocus,
43
+ densityFactor = props.densityFactor,
44
+ headerGroupingMaxDepth = props.headerGroupingMaxDepth,
45
+ columnMenuState = props.columnMenuState,
46
+ columnVisibility = props.columnVisibility,
47
+ columnGroupsHeaderStructure = props.columnGroupsHeaderStructure,
48
+ hasOtherElementInTabSequence = props.hasOtherElementInTabSequence;
43
49
  var theme = useTheme();
44
50
  var _React$useState = React.useState(''),
45
51
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -50,20 +56,6 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
50
56
  resizeCol = _React$useState4[0],
51
57
  setResizeCol = _React$useState4[1];
52
58
  var apiRef = useGridPrivateApiContext();
53
- var visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);
54
- var columnPositions = useGridSelector(apiRef, gridColumnPositionsSelector);
55
- var columnHeaderTabIndexState = useGridSelector(apiRef, gridTabIndexColumnHeaderSelector);
56
- var cellTabIndexState = useGridSelector(apiRef, gridTabIndexCellSelector);
57
- var columnGroupHeaderTabIndexState = useGridSelector(apiRef, unstable_gridTabIndexColumnGroupHeaderSelector);
58
- var columnHeaderFocus = useGridSelector(apiRef, gridFocusColumnHeaderSelector);
59
- var columnGroupHeaderFocus = useGridSelector(apiRef, unstable_gridFocusColumnGroupHeaderSelector);
60
- var densityFactor = useGridSelector(apiRef, gridDensityFactorSelector);
61
- var headerGroupingMaxDepth = useGridSelector(apiRef, gridColumnGroupsHeaderMaxDepthSelector);
62
- var filterColumnLookup = useGridSelector(apiRef, gridFilterActiveItemsLookupSelector);
63
- var sortColumnLookup = useGridSelector(apiRef, gridSortColumnLookupSelector);
64
- var columnMenuState = useGridSelector(apiRef, gridColumnMenuSelector);
65
- var columnVisibility = useGridSelector(apiRef, gridColumnVisibilityModelSelector);
66
- var columnGroupsHeaderStructure = useGridSelector(apiRef, gridColumnGroupsHeaderStructureSelector);
67
59
  var rootProps = useGridRootProps();
68
60
  var innerRef = React.useRef(null);
69
61
  var handleInnerRef = useForkRef(innerRefProp, innerRef);
@@ -231,8 +223,7 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
231
223
  var colDef = renderedColumns[i];
232
224
  var columnIndex = firstColumnToRender + i;
233
225
  var isFirstColumn = columnIndex === 0;
234
- var hasTabbableElement = !(columnGroupHeaderTabIndexState === null && columnHeaderTabIndexState === null && cellTabIndexState === null);
235
- var tabIndex = columnHeaderTabIndexState !== null && columnHeaderTabIndexState.field === colDef.field || isFirstColumn && !hasTabbableElement ? 0 : -1;
226
+ var tabIndex = columnHeaderTabIndexState !== null && columnHeaderTabIndexState.field === colDef.field || isFirstColumn && !hasOtherElementInTabSequence ? 0 : -1;
236
227
  var hasFocus = columnHeaderFocus !== null && columnHeaderFocus.field === colDef.field;
237
228
  var open = columnMenuState.open && columnMenuState.field === colDef.field;
238
229
  columns.push( /*#__PURE__*/_jsx(GridColumnHeaderItem, _extends({}, sortColumnLookup[colDef.field], {
@@ -75,7 +75,7 @@ export var useGridCellEditing = function useGridCellEditing(apiRef, props) {
75
75
  var handleCellKeyDown = React.useCallback(function (params, event) {
76
76
  if (params.cellMode === GridCellModes.Edit) {
77
77
  // Wait until IME is settled for Asian languages like Japanese and Chinese
78
- // TODO: `event.which` is depricated but this is a temporary workaround
78
+ // TODO: `event.which` is deprecated but this is a temporary workaround
79
79
  if (event.which === 229) {
80
80
  return;
81
81
  }
@@ -51,7 +51,7 @@ export var useGridEditing = function useGridEditing(apiRef, props) {
51
51
  clearTimeout(_timeout);
52
52
  }
53
53
 
54
- // To run the callback immediatelly without waiting the timeout
54
+ // To run the callback immediately without waiting the timeout
55
55
  var runImmediately = function runImmediately() {
56
56
  var _debounceMap$current$2 = _slicedToArray(debounceMap.current[id][field], 1),
57
57
  timeout = _debounceMap$current$2[0];
@@ -109,7 +109,7 @@ export var useGridRowEditing = function useGridRowEditing(apiRef, props) {
109
109
  var handleCellKeyDown = React.useCallback(function (params, event) {
110
110
  if (params.cellMode === GridRowModes.Edit) {
111
111
  // Wait until IME is settled for Asian languages like Japanese and Chinese
112
- // TODO: `event.which` is depricated but this is a temporary workaround
112
+ // TODO: `event.which` is deprecated but this is a temporary workaround
113
113
  if (event.which === 229) {
114
114
  return;
115
115
  }
@@ -22,6 +22,15 @@ function raf() {
22
22
  });
23
23
  });
24
24
  }
25
+ function buildPrintWindow(title) {
26
+ var iframeEl = document.createElement('iframe');
27
+ iframeEl.style.position = 'absolute';
28
+ iframeEl.style.width = '0px';
29
+ iframeEl.style.height = '0px';
30
+ iframeEl.title = title || document.title;
31
+ return iframeEl;
32
+ }
33
+
25
34
  /**
26
35
  * @requires useGridColumns (state)
27
36
  * @requires useGridFilter (state)
@@ -64,16 +73,6 @@ export var useGridPrintExport = function useGridPrintExport(apiRef, props) {
64
73
  resolve();
65
74
  });
66
75
  }, [apiRef]);
67
-
68
- // TODO move outside of this scope and remove React.useCallback
69
- var buildPrintWindow = React.useCallback(function (title) {
70
- var iframeEl = document.createElement('iframe');
71
- iframeEl.style.position = 'absolute';
72
- iframeEl.style.width = '0px';
73
- iframeEl.style.height = '0px';
74
- iframeEl.title = title || document.title;
75
- return iframeEl;
76
- }, []);
77
76
  var handlePrintWindowLoad = React.useCallback(function (printWindow, options) {
78
77
  var _querySelector, _querySelector2;
79
78
  var normalizeOptions = _extends({
@@ -245,7 +244,7 @@ export var useGridPrintExport = function useGridPrintExport(apiRef, props) {
245
244
  return function (_x) {
246
245
  return _ref.apply(this, arguments);
247
246
  };
248
- }(), [props, logger, apiRef, buildPrintWindow, handlePrintWindowLoad, handlePrintWindowAfterPrint, updateGridColumnsForPrint]);
247
+ }(), [props, logger, apiRef, handlePrintWindowLoad, handlePrintWindowAfterPrint, updateGridColumnsForPrint]);
249
248
  var printExportApi = {
250
249
  exportDataAsPrint: exportDataAsPrint
251
250
  };
@@ -8,12 +8,12 @@ import * as React from 'react';
8
8
  import * as ReactDOM from 'react-dom';
9
9
  import { unstable_useForkRef as useForkRef, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
10
10
  import { useTheme } from '@mui/material/styles';
11
+ import { defaultMemoize } from 'reselect';
11
12
  import { useGridPrivateApiContext } from '../../utils/useGridPrivateApiContext';
12
13
  import { useGridRootProps } from '../../utils/useGridRootProps';
13
14
  import { useGridSelector } from '../../utils/useGridSelector';
14
15
  import { gridVisibleColumnDefinitionsSelector, gridColumnsTotalWidthSelector, gridColumnPositionsSelector } from '../columns/gridColumnsSelector';
15
16
  import { gridFocusCellSelector, gridTabIndexCellSelector } from '../focus/gridFocusStateSelector';
16
- import { gridEditRowsStateSelector } from '../editing/gridEditingSelectors';
17
17
  import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
18
18
  import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
19
19
  import { clamp } from '../../../utils/utils';
@@ -21,9 +21,8 @@ import { selectedIdsLookupSelector } from '../rowSelection/gridRowSelectionSelec
21
21
  import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
22
22
  import { getFirstNonSpannedColumnToRender } from '../columns/gridColumnsUtils';
23
23
  import { getMinimalContentHeight } from '../rows/gridRowsUtils';
24
-
25
- // Uses binary search to avoid looping through all possible positions
26
24
  import { jsx as _jsx } from "react/jsx-runtime";
25
+ // Uses binary search to avoid looping through all possible positions
27
26
  export function binarySearch(offset, positions) {
28
27
  var sliceStart = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
29
28
  var sliceEnd = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : positions.length;
@@ -78,7 +77,6 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
78
77
  var cellFocus = useGridSelector(apiRef, gridFocusCellSelector);
79
78
  var cellTabIndex = useGridSelector(apiRef, gridTabIndexCellSelector);
80
79
  var rowsMeta = useGridSelector(apiRef, gridRowsMetaSelector);
81
- var editRowsState = useGridSelector(apiRef, gridEditRowsStateSelector);
82
80
  var selectedRowsLookup = useGridSelector(apiRef, selectedIdsLookupSelector);
83
81
  var currentPage = useGridVisibleRows(apiRef, rootProps);
84
82
  var renderZoneRef = React.useRef(null);
@@ -101,6 +99,12 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
101
99
  containerDimensions = _React$useState4[0],
102
100
  setContainerDimensions = _React$useState4[1];
103
101
  var prevTotalWidth = React.useRef(columnsTotalWidth);
102
+ var rowStyleCache = React.useRef({});
103
+ var prevGetRowProps = React.useRef();
104
+ var prevRootRowStyle = React.useRef();
105
+ var getRenderedColumnsRef = React.useRef(defaultMemoize(function (columns, firstColumnToRender, lastColumnToRender) {
106
+ return columns.slice(firstColumnToRender, lastColumnToRender);
107
+ }));
104
108
  var getNearestIndexToRender = React.useCallback(function (offset) {
105
109
  var _currentPage$range, _currentPage$range2;
106
110
  var lastMeasuredIndexRelativeToAllRows = apiRef.current.getLastMeasuredRowIndex();
@@ -315,6 +319,7 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
315
319
  apiRef.current.publishEvent('virtualScrollerTouchMove', {}, event);
316
320
  };
317
321
  var getRows = function getRows() {
322
+ var _rootProps$slotProps;
318
323
  var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
319
324
  renderContext: renderContext
320
325
  };
@@ -387,10 +392,17 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
387
392
  lastRowToRender: lastRowToRender,
388
393
  visibleRows: currentPage.rows
389
394
  });
390
- var renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);
395
+ var renderedColumns = getRenderedColumnsRef.current(visibleColumns, firstColumnToRender, lastColumnToRender);
396
+ var _ref4 = ((_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.row) || {},
397
+ rootRowStyle = _ref4.style,
398
+ rootRowProps = _objectWithoutProperties(_ref4, _excluded);
399
+ var invalidatesCachedRowStyle = prevGetRowProps.current !== getRowProps || prevRootRowStyle.current !== rootRowStyle;
400
+ if (invalidatesCachedRowStyle) {
401
+ rowStyleCache.current = {};
402
+ }
391
403
  var rows = [];
392
404
  for (var i = 0; i < renderedRows.length; i += 1) {
393
- var _rootProps$slotProps, _currentPage$range5;
405
+ var _currentPage$range5;
394
406
  var _renderedRows$i = renderedRows[i],
395
407
  _id = _renderedRows$i.id,
396
408
  _model = _renderedRows$i.model;
@@ -402,22 +414,25 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
402
414
  } else {
403
415
  isSelected = apiRef.current.isRowSelectable(_id);
404
416
  }
405
- var _ref4 = ((_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.row) || {},
406
- rootRowStyle = _ref4.style,
407
- rootRowProps = _objectWithoutProperties(_ref4, _excluded);
417
+ var focusedCell = cellFocus !== null && cellFocus.id === _id ? cellFocus.field : null;
418
+ var tabbableCell = null;
419
+ if (cellTabIndex !== null && cellTabIndex.id === _id) {
420
+ var cellParams = apiRef.current.getCellParams(_id, cellTabIndex.field);
421
+ tabbableCell = cellParams.cellMode === 'view' ? cellTabIndex.field : null;
422
+ }
408
423
  var _ref5 = typeof getRowProps === 'function' && getRowProps(_id, _model) || {},
409
424
  rowStyle = _ref5.style,
410
425
  rowProps = _objectWithoutProperties(_ref5, _excluded2);
426
+ if (!rowStyleCache.current[_id]) {
427
+ var style = _extends({}, rowStyle, rootRowStyle);
428
+ rowStyleCache.current[_id] = style;
429
+ }
411
430
  rows.push( /*#__PURE__*/_jsx(rootProps.slots.row, _extends({
412
431
  row: _model,
413
432
  rowId: _id,
414
433
  rowHeight: baseRowHeight,
415
- cellFocus: cellFocus // TODO move to inside the row
416
- ,
417
- cellTabIndex: cellTabIndex // TODO move to inside the row
418
- ,
419
- editRowsState: editRowsState // TODO move to inside the row
420
- ,
434
+ focusedCell: focusedCell,
435
+ tabbableCell: tabbableCell,
421
436
  renderedColumns: renderedColumns,
422
437
  visibleColumns: visibleColumns,
423
438
  firstColumnToRender: firstColumnToRender,
@@ -428,9 +443,11 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
428
443
  isLastVisible: lastVisibleRowIndex,
429
444
  position: position
430
445
  }, rowProps, rootRowProps, {
431
- style: _extends({}, rowStyle, rootRowStyle)
446
+ style: rowStyleCache.current[_id]
432
447
  }), _id));
433
448
  }
449
+ prevGetRowProps.current = getRowProps;
450
+ prevRootRowStyle.current = rootRowStyle;
434
451
  return rows;
435
452
  };
436
453
  var needsHorizontalScrollbar = containerDimensions.width && columnsTotalWidth > containerDimensions.width;
package/legacy/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v6.0.0-beta.5
2
+ * @mui/x-data-grid v6.0.1
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -17,6 +17,8 @@ export * from './models';
17
17
  export * from './context';
18
18
  export * from './colDef';
19
19
  export * from './utils';
20
+ export { GridColumnHeaders } from './components/GridColumnHeaders';
21
+
20
22
  /**
21
23
  * Reexportable components.
22
24
  */
@@ -24,4 +26,6 @@ export { GridColumnMenu, GRID_COLUMN_MENU_COMPONENTS, GRID_COLUMN_MENU_COMPONENT
24
26
 
25
27
  /**
26
28
  * The full grid API.
29
+ * @demos
30
+ * - [API object](/x/react-data-grid/api-object/)
27
31
  */
@@ -1,7 +1,7 @@
1
1
  export { GridVirtualScroller } from '../components/virtualization/GridVirtualScroller';
2
2
  export { GridVirtualScrollerContent } from '../components/virtualization/GridVirtualScrollerContent';
3
3
  export { GridVirtualScrollerRenderZone } from '../components/virtualization/GridVirtualScrollerRenderZone';
4
- export { GridColumnHeaders } from '../components/columnHeaders/GridColumnHeaders';
4
+ export { GridBaseColumnHeaders } from '../components/columnHeaders/GridBaseColumnHeaders';
5
5
  export { GridColumnHeadersInner } from '../components/columnHeaders/GridColumnHeadersInner';
6
6
  export { DATA_GRID_DEFAULT_SLOTS_COMPONENTS } from '../constants/defaultGridSlotsComponents';
7
7
  export { useGridRegisterPipeProcessor } from '../hooks/core/pipeProcessing';
@@ -22,17 +22,15 @@ var arSDGrid = {
22
22
  return count !== 1 ? "".concat(count, " \u0645\u0646 \u0627\u0644\u0645\u0631\u0634\u0650\u062D\u0627\u062A \u0627\u0644\u0646\u0634\u0637\u0629") : "\u0645\u0631\u0634\u0650\u062D \u0646\u0634\u0637";
23
23
  },
24
24
  // Quick filter toolbar field
25
- // toolbarQuickFilterPlaceholder: 'Search…',
26
- // toolbarQuickFilterLabel: 'Search',
27
- // toolbarQuickFilterDeleteIconLabel: 'Clear',
28
-
25
+ toolbarQuickFilterPlaceholder: 'بحث...',
26
+ toolbarQuickFilterLabel: 'بحث',
27
+ toolbarQuickFilterDeleteIconLabel: 'أزال',
29
28
  // Export selector toolbar button text
30
29
  toolbarExport: 'تصدير',
31
30
  toolbarExportLabel: 'تصدير',
32
31
  toolbarExportCSV: 'تنزيل كملف CSV',
33
- // toolbarExportPrint: 'Print',
34
- // toolbarExportExcel: 'Download as Excel',
35
-
32
+ toolbarExportPrint: 'طباعة',
33
+ toolbarExportExcel: 'تحميل كملف الإكسل',
36
34
  // Columns panel text
37
35
  columnsPanelTextFieldLabel: 'البحث عن العمود',
38
36
  columnsPanelTextFieldPlaceholder: 'عنوان العمود',
@@ -121,20 +119,17 @@ var arSDGrid = {
121
119
  return "\u0625\u064A\u0642\u0627\u0641 \u0627\u0644\u062A\u062C\u0645\u064A\u0639 \u062D\u0633\u0628 ".concat(name);
122
120
  },
123
121
  // Master/detail
124
- // detailPanelToggle: 'Detail panel toggle',
122
+ detailPanelToggle: 'اظهار/اخفاء لوحة التفاصيل',
125
123
  expandDetailPanel: 'توسيع',
126
- collapseDetailPanel: 'طوي'
127
-
124
+ collapseDetailPanel: 'طوي',
128
125
  // Row reordering text
129
- // rowReorderingHeaderName: 'Row reordering',
130
-
126
+ rowReorderingHeaderName: 'أعادة ترتيب الصفوف',
131
127
  // Aggregation
132
- // aggregationMenuItemHeader: 'Aggregation',
133
- // aggregationFunctionLabelSum: 'sum',
134
- // aggregationFunctionLabelAvg: 'avg',
135
- // aggregationFunctionLabelMin: 'min',
136
- // aggregationFunctionLabelMax: 'max',
137
- // aggregationFunctionLabelSize: 'size',
128
+ aggregationMenuItemHeader: 'الدلالات الحسابية',
129
+ aggregationFunctionLabelSum: 'مجموع',
130
+ aggregationFunctionLabelAvg: 'معدل',
131
+ aggregationFunctionLabelMin: 'الحد الادنى',
132
+ aggregationFunctionLabelMax: 'الحد الاقصى',
133
+ aggregationFunctionLabelSize: 'الحجم'
138
134
  };
139
-
140
135
  export var arSD = getGridLocalization(arSDGrid, arSDCore);