@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
@@ -6,6 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { styled } from '@mui/material/styles';
8
8
  import composeClasses from '@mui/utils/composeClasses';
9
+ import { vars } from "../../constants/cssVariables.js";
9
10
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
10
11
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
11
12
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -22,14 +23,12 @@ const GridPanelFooterRoot = styled('div', {
22
23
  name: 'MuiDataGrid',
23
24
  slot: 'PanelFooter',
24
25
  overridesResolver: (props, styles) => styles.panelFooter
25
- })(({
26
- theme
27
- }) => ({
28
- padding: theme.spacing(1),
26
+ })({
27
+ padding: vars.spacing(1),
29
28
  display: 'flex',
30
29
  justifyContent: 'space-between',
31
- borderTop: `1px solid ${theme.palette.divider}`
32
- }));
30
+ borderTop: `1px solid ${vars.colors.border.base}`
31
+ });
33
32
  function GridPanelFooter(props) {
34
33
  const {
35
34
  className
@@ -6,6 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { styled } from '@mui/system';
8
8
  import composeClasses from '@mui/utils/composeClasses';
9
+ import { vars } from "../../constants/cssVariables.js";
9
10
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
10
11
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
11
12
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -22,11 +23,9 @@ const GridPanelHeaderRoot = styled('div', {
22
23
  name: 'MuiDataGrid',
23
24
  slot: 'PanelHeader',
24
25
  overridesResolver: (props, styles) => styles.panelHeader
25
- })(({
26
- theme
27
- }) => ({
28
- padding: theme.spacing(1)
29
- }));
26
+ })({
27
+ padding: vars.spacing(1)
28
+ });
30
29
  function GridPanelHeader(props) {
31
30
  const {
32
31
  className
@@ -4,10 +4,11 @@ const _excluded = ["item", "hasMultipleFilters", "deleteFilter", "applyFilterCha
4
4
  _excluded2 = ["InputComponentProps"];
5
5
  import * as React from 'react';
6
6
  import PropTypes from 'prop-types';
7
+ import clsx from 'clsx';
7
8
  import { unstable_composeClasses as composeClasses, unstable_useId as useId, unstable_capitalize as capitalize } from '@mui/utils';
8
9
  import { styled } from '@mui/material/styles';
9
- import clsx from 'clsx';
10
10
  import { forwardRef } from '@mui/x-internals/forwardRef';
11
+ import { vars } from "../../../constants/cssVariables.js";
11
12
  import { gridFilterableColumnDefinitionsSelector, gridColumnLookupSelector } from "../../../hooks/features/columns/gridColumnsSelector.js";
12
13
  import { gridFilterModelSelector } from "../../../hooks/features/filter/gridFilterSelector.js";
13
14
  import { useGridSelector } from "../../../hooks/utils/useGridSelector.js";
@@ -36,19 +37,19 @@ const GridFilterFormRoot = styled('div', {
36
37
  name: 'MuiDataGrid',
37
38
  slot: 'FilterForm',
38
39
  overridesResolver: (props, styles) => styles.filterForm
39
- })(({
40
- theme
41
- }) => ({
40
+ })({
42
41
  display: 'flex',
43
- gap: theme.spacing(1.5)
44
- }));
42
+ gap: vars.spacing(1.5)
43
+ });
45
44
  const FilterFormDeleteIcon = styled('div', {
46
45
  name: 'MuiDataGrid',
47
46
  slot: 'FilterFormDeleteIcon',
48
47
  overridesResolver: (_, styles) => styles.filterFormDeleteIcon
49
48
  })({
50
49
  flexShrink: 0,
51
- justifyContent: 'center'
50
+ display: 'flex',
51
+ justifyContent: 'center',
52
+ alignItems: 'center'
52
53
  });
53
54
  const FilterFormLogicOperatorInput = styled('div', {
54
55
  name: 'MuiDataGrid',
@@ -126,7 +127,6 @@ const GridFilterForm = forwardRef(function GridFilterForm(props, ref) {
126
127
  const filterSelectorRef = React.useRef(null);
127
128
  const multiFilterOperator = filterModel.logicOperator ?? GridLogicOperator.And;
128
129
  const hasLogicOperatorColumn = hasMultipleFilters && logicOperators.length > 0;
129
- const baseFormControlProps = rootProps.slotProps?.baseFormControl || {};
130
130
  const baseSelectProps = rootProps.slotProps?.baseSelect || {};
131
131
  const isBaseSelectNative = baseSelectProps.native ?? false;
132
132
  const baseSelectOptionProps = rootProps.slotProps?.baseSelectOption || {};
@@ -255,10 +255,8 @@ const GridFilterForm = forwardRef(function GridFilterForm(props, ref) {
255
255
  ownerState: rootProps
256
256
  }, other, {
257
257
  ref: ref,
258
- children: [/*#__PURE__*/_jsx(FilterFormDeleteIcon, _extends({
259
- as: rootProps.slots.baseFormControl
260
- }, baseFormControlProps, deleteIconProps, {
261
- className: clsx(classes.deleteIcon, baseFormControlProps.className, deleteIconProps.className),
258
+ children: [/*#__PURE__*/_jsx(FilterFormDeleteIcon, _extends({}, deleteIconProps, {
259
+ className: clsx(classes.deleteIcon, deleteIconProps.className),
262
260
  ownerState: rootProps,
263
261
  children: /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({
264
262
  "aria-label": apiRef.current.getLocaleText('filterPanelDeleteIconLabel'),
@@ -321,9 +319,8 @@ const GridFilterForm = forwardRef(function GridFilterForm(props, ref) {
321
319
  value: col.field
322
320
  }), getColumnLabel(col)))
323
321
  })), /*#__PURE__*/_jsx(FilterFormOperatorInput, _extends({
324
- variant: "outlined",
325
- size: "small",
326
- as: rootProps.slots.baseSelect
322
+ as: rootProps.slots.baseSelect,
323
+ size: "small"
327
324
  }, operatorInputProps, {
328
325
  className: clsx(classes.operatorInput, operatorInputProps.className),
329
326
  ownerState: rootProps,
@@ -341,11 +338,7 @@ const GridFilterForm = forwardRef(function GridFilterForm(props, ref) {
341
338
  key: operator.value,
342
339
  value: operator.value
343
340
  }), operator.label || apiRef.current.getLocaleText(`filterOperator${capitalize(operator.value)}`)))
344
- })), /*#__PURE__*/_jsx(FilterFormValueInput, _extends({
345
- variant: "outlined",
346
- size: "small",
347
- as: rootProps.slots.baseFormControl
348
- }, valueInputPropsOther, {
341
+ })), /*#__PURE__*/_jsx(FilterFormValueInput, _extends({}, valueInputPropsOther, {
349
342
  className: clsx(classes.valueInput, valueInputPropsOther.className),
350
343
  ownerState: rootProps,
351
344
  children: currentOperator?.InputComponent ? /*#__PURE__*/_jsx(currentOperator.InputComponent, _extends({
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
- import { AutocompleteProps } from '@mui/material/Autocomplete';
2
+ import { AutocompleteProps } from "../../../models/gridBaseSlots.js";
3
3
  import { GridFilterInputValueProps } from "../../../models/gridFilterInputComponent.js";
4
4
  import type { ValueOptions } from '../../../models/colDef/gridColDef';
5
- export type GridFilterInputMultipleSingleSelectProps = GridFilterInputValueProps<Omit<AutocompleteProps<ValueOptions, true, false, true>, 'options' | 'renderInput'>> & {
5
+ export type GridFilterInputMultipleSingleSelectProps = GridFilterInputValueProps<Omit<AutocompleteProps<ValueOptions, true, false, true>, 'options'>> & {
6
6
  type?: 'singleSelect';
7
7
  };
8
8
  declare function GridFilterInputMultipleSingleSelect(props: GridFilterInputMultipleSingleSelectProps): React.JSX.Element;
@@ -1,16 +1,12 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "slotProps"],
4
- _excluded2 = ["key"],
5
- _excluded3 = ["inputProps", "InputProps", "InputLabelProps"];
3
+ const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "slotProps"];
6
4
  import * as React from 'react';
7
5
  import PropTypes from 'prop-types';
8
- import Autocomplete, { createFilterOptions } from '@mui/material/Autocomplete';
9
6
  import { unstable_useId as useId } from '@mui/utils';
10
- import { getValueOptions, isSingleSelectColDef } from "./filterPanelUtils.js";
11
7
  import { useGridRootProps } from "../../../hooks/utils/useGridRootProps.js";
8
+ import { getValueOptions, isSingleSelectColDef } from "./filterPanelUtils.js";
12
9
  import { jsx as _jsx } from "react/jsx-runtime";
13
- const filter = createFilterOptions();
14
10
  function GridFilterInputMultipleSingleSelect(props) {
15
11
  const {
16
12
  item,
@@ -56,47 +52,22 @@ function GridFilterInputMultipleSingleSelect(props) {
56
52
  value: value.map(getOptionValue)
57
53
  }));
58
54
  }, [applyValue, item, getOptionValue]);
59
- return /*#__PURE__*/_jsx(Autocomplete, _extends({
55
+ const BaseAutocomplete = rootProps.slots.baseAutocomplete;
56
+ return /*#__PURE__*/_jsx(BaseAutocomplete, _extends({
60
57
  multiple: true,
61
58
  options: resolvedValueOptions,
62
59
  isOptionEqualToValue: isOptionEqualToValue,
63
- filterOptions: filter,
64
60
  id: id,
65
61
  value: filteredValues,
66
62
  onChange: handleChange,
67
63
  getOptionLabel: getOptionLabel,
68
- renderTags: (value, getTagProps) => value.map((option, index) => {
69
- const _getTagProps = getTagProps({
70
- index
71
- }),
72
- {
73
- key
74
- } = _getTagProps,
75
- tagProps = _objectWithoutPropertiesLoose(_getTagProps, _excluded2);
76
- return /*#__PURE__*/_jsx(rootProps.slots.baseChip, _extends({
77
- variant: "outlined",
78
- size: "small",
79
- label: getOptionLabel(option)
80
- }, tagProps), key);
81
- }),
82
- renderInput: params => {
83
- const {
84
- inputProps,
85
- InputProps,
86
- InputLabelProps
87
- } = params,
88
- rest = _objectWithoutPropertiesLoose(params, _excluded3);
89
- return /*#__PURE__*/_jsx(rootProps.slots.baseTextField, _extends({}, rest, {
90
- label: apiRef.current.getLocaleText('filterPanelInputLabel'),
91
- placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),
92
- inputRef: focusElementRef,
64
+ label: apiRef.current.getLocaleText('filterPanelInputLabel'),
65
+ placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),
66
+ slotProps: {
67
+ textField: {
93
68
  type: type || 'text',
94
- slotProps: {
95
- input: InputProps,
96
- inputLabel: InputLabelProps,
97
- htmlInput: inputProps
98
- }
99
- }, rootProps.slotProps?.baseTextField));
69
+ inputRef: focusElementRef
70
+ }
100
71
  }
101
72
  }, other, slotProps?.root));
102
73
  }
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
- import { AutocompleteProps } from '@mui/material/Autocomplete';
2
+ import { AutocompleteProps } from "../../../models/gridBaseSlots.js";
3
3
  import { GridFilterInputValueProps } from "../../../models/gridFilterInputComponent.js";
4
- export type GridFilterInputMultipleValueProps = GridFilterInputValueProps<Omit<AutocompleteProps<string, true, false, true>, 'options' | 'renderInput'>> & {
4
+ export type GridFilterInputMultipleValueProps = GridFilterInputValueProps<Omit<AutocompleteProps<string, true, false, true>, 'options'>> & {
5
5
  type?: 'text' | 'number' | 'date' | 'datetime-local';
6
6
  };
7
7
  declare function GridFilterInputMultipleValue(props: GridFilterInputMultipleValueProps): React.JSX.Element;
@@ -1,10 +1,6 @@
1
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
1
  import _extends from "@babel/runtime/helpers/esm/extends";
3
- const _excluded = ["key"],
4
- _excluded2 = ["inputProps", "InputProps", "InputLabelProps"];
5
2
  import * as React from 'react';
6
3
  import PropTypes from 'prop-types';
7
- import Autocomplete from '@mui/material/Autocomplete';
8
4
  import { unstable_useId as useId } from '@mui/utils';
9
5
  import { useGridRootProps } from "../../../hooks/utils/useGridRootProps.js";
10
6
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -17,8 +13,9 @@ function GridFilterInputMultipleValue(props) {
17
13
  focusElementRef,
18
14
  slotProps
19
15
  } = props;
20
- const [filterValueState, setFilterValueState] = React.useState(item.value || []);
21
16
  const id = useId();
17
+ const [options, setOptions] = React.useState([]);
18
+ const [filterValueState, setFilterValueState] = React.useState(item.value || []);
22
19
  const rootProps = useGridRootProps();
23
20
  React.useEffect(() => {
24
21
  const itemValue = item.value ?? [];
@@ -30,51 +27,29 @@ function GridFilterInputMultipleValue(props) {
30
27
  value: [...value.map(filterItemValue => type === 'number' ? Number(filterItemValue) : filterItemValue)]
31
28
  }));
32
29
  }, [applyValue, item, type]);
33
- return /*#__PURE__*/_jsx(Autocomplete, _extends({
30
+ const handleInputChange = React.useCallback((event, value) => {
31
+ if (value === '') {
32
+ setOptions([]);
33
+ } else {
34
+ setOptions([value]);
35
+ }
36
+ }, [setOptions]);
37
+ const BaseAutocomplete = rootProps.slots.baseAutocomplete;
38
+ return /*#__PURE__*/_jsx(BaseAutocomplete, _extends({
34
39
  multiple: true,
35
40
  freeSolo: true,
36
- options: [],
37
- filterOptions: (options, params) => {
38
- const {
39
- inputValue
40
- } = params;
41
- return inputValue == null || inputValue === '' ? [] : [inputValue];
42
- },
41
+ options: options,
43
42
  id: id,
44
43
  value: filterValueState,
45
44
  onChange: handleChange,
46
- renderTags: (value, getTagProps) => value.map((option, index) => {
47
- const _getTagProps = getTagProps({
48
- index
49
- }),
50
- {
51
- key
52
- } = _getTagProps,
53
- tagProps = _objectWithoutPropertiesLoose(_getTagProps, _excluded);
54
- return /*#__PURE__*/_jsx(rootProps.slots.baseChip, _extends({
55
- variant: "outlined",
56
- size: "small",
57
- label: option
58
- }, tagProps), key);
59
- }),
60
- renderInput: params => {
61
- const {
62
- inputProps,
63
- InputProps,
64
- InputLabelProps
65
- } = params,
66
- rest = _objectWithoutPropertiesLoose(params, _excluded2);
67
- return /*#__PURE__*/_jsx(rootProps.slots.baseTextField, _extends({}, rest, {
68
- label: apiRef.current.getLocaleText('filterPanelInputLabel'),
69
- placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),
70
- inputRef: focusElementRef,
45
+ onInputChange: handleInputChange,
46
+ label: apiRef.current.getLocaleText('filterPanelInputLabel'),
47
+ placeholder: apiRef.current.getLocaleText('filterPanelInputPlaceholder'),
48
+ slotProps: {
49
+ textField: {
71
50
  type: type || 'text',
72
- slotProps: {
73
- input: InputProps,
74
- inputLabel: InputLabelProps,
75
- htmlInput: inputProps
76
- }
77
- }, rootProps.slotProps?.baseTextField));
51
+ inputRef: focusElementRef
52
+ }
78
53
  }
79
54
  }, slotProps?.root));
80
55
  }
@@ -57,12 +57,9 @@ function GridFilterInputValue(props) {
57
57
  disabled: disabled,
58
58
  slotProps: _extends({}, textFieldProps?.slotProps, {
59
59
  input: _extends({
60
- endAdornment: applying ? /*#__PURE__*/_jsx(rootProps.slots.baseInputAdornment, {
61
- position: "end",
62
- children: /*#__PURE__*/_jsx(rootProps.slots.loadIcon, {
63
- fontSize: "small",
64
- color: "action"
65
- })
60
+ endAdornment: applying ? /*#__PURE__*/_jsx(rootProps.slots.loadIcon, {
61
+ fontSize: "small",
62
+ color: "action"
66
63
  }) : null
67
64
  }, textFieldProps?.slotProps?.input),
68
65
  htmlInput: _extends({
@@ -0,0 +1,41 @@
1
+ import * as React from 'react';
2
+ import type { GridFilterModel } from '../../models';
3
+ export type QuickFilterProps = {
4
+ children: React.ReactNode;
5
+ /**
6
+ * Function responsible for parsing text input in an array of independent values for quick filtering.
7
+ * @param {string} input The value entered by the user
8
+ * @returns {any[]} The array of value on which quick filter is applied
9
+ * @default (searchText: string) => searchText.split(' ').filter((word) => word !== '')
10
+ */
11
+ parser?: (input: string) => any[];
12
+ /**
13
+ * Function responsible for formatting values of quick filter in a string when the model is modified
14
+ * @param {any[]} values The new values passed to the quick filter model
15
+ * @returns {string} The string to display in the text field
16
+ * @default (values: string[]) => values.join(' ')
17
+ */
18
+ formatter?: (values: NonNullable<GridFilterModel['quickFilterValues']>) => string;
19
+ /**
20
+ * The debounce time in milliseconds.
21
+ * @default 150
22
+ */
23
+ debounceMs?: number;
24
+ };
25
+ /**
26
+ * The top level Quick Filter component that provides context to child components.
27
+ * It does not render any DOM elements.
28
+ *
29
+ * Demos:
30
+ *
31
+ * - [Quick Filter](https://mui.com/x/react-data-grid/components/quick-filter/)
32
+ *
33
+ * API:
34
+ *
35
+ * - [QuickFilter API](https://mui.com/x/api/data-grid/quick-filter/)
36
+ */
37
+ declare function QuickFilter(props: QuickFilterProps): React.JSX.Element;
38
+ declare namespace QuickFilter {
39
+ var propTypes: any;
40
+ }
41
+ export { QuickFilter };
@@ -0,0 +1,103 @@
1
+ import * as React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { unstable_debounce as debounce } from '@mui/utils';
4
+ import { QuickFilterContext } from "./QuickFilterContext.js";
5
+ import { useGridApiContext } from "../../hooks/utils/useGridApiContext.js";
6
+ import { useGridSelector } from "../../hooks/utils/useGridSelector.js";
7
+ import { gridQuickFilterValuesSelector } from "../../hooks/features/filter/index.js";
8
+ import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
9
+ import { isDeepEqual } from "../../utils/utils.js";
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
+ const DEFAULT_PARSER = searchText => searchText.split(' ').filter(word => word !== '');
12
+ const DEFAULT_FORMATTER = values => values.join(' ');
13
+
14
+ /**
15
+ * The top level Quick Filter component that provides context to child components.
16
+ * It does not render any DOM elements.
17
+ *
18
+ * Demos:
19
+ *
20
+ * - [Quick Filter](https://mui.com/x/react-data-grid/components/quick-filter/)
21
+ *
22
+ * API:
23
+ *
24
+ * - [QuickFilter API](https://mui.com/x/api/data-grid/quick-filter/)
25
+ */
26
+ function QuickFilter(props) {
27
+ const rootProps = useGridRootProps();
28
+ const {
29
+ parser = DEFAULT_PARSER,
30
+ formatter = DEFAULT_FORMATTER,
31
+ debounceMs = rootProps.filterDebounceMs,
32
+ children
33
+ } = props;
34
+ const apiRef = useGridApiContext();
35
+ const controlRef = React.useRef(null);
36
+ const triggerRef = React.useRef(null);
37
+ const quickFilterValues = useGridSelector(apiRef, gridQuickFilterValuesSelector);
38
+ const [value, setValue] = React.useState(formatter(quickFilterValues ?? []));
39
+ const prevQuickFilterValuesRef = React.useRef(quickFilterValues);
40
+ React.useEffect(() => {
41
+ if (!isDeepEqual(prevQuickFilterValuesRef.current, quickFilterValues)) {
42
+ // The model of quick filter value has been updated
43
+ prevQuickFilterValuesRef.current = quickFilterValues;
44
+
45
+ // Update the input value if needed to match the new model
46
+ setValue(prevSearchValue => isDeepEqual(parser(prevSearchValue), quickFilterValues) ? prevSearchValue : formatter(quickFilterValues ?? []));
47
+ }
48
+ }, [quickFilterValues, formatter, parser]);
49
+ const setQuickFilterValueDebounced = React.useMemo(() => debounce(newValue => {
50
+ apiRef.current.setQuickFilterValues(parser(newValue));
51
+ }, debounceMs), [apiRef, debounceMs, parser]);
52
+ React.useEffect(() => setQuickFilterValueDebounced.clear, [setQuickFilterValueDebounced]);
53
+ const handleValueChange = React.useCallback(event => {
54
+ const newValue = event.target.value;
55
+ setValue(newValue);
56
+ setQuickFilterValueDebounced(newValue);
57
+ }, [setQuickFilterValueDebounced]);
58
+ const handleClear = React.useCallback(() => {
59
+ setValue('');
60
+ apiRef.current.setQuickFilterValues([]);
61
+ controlRef.current?.focus();
62
+ }, [apiRef, controlRef]);
63
+ const contextValue = React.useMemo(() => ({
64
+ controlRef,
65
+ triggerRef,
66
+ state: {
67
+ value
68
+ },
69
+ clearValue: handleClear,
70
+ onValueChange: handleValueChange
71
+ }), [value, handleValueChange, handleClear]);
72
+ return /*#__PURE__*/_jsx(QuickFilterContext.Provider, {
73
+ value: contextValue,
74
+ children: children
75
+ });
76
+ }
77
+ process.env.NODE_ENV !== "production" ? QuickFilter.propTypes = {
78
+ // ----------------------------- Warning --------------------------------
79
+ // | These PropTypes are generated from the TypeScript type definitions |
80
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
81
+ // ----------------------------------------------------------------------
82
+ children: PropTypes.node,
83
+ /**
84
+ * The debounce time in milliseconds.
85
+ * @default 150
86
+ */
87
+ debounceMs: PropTypes.number,
88
+ /**
89
+ * Function responsible for formatting values of quick filter in a string when the model is modified
90
+ * @param {any[]} values The new values passed to the quick filter model
91
+ * @returns {string} The string to display in the text field
92
+ * @default (values: string[]) => values.join(' ')
93
+ */
94
+ formatter: PropTypes.func,
95
+ /**
96
+ * Function responsible for parsing text input in an array of independent values for quick filtering.
97
+ * @param {string} input The value entered by the user
98
+ * @returns {any[]} The array of value on which quick filter is applied
99
+ * @default (searchText: string) => searchText.split(' ').filter((word) => word !== '')
100
+ */
101
+ parser: PropTypes.func
102
+ } : void 0;
103
+ export { QuickFilter };
@@ -0,0 +1,28 @@
1
+ import * as React from 'react';
2
+ import { RenderProp } from "../../hooks/utils/useGridComponentRenderer.js";
3
+ import type { GridSlotProps } from '../../models';
4
+ import { QuickFilterState } from "./QuickFilterContext.js";
5
+ export type QuickFilterClearProps = Omit<GridSlotProps['baseIconButton'], 'className'> & {
6
+ /**
7
+ * A function to customize rendering of the component.
8
+ */
9
+ render?: RenderProp<GridSlotProps['baseIconButton'], QuickFilterState>;
10
+ /**
11
+ * Override or extend the styles applied to the component.
12
+ */
13
+ className?: string | ((state: QuickFilterState) => string);
14
+ };
15
+ /**
16
+ * A button that resets the filter value.
17
+ * It renders the `baseIconButton` slot.
18
+ *
19
+ * Demos:
20
+ *
21
+ * - [Quick Filter](https://mui.com/x/react-data-grid/components/quick-filter/)
22
+ *
23
+ * API:
24
+ *
25
+ * - [QuickFilterClear API](https://mui.com/x/api/data-grid/quick-filter-clear/)
26
+ */
27
+ declare const QuickFilterClear: React.ForwardRefExoticComponent<QuickFilterClearProps> | React.ForwardRefExoticComponent<Omit<QuickFilterClearProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
28
+ export { QuickFilterClear };
@@ -0,0 +1,154 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ const _excluded = ["render", "className"];
4
+ import * as React from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import { forwardRef } from '@mui/x-internals/forwardRef';
7
+ import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
8
+ import { useGridComponentRenderer } from "../../hooks/utils/useGridComponentRenderer.js";
9
+ import { useQuickFilterContext } from "./QuickFilterContext.js";
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
+ /**
12
+ * A button that resets the filter value.
13
+ * It renders the `baseIconButton` slot.
14
+ *
15
+ * Demos:
16
+ *
17
+ * - [Quick Filter](https://mui.com/x/react-data-grid/components/quick-filter/)
18
+ *
19
+ * API:
20
+ *
21
+ * - [QuickFilterClear API](https://mui.com/x/api/data-grid/quick-filter-clear/)
22
+ */
23
+ const QuickFilterClear = forwardRef(function QuickFilterClear(props, ref) {
24
+ const {
25
+ render,
26
+ className
27
+ } = props,
28
+ other = _objectWithoutPropertiesLoose(props, _excluded);
29
+ const rootProps = useGridRootProps();
30
+ const {
31
+ state,
32
+ clearValue
33
+ } = useQuickFilterContext();
34
+ const resolvedClassName = typeof className === 'function' ? className(state) : className;
35
+ const element = useGridComponentRenderer(rootProps.slots.baseIconButton, render, _extends({}, rootProps.slotProps?.baseIconButton, {
36
+ onClick: clearValue,
37
+ className: resolvedClassName
38
+ }, other, {
39
+ ref
40
+ }), state);
41
+ return /*#__PURE__*/_jsx(React.Fragment, {
42
+ children: element
43
+ });
44
+ });
45
+ process.env.NODE_ENV !== "production" ? QuickFilterClear.propTypes = {
46
+ // ----------------------------- Warning --------------------------------
47
+ // | These PropTypes are generated from the TypeScript type definitions |
48
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
49
+ // ----------------------------------------------------------------------
50
+ /**
51
+ * A ref for imperative actions.
52
+ * It currently only supports `focusVisible()` action.
53
+ */
54
+ action: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
55
+ current: PropTypes.shape({
56
+ focusVisible: PropTypes.func.isRequired
57
+ })
58
+ })]),
59
+ /**
60
+ * If `true`, the ripples are centered.
61
+ * They won't start at the cursor interaction position.
62
+ * @default false
63
+ */
64
+ centerRipple: PropTypes.bool,
65
+ /**
66
+ * Override or extend the styles applied to the component.
67
+ */
68
+ className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
69
+ /**
70
+ * The color of the component.
71
+ * It supports both default and custom theme colors, which can be added as shown in the
72
+ * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
73
+ */
74
+ color: PropTypes.oneOf(['default', 'inherit', 'primary']),
75
+ component: PropTypes.elementType,
76
+ /**
77
+ * If `true`, the component is disabled.
78
+ */
79
+ disabled: PropTypes.bool,
80
+ /**
81
+ * If `true`, the keyboard focus ripple is disabled.
82
+ * @default false
83
+ */
84
+ disableFocusRipple: PropTypes.bool,
85
+ /**
86
+ * If `true`, the ripple effect is disabled.
87
+ *
88
+ * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure
89
+ * to highlight the element by applying separate styles with the `.Mui-focusVisible` class.
90
+ * @default false
91
+ */
92
+ disableRipple: PropTypes.bool,
93
+ /**
94
+ * If `true`, the touch ripple effect is disabled.
95
+ * @default false
96
+ */
97
+ disableTouchRipple: PropTypes.bool,
98
+ /**
99
+ * If given, uses a negative margin to counteract the padding on one
100
+ * side (this is often helpful for aligning the left or right
101
+ * side of the icon with content above or below, without ruining the border
102
+ * size and shape).
103
+ */
104
+ edge: PropTypes.oneOf(['end', 'start', false]),
105
+ /**
106
+ * If `true`, the base button will have a keyboard focus ripple.
107
+ * @default false
108
+ */
109
+ focusRipple: PropTypes.bool,
110
+ /**
111
+ * This prop can help identify which element has keyboard focus.
112
+ * The class name will be applied when the element gains the focus through keyboard interaction.
113
+ * It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).
114
+ * The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).
115
+ * A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components
116
+ * if needed.
117
+ */
118
+ focusVisibleClassName: PropTypes.string,
119
+ label: PropTypes.string,
120
+ /**
121
+ * The component used to render a link when the `href` prop is provided.
122
+ * @default 'a'
123
+ */
124
+ LinkComponent: PropTypes.elementType,
125
+ /**
126
+ * Callback fired when the component is focused with a keyboard.
127
+ * We trigger a `onFocus` callback too.
128
+ */
129
+ onFocusVisible: PropTypes.func,
130
+ /**
131
+ * A function to customize rendering of the component.
132
+ */
133
+ render: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
134
+ /**
135
+ * The size of the component.
136
+ * `small` is equivalent to the dense button styling.
137
+ */
138
+ size: PropTypes.oneOf(['large', 'medium', 'small']),
139
+ style: PropTypes.object,
140
+ /**
141
+ * The system prop that allows defining system overrides as well as additional CSS styles.
142
+ */
143
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
144
+ tabIndex: PropTypes.number,
145
+ /**
146
+ * Props applied to the `TouchRipple` element.
147
+ */
148
+ TouchRippleProps: PropTypes.object,
149
+ /**
150
+ * A ref that points to the `TouchRipple` element.
151
+ */
152
+ touchRippleRef: PropTypes.any
153
+ } : void 0;
154
+ export { QuickFilterClear };