@mui/x-data-grid 7.0.0-beta.2 → 7.0.0-beta.4

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 (496) hide show
  1. package/CHANGELOG.md +298 -23
  2. package/DataGrid/DataGrid.js +0 -6
  3. package/colDef/gridActionsColDef.js +1 -0
  4. package/colDef/gridBooleanColDef.js +1 -0
  5. package/colDef/gridCheckboxSelectionColDef.js +1 -0
  6. package/components/GridRow.d.ts +3 -1
  7. package/components/GridRow.js +10 -2
  8. package/components/GridScrollbarFillerCell.js +6 -21
  9. package/components/cell/GridCell.js +10 -12
  10. package/components/columnSelection/GridCellCheckboxRenderer.js +1 -2
  11. package/components/containers/GridRootStyles.js +51 -23
  12. package/components/panel/GridPanel.d.ts +1 -1
  13. package/components/panel/filterPanel/GridFilterInputBoolean.js +6 -4
  14. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +8 -2
  15. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +6 -4
  16. package/components/panel/filterPanel/GridFilterInputValue.js +4 -3
  17. package/components/virtualization/GridVirtualScrollerRenderZone.js +10 -3
  18. package/constants/gridClasses.d.ts +24 -8
  19. package/constants/gridClasses.js +1 -1
  20. package/hooks/features/clipboard/useGridClipboard.js +1 -1
  21. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +5 -5
  22. package/hooks/features/columnHeaders/useGridColumnHeaders.js +46 -48
  23. package/hooks/features/editing/useGridCellEditing.js +3 -4
  24. package/hooks/features/editing/useGridRowEditing.js +3 -4
  25. package/hooks/features/sorting/useGridSorting.js +1 -2
  26. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +9 -0
  27. package/hooks/features/virtualization/gridVirtualizationSelectors.js +7 -0
  28. package/hooks/features/virtualization/useGridVirtualScroller.js +19 -16
  29. package/hooks/features/virtualization/useGridVirtualization.d.ts +8 -0
  30. package/hooks/features/virtualization/useGridVirtualization.js +6 -1
  31. package/index.js +1 -1
  32. package/internals/index.d.ts +1 -1
  33. package/internals/index.js +1 -1
  34. package/models/colDef/gridColDef.d.ts +6 -0
  35. package/models/events/gridEventLookup.d.ts +1 -8
  36. package/models/props/DataGridProps.d.ts +0 -6
  37. package/modern/DataGrid/DataGrid.js +0 -6
  38. package/modern/colDef/gridActionsColDef.js +1 -0
  39. package/modern/colDef/gridBooleanColDef.js +1 -0
  40. package/modern/colDef/gridCheckboxSelectionColDef.js +1 -0
  41. package/modern/components/GridRow.js +10 -2
  42. package/modern/components/GridScrollbarFillerCell.js +6 -21
  43. package/modern/components/cell/GridCell.js +10 -12
  44. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +1 -2
  45. package/modern/components/containers/GridRootStyles.js +51 -23
  46. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +6 -4
  47. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +8 -2
  48. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +6 -4
  49. package/modern/components/panel/filterPanel/GridFilterInputValue.js +4 -3
  50. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +10 -3
  51. package/modern/constants/gridClasses.js +1 -1
  52. package/modern/hooks/features/clipboard/useGridClipboard.js +1 -1
  53. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +46 -48
  54. package/modern/hooks/features/editing/useGridCellEditing.js +3 -4
  55. package/modern/hooks/features/editing/useGridRowEditing.js +3 -4
  56. package/modern/hooks/features/sorting/useGridSorting.js +1 -2
  57. package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +7 -0
  58. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +18 -14
  59. package/modern/hooks/features/virtualization/useGridVirtualization.js +6 -1
  60. package/modern/index.js +1 -1
  61. package/modern/internals/index.js +1 -1
  62. package/modern/utils/keyboardUtils.js +20 -11
  63. package/node/DataGrid/DataGrid.js +0 -6
  64. package/node/colDef/gridActionsColDef.js +1 -0
  65. package/node/colDef/gridBooleanColDef.js +1 -0
  66. package/node/colDef/gridCheckboxSelectionColDef.js +1 -0
  67. package/node/components/GridRow.js +10 -2
  68. package/node/components/GridScrollbarFillerCell.js +5 -20
  69. package/node/components/cell/GridCell.js +10 -12
  70. package/node/components/columnSelection/GridCellCheckboxRenderer.js +1 -2
  71. package/node/components/containers/GridRootStyles.js +51 -23
  72. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +6 -4
  73. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +8 -2
  74. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +6 -4
  75. package/node/components/panel/filterPanel/GridFilterInputValue.js +4 -3
  76. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +10 -3
  77. package/node/constants/gridClasses.js +1 -1
  78. package/node/hooks/features/clipboard/useGridClipboard.js +1 -1
  79. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +45 -47
  80. package/node/hooks/features/editing/useGridCellEditing.js +2 -3
  81. package/node/hooks/features/editing/useGridRowEditing.js +2 -3
  82. package/node/hooks/features/sorting/useGridSorting.js +1 -2
  83. package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +8 -1
  84. package/node/hooks/features/virtualization/useGridVirtualScroller.js +17 -13
  85. package/node/hooks/features/virtualization/useGridVirtualization.js +7 -2
  86. package/node/index.js +1 -1
  87. package/node/internals/index.js +7 -0
  88. package/node/utils/keyboardUtils.js +25 -20
  89. package/package.json +3 -3
  90. package/utils/keyboardUtils.d.ts +7 -6
  91. package/utils/keyboardUtils.js +20 -11
  92. package/legacy/DataGrid/DataGrid.js +0 -670
  93. package/legacy/DataGrid/index.js +0 -2
  94. package/legacy/DataGrid/useDataGridComponent.js +0 -81
  95. package/legacy/DataGrid/useDataGridProps.js +0 -98
  96. package/legacy/colDef/gridActionsColDef.js +0 -18
  97. package/legacy/colDef/gridBooleanColDef.js +0 -42
  98. package/legacy/colDef/gridBooleanOperators.js +0 -16
  99. package/legacy/colDef/gridCheckboxSelectionColDef.js +0 -33
  100. package/legacy/colDef/gridDateColDef.js +0 -62
  101. package/legacy/colDef/gridDateOperators.js +0 -115
  102. package/legacy/colDef/gridDefaultColumnTypes.js +0 -19
  103. package/legacy/colDef/gridNumericColDef.js +0 -19
  104. package/legacy/colDef/gridNumericOperators.js +0 -145
  105. package/legacy/colDef/gridSingleSelectColDef.js +0 -64
  106. package/legacy/colDef/gridSingleSelectOperators.js +0 -46
  107. package/legacy/colDef/gridStringColDef.js +0 -27
  108. package/legacy/colDef/gridStringOperators.js +0 -112
  109. package/legacy/colDef/index.js +0 -13
  110. package/legacy/components/GridApiContext.js +0 -5
  111. package/legacy/components/GridColumnHeaders.js +0 -94
  112. package/legacy/components/GridDetailPanels.js +0 -4
  113. package/legacy/components/GridFooter.js +0 -42
  114. package/legacy/components/GridHeader.js +0 -13
  115. package/legacy/components/GridHeaders.js +0 -53
  116. package/legacy/components/GridLoadingOverlay.js +0 -21
  117. package/legacy/components/GridNoResultsOverlay.js +0 -14
  118. package/legacy/components/GridNoRowsOverlay.js +0 -23
  119. package/legacy/components/GridPagination.js +0 -85
  120. package/legacy/components/GridPinnedRows.js +0 -4
  121. package/legacy/components/GridRow.js +0 -457
  122. package/legacy/components/GridRowCount.js +0 -63
  123. package/legacy/components/GridScrollbarFillerCell.js +0 -34
  124. package/legacy/components/GridSelectedRowCount.js +0 -66
  125. package/legacy/components/base/GridBody.js +0 -2
  126. package/legacy/components/base/GridFooterPlaceholder.js +0 -12
  127. package/legacy/components/base/GridOverlays.js +0 -122
  128. package/legacy/components/base/index.js +0 -3
  129. package/legacy/components/cell/GridActionsCell.js +0 -294
  130. package/legacy/components/cell/GridActionsCellItem.js +0 -69
  131. package/legacy/components/cell/GridBooleanCell.js +0 -121
  132. package/legacy/components/cell/GridCell.js +0 -350
  133. package/legacy/components/cell/GridEditBooleanCell.js +0 -174
  134. package/legacy/components/cell/GridEditDateCell.js +0 -230
  135. package/legacy/components/cell/GridEditInputCell.js +0 -198
  136. package/legacy/components/cell/GridEditSingleSelectCell.js +0 -231
  137. package/legacy/components/cell/GridSkeletonCell.js +0 -52
  138. package/legacy/components/cell/index.js +0 -9
  139. package/legacy/components/columnHeaders/ColumnHeaderMenuIcon.js +0 -59
  140. package/legacy/components/columnHeaders/GridBaseColumnHeaders.js +0 -41
  141. package/legacy/components/columnHeaders/GridColumnGroupHeader.js +0 -132
  142. package/legacy/components/columnHeaders/GridColumnHeaderFilterIconButton.js +0 -93
  143. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +0 -212
  144. package/legacy/components/columnHeaders/GridColumnHeaderSeparator.js +0 -71
  145. package/legacy/components/columnHeaders/GridColumnHeaderSortIcon.js +0 -79
  146. package/legacy/components/columnHeaders/GridColumnHeaderTitle.js +0 -84
  147. package/legacy/components/columnHeaders/GridColumnHeadersInner.js +0 -55
  148. package/legacy/components/columnHeaders/GridGenericColumnHeaderItem.js +0 -107
  149. package/legacy/components/columnHeaders/GridIconButtonContainer.js +0 -41
  150. package/legacy/components/columnHeaders/index.js +0 -5
  151. package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +0 -160
  152. package/legacy/components/columnSelection/GridHeaderCheckbox.js +0 -134
  153. package/legacy/components/columnSelection/index.js +0 -2
  154. package/legacy/components/columnsManagement/GridColumnsManagement.js +0 -307
  155. package/legacy/components/columnsManagement/index.js +0 -1
  156. package/legacy/components/columnsManagement/utils.js +0 -22
  157. package/legacy/components/containers/GridFooterContainer.js +0 -50
  158. package/legacy/components/containers/GridOverlay.js +0 -52
  159. package/legacy/components/containers/GridRoot.js +0 -79
  160. package/legacy/components/containers/GridRootStyles.js +0 -398
  161. package/legacy/components/containers/GridToolbarContainer.js +0 -59
  162. package/legacy/components/containers/index.js +0 -4
  163. package/legacy/components/index.js +0 -19
  164. package/legacy/components/menu/GridMenu.js +0 -132
  165. package/legacy/components/menu/columnMenu/GridColumnHeaderMenu.js +0 -61
  166. package/legacy/components/menu/columnMenu/GridColumnMenu.js +0 -81
  167. package/legacy/components/menu/columnMenu/GridColumnMenuContainer.js +0 -56
  168. package/legacy/components/menu/columnMenu/GridColumnMenuItemProps.js +0 -1
  169. package/legacy/components/menu/columnMenu/GridColumnMenuProps.js +0 -1
  170. package/legacy/components/menu/columnMenu/index.js +0 -9
  171. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuColumnsItem.js +0 -21
  172. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +0 -41
  173. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +0 -60
  174. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +0 -41
  175. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +0 -80
  176. package/legacy/components/menu/columnMenu/menuItems/index.js +0 -5
  177. package/legacy/components/menu/index.js +0 -2
  178. package/legacy/components/panel/GridColumnsPanel.js +0 -22
  179. package/legacy/components/panel/GridPanel.js +0 -137
  180. package/legacy/components/panel/GridPanelContent.js +0 -49
  181. package/legacy/components/panel/GridPanelFooter.js +0 -50
  182. package/legacy/components/panel/GridPanelHeader.js +0 -48
  183. package/legacy/components/panel/GridPanelWrapper.js +0 -64
  184. package/legacy/components/panel/GridPreferencesPanel.js +0 -26
  185. package/legacy/components/panel/filterPanel/GridFilterForm.js +0 -528
  186. package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +0 -115
  187. package/legacy/components/panel/filterPanel/GridFilterInputDate.js +0 -121
  188. package/legacy/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -116
  189. package/legacy/components/panel/filterPanel/GridFilterInputMultipleValue.js +0 -102
  190. package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +0 -146
  191. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +0 -104
  192. package/legacy/components/panel/filterPanel/GridFilterInputValueProps.js +0 -1
  193. package/legacy/components/panel/filterPanel/GridFilterPanel.js +0 -264
  194. package/legacy/components/panel/filterPanel/filterPanelUtils.js +0 -22
  195. package/legacy/components/panel/filterPanel/index.js +0 -9
  196. package/legacy/components/panel/index.js +0 -7
  197. package/legacy/components/reexportable.js +0 -1
  198. package/legacy/components/toolbar/GridToolbar.js +0 -64
  199. package/legacy/components/toolbar/GridToolbarColumnsButton.js +0 -68
  200. package/legacy/components/toolbar/GridToolbarDensitySelector.js +0 -142
  201. package/legacy/components/toolbar/GridToolbarExport.js +0 -80
  202. package/legacy/components/toolbar/GridToolbarExportContainer.js +0 -105
  203. package/legacy/components/toolbar/GridToolbarFilterButton.js +0 -136
  204. package/legacy/components/toolbar/GridToolbarQuickFilter.js +0 -164
  205. package/legacy/components/toolbar/index.js +0 -7
  206. package/legacy/components/virtualization/GridBottomContainer.js +0 -25
  207. package/legacy/components/virtualization/GridMainContainer.js +0 -20
  208. package/legacy/components/virtualization/GridTopContainer.js +0 -35
  209. package/legacy/components/virtualization/GridVirtualScrollbar.js +0 -129
  210. package/legacy/components/virtualization/GridVirtualScroller.js +0 -93
  211. package/legacy/components/virtualization/GridVirtualScrollerContent.js +0 -35
  212. package/legacy/components/virtualization/GridVirtualScrollerFiller.js +0 -70
  213. package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +0 -42
  214. package/legacy/constants/defaultGridSlotsComponents.js +0 -33
  215. package/legacy/constants/envConstants.js +0 -19
  216. package/legacy/constants/gridClasses.js +0 -5
  217. package/legacy/constants/gridDetailPanelToggleField.js +0 -2
  218. package/legacy/constants/index.js +0 -3
  219. package/legacy/constants/localeTextConstants.js +0 -158
  220. package/legacy/context/GridContextProvider.js +0 -21
  221. package/legacy/context/GridRootPropsContext.js +0 -6
  222. package/legacy/context/index.js +0 -1
  223. package/legacy/hooks/core/gridCoreSelector.js +0 -7
  224. package/legacy/hooks/core/index.js +0 -1
  225. package/legacy/hooks/core/pipeProcessing/gridPipeProcessingApi.js +0 -1
  226. package/legacy/hooks/core/pipeProcessing/index.js +0 -4
  227. package/legacy/hooks/core/pipeProcessing/useGridPipeProcessing.js +0 -114
  228. package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +0 -26
  229. package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -26
  230. package/legacy/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +0 -1
  231. package/legacy/hooks/core/strategyProcessing/index.js +0 -3
  232. package/legacy/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.js +0 -18
  233. package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +0 -116
  234. package/legacy/hooks/core/useGridApiInitialization.js +0 -124
  235. package/legacy/hooks/core/useGridInitialization.js +0 -26
  236. package/legacy/hooks/core/useGridLocaleText.js +0 -12
  237. package/legacy/hooks/core/useGridLoggerFactory.js +0 -51
  238. package/legacy/hooks/core/useGridRefs.js +0 -13
  239. package/legacy/hooks/core/useGridStateInitialization.js +0 -106
  240. package/legacy/hooks/core/useGridTheme.js +0 -21
  241. package/legacy/hooks/features/clipboard/useGridClipboard.js +0 -92
  242. package/legacy/hooks/features/columnGrouping/gridColumnGroupsInterfaces.js +0 -1
  243. package/legacy/hooks/features/columnGrouping/gridColumnGroupsSelector.js +0 -24
  244. package/legacy/hooks/features/columnGrouping/gridColumnGroupsUtils.js +0 -92
  245. package/legacy/hooks/features/columnGrouping/index.js +0 -2
  246. package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +0 -140
  247. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +0 -275
  248. package/legacy/hooks/features/columnMenu/columnMenuInterfaces.js +0 -1
  249. package/legacy/hooks/features/columnMenu/columnMenuSelector.js +0 -3
  250. package/legacy/hooks/features/columnMenu/index.js +0 -2
  251. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +0 -108
  252. package/legacy/hooks/features/columnMenu/useGridColumnMenuSlots.js +0 -71
  253. package/legacy/hooks/features/columns/gridColumnsInterfaces.js +0 -9
  254. package/legacy/hooks/features/columns/gridColumnsSelector.js +0 -174
  255. package/legacy/hooks/features/columns/gridColumnsUtils.js +0 -338
  256. package/legacy/hooks/features/columns/index.js +0 -2
  257. package/legacy/hooks/features/columns/useGridColumnSpanning.js +0 -105
  258. package/legacy/hooks/features/columns/useGridColumns.js +0 -319
  259. package/legacy/hooks/features/density/densitySelector.js +0 -10
  260. package/legacy/hooks/features/density/densityState.js +0 -1
  261. package/legacy/hooks/features/density/index.js +0 -2
  262. package/legacy/hooks/features/density/useGridDensity.js +0 -48
  263. package/legacy/hooks/features/dimensions/gridDimensionsApi.js +0 -1
  264. package/legacy/hooks/features/dimensions/gridDimensionsSelectors.js +0 -3
  265. package/legacy/hooks/features/dimensions/index.js +0 -2
  266. package/legacy/hooks/features/dimensions/useGridDimensions.js +0 -302
  267. package/legacy/hooks/features/editing/gridEditingSelectors.js +0 -4
  268. package/legacy/hooks/features/editing/useGridCellEditing.js +0 -456
  269. package/legacy/hooks/features/editing/useGridEditing.js +0 -145
  270. package/legacy/hooks/features/editing/useGridRowEditing.js +0 -567
  271. package/legacy/hooks/features/events/useGridEvents.js +0 -23
  272. package/legacy/hooks/features/export/serializers/csvSerializer.js +0 -155
  273. package/legacy/hooks/features/export/useGridCsvExport.js +0 -75
  274. package/legacy/hooks/features/export/useGridPrintExport.js +0 -313
  275. package/legacy/hooks/features/export/utils.js +0 -49
  276. package/legacy/hooks/features/filter/gridFilterSelector.js +0 -165
  277. package/legacy/hooks/features/filter/gridFilterState.js +0 -20
  278. package/legacy/hooks/features/filter/gridFilterUtils.js +0 -330
  279. package/legacy/hooks/features/filter/index.js +0 -2
  280. package/legacy/hooks/features/filter/useGridFilter.js +0 -378
  281. package/legacy/hooks/features/focus/gridFocusState.js +0 -1
  282. package/legacy/hooks/features/focus/gridFocusStateSelector.js +0 -31
  283. package/legacy/hooks/features/focus/index.js +0 -2
  284. package/legacy/hooks/features/focus/useGridFocus.js +0 -408
  285. package/legacy/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +0 -10
  286. package/legacy/hooks/features/headerFiltering/index.js +0 -1
  287. package/legacy/hooks/features/headerFiltering/useGridHeaderFiltering.js +0 -93
  288. package/legacy/hooks/features/index.js +0 -16
  289. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +0 -565
  290. package/legacy/hooks/features/pagination/gridPaginationInterfaces.js +0 -1
  291. package/legacy/hooks/features/pagination/gridPaginationSelector.js +0 -115
  292. package/legacy/hooks/features/pagination/gridPaginationUtils.js +0 -31
  293. package/legacy/hooks/features/pagination/index.js +0 -2
  294. package/legacy/hooks/features/pagination/useGridPagination.js +0 -175
  295. package/legacy/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +0 -3
  296. package/legacy/hooks/features/preferencesPanel/gridPreferencePanelState.js +0 -1
  297. package/legacy/hooks/features/preferencesPanel/gridPreferencePanelsValue.js +0 -6
  298. package/legacy/hooks/features/preferencesPanel/index.js +0 -3
  299. package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +0 -125
  300. package/legacy/hooks/features/rowSelection/gridRowSelectionSelector.js +0 -19
  301. package/legacy/hooks/features/rowSelection/index.js +0 -1
  302. package/legacy/hooks/features/rowSelection/useGridRowSelection.js +0 -419
  303. package/legacy/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +0 -45
  304. package/legacy/hooks/features/rowSelection/utils.js +0 -8
  305. package/legacy/hooks/features/rows/gridRowsInterfaces.js +0 -1
  306. package/legacy/hooks/features/rows/gridRowsMetaSelector.js +0 -3
  307. package/legacy/hooks/features/rows/gridRowsMetaState.js +0 -1
  308. package/legacy/hooks/features/rows/gridRowsSelector.js +0 -90
  309. package/legacy/hooks/features/rows/gridRowsUtils.js +0 -294
  310. package/legacy/hooks/features/rows/index.js +0 -4
  311. package/legacy/hooks/features/rows/useGridParamsApi.js +0 -142
  312. package/legacy/hooks/features/rows/useGridRows.js +0 -466
  313. package/legacy/hooks/features/rows/useGridRowsMeta.js +0 -236
  314. package/legacy/hooks/features/rows/useGridRowsPreProcessors.js +0 -82
  315. package/legacy/hooks/features/scroll/useGridScroll.js +0 -133
  316. package/legacy/hooks/features/sorting/gridSortingSelector.js +0 -56
  317. package/legacy/hooks/features/sorting/gridSortingState.js +0 -1
  318. package/legacy/hooks/features/sorting/gridSortingUtils.js +0 -154
  319. package/legacy/hooks/features/sorting/index.js +0 -2
  320. package/legacy/hooks/features/sorting/useGridSorting.js +0 -276
  321. package/legacy/hooks/features/statePersistence/gridStatePersistenceInterface.js +0 -1
  322. package/legacy/hooks/features/statePersistence/index.js +0 -1
  323. package/legacy/hooks/features/statePersistence/useGridStatePersistence.js +0 -25
  324. package/legacy/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -52
  325. package/legacy/hooks/features/virtualization/index.js +0 -2
  326. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +0 -643
  327. package/legacy/hooks/features/virtualization/useGridVirtualization.js +0 -58
  328. package/legacy/hooks/index.js +0 -3
  329. package/legacy/hooks/utils/index.js +0 -9
  330. package/legacy/hooks/utils/useFirstRender.js +0 -8
  331. package/legacy/hooks/utils/useGridApiContext.js +0 -9
  332. package/legacy/hooks/utils/useGridApiEventHandler.js +0 -105
  333. package/legacy/hooks/utils/useGridApiMethod.js +0 -11
  334. package/legacy/hooks/utils/useGridApiRef.js +0 -7
  335. package/legacy/hooks/utils/useGridAriaAttributes.js +0 -25
  336. package/legacy/hooks/utils/useGridInitializeState.js +0 -8
  337. package/legacy/hooks/utils/useGridLogger.js +0 -10
  338. package/legacy/hooks/utils/useGridNativeEventListener.js +0 -32
  339. package/legacy/hooks/utils/useGridPrivateApiContext.js +0 -12
  340. package/legacy/hooks/utils/useGridRootProps.js +0 -9
  341. package/legacy/hooks/utils/useGridSelector.js +0 -54
  342. package/legacy/hooks/utils/useGridVisibleRows.js +0 -42
  343. package/legacy/hooks/utils/useLazyRef.js +0 -11
  344. package/legacy/hooks/utils/useOnMount.js +0 -7
  345. package/legacy/hooks/utils/useResizeObserver.js +0 -36
  346. package/legacy/hooks/utils/useRunOnce.js +0 -18
  347. package/legacy/hooks/utils/useTimeout.js +0 -38
  348. package/legacy/index.js +0 -38
  349. package/legacy/internals/index.js +0 -68
  350. package/legacy/internals/utils/computeSlots.js +0 -17
  351. package/legacy/internals/utils/index.js +0 -3
  352. package/legacy/internals/utils/propValidation.js +0 -21
  353. package/legacy/internals/utils/useProps.js +0 -32
  354. package/legacy/joy/icons.js +0 -432
  355. package/legacy/joy/index.js +0 -2
  356. package/legacy/joy/joySlots.js +0 -420
  357. package/legacy/locales/arSD.js +0 -160
  358. package/legacy/locales/beBY.js +0 -184
  359. package/legacy/locales/bgBG.js +0 -160
  360. package/legacy/locales/coreLocales.js +0 -62
  361. package/legacy/locales/csCZ.js +0 -181
  362. package/legacy/locales/daDK.js +0 -160
  363. package/legacy/locales/deDE.js +0 -160
  364. package/legacy/locales/elGR.js +0 -160
  365. package/legacy/locales/enUS.js +0 -4
  366. package/legacy/locales/esES.js +0 -160
  367. package/legacy/locales/faIR.js +0 -160
  368. package/legacy/locales/fiFI.js +0 -160
  369. package/legacy/locales/frFR.js +0 -160
  370. package/legacy/locales/heIL.js +0 -160
  371. package/legacy/locales/hrHR.js +0 -160
  372. package/legacy/locales/huHU.js +0 -160
  373. package/legacy/locales/index.js +0 -35
  374. package/legacy/locales/itIT.js +0 -160
  375. package/legacy/locales/jaJP.js +0 -160
  376. package/legacy/locales/koKR.js +0 -162
  377. package/legacy/locales/nbNO.js +0 -162
  378. package/legacy/locales/nlNL.js +0 -160
  379. package/legacy/locales/plPL.js +0 -163
  380. package/legacy/locales/ptBR.js +0 -160
  381. package/legacy/locales/ptPT.js +0 -160
  382. package/legacy/locales/roRO.js +0 -160
  383. package/legacy/locales/ruRU.js +0 -181
  384. package/legacy/locales/skSK.js +0 -181
  385. package/legacy/locales/svSE.js +0 -160
  386. package/legacy/locales/trTR.js +0 -161
  387. package/legacy/locales/ukUA.js +0 -182
  388. package/legacy/locales/urPK.js +0 -160
  389. package/legacy/locales/viVN.js +0 -160
  390. package/legacy/locales/zhCN.js +0 -160
  391. package/legacy/locales/zhHK.js +0 -160
  392. package/legacy/locales/zhTW.js +0 -160
  393. package/legacy/material/components/MUISelectOption.js +0 -14
  394. package/legacy/material/icons/GridColumnUnsortedIcon.js +0 -16
  395. package/legacy/material/icons/index.js +0 -89
  396. package/legacy/material/index.js +0 -69
  397. package/legacy/models/api/gridApiCommon.js +0 -1
  398. package/legacy/models/api/gridApiCommunity.js +0 -1
  399. package/legacy/models/api/gridCallbackDetails.js +0 -1
  400. package/legacy/models/api/gridColumnApi.js +0 -1
  401. package/legacy/models/api/gridColumnGroupingApi.js +0 -1
  402. package/legacy/models/api/gridColumnMenuApi.js +0 -1
  403. package/legacy/models/api/gridColumnSpanning.js +0 -1
  404. package/legacy/models/api/gridCoreApi.js +0 -1
  405. package/legacy/models/api/gridCsvExportApi.js +0 -1
  406. package/legacy/models/api/gridDensityApi.js +0 -1
  407. package/legacy/models/api/gridEditingApi.js +0 -1
  408. package/legacy/models/api/gridFilterApi.js +0 -1
  409. package/legacy/models/api/gridFocusApi.js +0 -1
  410. package/legacy/models/api/gridHeaderFilteringApi.js +0 -1
  411. package/legacy/models/api/gridLocaleTextApi.js +0 -1
  412. package/legacy/models/api/gridLoggerApi.js +0 -1
  413. package/legacy/models/api/gridParamsApi.js +0 -1
  414. package/legacy/models/api/gridPreferencesPanelApi.js +0 -1
  415. package/legacy/models/api/gridPrintExportApi.js +0 -1
  416. package/legacy/models/api/gridRowApi.js +0 -1
  417. package/legacy/models/api/gridRowSelectionApi.js +0 -1
  418. package/legacy/models/api/gridRowsMetaApi.js +0 -1
  419. package/legacy/models/api/gridScrollApi.js +0 -1
  420. package/legacy/models/api/gridSortApi.js +0 -1
  421. package/legacy/models/api/gridStateApi.js +0 -1
  422. package/legacy/models/api/gridVirtualizationApi.js +0 -1
  423. package/legacy/models/api/index.js +0 -16
  424. package/legacy/models/colDef/gridColDef.js +0 -1
  425. package/legacy/models/colDef/gridColType.js +0 -1
  426. package/legacy/models/colDef/gridColumnTypesRecord.js +0 -1
  427. package/legacy/models/colDef/index.js +0 -6
  428. package/legacy/models/controlStateItem.js +0 -1
  429. package/legacy/models/cursorCoordinates.js +0 -1
  430. package/legacy/models/elementSize.js +0 -1
  431. package/legacy/models/events/gridEventListener.js +0 -1
  432. package/legacy/models/events/gridEventLookup.js +0 -1
  433. package/legacy/models/events/gridEventPublisher.js +0 -1
  434. package/legacy/models/events/index.js +0 -3
  435. package/legacy/models/gridApiCaches.js +0 -1
  436. package/legacy/models/gridCell.js +0 -1
  437. package/legacy/models/gridCellClass.js +0 -1
  438. package/legacy/models/gridColumnGrouping.js +0 -11
  439. package/legacy/models/gridColumnHeaderClass.js +0 -1
  440. package/legacy/models/gridColumnSpanning.js +0 -1
  441. package/legacy/models/gridDensity.js +0 -1
  442. package/legacy/models/gridEditRowModel.js +0 -16
  443. package/legacy/models/gridExport.js +0 -1
  444. package/legacy/models/gridFeatureMode.js +0 -1
  445. package/legacy/models/gridFilterItem.js +0 -11
  446. package/legacy/models/gridFilterModel.js +0 -1
  447. package/legacy/models/gridFilterOperator.js +0 -1
  448. package/legacy/models/gridHeaderFilteringModel.js +0 -1
  449. package/legacy/models/gridIconSlotsComponent.js +0 -1
  450. package/legacy/models/gridPaginationProps.js +0 -1
  451. package/legacy/models/gridRenderContextProps.js +0 -1
  452. package/legacy/models/gridRowSelectionModel.js +0 -1
  453. package/legacy/models/gridRows.js +0 -1
  454. package/legacy/models/gridSlotsComponent.js +0 -1
  455. package/legacy/models/gridSlotsComponentsProps.js +0 -1
  456. package/legacy/models/gridSortModel.js +0 -1
  457. package/legacy/models/gridStateCommunity.js +0 -1
  458. package/legacy/models/index.js +0 -29
  459. package/legacy/models/logger.js +0 -1
  460. package/legacy/models/muiEvent.js +0 -1
  461. package/legacy/models/params/gridCellParams.js +0 -1
  462. package/legacy/models/params/gridColumnGroupHeaderParams.js +0 -1
  463. package/legacy/models/params/gridColumnHeaderParams.js +0 -1
  464. package/legacy/models/params/gridColumnOrderChangeParams.js +0 -1
  465. package/legacy/models/params/gridColumnResizeParams.js +0 -1
  466. package/legacy/models/params/gridEditCellParams.js +0 -27
  467. package/legacy/models/params/gridHeaderSelectionCheckboxParams.js +0 -1
  468. package/legacy/models/params/gridMenuParams.js +0 -1
  469. package/legacy/models/params/gridPreferencePanelParams.js +0 -1
  470. package/legacy/models/params/gridRowParams.js +0 -44
  471. package/legacy/models/params/gridRowSelectionCheckboxParams.js +0 -1
  472. package/legacy/models/params/gridScrollParams.js +0 -1
  473. package/legacy/models/params/gridValueOptionsParams.js +0 -1
  474. package/legacy/models/params/index.js +0 -13
  475. package/legacy/models/props/DataGridProps.js +0 -1
  476. package/legacy/themeAugmentation/index.js +0 -4
  477. package/legacy/themeAugmentation/overrides.js +0 -1
  478. package/legacy/themeAugmentation/props.js +0 -1
  479. package/legacy/utils/EventManager.js +0 -91
  480. package/legacy/utils/Store.js +0 -34
  481. package/legacy/utils/cleanupTracking/CleanupTracking.js +0 -1
  482. package/legacy/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -29
  483. package/legacy/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -52
  484. package/legacy/utils/createControllablePromise.js +0 -11
  485. package/legacy/utils/createSelector.js +0 -120
  486. package/legacy/utils/doesSupportPreventScroll.js +0 -13
  487. package/legacy/utils/domUtils.js +0 -49
  488. package/legacy/utils/exportAs.js +0 -40
  489. package/legacy/utils/fastMemo.js +0 -5
  490. package/legacy/utils/fastObjectShallowCompare.js +0 -32
  491. package/legacy/utils/getGridLocalization.js +0 -15
  492. package/legacy/utils/getPublicApiRef.js +0 -5
  493. package/legacy/utils/index.js +0 -1
  494. package/legacy/utils/keyboardUtils.js +0 -60
  495. package/legacy/utils/utils.js +0 -189
  496. package/legacy/utils/warning.js +0 -25
