@mui/x-data-grid 7.0.0-beta.3 → 7.0.0-beta.5

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 (531) hide show
  1. package/CHANGELOG.md +357 -22
  2. package/DataGrid/DataGrid.js +2 -0
  3. package/colDef/gridActionsColDef.js +1 -0
  4. package/colDef/gridBooleanColDef.js +1 -0
  5. package/colDef/gridBooleanOperators.js +1 -1
  6. package/colDef/gridCheckboxSelectionColDef.js +1 -0
  7. package/components/GridRow.d.ts +7 -9
  8. package/components/GridRow.js +36 -47
  9. package/components/GridScrollbarFillerCell.js +6 -21
  10. package/components/cell/GridCell.d.ts +2 -1
  11. package/components/cell/GridCell.js +17 -15
  12. package/components/cell/GridSkeletonCell.d.ts +3 -2
  13. package/components/cell/GridSkeletonCell.js +14 -6
  14. package/components/columnSelection/GridCellCheckboxRenderer.js +7 -6
  15. package/components/columnsManagement/GridColumnsManagement.js +1 -1
  16. package/components/containers/GridRootStyles.js +59 -21
  17. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +8 -2
  18. package/components/virtualization/GridBottomContainer.js +1 -1
  19. package/components/virtualization/GridTopContainer.js +1 -1
  20. package/components/virtualization/GridVirtualScroller.js +2 -2
  21. package/components/virtualization/GridVirtualScrollerRenderZone.js +9 -3
  22. package/constants/gridClasses.d.ts +24 -8
  23. package/constants/gridClasses.js +1 -1
  24. package/hooks/features/clipboard/useGridClipboard.js +1 -1
  25. package/hooks/features/columnHeaders/useGridColumnHeaders.js +11 -8
  26. package/hooks/features/columns/gridColumnsSelector.d.ts +6 -0
  27. package/hooks/features/columns/gridColumnsSelector.js +8 -1
  28. package/hooks/features/columns/useGridColumns.js +4 -0
  29. package/hooks/features/editing/useGridCellEditing.js +3 -4
  30. package/hooks/features/editing/useGridRowEditing.js +4 -6
  31. package/hooks/features/filter/useGridFilter.js +2 -2
  32. package/hooks/features/rows/useGridRows.js +8 -4
  33. package/hooks/features/rows/useGridRowsMeta.js +5 -13
  34. package/hooks/features/sorting/gridSortingUtils.js +9 -1
  35. package/hooks/features/sorting/useGridSorting.js +1 -2
  36. package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +0 -9
  37. package/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -7
  38. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +3 -0
  39. package/hooks/features/virtualization/useGridVirtualScroller.js +82 -138
  40. package/hooks/features/virtualization/useGridVirtualization.d.ts +0 -8
  41. package/hooks/features/virtualization/useGridVirtualization.js +1 -6
  42. package/hooks/utils/useTimeout.d.ts +5 -3
  43. package/hooks/utils/useTimeout.js +13 -5
  44. package/index.js +1 -1
  45. package/internals/index.d.ts +1 -1
  46. package/internals/index.js +1 -1
  47. package/models/colDef/gridColDef.d.ts +13 -0
  48. package/modern/DataGrid/DataGrid.js +2 -0
  49. package/modern/colDef/gridActionsColDef.js +1 -0
  50. package/modern/colDef/gridBooleanColDef.js +1 -0
  51. package/modern/colDef/gridBooleanOperators.js +1 -1
  52. package/modern/colDef/gridCheckboxSelectionColDef.js +1 -0
  53. package/modern/components/GridRow.js +35 -46
  54. package/modern/components/GridScrollbarFillerCell.js +6 -21
  55. package/modern/components/cell/GridCell.js +17 -15
  56. package/modern/components/cell/GridSkeletonCell.js +14 -6
  57. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +7 -6
  58. package/modern/components/columnsManagement/GridColumnsManagement.js +1 -1
  59. package/modern/components/containers/GridRootStyles.js +59 -21
  60. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +8 -2
  61. package/modern/components/virtualization/GridBottomContainer.js +1 -1
  62. package/modern/components/virtualization/GridTopContainer.js +1 -1
  63. package/modern/components/virtualization/GridVirtualScroller.js +2 -2
  64. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +8 -3
  65. package/modern/constants/gridClasses.js +1 -1
  66. package/modern/hooks/features/clipboard/useGridClipboard.js +1 -1
  67. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +11 -8
  68. package/modern/hooks/features/columns/gridColumnsSelector.js +8 -1
  69. package/modern/hooks/features/columns/useGridColumns.js +2 -0
  70. package/modern/hooks/features/editing/useGridCellEditing.js +3 -4
  71. package/modern/hooks/features/editing/useGridRowEditing.js +4 -6
  72. package/modern/hooks/features/filter/useGridFilter.js +2 -2
  73. package/modern/hooks/features/rows/useGridRows.js +8 -4
  74. package/modern/hooks/features/rows/useGridRowsMeta.js +5 -13
  75. package/modern/hooks/features/sorting/gridSortingUtils.js +9 -1
  76. package/modern/hooks/features/sorting/useGridSorting.js +1 -2
  77. package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -7
  78. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +80 -136
  79. package/modern/hooks/features/virtualization/useGridVirtualization.js +1 -6
  80. package/modern/hooks/utils/useTimeout.js +13 -5
  81. package/modern/index.js +1 -1
  82. package/modern/internals/index.js +1 -1
  83. package/modern/utils/keyboardUtils.js +20 -11
  84. package/modern/utils/utils.js +9 -0
  85. package/node/DataGrid/DataGrid.js +1 -0
  86. package/node/colDef/gridActionsColDef.js +1 -0
  87. package/node/colDef/gridBooleanColDef.js +1 -0
  88. package/node/colDef/gridBooleanOperators.js +1 -1
  89. package/node/colDef/gridCheckboxSelectionColDef.js +1 -0
  90. package/node/components/GridRow.js +35 -46
  91. package/node/components/GridScrollbarFillerCell.js +5 -20
  92. package/node/components/cell/GridCell.js +17 -15
  93. package/node/components/cell/GridSkeletonCell.js +15 -7
  94. package/node/components/columnSelection/GridCellCheckboxRenderer.js +7 -6
  95. package/node/components/columnsManagement/GridColumnsManagement.js +1 -1
  96. package/node/components/containers/GridRootStyles.js +59 -21
  97. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +8 -2
  98. package/node/components/virtualization/GridBottomContainer.js +1 -1
  99. package/node/components/virtualization/GridTopContainer.js +1 -1
  100. package/node/components/virtualization/GridVirtualScroller.js +2 -2
  101. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +7 -2
  102. package/node/constants/gridClasses.js +1 -1
  103. package/node/hooks/features/clipboard/useGridClipboard.js +1 -1
  104. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +8 -5
  105. package/node/hooks/features/columns/gridColumnsSelector.js +9 -2
  106. package/node/hooks/features/columns/useGridColumns.js +2 -0
  107. package/node/hooks/features/editing/useGridCellEditing.js +2 -3
  108. package/node/hooks/features/editing/useGridRowEditing.js +3 -5
  109. package/node/hooks/features/filter/useGridFilter.js +2 -2
  110. package/node/hooks/features/rows/useGridRows.js +8 -4
  111. package/node/hooks/features/rows/useGridRowsMeta.js +5 -13
  112. package/node/hooks/features/sorting/gridSortingUtils.js +9 -1
  113. package/node/hooks/features/sorting/useGridSorting.js +1 -2
  114. package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +1 -8
  115. package/node/hooks/features/virtualization/useGridVirtualScroller.js +81 -136
  116. package/node/hooks/features/virtualization/useGridVirtualization.js +2 -7
  117. package/node/hooks/utils/useTimeout.js +13 -4
  118. package/node/index.js +1 -1
  119. package/node/internals/index.js +7 -0
  120. package/node/utils/keyboardUtils.js +25 -20
  121. package/node/utils/utils.js +12 -1
  122. package/package.json +1 -1
  123. package/utils/keyboardUtils.d.ts +7 -6
  124. package/utils/keyboardUtils.js +20 -11
  125. package/utils/utils.d.ts +4 -0
  126. package/utils/utils.js +9 -0
  127. package/legacy/DataGrid/DataGrid.js +0 -664
  128. package/legacy/DataGrid/index.js +0 -2
  129. package/legacy/DataGrid/useDataGridComponent.js +0 -81
  130. package/legacy/DataGrid/useDataGridProps.js +0 -98
  131. package/legacy/colDef/gridActionsColDef.js +0 -18
  132. package/legacy/colDef/gridBooleanColDef.js +0 -42
  133. package/legacy/colDef/gridBooleanOperators.js +0 -16
  134. package/legacy/colDef/gridCheckboxSelectionColDef.js +0 -33
  135. package/legacy/colDef/gridDateColDef.js +0 -62
  136. package/legacy/colDef/gridDateOperators.js +0 -115
  137. package/legacy/colDef/gridDefaultColumnTypes.js +0 -19
  138. package/legacy/colDef/gridNumericColDef.js +0 -19
  139. package/legacy/colDef/gridNumericOperators.js +0 -145
  140. package/legacy/colDef/gridSingleSelectColDef.js +0 -64
  141. package/legacy/colDef/gridSingleSelectOperators.js +0 -46
  142. package/legacy/colDef/gridStringColDef.js +0 -27
  143. package/legacy/colDef/gridStringOperators.js +0 -112
  144. package/legacy/colDef/index.js +0 -13
  145. package/legacy/components/GridApiContext.js +0 -5
  146. package/legacy/components/GridColumnHeaders.js +0 -94
  147. package/legacy/components/GridDetailPanels.js +0 -4
  148. package/legacy/components/GridFooter.js +0 -42
  149. package/legacy/components/GridHeader.js +0 -13
  150. package/legacy/components/GridHeaders.js +0 -53
  151. package/legacy/components/GridLoadingOverlay.js +0 -21
  152. package/legacy/components/GridNoResultsOverlay.js +0 -14
  153. package/legacy/components/GridNoRowsOverlay.js +0 -23
  154. package/legacy/components/GridPagination.js +0 -85
  155. package/legacy/components/GridPinnedRows.js +0 -4
  156. package/legacy/components/GridRow.js +0 -465
  157. package/legacy/components/GridRowCount.js +0 -63
  158. package/legacy/components/GridScrollbarFillerCell.js +0 -34
  159. package/legacy/components/GridSelectedRowCount.js +0 -66
  160. package/legacy/components/base/GridBody.js +0 -2
  161. package/legacy/components/base/GridFooterPlaceholder.js +0 -12
  162. package/legacy/components/base/GridOverlays.js +0 -122
  163. package/legacy/components/base/index.js +0 -3
  164. package/legacy/components/cell/GridActionsCell.js +0 -294
  165. package/legacy/components/cell/GridActionsCellItem.js +0 -69
  166. package/legacy/components/cell/GridBooleanCell.js +0 -121
  167. package/legacy/components/cell/GridCell.js +0 -350
  168. package/legacy/components/cell/GridEditBooleanCell.js +0 -174
  169. package/legacy/components/cell/GridEditDateCell.js +0 -230
  170. package/legacy/components/cell/GridEditInputCell.js +0 -198
  171. package/legacy/components/cell/GridEditSingleSelectCell.js +0 -231
  172. package/legacy/components/cell/GridSkeletonCell.js +0 -52
  173. package/legacy/components/cell/index.js +0 -9
  174. package/legacy/components/columnHeaders/ColumnHeaderMenuIcon.js +0 -59
  175. package/legacy/components/columnHeaders/GridBaseColumnHeaders.js +0 -41
  176. package/legacy/components/columnHeaders/GridColumnGroupHeader.js +0 -132
  177. package/legacy/components/columnHeaders/GridColumnHeaderFilterIconButton.js +0 -93
  178. package/legacy/components/columnHeaders/GridColumnHeaderItem.js +0 -212
  179. package/legacy/components/columnHeaders/GridColumnHeaderSeparator.js +0 -71
  180. package/legacy/components/columnHeaders/GridColumnHeaderSortIcon.js +0 -79
  181. package/legacy/components/columnHeaders/GridColumnHeaderTitle.js +0 -84
  182. package/legacy/components/columnHeaders/GridColumnHeadersInner.js +0 -55
  183. package/legacy/components/columnHeaders/GridGenericColumnHeaderItem.js +0 -107
  184. package/legacy/components/columnHeaders/GridIconButtonContainer.js +0 -41
  185. package/legacy/components/columnHeaders/index.js +0 -5
  186. package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +0 -160
  187. package/legacy/components/columnSelection/GridHeaderCheckbox.js +0 -134
  188. package/legacy/components/columnSelection/index.js +0 -2
  189. package/legacy/components/columnsManagement/GridColumnsManagement.js +0 -307
  190. package/legacy/components/columnsManagement/index.js +0 -1
  191. package/legacy/components/columnsManagement/utils.js +0 -22
  192. package/legacy/components/containers/GridFooterContainer.js +0 -50
  193. package/legacy/components/containers/GridOverlay.js +0 -52
  194. package/legacy/components/containers/GridRoot.js +0 -79
  195. package/legacy/components/containers/GridRootStyles.js +0 -395
  196. package/legacy/components/containers/GridToolbarContainer.js +0 -59
  197. package/legacy/components/containers/index.js +0 -4
  198. package/legacy/components/index.js +0 -19
  199. package/legacy/components/menu/GridMenu.js +0 -132
  200. package/legacy/components/menu/columnMenu/GridColumnHeaderMenu.js +0 -61
  201. package/legacy/components/menu/columnMenu/GridColumnMenu.js +0 -81
  202. package/legacy/components/menu/columnMenu/GridColumnMenuContainer.js +0 -56
  203. package/legacy/components/menu/columnMenu/GridColumnMenuItemProps.js +0 -1
  204. package/legacy/components/menu/columnMenu/GridColumnMenuProps.js +0 -1
  205. package/legacy/components/menu/columnMenu/index.js +0 -9
  206. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuColumnsItem.js +0 -21
  207. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +0 -41
  208. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +0 -60
  209. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +0 -41
  210. package/legacy/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +0 -80
  211. package/legacy/components/menu/columnMenu/menuItems/index.js +0 -5
  212. package/legacy/components/menu/index.js +0 -2
  213. package/legacy/components/panel/GridColumnsPanel.js +0 -22
  214. package/legacy/components/panel/GridPanel.js +0 -137
  215. package/legacy/components/panel/GridPanelContent.js +0 -49
  216. package/legacy/components/panel/GridPanelFooter.js +0 -50
  217. package/legacy/components/panel/GridPanelHeader.js +0 -48
  218. package/legacy/components/panel/GridPanelWrapper.js +0 -64
  219. package/legacy/components/panel/GridPreferencesPanel.js +0 -26
  220. package/legacy/components/panel/filterPanel/GridFilterForm.js +0 -528
  221. package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +0 -118
  222. package/legacy/components/panel/filterPanel/GridFilterInputDate.js +0 -121
  223. package/legacy/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +0 -116
  224. package/legacy/components/panel/filterPanel/GridFilterInputMultipleValue.js +0 -102
  225. package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +0 -149
  226. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +0 -106
  227. package/legacy/components/panel/filterPanel/GridFilterInputValueProps.js +0 -1
  228. package/legacy/components/panel/filterPanel/GridFilterPanel.js +0 -264
  229. package/legacy/components/panel/filterPanel/filterPanelUtils.js +0 -22
  230. package/legacy/components/panel/filterPanel/index.js +0 -9
  231. package/legacy/components/panel/index.js +0 -7
  232. package/legacy/components/reexportable.js +0 -1
  233. package/legacy/components/toolbar/GridToolbar.js +0 -64
  234. package/legacy/components/toolbar/GridToolbarColumnsButton.js +0 -68
  235. package/legacy/components/toolbar/GridToolbarDensitySelector.js +0 -142
  236. package/legacy/components/toolbar/GridToolbarExport.js +0 -80
  237. package/legacy/components/toolbar/GridToolbarExportContainer.js +0 -105
  238. package/legacy/components/toolbar/GridToolbarFilterButton.js +0 -136
  239. package/legacy/components/toolbar/GridToolbarQuickFilter.js +0 -164
  240. package/legacy/components/toolbar/index.js +0 -7
  241. package/legacy/components/virtualization/GridBottomContainer.js +0 -25
  242. package/legacy/components/virtualization/GridMainContainer.js +0 -20
  243. package/legacy/components/virtualization/GridTopContainer.js +0 -35
  244. package/legacy/components/virtualization/GridVirtualScrollbar.js +0 -129
  245. package/legacy/components/virtualization/GridVirtualScroller.js +0 -93
  246. package/legacy/components/virtualization/GridVirtualScrollerContent.js +0 -35
  247. package/legacy/components/virtualization/GridVirtualScrollerFiller.js +0 -70
  248. package/legacy/components/virtualization/GridVirtualScrollerRenderZone.js +0 -49
  249. package/legacy/constants/defaultGridSlotsComponents.js +0 -33
  250. package/legacy/constants/envConstants.js +0 -19
  251. package/legacy/constants/gridClasses.js +0 -5
  252. package/legacy/constants/gridDetailPanelToggleField.js +0 -2
  253. package/legacy/constants/index.js +0 -3
  254. package/legacy/constants/localeTextConstants.js +0 -158
  255. package/legacy/context/GridContextProvider.js +0 -21
  256. package/legacy/context/GridRootPropsContext.js +0 -6
  257. package/legacy/context/index.js +0 -1
  258. package/legacy/hooks/core/gridCoreSelector.js +0 -7
  259. package/legacy/hooks/core/index.js +0 -1
  260. package/legacy/hooks/core/pipeProcessing/gridPipeProcessingApi.js +0 -1
  261. package/legacy/hooks/core/pipeProcessing/index.js +0 -4
  262. package/legacy/hooks/core/pipeProcessing/useGridPipeProcessing.js +0 -114
  263. package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +0 -26
  264. package/legacy/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +0 -26
  265. package/legacy/hooks/core/strategyProcessing/gridStrategyProcessingApi.js +0 -1
  266. package/legacy/hooks/core/strategyProcessing/index.js +0 -3
  267. package/legacy/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.js +0 -18
  268. package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +0 -116
  269. package/legacy/hooks/core/useGridApiInitialization.js +0 -124
  270. package/legacy/hooks/core/useGridInitialization.js +0 -26
  271. package/legacy/hooks/core/useGridLocaleText.js +0 -12
  272. package/legacy/hooks/core/useGridLoggerFactory.js +0 -51
  273. package/legacy/hooks/core/useGridRefs.js +0 -13
  274. package/legacy/hooks/core/useGridStateInitialization.js +0 -106
  275. package/legacy/hooks/core/useGridTheme.js +0 -21
  276. package/legacy/hooks/features/clipboard/useGridClipboard.js +0 -92
  277. package/legacy/hooks/features/columnGrouping/gridColumnGroupsInterfaces.js +0 -1
  278. package/legacy/hooks/features/columnGrouping/gridColumnGroupsSelector.js +0 -24
  279. package/legacy/hooks/features/columnGrouping/gridColumnGroupsUtils.js +0 -92
  280. package/legacy/hooks/features/columnGrouping/index.js +0 -2
  281. package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +0 -140
  282. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +0 -272
  283. package/legacy/hooks/features/columnMenu/columnMenuInterfaces.js +0 -1
  284. package/legacy/hooks/features/columnMenu/columnMenuSelector.js +0 -3
  285. package/legacy/hooks/features/columnMenu/index.js +0 -2
  286. package/legacy/hooks/features/columnMenu/useGridColumnMenu.js +0 -108
  287. package/legacy/hooks/features/columnMenu/useGridColumnMenuSlots.js +0 -71
  288. package/legacy/hooks/features/columns/gridColumnsInterfaces.js +0 -9
  289. package/legacy/hooks/features/columns/gridColumnsSelector.js +0 -174
  290. package/legacy/hooks/features/columns/gridColumnsUtils.js +0 -338
  291. package/legacy/hooks/features/columns/index.js +0 -2
  292. package/legacy/hooks/features/columns/useGridColumnSpanning.js +0 -105
  293. package/legacy/hooks/features/columns/useGridColumns.js +0 -319
  294. package/legacy/hooks/features/density/densitySelector.js +0 -10
  295. package/legacy/hooks/features/density/densityState.js +0 -1
  296. package/legacy/hooks/features/density/index.js +0 -2
  297. package/legacy/hooks/features/density/useGridDensity.js +0 -48
  298. package/legacy/hooks/features/dimensions/gridDimensionsApi.js +0 -1
  299. package/legacy/hooks/features/dimensions/gridDimensionsSelectors.js +0 -3
  300. package/legacy/hooks/features/dimensions/index.js +0 -2
  301. package/legacy/hooks/features/dimensions/useGridDimensions.js +0 -302
  302. package/legacy/hooks/features/editing/gridEditingSelectors.js +0 -4
  303. package/legacy/hooks/features/editing/useGridCellEditing.js +0 -456
  304. package/legacy/hooks/features/editing/useGridEditing.js +0 -145
  305. package/legacy/hooks/features/editing/useGridRowEditing.js +0 -567
  306. package/legacy/hooks/features/events/useGridEvents.js +0 -23
  307. package/legacy/hooks/features/export/serializers/csvSerializer.js +0 -155
  308. package/legacy/hooks/features/export/useGridCsvExport.js +0 -75
  309. package/legacy/hooks/features/export/useGridPrintExport.js +0 -313
  310. package/legacy/hooks/features/export/utils.js +0 -49
  311. package/legacy/hooks/features/filter/gridFilterSelector.js +0 -165
  312. package/legacy/hooks/features/filter/gridFilterState.js +0 -20
  313. package/legacy/hooks/features/filter/gridFilterUtils.js +0 -330
  314. package/legacy/hooks/features/filter/index.js +0 -2
  315. package/legacy/hooks/features/filter/useGridFilter.js +0 -378
  316. package/legacy/hooks/features/focus/gridFocusState.js +0 -1
  317. package/legacy/hooks/features/focus/gridFocusStateSelector.js +0 -31
  318. package/legacy/hooks/features/focus/index.js +0 -2
  319. package/legacy/hooks/features/focus/useGridFocus.js +0 -408
  320. package/legacy/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +0 -10
  321. package/legacy/hooks/features/headerFiltering/index.js +0 -1
  322. package/legacy/hooks/features/headerFiltering/useGridHeaderFiltering.js +0 -93
  323. package/legacy/hooks/features/index.js +0 -16
  324. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +0 -565
  325. package/legacy/hooks/features/pagination/gridPaginationInterfaces.js +0 -1
  326. package/legacy/hooks/features/pagination/gridPaginationSelector.js +0 -115
  327. package/legacy/hooks/features/pagination/gridPaginationUtils.js +0 -31
  328. package/legacy/hooks/features/pagination/index.js +0 -2
  329. package/legacy/hooks/features/pagination/useGridPagination.js +0 -175
  330. package/legacy/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +0 -3
  331. package/legacy/hooks/features/preferencesPanel/gridPreferencePanelState.js +0 -1
  332. package/legacy/hooks/features/preferencesPanel/gridPreferencePanelsValue.js +0 -6
  333. package/legacy/hooks/features/preferencesPanel/index.js +0 -3
  334. package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +0 -125
  335. package/legacy/hooks/features/rowSelection/gridRowSelectionSelector.js +0 -19
  336. package/legacy/hooks/features/rowSelection/index.js +0 -1
  337. package/legacy/hooks/features/rowSelection/useGridRowSelection.js +0 -419
  338. package/legacy/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +0 -45
  339. package/legacy/hooks/features/rowSelection/utils.js +0 -8
  340. package/legacy/hooks/features/rows/gridRowsInterfaces.js +0 -1
  341. package/legacy/hooks/features/rows/gridRowsMetaSelector.js +0 -3
  342. package/legacy/hooks/features/rows/gridRowsMetaState.js +0 -1
  343. package/legacy/hooks/features/rows/gridRowsSelector.js +0 -90
  344. package/legacy/hooks/features/rows/gridRowsUtils.js +0 -294
  345. package/legacy/hooks/features/rows/index.js +0 -4
  346. package/legacy/hooks/features/rows/useGridParamsApi.js +0 -142
  347. package/legacy/hooks/features/rows/useGridRows.js +0 -466
  348. package/legacy/hooks/features/rows/useGridRowsMeta.js +0 -236
  349. package/legacy/hooks/features/rows/useGridRowsPreProcessors.js +0 -82
  350. package/legacy/hooks/features/scroll/useGridScroll.js +0 -133
  351. package/legacy/hooks/features/sorting/gridSortingSelector.js +0 -56
  352. package/legacy/hooks/features/sorting/gridSortingState.js +0 -1
  353. package/legacy/hooks/features/sorting/gridSortingUtils.js +0 -154
  354. package/legacy/hooks/features/sorting/index.js +0 -2
  355. package/legacy/hooks/features/sorting/useGridSorting.js +0 -276
  356. package/legacy/hooks/features/statePersistence/gridStatePersistenceInterface.js +0 -1
  357. package/legacy/hooks/features/statePersistence/index.js +0 -1
  358. package/legacy/hooks/features/statePersistence/useGridStatePersistence.js +0 -25
  359. package/legacy/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -61
  360. package/legacy/hooks/features/virtualization/index.js +0 -2
  361. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +0 -646
  362. package/legacy/hooks/features/virtualization/useGridVirtualization.js +0 -63
  363. package/legacy/hooks/index.js +0 -3
  364. package/legacy/hooks/utils/index.js +0 -9
  365. package/legacy/hooks/utils/useFirstRender.js +0 -8
  366. package/legacy/hooks/utils/useGridApiContext.js +0 -9
  367. package/legacy/hooks/utils/useGridApiEventHandler.js +0 -105
  368. package/legacy/hooks/utils/useGridApiMethod.js +0 -11
  369. package/legacy/hooks/utils/useGridApiRef.js +0 -7
  370. package/legacy/hooks/utils/useGridAriaAttributes.js +0 -25
  371. package/legacy/hooks/utils/useGridInitializeState.js +0 -8
  372. package/legacy/hooks/utils/useGridLogger.js +0 -10
  373. package/legacy/hooks/utils/useGridNativeEventListener.js +0 -32
  374. package/legacy/hooks/utils/useGridPrivateApiContext.js +0 -12
  375. package/legacy/hooks/utils/useGridRootProps.js +0 -9
  376. package/legacy/hooks/utils/useGridSelector.js +0 -54
  377. package/legacy/hooks/utils/useGridVisibleRows.js +0 -42
  378. package/legacy/hooks/utils/useLazyRef.js +0 -11
  379. package/legacy/hooks/utils/useOnMount.js +0 -7
  380. package/legacy/hooks/utils/useResizeObserver.js +0 -36
  381. package/legacy/hooks/utils/useRunOnce.js +0 -18
  382. package/legacy/hooks/utils/useTimeout.js +0 -38
  383. package/legacy/index.js +0 -38
  384. package/legacy/internals/index.js +0 -68
  385. package/legacy/internals/utils/computeSlots.js +0 -17
  386. package/legacy/internals/utils/index.js +0 -3
  387. package/legacy/internals/utils/propValidation.js +0 -21
  388. package/legacy/internals/utils/useProps.js +0 -32
  389. package/legacy/joy/icons.js +0 -432
  390. package/legacy/joy/index.js +0 -2
  391. package/legacy/joy/joySlots.js +0 -420
  392. package/legacy/locales/arSD.js +0 -160
  393. package/legacy/locales/beBY.js +0 -184
  394. package/legacy/locales/bgBG.js +0 -160
  395. package/legacy/locales/coreLocales.js +0 -62
  396. package/legacy/locales/csCZ.js +0 -181
  397. package/legacy/locales/daDK.js +0 -160
  398. package/legacy/locales/deDE.js +0 -160
  399. package/legacy/locales/elGR.js +0 -160
  400. package/legacy/locales/enUS.js +0 -4
  401. package/legacy/locales/esES.js +0 -160
  402. package/legacy/locales/faIR.js +0 -160
  403. package/legacy/locales/fiFI.js +0 -160
  404. package/legacy/locales/frFR.js +0 -160
  405. package/legacy/locales/heIL.js +0 -160
  406. package/legacy/locales/hrHR.js +0 -160
  407. package/legacy/locales/huHU.js +0 -160
  408. package/legacy/locales/index.js +0 -35
  409. package/legacy/locales/itIT.js +0 -160
  410. package/legacy/locales/jaJP.js +0 -160
  411. package/legacy/locales/koKR.js +0 -162
  412. package/legacy/locales/nbNO.js +0 -162
  413. package/legacy/locales/nlNL.js +0 -160
  414. package/legacy/locales/plPL.js +0 -163
  415. package/legacy/locales/ptBR.js +0 -160
  416. package/legacy/locales/ptPT.js +0 -160
  417. package/legacy/locales/roRO.js +0 -160
  418. package/legacy/locales/ruRU.js +0 -181
  419. package/legacy/locales/skSK.js +0 -181
  420. package/legacy/locales/svSE.js +0 -160
  421. package/legacy/locales/trTR.js +0 -161
  422. package/legacy/locales/ukUA.js +0 -182
  423. package/legacy/locales/urPK.js +0 -160
  424. package/legacy/locales/viVN.js +0 -160
  425. package/legacy/locales/zhCN.js +0 -160
  426. package/legacy/locales/zhHK.js +0 -160
  427. package/legacy/locales/zhTW.js +0 -160
  428. package/legacy/material/components/MUISelectOption.js +0 -14
  429. package/legacy/material/icons/GridColumnUnsortedIcon.js +0 -16
  430. package/legacy/material/icons/index.js +0 -89
  431. package/legacy/material/index.js +0 -69
  432. package/legacy/models/api/gridApiCommon.js +0 -1
  433. package/legacy/models/api/gridApiCommunity.js +0 -1
  434. package/legacy/models/api/gridCallbackDetails.js +0 -1
  435. package/legacy/models/api/gridColumnApi.js +0 -1
  436. package/legacy/models/api/gridColumnGroupingApi.js +0 -1
  437. package/legacy/models/api/gridColumnMenuApi.js +0 -1
  438. package/legacy/models/api/gridColumnSpanning.js +0 -1
  439. package/legacy/models/api/gridCoreApi.js +0 -1
  440. package/legacy/models/api/gridCsvExportApi.js +0 -1
  441. package/legacy/models/api/gridDensityApi.js +0 -1
  442. package/legacy/models/api/gridEditingApi.js +0 -1
  443. package/legacy/models/api/gridFilterApi.js +0 -1
  444. package/legacy/models/api/gridFocusApi.js +0 -1
  445. package/legacy/models/api/gridHeaderFilteringApi.js +0 -1
  446. package/legacy/models/api/gridLocaleTextApi.js +0 -1
  447. package/legacy/models/api/gridLoggerApi.js +0 -1
  448. package/legacy/models/api/gridParamsApi.js +0 -1
  449. package/legacy/models/api/gridPreferencesPanelApi.js +0 -1
  450. package/legacy/models/api/gridPrintExportApi.js +0 -1
  451. package/legacy/models/api/gridRowApi.js +0 -1
  452. package/legacy/models/api/gridRowSelectionApi.js +0 -1
  453. package/legacy/models/api/gridRowsMetaApi.js +0 -1
  454. package/legacy/models/api/gridScrollApi.js +0 -1
  455. package/legacy/models/api/gridSortApi.js +0 -1
  456. package/legacy/models/api/gridStateApi.js +0 -1
  457. package/legacy/models/api/gridVirtualizationApi.js +0 -1
  458. package/legacy/models/api/index.js +0 -16
  459. package/legacy/models/colDef/gridColDef.js +0 -1
  460. package/legacy/models/colDef/gridColType.js +0 -1
  461. package/legacy/models/colDef/gridColumnTypesRecord.js +0 -1
  462. package/legacy/models/colDef/index.js +0 -6
  463. package/legacy/models/controlStateItem.js +0 -1
  464. package/legacy/models/cursorCoordinates.js +0 -1
  465. package/legacy/models/elementSize.js +0 -1
  466. package/legacy/models/events/gridEventListener.js +0 -1
  467. package/legacy/models/events/gridEventLookup.js +0 -1
  468. package/legacy/models/events/gridEventPublisher.js +0 -1
  469. package/legacy/models/events/index.js +0 -3
  470. package/legacy/models/gridApiCaches.js +0 -1
  471. package/legacy/models/gridCell.js +0 -1
  472. package/legacy/models/gridCellClass.js +0 -1
  473. package/legacy/models/gridColumnGrouping.js +0 -11
  474. package/legacy/models/gridColumnHeaderClass.js +0 -1
  475. package/legacy/models/gridColumnSpanning.js +0 -1
  476. package/legacy/models/gridDensity.js +0 -1
  477. package/legacy/models/gridEditRowModel.js +0 -16
  478. package/legacy/models/gridExport.js +0 -1
  479. package/legacy/models/gridFeatureMode.js +0 -1
  480. package/legacy/models/gridFilterItem.js +0 -11
  481. package/legacy/models/gridFilterModel.js +0 -1
  482. package/legacy/models/gridFilterOperator.js +0 -1
  483. package/legacy/models/gridHeaderFilteringModel.js +0 -1
  484. package/legacy/models/gridIconSlotsComponent.js +0 -1
  485. package/legacy/models/gridPaginationProps.js +0 -1
  486. package/legacy/models/gridRenderContextProps.js +0 -1
  487. package/legacy/models/gridRowSelectionModel.js +0 -1
  488. package/legacy/models/gridRows.js +0 -1
  489. package/legacy/models/gridSlotsComponent.js +0 -1
  490. package/legacy/models/gridSlotsComponentsProps.js +0 -1
  491. package/legacy/models/gridSortModel.js +0 -1
  492. package/legacy/models/gridStateCommunity.js +0 -1
  493. package/legacy/models/index.js +0 -29
  494. package/legacy/models/logger.js +0 -1
  495. package/legacy/models/muiEvent.js +0 -1
  496. package/legacy/models/params/gridCellParams.js +0 -1
  497. package/legacy/models/params/gridColumnGroupHeaderParams.js +0 -1
  498. package/legacy/models/params/gridColumnHeaderParams.js +0 -1
  499. package/legacy/models/params/gridColumnOrderChangeParams.js +0 -1
  500. package/legacy/models/params/gridColumnResizeParams.js +0 -1
  501. package/legacy/models/params/gridEditCellParams.js +0 -27
  502. package/legacy/models/params/gridHeaderSelectionCheckboxParams.js +0 -1
  503. package/legacy/models/params/gridMenuParams.js +0 -1
  504. package/legacy/models/params/gridPreferencePanelParams.js +0 -1
  505. package/legacy/models/params/gridRowParams.js +0 -44
  506. package/legacy/models/params/gridRowSelectionCheckboxParams.js +0 -1
  507. package/legacy/models/params/gridScrollParams.js +0 -1
  508. package/legacy/models/params/gridValueOptionsParams.js +0 -1
  509. package/legacy/models/params/index.js +0 -13
  510. package/legacy/models/props/DataGridProps.js +0 -1
  511. package/legacy/themeAugmentation/index.js +0 -4
  512. package/legacy/themeAugmentation/overrides.js +0 -1
  513. package/legacy/themeAugmentation/props.js +0 -1
  514. package/legacy/utils/EventManager.js +0 -91
  515. package/legacy/utils/Store.js +0 -34
  516. package/legacy/utils/cleanupTracking/CleanupTracking.js +0 -1
  517. package/legacy/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -29
  518. package/legacy/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -52
  519. package/legacy/utils/createControllablePromise.js +0 -11
  520. package/legacy/utils/createSelector.js +0 -120
  521. package/legacy/utils/doesSupportPreventScroll.js +0 -13
  522. package/legacy/utils/domUtils.js +0 -49
  523. package/legacy/utils/exportAs.js +0 -40
  524. package/legacy/utils/fastMemo.js +0 -5
  525. package/legacy/utils/fastObjectShallowCompare.js +0 -32
  526. package/legacy/utils/getGridLocalization.js +0 -15
  527. package/legacy/utils/getPublicApiRef.js +0 -5
  528. package/legacy/utils/index.js +0 -1
  529. package/legacy/utils/keyboardUtils.js +0 -60
  530. package/legacy/utils/utils.js +0 -189
  531. package/legacy/utils/warning.js +0 -25
