@mui/x-data-grid 5.6.0 → 5.6.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 (230) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/DataGrid/DataGrid.js +18 -3
  3. package/DataGrid/useDataGridComponent.js +19 -15
  4. package/DataGrid/useDataGridProps.js +3 -2
  5. package/colDef/gridNumericOperators.d.ts +1 -1
  6. package/colDef/gridNumericOperators.js +1 -1
  7. package/components/ErrorBoundary.d.ts +2 -2
  8. package/components/GridRow.js +29 -3
  9. package/components/base/GridErrorHandler.d.ts +8 -2
  10. package/components/base/GridErrorHandler.js +13 -2
  11. package/components/cell/GridBooleanCell.d.ts +2 -1
  12. package/components/cell/GridCell.js +4 -2
  13. package/components/cell/GridEditBooleanCell.d.ts +2 -1
  14. package/components/cell/GridEditDateCell.d.ts +2 -1
  15. package/components/cell/GridEditInputCell.d.ts +2 -1
  16. package/components/cell/GridEditSingleSelectCell.d.ts +2 -1
  17. package/components/cell/GridEditSingleSelectCell.js +2 -1
  18. package/components/columnHeaders/GridColumnHeaderItem.js +5 -3
  19. package/components/containers/GridRootStyles.js +1 -1
  20. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.d.ts +2 -1
  21. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +27 -23
  22. package/components/panel/filterPanel/filterPanelUtils.d.ts +2 -2
  23. package/components/virtualization/GridVirtualScrollerRenderZone.js +4 -1
  24. package/constants/gridClasses.d.ts +5 -1
  25. package/constants/gridClasses.js +1 -1
  26. package/context/GridContextProvider.d.ts +9 -6
  27. package/hooks/features/columnMenu/useGridColumnMenu.d.ts +2 -0
  28. package/hooks/features/columnMenu/useGridColumnMenu.js +6 -7
  29. package/hooks/features/columns/gridColumnsSelector.d.ts +8 -8
  30. package/hooks/features/columns/gridColumnsSelector.js +11 -10
  31. package/hooks/features/columns/gridColumnsUtils.js +7 -5
  32. package/hooks/features/density/useGridDensity.d.ts +2 -0
  33. package/hooks/features/density/useGridDensity.js +3 -4
  34. package/hooks/features/dimensions/useGridDimensions.js +2 -2
  35. package/hooks/features/editRows/useGridEditing.d.ts +2 -0
  36. package/hooks/features/editRows/useGridEditing.js +3 -4
  37. package/hooks/features/export/serializers/csvSerializer.js +4 -4
  38. package/hooks/features/filter/gridFilterSelector.d.ts +1 -0
  39. package/hooks/features/filter/gridFilterSelector.js +1 -0
  40. package/hooks/features/focus/useGridFocus.d.ts +2 -0
  41. package/hooks/features/focus/useGridFocus.js +10 -11
  42. package/hooks/features/keyboard/useGridKeyboardNavigation.js +2 -2
  43. package/hooks/features/pagination/useGridPage.d.ts +1 -2
  44. package/hooks/features/pagination/useGridPage.js +5 -17
  45. package/hooks/features/pagination/useGridPageSize.d.ts +1 -2
  46. package/hooks/features/pagination/useGridPageSize.js +5 -26
  47. package/hooks/features/pagination/useGridPagination.d.ts +2 -0
  48. package/hooks/features/pagination/useGridPagination.js +25 -2
  49. package/hooks/features/preferencesPanel/useGridPreferencesPanel.d.ts +3 -1
  50. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +10 -11
  51. package/hooks/features/rows/useGridParamsApi.js +3 -10
  52. package/hooks/features/rows/useGridRows.js +14 -6
  53. package/hooks/features/rows/useGridRowsMeta.d.ts +3 -1
  54. package/hooks/features/rows/useGridRowsMeta.js +42 -24
  55. package/hooks/features/selection/gridSelectionSelector.d.ts +1 -1
  56. package/hooks/features/selection/useGridSelection.d.ts +2 -0
  57. package/hooks/features/selection/useGridSelection.js +28 -16
  58. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +8 -3
  59. package/hooks/features/virtualization/useGridVirtualScroller.js +4 -4
  60. package/hooks/utils/useGridApi.js +10 -1
  61. package/hooks/utils/useGridInitializeState.d.ts +2 -1
  62. package/hooks/utils/useGridSelector.js +4 -4
  63. package/hooks/utils/useGridState.js +10 -1
  64. package/hooks/utils/{useCurrentPageRows.d.ts → useGridVisibleRows.d.ts} +7 -6
  65. package/hooks/utils/{useCurrentPageRows.js → useGridVisibleRows.js} +8 -7
  66. package/index.js +1 -1
  67. package/internals/index.d.ts +9 -12
  68. package/internals/index.js +9 -12
  69. package/legacy/DataGrid/DataGrid.js +18 -3
  70. package/legacy/DataGrid/useDataGridComponent.js +19 -15
  71. package/legacy/DataGrid/useDataGridProps.js +8 -2
  72. package/legacy/colDef/gridNumericOperators.js +1 -1
  73. package/legacy/components/GridRow.js +30 -3
  74. package/legacy/components/base/GridErrorHandler.js +13 -2
  75. package/legacy/components/cell/GridCell.js +4 -2
  76. package/legacy/components/cell/GridEditSingleSelectCell.js +10 -9
  77. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +5 -3
  78. package/legacy/components/containers/GridRootStyles.js +1 -1
  79. package/legacy/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +29 -26
  80. package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +4 -1
  81. package/legacy/constants/gridClasses.js +1 -1
  82. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +8 -9
  83. package/legacy/hooks/features/columns/gridColumnsSelector.js +13 -12
  84. package/legacy/hooks/features/columns/gridColumnsUtils.js +7 -5
  85. package/legacy/hooks/features/density/useGridDensity.js +5 -6
  86. package/legacy/hooks/features/dimensions/useGridDimensions.js +2 -2
  87. package/legacy/hooks/features/editRows/useGridEditing.js +5 -6
  88. package/legacy/hooks/features/export/serializers/csvSerializer.js +4 -4
  89. package/legacy/hooks/features/filter/gridFilterSelector.js +1 -0
  90. package/legacy/hooks/features/focus/useGridFocus.js +12 -13
  91. package/legacy/hooks/features/keyboard/useGridKeyboardNavigation.js +2 -2
  92. package/legacy/hooks/features/pagination/useGridPage.js +5 -17
  93. package/legacy/hooks/features/pagination/useGridPageSize.js +5 -26
  94. package/legacy/hooks/features/pagination/useGridPagination.js +25 -2
  95. package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +10 -11
  96. package/legacy/hooks/features/rows/useGridParamsApi.js +3 -10
  97. package/legacy/hooks/features/rows/useGridRows.js +17 -6
  98. package/legacy/hooks/features/rows/useGridRowsMeta.js +44 -26
  99. package/legacy/hooks/features/selection/useGridSelection.js +29 -19
  100. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +4 -4
  101. package/legacy/hooks/utils/useGridApi.js +7 -0
  102. package/legacy/hooks/utils/useGridSelector.js +4 -4
  103. package/legacy/hooks/utils/useGridState.js +7 -0
  104. package/legacy/hooks/utils/{useCurrentPageRows.js → useGridVisibleRows.js} +8 -7
  105. package/legacy/index.js +1 -1
  106. package/legacy/internals/index.js +9 -12
  107. package/legacy/models/colDef/gridDefaultColumnTypes.js +4 -4
  108. package/legacy/utils/createSelector.js +4 -4
  109. package/legacy/utils/getGridLocalization.js +2 -2
  110. package/lib/lodash/_baseGetAllKeys.d.ts +1 -1
  111. package/lib/lodash/_baseIsEqual.d.ts +1 -1
  112. package/lib/lodash/_baseIsEqualDeep.d.ts +1 -1
  113. package/lib/lodash/_baseKeys.d.ts +1 -1
  114. package/lib/lodash/_cacheHas.d.ts +1 -1
  115. package/lib/lodash/_equalArrays.d.ts +1 -1
  116. package/lib/lodash/_equalByTag.d.ts +1 -1
  117. package/lib/lodash/_equalObjects.d.ts +1 -1
  118. package/lib/lodash/_getAllKeys.d.ts +1 -1
  119. package/lib/lodash/_getMapData.d.ts +1 -1
  120. package/lib/lodash/_getNative.d.ts +1 -1
  121. package/lib/lodash/_getValue.d.ts +1 -1
  122. package/lib/lodash/_hashSet.d.ts +1 -1
  123. package/lib/lodash/_listCacheSet.d.ts +1 -1
  124. package/lib/lodash/_mapCacheSet.d.ts +1 -1
  125. package/lib/lodash/_mapToArray.d.ts +1 -1
  126. package/lib/lodash/_setCacheAdd.d.ts +1 -1
  127. package/lib/lodash/_setToArray.d.ts +1 -1
  128. package/lib/lodash/_stackSet.d.ts +1 -1
  129. package/lib/lodash/keys.d.ts +1 -1
  130. package/models/api/gridRowApi.d.ts +6 -0
  131. package/models/api/gridRowsMetaApi.d.ts +7 -0
  132. package/models/api/gridSortApi.d.ts +1 -0
  133. package/models/colDef/gridColDef.d.ts +1 -2
  134. package/models/colDef/gridDefaultColumnTypes.js +2 -2
  135. package/models/gridRows.d.ts +8 -2
  136. package/models/params/gridRowParams.d.ts +29 -1
  137. package/models/props/DataGridProps.d.ts +20 -4
  138. package/modern/DataGrid/DataGrid.js +18 -3
  139. package/modern/DataGrid/useDataGridComponent.js +19 -15
  140. package/modern/DataGrid/useDataGridProps.js +3 -2
  141. package/modern/colDef/gridNumericOperators.js +1 -1
  142. package/modern/components/GridRow.js +29 -3
  143. package/modern/components/base/GridErrorHandler.js +13 -2
  144. package/modern/components/cell/GridCell.js +2 -2
  145. package/modern/components/cell/GridEditSingleSelectCell.js +2 -1
  146. package/modern/components/columnHeaders/GridColumnHeaderItem.js +5 -3
  147. package/modern/components/containers/GridRootStyles.js +1 -1
  148. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +27 -23
  149. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +4 -1
  150. package/modern/constants/gridClasses.js +1 -1
  151. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +6 -7
  152. package/modern/hooks/features/columns/gridColumnsSelector.js +11 -10
  153. package/modern/hooks/features/columns/gridColumnsUtils.js +7 -5
  154. package/modern/hooks/features/density/useGridDensity.js +3 -4
  155. package/modern/hooks/features/dimensions/useGridDimensions.js +2 -2
  156. package/modern/hooks/features/editRows/useGridEditing.js +3 -4
  157. package/modern/hooks/features/export/serializers/csvSerializer.js +4 -4
  158. package/modern/hooks/features/filter/gridFilterSelector.js +1 -0
  159. package/modern/hooks/features/focus/useGridFocus.js +10 -11
  160. package/modern/hooks/features/keyboard/useGridKeyboardNavigation.js +2 -2
  161. package/modern/hooks/features/pagination/useGridPage.js +1 -9
  162. package/modern/hooks/features/pagination/useGridPageSize.js +1 -20
  163. package/modern/hooks/features/pagination/useGridPagination.js +23 -2
  164. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +6 -7
  165. package/modern/hooks/features/rows/useGridParamsApi.js +3 -10
  166. package/modern/hooks/features/rows/useGridRows.js +14 -6
  167. package/modern/hooks/features/rows/useGridRowsMeta.js +36 -24
  168. package/modern/hooks/features/selection/useGridSelection.js +24 -16
  169. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +4 -4
  170. package/modern/hooks/utils/useGridApi.js +10 -1
  171. package/modern/hooks/utils/useGridSelector.js +4 -4
  172. package/modern/hooks/utils/useGridState.js +10 -1
  173. package/modern/hooks/utils/{useCurrentPageRows.js → useGridVisibleRows.js} +8 -7
  174. package/modern/index.js +1 -1
  175. package/modern/internals/index.js +9 -12
  176. package/modern/models/colDef/gridDefaultColumnTypes.js +2 -2
  177. package/modern/utils/createSelector.js +4 -4
  178. package/modern/utils/getGridLocalization.js +1 -1
  179. package/node/DataGrid/DataGrid.js +18 -3
  180. package/node/DataGrid/useDataGridComponent.js +11 -9
  181. package/node/DataGrid/useDataGridProps.js +3 -2
  182. package/node/colDef/gridNumericOperators.js +1 -1
  183. package/node/components/GridRow.js +28 -3
  184. package/node/components/base/GridErrorHandler.js +11 -1
  185. package/node/components/cell/GridCell.js +4 -2
  186. package/node/components/cell/GridEditSingleSelectCell.js +2 -1
  187. package/node/components/columnHeaders/GridColumnHeaderItem.js +5 -3
  188. package/node/components/containers/GridRootStyles.js +1 -1
  189. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +27 -23
  190. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +4 -1
  191. package/node/constants/gridClasses.js +1 -1
  192. package/node/hooks/features/columnMenu/useGridColumnMenu.js +10 -8
  193. package/node/hooks/features/columns/gridColumnsSelector.js +11 -9
  194. package/node/hooks/features/columns/gridColumnsUtils.js +7 -5
  195. package/node/hooks/features/density/useGridDensity.js +7 -6
  196. package/node/hooks/features/dimensions/useGridDimensions.js +2 -2
  197. package/node/hooks/features/editRows/useGridEditing.js +8 -5
  198. package/node/hooks/features/export/serializers/csvSerializer.js +5 -4
  199. package/node/hooks/features/filter/gridFilterSelector.js +1 -0
  200. package/node/hooks/features/focus/useGridFocus.js +15 -13
  201. package/node/hooks/features/keyboard/useGridKeyboardNavigation.js +2 -2
  202. package/node/hooks/features/pagination/useGridPage.js +7 -20
  203. package/node/hooks/features/pagination/useGridPageSize.js +6 -26
  204. package/node/hooks/features/pagination/useGridPagination.js +31 -1
  205. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +15 -13
  206. package/node/hooks/features/rows/useGridParamsApi.js +4 -10
  207. package/node/hooks/features/rows/useGridRows.js +15 -6
  208. package/node/hooks/features/rows/useGridRowsMeta.js +47 -26
  209. package/node/hooks/features/selection/useGridSelection.js +32 -18
  210. package/node/hooks/features/virtualization/useGridVirtualScroller.js +4 -4
  211. package/node/hooks/utils/useGridApi.js +11 -1
  212. package/node/hooks/utils/useGridSelector.js +6 -4
  213. package/node/hooks/utils/useGridState.js +11 -1
  214. package/node/hooks/utils/{useCurrentPageRows.js → useGridVisibleRows.js} +11 -10
  215. package/node/index.js +1 -1
  216. package/node/internals/index.js +45 -21
  217. package/node/models/colDef/gridDefaultColumnTypes.js +2 -2
  218. package/node/utils/createSelector.js +5 -4
  219. package/node/utils/getGridLocalization.js +2 -2
  220. package/package.json +2 -2
  221. package/utils/createSelector.js +4 -4
  222. package/utils/getGridLocalization.d.ts +2 -1
  223. package/utils/getGridLocalization.js +2 -2
  224. package/utils/keyboardUtils.d.ts +1 -1
  225. package/utils/warning.d.ts +1 -1
  226. package/hooks/utils/useGridStateInit.d.ts +0 -7
  227. package/hooks/utils/useGridStateInit.js +0 -9
  228. package/legacy/hooks/utils/useGridStateInit.js +0 -9
  229. package/modern/hooks/utils/useGridStateInit.js +0 -9
  230. package/node/hooks/utils/useGridStateInit.js +0 -23