@@ -1,643 +0,0 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
- import _extends from "@babel/runtime/helpers/esm/extends";
3
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
- import * as React from 'react';
5
- import * as ReactDOM from 'react-dom';
6
- import { unstable_useEnhancedEffect as useEnhancedEffect, unstable_useEventCallback as useEventCallback } from '@mui/utils';
7
- import { useTheme } from '@mui/material/styles';
8
- import { defaultMemoize } from 'reselect';
9
- import { useGridPrivateApiContext } from '../../utils/useGridPrivateApiContext';
10
- import { useGridRootProps } from '../../utils/useGridRootProps';
11
- import { useGridSelector } from '../../utils/useGridSelector';
12
- import { useLazyRef } from '../../utils/useLazyRef';
13
- import { useResizeObserver } from '../../utils/useResizeObserver';
14
- import { useRunOnce } from '../../utils/useRunOnce';
15
- import { gridVisibleColumnDefinitionsSelector, gridVisiblePinnedColumnDefinitionsSelector, gridColumnPositionsSelector } from '../columns/gridColumnsSelector';
16
- import { gridDimensionsSelector } from '../dimensions/gridDimensionsSelectors';
17
- import { gridPinnedRowsSelector } from '../rows/gridRowsSelector';
18
- import { gridFocusCellSelector, gridTabIndexCellSelector } from '../focus/gridFocusStateSelector';
19
- import { useGridVisibleRows, getVisibleRows } from '../../utils/useGridVisibleRows';
20
- import { clamp } from '../../../utils/utils';
21
- import { selectedIdsLookupSelector } from '../rowSelection/gridRowSelectionSelector';
22
- import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
23
- import { getFirstNonSpannedColumnToRender } from '../columns/gridColumnsUtils';
24
- import { getMinimalContentHeight } from '../rows/gridRowsUtils';
25
- import { gridRenderContextSelector, gridVirtualizationEnabledSelector, gridVirtualizationColumnEnabledSelector } from './gridVirtualizationSelectors';
26
- import { EMPTY_RENDER_CONTEXT } from './useGridVirtualization';
27
- import { jsx as _jsx } from "react/jsx-runtime";
28
- export var EMPTY_DETAIL_PANELS = Object.freeze(new Map());
29
- export var useGridVirtualScroller = function useGridVirtualScroller() {
30
- var apiRef = useGridPrivateApiContext();
31
- var rootProps = useGridRootProps();
32
- var visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);
33
- var enabled = useGridSelector(apiRef, gridVirtualizationEnabledSelector);
34
- var enabledForColumns = useGridSelector(apiRef, gridVirtualizationColumnEnabledSelector);
35
- var dimensions = useGridSelector(apiRef, gridDimensionsSelector);
36
- var outerSize = dimensions.viewportOuterSize;
37
- var pinnedRows = useGridSelector(apiRef, gridPinnedRowsSelector);
38
- var pinnedColumns = useGridSelector(apiRef, gridVisiblePinnedColumnDefinitionsSelector);
39
- var hasBottomPinnedRows = pinnedRows.bottom.length > 0;
40
- var _React$useState = React.useState(EMPTY_DETAIL_PANELS),
41
- _React$useState2 = _slicedToArray(_React$useState, 2),
42
- panels = _React$useState2[0],
43
- setPanels = _React$useState2[1];
44
- var theme = useTheme();
45
- var columnPositions = useGridSelector(apiRef, gridColumnPositionsSelector);
46
- var cellFocus = useGridSelector(apiRef, gridFocusCellSelector);
47
- var cellTabIndex = useGridSelector(apiRef, gridTabIndexCellSelector);
48
- var rowsMeta = useGridSelector(apiRef, gridRowsMetaSelector);
49
- var selectedRowsLookup = useGridSelector(apiRef, selectedIdsLookupSelector);
50
- var currentPage = useGridVisibleRows(apiRef, rootProps);
51
- var gridRootRef = apiRef.current.rootElementRef;
52
- var mainRef = apiRef.current.mainElementRef;
53
- var scrollerRef = apiRef.current.virtualScrollerRef;
54
- var scrollbarVerticalRef = React.useRef(null);
55
- var scrollbarHorizontalRef = React.useRef(null);
56
- var contentHeight = dimensions.contentSize.height;
57
- var columnsTotalWidth = dimensions.columnsTotalWidth;
58
- useResizeObserver(mainRef, function () {
59
- return apiRef.current.resize();
60
- });
61
- var previousContext = React.useRef(EMPTY_RENDER_CONTEXT);
62
- var previousRowContext = React.useRef(EMPTY_RENDER_CONTEXT);
63
- var renderContext = useGridSelector(apiRef, gridRenderContextSelector);
64
- var scrollPosition = React.useRef({
65
- top: 0,
66
- left: 0
67
- }).current;
68
- var prevTotalWidth = React.useRef(columnsTotalWidth);
69
- var getRenderedColumns = useLazyRef(createGetRenderedColumns).current;
70
- var indexOfRowWithFocusedCell = React.useMemo(function () {
71
- if (cellFocus !== null) {
72
- return currentPage.rows.findIndex(function (row) {
73
- return row.id === cellFocus.id;
74
- });
75
- }
76
- return -1;
77
- }, [cellFocus, currentPage.rows]);
78
- var indexOfColumnWithFocusedCell = React.useMemo(function () {
79
- if (cellFocus !== null) {
80
- return visibleColumns.findIndex(function (column) {
81
- return column.field === cellFocus.field;
82
- });
83
- }
84
- return -1;
85
- }, [cellFocus, visibleColumns]);
86
- React.useEffect(function () {
87
- var _gridRootRef$current, _gridRootRef$current2;
88
- var direction = theme.direction === 'ltr' ? 1 : -1;
89
- var top = gridRowsMetaSelector(apiRef.current.state).positions[renderContext.firstRowIndex];
90
- var left = direction * columnPositions[renderContext.firstColumnIndex] - columnPositions[pinnedColumns.left.length];
91
- (_gridRootRef$current = gridRootRef.current) == null || _gridRootRef$current.style.setProperty('--DataGrid-offsetTop', "".concat(top, "px"));
92
- (_gridRootRef$current2 = gridRootRef.current) == null || _gridRootRef$current2.style.setProperty('--DataGrid-offsetLeft', "".concat(left, "px"));
93
- }, [apiRef, gridRootRef, theme.direction, columnPositions, pinnedColumns.left.length, renderContext]);
94
- var updateRenderContext = React.useCallback(function (nextRenderContext, rawRenderContext) {
95
- if (areRenderContextsEqual(nextRenderContext, apiRef.current.state.virtualization.renderContext)) {
96
- return;
97
- }
98
- var didRowsIntervalChange = nextRenderContext.firstRowIndex !== previousRowContext.current.firstRowIndex || nextRenderContext.lastRowIndex !== previousRowContext.current.lastRowIndex;
99
- apiRef.current.setState(function (state) {
100
- return _extends({}, state, {
101
- virtualization: _extends({}, state.virtualization, {
102
- renderContext: nextRenderContext
103
- })
104
- });
105
- });
106
-
107
- // The lazy-loading hook is listening to `renderedRowsIntervalChange`,
108
- // but only does something if the dimensions are also available.
109
- // So we wait until we have valid dimensions before publishing the first event.
110
- if (dimensions.isReady && didRowsIntervalChange) {
111
- previousRowContext.current = nextRenderContext;
112
- apiRef.current.publishEvent('renderedRowsIntervalChange', nextRenderContext);
113
- }
114
- previousContext.current = rawRenderContext;
115
- prevTotalWidth.current = dimensions.columnsTotalWidth;
116
- }, [apiRef, dimensions.isReady, dimensions.columnsTotalWidth]);
117
- var triggerUpdateRenderContext = function triggerUpdateRenderContext() {
118
- var inputs = inputsSelector(apiRef, rootProps, enabled, enabledForColumns);
119
- var _computeRenderContext = computeRenderContext(inputs, scrollPosition),
120
- _computeRenderContext2 = _slicedToArray(_computeRenderContext, 2),
121
- nextRenderContext = _computeRenderContext2[0],
122
- rawRenderContext = _computeRenderContext2[1];
123
-
124
- // Since previous render, we have scrolled...
125
- var topRowsScrolled = Math.abs(rawRenderContext.firstRowIndex - previousContext.current.firstRowIndex);
126
- var bottomRowsScrolled = Math.abs(rawRenderContext.lastRowIndex - previousContext.current.lastRowIndex);
127
- var topColumnsScrolled = Math.abs(rawRenderContext.firstColumnIndex - previousContext.current.firstColumnIndex);
128
- var bottomColumnsScrolled = Math.abs(rawRenderContext.lastColumnIndex - previousContext.current.lastColumnIndex);
129
- var shouldUpdate = topRowsScrolled >= rootProps.rowThreshold || bottomRowsScrolled >= rootProps.rowThreshold || topColumnsScrolled >= rootProps.columnThreshold || bottomColumnsScrolled >= rootProps.columnThreshold || prevTotalWidth.current !== dimensions.columnsTotalWidth;
130
- if (!shouldUpdate) {
131
- return previousContext.current;
132
- }
133
-
134
- // Prevents batching render context changes
135
- ReactDOM.flushSync(function () {
136
- updateRenderContext(nextRenderContext, rawRenderContext);
137
- });
138
- return nextRenderContext;
139
- };
140
- var forceUpdateRenderContext = function forceUpdateRenderContext() {
141
- var inputs = inputsSelector(apiRef, rootProps, enabled, enabledForColumns);
142
- var _computeRenderContext3 = computeRenderContext(inputs, scrollPosition),
143
- _computeRenderContext4 = _slicedToArray(_computeRenderContext3, 2),
144
- nextRenderContext = _computeRenderContext4[0],
145
- rawRenderContext = _computeRenderContext4[1];
146
- updateRenderContext(nextRenderContext, rawRenderContext);
147
- };
148
- var handleScroll = useEventCallback(function (event) {
149
- var _event$currentTarget = event.currentTarget,
150
- scrollTop = _event$currentTarget.scrollTop,
151
- scrollLeft = _event$currentTarget.scrollLeft;
152
- scrollPosition.top = scrollTop;
153
- scrollPosition.left = scrollLeft;
154
-
155
- // On iOS and macOS, negative offsets are possible when swiping past the start
156
- if (scrollTop < 0) {
157
- return;
158
- }
159
- if (theme.direction === 'ltr') {
160
- if (scrollLeft < 0) {
161
- return;
162
- }
163
- }
164
- if (theme.direction === 'rtl') {
165
- if (scrollLeft > 0) {
166
- return;
167
- }
168
- }
169
- var nextRenderContext = triggerUpdateRenderContext();
170
- apiRef.current.publishEvent('scrollPositionChange', {
171
- top: scrollTop,
172
- left: scrollLeft,
173
- renderContext: nextRenderContext
174
- });
175
- });
176
- var handleWheel = useEventCallback(function (event) {
177
- apiRef.current.publishEvent('virtualScrollerWheel', {}, event);
178
- });
179
- var handleTouchMove = useEventCallback(function (event) {
180
- apiRef.current.publishEvent('virtualScrollerTouchMove', {}, event);
181
- });
182
- var minFirstColumn = pinnedColumns.left.length;
183
- var maxLastColumn = visibleColumns.length - pinnedColumns.right.length;
184
- var getRows = function getRows() {
185
- var _params$rows, _rootProps$slotProps;
186
- var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
187
- var isLastSection = !hasBottomPinnedRows && params.position === undefined || hasBottomPinnedRows && params.position === 'bottom';
188
- var isPinnedSection = params.position !== undefined;
189
- var rowIndexOffset;
190
- // FIXME: Why is the switch check exhaustiveness not validated with typescript-eslint?
191
- // eslint-disable-next-line default-case
192
- switch (params.position) {
193
- case 'top':
194
- rowIndexOffset = 0;
195
- break;
196
- case 'bottom':
197
- rowIndexOffset = pinnedRows.top.length + currentPage.rows.length;
198
- break;
199
- case undefined:
200
- rowIndexOffset = pinnedRows.top.length;
201
- break;
202
- }
203
- var firstRowToRender = renderContext.firstRowIndex;
204
- var lastRowToRender = renderContext.lastRowIndex;
205
- var firstColumnToRender = renderContext.firstColumnIndex;
206
- var lastColumnToRender = renderContext.lastColumnIndex;
207
- if (!params.rows && !currentPage.range) {
208
- return [];
209
- }
210
- var renderedRows = (_params$rows = params.rows) != null ? _params$rows : currentPage.rows.slice(firstRowToRender, lastRowToRender);
211
-
212
- // If the selected row is not within the current range of rows being displayed,
213
- // we need to render it at either the top or bottom of the rows,
214
- // depending on whether it is above or below the range.
215
- var isRowWithFocusedCellNotInRange = false;
216
- if (!isPinnedSection && indexOfRowWithFocusedCell > -1 && (firstRowToRender > indexOfRowWithFocusedCell || lastRowToRender < indexOfRowWithFocusedCell)) {
217
- isRowWithFocusedCellNotInRange = true;
218
- var rowWithFocusedCell = currentPage.rows[indexOfRowWithFocusedCell];
219
- if (indexOfRowWithFocusedCell > firstRowToRender) {
220
- renderedRows.push(rowWithFocusedCell);
221
- } else {
222
- renderedRows.unshift(rowWithFocusedCell);
223
- }
224
- }
225
- var isColumnWihFocusedCellNotInRange = false;
226
- if (!isPinnedSection && (firstColumnToRender > indexOfColumnWithFocusedCell || lastColumnToRender < indexOfColumnWithFocusedCell)) {
227
- isColumnWihFocusedCellNotInRange = true;
228
- }
229
- var _getRenderedColumns = getRenderedColumns(visibleColumns, firstColumnToRender, lastColumnToRender, minFirstColumn, maxLastColumn, isColumnWihFocusedCellNotInRange ? indexOfColumnWithFocusedCell : -1),
230
- focusedCellColumnIndexNotInRange = _getRenderedColumns.focusedCellColumnIndexNotInRange,
231
- renderedColumns = _getRenderedColumns.renderedColumns;
232
- renderedRows.forEach(function (row) {
233
- apiRef.current.calculateColSpan({
234
- rowId: row.id,
235
- minFirstColumn: minFirstColumn,
236
- maxLastColumn: maxLastColumn,
237
- columns: visibleColumns
238
- });
239
- if (pinnedColumns.left.length > 0) {
240
- apiRef.current.calculateColSpan({
241
- rowId: row.id,
242
- minFirstColumn: 0,
243
- maxLastColumn: pinnedColumns.left.length,
244
- columns: visibleColumns
245
- });
246
- }
247
- if (pinnedColumns.right.length > 0) {
248
- apiRef.current.calculateColSpan({
249
- rowId: row.id,
250
- minFirstColumn: visibleColumns.length - pinnedColumns.right.length,
251
- maxLastColumn: visibleColumns.length,
252
- columns: visibleColumns
253
- });
254
- }
255
- });
256
- var rows = [];
257
- var rowProps = (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.row;
258
- var isRowWithFocusedCellRendered = false;
259
- for (var i = 0; i < renderedRows.length; i += 1) {
260
- var _currentPage$range;
261
- var _renderedRows$i = renderedRows[i],
262
- id = _renderedRows$i.id,
263
- model = _renderedRows$i.model;
264
- var rowIndexInPage = ((currentPage == null || (_currentPage$range = currentPage.range) == null ? void 0 : _currentPage$range.firstRowIndex) || 0) + firstRowToRender + i;
265
- var index = rowIndexOffset + rowIndexInPage;
266
- if (isRowWithFocusedCellNotInRange && (cellFocus == null ? void 0 : cellFocus.id) === id) {
267
- index = indexOfRowWithFocusedCell;
268
- isRowWithFocusedCellRendered = true;
269
- } else if (isRowWithFocusedCellRendered) {
270
- index -= 1;
271
- }
272
- var isRowNotVisible = isRowWithFocusedCellNotInRange && cellFocus.id === id;
273
- var baseRowHeight = !apiRef.current.rowHasAutoHeight(id) ? apiRef.current.unstable_getRowHeight(id) : 'auto';
274
- var isSelected = void 0;
275
- if (selectedRowsLookup[id] == null) {
276
- isSelected = false;
277
- } else {
278
- isSelected = apiRef.current.isRowSelectable(id);
279
- }
280
- var isFirstVisible = false;
281
- if (params.position === undefined) {
282
- isFirstVisible = rowIndexInPage === 0;
283
- }
284
- var isLastVisible = false;
285
- if (isLastSection) {
286
- if (!isPinnedSection) {
287
- var lastIndex = currentPage.rows.length - 1;
288
- var isLastVisibleRowIndex = isRowWithFocusedCellNotInRange ? firstRowToRender + i === lastIndex + 1 : firstRowToRender + i === lastIndex;
289
- if (isLastVisibleRowIndex) {
290
- isLastVisible = true;
291
- }
292
- } else {
293
- isLastVisible = i === renderedRows.length - 1;
294
- }
295
- }
296
- var focusedCell = cellFocus !== null && cellFocus.id === id ? cellFocus.field : null;
297
- var columnWithFocusedCellNotInRange = focusedCellColumnIndexNotInRange !== undefined && visibleColumns[focusedCellColumnIndexNotInRange];
298
- var renderedColumnsWithFocusedCell = columnWithFocusedCellNotInRange && focusedCell ? [columnWithFocusedCellNotInRange].concat(_toConsumableArray(renderedColumns)) : renderedColumns;
299
- var tabbableCell = null;
300
- if (cellTabIndex !== null && cellTabIndex.id === id) {
301
- var cellParams = apiRef.current.getCellParams(id, cellTabIndex.field);
302
- tabbableCell = cellParams.cellMode === 'view' ? cellTabIndex.field : null;
303
- }
304
- rows.push( /*#__PURE__*/_jsx(rootProps.slots.row, _extends({
305
- row: model,
306
- rowId: id,
307
- index: index,
308
- rowHeight: baseRowHeight,
309
- focusedCell: focusedCell,
310
- tabbableCell: tabbableCell,
311
- focusedCellColumnIndexNotInRange: focusedCellColumnIndexNotInRange,
312
- renderedColumns: renderedColumnsWithFocusedCell,
313
- visibleColumns: visibleColumns,
314
- pinnedColumns: pinnedColumns,
315
- firstColumnToRender: firstColumnToRender,
316
- lastColumnToRender: lastColumnToRender,
317
- selected: isSelected,
318
- dimensions: dimensions,
319
- isFirstVisible: isFirstVisible,
320
- isLastVisible: isLastVisible,
321
- isNotVisible: isRowNotVisible
322
- }, rowProps), id));
323
- var panel = panels.get(id);
324
- if (panel) {
325
- rows.push(panel);
326
- }
327
- }
328
- return rows;
329
- };
330
- var needsHorizontalScrollbar = outerSize.width && columnsTotalWidth >= outerSize.width;
331
- var scrollerStyle = React.useMemo(function () {
332
- return {
333
- overflowX: !needsHorizontalScrollbar ? 'hidden' : undefined,
334
- overflowY: rootProps.autoHeight ? 'hidden' : undefined
335
- };
336
- }, [needsHorizontalScrollbar, rootProps.autoHeight]);
337
- var contentSize = React.useMemo(function () {
338
- // In cases where the columns exceed the available width,
339
- // the horizontal scrollbar should be shown even when there're no rows.
340
- // Keeping 1px as minimum height ensures that the scrollbar will visible if necessary.
341
- var height = Math.max(contentHeight, 1);
342
- var size = {
343
- width: needsHorizontalScrollbar ? columnsTotalWidth : 'auto',
344
- height: height
345
- };
346
- if (rootProps.autoHeight) {
347
- if (currentPage.rows.length === 0) {
348
- size.height = getMinimalContentHeight(apiRef); // Give room to show the overlay when there no rows.
349
- } else {
350
- size.height = contentHeight;
351
- }
352
- }
353
- return size;
354
- }, [apiRef, columnsTotalWidth, contentHeight, needsHorizontalScrollbar, rootProps.autoHeight, currentPage.rows.length]);
355
- React.useEffect(function () {
356
- apiRef.current.publishEvent('virtualScrollerContentSizeChange');
357
- }, [apiRef, contentSize]);
358
- useEnhancedEffect(function () {
359
- // FIXME: Is this really necessary?
360
- apiRef.current.resize();
361
- }, [apiRef, rowsMeta.currentPageTotalHeight]);
362
- useEnhancedEffect(function () {
363
- if (enabled) {
364
- // TODO a scroll reset should not be necessary
365
- scrollerRef.current.scrollLeft = 0;
366
- scrollerRef.current.scrollTop = 0;
367
- } else {
368
- var _gridRootRef$current3, _gridRootRef$current4;
369
- (_gridRootRef$current3 = gridRootRef.current) == null || _gridRootRef$current3.style.setProperty('--DataGrid-offsetTop', '0px');
370
- (_gridRootRef$current4 = gridRootRef.current) == null || _gridRootRef$current4.style.setProperty('--DataGrid-offsetLeft', '0px');
371
- }
372
- }, [enabled, gridRootRef, scrollerRef]);
373
- useRunOnce(outerSize.width !== 0, function () {
374
- var inputs = inputsSelector(apiRef, rootProps, enabled, enabledForColumns);
375
- var _computeRenderContext5 = computeRenderContext(inputs, scrollPosition),
376
- _computeRenderContext6 = _slicedToArray(_computeRenderContext5, 2),
377
- initialRenderContext = _computeRenderContext6[0],
378
- rawRenderContext = _computeRenderContext6[1];
379
- updateRenderContext(initialRenderContext, rawRenderContext);
380
- apiRef.current.publishEvent('scrollPositionChange', {
381
- top: scrollPosition.top,
382
- left: scrollPosition.left,
383
- renderContext: initialRenderContext
384
- });
385
- });
386
- apiRef.current.register('private', {
387
- updateRenderContext: forceUpdateRenderContext
388
- });
389
- return {
390
- renderContext: renderContext,
391
- setPanels: setPanels,
392
- getRows: getRows,
393
- getContainerProps: function getContainerProps() {
394
- return {
395
- ref: mainRef
396
- };
397
- },
398
- getScrollerProps: function getScrollerProps() {
399
- return {
400
- ref: scrollerRef,
401
- tabIndex: -1,
402
- onScroll: handleScroll,
403
- onWheel: handleWheel,
404
- onTouchMove: handleTouchMove,
405
- style: scrollerStyle,
406
- role: 'presentation'
407
- };
408
- },
409
- getContentProps: function getContentProps() {
410
- return {
411
- style: contentSize,
412
- role: 'presentation'
413
- };
414
- },
415
- getRenderZoneProps: function getRenderZoneProps() {
416
- return {
417
- role: 'rowgroup'
418
- };
419
- },
420
- getScrollbarVerticalProps: function getScrollbarVerticalProps() {
421
- return {
422
- ref: scrollbarVerticalRef,
423
- role: 'presentation'
424
- };
425
- },
426
- getScrollbarHorizontalProps: function getScrollbarHorizontalProps() {
427
- return {
428
- ref: scrollbarHorizontalRef,
429
- role: 'presentation'
430
- };
431
- }
432
- };
433
- };
434
- function createGetRenderedColumns() {
435
- return defaultMemoize(function (columns, firstColumnToRender, lastColumnToRender, minFirstColumn, maxLastColumn, indexOfColumnWithFocusedCell) {
436
- // If the selected column is not within the current range of columns being displayed,
437
- // we need to render it at either the left or right of the columns,
438
- // depending on whether it is above or below the range.
439
- var focusedCellColumnIndexNotInRange;
440
- var renderedColumns = columns.slice(firstColumnToRender, lastColumnToRender);
441
- if (indexOfColumnWithFocusedCell > -1) {
442
- // check if it is not on the left pinned column.
443
- if (firstColumnToRender > indexOfColumnWithFocusedCell && indexOfColumnWithFocusedCell >= minFirstColumn) {
444
- focusedCellColumnIndexNotInRange = indexOfColumnWithFocusedCell;
445
- }
446
- // check if it is not on the right pinned column.
447
- else if (lastColumnToRender < indexOfColumnWithFocusedCell && indexOfColumnWithFocusedCell < maxLastColumn) {
448
- focusedCellColumnIndexNotInRange = indexOfColumnWithFocusedCell;
449
- }
450
- }
451
- return {
452
- focusedCellColumnIndexNotInRange: focusedCellColumnIndexNotInRange,
453
- renderedColumns: renderedColumns
454
- };
455
- });
456
- }
457
- function inputsSelector(apiRef, rootProps, enabled, enabledForColumns) {
458
- var dimensions = gridDimensionsSelector(apiRef.current.state);
459
- var currentPage = getVisibleRows(apiRef, rootProps);
460
- return {
461
- enabled: enabled,
462
- enabledForColumns: enabledForColumns,
463
- apiRef: apiRef,
464
- autoHeight: rootProps.autoHeight,
465
- rowBuffer: rootProps.rowBuffer,
466
- columnBuffer: rootProps.columnBuffer,
467
- leftPinnedWidth: dimensions.leftPinnedWidth,
468
- columnsTotalWidth: dimensions.columnsTotalWidth,
469
- viewportInnerWidth: dimensions.viewportInnerSize.width,
470
- viewportInnerHeight: dimensions.viewportInnerSize.height,
471
- rowsMeta: gridRowsMetaSelector(apiRef.current.state),
472
- columnPositions: gridColumnPositionsSelector(apiRef),
473
- rows: currentPage.rows,
474
- range: currentPage.range,
475
- pinnedColumns: gridVisiblePinnedColumnDefinitionsSelector(apiRef),
476
- visibleColumns: gridVisibleColumnDefinitionsSelector(apiRef)
477
- };
478
- }
479
- function computeRenderContext(inputs, scrollPosition) {
480
- var renderContext;
481
- if (!inputs.enabled) {
482
- renderContext = {
483
- firstRowIndex: 0,
484
- lastRowIndex: inputs.rows.length,
485
- firstColumnIndex: 0,
486
- lastColumnIndex: inputs.visibleColumns.length
487
- };
488
- } else {
489
- var top = scrollPosition.top,
490
- left = scrollPosition.left;
491
- var realLeft = Math.abs(left) + inputs.leftPinnedWidth;
492
-
493
- // Clamp the value because the search may return an index out of bounds.
494
- // In the last index, this is not needed because Array.slice doesn't include it.
495
- var firstRowIndex = Math.min(getNearestIndexToRender(inputs, top), inputs.rowsMeta.positions.length - 1);
496
- var lastRowIndex = inputs.autoHeight ? firstRowIndex + inputs.rows.length : getNearestIndexToRender(inputs, top + inputs.viewportInnerHeight);
497
- var firstColumnIndex = 0;
498
- var lastColumnIndex = inputs.columnPositions.length;
499
- if (inputs.enabledForColumns) {
500
- var hasRowWithAutoHeight = false;
501
- var _getIndexesToRender = getIndexesToRender({
502
- firstIndex: firstRowIndex,
503
- lastIndex: lastRowIndex,
504
- minFirstIndex: 0,
505
- maxLastIndex: inputs.rows.length,
506
- buffer: inputs.rowBuffer
507
- }),
508
- _getIndexesToRender2 = _slicedToArray(_getIndexesToRender, 2),
509
- firstRowToRender = _getIndexesToRender2[0],
510
- lastRowToRender = _getIndexesToRender2[1];
511
- for (var i = firstRowToRender; i < lastRowToRender && !hasRowWithAutoHeight; i += 1) {
512
- var row = inputs.rows[i];
513
- hasRowWithAutoHeight = inputs.apiRef.current.rowHasAutoHeight(row.id);
514
- }
515
- if (!hasRowWithAutoHeight) {
516
- firstColumnIndex = binarySearch(realLeft, inputs.columnPositions, {
517
- atStart: true,
518
- lastPosition: inputs.columnsTotalWidth
519
- });
520
- lastColumnIndex = binarySearch(realLeft + inputs.viewportInnerWidth, inputs.columnPositions);
521
- }
522
- }
523
- renderContext = {
524
- firstRowIndex: firstRowIndex,
525
- lastRowIndex: lastRowIndex,
526
- firstColumnIndex: firstColumnIndex,
527
- lastColumnIndex: lastColumnIndex
528
- };
529
- }
530
- var actualRenderContext = deriveRenderContext(inputs.apiRef, inputs.rowBuffer, inputs.columnBuffer, inputs.rows, inputs.pinnedColumns, inputs.visibleColumns, renderContext);
531
- return [actualRenderContext, renderContext];
532
- }
533
- function getNearestIndexToRender(inputs, offset) {
534
- var _inputs$range, _inputs$range2;
535
- var lastMeasuredIndexRelativeToAllRows = inputs.apiRef.current.getLastMeasuredRowIndex();
536
- var allRowsMeasured = lastMeasuredIndexRelativeToAllRows === Infinity;
537
- if ((_inputs$range = inputs.range) != null && _inputs$range.lastRowIndex && !allRowsMeasured) {
538
- // Check if all rows in this page are already measured
539
- allRowsMeasured = lastMeasuredIndexRelativeToAllRows >= inputs.range.lastRowIndex;
540
- }
541
- var lastMeasuredIndexRelativeToCurrentPage = clamp(lastMeasuredIndexRelativeToAllRows - (((_inputs$range2 = inputs.range) == null ? void 0 : _inputs$range2.firstRowIndex) || 0), 0, inputs.rowsMeta.positions.length);
542
- if (allRowsMeasured || inputs.rowsMeta.positions[lastMeasuredIndexRelativeToCurrentPage] >= offset) {
543
- // If all rows were measured (when no row has "auto" as height) or all rows before the offset
544
- // were measured, then use a binary search because it's faster.
545
- return binarySearch(offset, inputs.rowsMeta.positions);
546
- }
547
-
548
- // Otherwise, use an exponential search.
549
- // If rows have "auto" as height, their positions will be based on estimated heights.
550
- // In this case, we can skip several steps until we find a position higher than the offset.
551
- // Inspired by https://github.com/bvaughn/react-virtualized/blob/master/source/Grid/utils/CellSizeAndPositionManager.js
552
- return exponentialSearch(offset, inputs.rowsMeta.positions, lastMeasuredIndexRelativeToCurrentPage);
553
- }
554
-
555
- /**
556
- * Accepts as input a raw render context (the area visible in the viewport) and adds
557
- * computes the actual render context based on pinned elements, buffer dimensions and
558
- * spanning.
559
- */
560
- function deriveRenderContext(apiRef, rowBuffer, columnBuffer, rows, pinnedColumns, visibleColumns, nextRenderContext) {
561
- var _getIndexesToRender3 = getIndexesToRender({
562
- firstIndex: nextRenderContext.firstRowIndex,
563
- lastIndex: nextRenderContext.lastRowIndex,
564
- minFirstIndex: 0,
565
- maxLastIndex: rows.length,
566
- buffer: rowBuffer
567
- }),
568
- _getIndexesToRender4 = _slicedToArray(_getIndexesToRender3, 2),
569
- firstRowToRender = _getIndexesToRender4[0],
570
- lastRowToRender = _getIndexesToRender4[1];
571
- var _getIndexesToRender5 = getIndexesToRender({
572
- firstIndex: nextRenderContext.firstColumnIndex,
573
- lastIndex: nextRenderContext.lastColumnIndex,
574
- minFirstIndex: pinnedColumns.left.length,
575
- maxLastIndex: visibleColumns.length - pinnedColumns.right.length,
576
- buffer: columnBuffer
577
- }),
578
- _getIndexesToRender6 = _slicedToArray(_getIndexesToRender5, 2),
579
- initialFirstColumnToRender = _getIndexesToRender6[0],
580
- lastColumnToRender = _getIndexesToRender6[1];
581
- var firstColumnToRender = getFirstNonSpannedColumnToRender({
582
- firstColumnToRender: initialFirstColumnToRender,
583
- apiRef: apiRef,
584
- firstRowToRender: firstRowToRender,
585
- lastRowToRender: lastRowToRender,
586
- visibleRows: rows
587
- });
588
- return {
589
- firstRowIndex: firstRowToRender,
590
- lastRowIndex: lastRowToRender,
591
- firstColumnIndex: firstColumnToRender,
592
- lastColumnIndex: lastColumnToRender
593
- };
594
- }
595
- /**
596
- * Use binary search to avoid looping through all possible positions.
597
- * The `options.atStart` provides the possibility to match for the first element that
598
- * intersects the screen, even if said element's start position is before `offset`. In
599
- * other words, we search for `offset + width`.
600
- */
601
- function binarySearch(offset, positions) {
602
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
603
- var sliceStart = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
604
- var sliceEnd = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : positions.length;
605
- if (positions.length <= 0) {
606
- return -1;
607
- }
608
- if (sliceStart >= sliceEnd) {
609
- return sliceStart;
610
- }
611
- var pivot = sliceStart + Math.floor((sliceEnd - sliceStart) / 2);
612
- var position = positions[pivot];
613
- var isBefore;
614
- if (options != null && options.atStart) {
615
- var width = (pivot === positions.length - 1 ? options.lastPosition : positions[pivot + 1]) - position;
616
- isBefore = offset - width < position;
617
- } else {
618
- isBefore = offset <= position;
619
- }
620
- return isBefore ? binarySearch(offset, positions, options, sliceStart, pivot) : binarySearch(offset, positions, options, pivot + 1, sliceEnd);
621
- }
622
- function exponentialSearch(offset, positions, index) {
623
- var interval = 1;
624
- while (index < positions.length && Math.abs(positions[index]) < offset) {
625
- index += interval;
626
- interval *= 2;
627
- }
628
- return binarySearch(offset, positions, undefined, Math.floor(index / 2), Math.min(index, positions.length));
629
- }
630
- function getIndexesToRender(_ref) {
631
- var firstIndex = _ref.firstIndex,
632
- lastIndex = _ref.lastIndex,
633
- buffer = _ref.buffer,
634
- minFirstIndex = _ref.minFirstIndex,
635
- maxLastIndex = _ref.maxLastIndex;
636
- return [clamp(firstIndex - buffer, minFirstIndex, maxLastIndex), clamp(lastIndex + buffer, minFirstIndex, maxLastIndex)];
637
- }
638
- export function areRenderContextsEqual(context1, context2) {
639
- if (context1 === context2) {
640
- return true;
641
- }
642
- return context1.firstRowIndex === context2.firstRowIndex && context1.lastRowIndex === context2.lastRowIndex && context1.firstColumnIndex === context2.firstColumnIndex && context1.lastColumnIndex === context2.lastColumnIndex;
643
- }