@@ -1,419 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import _extends from "@babel/runtime/helpers/esm/extends";
3
- import * as React from 'react';
4
- import { GridSignature, useGridApiEventHandler } from '../../utils/useGridApiEventHandler';
5
- import { useGridApiMethod } from '../../utils/useGridApiMethod';
6
- import { useGridLogger } from '../../utils/useGridLogger';
7
- import { gridRowsLookupSelector } from '../rows/gridRowsSelector';
8
- import { gridRowSelectionStateSelector, selectedGridRowsSelector, selectedIdsLookupSelector } from './gridRowSelectionSelector';
9
- import { gridPaginatedVisibleSortedGridRowIdsSelector } from '../pagination';
10
- import { gridFocusCellSelector } from '../focus/gridFocusStateSelector';
11
- import { gridExpandedSortedRowIdsSelector } from '../filter/gridFilterSelector';
12
- import { GRID_CHECKBOX_SELECTION_COL_DEF, GRID_ACTIONS_COLUMN_TYPE } from '../../../colDef';
13
- import { GridCellModes } from '../../../models/gridEditRowModel';
14
- import { isKeyboardEvent, isNavigationKey } from '../../../utils/keyboardUtils';
15
- import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
16
- import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from '../../../constants/gridDetailPanelToggleField';
17
- import { gridClasses } from '../../../constants/gridClasses';
18
- import { isEventTargetInPortal } from '../../../utils/domUtils';
19
- import { isMultipleRowSelectionEnabled } from './utils';
20
- var getSelectionModelPropValue = function getSelectionModelPropValue(selectionModelProp, prevSelectionModel) {
21
- if (selectionModelProp == null) {
22
- return selectionModelProp;
23
- }
24
- if (Array.isArray(selectionModelProp)) {
25
- return selectionModelProp;
26
- }
27
- if (prevSelectionModel && prevSelectionModel[0] === selectionModelProp) {
28
- return prevSelectionModel;
29
- }
30
- return [selectionModelProp];
31
- };
32
- export var rowSelectionStateInitializer = function rowSelectionStateInitializer(state, props) {
33
- var _getSelectionModelPro;
34
- return _extends({}, state, {
35
- rowSelection: props.rowSelection ? (_getSelectionModelPro = getSelectionModelPropValue(props.rowSelectionModel)) != null ? _getSelectionModelPro : [] : []
36
- });
37
- };
38
-
39
- /**
40
- * @requires useGridRows (state, method) - can be after
41
- * @requires useGridParamsApi (method) - can be after
42
- * @requires useGridFocus (state) - can be after
43
- * @requires useGridKeyboardNavigation (`cellKeyDown` event must first be consumed by it)
44
- */
45
- export var useGridRowSelection = function useGridRowSelection(apiRef, props) {
46
- var logger = useGridLogger(apiRef, 'useGridSelection');
47
- var runIfRowSelectionIsEnabled = function runIfRowSelectionIsEnabled(callback) {
48
- return function () {
49
- if (props.rowSelection) {
50
- callback.apply(void 0, arguments);
51
- }
52
- };
53
- };
54
- var propRowSelectionModel = React.useMemo(function () {
55
- return getSelectionModelPropValue(props.rowSelectionModel, gridRowSelectionStateSelector(apiRef.current.state));
56
- }, [apiRef, props.rowSelectionModel]);
57
- var lastRowToggled = React.useRef(null);
58
- apiRef.current.registerControlState({
59
- stateId: 'rowSelection',
60
- propModel: propRowSelectionModel,
61
- propOnChange: props.onRowSelectionModelChange,
62
- stateSelector: gridRowSelectionStateSelector,
63
- changeEvent: 'rowSelectionChange'
64
- });
65
- var checkboxSelection = props.checkboxSelection,
66
- disableRowSelectionOnClick = props.disableRowSelectionOnClick,
67
- propIsRowSelectable = props.isRowSelectable;
68
- var canHaveMultipleSelection = isMultipleRowSelectionEnabled(props);
69
- var visibleRows = useGridVisibleRows(apiRef, props);
70
- var expandMouseRowRangeSelection = React.useCallback(function (id) {
71
- var _lastRowToggled$curre;
72
- var endId = id;
73
- var startId = (_lastRowToggled$curre = lastRowToggled.current) != null ? _lastRowToggled$curre : id;
74
- var isSelected = apiRef.current.isRowSelected(id);
75
- if (isSelected) {
76
- var visibleRowIds = gridExpandedSortedRowIdsSelector(apiRef);
77
- var startIndex = visibleRowIds.findIndex(function (rowId) {
78
- return rowId === startId;
79
- });
80
- var endIndex = visibleRowIds.findIndex(function (rowId) {
81
- return rowId === endId;
82
- });
83
- if (startIndex === endIndex) {
84
- return;
85
- }
86
- if (startIndex > endIndex) {
87
- endId = visibleRowIds[endIndex + 1];
88
- } else {
89
- endId = visibleRowIds[endIndex - 1];
90
- }
91
- }
92
- lastRowToggled.current = id;
93
- apiRef.current.selectRowRange({
94
- startId: startId,
95
- endId: endId
96
- }, !isSelected);
97
- }, [apiRef]);
98
-
99
- /**
100
- * API METHODS
101
- */
102
- var setRowSelectionModel = React.useCallback(function (model) {
103
- if (props.signature === GridSignature.DataGrid && !canHaveMultipleSelection && Array.isArray(model) && model.length > 1) {
104
- throw new Error(['MUI X: `rowSelectionModel` can only contain 1 item in DataGrid.', 'You need to upgrade to DataGridPro or DataGridPremium component to unlock multiple selection.'].join('\n'));
105
- }
106
- var currentModel = gridRowSelectionStateSelector(apiRef.current.state);
107
- if (currentModel !== model) {
108
- logger.debug("Setting selection model");
109
- apiRef.current.setState(function (state) {
110
- return _extends({}, state, {
111
- rowSelection: props.rowSelection ? model : []
112
- });
113
- });
114
- apiRef.current.forceUpdate();
115
- }
116
- }, [apiRef, logger, props.rowSelection, props.signature, canHaveMultipleSelection]);
117
- var isRowSelected = React.useCallback(function (id) {
118
- return gridRowSelectionStateSelector(apiRef.current.state).includes(id);
119
- }, [apiRef]);
120
- var isRowSelectable = React.useCallback(function (id) {
121
- if (propIsRowSelectable && !propIsRowSelectable(apiRef.current.getRowParams(id))) {
122
- return false;
123
- }
124
- var rowNode = apiRef.current.getRowNode(id);
125
- if ((rowNode == null ? void 0 : rowNode.type) === 'footer' || (rowNode == null ? void 0 : rowNode.type) === 'pinnedRow') {
126
- return false;
127
- }
128
- return true;
129
- }, [apiRef, propIsRowSelectable]);
130
- var getSelectedRows = React.useCallback(function () {
131
- return selectedGridRowsSelector(apiRef);
132
- }, [apiRef]);
133
- var selectRow = React.useCallback(function (id) {
134
- var isSelected = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
135
- var resetSelection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
136
- if (!apiRef.current.isRowSelectable(id)) {
137
- return;
138
- }
139
- lastRowToggled.current = id;
140
- if (resetSelection) {
141
- logger.debug("Setting selection for row ".concat(id));
142
- apiRef.current.setRowSelectionModel(isSelected ? [id] : []);
143
- } else {
144
- logger.debug("Toggling selection for row ".concat(id));
145
- var selection = gridRowSelectionStateSelector(apiRef.current.state);
146
- var newSelection = selection.filter(function (el) {
147
- return el !== id;
148
- });
149
- if (isSelected) {
150
- newSelection.push(id);
151
- }
152
- var isSelectionValid = newSelection.length < 2 || canHaveMultipleSelection;
153
- if (isSelectionValid) {
154
- apiRef.current.setRowSelectionModel(newSelection);
155
- }
156
- }
157
- }, [apiRef, logger, canHaveMultipleSelection]);
158
- var selectRows = React.useCallback(function (ids) {
159
- var isSelected = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
160
- var resetSelection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
161
- logger.debug("Setting selection for several rows");
162
- var selectableIds = ids.filter(function (id) {
163
- return apiRef.current.isRowSelectable(id);
164
- });
165
- var newSelection;
166
- if (resetSelection) {
167
- newSelection = isSelected ? selectableIds : [];
168
- } else {
169
- // We clone the existing object to avoid mutating the same object returned by the selector to others part of the project
170
- var selectionLookup = _extends({}, selectedIdsLookupSelector(apiRef));
171
- selectableIds.forEach(function (id) {
172
- if (isSelected) {
173
- selectionLookup[id] = id;
174
- } else {
175
- delete selectionLookup[id];
176
- }
177
- });
178
- newSelection = Object.values(selectionLookup);
179
- }
180
- var isSelectionValid = newSelection.length < 2 || canHaveMultipleSelection;
181
- if (isSelectionValid) {
182
- apiRef.current.setRowSelectionModel(newSelection);
183
- }
184
- }, [apiRef, logger, canHaveMultipleSelection]);
185
- var selectRowRange = React.useCallback(function (_ref) {
186
- var startId = _ref.startId,
187
- endId = _ref.endId;
188
- var isSelected = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
189
- var resetSelection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
190
- if (!apiRef.current.getRow(startId) || !apiRef.current.getRow(endId)) {
191
- return;
192
- }
193
- logger.debug("Expanding selection from row ".concat(startId, " to row ").concat(endId));
194
-
195
- // Using rows from all pages allow to select a range across several pages
196
- var allPagesRowIds = gridExpandedSortedRowIdsSelector(apiRef);
197
- var startIndex = allPagesRowIds.indexOf(startId);
198
- var endIndex = allPagesRowIds.indexOf(endId);
199
- var _ref2 = startIndex > endIndex ? [endIndex, startIndex] : [startIndex, endIndex],
200
- _ref3 = _slicedToArray(_ref2, 2),
201
- start = _ref3[0],
202
- end = _ref3[1];
203
- var rowsBetweenStartAndEnd = allPagesRowIds.slice(start, end + 1);
204
- apiRef.current.selectRows(rowsBetweenStartAndEnd, isSelected, resetSelection);
205
- }, [apiRef, logger]);
206
- var selectionPublicApi = {
207
- selectRow: selectRow,
208
- setRowSelectionModel: setRowSelectionModel,
209
- getSelectedRows: getSelectedRows,
210
- isRowSelected: isRowSelected,
211
- isRowSelectable: isRowSelectable
212
- };
213
- var selectionPrivateApi = {
214
- selectRows: selectRows,
215
- selectRowRange: selectRowRange
216
- };
217
- useGridApiMethod(apiRef, selectionPublicApi, 'public');
218
- useGridApiMethod(apiRef, selectionPrivateApi, props.signature === GridSignature.DataGrid ? 'private' : 'public');
219
-
220
- /**
221
- * EVENTS
222
- */
223
- var removeOutdatedSelection = React.useCallback(function () {
224
- if (props.keepNonExistentRowsSelected) {
225
- return;
226
- }
227
- var currentSelection = gridRowSelectionStateSelector(apiRef.current.state);
228
- var rowsLookup = gridRowsLookupSelector(apiRef);
229
-
230
- // We clone the existing object to avoid mutating the same object returned by the selector to others part of the project
231
- var selectionLookup = _extends({}, selectedIdsLookupSelector(apiRef));
232
- var hasChanged = false;
233
- currentSelection.forEach(function (id) {
234
- if (!rowsLookup[id]) {
235
- delete selectionLookup[id];
236
- hasChanged = true;
237
- }
238
- });
239
- if (hasChanged) {
240
- apiRef.current.setRowSelectionModel(Object.values(selectionLookup));
241
- }
242
- }, [apiRef, props.keepNonExistentRowsSelected]);
243
- var handleSingleRowSelection = React.useCallback(function (id, event) {
244
- var hasCtrlKey = event.metaKey || event.ctrlKey;
245
-
246
- // multiple selection is only allowed if:
247
- // - it is a checkboxSelection
248
- // - it is a keyboard selection
249
- // - Ctrl is pressed
250
-
251
- var isMultipleSelectionDisabled = !checkboxSelection && !hasCtrlKey && !isKeyboardEvent(event);
252
- var resetSelection = !canHaveMultipleSelection || isMultipleSelectionDisabled;
253
- var isSelected = apiRef.current.isRowSelected(id);
254
- if (resetSelection) {
255
- apiRef.current.selectRow(id, !isMultipleSelectionDisabled ? !isSelected : true, true);
256
- } else {
257
- apiRef.current.selectRow(id, !isSelected, false);
258
- }
259
- }, [apiRef, canHaveMultipleSelection, checkboxSelection]);
260
- var handleRowClick = React.useCallback(function (params, event) {
261
- var _closest;
262
- if (disableRowSelectionOnClick) {
263
- return;
264
- }
265
- var field = (_closest = event.target.closest(".".concat(gridClasses.cell))) == null ? void 0 : _closest.getAttribute('data-field');
266
- if (field === GRID_CHECKBOX_SELECTION_COL_DEF.field) {
267
- // click on checkbox should not trigger row selection
268
- return;
269
- }
270
- if (field === GRID_DETAIL_PANEL_TOGGLE_FIELD) {
271
- // click to open the detail panel should not select the row
272
- return;
273
- }
274
- if (field) {
275
- var column = apiRef.current.getColumn(field);
276
- if ((column == null ? void 0 : column.type) === GRID_ACTIONS_COLUMN_TYPE) {
277
- return;
278
- }
279
- }
280
- var rowNode = apiRef.current.getRowNode(params.id);
281
- if (rowNode.type === 'pinnedRow') {
282
- return;
283
- }
284
- if (event.shiftKey && canHaveMultipleSelection) {
285
- expandMouseRowRangeSelection(params.id);
286
- } else {
287
- handleSingleRowSelection(params.id, event);
288
- }
289
- }, [disableRowSelectionOnClick, canHaveMultipleSelection, apiRef, expandMouseRowRangeSelection, handleSingleRowSelection]);
290
- var preventSelectionOnShift = React.useCallback(function (params, event) {
291
- if (canHaveMultipleSelection && event.shiftKey) {
292
- var _window$getSelection;
293
- (_window$getSelection = window.getSelection()) == null || _window$getSelection.removeAllRanges();
294
- }
295
- }, [canHaveMultipleSelection]);
296
- var handleRowSelectionCheckboxChange = React.useCallback(function (params, event) {
297
- if (canHaveMultipleSelection && event.nativeEvent.shiftKey) {
298
- expandMouseRowRangeSelection(params.id);
299
- } else {
300
- apiRef.current.selectRow(params.id, params.value, !canHaveMultipleSelection);
301
- }
302
- }, [apiRef, expandMouseRowRangeSelection, canHaveMultipleSelection]);
303
- var handleHeaderSelectionCheckboxChange = React.useCallback(function (params) {
304
- var shouldLimitSelectionToCurrentPage = props.checkboxSelectionVisibleOnly && props.pagination;
305
- var rowsToBeSelected = shouldLimitSelectionToCurrentPage ? gridPaginatedVisibleSortedGridRowIdsSelector(apiRef) : gridExpandedSortedRowIdsSelector(apiRef);
306
- apiRef.current.selectRows(rowsToBeSelected, params.value);
307
- }, [apiRef, props.checkboxSelectionVisibleOnly, props.pagination]);
308
- var handleCellKeyDown = React.useCallback(function (params, event) {
309
- // Get the most recent cell mode because it may have been changed by another listener
310
- if (apiRef.current.getCellMode(params.id, params.field) === GridCellModes.Edit) {
311
- return;
312
- }
313
-
314
- // Ignore portal
315
- // Do not apply shortcuts if the focus is not on the cell root component
316
- if (isEventTargetInPortal(event)) {
317
- return;
318
- }
319
- if (isNavigationKey(event.key) && event.shiftKey) {
320
- // The cell that has focus after the keyboard navigation
321
- var focusCell = gridFocusCellSelector(apiRef);
322
- if (focusCell && focusCell.id !== params.id) {
323
- event.preventDefault();
324
- var isNextRowSelected = apiRef.current.isRowSelected(focusCell.id);
325
- if (!canHaveMultipleSelection) {
326
- apiRef.current.selectRow(focusCell.id, !isNextRowSelected, true);
327
- return;
328
- }
329
- var newRowIndex = apiRef.current.getRowIndexRelativeToVisibleRows(focusCell.id);
330
- var previousRowIndex = apiRef.current.getRowIndexRelativeToVisibleRows(params.id);
331
- var start;
332
- var end;
333
- if (newRowIndex > previousRowIndex) {
334
- if (isNextRowSelected) {
335
- // We are navigating to the bottom of the page and adding selected rows
336
- start = previousRowIndex;
337
- end = newRowIndex - 1;
338
- } else {
339
- // We are navigating to the bottom of the page and removing selected rows
340
- start = previousRowIndex;
341
- end = newRowIndex;
342
- }
343
- } else {
344
- // eslint-disable-next-line no-lonely-if
345
- if (isNextRowSelected) {
346
- // We are navigating to the top of the page and removing selected rows
347
- start = newRowIndex + 1;
348
- end = previousRowIndex;
349
- } else {
350
- // We are navigating to the top of the page and adding selected rows
351
- start = newRowIndex;
352
- end = previousRowIndex;
353
- }
354
- }
355
- var rowsBetweenStartAndEnd = visibleRows.rows.slice(start, end + 1).map(function (row) {
356
- return row.id;
357
- });
358
- apiRef.current.selectRows(rowsBetweenStartAndEnd, !isNextRowSelected);
359
- return;
360
- }
361
- }
362
- if (event.key === ' ' && event.shiftKey) {
363
- event.preventDefault();
364
- handleSingleRowSelection(params.id, event);
365
- return;
366
- }
367
- if (event.key === 'a' && (event.ctrlKey || event.metaKey)) {
368
- event.preventDefault();
369
- selectRows(apiRef.current.getAllRowIds(), true);
370
- }
371
- }, [apiRef, handleSingleRowSelection, selectRows, visibleRows.rows, canHaveMultipleSelection]);
372
- useGridApiEventHandler(apiRef, 'sortedRowsSet', runIfRowSelectionIsEnabled(removeOutdatedSelection));
373
- useGridApiEventHandler(apiRef, 'rowClick', runIfRowSelectionIsEnabled(handleRowClick));
374
- useGridApiEventHandler(apiRef, 'rowSelectionCheckboxChange', runIfRowSelectionIsEnabled(handleRowSelectionCheckboxChange));
375
- useGridApiEventHandler(apiRef, 'headerSelectionCheckboxChange', handleHeaderSelectionCheckboxChange);
376
- useGridApiEventHandler(apiRef, 'cellMouseDown', runIfRowSelectionIsEnabled(preventSelectionOnShift));
377
- useGridApiEventHandler(apiRef, 'cellKeyDown', runIfRowSelectionIsEnabled(handleCellKeyDown));
378
-
379
- /**
380
- * EFFECTS
381
- */
382
- React.useEffect(function () {
383
- if (propRowSelectionModel !== undefined) {
384
- apiRef.current.setRowSelectionModel(propRowSelectionModel);
385
- }
386
- }, [apiRef, propRowSelectionModel, props.rowSelection]);
387
- React.useEffect(function () {
388
- if (!props.rowSelection) {
389
- apiRef.current.setRowSelectionModel([]);
390
- }
391
- }, [apiRef, props.rowSelection]);
392
- var isStateControlled = propRowSelectionModel != null;
393
- React.useEffect(function () {
394
- if (isStateControlled || !props.rowSelection) {
395
- return;
396
- }
397
-
398
- // props.isRowSelectable changed
399
- var currentSelection = gridRowSelectionStateSelector(apiRef.current.state);
400
- if (isRowSelectable) {
401
- var newSelection = currentSelection.filter(function (id) {
402
- return isRowSelectable(id);
403
- });
404
- if (newSelection.length < currentSelection.length) {
405
- apiRef.current.setRowSelectionModel(newSelection);
406
- }
407
- }
408
- }, [apiRef, isRowSelectable, isStateControlled, props.rowSelection]);
409
- React.useEffect(function () {
410
- if (!props.rowSelection || isStateControlled) {
411
- return;
412
- }
413
- var currentSelection = gridRowSelectionStateSelector(apiRef.current.state);
414
- if (!canHaveMultipleSelection && currentSelection.length > 1) {
415
- // See https://github.com/mui/mui-x/issues/8455
416
- apiRef.current.setRowSelectionModel([]);
417
- }
418
- }, [apiRef, canHaveMultipleSelection, checkboxSelection, isStateControlled, props.rowSelection]);
419
- };
@@ -1,45 +0,0 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
- import _extends from "@babel/runtime/helpers/esm/extends";
3
- import * as React from 'react';
4
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
5
- import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
6
- import { getDataGridUtilityClass } from '../../../constants';
7
- import { GRID_CHECKBOX_SELECTION_COL_DEF, GRID_CHECKBOX_SELECTION_FIELD } from '../../../colDef';
8
- var useUtilityClasses = function useUtilityClasses(ownerState) {
9
- var classes = ownerState.classes;
10
- return React.useMemo(function () {
11
- var slots = {
12
- cellCheckbox: ['cellCheckbox'],
13
- columnHeaderCheckbox: ['columnHeaderCheckbox']
14
- };
15
- return composeClasses(slots, getDataGridUtilityClass, classes);
16
- }, [classes]);
17
- };
18
- export var useGridRowSelectionPreProcessors = function useGridRowSelectionPreProcessors(apiRef, props) {
19
- var ownerState = {
20
- classes: props.classes
21
- };
22
- var classes = useUtilityClasses(ownerState);
23
- var updateSelectionColumn = React.useCallback(function (columnsState) {
24
- var selectionColumn = _extends({}, GRID_CHECKBOX_SELECTION_COL_DEF, {
25
- cellClassName: classes.cellCheckbox,
26
- headerClassName: classes.columnHeaderCheckbox,
27
- headerName: apiRef.current.getLocaleText('checkboxSelectionHeaderName')
28
- });
29
- var shouldHaveSelectionColumn = props.checkboxSelection;
30
- var haveSelectionColumn = columnsState.lookup[GRID_CHECKBOX_SELECTION_FIELD] != null;
31
- if (shouldHaveSelectionColumn && !haveSelectionColumn) {
32
- columnsState.lookup[GRID_CHECKBOX_SELECTION_FIELD] = selectionColumn;
33
- columnsState.orderedFields = [GRID_CHECKBOX_SELECTION_FIELD].concat(_toConsumableArray(columnsState.orderedFields));
34
- } else if (!shouldHaveSelectionColumn && haveSelectionColumn) {
35
- delete columnsState.lookup[GRID_CHECKBOX_SELECTION_FIELD];
36
- columnsState.orderedFields = columnsState.orderedFields.filter(function (field) {
37
- return field !== GRID_CHECKBOX_SELECTION_FIELD;
38
- });
39
- } else if (shouldHaveSelectionColumn && haveSelectionColumn) {
40
- columnsState.lookup[GRID_CHECKBOX_SELECTION_FIELD] = _extends({}, selectionColumn, columnsState.lookup[GRID_CHECKBOX_SELECTION_FIELD]);
41
- }
42
- return columnsState;
43
- }, [apiRef, classes, props.checkboxSelection]);
44
- useGridRegisterPipeProcessor(apiRef, 'hydrateColumns', updateSelectionColumn);
45
- };
@@ -1,8 +0,0 @@
1
- import { GridSignature } from '../../utils/useGridApiEventHandler';
2
- export function isMultipleRowSelectionEnabled(props) {
3
- if (props.signature === GridSignature.DataGrid) {
4
- // DataGrid Community has multiple row selection enabled only if checkbox selection is enabled.
5
- return props.checkboxSelection && props.disableMultipleRowSelection !== true;
6
- }
7
- return !props.disableMultipleRowSelection;
8
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,3 +0,0 @@
1
- export var gridRowsMetaSelector = function gridRowsMetaSelector(state) {
2
- return state.rowsMeta;
3
- };
@@ -1 +0,0 @@
1
- export {};
@@ -1,90 +0,0 @@
1
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import { createSelector, createSelectorMemoized } from '../../../utils/createSelector';
3
- var gridRowsStateSelector = function gridRowsStateSelector(state) {
4
- return state.rows;
5
- };
6
- export var gridRowCountSelector = createSelector(gridRowsStateSelector, function (rows) {
7
- return rows.totalRowCount;
8
- });
9
- export var gridRowsLoadingSelector = createSelector(gridRowsStateSelector, function (rows) {
10
- return rows.loading;
11
- });
12
- export var gridTopLevelRowCountSelector = createSelector(gridRowsStateSelector, function (rows) {
13
- return rows.totalTopLevelRowCount;
14
- });
15
-
16
- // TODO rows v6: Rename
17
- export var gridRowsLookupSelector = createSelector(gridRowsStateSelector, function (rows) {
18
- return rows.dataRowIdToModelLookup;
19
- });
20
- export var gridRowsDataRowIdToIdLookupSelector = createSelector(gridRowsStateSelector, function (rows) {
21
- return rows.dataRowIdToIdLookup;
22
- });
23
- export var gridRowTreeSelector = createSelector(gridRowsStateSelector, function (rows) {
24
- return rows.tree;
25
- });
26
- export var gridRowGroupingNameSelector = createSelector(gridRowsStateSelector, function (rows) {
27
- return rows.groupingName;
28
- });
29
- export var gridRowTreeDepthsSelector = createSelector(gridRowsStateSelector, function (rows) {
30
- return rows.treeDepths;
31
- });
32
- export var gridRowMaximumTreeDepthSelector = createSelectorMemoized(gridRowsStateSelector, function (rows) {
33
- var entries = Object.entries(rows.treeDepths);
34
- if (entries.length === 0) {
35
- return 1;
36
- }
37
- return entries.filter(function (_ref) {
38
- var _ref2 = _slicedToArray(_ref, 2),
39
- nodeCount = _ref2[1];
40
- return nodeCount > 0;
41
- }).map(function (_ref3) {
42
- var _ref4 = _slicedToArray(_ref3, 1),
43
- depth = _ref4[0];
44
- return Number(depth);
45
- }).sort(function (a, b) {
46
- return b - a;
47
- })[0] + 1;
48
- });
49
- export var gridDataRowIdsSelector = createSelector(gridRowsStateSelector, function (rows) {
50
- return rows.dataRowIds;
51
- });
52
-
53
- /**
54
- * @ignore - do not document.
55
- */
56
- export var gridAdditionalRowGroupsSelector = createSelector(gridRowsStateSelector, function (rows) {
57
- return rows == null ? void 0 : rows.additionalRowGroups;
58
- });
59
-
60
- /**
61
- * @ignore - do not document.
62
- */
63
- export var gridPinnedRowsSelector = createSelectorMemoized(gridAdditionalRowGroupsSelector, function (additionalRowGroups) {
64
- var _rawPinnedRows$bottom, _rawPinnedRows$bottom2, _rawPinnedRows$top$ma, _rawPinnedRows$top;
65
- var rawPinnedRows = additionalRowGroups == null ? void 0 : additionalRowGroups.pinnedRows;
66
- return {
67
- bottom: (_rawPinnedRows$bottom = rawPinnedRows == null || (_rawPinnedRows$bottom2 = rawPinnedRows.bottom) == null ? void 0 : _rawPinnedRows$bottom2.map(function (rowEntry) {
68
- var _rowEntry$model;
69
- return {
70
- id: rowEntry.id,
71
- model: (_rowEntry$model = rowEntry.model) != null ? _rowEntry$model : {}
72
- };
73
- })) != null ? _rawPinnedRows$bottom : [],
74
- top: (_rawPinnedRows$top$ma = rawPinnedRows == null || (_rawPinnedRows$top = rawPinnedRows.top) == null ? void 0 : _rawPinnedRows$top.map(function (rowEntry) {
75
- var _rowEntry$model2;
76
- return {
77
- id: rowEntry.id,
78
- model: (_rowEntry$model2 = rowEntry.model) != null ? _rowEntry$model2 : {}
79
- };
80
- })) != null ? _rawPinnedRows$top$ma : []
81
- };
82
- });
83
-
84
- /**
85
- * @ignore - do not document.
86
- */
87
- export var gridPinnedRowsCountSelector = createSelector(gridPinnedRowsSelector, function (pinnedRows) {
88
- var _pinnedRows$top, _pinnedRows$bottom;
89
- return ((pinnedRows == null || (_pinnedRows$top = pinnedRows.top) == null ? void 0 : _pinnedRows$top.length) || 0) + ((pinnedRows == null || (_pinnedRows$bottom = pinnedRows.bottom) == null ? void 0 : _pinnedRows$bottom.length) || 0);
90
- });