@@ -1,15 +1,22 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
- import { getCurrentPageRows } from '../../utils/useCurrentPageRows';
3
+ import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
4
4
  import { useGridApiMethod } from '../../utils/useGridApiMethod';
5
5
  import { useGridSelector } from '../../utils/useGridSelector';
6
6
  import { gridDensityRowHeightSelector, gridDensityFactorSelector } from '../density/densitySelector';
7
7
  import { gridFilterStateSelector } from '../filter/gridFilterSelector';
8
8
  import { gridPaginationSelector } from '../pagination/gridPaginationSelector';
9
9
  import { gridSortingStateSelector } from '../sorting/gridSortingSelector';
10
- import { useGridStateInit } from '../../utils/useGridStateInit';
11
10
  import { GridEvents } from '../../../models/events/gridEvents';
12
11
  import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
12
+ export var rowsMetaStateInitializer = function rowsMetaStateInitializer(state) {
13
+ return _extends({}, state, {
14
+ rowsMeta: {
15
+ currentPageTotalHeight: 0,
16
+ positions: []
17
+ }
18
+ });
19
+ };
13
20
  /**
14
21
  * @requires useGridPageSize (method)
15
22
  * @requires useGridPage (method)
@@ -17,33 +24,19 @@ import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
17
24
 
18
25
  export var useGridRowsMeta = function useGridRowsMeta(apiRef, props) {
19
26
  var getRowHeight = props.getRowHeight,
20
- pagination = props.pagination,
21
- paginationMode = props.paginationMode;
27
+ getRowSpacing = props.getRowSpacing;
22
28
  var rowsHeightLookup = React.useRef({});
23
29
  var rowHeight = useGridSelector(apiRef, gridDensityRowHeightSelector);
24
30
  var filterState = useGridSelector(apiRef, gridFilterStateSelector);
25
31
  var paginationState = useGridSelector(apiRef, gridPaginationSelector);
26
32
  var sortingState = useGridSelector(apiRef, gridSortingStateSelector);
27
- useGridStateInit(apiRef, function (state) {
28
- return _extends({}, state, {
29
- rowsMeta: {
30
- currentPageTotalHeight: 0,
31
- positions: []
32
- }
33
- });
34
- });
33
+ var currentPage = useGridVisibleRows(apiRef, props);
35
34
  var hydrateRowsMeta = React.useCallback(function () {
36
- var _getCurrentPageRows = getCurrentPageRows(apiRef, {
37
- pagination: pagination,
38
- paginationMode: paginationMode
39
- }),
40
- rows = _getCurrentPageRows.rows;
41
-
42
35
  apiRef.current.setState(function (state) {
43
36
  var positions = [];
44
37
  var densityFactor = gridDensityFactorSelector(state, apiRef.current.instanceId);
45
38
  var currentRowHeight = gridDensityRowHeightSelector(state, apiRef.current.instanceId);
46
- var currentPageTotalHeight = rows.reduce(function (acc, row) {
39
+ var currentPageTotalHeight = currentPage.rows.reduce(function (acc, row) {
47
40
  positions.push(acc);
48
41
  var baseRowHeight;
49
42
  var isResized = rowsHeightLookup.current[row.id] && rowsHeightLookup.current[row.id].isResized || false;
@@ -62,17 +55,32 @@ export var useGridRowsMeta = function useGridRowsMeta(apiRef, props) {
62
55
  densityFactor: densityFactor
63
56
  }))) != null ? _getRowHeight : currentRowHeight;
64
57
  }
65
- }
58
+ } // We use an object to make simple to check if a height is already added or not
66
59
 
67
- var heights = apiRef.current.unstable_applyPreProcessors('rowHeight', {
60
+
61
+ var initialHeights = {
68
62
  base: baseRowHeight
69
- }, // We use an object to make simple to check if a size was already added or not
70
- row);
71
- var finalRowHeight = Object.values(heights).reduce(function (acc2, value) {
63
+ };
64
+
65
+ if (getRowSpacing) {
66
+ var _spacing$top, _spacing$bottom;
67
+
68
+ var index = apiRef.current.getRowIndexRelativeToVisibleRows(row.id);
69
+ var spacing = getRowSpacing(_extends({}, row, {
70
+ isFirstVisible: index === 0,
71
+ isLastVisible: index === currentPage.rows.length - 1
72
+ }));
73
+ initialHeights.spacingTop = (_spacing$top = spacing.top) != null ? _spacing$top : 0;
74
+ initialHeights.spacingBottom = (_spacing$bottom = spacing.bottom) != null ? _spacing$bottom : 0;
75
+ }
76
+
77
+ var sizes = apiRef.current.unstable_applyPreProcessors('rowHeight', initialHeights, row);
78
+ var finalRowHeight = Object.values(sizes).reduce(function (acc2, value) {
72
79
  return acc2 + value;
73
80
  }, 0);
74
81
  rowsHeightLookup.current[row.id] = {
75
82
  value: baseRowHeight,
83
+ sizes: sizes,
76
84
  isResized: isResized
77
85
  };
78
86
  return acc + finalRowHeight;
@@ -85,7 +93,7 @@ export var useGridRowsMeta = function useGridRowsMeta(apiRef, props) {
85
93
  });
86
94
  });
87
95
  apiRef.current.forceUpdate();
88
- }, [apiRef, pagination, paginationMode, getRowHeight]);
96
+ }, [apiRef, currentPage.rows, getRowSpacing, getRowHeight]);
89
97
 
90
98
  var getTargetRowHeight = function getTargetRowHeight(rowId) {
91
99
  var _rowsHeightLookup$cur;
@@ -93,10 +101,19 @@ export var useGridRowsMeta = function useGridRowsMeta(apiRef, props) {
93
101
  return ((_rowsHeightLookup$cur = rowsHeightLookup.current[rowId]) == null ? void 0 : _rowsHeightLookup$cur.value) || rowHeight;
94
102
  };
95
103
 
104
+ var getRowInternalSizes = function getRowInternalSizes(rowId) {
105
+ var _rowsHeightLookup$cur2;
106
+
107
+ return (_rowsHeightLookup$cur2 = rowsHeightLookup.current[rowId]) == null ? void 0 : _rowsHeightLookup$cur2.sizes;
108
+ };
109
+
96
110
  var setRowHeight = React.useCallback(function (id, height) {
97
111
  rowsHeightLookup.current[id] = {
98
112
  value: height,
99
- isResized: true
113
+ isResized: true,
114
+ sizes: _extends({}, rowsHeightLookup.current[id].sizes, {
115
+ base: height
116
+ })
100
117
  };
101
118
  hydrateRowsMeta();
102
119
  }, [hydrateRowsMeta]); // The effect is used to build the rows meta data - currentPageTotalHeight and positions.
@@ -115,6 +132,7 @@ export var useGridRowsMeta = function useGridRowsMeta(apiRef, props) {
115
132
  useGridApiEventHandler(apiRef, GridEvents.preProcessorRegister, handlePreProcessorRegister);
116
133
  var rowsMetaApi = {
117
134
  unstable_getRowHeight: getTargetRowHeight,
135
+ unstable_getRowInternalSizes: getRowInternalSizes,
118
136
  unstable_setRowHeight: setRowHeight
119
137
  };
120
138
  useGridApiMethod(apiRef, rowsMetaApi, 'GridRowsMetaApi');
@@ -11,10 +11,33 @@ import { gridSelectionStateSelector, selectedGridRowsSelector, selectedIdsLookup
11
11
  import { gridPaginatedVisibleSortedGridRowIdsSelector } from '../pagination';
12
12
  import { gridVisibleSortedRowIdsSelector } from '../filter/gridFilterSelector';
13
13
  import { GRID_CHECKBOX_SELECTION_COL_DEF, GRID_ACTIONS_COLUMN_TYPE } from '../../../colDef';
14
- import { useGridStateInit } from '../../utils/useGridStateInit';
15
14
  import { GridCellModes } from '../../../models/gridEditRowModel';
16
15
  import { isKeyboardEvent } from '../../../utils/keyboardUtils';
17
- import { getCurrentPageRows } from '../../utils/useCurrentPageRows';
16
+ import { getVisibleRows } from '../../utils/useGridVisibleRows';
17
+
18
+ var getSelectionModelPropValue = function getSelectionModelPropValue(selectionModelProp, prevSelectionModel) {
19
+ if (selectionModelProp == null) {
20
+ return selectionModelProp;
21
+ }
22
+
23
+ if (Array.isArray(selectionModelProp)) {
24
+ return selectionModelProp;
25
+ }
26
+
27
+ if (prevSelectionModel && prevSelectionModel[0] === selectionModelProp) {
28
+ return prevSelectionModel;
29
+ }
30
+
31
+ return [selectionModelProp];
32
+ };
33
+
34
+ export var selectionStateInitializer = function selectionStateInitializer(state, props) {
35
+ var _getSelectionModelPro;
36
+
37
+ return _extends({}, state, {
38
+ selection: (_getSelectionModelPro = getSelectionModelPropValue(props.selectionModel)) != null ? _getSelectionModelPro : []
39
+ });
40
+ };
18
41
  /**
19
42
  * @requires useGridRows (state, method)
20
43
  * @requires useGridParamsApi (method)
@@ -23,21 +46,8 @@ import { getCurrentPageRows } from '../../utils/useCurrentPageRows';
23
46
  export var useGridSelection = function useGridSelection(apiRef, props) {
24
47
  var logger = useGridLogger(apiRef, 'useGridSelection');
25
48
  var propSelectionModel = React.useMemo(function () {
26
- if (props.selectionModel == null) {
27
- return props.selectionModel;
28
- }
29
-
30
- if (Array.isArray(props.selectionModel)) {
31
- return props.selectionModel;
32
- }
33
-
34
- return [props.selectionModel];
35
- }, [props.selectionModel]);
36
- useGridStateInit(apiRef, function (state) {
37
- return _extends({}, state, {
38
- selection: propSelectionModel != null ? propSelectionModel : []
39
- });
40
- });
49
+ return getSelectionModelPropValue(props.selectionModel, gridSelectionStateSelector(apiRef.current.state));
50
+ }, [apiRef, props.selectionModel]);
41
51
  var lastRowToggled = React.useRef(null);
42
52
  apiRef.current.unstable_updateControlState({
43
53
  stateId: 'selection',
@@ -350,11 +360,11 @@ export var useGridSelection = function useGridSelection(apiRef, props) {
350
360
  var currentSelection = gridSelectionStateSelector(apiRef.current.state);
351
361
 
352
362
  if (!canHaveMultipleSelection && currentSelection.length > 1) {
353
- var _getCurrentPageRows = getCurrentPageRows(apiRef, {
363
+ var _getVisibleRows = getVisibleRows(apiRef, {
354
364
  pagination: pagination,
355
365
  paginationMode: paginationMode
356
366
  }),
357
- currentPageRows = _getCurrentPageRows.rows;
367
+ currentPageRows = _getVisibleRows.rows;
358
368
 
359
369
  var currentPageRowsLookup = currentPageRows.reduce(function (acc, _ref4) {
360
370
  var id = _ref4.id;
@@ -11,7 +11,7 @@ import { gridVisibleColumnDefinitionsSelector, gridColumnsTotalWidthSelector, gr
11
11
  import { gridDensityRowHeightSelector } from '../density/densitySelector';
12
12
  import { gridFocusCellSelector, gridTabIndexCellSelector } from '../focus/gridFocusStateSelector';
13
13
  import { gridEditRowsStateSelector } from '../editRows/gridEditRowsSelector';
14
- import { useCurrentPageRows } from '../../utils/useCurrentPageRows';
14
+ import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
15
15
  import { GridEvents } from '../../../models/events';
16
16
  import { useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
17
17
  import { clamp } from '../../../utils/utils';
@@ -57,7 +57,7 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
57
57
  var rowsMeta = useGridSelector(apiRef, gridRowsMetaSelector);
58
58
  var editRowsState = useGridSelector(apiRef, gridEditRowsStateSelector);
59
59
  var selectedRowsLookup = useGridSelector(apiRef, selectedIdsLookupSelector);
60
- var currentPage = useCurrentPageRows(apiRef, rootProps);
60
+ var currentPage = useGridVisibleRows(apiRef, rootProps);
61
61
  var renderZoneRef = React.useRef(null);
62
62
  var rootRef = React.useRef(null);
63
63
  var handleRef = useForkRef(ref, rootRef);
@@ -138,7 +138,7 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
138
138
  firstIndex: nextRenderContext.firstRowIndex,
139
139
  lastIndex: nextRenderContext.lastRowIndex,
140
140
  minFirstIndex: 0,
141
- maxLastIndex: (_currentPage$range = currentPage.range) == null ? void 0 : _currentPage$range.lastRowIndex,
141
+ maxLastIndex: ((_currentPage$range = currentPage.range) == null ? void 0 : _currentPage$range.lastRowIndex) || 0,
142
142
  buffer: rootProps.rowBuffer
143
143
  }),
144
144
  _getRenderableIndexes2 = _slicedToArray(_getRenderableIndexes, 1),
@@ -297,7 +297,7 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
297
297
  firstColumnToRender: firstColumnToRender,
298
298
  lastColumnToRender: lastColumnToRender,
299
299
  selected: isSelected,
300
- index: currentPage.range.firstRowIndex + nextRenderContext.firstRowIndex + i,
300
+ index: currentPage.range.firstRowIndex + firstRowToRender + i,
301
301
  containerWidth: availableSpace,
302
302
  isLastVisible: lastVisibleRowIndex
303
303
  }, typeof getRowProps === 'function' ? getRowProps(_id, _model) : {}, (_rootProps$components = rootProps.componentsProps) == null ? void 0 : _rootProps$components.row), _id));
@@ -1,6 +1,13 @@
1
+ import { buildWarning } from '../../utils/warning';
2
+ var deprecationWarning = buildWarning(['MUI: The hook useGridApi is deprecated and will be removed in the next major version.', 'Access the ref content with apiRef.current instead']);
1
3
  /**
2
4
  * @deprecated Use `apiRef.current` instead.
3
5
  */
