@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,155 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/esm/createClass";
3
- import { GRID_CHECKBOX_SELECTION_COL_DEF } from '../../../../colDef';
4
- import { buildWarning } from '../../../../utils/warning';
5
- function sanitizeCellValue(value, delimiterCharacter) {
6
- if (typeof value === 'string') {
7
- // Make sure value containing delimiter or line break won't be split into multiple rows
8
- if ([delimiterCharacter, '\n', '\r', '"'].some(function (delimiter) {
9
- return value.includes(delimiter);
10
- })) {
11
- return "\"".concat(value.replace(/"/g, '""'), "\"");
12
- }
13
- return value;
14
- }
15
- return value;
16
- }
17
- export var serializeCellValue = function serializeCellValue(cellParams, options) {
18
- var delimiterCharacter = options.delimiterCharacter,
19
- ignoreValueFormatter = options.ignoreValueFormatter;
20
- var value;
21
- if (ignoreValueFormatter) {
22
- var _cellParams$value2;
23
- var columnType = cellParams.colDef.type;
24
- if (columnType === 'number') {
25
- value = String(cellParams.value);
26
- } else if (columnType === 'date' || columnType === 'dateTime') {
27
- var _cellParams$value;
28
- value = (_cellParams$value = cellParams.value) == null ? void 0 : _cellParams$value.toISOString();
29
- } else if (typeof ((_cellParams$value2 = cellParams.value) == null ? void 0 : _cellParams$value2.toString) === 'function') {
30
- value = cellParams.value.toString();
31
- } else {
32
- value = cellParams.value;
33
- }
34
- } else {
35
- value = cellParams.formattedValue;
36
- }
37
- return sanitizeCellValue(value, delimiterCharacter);
38
- };
39
- var objectFormattedValueWarning = buildWarning(['MUI X: When the value of a field is an object or a `renderCell` is provided, the CSV export might not display the value correctly.', 'You can provide a `valueFormatter` with a string representation to be used.']);
40
- var CSVRow = /*#__PURE__*/function () {
41
- function CSVRow(options) {
42
- _classCallCheck(this, CSVRow);
43
- this.options = void 0;
44
- this.rowString = '';
45
- this.isEmpty = true;
46
- this.options = options;
47
- }
48
- _createClass(CSVRow, [{
49
- key: "addValue",
50
- value: function addValue(value) {
51
- if (!this.isEmpty) {
52
- this.rowString += this.options.delimiterCharacter;
53
- }
54
- if (value === null || value === undefined) {
55
- this.rowString += '';
56
- } else if (typeof this.options.sanitizeCellValue === 'function') {
57
- this.rowString += this.options.sanitizeCellValue(value, this.options.delimiterCharacter);
58
- } else {
59
- this.rowString += value;
60
- }
61
- this.isEmpty = false;
62
- }
63
- }, {
64
- key: "getRowString",
65
- value: function getRowString() {
66
- return this.rowString;
67
- }
68
- }]);
69
- return CSVRow;
70
- }();
71
- var serializeRow = function serializeRow(_ref) {
72
- var id = _ref.id,
73
- columns = _ref.columns,
74
- getCellParams = _ref.getCellParams,
75
- delimiterCharacter = _ref.delimiterCharacter,
76
- ignoreValueFormatter = _ref.ignoreValueFormatter;
77
- var row = new CSVRow({
78
- delimiterCharacter: delimiterCharacter
79
- });
80
- columns.forEach(function (column) {
81
- var cellParams = getCellParams(id, column.field);
82
- if (process.env.NODE_ENV !== 'production') {
83
- if (String(cellParams.formattedValue) === '[object Object]') {
84
- objectFormattedValueWarning();
85
- }
86
- }
87
- row.addValue(serializeCellValue(cellParams, {
88
- delimiterCharacter: delimiterCharacter,
89
- ignoreValueFormatter: ignoreValueFormatter
90
- }));
91
- });
92
- return row.getRowString();
93
- };
94
- export function buildCSV(options) {
95
- var columns = options.columns,
96
- rowIds = options.rowIds,
97
- delimiterCharacter = options.delimiterCharacter,
98
- includeHeaders = options.includeHeaders,
99
- includeColumnGroupsHeaders = options.includeColumnGroupsHeaders,
100
- ignoreValueFormatter = options.ignoreValueFormatter,
101
- apiRef = options.apiRef;
102
- var CSVBody = rowIds.reduce(function (acc, id) {
103
- return "".concat(acc).concat(serializeRow({
104
- id: id,
105
- columns: columns,
106
- getCellParams: apiRef.current.getCellParams,
107
- delimiterCharacter: delimiterCharacter,
108
- ignoreValueFormatter: ignoreValueFormatter
109
- }), "\r\n");
110
- }, '').trim();
111
- if (!includeHeaders) {
112
- return CSVBody;
113
- }
114
- var filteredColumns = columns.filter(function (column) {
115
- return column.field !== GRID_CHECKBOX_SELECTION_COL_DEF.field;
116
- });
117
- var headerRows = [];
118
- if (includeColumnGroupsHeaders) {
119
- var columnGroupLookup = apiRef.current.getAllGroupDetails();
120
- var maxColumnGroupsDepth = 0;
121
- var columnGroupPathsLookup = filteredColumns.reduce(function (acc, column) {
122
- var columnGroupPath = apiRef.current.getColumnGroupPath(column.field);
123
- acc[column.field] = columnGroupPath;
124
- maxColumnGroupsDepth = Math.max(maxColumnGroupsDepth, columnGroupPath.length);
125
- return acc;
126
- }, {});
127
- var _loop = function _loop(i) {
128
- var headerGroupRow = new CSVRow({
129
- delimiterCharacter: delimiterCharacter,
130
- sanitizeCellValue: sanitizeCellValue
131
- });
132
- headerRows.push(headerGroupRow);
133
- filteredColumns.forEach(function (column) {
134
- var columnGroupId = (columnGroupPathsLookup[column.field] || [])[i];
135
- var columnGroup = columnGroupLookup[columnGroupId];
136
- headerGroupRow.addValue(columnGroup ? columnGroup.headerName || columnGroup.groupId : '');
137
- });
138
- };
139
- for (var i = 0; i < maxColumnGroupsDepth; i += 1) {
140
- _loop(i);
141
- }
142
- }
143
- var mainHeaderRow = new CSVRow({
144
- delimiterCharacter: delimiterCharacter,
145
- sanitizeCellValue: sanitizeCellValue
146
- });
147
- filteredColumns.forEach(function (column) {
148
- mainHeaderRow.addValue(column.headerName || column.field);
149
- });
150
- headerRows.push(mainHeaderRow);
151
- var CSVHead = "".concat(headerRows.map(function (row) {
152
- return row.getRowString();
153
- }).join('\r\n'), "\r\n");
154
- return "".concat(CSVHead).concat(CSVBody).trim();
155
- }
@@ -1,75 +0,0 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
- import _typeof from "@babel/runtime/helpers/esm/typeof";
3
- import * as React from 'react';
4
- import { useGridApiMethod } from '../../utils/useGridApiMethod';
5
- import { useGridLogger } from '../../utils/useGridLogger';
6
- import { exportAs } from '../../../utils/exportAs';
7
- import { buildCSV } from './serializers/csvSerializer';
8
- import { getColumnsToExport, defaultGetRowsToExport } from './utils';
9
- import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
10
- import { GridCsvExportMenuItem } from '../../../components/toolbar/GridToolbarExport';
11
- import { jsx as _jsx } from "react/jsx-runtime";
12
- /**
13
- * @requires useGridColumns (state)
14
- * @requires useGridFilter (state)
15
- * @requires useGridSorting (state)
16
- * @requires useGridSelection (state)
17
- * @requires useGridParamsApi (method)
18
- */
19
- export var useGridCsvExport = function useGridCsvExport(apiRef, props) {
20
- var logger = useGridLogger(apiRef, 'useGridCsvExport');
21
- var ignoreValueFormatterProp = props.ignoreValueFormatterDuringExport;
22
- var ignoreValueFormatter = (_typeof(ignoreValueFormatterProp) === 'object' ? ignoreValueFormatterProp == null ? void 0 : ignoreValueFormatterProp.csvExport : ignoreValueFormatterProp) || false;
23
- var getDataAsCsv = React.useCallback(function () {
24
- var _options$getRowsToExp, _options$includeHeade, _options$includeColum;
25
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
26
- logger.debug("Get data as CSV");
27
- var exportedColumns = getColumnsToExport({
28
- apiRef: apiRef,
29
- options: options
30
- });
31
- var getRowsToExport = (_options$getRowsToExp = options.getRowsToExport) != null ? _options$getRowsToExp : defaultGetRowsToExport;
32
- var exportedRowIds = getRowsToExport({
33
- apiRef: apiRef
34
- });
35
- return buildCSV({
36
- columns: exportedColumns,
37
- rowIds: exportedRowIds,
38
- delimiterCharacter: options.delimiter || ',',
39
- includeHeaders: (_options$includeHeade = options.includeHeaders) != null ? _options$includeHeade : true,
40
- includeColumnGroupsHeaders: (_options$includeColum = options.includeColumnGroupsHeaders) != null ? _options$includeColum : true,
41
- ignoreValueFormatter: ignoreValueFormatter,
42
- apiRef: apiRef
43
- });
44
- }, [logger, apiRef, ignoreValueFormatter]);
45
- var exportDataAsCsv = React.useCallback(function (options) {
46
- logger.debug("Export data as CSV");
47
- var csv = getDataAsCsv(options);
48
- var blob = new Blob([options != null && options.utf8WithBom ? new Uint8Array([0xef, 0xbb, 0xbf]) : '', csv], {
49
- type: 'text/csv'
50
- });
51
- exportAs(blob, 'csv', options == null ? void 0 : options.fileName);
52
- }, [logger, getDataAsCsv]);
53
- var csvExportApi = {
54
- getDataAsCsv: getDataAsCsv,
55
- exportDataAsCsv: exportDataAsCsv
56
- };
57
- useGridApiMethod(apiRef, csvExportApi, 'public');
58
-
59
- /**
60
- * PRE-PROCESSING
61
- */
62
- var addExportMenuButtons = React.useCallback(function (initialValue, options) {
63
- var _options$csvOptions;
64
- if ((_options$csvOptions = options.csvOptions) != null && _options$csvOptions.disableToolbarButton) {
65
- return initialValue;
66
- }
67
- return [].concat(_toConsumableArray(initialValue), [{
68
- component: /*#__PURE__*/_jsx(GridCsvExportMenuItem, {
69
- options: options.csvOptions
70
- }),
71
- componentName: 'csvExport'
72
- }]);
73
- }, []);
74
- useGridRegisterPipeProcessor(apiRef, 'exportMenu', addExportMenuButtons);
75
- };
@@ -1,313 +0,0 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
2
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
3
- import _extends from "@babel/runtime/helpers/esm/extends";
4
- import _regeneratorRuntime from "@babel/runtime/regenerator";
5
- import * as React from 'react';
6
- import { unstable_ownerDocument as ownerDocument } from '@mui/utils';
7
- import { useGridLogger } from '../../utils/useGridLogger';
8
- import { gridExpandedRowCountSelector } from '../filter/gridFilterSelector';
9
- import { gridColumnDefinitionsSelector, gridColumnVisibilityModelSelector } from '../columns/gridColumnsSelector';
10
- import { gridClasses } from '../../../constants/gridClasses';
11
- import { useGridApiMethod } from '../../utils/useGridApiMethod';
12
- import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
13
- import { defaultGetRowsToExport, getColumnsToExport } from './utils';
14
- import { mergeStateWithPaginationModel } from '../pagination/useGridPagination';
15
- import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
16
- import { GridPrintExportMenuItem } from '../../../components/toolbar/GridToolbarExport';
17
- import { getTotalHeaderHeight } from '../columns/gridColumnsUtils';
18
- import { GRID_CHECKBOX_SELECTION_COL_DEF } from '../../../colDef/gridCheckboxSelectionColDef';
19
- import { jsx as _jsx } from "react/jsx-runtime";
20
- function raf() {
21
- return new Promise(function (resolve) {
22
- requestAnimationFrame(function () {
23
- resolve();
24
- });
25
- });
26
- }
27
- function buildPrintWindow(title) {
28
- var iframeEl = document.createElement('iframe');
29
- iframeEl.style.position = 'absolute';
30
- iframeEl.style.width = '0px';
31
- iframeEl.style.height = '0px';
32
- iframeEl.title = title || document.title;
33
- return iframeEl;
34
- }
35
-
36
- /**
37
- * @requires useGridColumns (state)
38
- * @requires useGridFilter (state)
39
- * @requires useGridSorting (state)
40
- * @requires useGridParamsApi (method)
41
- */
42
- export var useGridPrintExport = function useGridPrintExport(apiRef, props) {
43
- var logger = useGridLogger(apiRef, 'useGridPrintExport');
44
- var doc = React.useRef(null);
45
- var previousGridState = React.useRef(null);
46
- var previousColumnVisibility = React.useRef({});
47
- var previousRows = React.useRef([]);
48
- React.useEffect(function () {
49
- doc.current = ownerDocument(apiRef.current.rootElementRef.current);
50
- }, [apiRef]);
51
-
52
- // Returns a promise because updateColumns triggers state update and
53
- // the new state needs to be in place before the grid can be sized correctly
54
- var updateGridColumnsForPrint = React.useCallback(function (fields, allColumns, includeCheckboxes) {
55
- return new Promise(function (resolve) {
56
- var exportedColumnFields = getColumnsToExport({
57
- apiRef: apiRef,
58
- options: {
59
- fields: fields,
60
- allColumns: allColumns
61
- }
62
- }).map(function (column) {
63
- return column.field;
64
- });
65
- var columns = gridColumnDefinitionsSelector(apiRef);
66
- var newColumnVisibilityModel = {};
67
- columns.forEach(function (column) {
68
- newColumnVisibilityModel[column.field] = exportedColumnFields.includes(column.field);
69
- });
70
- if (includeCheckboxes) {
71
- newColumnVisibilityModel[GRID_CHECKBOX_SELECTION_COL_DEF.field] = true;
72
- }
73
- apiRef.current.setColumnVisibilityModel(newColumnVisibilityModel);
74
- resolve();
75
- });
76
- }, [apiRef]);
77
- var updateGridRowsForPrint = React.useCallback(function (getRowsToExport) {
78
- var rowsToExportIds = getRowsToExport({
79
- apiRef: apiRef
80
- });
81
- var newRows = rowsToExportIds.map(function (id) {
82
- return apiRef.current.getRow(id);
83
- });
84
- apiRef.current.setRows(newRows);
85
- }, [apiRef]);
86
- var handlePrintWindowLoad = React.useCallback(function (printWindow, options) {
87
- var _querySelector, _querySelector2;
88
- var normalizeOptions = _extends({
89
- copyStyles: true,
90
- hideToolbar: false,
91
- hideFooter: false,
92
- includeCheckboxes: false
93
- }, options);
94
- var printDoc = printWindow.contentDocument;
95
- if (!printDoc) {
96
- return;
97
- }
98
- var rowsMeta = gridRowsMetaSelector(apiRef.current.state);
99
- var gridRootElement = apiRef.current.rootElementRef.current;
100
- var gridClone = gridRootElement.cloneNode(true);
101
-
102
- // Allow to overflow to not hide the border of the last row
103
- var gridMain = gridClone.querySelector(".".concat(gridClasses.main));
104
- gridMain.style.overflow = 'visible';
105
-
106
- // See https://support.google.com/chrome/thread/191619088?hl=en&msgid=193009642
107
- gridClone.style.contain = 'size';
108
- var columnHeaders = gridClone.querySelector(".".concat(gridClasses.columnHeaders));
109
- var columnHeadersInner = columnHeaders.querySelector(".".concat(gridClasses.columnHeadersInner));
110
- columnHeadersInner.style.width = '100%';
111
- var gridToolbarElementHeight = ((_querySelector = gridRootElement.querySelector(".".concat(gridClasses.toolbarContainer))) == null ? void 0 : _querySelector.offsetHeight) || 0;
112
- var gridFooterElementHeight = ((_querySelector2 = gridRootElement.querySelector(".".concat(gridClasses.footerContainer))) == null ? void 0 : _querySelector2.offsetHeight) || 0;
113
- if (normalizeOptions.hideToolbar) {
114
- var _gridClone$querySelec;
115
- (_gridClone$querySelec = gridClone.querySelector(".".concat(gridClasses.toolbarContainer))) == null || _gridClone$querySelec.remove();
116
- gridToolbarElementHeight = 0;
117
- }
118
- if (normalizeOptions.hideFooter) {
119
- var _gridClone$querySelec2;
120
- (_gridClone$querySelec2 = gridClone.querySelector(".".concat(gridClasses.footerContainer))) == null || _gridClone$querySelec2.remove();
121
- gridFooterElementHeight = 0;
122
- }
123
-
124
- // Expand container height to accommodate all rows
125
- var computedTotalHeight = rowsMeta.currentPageTotalHeight + getTotalHeaderHeight(apiRef, props.columnHeaderHeight) + gridToolbarElementHeight + gridFooterElementHeight;
126
- gridClone.style.height = "".concat(computedTotalHeight, "px");
127
- // The height above does not include grid border width, so we need to exclude it
128
- gridClone.style.boxSizing = 'content-box';
129
-
130
- // the footer is always being placed at the bottom of the page as if all rows are exported
131
- // so if getRowsToExport is being used to only export a subset of rows then we need to
132
- // adjust the footer position to be correctly placed at the bottom of the grid
133
- var gridFooterElement = gridClone.querySelector(".".concat(gridClasses.footerContainer));
134
- gridFooterElement.style.position = 'absolute';
135
- gridFooterElement.style.width = '100%';
136
- gridFooterElement.style.top = "".concat(computedTotalHeight - gridFooterElementHeight, "px");
137
-
138
- // printDoc.body.appendChild(gridClone); should be enough but a clone isolation bug in Safari
139
- // prevents us to do it
140
- var container = document.createElement('div');
141
- container.appendChild(gridClone);
142
- printDoc.body.innerHTML = container.innerHTML;
143
- var defaultPageStyle = typeof normalizeOptions.pageStyle === 'function' ? normalizeOptions.pageStyle() : normalizeOptions.pageStyle;
144
- if (typeof defaultPageStyle === 'string') {
145
- // TODO custom styles should always win
146
- var styleElement = printDoc.createElement('style');
147
- styleElement.appendChild(printDoc.createTextNode(defaultPageStyle));
148
- printDoc.head.appendChild(styleElement);
149
- }
150
- if (normalizeOptions.bodyClassName) {
151
- var _printDoc$body$classL;
152
- (_printDoc$body$classL = printDoc.body.classList).add.apply(_printDoc$body$classL, _toConsumableArray(normalizeOptions.bodyClassName.split(' ')));
153
- }
154
- var stylesheetLoadPromises = [];
155
- if (normalizeOptions.copyStyles) {
156
- var rootCandidate = gridRootElement.getRootNode();
157
- var root = rootCandidate.constructor.name === 'ShadowRoot' ? rootCandidate : doc.current;
158
- var headStyleElements = root.querySelectorAll("style, link[rel='stylesheet']");
159
- var _loop = function _loop() {
160
- var node = headStyleElements[i];
161
- if (node.tagName === 'STYLE') {
162
- var newHeadStyleElements = printDoc.createElement(node.tagName);
163
- var sheet = node.sheet;
164
- if (sheet) {
165
- var styleCSS = '';
166
- // NOTE: for-of is not supported by IE
167
- for (var j = 0; j < sheet.cssRules.length; j += 1) {
168
- if (typeof sheet.cssRules[j].cssText === 'string') {
169
- styleCSS += "".concat(sheet.cssRules[j].cssText, "\r\n");
170
- }
171
- }
172
- newHeadStyleElements.appendChild(printDoc.createTextNode(styleCSS));
173
- printDoc.head.appendChild(newHeadStyleElements);
174
- }
175
- } else if (node.getAttribute('href')) {
176
- // If `href` tag is empty, avoid loading these links
177
-
178
- var _newHeadStyleElements = printDoc.createElement(node.tagName);
179
- for (var _j = 0; _j < node.attributes.length; _j += 1) {
180
- var attr = node.attributes[_j];
181
- if (attr) {
182
- _newHeadStyleElements.setAttribute(attr.nodeName, attr.nodeValue || '');
183
- }
184
- }
185
- stylesheetLoadPromises.push(new Promise(function (resolve) {
186
- _newHeadStyleElements.addEventListener('load', function () {
187
- return resolve();
188
- });
189
- }));
190
- printDoc.head.appendChild(_newHeadStyleElements);
191
- }
192
- };
193
- for (var i = 0; i < headStyleElements.length; i += 1) {
194
- _loop();
195
- }
196
- }
197
-
198
- // Trigger print
199
- if (process.env.NODE_ENV !== 'test') {
200
- // wait for remote stylesheets to load
201
- Promise.all(stylesheetLoadPromises).then(function () {
202
- printWindow.contentWindow.print();
203
- });
204
- }
205
- }, [apiRef, doc, props.columnHeaderHeight]);
206
- var handlePrintWindowAfterPrint = React.useCallback(function (printWindow) {
207
- var _previousGridState$cu;
208
- // Remove the print iframe
209
- doc.current.body.removeChild(printWindow);
210
-
211
- // Revert grid to previous state
212
- apiRef.current.restoreState(previousGridState.current || {});
213
- if (!((_previousGridState$cu = previousGridState.current) != null && (_previousGridState$cu = _previousGridState$cu.columns) != null && _previousGridState$cu.columnVisibilityModel)) {
214
- // if the apiRef.current.exportState(); did not exported the column visibility, we update it
215
- apiRef.current.setColumnVisibilityModel(previousColumnVisibility.current);
216
- }
217
- apiRef.current.unstable_setVirtualization(true);
218
- apiRef.current.setRows(previousRows.current);
219
-
220
- // Clear local state
221
- previousGridState.current = null;
222
- previousColumnVisibility.current = {};
223
- previousRows.current = [];
224
- }, [apiRef]);
225
- var exportDataAsPrint = React.useCallback( /*#__PURE__*/function () {
226
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(options) {
227
- var _options$getRowsToExp;
228
- var visibleRowCount, paginationModel, printWindow;
229
- return _regeneratorRuntime.wrap(function _callee$(_context) {
230
- while (1) switch (_context.prev = _context.next) {
231
- case 0:
232
- logger.debug("Export data as Print");
233
- if (apiRef.current.rootElementRef.current) {
234
- _context.next = 3;
235
- break;
236
- }
237
- throw new Error('MUI X: No grid root element available.');
238
- case 3:
239
- previousGridState.current = apiRef.current.exportState();
240
- // It appends that the visibility model is not exported, especially if columnVisibility is not controlled
241
- previousColumnVisibility.current = gridColumnVisibilityModelSelector(apiRef);
242
- previousRows.current = apiRef.current.getSortedRows();
243
- if (props.pagination) {
244
- visibleRowCount = gridExpandedRowCountSelector(apiRef);
245
- paginationModel = {
246
- page: 0,
247
- pageSize: visibleRowCount
248
- };
249
- apiRef.current.updateControlState('pagination',
250
- // Using signature `DataGridPro` to allow more than 100 rows in the print export
251
- mergeStateWithPaginationModel(visibleRowCount, 'DataGridPro', paginationModel));
252
- apiRef.current.forceUpdate();
253
- }
254
- _context.next = 9;
255
- return updateGridColumnsForPrint(options == null ? void 0 : options.fields, options == null ? void 0 : options.allColumns, options == null ? void 0 : options.includeCheckboxes);
256
- case 9:
257
- updateGridRowsForPrint((_options$getRowsToExp = options == null ? void 0 : options.getRowsToExport) != null ? _options$getRowsToExp : defaultGetRowsToExport);
258
- apiRef.current.unstable_setVirtualization(false);
259
- _context.next = 13;
260
- return raf();
261
- case 13:
262
- // wait for the state changes to take action
263
- printWindow = buildPrintWindow(options == null ? void 0 : options.fileName);
264
- if (process.env.NODE_ENV === 'test') {
265
- doc.current.body.appendChild(printWindow);
266
- // In test env, run the all pipeline without waiting for loading
267
- handlePrintWindowLoad(printWindow, options);
268
- handlePrintWindowAfterPrint(printWindow);
269
- } else {
270
- printWindow.onload = function () {
271
- handlePrintWindowLoad(printWindow, options);
272
- var mediaQueryList = printWindow.contentWindow.matchMedia('print');
273
- mediaQueryList.addEventListener('change', function (mql) {
274
- var isAfterPrint = mql.matches === false;
275
- if (isAfterPrint) {
276
- handlePrintWindowAfterPrint(printWindow);
277
- }
278
- });
279
- };
280
- doc.current.body.appendChild(printWindow);
281
- }
282
- case 15:
283
- case "end":
284
- return _context.stop();
285
- }
286
- }, _callee);
287
- }));
288
- return function (_x) {
289
- return _ref.apply(this, arguments);
290
- };
291
- }(), [props, logger, apiRef, handlePrintWindowLoad, handlePrintWindowAfterPrint, updateGridColumnsForPrint, updateGridRowsForPrint]);
292
- var printExportApi = {
293
- exportDataAsPrint: exportDataAsPrint
294
- };
295
- useGridApiMethod(apiRef, printExportApi, 'public');
296
-
297
- /**
298
- * PRE-PROCESSING
299
- */
300
- var addExportMenuButtons = React.useCallback(function (initialValue, options) {
301
- var _options$printOptions;
302
- if ((_options$printOptions = options.printOptions) != null && _options$printOptions.disableToolbarButton) {
303
- return initialValue;
304
- }
305
- return [].concat(_toConsumableArray(initialValue), [{
306
- component: /*#__PURE__*/_jsx(GridPrintExportMenuItem, {
307
- options: options.printOptions
308
- }),
309
- componentName: 'printExport'
310
- }]);
311
- }, []);
312
- useGridRegisterPipeProcessor(apiRef, 'exportMenu', addExportMenuButtons);
313
- };
@@ -1,49 +0,0 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
- import { gridColumnDefinitionsSelector, gridVisibleColumnDefinitionsSelector } from '../columns';
3
- import { gridFilteredSortedRowIdsSelector } from '../filter';
4
- import { gridPinnedRowsSelector, gridRowTreeSelector } from '../rows/gridRowsSelector';
5
- export var getColumnsToExport = function getColumnsToExport(_ref) {
6
- var apiRef = _ref.apiRef,
7
- options = _ref.options;
8
- var columns = gridColumnDefinitionsSelector(apiRef);
9
- if (options.fields) {
10
- return options.fields.reduce(function (currentColumns, field) {
11
- var column = columns.find(function (col) {
12
- return col.field === field;
13
- });
14
- if (column) {
15
- currentColumns.push(column);
16
- }
17
- return currentColumns;
18
- }, []);
19
- }
20
- var validColumns = options.allColumns ? columns : gridVisibleColumnDefinitionsSelector(apiRef);
21
- return validColumns.filter(function (column) {
22
- return !column.disableExport;
23
- });
24
- };
25
- export var defaultGetRowsToExport = function defaultGetRowsToExport(_ref2) {
26
- var _pinnedRows$top, _pinnedRows$bottom;
27
- var apiRef = _ref2.apiRef;
28
- var filteredSortedRowIds = gridFilteredSortedRowIdsSelector(apiRef);
29
- var rowTree = gridRowTreeSelector(apiRef);
30
- var selectedRows = apiRef.current.getSelectedRows();
31
- var bodyRows = filteredSortedRowIds.filter(function (id) {
32
- return rowTree[id].type !== 'footer';
33
- });
34
- var pinnedRows = gridPinnedRowsSelector(apiRef);
35
- var topPinnedRowsIds = (pinnedRows == null || (_pinnedRows$top = pinnedRows.top) == null ? void 0 : _pinnedRows$top.map(function (row) {
36
- return row.id;
37
- })) || [];
38
- var bottomPinnedRowsIds = (pinnedRows == null || (_pinnedRows$bottom = pinnedRows.bottom) == null ? void 0 : _pinnedRows$bottom.map(function (row) {
39
- return row.id;
40
- })) || [];
41
- bodyRows.unshift.apply(bodyRows, _toConsumableArray(topPinnedRowsIds));
42
- bodyRows.push.apply(bodyRows, _toConsumableArray(bottomPinnedRowsIds));
43
- if (selectedRows.size > 0) {
44
- return bodyRows.filter(function (id) {
45
- return selectedRows.has(id);
46
- });
47
- }
48
- return bodyRows;
49
- };