@mui/x-data-grid 6.16.2 → 6.17.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 (174) hide show
  1. package/CHANGELOG.md +131 -0
  2. package/DataGrid/DataGrid.js +7 -0
  3. package/DataGrid/useDataGridProps.js +2 -1
  4. package/components/columnHeaders/GridColumnHeaderSortIcon.d.ts +1 -1
  5. package/hooks/features/columns/gridColumnsUtils.d.ts +1 -1
  6. package/hooks/features/rows/useGridRowsMeta.d.ts +1 -1
  7. package/hooks/features/rows/useGridRowsMeta.js +1 -1
  8. package/hooks/features/sorting/gridSortingUtils.d.ts +1 -1
  9. package/hooks/features/virtualization/useGridVirtualScroller.js +9 -1
  10. package/index.js +1 -1
  11. package/legacy/DataGrid/DataGrid.js +7 -0
  12. package/legacy/DataGrid/useDataGridProps.js +2 -1
  13. package/legacy/hooks/features/rows/useGridRowsMeta.js +2 -2
  14. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +9 -1
  15. package/legacy/index.js +1 -1
  16. package/legacy/locales/ptBR.js +13 -14
  17. package/legacy/utils/utils.js +1 -1
  18. package/locales/ptBR.js +13 -14
  19. package/models/api/gridEditingApi.d.ts +2 -2
  20. package/models/props/DataGridProps.d.ts +9 -2
  21. package/modern/DataGrid/DataGrid.js +7 -0
  22. package/modern/DataGrid/useDataGridProps.js +2 -1
  23. package/modern/hooks/features/rows/useGridRowsMeta.js +1 -1
  24. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +9 -1
  25. package/modern/index.js +1 -1
  26. package/modern/locales/ptBR.js +13 -14
  27. package/modern/utils/utils.js +1 -1
  28. package/node/DataGrid/DataGrid.js +9 -2
  29. package/node/DataGrid/useDataGridProps.js +4 -3
  30. package/node/colDef/gridCheckboxSelectionColDef.js +2 -2
  31. package/node/components/DataGridVirtualScroller.js +2 -2
  32. package/node/components/GridApiContext.js +2 -2
  33. package/node/components/GridColumnHeaders.js +2 -2
  34. package/node/components/GridFooter.js +2 -2
  35. package/node/components/GridHeader.js +2 -2
  36. package/node/components/GridLoadingOverlay.js +2 -2
  37. package/node/components/GridNoResultsOverlay.js +2 -2
  38. package/node/components/GridNoRowsOverlay.js +2 -2
  39. package/node/components/GridPagination.js +2 -2
  40. package/node/components/GridRow.js +2 -2
  41. package/node/components/GridRowCount.js +2 -2
  42. package/node/components/GridSelectedRowCount.js +2 -2
  43. package/node/components/base/GridBody.js +2 -2
  44. package/node/components/base/GridFooterPlaceholder.js +2 -2
  45. package/node/components/base/GridOverlays.js +2 -2
  46. package/node/components/cell/GridActionsCell.js +2 -2
  47. package/node/components/cell/GridActionsCellItem.js +2 -2
  48. package/node/components/cell/GridBooleanCell.js +2 -2
  49. package/node/components/cell/GridCell.js +2 -2
  50. package/node/components/cell/GridEditBooleanCell.js +2 -2
  51. package/node/components/cell/GridEditDateCell.js +2 -2
  52. package/node/components/cell/GridEditInputCell.js +2 -2
  53. package/node/components/cell/GridEditSingleSelectCell.js +2 -2
  54. package/node/components/cell/GridSkeletonCell.js +2 -2
  55. package/node/components/columnHeaders/ColumnHeaderMenuIcon.js +2 -2
  56. package/node/components/columnHeaders/GridBaseColumnHeaders.js +2 -2
  57. package/node/components/columnHeaders/GridColumnGroupHeader.js +2 -2
  58. package/node/components/columnHeaders/GridColumnHeaderFilterIconButton.js +2 -2
  59. package/node/components/columnHeaders/GridColumnHeaderItem.js +2 -2
  60. package/node/components/columnHeaders/GridColumnHeaderSeparator.js +2 -2
  61. package/node/components/columnHeaders/GridColumnHeaderSortIcon.js +2 -2
  62. package/node/components/columnHeaders/GridColumnHeaderTitle.js +2 -2
  63. package/node/components/columnHeaders/GridColumnHeadersInner.js +2 -2
  64. package/node/components/columnHeaders/GridGenericColumnHeaderItem.js +2 -2
  65. package/node/components/columnHeaders/GridIconButtonContainer.js +2 -2
  66. package/node/components/columnSelection/GridCellCheckboxRenderer.js +2 -2
  67. package/node/components/columnSelection/GridHeaderCheckbox.js +2 -2
  68. package/node/components/containers/GridFooterContainer.js +2 -2
  69. package/node/components/containers/GridMainContainer.js +2 -2
  70. package/node/components/containers/GridOverlay.js +2 -2
  71. package/node/components/containers/GridRoot.js +2 -2
  72. package/node/components/containers/GridToolbarContainer.js +2 -2
  73. package/node/components/menu/GridMenu.js +2 -2
  74. package/node/components/menu/columnMenu/GridColumnHeaderMenu.js +2 -2
  75. package/node/components/menu/columnMenu/GridColumnMenu.js +2 -2
  76. package/node/components/menu/columnMenu/GridColumnMenuContainer.js +2 -2
  77. package/node/components/menu/columnMenu/menuItems/GridColumnMenuColumnsItem.js +2 -2
  78. package/node/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +2 -2
  79. package/node/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +2 -2
  80. package/node/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +2 -2
  81. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +2 -2
  82. package/node/components/panel/GridColumnsPanel.js +2 -2
  83. package/node/components/panel/GridPanel.js +2 -2
  84. package/node/components/panel/GridPanelContent.js +2 -2
  85. package/node/components/panel/GridPanelFooter.js +2 -2
  86. package/node/components/panel/GridPanelHeader.js +2 -2
  87. package/node/components/panel/GridPanelWrapper.js +2 -2
  88. package/node/components/panel/GridPreferencesPanel.js +2 -2
  89. package/node/components/panel/filterPanel/GridFilterForm.js +2 -2
  90. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +2 -2
  91. package/node/components/panel/filterPanel/GridFilterInputDate.js +2 -2
  92. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +2 -2
  93. package/node/components/panel/filterPanel/GridFilterInputMultipleValue.js +2 -2
  94. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +2 -2
  95. package/node/components/panel/filterPanel/GridFilterInputValue.js +2 -2
  96. package/node/components/panel/filterPanel/GridFilterPanel.js +2 -2
  97. package/node/components/toolbar/GridToolbar.js +2 -2
  98. package/node/components/toolbar/GridToolbarColumnsButton.js +2 -2
  99. package/node/components/toolbar/GridToolbarDensitySelector.js +2 -2
  100. package/node/components/toolbar/GridToolbarExport.js +2 -2
  101. package/node/components/toolbar/GridToolbarExportContainer.js +2 -2
  102. package/node/components/toolbar/GridToolbarFilterButton.js +2 -2
  103. package/node/components/toolbar/GridToolbarQuickFilter.js +2 -2
  104. package/node/components/virtualization/GridVirtualScroller.js +2 -2
  105. package/node/components/virtualization/GridVirtualScrollerContent.js +2 -2
  106. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +2 -2
  107. package/node/context/GridContextProvider.js +2 -2
  108. package/node/context/GridRootPropsContext.js +2 -2
  109. package/node/hooks/core/pipeProcessing/useGridPipeProcessing.js +2 -2
  110. package/node/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +2 -2
  111. package/node/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +2 -2
  112. package/node/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.js +2 -2
  113. package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +2 -2
  114. package/node/hooks/core/useGridApiInitialization.js +2 -2
  115. package/node/hooks/core/useGridLocaleText.js +2 -2
  116. package/node/hooks/core/useGridLoggerFactory.js +2 -2
  117. package/node/hooks/core/useGridStateInitialization.js +2 -2
  118. package/node/hooks/features/clipboard/useGridClipboard.js +2 -2
  119. package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +2 -2
  120. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -2
  121. package/node/hooks/features/columnMenu/useGridColumnMenu.js +2 -2
  122. package/node/hooks/features/columnMenu/useGridColumnMenuSlots.js +2 -2
  123. package/node/hooks/features/columns/useGridColumnSpanning.js +2 -2
  124. package/node/hooks/features/columns/useGridColumns.js +2 -2
  125. package/node/hooks/features/density/useGridDensity.js +2 -2
  126. package/node/hooks/features/dimensions/useGridDimensions.js +2 -2
  127. package/node/hooks/features/editing/useGridCellEditing.js +2 -2
  128. package/node/hooks/features/editing/useGridEditing.js +2 -2
  129. package/node/hooks/features/editing/useGridRowEditing.js +2 -2
  130. package/node/hooks/features/export/useGridCsvExport.js +2 -2
  131. package/node/hooks/features/export/useGridPrintExport.js +2 -2
  132. package/node/hooks/features/filter/useGridFilter.js +2 -2
  133. package/node/hooks/features/focus/useGridFocus.js +2 -2
  134. package/node/hooks/features/headerFiltering/useGridHeaderFiltering.js +2 -2
  135. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -2
  136. package/node/hooks/features/pagination/useGridPagination.js +2 -2
  137. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +2 -2
  138. package/node/hooks/features/rowSelection/useGridRowSelection.js +2 -2
  139. package/node/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +2 -2
  140. package/node/hooks/features/rows/useGridParamsApi.js +2 -2
  141. package/node/hooks/features/rows/useGridRows.js +2 -2
  142. package/node/hooks/features/rows/useGridRowsMeta.js +3 -3
  143. package/node/hooks/features/scroll/useGridScroll.js +2 -2
  144. package/node/hooks/features/sorting/useGridSorting.js +2 -2
  145. package/node/hooks/features/statePersistence/useGridStatePersistence.js +2 -2
  146. package/node/hooks/features/virtualization/useGridVirtualScroller.js +11 -3
  147. package/node/hooks/features/virtualization/useGridVirtualization.js +2 -2
  148. package/node/hooks/utils/useFirstRender.js +2 -2
  149. package/node/hooks/utils/useGridApiContext.js +2 -2
  150. package/node/hooks/utils/useGridApiEventHandler.js +2 -2
  151. package/node/hooks/utils/useGridApiMethod.js +2 -2
  152. package/node/hooks/utils/useGridApiRef.js +2 -2
  153. package/node/hooks/utils/useGridInitializeState.js +2 -2
  154. package/node/hooks/utils/useGridLogger.js +2 -2
  155. package/node/hooks/utils/useGridNativeEventListener.js +2 -2
  156. package/node/hooks/utils/useGridPrivateApiContext.js +2 -2
  157. package/node/hooks/utils/useGridRootProps.js +2 -2
  158. package/node/hooks/utils/useGridSelector.js +2 -2
  159. package/node/hooks/utils/useGridVisibleRows.js +2 -2
  160. package/node/hooks/utils/useLazyRef.js +2 -2
  161. package/node/hooks/utils/useOnMount.js +2 -2
  162. package/node/index.js +1 -1
  163. package/node/internals/utils/useProps.js +2 -2
  164. package/node/joy/icons.js +2 -2
  165. package/node/joy/joySlots.js +2 -2
  166. package/node/locales/ptBR.js +13 -14
  167. package/node/material/components/MUISelectOption.js +2 -2
  168. package/node/material/icons/GridColumnUnsortedIcon.js +2 -2
  169. package/node/material/icons/index.js +2 -2
  170. package/node/utils/fastMemo.js +2 -2
  171. package/node/utils/utils.js +1 -1
  172. package/package.json +3 -3
  173. package/utils/utils.d.ts +1 -1
  174. package/utils/utils.js +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,137 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 6.17.0
