@mui/x-data-grid 8.0.0-alpha.12 → 8.0.0-alpha.14

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 (504) hide show
  1. package/CHANGELOG.md +430 -0
  2. package/DataGrid/DataGrid.js +31 -22
  3. package/DataGrid/useDataGridProps.js +1 -1
  4. package/colDef/gridActionsColDef.js +1 -1
  5. package/colDef/gridBooleanColDef.js +1 -1
  6. package/colDef/gridCheckboxSelectionColDef.js +2 -4
  7. package/components/GridFooter.js +1 -1
  8. package/components/GridHeader.js +1 -1
  9. package/components/GridPagination.js +5 -6
  10. package/components/GridRowCount.js +4 -5
  11. package/components/GridScrollArea.js +4 -3
  12. package/components/GridSelectedRowCount.js +5 -6
  13. package/components/GridShadowScrollArea.d.ts +8 -0
  14. package/components/GridShadowScrollArea.js +82 -0
  15. package/components/cell/GridEditInputCell.js +2 -3
  16. package/components/columnSelection/GridHeaderCheckbox.js +51 -17
  17. package/components/columnsManagement/GridColumnsManagement.js +60 -61
  18. package/components/columnsPanel/ColumnsPanelTrigger.d.ts +33 -0
  19. package/components/columnsPanel/ColumnsPanelTrigger.js +209 -0
  20. package/components/columnsPanel/index.d.ts +1 -0
  21. package/components/columnsPanel/index.js +16 -0
  22. package/components/containers/GridOverlay.js +6 -8
  23. package/components/containers/GridRoot.js +4 -2
  24. package/components/containers/GridRootStyles.d.ts +1 -2
  25. package/components/containers/GridRootStyles.js +77 -100
  26. package/components/containers/GridToolbarContainer.js +5 -6
  27. package/components/export/ExportCsv.d.ts +30 -0
  28. package/components/export/ExportCsv.js +196 -0
  29. package/components/export/ExportPrint.d.ts +30 -0
  30. package/components/export/ExportPrint.js +196 -0
  31. package/components/export/index.d.ts +2 -0
  32. package/components/export/index.js +27 -0
  33. package/components/filterPanel/FilterPanelTrigger.d.ts +37 -0
  34. package/components/filterPanel/FilterPanelTrigger.js +212 -0
  35. package/components/filterPanel/index.d.ts +1 -0
  36. package/components/filterPanel/index.js +16 -0
  37. package/components/index.d.ts +6 -1
  38. package/components/index.js +60 -0
  39. package/components/menu/GridMenu.js +7 -6
  40. package/components/menu/columnMenu/GridColumnHeaderMenu.js +4 -3
  41. package/components/panel/GridPanel.js +18 -20
  42. package/components/panel/GridPanelContent.js +6 -8
  43. package/components/panel/GridPanelFooter.js +5 -6
  44. package/components/panel/GridPanelHeader.js +4 -5
  45. package/components/panel/filterPanel/GridFilterForm.js +13 -20
  46. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.d.ts +2 -2
  47. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +10 -39
  48. package/components/panel/filterPanel/GridFilterInputMultipleValue.d.ts +2 -2
  49. package/components/panel/filterPanel/GridFilterInputMultipleValue.js +20 -45
  50. package/components/panel/filterPanel/GridFilterInputValue.js +3 -6
  51. package/components/quickFilter/QuickFilter.d.ts +41 -0
  52. package/components/quickFilter/QuickFilter.js +110 -0
  53. package/components/quickFilter/QuickFilterClear.d.ts +28 -0
  54. package/components/quickFilter/QuickFilterClear.js +161 -0
  55. package/components/quickFilter/QuickFilterContext.d.ts +13 -0
  56. package/components/quickFilter/QuickFilterContext.js +17 -0
  57. package/components/quickFilter/QuickFilterControl.d.ts +28 -0
  58. package/components/quickFilter/QuickFilterControl.js +104 -0
  59. package/components/quickFilter/index.d.ts +3 -0
  60. package/components/quickFilter/index.js +38 -0
  61. package/components/toolbar/GridToolbar.d.ts +1 -1
  62. package/components/toolbar/GridToolbar.js +2 -2
  63. package/components/toolbar/GridToolbarFilterButton.js +5 -6
  64. package/components/toolbar/GridToolbarQuickFilter.js +57 -97
  65. package/components/toolbarV8/GridToolbar.d.ts +11 -0
  66. package/components/toolbarV8/GridToolbar.js +142 -0
  67. package/components/toolbarV8/Toolbar.d.ts +32 -0
  68. package/components/toolbarV8/Toolbar.js +132 -0
  69. package/components/toolbarV8/ToolbarButton.d.ts +23 -0
  70. package/components/toolbarV8/ToolbarButton.js +179 -0
  71. package/components/toolbarV8/ToolbarContext.d.ts +9 -0
  72. package/components/toolbarV8/ToolbarContext.js +17 -0
  73. package/components/toolbarV8/index.d.ts +2 -0
  74. package/components/toolbarV8/index.js +27 -0
  75. package/components/virtualization/GridVirtualScrollbar.js +15 -6
  76. package/components/virtualization/GridVirtualScrollerFiller.js +2 -1
  77. package/constants/cssVariables.d.ts +294 -0
  78. package/constants/cssVariables.js +168 -0
  79. package/constants/dataGridPropsDefaultValues.js +1 -0
  80. package/constants/defaultGridSlotsComponents.js +2 -1
  81. package/constants/gridClasses.d.ts +17 -0
  82. package/constants/gridClasses.js +1 -1
  83. package/context/GridContextProvider.js +4 -1
  84. package/esm/DataGrid/DataGrid.js +31 -22
  85. package/esm/DataGrid/useDataGridProps.js +1 -1
  86. package/esm/colDef/gridActionsColDef.js +1 -1
  87. package/esm/colDef/gridBooleanColDef.js +1 -1
  88. package/esm/colDef/gridCheckboxSelectionColDef.js +2 -4
  89. package/esm/components/GridFooter.js +2 -2
  90. package/esm/components/GridHeader.js +1 -1
  91. package/esm/components/GridPagination.js +5 -6
  92. package/esm/components/GridRowCount.js +4 -5
  93. package/esm/components/GridScrollArea.js +2 -1
  94. package/esm/components/GridSelectedRowCount.js +5 -6
  95. package/esm/components/GridShadowScrollArea.d.ts +8 -0
  96. package/esm/components/GridShadowScrollArea.js +74 -0
  97. package/esm/components/cell/GridEditInputCell.js +2 -3
  98. package/esm/components/columnSelection/GridHeaderCheckbox.js +51 -17
  99. package/esm/components/columnsManagement/GridColumnsManagement.js +61 -62
  100. package/esm/components/columnsPanel/ColumnsPanelTrigger.d.ts +33 -0
  101. package/esm/components/columnsPanel/ColumnsPanelTrigger.js +202 -0
  102. package/esm/components/columnsPanel/index.d.ts +1 -0
  103. package/esm/components/columnsPanel/index.js +1 -0
  104. package/esm/components/containers/GridOverlay.js +6 -8
  105. package/esm/components/containers/GridRoot.js +4 -2
  106. package/esm/components/containers/GridRootStyles.d.ts +1 -2
  107. package/esm/components/containers/GridRootStyles.js +78 -101
  108. package/esm/components/containers/GridToolbarContainer.js +5 -6
  109. package/esm/components/export/ExportCsv.d.ts +30 -0
  110. package/esm/components/export/ExportCsv.js +189 -0
  111. package/esm/components/export/ExportPrint.d.ts +30 -0
  112. package/esm/components/export/ExportPrint.js +189 -0
  113. package/esm/components/export/index.d.ts +2 -0
  114. package/esm/components/export/index.js +2 -0
  115. package/esm/components/filterPanel/FilterPanelTrigger.d.ts +37 -0
  116. package/esm/components/filterPanel/FilterPanelTrigger.js +205 -0
  117. package/esm/components/filterPanel/index.d.ts +1 -0
  118. package/esm/components/filterPanel/index.js +1 -0
  119. package/esm/components/index.d.ts +6 -1
  120. package/esm/components/index.js +6 -1
  121. package/esm/components/menu/GridMenu.js +7 -6
  122. package/esm/components/menu/columnMenu/GridColumnHeaderMenu.js +2 -1
  123. package/esm/components/panel/GridPanel.js +18 -20
  124. package/esm/components/panel/GridPanelContent.js +6 -8
  125. package/esm/components/panel/GridPanelFooter.js +5 -6
  126. package/esm/components/panel/GridPanelHeader.js +4 -5
  127. package/esm/components/panel/filterPanel/GridFilterForm.js +13 -20
  128. package/esm/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.d.ts +2 -2
  129. package/esm/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +10 -39
  130. package/esm/components/panel/filterPanel/GridFilterInputMultipleValue.d.ts +2 -2
  131. package/esm/components/panel/filterPanel/GridFilterInputMultipleValue.js +19 -44
  132. package/esm/components/panel/filterPanel/GridFilterInputValue.js +3 -6
  133. package/esm/components/quickFilter/QuickFilter.d.ts +41 -0
  134. package/esm/components/quickFilter/QuickFilter.js +103 -0
  135. package/esm/components/quickFilter/QuickFilterClear.d.ts +28 -0
  136. package/esm/components/quickFilter/QuickFilterClear.js +154 -0
  137. package/esm/components/quickFilter/QuickFilterContext.d.ts +13 -0
  138. package/esm/components/quickFilter/QuickFilterContext.js +9 -0
  139. package/esm/components/quickFilter/QuickFilterControl.d.ts +28 -0
  140. package/esm/components/quickFilter/QuickFilterControl.js +97 -0
  141. package/esm/components/quickFilter/index.d.ts +3 -0
  142. package/esm/components/quickFilter/index.js +3 -0
  143. package/esm/components/toolbar/GridToolbar.d.ts +1 -1
  144. package/esm/components/toolbar/GridToolbar.js +2 -2
  145. package/esm/components/toolbar/GridToolbarFilterButton.js +5 -6
  146. package/esm/components/toolbar/GridToolbarQuickFilter.js +59 -97
  147. package/esm/components/toolbarV8/GridToolbar.d.ts +11 -0
  148. package/esm/components/toolbarV8/GridToolbar.js +135 -0
  149. package/esm/components/toolbarV8/Toolbar.d.ts +32 -0
  150. package/esm/components/toolbarV8/Toolbar.js +125 -0
  151. package/esm/components/toolbarV8/ToolbarButton.d.ts +23 -0
  152. package/esm/components/toolbarV8/ToolbarButton.js +172 -0
  153. package/esm/components/toolbarV8/ToolbarContext.d.ts +9 -0
  154. package/esm/components/toolbarV8/ToolbarContext.js +9 -0
  155. package/esm/components/toolbarV8/index.d.ts +2 -0
  156. package/esm/components/toolbarV8/index.js +2 -0
  157. package/esm/components/virtualization/GridVirtualScrollbar.js +10 -2
  158. package/esm/components/virtualization/GridVirtualScrollerFiller.js +2 -1
  159. package/esm/constants/cssVariables.d.ts +294 -0
  160. package/esm/constants/cssVariables.js +161 -0
  161. package/esm/constants/dataGridPropsDefaultValues.js +1 -0
  162. package/esm/constants/defaultGridSlotsComponents.js +2 -1
  163. package/esm/constants/gridClasses.d.ts +17 -0
  164. package/esm/constants/gridClasses.js +1 -1
  165. package/esm/context/GridContextProvider.js +4 -1
  166. package/esm/hooks/features/clipboard/useGridClipboard.js +3 -2
  167. package/esm/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -2
  168. package/esm/hooks/features/columnResize/useGridColumnResize.js +2 -1
  169. package/esm/hooks/features/columns/gridColumnsInterfaces.d.ts +1 -0
  170. package/esm/hooks/features/columns/gridColumnsSelector.d.ts +7 -0
  171. package/esm/hooks/features/columns/gridColumnsSelector.js +8 -0
  172. package/esm/hooks/features/columns/gridColumnsUtils.d.ts +3 -1
  173. package/esm/hooks/features/columns/gridColumnsUtils.js +6 -3
  174. package/esm/hooks/features/columns/index.d.ts +1 -1
  175. package/esm/hooks/features/columns/index.js +1 -1
  176. package/esm/hooks/features/columns/useGridColumns.js +4 -2
  177. package/esm/hooks/features/dataSource/gridDataSourceError.d.ts +31 -0
  178. package/esm/hooks/features/dataSource/gridDataSourceError.js +32 -0
  179. package/esm/hooks/features/dataSource/index.d.ts +2 -0
  180. package/esm/hooks/features/dataSource/index.js +2 -0
  181. package/esm/hooks/features/dataSource/models.d.ts +1 -1
  182. package/esm/hooks/features/dataSource/useGridDataSourceBase.d.ts +1 -1
  183. package/esm/hooks/features/dataSource/useGridDataSourceBase.js +27 -17
  184. package/esm/hooks/features/dimensions/useGridDimensions.js +11 -10
  185. package/esm/hooks/features/editing/useGridCellEditing.js +2 -1
  186. package/esm/hooks/features/editing/useGridRowEditing.js +2 -1
  187. package/esm/hooks/features/export/utils.js +4 -2
  188. package/esm/hooks/features/focus/useGridFocus.js +3 -2
  189. package/esm/hooks/features/index.d.ts +1 -1
  190. package/esm/hooks/features/index.js +1 -1
  191. package/esm/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +3 -3
  192. package/esm/hooks/features/rowSelection/gridRowSelectionSelector.js +27 -7
  193. package/esm/hooks/features/rowSelection/useGridRowSelection.js +148 -81
  194. package/esm/hooks/features/rowSelection/utils.d.ts +2 -2
  195. package/esm/hooks/features/rowSelection/utils.js +11 -11
  196. package/esm/hooks/features/rows/gridRowsInterfaces.d.ts +1 -1
  197. package/esm/hooks/features/rows/gridRowsUtils.d.ts +2 -1
  198. package/esm/hooks/features/rows/gridRowsUtils.js +8 -0
  199. package/esm/hooks/features/rows/useGridParamsApi.js +2 -8
  200. package/esm/hooks/features/rows/useGridRowAriaAttributes.js +2 -4
  201. package/esm/hooks/features/rows/useGridRows.d.ts +2 -2
  202. package/esm/hooks/features/rows/useGridRows.js +7 -7
  203. package/esm/hooks/features/rows/useGridRowsMeta.js +8 -0
  204. package/esm/hooks/features/virtualization/useGridVirtualScroller.d.ts +0 -2
  205. package/esm/hooks/features/virtualization/useGridVirtualScroller.js +5 -11
  206. package/esm/hooks/utils/index.d.ts +2 -1
  207. package/esm/hooks/utils/useGridComponentRenderer.d.ts +12 -0
  208. package/esm/hooks/utils/useGridComponentRenderer.js +36 -0
  209. package/esm/hooks/utils/useGridSelector.js +4 -1
  210. package/esm/hooks/utils/useIsSSR.js +4 -1
  211. package/esm/index.js +1 -1
  212. package/esm/internals/demo/TailwindDemoContainer.d.ts +11 -0
  213. package/esm/internals/demo/TailwindDemoContainer.js +55 -0
  214. package/esm/internals/demo/index.d.ts +1 -0
  215. package/esm/internals/demo/index.js +1 -0
  216. package/esm/internals/index.d.ts +6 -1
  217. package/esm/internals/index.js +5 -1
  218. package/esm/internals/utils/propValidation.js +1 -1
  219. package/esm/locales/bnBD.d.ts +2 -0
  220. package/esm/locales/bnBD.js +167 -0
  221. package/esm/locales/deDE.js +3 -5
  222. package/esm/locales/huHU.js +10 -13
  223. package/esm/locales/index.d.ts +1 -0
  224. package/esm/locales/index.js +1 -0
  225. package/esm/locales/ruRU.js +17 -21
  226. package/esm/material/icons/index.d.ts +3 -3
  227. package/esm/material/icons/index.js +6 -6
  228. package/esm/material/index.d.ts +1 -0
  229. package/esm/material/index.js +167 -52
  230. package/esm/material/variables.d.ts +5 -0
  231. package/esm/material/variables.js +89 -0
  232. package/esm/models/api/gridRowSelectionApi.d.ts +4 -2
  233. package/esm/models/api/gridSortApi.d.ts +1 -1
  234. package/esm/models/configuration/gridConfiguration.d.ts +7 -1
  235. package/esm/models/gridBaseSlots.d.ts +61 -7
  236. package/esm/models/gridDataSource.d.ts +9 -4
  237. package/esm/models/gridIconSlotsComponent.d.ts +1 -1
  238. package/esm/models/gridRowSelectionManager.d.ts +9 -0
  239. package/esm/models/gridRowSelectionManager.js +36 -0
  240. package/esm/models/gridRowSelectionModel.d.ts +4 -2
  241. package/esm/models/gridSlotsComponent.d.ts +7 -28
  242. package/esm/models/gridSlotsComponentsProps.d.ts +3 -11
  243. package/esm/models/gridSortModel.d.ts +1 -1
  244. package/esm/models/index.d.ts +2 -1
  245. package/esm/models/index.js +2 -3
  246. package/esm/models/props/DataGridProps.d.ts +22 -17
  247. package/esm/utils/css/context.d.ts +14 -0
  248. package/esm/utils/css/context.js +54 -0
  249. package/esm/utils/index.d.ts +2 -1
  250. package/esm/utils/index.js +1 -1
  251. package/hooks/features/clipboard/useGridClipboard.js +3 -2
  252. package/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -2
  253. package/hooks/features/columnResize/useGridColumnResize.js +28 -27
  254. package/hooks/features/columns/gridColumnsInterfaces.d.ts +1 -0
  255. package/hooks/features/columns/gridColumnsSelector.d.ts +7 -0
  256. package/hooks/features/columns/gridColumnsSelector.js +9 -1
  257. package/hooks/features/columns/gridColumnsUtils.d.ts +3 -1
  258. package/hooks/features/columns/gridColumnsUtils.js +6 -3
  259. package/hooks/features/columns/index.d.ts +1 -1
  260. package/hooks/features/columns/index.js +94 -10
  261. package/hooks/features/columns/useGridColumns.js +4 -2
  262. package/hooks/features/dataSource/gridDataSourceError.d.ts +31 -0
  263. package/hooks/features/dataSource/gridDataSourceError.js +40 -0
  264. package/hooks/features/dataSource/index.d.ts +2 -0
  265. package/hooks/features/dataSource/index.js +25 -0
  266. package/hooks/features/dataSource/models.d.ts +1 -1
  267. package/hooks/features/dataSource/useGridDataSourceBase.d.ts +1 -1
  268. package/hooks/features/dataSource/useGridDataSourceBase.js +27 -17
  269. package/hooks/features/dimensions/useGridDimensions.js +19 -18
  270. package/hooks/features/editing/useGridCellEditing.js +10 -9
  271. package/hooks/features/editing/useGridRowEditing.js +11 -10
  272. package/hooks/features/export/utils.js +4 -2
  273. package/hooks/features/focus/useGridFocus.js +8 -7
  274. package/hooks/features/index.d.ts +1 -1
  275. package/hooks/features/index.js +11 -28
  276. package/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +3 -3
  277. package/hooks/features/rowSelection/gridRowSelectionSelector.js +27 -7
  278. package/hooks/features/rowSelection/useGridRowSelection.js +146 -79
  279. package/hooks/features/rowSelection/utils.d.ts +2 -2
  280. package/hooks/features/rowSelection/utils.js +10 -10
  281. package/hooks/features/rows/gridRowsInterfaces.d.ts +1 -1
  282. package/hooks/features/rows/gridRowsUtils.d.ts +2 -1
  283. package/hooks/features/rows/gridRowsUtils.js +10 -1
  284. package/hooks/features/rows/useGridParamsApi.js +2 -8
  285. package/hooks/features/rows/useGridRowAriaAttributes.js +2 -4
  286. package/hooks/features/rows/useGridRows.d.ts +2 -2
  287. package/hooks/features/rows/useGridRows.js +7 -7
  288. package/hooks/features/rows/useGridRowsMeta.js +8 -0
  289. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +0 -2
  290. package/hooks/features/virtualization/useGridVirtualScroller.js +21 -27
  291. package/hooks/utils/index.d.ts +2 -1
  292. package/hooks/utils/useGridComponentRenderer.d.ts +12 -0
  293. package/hooks/utils/useGridComponentRenderer.js +44 -0
  294. package/hooks/utils/useGridSelector.js +6 -2
  295. package/hooks/utils/useIsSSR.js +6 -2
  296. package/index.js +1 -1
  297. package/internals/demo/TailwindDemoContainer.d.ts +11 -0
  298. package/internals/demo/TailwindDemoContainer.js +63 -0
  299. package/internals/demo/index.d.ts +1 -0
  300. package/internals/demo/index.js +12 -0
  301. package/internals/index.d.ts +6 -1
  302. package/internals/index.js +43 -0
  303. package/internals/utils/propValidation.js +1 -1
  304. package/locales/bnBD.d.ts +2 -0
  305. package/locales/bnBD.js +173 -0
  306. package/locales/deDE.js +3 -5
  307. package/locales/huHU.js +10 -13
  308. package/locales/index.d.ts +1 -0
  309. package/locales/index.js +11 -0
  310. package/locales/ruRU.js +17 -21
  311. package/material/icons/index.d.ts +3 -3
  312. package/material/icons/index.js +7 -7
  313. package/material/index.d.ts +1 -0
  314. package/material/index.js +172 -51
  315. package/material/variables.d.ts +5 -0
  316. package/material/variables.js +95 -0
  317. package/models/api/gridRowSelectionApi.d.ts +4 -2
  318. package/models/api/gridSortApi.d.ts +1 -1
  319. package/models/configuration/gridConfiguration.d.ts +7 -1
  320. package/models/gridBaseSlots.d.ts +61 -7
  321. package/models/gridDataSource.d.ts +9 -4
  322. package/models/gridIconSlotsComponent.d.ts +1 -1
  323. package/models/gridRowSelectionManager.d.ts +9 -0
  324. package/models/gridRowSelectionManager.js +43 -0
  325. package/models/gridRowSelectionModel.d.ts +4 -2
  326. package/models/gridSlotsComponent.d.ts +7 -28
  327. package/models/gridSlotsComponentsProps.d.ts +3 -11
  328. package/models/gridSortModel.d.ts +1 -1
  329. package/models/index.d.ts +2 -1
  330. package/models/index.js +34 -11
  331. package/models/props/DataGridProps.d.ts +22 -17
  332. package/modern/DataGrid/DataGrid.js +31 -22
  333. package/modern/DataGrid/useDataGridProps.js +1 -1
  334. package/modern/colDef/gridActionsColDef.js +1 -1
  335. package/modern/colDef/gridBooleanColDef.js +1 -1
  336. package/modern/colDef/gridCheckboxSelectionColDef.js +2 -4
  337. package/modern/components/GridFooter.js +2 -2
  338. package/modern/components/GridHeader.js +1 -1
  339. package/modern/components/GridPagination.js +5 -6
  340. package/modern/components/GridRowCount.js +4 -5
  341. package/modern/components/GridScrollArea.js +2 -1
  342. package/modern/components/GridSelectedRowCount.js +5 -6
  343. package/modern/components/GridShadowScrollArea.d.ts +8 -0
  344. package/modern/components/GridShadowScrollArea.js +74 -0
  345. package/modern/components/cell/GridEditInputCell.js +2 -3
  346. package/modern/components/columnSelection/GridHeaderCheckbox.js +51 -17
  347. package/modern/components/columnsManagement/GridColumnsManagement.js +61 -62
  348. package/modern/components/columnsPanel/ColumnsPanelTrigger.d.ts +33 -0
  349. package/modern/components/columnsPanel/ColumnsPanelTrigger.js +202 -0
  350. package/modern/components/columnsPanel/index.d.ts +1 -0
  351. package/modern/components/columnsPanel/index.js +1 -0
  352. package/modern/components/containers/GridOverlay.js +6 -8
  353. package/modern/components/containers/GridRoot.js +4 -2
  354. package/modern/components/containers/GridRootStyles.d.ts +1 -2
  355. package/modern/components/containers/GridRootStyles.js +78 -101
  356. package/modern/components/containers/GridToolbarContainer.js +5 -6
  357. package/modern/components/export/ExportCsv.d.ts +30 -0
  358. package/modern/components/export/ExportCsv.js +189 -0
  359. package/modern/components/export/ExportPrint.d.ts +30 -0
  360. package/modern/components/export/ExportPrint.js +189 -0
  361. package/modern/components/export/index.d.ts +2 -0
  362. package/modern/components/export/index.js +2 -0
  363. package/modern/components/filterPanel/FilterPanelTrigger.d.ts +37 -0
  364. package/modern/components/filterPanel/FilterPanelTrigger.js +205 -0
  365. package/modern/components/filterPanel/index.d.ts +1 -0
  366. package/modern/components/filterPanel/index.js +1 -0
  367. package/modern/components/index.d.ts +6 -1
  368. package/modern/components/index.js +6 -1
  369. package/modern/components/menu/GridMenu.js +7 -6
  370. package/modern/components/menu/columnMenu/GridColumnHeaderMenu.js +2 -1
  371. package/modern/components/panel/GridPanel.js +18 -20
  372. package/modern/components/panel/GridPanelContent.js +6 -8
  373. package/modern/components/panel/GridPanelFooter.js +5 -6
  374. package/modern/components/panel/GridPanelHeader.js +4 -5
  375. package/modern/components/panel/filterPanel/GridFilterForm.js +13 -20
  376. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.d.ts +2 -2
  377. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +10 -39
  378. package/modern/components/panel/filterPanel/GridFilterInputMultipleValue.d.ts +2 -2
  379. package/modern/components/panel/filterPanel/GridFilterInputMultipleValue.js +19 -44
  380. package/modern/components/panel/filterPanel/GridFilterInputValue.js +3 -6
  381. package/modern/components/quickFilter/QuickFilter.d.ts +41 -0
  382. package/modern/components/quickFilter/QuickFilter.js +103 -0
  383. package/modern/components/quickFilter/QuickFilterClear.d.ts +28 -0
  384. package/modern/components/quickFilter/QuickFilterClear.js +154 -0
  385. package/modern/components/quickFilter/QuickFilterContext.d.ts +13 -0
  386. package/modern/components/quickFilter/QuickFilterContext.js +9 -0
  387. package/modern/components/quickFilter/QuickFilterControl.d.ts +28 -0
  388. package/modern/components/quickFilter/QuickFilterControl.js +97 -0
  389. package/modern/components/quickFilter/index.d.ts +3 -0
  390. package/modern/components/quickFilter/index.js +3 -0
  391. package/modern/components/toolbar/GridToolbar.d.ts +1 -1
  392. package/modern/components/toolbar/GridToolbar.js +2 -2
  393. package/modern/components/toolbar/GridToolbarFilterButton.js +5 -6
  394. package/modern/components/toolbar/GridToolbarQuickFilter.js +59 -97
  395. package/modern/components/toolbarV8/GridToolbar.d.ts +11 -0
  396. package/modern/components/toolbarV8/GridToolbar.js +135 -0
  397. package/modern/components/toolbarV8/Toolbar.d.ts +32 -0
  398. package/modern/components/toolbarV8/Toolbar.js +125 -0
  399. package/modern/components/toolbarV8/ToolbarButton.d.ts +23 -0
  400. package/modern/components/toolbarV8/ToolbarButton.js +172 -0
  401. package/modern/components/toolbarV8/ToolbarContext.d.ts +9 -0
  402. package/modern/components/toolbarV8/ToolbarContext.js +9 -0
  403. package/modern/components/toolbarV8/index.d.ts +2 -0
  404. package/modern/components/toolbarV8/index.js +2 -0
  405. package/modern/components/virtualization/GridVirtualScrollbar.js +10 -2
  406. package/modern/components/virtualization/GridVirtualScrollerFiller.js +2 -1
  407. package/modern/constants/cssVariables.d.ts +294 -0
  408. package/modern/constants/cssVariables.js +161 -0
  409. package/modern/constants/dataGridPropsDefaultValues.js +1 -0
  410. package/modern/constants/defaultGridSlotsComponents.js +2 -1
  411. package/modern/constants/gridClasses.d.ts +17 -0
  412. package/modern/constants/gridClasses.js +1 -1
  413. package/modern/context/GridContextProvider.js +4 -1
  414. package/modern/hooks/features/clipboard/useGridClipboard.js +3 -2
  415. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -2
  416. package/modern/hooks/features/columnResize/useGridColumnResize.js +2 -1
  417. package/modern/hooks/features/columns/gridColumnsInterfaces.d.ts +1 -0
  418. package/modern/hooks/features/columns/gridColumnsSelector.d.ts +7 -0
  419. package/modern/hooks/features/columns/gridColumnsSelector.js +8 -0
  420. package/modern/hooks/features/columns/gridColumnsUtils.d.ts +3 -1
  421. package/modern/hooks/features/columns/gridColumnsUtils.js +6 -3
  422. package/modern/hooks/features/columns/index.d.ts +1 -1
  423. package/modern/hooks/features/columns/index.js +1 -1
  424. package/modern/hooks/features/columns/useGridColumns.js +4 -2
  425. package/modern/hooks/features/dataSource/gridDataSourceError.d.ts +31 -0
  426. package/modern/hooks/features/dataSource/gridDataSourceError.js +32 -0
  427. package/modern/hooks/features/dataSource/index.d.ts +2 -0
  428. package/modern/hooks/features/dataSource/index.js +2 -0
  429. package/modern/hooks/features/dataSource/models.d.ts +1 -1
  430. package/modern/hooks/features/dataSource/useGridDataSourceBase.d.ts +1 -1
  431. package/modern/hooks/features/dataSource/useGridDataSourceBase.js +27 -17
  432. package/modern/hooks/features/dimensions/useGridDimensions.js +11 -10
  433. package/modern/hooks/features/editing/useGridCellEditing.js +2 -1
  434. package/modern/hooks/features/editing/useGridRowEditing.js +2 -1
  435. package/modern/hooks/features/export/utils.js +4 -2
  436. package/modern/hooks/features/focus/useGridFocus.js +3 -2
  437. package/modern/hooks/features/index.d.ts +1 -1
  438. package/modern/hooks/features/index.js +1 -1
  439. package/modern/hooks/features/rowSelection/gridRowSelectionSelector.d.ts +3 -3
  440. package/modern/hooks/features/rowSelection/gridRowSelectionSelector.js +27 -7
  441. package/modern/hooks/features/rowSelection/useGridRowSelection.js +148 -81
  442. package/modern/hooks/features/rowSelection/utils.d.ts +2 -2
  443. package/modern/hooks/features/rowSelection/utils.js +11 -11
  444. package/modern/hooks/features/rows/gridRowsInterfaces.d.ts +1 -1
  445. package/modern/hooks/features/rows/gridRowsUtils.d.ts +2 -1
  446. package/modern/hooks/features/rows/gridRowsUtils.js +8 -0
  447. package/modern/hooks/features/rows/useGridParamsApi.js +2 -8
  448. package/modern/hooks/features/rows/useGridRowAriaAttributes.js +2 -4
  449. package/modern/hooks/features/rows/useGridRows.d.ts +2 -2
  450. package/modern/hooks/features/rows/useGridRows.js +7 -7
  451. package/modern/hooks/features/rows/useGridRowsMeta.js +8 -0
  452. package/modern/hooks/features/virtualization/useGridVirtualScroller.d.ts +0 -2
  453. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +5 -11
  454. package/modern/hooks/utils/index.d.ts +2 -1
  455. package/modern/hooks/utils/useGridComponentRenderer.d.ts +12 -0
  456. package/modern/hooks/utils/useGridComponentRenderer.js +36 -0
  457. package/modern/hooks/utils/useGridSelector.js +4 -1
  458. package/modern/hooks/utils/useIsSSR.js +4 -1
  459. package/modern/index.js +1 -1
  460. package/modern/internals/demo/TailwindDemoContainer.d.ts +11 -0
  461. package/modern/internals/demo/TailwindDemoContainer.js +55 -0
  462. package/modern/internals/demo/index.d.ts +1 -0
  463. package/modern/internals/demo/index.js +1 -0
  464. package/modern/internals/index.d.ts +6 -1
  465. package/modern/internals/index.js +5 -1
  466. package/modern/internals/utils/propValidation.js +1 -1
  467. package/modern/locales/bnBD.d.ts +2 -0
  468. package/modern/locales/bnBD.js +167 -0
  469. package/modern/locales/deDE.js +3 -5
  470. package/modern/locales/huHU.js +10 -13
  471. package/modern/locales/index.d.ts +1 -0
  472. package/modern/locales/index.js +1 -0
  473. package/modern/locales/ruRU.js +17 -21
  474. package/modern/material/icons/index.d.ts +3 -3
  475. package/modern/material/icons/index.js +6 -6
  476. package/modern/material/index.d.ts +1 -0
  477. package/modern/material/index.js +167 -52
  478. package/modern/material/variables.d.ts +5 -0
  479. package/modern/material/variables.js +89 -0
  480. package/modern/models/api/gridRowSelectionApi.d.ts +4 -2
  481. package/modern/models/api/gridSortApi.d.ts +1 -1
  482. package/modern/models/configuration/gridConfiguration.d.ts +7 -1
  483. package/modern/models/gridBaseSlots.d.ts +61 -7
  484. package/modern/models/gridDataSource.d.ts +9 -4
  485. package/modern/models/gridIconSlotsComponent.d.ts +1 -1
  486. package/modern/models/gridRowSelectionManager.d.ts +9 -0
  487. package/modern/models/gridRowSelectionManager.js +36 -0
  488. package/modern/models/gridRowSelectionModel.d.ts +4 -2
  489. package/modern/models/gridSlotsComponent.d.ts +7 -28
  490. package/modern/models/gridSlotsComponentsProps.d.ts +3 -11
  491. package/modern/models/gridSortModel.d.ts +1 -1
  492. package/modern/models/index.d.ts +2 -1
  493. package/modern/models/index.js +2 -3
  494. package/modern/models/props/DataGridProps.d.ts +22 -17
  495. package/modern/utils/css/context.d.ts +14 -0
  496. package/modern/utils/css/context.js +54 -0
  497. package/modern/utils/index.d.ts +2 -1
  498. package/modern/utils/index.js +1 -1
  499. package/package.json +2 -2
  500. package/tsconfig.build.tsbuildinfo +1 -1
  501. package/utils/css/context.d.ts +14 -0
  502. package/utils/css/context.js +64 -0
  503. package/utils/index.d.ts +2 -1
  504. package/utils/index.js +8 -1