6
+
4
7
  export var useGridApi = function useGridApi(apiRef) {
8
+ if (process.env.NODE_ENV !== 'production') {
9
+ deprecationWarning();
10
+ }
11
+
5
12
  return apiRef.current;
6
13
  };
@@ -1,14 +1,14 @@
1
- var warnedOnceStateNotInitialized = false;
1
+ import { buildWarning } from '../../utils/warning';
2
2
 
3
3
  function isOutputSelector(selector) {
4
4
  return selector.cache;
5
5
  }
6
6
 
7
+ var stateNotInitializedWarning = buildWarning(['MUI: `useGridSelector` has been called before the initialization of the state.', 'This hook can only be used inside the context of the grid.']);
7
8
  export var useGridSelector = function useGridSelector(apiRef, selector) {
8
9
  if (process.env.NODE_ENV !== 'production') {
9
- if (!warnedOnceStateNotInitialized && !apiRef.current.state) {
10
- warnedOnceStateNotInitialized = true;
11
- console.warn(['MUI: `useGridSelector` has been called before the initialization of the state.', 'This hook can only be used inside the context of the grid.'].join('\n'));
10
+ if (!apiRef.current.state) {
11
+ stateNotInitializedWarning();
12
12
  }
13
13
  }
14
14
 
@@ -1,6 +1,13 @@
1
+ import { buildWarning } from '../../utils/warning';
2
+ var deprecationWarning = buildWarning(['MUI: The hook useGridState is deprecated and will be removed in the next major version.', 'The two lines below are equivalent', '', 'const [state, setState, forceUpdate] = useGridState(apiRef);', 'const { state, setState, forceUpdate } = apiRef.current']);
1
3
  /**
2
4
  * @deprecated Use `apiRef.current.state`, `apiRef.current.setState` and `apiRef.current.forceUpdate` instead.
3
5
  */
6
+
4
7
  export var useGridState = function useGridState(apiRef) {
8
+ if (process.env.NODE_ENV !== 'production') {
9
+ deprecationWarning();
10
+ }
11
+
5
12
  return [apiRef.current.state, apiRef.current.setState, apiRef.current.forceUpdate];
6
13
  };
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { gridPaginationRowRangeSelector, gridPaginatedVisibleSortedGridRowEntriesSelector } from '../features/pagination/gridPaginationSelector';
3
3
  import { gridVisibleSortedRowEntriesSelector } from '../features/filter/gridFilterSelector';
4
- export var getCurrentPageRows = function getCurrentPageRows(apiRef, props) {
4
+ export var getVisibleRows = function getVisibleRows(apiRef, props) {
5
5
  var rows;
6
6
  var range;
7
7
 
@@ -27,14 +27,15 @@ export var getCurrentPageRows = function getCurrentPageRows(apiRef, props) {
27
27
  };
28
28
  };
29
29
  /**
30
- * Compute the list of the rows in the current page
31
- * - If the pagination is disabled or in server mode, it equals all the visible rows
32
- * - If the row tree has several layers, it contains up to `state.pageSize` top level rows and all their descendants
33
- * - If the row tree is flat, it only contains up to `state.pageSize` rows
30
+ * Computes the list of rows that are reachable by scroll.
31
+ * Depending on whether pagination is enabled, it will return the rows in the current page.
32
+ * - If the pagination is disabled or in server mode, it equals all the visible rows.
33
+ * - If the row tree has several layers, it contains up to `state.pageSize` top level rows and all their descendants.
34
+ * - If the row tree is flat, it only contains up to `state.pageSize` rows.
34
35
  */
35
36
 
36
- export var useCurrentPageRows = function useCurrentPageRows(apiRef, props) {
37
- var response = getCurrentPageRows(apiRef, props);
37
+ export var useGridVisibleRows = function useGridVisibleRows(apiRef, props) {
38
+ var response = getVisibleRows(apiRef, props);
38
39
  return React.useMemo(function () {
39
40
  return {
40
41
  rows: response.rows,
package/legacy/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license MUI v5.6.0
1
+ /** @license MUI v5.6.1
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
@@ -7,25 +7,23 @@ export { useGridRegisterPreProcessor } from '../hooks/core/preProcessing';
7
7
  export { useGridInitialization } from '../hooks/core/useGridInitialization';
8
8
  export { useGridClipboard } from '../hooks/features/clipboard/useGridClipboard';
9
9
  export { useGridColumnHeaders } from '../hooks/features/columnHeaders/useGridColumnHeaders';
10
- export { useGridColumnMenu } from '../hooks/features/columnMenu/useGridColumnMenu';
10
+ export { useGridColumnMenu, columnMenuStateInitializer } from '../hooks/features/columnMenu/useGridColumnMenu';
11
11
  export { useGridColumns, columnsStateInitializer } from '../hooks/features/columns/useGridColumns';
12
- export { useGridDensity } from '../hooks/features/density/useGridDensity';
12
+ export { useGridDensity, densityStateInitializer } from '../hooks/features/density/useGridDensity';
13
13
  export { useGridCsvExport } from '../hooks/features/export/useGridCsvExport';
14
14
  export { useGridPrintExport } from '../hooks/features/export/useGridPrintExport';
15
15
  export { useGridFilter, filterStateInitializer } from '../hooks/features/filter/useGridFilter';
16
16
  export { useGridRegisterFilteringMethod } from '../hooks/features/filter/useGridRegisterFilteringMethod';
17
- export { useGridFocus } from '../hooks/features/focus/useGridFocus';
17
+ export { useGridFocus, focusStateInitializer } from '../hooks/features/focus/useGridFocus';
18
18
  export { useGridKeyboard } from '../hooks/features/keyboard/useGridKeyboard';
19
19
  export { useGridKeyboardNavigation } from '../hooks/features/keyboard/useGridKeyboardNavigation';
20
- export { useGridPagination } from '../hooks/features/pagination/useGridPagination';
21
- export { pageStateInitializer } from '../hooks/features/pagination/useGridPage';
22
- export { pageSizeStateInitializer } from '../hooks/features/pagination/useGridPageSize';
23
- export { useGridPreferencesPanel } from '../hooks/features/preferencesPanel/useGridPreferencesPanel';
24
- export { useGridEditing } from '../hooks/features/editRows/useGridEditing';
20
+ export { useGridPagination, paginationStateInitializer } from '../hooks/features/pagination/useGridPagination';
21
+ export { useGridPreferencesPanel, preferencePanelStateInitializer } from '../hooks/features/preferencesPanel/useGridPreferencesPanel';
22
+ export { useGridEditing, editingStateInitializer } from '../hooks/features/editRows/useGridEditing';
25
23
  export { useGridRows, rowsStateInitializer } from '../hooks/features/rows/useGridRows';
26
- export { useGridRowsMeta } from '../hooks/features/rows/useGridRowsMeta';
24
+ export { useGridRowsMeta, rowsMetaStateInitializer } from '../hooks/features/rows/useGridRowsMeta';
27
25
  export { useGridParamsApi } from '../hooks/features/rows/useGridParamsApi';
28
- export { useGridSelection } from '../hooks/features/selection/useGridSelection';
26
+ export { useGridSelection, selectionStateInitializer } from '../hooks/features/selection/useGridSelection';
29
27
  export { useGridSelectionPreProcessors } from '../hooks/features/selection/useGridSelectionPreProcessors';
30
28
  export { useGridSorting, sortingStateInitializer } from '../hooks/features/sorting/useGridSorting';
31
29
  export { useGridRegisterSortingMethod } from '../hooks/features/sorting/useGridRegisterSortingMethod';
@@ -34,9 +32,8 @@ export { useGridEvents } from '../hooks/features/events/useGridEvents';
34
32
  export { useGridDimensions } from '../hooks/features/dimensions/useGridDimensions';
35
33
  export { useGridStatePersistence } from '../hooks/features/statePersistence/useGridStatePersistence';
36
34
  export { useGridVirtualScroller } from '../hooks/features/virtualization/useGridVirtualScroller';
37
- export { useCurrentPageRows } from '../hooks/utils/useCurrentPageRows';
35
+ export { useGridVisibleRows } from '../hooks/utils/useGridVisibleRows';
38
36
  export { useGridInitializeState } from '../hooks/utils/useGridInitializeState';
39
- export { useGridStateInit } from '../hooks/utils/useGridStateInit';
40
37
  export { createSelector } from '../utils/createSelector';
41
38
  export { findParentElementFromClassName } from '../utils/domUtils';
42
39
  export { isNavigationKey } from '../utils/keyboardUtils';
@@ -7,15 +7,15 @@ import { GRID_SINGLE_SELECT_COL_DEF } from '../../colDef/gridSingleSelectColDef'
7
7
  import { GRID_ACTIONS_COL_DEF, GRID_ACTIONS_COLUMN_TYPE } from '../../colDef/gridActionsColDef';
8
8
  export var DEFAULT_GRID_COL_TYPE_KEY = '__default__';
9
9
  export var getGridDefaultColumnTypes = function getGridDefaultColumnTypes() {
10
- var nativeColumnTypes = _defineProperty({
10
+ var _nativeColumnTypes;
11
+
12
+ var nativeColumnTypes = (_nativeColumnTypes = {
11
13
  string: GRID_STRING_COL_DEF,
12
14
  number: GRID_NUMERIC_COL_DEF,
13
15
  date: GRID_DATE_COL_DEF,
14
16
  dateTime: GRID_DATETIME_COL_DEF,
15
17
  boolean: GRID_BOOLEAN_COL_DEF,
16
18
  singleSelect: GRID_SINGLE_SELECT_COL_DEF
17
- }, GRID_ACTIONS_COLUMN_TYPE, GRID_ACTIONS_COL_DEF);
18
-
19
- nativeColumnTypes[DEFAULT_GRID_COL_TYPE_KEY] = GRID_STRING_COL_DEF;
19
+ }, _defineProperty(_nativeColumnTypes, GRID_ACTIONS_COLUMN_TYPE, GRID_ACTIONS_COL_DEF), _defineProperty(_nativeColumnTypes, DEFAULT_GRID_COL_TYPE_KEY, GRID_STRING_COL_DEF), _nativeColumnTypes);
20
20
  return nativeColumnTypes;
21
21
  };
@@ -1,6 +1,7 @@
1
1
  import { createSelector as reselectCreateSelector } from 'reselect';
2
+ import { buildWarning } from './warning';
2
3
  var cache = {};
3
- var warnedOnce = false;
4
+ var missingInstanceIdWarning = buildWarning(['MUI: A selector was called without passing the instance ID, which may impact the performance of the grid.', 'To fix, call it with `apiRef`, e.g. `mySelector(apiRef)`, or pass the instance ID explicitly, e.g `mySelector(state, apiRef.current.instanceId)`.']);
4
5
  export var createSelector = function createSelector() {
5
6
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
6
7
  args[_key] = arguments[_key];
@@ -18,9 +19,8 @@ export var createSelector = function createSelector() {
18
19
  var state = isApiRef ? stateOrApiRef.current.state : stateOrApiRef;
19
20
 
20
21
  if (process.env.NODE_ENV !== 'production') {
21
- if (!warnedOnce && cacheKey === 'default') {
22
- console.warn(['MUI: A selector was called without passing the instance ID, which may impact the performance of the grid.', 'To fix, call it with `apiRef`, e.g. `mySelector(apiRef)`, or pass the instance ID explicitly, e.g `mySelector(state, apiRef.current.instanceId)`.'].join('\n'));
23
- warnedOnce = true;
22
+ if (cacheKey === 'default') {
23
+ missingInstanceIdWarning();
24
24
  }
25
25
  }
26
26
 
@@ -1,13 +1,13 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  export var getGridLocalization = function getGridLocalization(gridTranslations, coreTranslations) {
3
- var _coreTranslations$com;
3
+ var _coreTranslations$com, _coreTranslations$com2;
4
4
 
5
5
  return {
6
6
  components: {
7
7
  MuiDataGrid: {
8
8
  defaultProps: {
9
9
  localeText: _extends({}, gridTranslations, {
10
- MuiTablePagination: (coreTranslations == null ? void 0 : (_coreTranslations$com = coreTranslations.components) == null ? void 0 : _coreTranslations$com.MuiTablePagination.defaultProps) || {}
10
+ MuiTablePagination: (coreTranslations == null ? void 0 : (_coreTranslations$com = coreTranslations.components) == null ? void 0 : (_coreTranslations$com2 = _coreTranslations$com.MuiTablePagination) == null ? void 0 : _coreTranslations$com2.defaultProps) || {}
11
11
  })
12
12
  }
13
13
  }
@@ -10,4 +10,4 @@ export default baseGetAllKeys;
10
10
  * @param {Function} symbolsFunc The function to get the symbols of `object`.
11
11
  * @returns {Array} Returns the array of property names and symbols.
12
12
  */
13
- declare function baseGetAllKeys(object: any, keysFunc: Function, symbolsFunc: Function): any[];
13
+ declare function baseGetAllKeys(object: Object, keysFunc: Function, symbolsFunc: Function): any[];
@@ -13,4 +13,4 @@ export default baseIsEqual;
13
13
  * @param {Object} [stack] Tracks traversed `value` and `other` objects.
14
14
  * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
15
15
  */
16
- declare function baseIsEqual(value: any, other: any, bitmask: boolean, customizer?: Function | undefined, stack?: any): boolean;
16
+ declare function baseIsEqual(value: any, other: any, bitmask: boolean, customizer?: Function | undefined, stack?: Object | undefined): boolean;
@@ -13,4 +13,4 @@ export default baseIsEqualDeep;
13
13
  * @param {Object} [stack] Tracks traversed `object` and `other` objects.
14
14
  * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
15
15
  */
16
- declare function baseIsEqualDeep(object: any, other: any, bitmask: number, customizer: Function, equalFunc: Function, stack?: any): boolean;
16
+ declare function baseIsEqualDeep(object: Object, other: Object, bitmask: number, customizer: Function, equalFunc: Function, stack?: Object | undefined): boolean;
@@ -6,4 +6,4 @@ export default baseKeys;
6
6
  * @param {Object} object The object to query.
7
7
  * @returns {Array} Returns the array of property names.
8
8
  */
9
- declare function baseKeys(object: any): any[];
9
+ declare function baseKeys(object: Object): any[];
@@ -7,4 +7,4 @@ export default cacheHas;
7
7
  * @param {string} key The key of the entry to check.
8
8
  * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
9
9
  */
10
- declare function cacheHas(cache: any, key: string): boolean;
10
+ declare function cacheHas(cache: Object, key: string): boolean;
@@ -12,4 +12,4 @@ export default equalArrays;
12
12
  * @param {Object} stack Tracks traversed `array` and `other` objects.
13
13
  * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
14
14
  */
15
- declare function equalArrays(array: any[], other: any[], bitmask: number, customizer: Function, equalFunc: Function, stack: any): boolean;
15
+ declare function equalArrays(array: any[], other: any[], bitmask: number, customizer: Function, equalFunc: Function, stack: Object): boolean;
@@ -16,4 +16,4 @@ export default equalByTag;
16
16
  * @param {Object} stack Tracks traversed `object` and `other` objects.
17
17
  * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
18
18
  */
19
- declare function equalByTag(object: any, other: any, tag: string, bitmask: number, customizer: Function, equalFunc: Function, stack: any): boolean;
19
+ declare function equalByTag(object: Object, other: Object, tag: string, bitmask: number, customizer: Function, equalFunc: Function, stack: Object): boolean;
@@ -12,4 +12,4 @@ export default equalObjects;
12
12
  * @param {Object} stack Tracks traversed `object` and `other` objects.
13
13
  * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
14
14
  */
15
- declare function equalObjects(object: any, other: any, bitmask: number, customizer: Function, equalFunc: Function, stack: any): boolean;
15
+ declare function equalObjects(object: Object, other: Object, bitmask: number, customizer: Function, equalFunc: Function, stack: Object): boolean;
@@ -6,4 +6,4 @@ export default getAllKeys;
6
6
  * @param {Object} object The object to query.
7
7
  * @returns {Array} Returns the array of property names and symbols.
8
8
  */
9
- declare function getAllKeys(object: any): any[];
9
+ declare function getAllKeys(object: Object): any[];
@@ -7,4 +7,4 @@ export default getMapData;
7
7
  * @param {string} key The reference key.
8
8
  * @returns {*} Returns the map data.
9
9
  */
10
- declare function getMapData(map: any, key: string): any;
10
+ declare function getMapData(map: Object, key: string): any;
@@ -7,4 +7,4 @@ export default getNative;
7
7
  * @param {string} key The key of the method to get.
8
8
  * @returns {*} Returns the function if it's native, else `undefined`.
9
9
  */
10
- declare function getNative(object: any, key: string): any;
10
+ declare function getNative(object: Object, key: string): any;
@@ -7,4 +7,4 @@ export default getValue;
7
7
  * @param {string} key The key of the property to get.
8
8
  * @returns {*} Returns the property value.
9
9
  */
10
- declare function getValue(object?: any, key: string): any;
10
+ declare function getValue(object?: Object | undefined, key: string): any;
@@ -9,4 +9,4 @@ export default hashSet;
9
9
  * @param {*} value The value to set.
10
10
  * @returns {Object} Returns the hash instance.
11
11
  */
12
- declare function hashSet(key: string, value: any): any;
12
+ declare function hashSet(key: string, value: any): Object;
@@ -9,4 +9,4 @@ export default listCacheSet;
9
9
  * @param {*} value The value to set.
10
10
  * @returns {Object} Returns the list cache instance.
11
11
  */
12
- declare function listCacheSet(key: string, value: any): any;
12
+ declare function listCacheSet(key: string, value: any): Object;
@@ -9,4 +9,4 @@ export default mapCacheSet;
9
9
  * @param {*} value The value to set.
10
10
  * @returns {Object} Returns the map cache instance.
11
11
  */
12
- declare function mapCacheSet(key: string, value: any): any;
12
+ declare function mapCacheSet(key: string, value: any): Object;
@@ -6,4 +6,4 @@ export default mapToArray;
6
6
  * @param {Object} map The map to convert.
7
7
  * @returns {Array} Returns the key-value pairs.
8
8
  */
9
- declare function mapToArray(map: any): any[];
9
+ declare function mapToArray(map: Object): any[];
@@ -9,4 +9,4 @@ export default setCacheAdd;
9
9
  * @param {*} value The value to cache.
10
10
  * @returns {Object} Returns the cache instance.
11
11
  */
12
- declare function setCacheAdd(value: any): any;
12
+ declare function setCacheAdd(value: any): Object;
@@ -6,4 +6,4 @@ export default setToArray;
6
6
  * @param {Object} set The set to convert.
7
7
  * @returns {Array} Returns the values.
8
8
  */
9
- declare function setToArray(set: any): any[];
9
+ declare function setToArray(set: Object): any[];
@@ -9,7 +9,7 @@ export default stackSet;
9
9
  * @param {*} value The value to set.
10
10
  * @returns {Object} Returns the stack cache instance.
11
11
  */
12
- declare function stackSet(key: string, value: any): any;
12
+ declare function stackSet(key: string, value: any): Object;
13
13
  declare class stackSet {
14
14
  /**
15
15
  * Sets the stack `key` to `value`.
@@ -27,4 +27,4 @@ export default keys;
27
27
  * _.keys('hi');
28
28
  * // => ['0', '1']
29
29
  */
30
- declare function keys(object: any): any[];
30
+ declare function keys(object: Object): any[];
@@ -46,4 +46,10 @@ export interface GridRowApi {
46
46
  * @param {boolean} isExpanded A boolean indicating if the row must be expanded or collapsed.
47
47
  */
48
48
  setRowChildrenExpansion: (id: GridRowId, isExpanded: boolean) => void;
49
+ /**
50
+ * Gets the index of a row relative to the rows that are reachable by scroll.
51
+ * @param {GridRowId} id The row id.
52
+ * @returns {number} The index of the row.
53
+ */
54
+ getRowIndexRelativeToVisibleRows: (id: GridRowId) => number;
49
55
  }
@@ -10,6 +10,13 @@ export interface GridRowsMetaApi {
10
10
  * @ignore - do not document.
11
11
  */
12
12
  unstable_getRowHeight: (id: GridRowId) => number;
13
+ /**
14
+ * Gets all sizes that compose the total height that the given row takes.
15
+ * @param {GridRowId} id The id of the row.
16
+ * @returns {Record<string, number>} The object containing the sizes.
17
+ * @ignore - do not document.
18
+ */
19
+ unstable_getRowInternalSizes: (id: GridRowId) => Record<string, number> | undefined;
13
20
  /**
14
21
  * Updates the base height of a row.
15
22
  * @param {GridRowId} id The id of the row.
@@ -48,6 +48,7 @@ export interface GridSortApi {
48
48
  * The index is based on the sorted but unfiltered row list.
49
49
  * @param {GridRowId} id The `GridRowId` of the row.
50
50
  * @returns {number} The index of the row.
51
+ * @deprecated Use `getRowIndexRelativeToVisibleRows` instead.
51
52
  */
52
53
  getRowIndex: (id: GridRowId) => number;
53
54
  }