7
+
8
+ _Oct 27, 2023_
9
+
10
+ We'd like to offer a big thanks to the 9 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - 🎁 The Tree View package is now officially stable!
13
+
14
+ ![tree-view-example](https://github.com/mui/mui-x/assets/550141/77d1fe66-d912-49ba-b38f-b853fb90446a)
15
+
16
+ - ✨ Improve the handling of non-numeric values by Data Grid aggregation
17
+ - 🚀 Support lines with different domains on the line charts
18
+ - 🐞 Bugfixes
19
+ - 📚 Documentation improvements
20
+
21
+ ### Data Grid
22
+
23
+ #### `@mui/x-data-grid@6.17.0`
24
+
25
+ - [DataGrid] Allow custom debounce time for row positions calculation (#10708) @cherniavskii
26
+ - [DataGrid] Persist stable row index for focused row (#10674) @cherniavskii
27
+
28
+ #### `@mui/x-data-grid-pro@6.17.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
29
+
30
+ Same changes as in `@mui/x-data-grid@6.17.0`, plus:
31
+
32
+ - [DataGridPro] Fix `undefined` values passed to `valueFormatter` for tree leaf nodes (#10748) @cherniavskii
33
+
34
+ #### `@mui/x-data-grid-premium@6.17.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
35
+
36
+ Same changes as in `@mui/x-data-grid-pro@6.17.0`, plus:
37
+
38
+ - [DataGridPremium] Fix `avg` aggregation to ignore non-numeric values (#10787) @cherniavskii
39
+ - [DataGridPremium] Fix `size` aggregation to ignore `undefined` values (#10745) @cherniavskii
40
+ - [DataGridPremium] Fix `sum` aggregation to ignore non-numeric values (#10730) @cherniavskii
41
+ - [DataGridPremium] Fix cell selection throwing index error on second page and beyond (#10784) @MBilalShafi
42
+
43
+ ### Date Pickers
44
+
45
+ #### `@mui/x-date-pickers@6.17.0`
46
+
47
+ - [fields] POC: Use `contentEditable` on `FakeTextField` (#10779) @flaviendelangle
48
+ - [pickers] Fix weekday label localization (#10809) @LukasTy
49
+
50
+ #### `@mui/x-date-pickers-pro@6.17.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
51
+
52
+ Same changes as in `@mui/x-date-pickers@6.17.0`.
53
+
54
+ ### Charts / `@mui/x-charts@6.0.0-alpha.17`
55
+
56
+ - [charts] Fix text position in Safari (#10815) @lhilgert9
57
+ - [charts] Support lines with different domains (#10801) @alexfauquette
58
+
59
+ ### Tree View / `@mui/x-tree-view@6.17.0`
60
+
61
+ No change
62
+
63
+ ### Docs
64
+
65
+ - [docs] Correct editing related props' description (#10798) @MBilalShafi
66
+ - [docs] Fix RTL data grid demo (#10728) @oliviertassinari
67
+ - [docs] Fix unclosed warning (#10796) @flaviendelangle
68
+ - [docs] Improve performance of `Save and restore the state from external storage` recipe (#10811) @michelengelen
69
+
70
+ - [test] Add missing type on `cleanText` utility function (#10780) @flaviendelangle
71
+
72
+ ## 6.16.3
73
+
74
+ _Oct 20, 2023_
75
+
76
+ We'd like to offer a big thanks to the 7 contributors who made this release possible. Here are some highlights ✨:
77
+
78
+ - 🎁 Add a Data Grid recipe for saving & restoring state
79
+ - 💫 Support animations on the bar chart
80
+ - 🐞 Bugfixes
81
+ - 📚 Documentation improvements
82
+
83
+ ### Data Grid
84
+
85
+ #### `@mui/x-data-grid@6.16.3`
86
+
87
+ - [DataGrid] Allow passing readonly arrays to `columns` and `sortingOrder` props (#10686) @pcorpet
88
+
89
+ #### `@mui/x-data-grid-pro@6.16.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
90
+
91
+ Same changes as in `@mui/x-data-grid@6.16.3`.
92
+
93
+ #### `@mui/x-data-grid-premium@6.16.3` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
94
+
95
+ Same changes as in `@mui/x-data-grid-pro@6.16.3`.
96
+
97
+ ### Date Pickers
98
+
99
+ #### `@mui/x-date-pickers@6.16.3`
100
+
101
+ - [fields] Correctly respect leading zeroes on seconds section (#10713) @flaviendelangle
102
+ - [fields] Use `onChange` instead of `onKeyPress` for Backspace editing (#10494) @flaviendelangle
103
+ - [pickers] Add reference links to DatePicker components (#10626) @michelengelen
104
+ - [pickers] Add reference links to clock components (#10645) @michelengelen
105
+ - [pickers] Add reference links to misc picker components (#10647) @michelengelen
106
+ - [pickers] Add reference links to toolbar components (#10646) @michelengelen
107
+ - [pickers] POC: Change the props received by the `FakeTextField` component (#10687) @flaviendelangle
108
+
109
+ #### `@mui/x-date-pickers-pro@6.16.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
110
+
111
+ Same changes as in `@mui/x-date-pickers@6.16.3`, plus:
112
+
113
+ - [DateRangePicker] Fix touch based range dragging (#10664) @michelengelen
114
+
115
+ ### Charts / `@mui/x-charts@6.0.0-alpha.16`
116
+
117
+ - [charts] Add reference links to area + bar chart components (#10652) @michelengelen
118
+ - [charts] Add reference links to line chart + sparkline components (#10650) @michelengelen
119
+ - [charts] Add reference links to pie + scatter chart components (#10653) @michelengelen
120
+ - [charts] Render only when `width` and `height` are resolved (#10714) @alexfauquette
121
+ - [charts] Support animation on `BarChart` (#9926) @alexfauquette
122
+ - [charts] Use new text component to avoid tick label overflow on x-axis (#10648) @alexfauquette
123
+
124
+ ### Docs
125
+
126
+ - [docs] Add a recipe for saving and restoring `state` externally (#10722) @michelengelen
127
+ - [docs] Add example about how to add an axis (#10709) @alexfauquette
128
+ - [docs] Customization Playground - fix DesktopDatePicker sx props and styled examples (#10665) @noraleonte
129
+ - [docs] Improve meta description @oliviertassinari
130
+ - [docs] Make overview demo work in codesandbox (#10661) @alexfauquette
131
+
132
+ ### Core
133
+
134
+ - [core] Update React renovate group with `@types` (#10723) @LukasTy
135
+ - [core] Update `styled-components` (#10733) @LukasTy
136
+
6
137
  ## 6.16.2
7
138
 
8
139
  _Oct 12, 2023_
@@ -596,6 +596,13 @@ DataGridRaw.propTypes = {
596
596
  * Controls the modes of the rows.
597
597
  */
598
598
  rowModesModel: PropTypes.object,
599
+ /**
600
+ * The milliseconds delay to wait after measuring the row height before recalculating row positions.
601
+ * Setting it to a lower value could be useful when using dynamic row height,
602
+ * but might reduce performance when displaying a large number of rows.
603
+ * @default 166
604
+ */
605
+ rowPositionsDebounceMs: PropTypes.number,
599
606
  /**
600
607
  * Set of rows of type [[GridRowsProp]].
601
608
  */
@@ -68,7 +68,8 @@ export const DATA_GRID_PROPS_DEFAULT_VALUES = {
68
68
  keepNonExistentRowsSelected: false,
69
69
  keepColumnPositionIfDraggedOutside: false,
70
70
  unstable_ignoreValueFormatterDuringExport: false,
71
- clipboardCopyCellDelimiter: '\t'
71
+ clipboardCopyCellDelimiter: '\t',
72
+ rowPositionsDebounceMs: 166
72
73
  };
73
74
  const defaultSlots = uncapitalizeObjectKeys(DATA_GRID_DEFAULT_SLOTS_COMPONENTS);
74
75
  export const useDataGridProps = inProps => {
@@ -3,7 +3,7 @@ import { GridSortDirection } from '../../models/gridSortModel';
3
3
  export interface GridColumnHeaderSortIconProps {
4
4
  direction: GridSortDirection;
5
5
  index: number | undefined;
6
- sortingOrder: GridSortDirection[];
6
+ sortingOrder: readonly GridSortDirection[];
7
7
  }
8
8
  declare function GridColumnHeaderSortIconRaw(props: GridColumnHeaderSortIconProps): React.JSX.Element | null;
9
9
  declare namespace GridColumnHeaderSortIconRaw {
@@ -40,7 +40,7 @@ export declare const hydrateColumnsWidth: (rawState: GridColumnsRawState, viewpo
40
40
  */
41
41
  export declare const applyInitialState: (columnsState: GridColumnsRawState, initialState: GridColumnsInitialState | undefined) => GridColumnsRawState;
42
42
  export declare const createColumnsState: ({ apiRef, columnsToUpsert, initialState, columnTypes, columnVisibilityModel, keepOnlyColumnsToUpsert, }: {
43
- columnsToUpsert: GridColDef[];
43
+ columnsToUpsert: readonly GridColDef[];
44
44
  initialState: GridColumnsInitialState | undefined;
45
45
  columnTypes: GridColumnTypesRecord;
46
46
  columnVisibilityModel?: GridColumnVisibilityModel | undefined;
@@ -7,4 +7,4 @@ export declare const rowsMetaStateInitializer: GridStateInitializer;
7
7
  * @requires useGridPageSize (method)
8
8
  * @requires useGridPage (method)
9
9
  */
10
- export declare const useGridRowsMeta: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, 'getRowHeight' | 'getEstimatedRowHeight' | 'getRowSpacing' | 'pagination' | 'paginationMode' | 'rowHeight'>) => void;
10
+ export declare const useGridRowsMeta: (apiRef: React.MutableRefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, 'getRowHeight' | 'getEstimatedRowHeight' | 'getRowSpacing' | 'pagination' | 'paginationMode' | 'rowHeight' | 'rowPositionsDebounceMs'>) => void;
@@ -179,7 +179,7 @@ export const useGridRowsMeta = (apiRef, props) => {
179
179
  rowsHeightLookup.current[id].needsFirstMeasurement = false;
180
180
  hydrateRowsMeta();
181
181
  }, [hydrateRowsMeta]);
182
- const debouncedHydrateRowsMeta = React.useMemo(() => debounce(hydrateRowsMeta), [hydrateRowsMeta]);
182
+ const debouncedHydrateRowsMeta = React.useMemo(() => debounce(hydrateRowsMeta, props.rowPositionsDebounceMs), [hydrateRowsMeta, props.rowPositionsDebounceMs]);
183
183
  const storeMeasuredRowHeight = React.useCallback((id, height, position) => {
184
184
  if (!rowsHeightLookup.current[id] || !rowsHeightLookup.current[id].autoHeight) {
185
185
  return;
@@ -12,7 +12,7 @@ export declare const mergeStateWithSortModel: (sortModel: GridSortModel, disable
12
12
  * @returns {GridSortingModelApplier | null} A method that generates a list of sorted row ids from a list of rows according to the current sort model. If `null`, we consider that the rows should remain in the order there were provided.
13
13
  */
14
14
  export declare const buildAggregatedSortingApplier: (sortModel: GridSortModel, apiRef: React.MutableRefObject<GridApiCommunity>) => GridSortingModelApplier | null;
15
- export declare const getNextGridSortDirection: (sortingOrder: GridSortDirection[], current?: GridSortDirection) => GridSortDirection;
15
+ export declare const getNextGridSortDirection: (sortingOrder: readonly GridSortDirection[], current?: GridSortDirection) => GridSortDirection;
16
16
  export declare const gridStringOrNumberComparator: GridComparatorFn;
17
17
  export declare const gridNumberComparator: GridComparatorFn;
18
18
  export declare const gridDateComparator: GridComparatorFn;
@@ -468,6 +468,7 @@ export const useGridVirtualScroller = props => {
468
468
  rowStyleCache.current = Object.create(null);
469
469
  }
470
470
  const rows = [];
471
+ let isRowWithFocusedCellRendered = false;
471
472
  for (let i = 0; i < renderedRows.length; i += 1) {
472
473
  var _currentPage$range5;
473
474
  const {
@@ -503,6 +504,13 @@ export const useGridVirtualScroller = props => {
503
504
  const style = _extends({}, rowStyle, rootRowStyle);
504
505
  rowStyleCache.current[id] = style;
505
506
  }
507
+ let index = rowIndexOffset + ((currentPage == null || (_currentPage$range5 = currentPage.range) == null ? void 0 : _currentPage$range5.firstRowIndex) || 0) + firstRowToRender + i;
508
+ if (isRowWithFocusedCellNotInRange && (cellFocus == null ? void 0 : cellFocus.id) === id) {
509
+ index = indexOfRowWithFocusedCell;
510
+ isRowWithFocusedCellRendered = true;
511
+ } else if (isRowWithFocusedCellRendered) {
512
+ index -= 1;
513
+ }
506
514
  rows.push( /*#__PURE__*/_jsx(rootProps.slots.row, _extends({
507
515
  row: model,
508
516
  rowId: id,
@@ -516,7 +524,7 @@ export const useGridVirtualScroller = props => {
516
524
  firstColumnToRender: firstColumnToRender,
517
525
  lastColumnToRender: lastColumnToRender,
518
526
  selected: isSelected,
519
- index: rowIndexOffset + ((currentPage == null || (_currentPage$range5 = currentPage.range) == null ? void 0 : _currentPage$range5.firstRowIndex) || 0) + firstRowToRender + i,
527
+ index: index,
520
528
  containerWidth: availableSpace,
521
529
  isLastVisible: lastVisibleRowIndex,
522
530
  position: position
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v6.16.2
2
+ * @mui/x-data-grid v6.17.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -598,6 +598,13 @@ DataGridRaw.propTypes = {
598
598
  * Controls the modes of the rows.
599
599
  */
600
600
  rowModesModel: PropTypes.object,
601
+ /**
602
+ * The milliseconds delay to wait after measuring the row height before recalculating row positions.
603
+ * Setting it to a lower value could be useful when using dynamic row height,
604
+ * but might reduce performance when displaying a large number of rows.
605
+ * @default 166
606
+ */
607
+ rowPositionsDebounceMs: PropTypes.number,
601
608
  /**
602
609
  * Set of rows of type [[GridRowsProp]].
603
610
  */
@@ -69,7 +69,8 @@ export var DATA_GRID_PROPS_DEFAULT_VALUES = {
69
69
  keepNonExistentRowsSelected: false,
70
70
  keepColumnPositionIfDraggedOutside: false,
71
71
  unstable_ignoreValueFormatterDuringExport: false,
72
- clipboardCopyCellDelimiter: '\t'
72
+ clipboardCopyCellDelimiter: '\t',
73
+ rowPositionsDebounceMs: 166
73
74
  };
74
75
  var defaultSlots = uncapitalizeObjectKeys(DATA_GRID_DEFAULT_SLOTS_COMPONENTS);
75
76
  export var useDataGridProps = function useDataGridProps(inProps) {
@@ -179,8 +179,8 @@ export var useGridRowsMeta = function useGridRowsMeta(apiRef, props) {
179
179
  hydrateRowsMeta();
180
180
  }, [hydrateRowsMeta]);
181
181
  var debouncedHydrateRowsMeta = React.useMemo(function () {
182
- return debounce(hydrateRowsMeta);
183
- }, [hydrateRowsMeta]);
182
+ return debounce(hydrateRowsMeta, props.rowPositionsDebounceMs);
183
+ }, [hydrateRowsMeta, props.rowPositionsDebounceMs]);
184
184
  var storeMeasuredRowHeight = React.useCallback(function (id, height, position) {
185
185
  if (!rowsHeightLookup.current[id] || !rowsHeightLookup.current[id].autoHeight) {
186
186
  return;
@@ -501,6 +501,7 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
501
501
  rowStyleCache.current = Object.create(null);
502
502
  }
503
503
  var rows = [];
504
+ var isRowWithFocusedCellRendered = false;
504
505
  for (var _i = 0; _i < renderedRows.length; _i += 1) {
505
506
  var _currentPage$range5;
506
507
  var _renderedRows$_i = renderedRows[_i],
@@ -533,6 +534,13 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
533
534
  var style = _extends({}, rowStyle, rootRowStyle);
534
535
  rowStyleCache.current[_id] = style;
535
536
  }
537
+ var index = rowIndexOffset + ((currentPage == null || (_currentPage$range5 = currentPage.range) == null ? void 0 : _currentPage$range5.firstRowIndex) || 0) + firstRowToRender + _i;
538
+ if (isRowWithFocusedCellNotInRange && (cellFocus == null ? void 0 : cellFocus.id) === _id) {
539
+ index = indexOfRowWithFocusedCell;
540
+ isRowWithFocusedCellRendered = true;
541
+ } else if (isRowWithFocusedCellRendered) {
542
+ index -= 1;
543
+ }
536
544
  rows.push( /*#__PURE__*/_jsx(rootProps.slots.row, _extends({
537
545
  row: _model,
538
546
  rowId: _id,
@@ -546,7 +554,7 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
546
554
  firstColumnToRender: firstColumnToRender,
547
555
  lastColumnToRender: lastColumnToRender,
548
556
  selected: isSelected,
549
- index: rowIndexOffset + ((currentPage == null || (_currentPage$range5 = currentPage.range) == null ? void 0 : _currentPage$range5.firstRowIndex) || 0) + firstRowToRender + _i,
557
+ index: index,
550
558
  containerWidth: availableSpace,
551
559
  isLastVisible: lastVisibleRowIndex,
552
560
  position: position
package/legacy/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v6.16.2
2
+ * @mui/x-data-grid v6.17.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -62,13 +62,12 @@ var ptBRGrid = {
62
62
  filterOperatorIsEmpty: 'está vazio',
63
63
  filterOperatorIsNotEmpty: 'não está vazio',
64
64
  filterOperatorIsAnyOf: 'é qualquer um dos',
65
- // 'filterOperator=': '=',
66
- // 'filterOperator!=': '!=',
67
- // 'filterOperator>': '>',
68
- // 'filterOperator>=': '>=',
69
- // 'filterOperator<': '<',
70
- // 'filterOperator<=': '<=',
71
-
65
+ 'filterOperator=': 'igual à',
66
+ 'filterOperator!=': 'diferente de',
67
+ 'filterOperator>': 'maior que',
68
+ 'filterOperator>=': 'maior ou igual que',
69
+ 'filterOperator<': 'menor que',
70
+ 'filterOperator<=': 'menor ou igual que',
72
71
  // Header filter operators text
73
72
  headerFilterOperatorContains: 'Contém',
74
73
  headerFilterOperatorEquals: 'Igual',
@@ -76,13 +75,13 @@ var ptBRGrid = {
76
75
  headerFilterOperatorEndsWith: 'Termina com',
77
76
  headerFilterOperatorIs: 'É',
78
77
  headerFilterOperatorNot: 'Não é',
79
- // headerFilterOperatorAfter: 'Is after',
80
- // headerFilterOperatorOnOrAfter: 'Is on or after',
81
- // headerFilterOperatorBefore: 'Is before',
82
- // headerFilterOperatorOnOrBefore: 'Is on or before',
83
- // headerFilterOperatorIsEmpty: 'Is empty',
84
- // headerFilterOperatorIsNotEmpty: 'Is not empty',
85
- // headerFilterOperatorIsAnyOf: 'Is any of',
78
+ headerFilterOperatorAfter: 'Depois de',
79
+ headerFilterOperatorOnOrAfter: 'Está entre ou depois de',
80
+ headerFilterOperatorBefore: 'Antes de',
81
+ headerFilterOperatorOnOrBefore: 'Está entre ou antes de',
82
+ headerFilterOperatorIsEmpty: 'É vazio',
83
+ headerFilterOperatorIsNotEmpty: 'Não é vazio',
84
+ headerFilterOperatorIsAnyOf: 'É algum',
86
85
  'headerFilterOperator=': 'Igual',
87
86
  'headerFilterOperator!=': 'Não igual',
88
87
  'headerFilterOperator>': 'Maior que',
@@ -1,6 +1,6 @@
1
1
  import _typeof from "@babel/runtime/helpers/esm/typeof";
2
2
  export function isNumber(value) {
3
- return typeof value === 'number';
3
+ return typeof value === 'number' && !Number.isNaN(value);
4
4
  }
5
5
  export function isFunction(value) {
6
6
  return typeof value === 'function';
package/locales/ptBR.js CHANGED
@@ -60,13 +60,12 @@ const ptBRGrid = {
60
60
  filterOperatorIsEmpty: 'está vazio',
61
61
  filterOperatorIsNotEmpty: 'não está vazio',
62
62
  filterOperatorIsAnyOf: 'é qualquer um dos',
63
- // 'filterOperator=': '=',
64
- // 'filterOperator!=': '!=',
65
- // 'filterOperator>': '>',
66
- // 'filterOperator>=': '>=',
67
- // 'filterOperator<': '<',
68
- // 'filterOperator<=': '<=',
69
-
63
+ 'filterOperator=': 'igual à',
64
+ 'filterOperator!=': 'diferente de',
65
+ 'filterOperator>': 'maior que',
66
+ 'filterOperator>=': 'maior ou igual que',
67
+ 'filterOperator<': 'menor que',
68
+ 'filterOperator<=': 'menor ou igual que',
70
69
  // Header filter operators text
71
70
  headerFilterOperatorContains: 'Contém',
72
71
  headerFilterOperatorEquals: 'Igual',
@@ -74,13 +73,13 @@ const ptBRGrid = {
74
73
  headerFilterOperatorEndsWith: 'Termina com',
75
74
  headerFilterOperatorIs: 'É',
76
75
  headerFilterOperatorNot: 'Não é',
77
- // headerFilterOperatorAfter: 'Is after',
78
- // headerFilterOperatorOnOrAfter: 'Is on or after',
79
- // headerFilterOperatorBefore: 'Is before',
80
- // headerFilterOperatorOnOrBefore: 'Is on or before',
81
- // headerFilterOperatorIsEmpty: 'Is empty',
82
- // headerFilterOperatorIsNotEmpty: 'Is not empty',
83
- // headerFilterOperatorIsAnyOf: 'Is any of',
76
+ headerFilterOperatorAfter: 'Depois de',
77
+ headerFilterOperatorOnOrAfter: 'Está entre ou depois de',
78
+ headerFilterOperatorBefore: 'Antes de',
79
+ headerFilterOperatorOnOrBefore: 'Está entre ou antes de',
80
+ headerFilterOperatorIsEmpty: 'É vazio',
81
+ headerFilterOperatorIsNotEmpty: 'Não é vazio',
82
+ headerFilterOperatorIsAnyOf: 'É algum',
84
83
  'headerFilterOperator=': 'Igual',
85
84
  'headerFilterOperator!=': 'Não igual',
86
85
  'headerFilterOperator>': 'Maior que',
@@ -172,7 +172,7 @@ export interface GridCellEditingApi extends GridEditingSharedApi {
172
172
  startCellEditMode(params: GridStartCellEditModeParams): void;
173
173
  /**
174
174
  * Puts the cell corresponding to the given row id and field into view mode and updates the original row with the new value stored.
175
- * If `params.ignoreModifications` is `false` it will discard the modifications made.
175
+ * If `params.ignoreModifications` is `true` it will discard the modifications made.
176
176
  * @param {GridStopCellEditModeParams} params The row id and field of the cell to stop editing.
177
177
  */
178
178
  stopCellEditMode(params: GridStopCellEditModeParams): void;
@@ -210,7 +210,7 @@ export interface GridRowEditingApi extends GridEditingSharedApi {
210
210
  startRowEditMode(params: GridStartRowEditModeParams): void;
211
211
  /**
212
212
  * Puts the row corresponding to the given id and into view mode and updates the original row with the new values stored.
213
- * If `params.ignoreModifications` is `false` it will discard the modifications made.
213
+ * If `params.ignoreModifications` is `true` it will discard the modifications made.
214
214
  * @param {GridStopCellEditModeParams} params The row id and field of the cell to stop editing.
215
215
  */
216
216
  stopRowEditMode(params: GridStopRowEditModeParams): void;
@@ -296,7 +296,7 @@ export interface DataGridPropsWithDefaultValues {
296
296
  * The order of the sorting sequence.
297
297
  * @default ['asc', 'desc', null]
298
298
  */
299
- sortingOrder: GridSortDirection[];
299
+ sortingOrder: readonly GridSortDirection[];
300
300
  /**
301
301
  * Sorting can be processed on the server or client-side.
302
302
  * Set it to 'client' if you would like to handle sorting on the client-side.
@@ -340,6 +340,13 @@ export interface DataGridPropsWithDefaultValues {
340
340
  * @default '\t'
341
341
  */
342
342
  clipboardCopyCellDelimiter: string;
343
+ /**
344
+ * The milliseconds delay to wait after measuring the row height before recalculating row positions.
345
+ * Setting it to a lower value could be useful when using dynamic row height,
346
+ * but might reduce performance when displaying a large number of rows.
347
+ * @default 166
348
+ */
349
+ rowPositionsDebounceMs: number;
343
350
  }
344
351
  /**
345
352
  * The `DataGrid` props with no default value.
@@ -663,7 +670,7 @@ export interface DataGridPropsWithoutDefaultValue<R extends GridValidRowModel =
663
670
  /**
664
671
  * Set of columns of type [[GridColDef[]]].
665
672
  */
666
- columns: GridColDef<R>[];
673
+ columns: readonly GridColDef<R>[];
667
674
  /**
668
675
  * Return the id of a given [[GridRowModel]].
669
676
  */
@@ -596,6 +596,13 @@ DataGridRaw.propTypes = {
596
596
  * Controls the modes of the rows.
597
597
  */
598
598
  rowModesModel: PropTypes.object,
599
+ /**
600
+ * The milliseconds delay to wait after measuring the row height before recalculating row positions.
601
+ * Setting it to a lower value could be useful when using dynamic row height,
602
+ * but might reduce performance when displaying a large number of rows.
603
+ * @default 166
604
+ */
605
+ rowPositionsDebounceMs: PropTypes.number,
599
606
  /**
600
607
  * Set of rows of type [[GridRowsProp]].
601
608
  */
@@ -68,7 +68,8 @@ export const DATA_GRID_PROPS_DEFAULT_VALUES = {
68
68
  keepNonExistentRowsSelected: false,
69
69
  keepColumnPositionIfDraggedOutside: false,
70
70
  unstable_ignoreValueFormatterDuringExport: false,
71
- clipboardCopyCellDelimiter: '\t'
71
+ clipboardCopyCellDelimiter: '\t',
72
+ rowPositionsDebounceMs: 166
72
73
  };
73
74
  const defaultSlots = uncapitalizeObjectKeys(DATA_GRID_DEFAULT_SLOTS_COMPONENTS);
74
75
  export const useDataGridProps = inProps => {
@@ -174,7 +174,7 @@ export const useGridRowsMeta = (apiRef, props) => {
174
174
  rowsHeightLookup.current[id].needsFirstMeasurement = false;
175
175
  hydrateRowsMeta();
176
176
  }, [hydrateRowsMeta]);
177
- const debouncedHydrateRowsMeta = React.useMemo(() => debounce(hydrateRowsMeta), [hydrateRowsMeta]);
177
+ const debouncedHydrateRowsMeta = React.useMemo(() => debounce(hydrateRowsMeta, props.rowPositionsDebounceMs), [hydrateRowsMeta, props.rowPositionsDebounceMs]);
178
178
  const storeMeasuredRowHeight = React.useCallback((id, height, position) => {
179
179
  if (!rowsHeightLookup.current[id] || !rowsHeightLookup.current[id].autoHeight) {
180
180
  return;
@@ -464,6 +464,7 @@ export const useGridVirtualScroller = props => {
464
464
  rowStyleCache.current = Object.create(null);
465
465
  }
466
466
  const rows = [];
467
+ let isRowWithFocusedCellRendered = false;
467
468
  for (let i = 0; i < renderedRows.length; i += 1) {
468
469
  const {
469
470
  id,
@@ -498,6 +499,13 @@ export const useGridVirtualScroller = props => {
498
499
  const style = _extends({}, rowStyle, rootRowStyle);
499
500
  rowStyleCache.current[id] = style;
500
501
  }
502
+ let index = rowIndexOffset + (currentPage?.range?.firstRowIndex || 0) + firstRowToRender + i;
503
+ if (isRowWithFocusedCellNotInRange && cellFocus?.id === id) {
504
+ index = indexOfRowWithFocusedCell;
505
+ isRowWithFocusedCellRendered = true;
506
+ } else if (isRowWithFocusedCellRendered) {
507
+ index -= 1;
508
+ }
501
509
  rows.push( /*#__PURE__*/_jsx(rootProps.slots.row, _extends({
502
510
  row: model,
503
511
  rowId: id,
@@ -511,7 +519,7 @@ export const useGridVirtualScroller = props => {
511
519
  firstColumnToRender: firstColumnToRender,
512
520
  lastColumnToRender: lastColumnToRender,
513
521
  selected: isSelected,
514
- index: rowIndexOffset + (currentPage?.range?.firstRowIndex || 0) + firstRowToRender + i,
522
+ index: index,
515
523
  containerWidth: availableSpace,
516
524
  isLastVisible: lastVisibleRowIndex,
517
525
  position: position
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v6.16.2
2
+ * @mui/x-data-grid v6.17.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -60,13 +60,12 @@ const ptBRGrid = {
60
60
  filterOperatorIsEmpty: 'está vazio',
61
61
  filterOperatorIsNotEmpty: 'não está vazio',
62
62
  filterOperatorIsAnyOf: 'é qualquer um dos',
63
- // 'filterOperator=': '=',
64
- // 'filterOperator!=': '!=',
65
- // 'filterOperator>': '>',
66
- // 'filterOperator>=': '>=',
67
- // 'filterOperator<': '<',
68
- // 'filterOperator<=': '<=',
69
-
63
+ 'filterOperator=': 'igual à',
64
+ 'filterOperator!=': 'diferente de',
65
+ 'filterOperator>': 'maior que',
66
+ 'filterOperator>=': 'maior ou igual que',
67
+ 'filterOperator<': 'menor que',
68
+ 'filterOperator<=': 'menor ou igual que',
70
69
  // Header filter operators text
71
70
  headerFilterOperatorContains: 'Contém',
72
71
  headerFilterOperatorEquals: 'Igual',
@@ -74,13 +73,13 @@ const ptBRGrid = {
74
73
  headerFilterOperatorEndsWith: 'Termina com',
75
74
  headerFilterOperatorIs: 'É',
76
75
  headerFilterOperatorNot: 'Não é',
77
- // headerFilterOperatorAfter: 'Is after',
78
- // headerFilterOperatorOnOrAfter: 'Is on or after',
79
- // headerFilterOperatorBefore: 'Is before',
80
- // headerFilterOperatorOnOrBefore: 'Is on or before',
81
- // headerFilterOperatorIsEmpty: 'Is empty',
82
- // headerFilterOperatorIsNotEmpty: 'Is not empty',
83
- // headerFilterOperatorIsAnyOf: 'Is any of',
76
+ headerFilterOperatorAfter: 'Depois de',
77
+ headerFilterOperatorOnOrAfter: 'Está entre ou depois de',
78
+ headerFilterOperatorBefore: 'Antes de',
79
+ headerFilterOperatorOnOrBefore: 'Está entre ou antes de',
80
+ headerFilterOperatorIsEmpty: 'É vazio',
81
+ headerFilterOperatorIsNotEmpty: 'Não é vazio',
82
+ headerFilterOperatorIsAnyOf: 'É algum',
84
83
  'headerFilterOperator=': 'Igual',
85
84
  'headerFilterOperator!=': 'Não igual',
86
85
  'headerFilterOperator>': 'Maior que',
@@ -1,5 +1,5 @@
1
1
  export function isNumber(value) {
2
- return typeof value === 'number';
2
+ return typeof value === 'number' && !Number.isNaN(value);
3
3
  }
4
4
  export function isFunction(value) {
5
5
  return typeof value === 'function';
@@ -15,8 +15,8 @@ var _useDataGridComponent = require("./useDataGridComponent");
15
15
  var _useDataGridProps = require("./useDataGridProps");
16
16
  var _DataGridVirtualScroller = require("../components/DataGridVirtualScroller");
17
17
  var _jsxRuntime = require("react/jsx-runtime");
18
- 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
- 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; }
18
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
19
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
20
  const DataGridRaw = /*#__PURE__*/React.forwardRef(function DataGrid(inProps, ref) {
21
21
  const props = (0, _useDataGridProps.useDataGridProps)(inProps);
22
22
  const privateApiRef = (0, _useDataGridComponent.useDataGridComponent)(props.apiRef, props);
@@ -604,6 +604,13 @@ DataGridRaw.propTypes = {
604
604
  * Controls the modes of the rows.
605
605
  */
606
606
  rowModesModel: _propTypes.default.object,
607
+ /**
608
+ * The milliseconds delay to wait after measuring the row height before recalculating row positions.
609
+ * Setting it to a lower value could be useful when using dynamic row height,
610
+ * but might reduce performance when displaying a large number of rows.
611
+ * @default 166
612
+ */
613
+ rowPositionsDebounceMs: _propTypes.default.number,
607
614
  /**
608
615
  * Set of rows of type [[GridRowsProp]].
609
616
  */