@@ -10,7 +10,8 @@ exports.GridScrollArea = void 0;
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _clsx = _interopRequireDefault(require("clsx"));
13
- var _utils = require("@mui/utils");
13
+ var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
14
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
14
15
  var _system = require("@mui/system");
15
16
  var _fastMemo = require("@mui/x-internals/fastMemo");
16
17
  var _useGridRootProps = require("../hooks/utils/useGridRootProps");
@@ -34,7 +35,7 @@ const useUtilityClasses = ownerState => {
34
35
  const slots = {
35
36
  root: ['scrollArea', `scrollArea--${scrollDirection}`]
36
37
  };
37
- return (0, _utils.unstable_composeClasses)(slots, _constants.getDataGridUtilityClass, classes);
38
+ return (0, _composeClasses.default)(slots, _constants.getDataGridUtilityClass, classes);
38
39
  };
39
40
  const GridScrollAreaRawRoot = (0, _system.styled)('div', {
40
41
  name: 'MuiDataGrid',
@@ -120,7 +121,7 @@ function GridScrollAreaContent(props) {
120
121
  const handleScrolling = () => {
121
122
  setCanScrollMore(getCanScrollMore);
122
123
  };
123
- const handleDragOver = (0, _utils.unstable_useEventCallback)(event => {
124
+ const handleDragOver = (0, _useEventCallback.default)(event => {
124
125
  let offset;
125
126
 
126
127
  // Prevents showing the forbidden cursor
@@ -14,6 +14,7 @@ var _clsx = _interopRequireDefault(require("clsx"));
14
14
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
15
15
  var _system = require("@mui/system");
16
16
  var _forwardRef = require("@mui/x-internals/forwardRef");
17
+ var _cssVariables = require("../constants/cssVariables");
17
18
  var _useGridApiContext = require("../hooks/utils/useGridApiContext");
18
19
  var _gridClasses = require("../constants/gridClasses");
19
20
  var _useGridRootProps = require("../hooks/utils/useGridRootProps");
@@ -32,21 +33,19 @@ const GridSelectedRowCountRoot = (0, _system.styled)('div', {
32
33
  name: 'MuiDataGrid',
33
34
  slot: 'SelectedRowCount',
34
35
  overridesResolver: (props, styles) => styles.selectedRowCount
35
- })(({
36
- theme
37
- }) => ({
36
+ })({
38
37
  alignItems: 'center',
39
38
  display: 'flex',
40
- margin: theme.spacing(0, 2),
39
+ margin: _cssVariables.vars.spacing(0, 2),
41
40
  visibility: 'hidden',
42
41
  width: 0,
43
42
  height: 0,
44
- [theme.breakpoints.up('sm')]: {
43
+ [_cssVariables.vars.breakpoints.up('sm')]: {
45
44
  visibility: 'visible',
46
45
  width: 'auto',
47
46
  height: 'auto'
48
47
  }
49
- }));
48
+ });
50
49
  const GridSelectedRowCount = exports.GridSelectedRowCount = (0, _forwardRef.forwardRef)(function GridSelectedRowCount(props, ref) {
51
50
  const {
52
51
  className,
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ export interface GridShadowScrollAreaProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ children: React.ReactNode;
4
+ }
5
+ /**
6
+ * Adds scroll shadows above and below content in a scrollable container.
7
+ */
8
+ export declare function GridShadowScrollArea(props: GridShadowScrollAreaProps): React.JSX.Element;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.GridShadowScrollArea = GridShadowScrollArea;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _system = require("@mui/system");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ const _excluded = ["children"];
15
+ const reveal = (0, _system.keyframes)({
16
+ from: {
17
+ opacity: 0
18
+ },
19
+ to: {
20
+ opacity: 1
21
+ }
22
+ });
23
+ const detectScroll = (0, _system.keyframes)({
24
+ 'from, to': {
25
+ '--scrollable': '" "'
26
+ }
27
+ });
28
+ const ShadowScrollArea = (0, _system.styled)('div', {
29
+ name: 'MuiDataGrid',
30
+ slot: 'ShadowScrollArea'
31
+ })({
32
+ flex: 1,
33
+ display: 'flex',
34
+ flexDirection: 'column',
35
+ animation: detectScroll,
36
+ animationTimeline: '--scroll-timeline',
37
+ animationFillMode: 'none',
38
+ boxSizing: 'border-box',
39
+ overflow: 'auto',
40
+ scrollTimeline: '--scroll-timeline block',
41
+ '&::before, &::after': {
42
+ content: '""',
43
+ flexShrink: 0,
44
+ display: 'block',
45
+ position: 'sticky',
46
+ left: 0,
47
+ width: '100%',
48
+ height: '4px',
49
+ animation: `${reveal} linear both`,
50
+ animationTimeline: '--scroll-timeline',
51
+ // Custom property toggle trick:
52
+ // - Detects if the element is scrollable
53
+ // - https://css-tricks.com/the-css-custom-property-toggle-trick/
54
+ '--visibility-scrollable': 'var(--scrollable) visible',
55
+ '--visibility-not-scrollable': 'hidden',
56
+ visibility: 'var(--visibility-scrollable, var(--visibility-not-scrollable))'
57
+ },
58
+ '&::before': {
59
+ top: 0,
60
+ background: 'linear-gradient(to bottom, rgba(0,0,0,0.05) 0, transparent 100%)',
61
+ animationRange: '0 4px'
62
+ },
63
+ '&::after': {
64
+ bottom: 0,
65
+ background: 'linear-gradient(to top, rgba(0,0,0,0.05) 0, transparent 100%)',
66
+ animationDirection: 'reverse',
67
+ animationRange: 'calc(100% - 4px) 100%'
68
+ }
69
+ });
70
+
71
+ /**
72
+ * Adds scroll shadows above and below content in a scrollable container.
73
+ */
74
+ function GridShadowScrollArea(props) {
75
+ const {
76
+ children
77
+ } = props,
78
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
79
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(ShadowScrollArea, (0, _extends2.default)({}, rest, {
80
+ children: children
81
+ }));
82
+ }
@@ -14,6 +14,7 @@ var _utils = require("@mui/utils");
14
14
  var _styles = require("@mui/material/styles");
15
15
  var _forwardRef = require("@mui/x-internals/forwardRef");
16
16
  var _assert = require("../../utils/assert");
17
+ var _cssVariables = require("../../constants/cssVariables");
17
18
  var _gridClasses = require("../../constants/gridClasses");
18
19
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
19
20
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
@@ -31,9 +32,7 @@ const useUtilityClasses = ownerState => {
31
32
  const GridEditInputCellRoot = (0, _styles.styled)(_assert.NotRendered, {
32
33
  name: 'MuiDataGrid',
33
34
  slot: 'EditInputCell'
34
- })(({
35
- theme
36
- }) => (0, _extends2.default)({}, theme.typography.body2, {
35
+ })((0, _extends2.default)({}, _cssVariables.vars.typography.body, {
37
36
  padding: '1px 0',
38
37
  '& input': {
39
38
  padding: '0 16px',
@@ -21,6 +21,7 @@ var _gridClasses = require("../../constants/gridClasses");
21
21
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
22
22
  var _gridFilterSelector = require("../../hooks/features/filter/gridFilterSelector");
23
23
  var _gridPaginationSelector = require("../../hooks/features/pagination/gridPaginationSelector");
24
+ var _gridRowSelectionManager = require("../../models/gridRowSelectionManager");
24
25
  var _jsxRuntime = require("react/jsx-runtime");
25
26
  const _excluded = ["field", "colDef"];
26
27
  const useUtilityClasses = ownerState => {
@@ -46,39 +47,72 @@ const GridHeaderCheckbox = exports.GridHeaderCheckbox = (0, _forwardRef.forwardR
46
47
  const visibleRowIds = (0, _useGridSelector.useGridSelector)(apiRef, _gridFilterSelector.gridExpandedSortedRowIdsSelector);
47
48
  const paginatedVisibleRowIds = (0, _useGridSelector.useGridSelector)(apiRef, _gridPaginationSelector.gridPaginatedVisibleSortedGridRowIdsSelector);
48
49
  const filteredSelection = React.useMemo(() => {
49
- if (typeof rootProps.isRowSelectable !== 'function') {
50
+ const isRowSelectable = rootProps.isRowSelectable;
51
+ if (typeof isRowSelectable !== 'function') {
50
52
  return selection;
51
53
  }
52
- return selection.filter(id => {
54
+ if (selection.type === 'exclude') {
55
+ return selection;
56
+ }
57
+
58
+ // selection.type === 'include'
59
+ const selectionModel = {
60
+ type: 'include',
61
+ ids: new Set()
62
+ };
63
+ for (const id of selection.ids) {
53
64
  if (rootProps.keepNonExistentRowsSelected) {
54
- return true;
65
+ selectionModel.ids.add(id);
55
66
  }
56
67
  // The row might have been deleted
57
68
  if (!apiRef.current.getRow(id)) {
58
- return false;
69
+ continue;
70
+ }
71
+ if (isRowSelectable(apiRef.current.getRowParams(id))) {
72
+ selectionModel.ids.add(id);
59
73
  }
60
- return rootProps.isRowSelectable(apiRef.current.getRowParams(id));
61
- });
62
- }, [apiRef, rootProps.isRowSelectable, selection, rootProps.keepNonExistentRowsSelected]);
74
+ }
75
+ return selectionModel;
76
+ }, [apiRef, rootProps.isRowSelectable, rootProps.keepNonExistentRowsSelected, selection]);
63
77
 
64
78
  // All the rows that could be selected / unselected by toggling this checkbox
65
79
  const selectionCandidates = React.useMemo(() => {
66
80
  const rowIds = !rootProps.pagination || !rootProps.checkboxSelectionVisibleOnly ? visibleRowIds : paginatedVisibleRowIds;
67
81
 
68
- // Convert to an object to make O(1) checking if a row exists or not
69
- // TODO create selector that returns visibleRowIds/paginatedVisibleRowIds as an object
70
- return rowIds.reduce((acc, id) => {
71
- if (!apiRef.current.isRowSelectable(id)) {
72
- return acc;
82
+ // Convert to a Set to make O(1) checking if a row exists or not
83
+ const candidates = new Set();
84
+ for (let i = 0; i < rowIds.length; i += 1) {
85
+ const id = rowIds[i];
86
+ if (apiRef.current.isRowSelectable(id)) {
87
+ candidates.add(id);
73
88
  }
74
- acc[id] = true;
75
- return acc;
76
- }, {});
89
+ }
90
+ return candidates;
77
91
  }, [apiRef, rootProps.pagination, rootProps.checkboxSelectionVisibleOnly, paginatedVisibleRowIds, visibleRowIds]);
78
92
 
79
93
  // Amount of rows selected and that are visible in the current page
80
- const currentSelectionSize = React.useMemo(() => filteredSelection.filter(id => selectionCandidates[id]).length, [filteredSelection, selectionCandidates]);
81
- const isIndeterminate = currentSelectionSize > 0 && currentSelectionSize < Object.keys(selectionCandidates).length;
94
+ const currentSelectionSize = React.useMemo(() => {
95
+ const selectionManager = (0, _gridRowSelectionManager.createRowSelectionManager)(filteredSelection);
96
+ let size = 0;
97
+ for (const id of selectionCandidates) {
98
+ if (selectionManager.has(id)) {
99
+ size += 1;
100
+ }
101
+ }
102
+ return size;
103
+ }, [filteredSelection, selectionCandidates]);
104
+ const isIndeterminate = React.useMemo(() => {
105
+ if (filteredSelection.ids.size === 0) {
106
+ return false;
107
+ }
108
+ const selectionManager = (0, _gridRowSelectionManager.createRowSelectionManager)(filteredSelection);
109
+ for (const rowId of selectionCandidates) {
110
+ if (!selectionManager.has(rowId)) {
111
+ return true;
112
+ }
113
+ }
114
+ return false;
115
+ }, [filteredSelection, selectionCandidates]);
82
116
  const isChecked = currentSelectionSize > 0;
83
117
  const handleChange = event => {
84
118
  const params = {
@@ -12,14 +12,15 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
13
13
  var _styles = require("@mui/material/styles");
14
14
  var _InputBase = require("@mui/material/InputBase");
15
+ var _cssVariables = require("../../constants/cssVariables");
15
16
  var _gridColumnsSelector = require("../../hooks/features/columns/gridColumnsSelector");
16
17
  var _useGridSelector = require("../../hooks/utils/useGridSelector");
17
18
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
18
19
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
19
20
  var _gridClasses = require("../../constants/gridClasses");
20
- var _useLazyRef = require("../../hooks/utils/useLazyRef");
21
21
  var _utils = require("./utils");
22
22
  var _assert = require("../../utils/assert");
23
+ var _GridShadowScrollArea = require("../GridShadowScrollArea");
23
24
  var _jsxRuntime = require("react/jsx-runtime");
24
25
  /* eslint-disable @typescript-eslint/no-use-before-define */
25
26
 
@@ -41,7 +42,7 @@ function GridColumnsManagement(props) {
41
42
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
42
43
  const searchInputRef = React.useRef(null);
43
44
  const columns = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridColumnDefinitionsSelector);
44
- const initialColumnVisibilityModel = (0, _useLazyRef.useLazyRef)(() => (0, _gridColumnsSelector.gridColumnVisibilityModelSelector)(apiRef)).current;
45
+ const initialColumnVisibilityModel = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridInitialColumnVisibilityModelSelector);
45
46
  const columnVisibilityModel = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridColumnVisibilityModelSelector);
46
47
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
47
48
  const [searchValue, setSearchValue] = React.useState('');
@@ -141,20 +142,20 @@ function GridColumnsManagement(props) {
141
142
  type: "search",
142
143
  slotProps: {
143
144
  input: {
144
- startAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseInputAdornment, {
145
- position: "start",
146
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.quickFilterIcon, {})
145
+ startAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.quickFilterIcon, {
146
+ fontSize: "small"
147
147
  }),
148
148
  endAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseIconButton, (0, _extends2.default)({
149
- "aria-label": apiRef.current.getLocaleText('columnsManagementDeleteIconLabel'),
150
149
  size: "small",
150
+ "aria-label": apiRef.current.getLocaleText('columnsManagementDeleteIconLabel'),
151
151
  style: searchValue ? {
152
152
  visibility: 'visible'
153
153
  } : {
154
154
  visibility: 'hidden'
155
155
  },
156
156
  tabIndex: -1,
157
- onClick: handleSearchReset
157
+ onClick: handleSearchReset,
158
+ edge: "end"
158
159
  }, rootProps.slotProps?.baseIconButton, {
159
160
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.quickFilterClearIcon, {
160
161
  fontSize: "small"
@@ -168,25 +169,27 @@ function GridColumnsManagement(props) {
168
169
  autoComplete: "off",
169
170
  fullWidth: true
170
171
  }, rootProps.slotProps?.baseTextField, searchInputProps))
171
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(GridColumnsManagementBody, {
172
- className: classes.root,
172
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(GridColumnsManagementScrollArea, {
173
173
  ownerState: rootProps,
174
- children: [currentColumns.map(column => /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseCheckbox, (0, _extends2.default)({
175
- className: classes.row,
176
- disabled: column.hideable === false,
177
- checked: columnVisibilityModel[column.field] !== false,
178
- onClick: toggleColumn,
179
- name: column.field,
180
- inputRef: isFirstHideableColumn(column) ? firstSwitchRef : undefined,
181
- label: column.headerName || column.field,
182
- size: "medium",
183
- density: "compact",
184
- fullWidth: true
185
- }, rootProps.slotProps?.baseCheckbox), column.field)), currentColumns.length === 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(GridColumnsManagementEmptyText, {
174
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(GridColumnsManagementBody, {
175
+ className: classes.root,
186
176
  ownerState: rootProps,
187
- children: apiRef.current.getLocaleText('columnsManagementNoColumns')
188
- })]
189
- }), (!disableShowHideToggle || !disableResetButton) && currentColumns.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(GridColumnsManagementFooter, {
177
+ children: [currentColumns.map(column => /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseCheckbox, (0, _extends2.default)({
178
+ className: classes.row,
179
+ disabled: column.hideable === false,
180
+ checked: columnVisibilityModel[column.field] !== false,
181
+ onClick: toggleColumn,
182
+ name: column.field,
183
+ inputRef: isFirstHideableColumn(column) ? firstSwitchRef : undefined,
184
+ label: column.headerName || column.field,
185
+ density: "compact",
186
+ fullWidth: true
187
+ }, rootProps.slotProps?.baseCheckbox), column.field)), currentColumns.length === 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(GridColumnsManagementEmptyText, {
188
+ ownerState: rootProps,
189
+ children: apiRef.current.getLocaleText('columnsManagementNoColumns')
190
+ })]
191
+ })
192
+ }), !disableShowHideToggle || !disableResetButton ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(GridColumnsManagementFooter, {
190
193
  ownerState: rootProps,
191
194
  className: classes.footer,
192
195
  children: [!disableShowHideToggle ? /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseCheckbox, (0, _extends2.default)({
@@ -195,7 +198,8 @@ function GridColumnsManagement(props) {
195
198
  indeterminate: !allHideableColumnsVisible && !allHideableColumnsHidden,
196
199
  onClick: () => toggleAllColumns(!allHideableColumnsVisible),
197
200
  name: apiRef.current.getLocaleText('columnsManagementShowHideAllText'),
198
- label: apiRef.current.getLocaleText('columnsManagementShowHideAllText')
201
+ label: apiRef.current.getLocaleText('columnsManagementShowHideAllText'),
202
+ density: "compact"
199
203
  }, rootProps.slotProps?.baseCheckbox)) : /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {}), !disableResetButton ? /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseButton, (0, _extends2.default)({
200
204
  onClick: () => apiRef.current.setColumnVisibilityModel(initialColumnVisibilityModel),
201
205
  disabled: isResetDisabled
@@ -251,6 +255,7 @@ process.env.NODE_ENV !== "production" ? GridColumnsManagement.propTypes = {
251
255
  onChange: _propTypes.default.func,
252
256
  onKeyDown: _propTypes.default.func,
253
257
  placeholder: _propTypes.default.string,
258
+ role: _propTypes.default.string,
254
259
  size: _propTypes.default.oneOf(['medium', 'small']),
255
260
  slotProps: _propTypes.default.object,
256
261
  style: _propTypes.default.object,
@@ -271,56 +276,50 @@ process.env.NODE_ENV !== "production" ? GridColumnsManagement.propTypes = {
271
276
  const GridColumnsManagementBody = (0, _styles.styled)('div', {
272
277
  name: 'MuiDataGrid',
273
278
  slot: 'ColumnsManagement'
274
- })(({
275
- theme
276
- }) => ({
277
- padding: theme.spacing(0, 2, 1.5),
279
+ })({
278
280
  display: 'flex',
279
281
  flexDirection: 'column',
280
- overflow: 'auto',
281
- flex: '1 1',
282
- maxHeight: 400,
283
- alignItems: 'flex-start'
284
- }));
282
+ padding: _cssVariables.vars.spacing(0.5, 1.5)
283
+ });
284
+ const GridColumnsManagementScrollArea = (0, _styles.styled)(_GridShadowScrollArea.GridShadowScrollArea, {
285
+ name: 'MuiDataGrid',
286
+ slot: 'ColumnsManagementScrollArea'
287
+ })({
288
+ maxHeight: 400
289
+ });
285
290
  const GridColumnsManagementHeader = (0, _styles.styled)('div', {
286
291
  name: 'MuiDataGrid',
287
292
  slot: 'ColumnsManagementHeader'
288
- })(({
289
- theme
290
- }) => ({
291
- padding: theme.spacing(1.5, 3)
292
- }));
293
+ })({
294
+ padding: _cssVariables.vars.spacing(1.5, 2),
295
+ borderBottom: `1px solid ${_cssVariables.vars.colors.border.base}`
296
+ });
293
297
  const SearchInput = (0, _styles.styled)(_assert.NotRendered, {
294
298
  name: 'MuiDataGrid',
295
299
  slot: 'ColumnsManagementSearchInput'
296
- })(({
297
- theme
298
- }) => ({
299
- [`& .${_InputBase.inputBaseClasses.root}`]: {
300
- padding: theme.spacing(0, 1.5, 0, 1.5)
301
- },
300
+ })({
302
301
  [`& .${_InputBase.inputBaseClasses.input}::-webkit-search-decoration,
303
- & .${_InputBase.inputBaseClasses.input}::-webkit-search-cancel-button,
304
- & .${_InputBase.inputBaseClasses.input}::-webkit-search-results-button,
305
- & .${_InputBase.inputBaseClasses.input}::-webkit-search-results-decoration`]: {
302
+ & .${_InputBase.inputBaseClasses.input}::-webkit-search-cancel-button,
303
+ & .${_InputBase.inputBaseClasses.input}::-webkit-search-results-button,
304
+ & .${_InputBase.inputBaseClasses.input}::-webkit-search-results-decoration`]: {
306
305
  /* clears the 'X' icon from Chrome */
307
306
  display: 'none'
308
307
  }
309
- }));
308
+ });
310
309
  const GridColumnsManagementFooter = (0, _styles.styled)('div', {
311
310
  name: 'MuiDataGrid',
312
311
  slot: 'ColumnsManagementFooter'
313
- })(({
314
- theme
315
- }) => ({
316
- padding: theme.spacing(0.5, 1, 0.5, 3),
312
+ })({
313
+ padding: _cssVariables.vars.spacing(1, 1, 1, 1.5),
317
314
  display: 'flex',
318
315
  justifyContent: 'space-between',
319
- borderTop: `1px solid ${theme.palette.divider}`
320
- }));
321
- const GridColumnsManagementEmptyText = (0, _styles.styled)('div')(({
322
- theme
323
- }) => ({
324
- padding: theme.spacing(0.5, 0),
325
- color: theme.palette.grey[500]
326
- }));
316
+ borderTop: `1px solid ${_cssVariables.vars.colors.border.base}`
317
+ });
318
+ const GridColumnsManagementEmptyText = (0, _styles.styled)('div', {
319
+ name: 'MuiDataGrid',
320
+ slot: 'ColumnsManagementEmptyText'
321
+ })({
322
+ padding: _cssVariables.vars.spacing(1, 0),
323
+ alignSelf: 'center',
324
+ fontSize: _cssVariables.vars.typography.body.fontSize
325
+ });
@@ -0,0 +1,33 @@
1
+ import * as React from 'react';
2
+ import { RenderProp } from "../../hooks/utils/useGridComponentRenderer.js";
3
+ import type { GridSlotProps } from '../../models';
4
+ export interface ColumnsPanelState {
5
+ /**
6
+ * If `true`, the columns panel is open.
7
+ */
8
+ open: boolean;
9
+ }
10
+ export type ColumnsPanelTriggerProps = Omit<GridSlotProps['baseButton'], 'className'> & {
11
+ /**
12
+ * A function to customize rendering of the component.
13
+ */
14
+ render?: RenderProp<GridSlotProps['baseButton'], ColumnsPanelState>;
15
+ /**
16
+ * Override or extend the styles applied to the component.
17
+ */
18
+ className?: string | ((state: ColumnsPanelState) => string);
19
+ };
20
+ /**
21
+ * A button that opens and closes the columns panel.
22
+ * It renders the `baseButton` slot.
23
+ *
24
+ * Demos:
25
+ *
26
+ * - [Columns Panel](https://mui.com/x/react-data-grid/components/columns-panel/)
27
+ *
28
+ * API:
29
+ *
30
+ * - [ColumnsPanelTrigger API](https://mui.com/x/api/data-grid/columns-panel-trigger/)
31
+ */
32
+ declare const ColumnsPanelTrigger: React.ForwardRefExoticComponent<ColumnsPanelTriggerProps> | React.ForwardRefExoticComponent<Omit<ColumnsPanelTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
33
+ export { ColumnsPanelTrigger };