@mui/x-data-grid 6.3.1 → 6.5.0

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 (349) hide show
  1. package/CHANGELOG.md +113 -0
  2. package/DataGrid/DataGrid.js +20 -1
  3. package/DataGrid/useDataGridComponent.js +2 -2
  4. package/DataGrid/useDataGridProps.js +8 -13
  5. package/colDef/gridBooleanColDef.js +19 -1
  6. package/colDef/gridDateColDef.js +6 -2
  7. package/colDef/gridNumericOperators.js +0 -6
  8. package/colDef/gridSingleSelectColDef.js +21 -1
  9. package/components/base/GridBody.js +2 -1
  10. package/components/cell/GridEditInputCell.js +4 -1
  11. package/components/containers/GridRootStyles.js +1 -0
  12. package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +15 -2
  13. package/components/panel/filterPanel/GridFilterInputBoolean.js +80 -36
  14. package/components/panel/filterPanel/GridFilterInputDate.d.ts +8 -1
  15. package/components/panel/filterPanel/GridFilterInputDate.js +27 -6
  16. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -2
  17. package/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -2
  18. package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +8 -1
  19. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +55 -32
  20. package/components/panel/filterPanel/GridFilterInputValue.d.ts +11 -4
  21. package/components/panel/filterPanel/GridFilterInputValue.js +29 -6
  22. package/components/panel/filterPanel/GridFilterPanel.d.ts +2 -1
  23. package/components/panel/filterPanel/GridFilterPanel.js +1 -1
  24. package/components/panel/filterPanel/index.d.ts +3 -1
  25. package/components/panel/filterPanel/index.js +2 -1
  26. package/constants/localeTextConstants.js +26 -0
  27. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +12 -1
  28. package/hooks/features/clipboard/useGridClipboard.d.ts +2 -1
  29. package/hooks/features/clipboard/useGridClipboard.js +43 -26
  30. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +9 -2
  31. package/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
  32. package/hooks/features/dimensions/useGridDimensions.js +4 -6
  33. package/hooks/features/editing/useGridCellEditing.js +7 -3
  34. package/hooks/features/editing/useGridEditing.js +0 -3
  35. package/hooks/features/editing/useGridRowEditing.js +7 -3
  36. package/hooks/features/export/serializers/csvSerializer.d.ts +5 -0
  37. package/hooks/features/export/serializers/csvSerializer.js +46 -6
  38. package/hooks/features/export/useGridCsvExport.d.ts +2 -1
  39. package/hooks/features/export/useGridCsvExport.js +7 -5
  40. package/hooks/features/focus/gridFocusState.d.ts +2 -0
  41. package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -0
  42. package/hooks/features/focus/gridFocusStateSelector.js +6 -0
  43. package/hooks/features/focus/useGridFocus.js +55 -9
  44. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +4 -0
  45. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +5 -0
  46. package/hooks/features/headerFiltering/index.d.ts +1 -0
  47. package/hooks/features/headerFiltering/index.js +1 -0
  48. package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +6 -0
  49. package/hooks/features/headerFiltering/useGridHeaderFiltering.js +91 -0
  50. package/hooks/features/index.d.ts +1 -0
  51. package/hooks/features/index.js +2 -1
  52. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -1
  53. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +124 -4
  54. package/hooks/features/rows/useGridRows.js +16 -1
  55. package/index.js +1 -1
  56. package/internals/index.d.ts +9 -3
  57. package/internals/index.js +7 -2
  58. package/internals/utils/index.d.ts +1 -0
  59. package/internals/utils/index.js +2 -1
  60. package/internals/utils/useProps.d.ts +8 -0
  61. package/internals/utils/useProps.js +13 -0
  62. package/joy/icons.d.ts +33 -0
  63. package/joy/icons.js +433 -0
  64. package/joy/joySlots.js +114 -4
  65. package/legacy/DataGrid/DataGrid.js +20 -1
  66. package/legacy/DataGrid/useDataGridComponent.js +2 -2
  67. package/legacy/DataGrid/useDataGridProps.js +11 -9
  68. package/legacy/colDef/gridBooleanColDef.js +21 -1
  69. package/legacy/colDef/gridDateColDef.js +10 -2
  70. package/legacy/colDef/gridNumericOperators.js +0 -6
  71. package/legacy/colDef/gridSingleSelectColDef.js +21 -1
  72. package/legacy/components/base/GridBody.js +2 -1
  73. package/legacy/components/cell/GridEditInputCell.js +4 -1
  74. package/legacy/components/containers/GridRootStyles.js +1 -0
  75. package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +79 -35
  76. package/legacy/components/panel/filterPanel/GridFilterInputDate.js +26 -5
  77. package/legacy/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -2
  78. package/legacy/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -2
  79. package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +54 -31
  80. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +28 -5
  81. package/legacy/components/panel/filterPanel/GridFilterPanel.js +1 -1
  82. package/legacy/components/panel/filterPanel/index.js +2 -1
  83. package/legacy/constants/localeTextConstants.js +26 -0
  84. package/legacy/hooks/features/clipboard/useGridClipboard.js +44 -26
  85. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -5
  86. package/legacy/hooks/features/dimensions/useGridDimensions.js +4 -6
  87. package/legacy/hooks/features/editing/useGridCellEditing.js +7 -3
  88. package/legacy/hooks/features/editing/useGridEditing.js +0 -3
  89. package/legacy/hooks/features/editing/useGridRowEditing.js +7 -3
  90. package/legacy/hooks/features/export/serializers/csvSerializer.js +43 -6
  91. package/legacy/hooks/features/export/useGridCsvExport.js +8 -5
  92. package/legacy/hooks/features/focus/gridFocusStateSelector.js +10 -0
  93. package/legacy/hooks/features/focus/useGridFocus.js +58 -9
  94. package/legacy/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +11 -0
  95. package/legacy/hooks/features/headerFiltering/index.js +1 -0
  96. package/legacy/hooks/features/headerFiltering/useGridHeaderFiltering.js +93 -0
  97. package/legacy/hooks/features/index.js +2 -1
  98. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +123 -4
  99. package/legacy/hooks/features/rows/useGridRows.js +16 -1
  100. package/legacy/index.js +1 -1
  101. package/legacy/internals/index.js +7 -2
  102. package/legacy/internals/utils/index.js +2 -1
  103. package/legacy/internals/utils/useProps.js +11 -0
  104. package/legacy/joy/icons.js +432 -0
  105. package/legacy/joy/joySlots.js +118 -4
  106. package/legacy/locales/arSD.js +28 -0
  107. package/legacy/locales/beBY.js +28 -0
  108. package/legacy/locales/bgBG.js +28 -0
  109. package/legacy/locales/csCZ.js +36 -8
  110. package/legacy/locales/daDK.js +28 -0
  111. package/legacy/locales/deDE.js +30 -2
  112. package/legacy/locales/elGR.js +27 -0
  113. package/legacy/locales/esES.js +28 -0
  114. package/legacy/locales/faIR.js +28 -0
  115. package/legacy/locales/fiFI.js +28 -0
  116. package/legacy/locales/frFR.js +34 -6
  117. package/legacy/locales/heIL.js +30 -2
  118. package/legacy/locales/huHU.js +28 -0
  119. package/legacy/locales/itIT.js +28 -0
  120. package/legacy/locales/jaJP.js +28 -0
  121. package/legacy/locales/koKR.js +28 -0
  122. package/legacy/locales/nbNO.js +28 -0
  123. package/legacy/locales/nlNL.js +28 -0
  124. package/legacy/locales/plPL.js +28 -0
  125. package/legacy/locales/ptBR.js +29 -1
  126. package/legacy/locales/roRO.js +28 -0
  127. package/legacy/locales/ruRU.js +28 -0
  128. package/legacy/locales/skSK.js +28 -0
  129. package/legacy/locales/svSE.js +28 -0
  130. package/legacy/locales/trTR.js +28 -0
  131. package/legacy/locales/ukUA.js +36 -9
  132. package/legacy/locales/urPK.js +28 -0
  133. package/legacy/locales/viVN.js +27 -0
  134. package/legacy/locales/zhCN.js +28 -0
  135. package/legacy/locales/zhTW.js +28 -0
  136. package/legacy/material/index.js +5 -1
  137. package/legacy/models/api/index.js +0 -1
  138. package/legacy/models/index.js +0 -1
  139. package/legacy/utils/domUtils.js +14 -1
  140. package/locales/arSD.js +28 -0
  141. package/locales/beBY.js +28 -0
  142. package/locales/bgBG.js +28 -0
  143. package/locales/csCZ.js +36 -8
  144. package/locales/daDK.js +28 -0
  145. package/locales/deDE.js +30 -2
  146. package/locales/elGR.js +27 -0
  147. package/locales/esES.js +28 -0
  148. package/locales/faIR.js +28 -0
  149. package/locales/fiFI.js +28 -0
  150. package/locales/frFR.js +34 -6
  151. package/locales/heIL.js +30 -2
  152. package/locales/huHU.js +28 -0
  153. package/locales/itIT.js +28 -0
  154. package/locales/jaJP.js +28 -0
  155. package/locales/koKR.js +28 -0
  156. package/locales/nbNO.js +28 -0
  157. package/locales/nlNL.js +28 -0
  158. package/locales/plPL.js +28 -0
  159. package/locales/ptBR.js +29 -1
  160. package/locales/roRO.js +28 -0
  161. package/locales/ruRU.js +28 -0
  162. package/locales/skSK.js +28 -0
  163. package/locales/svSE.js +28 -0
  164. package/locales/trTR.js +28 -0
  165. package/locales/ukUA.js +36 -9
  166. package/locales/urPK.js +28 -0
  167. package/locales/viVN.js +27 -0
  168. package/locales/zhCN.js +28 -0
  169. package/locales/zhTW.js +28 -0
  170. package/material/index.d.ts +3 -65
  171. package/material/index.js +5 -1
  172. package/models/api/gridApiCommon.d.ts +3 -3
  173. package/models/api/gridCoreApi.d.ts +8 -0
  174. package/models/api/gridFocusApi.d.ts +6 -0
  175. package/models/api/gridHeaderFilteringApi.d.ts +30 -0
  176. package/models/api/gridLocaleTextApi.d.ts +25 -0
  177. package/models/api/index.d.ts +0 -1
  178. package/models/api/index.js +0 -1
  179. package/models/events/gridEventLookup.d.ts +33 -1
  180. package/models/gridFilterOperator.d.ts +4 -0
  181. package/models/gridHeaderFilteringModel.d.ts +5 -0
  182. package/models/gridHeaderFilteringModel.js +1 -0
  183. package/models/gridSlotsComponent.d.ts +21 -4
  184. package/models/gridSlotsComponentsProps.d.ts +4 -0
  185. package/models/gridStateCommunity.d.ts +2 -0
  186. package/models/index.d.ts +1 -1
  187. package/models/index.js +0 -1
  188. package/models/props/DataGridProps.d.ts +19 -0
  189. package/modern/DataGrid/DataGrid.js +20 -1
  190. package/modern/DataGrid/useDataGridComponent.js +2 -2
  191. package/modern/DataGrid/useDataGridProps.js +8 -13
  192. package/modern/colDef/gridBooleanColDef.js +19 -1
  193. package/modern/colDef/gridDateColDef.js +6 -2
  194. package/modern/colDef/gridNumericOperators.js +0 -6
  195. package/modern/colDef/gridSingleSelectColDef.js +21 -1
  196. package/modern/components/base/GridBody.js +2 -1
  197. package/modern/components/cell/GridEditInputCell.js +4 -1
  198. package/modern/components/containers/GridRootStyles.js +1 -0
  199. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +80 -36
  200. package/modern/components/panel/filterPanel/GridFilterInputDate.js +27 -6
  201. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -2
  202. package/modern/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -2
  203. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +55 -32
  204. package/modern/components/panel/filterPanel/GridFilterInputValue.js +29 -6
  205. package/modern/components/panel/filterPanel/GridFilterPanel.js +1 -1
  206. package/modern/components/panel/filterPanel/index.js +2 -1
  207. package/modern/constants/localeTextConstants.js +26 -0
  208. package/modern/hooks/features/clipboard/useGridClipboard.js +43 -26
  209. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
  210. package/modern/hooks/features/dimensions/useGridDimensions.js +3 -5
  211. package/modern/hooks/features/editing/useGridCellEditing.js +7 -3
  212. package/modern/hooks/features/editing/useGridEditing.js +0 -3
  213. package/modern/hooks/features/editing/useGridRowEditing.js +7 -3
  214. package/modern/hooks/features/export/serializers/csvSerializer.js +44 -6
  215. package/modern/hooks/features/export/useGridCsvExport.js +7 -5
  216. package/modern/hooks/features/focus/gridFocusStateSelector.js +6 -0
  217. package/modern/hooks/features/focus/useGridFocus.js +55 -9
  218. package/modern/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +5 -0
  219. package/modern/hooks/features/headerFiltering/index.js +1 -0
  220. package/modern/hooks/features/headerFiltering/useGridHeaderFiltering.js +90 -0
  221. package/modern/hooks/features/index.js +2 -1
  222. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +124 -4
  223. package/modern/hooks/features/rows/useGridRows.js +16 -1
  224. package/modern/index.js +1 -1
  225. package/modern/internals/index.js +7 -2
  226. package/modern/internals/utils/index.js +2 -1
  227. package/modern/internals/utils/useProps.js +13 -0
  228. package/modern/joy/icons.js +433 -0
  229. package/modern/joy/joySlots.js +110 -4
  230. package/modern/locales/arSD.js +28 -0
  231. package/modern/locales/beBY.js +28 -0
  232. package/modern/locales/bgBG.js +28 -0
  233. package/modern/locales/csCZ.js +36 -8
  234. package/modern/locales/daDK.js +28 -0
  235. package/modern/locales/deDE.js +30 -2
  236. package/modern/locales/elGR.js +27 -0
  237. package/modern/locales/esES.js +28 -0
  238. package/modern/locales/faIR.js +28 -0
  239. package/modern/locales/fiFI.js +28 -0
  240. package/modern/locales/frFR.js +34 -6
  241. package/modern/locales/heIL.js +30 -2
  242. package/modern/locales/huHU.js +28 -0
  243. package/modern/locales/itIT.js +28 -0
  244. package/modern/locales/jaJP.js +28 -0
  245. package/modern/locales/koKR.js +28 -0
  246. package/modern/locales/nbNO.js +28 -0
  247. package/modern/locales/nlNL.js +28 -0
  248. package/modern/locales/plPL.js +28 -0
  249. package/modern/locales/ptBR.js +29 -1
  250. package/modern/locales/roRO.js +28 -0
  251. package/modern/locales/ruRU.js +28 -0
  252. package/modern/locales/skSK.js +28 -0
  253. package/modern/locales/svSE.js +28 -0
  254. package/modern/locales/trTR.js +28 -0
  255. package/modern/locales/ukUA.js +36 -9
  256. package/modern/locales/urPK.js +28 -0
  257. package/modern/locales/viVN.js +27 -0
  258. package/modern/locales/zhCN.js +28 -0
  259. package/modern/locales/zhTW.js +28 -0
  260. package/modern/material/index.js +5 -1
  261. package/modern/models/api/gridHeaderFilteringApi.js +1 -0
  262. package/modern/models/api/index.js +0 -1
  263. package/modern/models/gridHeaderFilteringModel.js +1 -0
  264. package/modern/models/index.js +0 -1
  265. package/modern/utils/domUtils.js +13 -1
  266. package/node/DataGrid/DataGrid.js +20 -1
  267. package/node/DataGrid/useDataGridComponent.js +2 -2
  268. package/node/DataGrid/useDataGridProps.js +7 -12
  269. package/node/colDef/gridBooleanColDef.js +19 -1
  270. package/node/colDef/gridDateColDef.js +6 -2
  271. package/node/colDef/gridNumericOperators.js +0 -6
  272. package/node/colDef/gridSingleSelectColDef.js +21 -1
  273. package/node/components/base/GridBody.js +2 -1
  274. package/node/components/cell/GridEditInputCell.js +4 -1
  275. package/node/components/containers/GridRootStyles.js +1 -0
  276. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +78 -35
  277. package/node/components/panel/filterPanel/GridFilterInputDate.js +27 -6
  278. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -2
  279. package/node/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -2
  280. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +55 -32
  281. package/node/components/panel/filterPanel/GridFilterInputValue.js +29 -6
  282. package/node/components/panel/filterPanel/GridFilterPanel.js +2 -1
  283. package/node/components/panel/filterPanel/index.js +26 -8
  284. package/node/constants/localeTextConstants.js +26 -0
  285. package/node/hooks/features/clipboard/useGridClipboard.js +42 -25
  286. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
  287. package/node/hooks/features/dimensions/useGridDimensions.js +3 -5
  288. package/node/hooks/features/editing/useGridCellEditing.js +7 -3
  289. package/node/hooks/features/editing/useGridEditing.js +0 -3
  290. package/node/hooks/features/editing/useGridRowEditing.js +7 -3
  291. package/node/hooks/features/export/serializers/csvSerializer.js +46 -6
  292. package/node/hooks/features/export/useGridCsvExport.js +6 -3
  293. package/node/hooks/features/focus/gridFocusStateSelector.js +9 -1
  294. package/node/hooks/features/focus/useGridFocus.js +55 -9
  295. package/node/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +15 -0
  296. package/node/hooks/features/headerFiltering/index.js +16 -0
  297. package/node/hooks/features/headerFiltering/useGridHeaderFiltering.js +101 -0
  298. package/node/hooks/features/index.js +11 -0
  299. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +124 -4
  300. package/node/hooks/features/rows/useGridRows.js +16 -1
  301. package/node/index.js +1 -1
  302. package/node/internals/index.js +69 -1
  303. package/node/internals/utils/index.js +11 -0
  304. package/node/internals/utils/useProps.js +22 -0
  305. package/node/joy/icons.js +471 -0
  306. package/node/joy/joySlots.js +110 -3
  307. package/node/locales/arSD.js +28 -0
  308. package/node/locales/beBY.js +28 -0
  309. package/node/locales/bgBG.js +28 -0
  310. package/node/locales/csCZ.js +36 -8
  311. package/node/locales/daDK.js +28 -0
  312. package/node/locales/deDE.js +30 -2
  313. package/node/locales/elGR.js +27 -0
  314. package/node/locales/esES.js +28 -0
  315. package/node/locales/faIR.js +28 -0
  316. package/node/locales/fiFI.js +28 -0
  317. package/node/locales/frFR.js +34 -6
  318. package/node/locales/heIL.js +30 -2
  319. package/node/locales/huHU.js +28 -0
  320. package/node/locales/itIT.js +28 -0
  321. package/node/locales/jaJP.js +28 -0
  322. package/node/locales/koKR.js +28 -0
  323. package/node/locales/nbNO.js +28 -0
  324. package/node/locales/nlNL.js +28 -0
  325. package/node/locales/plPL.js +28 -0
  326. package/node/locales/ptBR.js +29 -1
  327. package/node/locales/roRO.js +28 -0
  328. package/node/locales/ruRU.js +28 -0
  329. package/node/locales/skSK.js +28 -0
  330. package/node/locales/svSE.js +28 -0
  331. package/node/locales/trTR.js +28 -0
  332. package/node/locales/ukUA.js +36 -9
  333. package/node/locales/urPK.js +28 -0
  334. package/node/locales/viVN.js +27 -0
  335. package/node/locales/zhCN.js +28 -0
  336. package/node/locales/zhTW.js +28 -0
  337. package/node/material/index.js +5 -1
  338. package/node/models/api/index.js +0 -11
  339. package/node/models/gridHeaderFilteringModel.js +5 -0
  340. package/node/models/index.js +0 -11
  341. package/node/utils/domUtils.js +15 -1
  342. package/package.json +1 -1
  343. package/utils/domUtils.d.ts +1 -0
  344. package/utils/domUtils.js +13 -1
  345. package/models/api/gridClipboardApi.d.ts +0 -11
  346. /package/legacy/models/api/{gridClipboardApi.js → gridHeaderFilteringApi.js} +0 -0
  347. /package/{models/api/gridClipboardApi.js → legacy/models/gridHeaderFilteringModel.js} +0 -0
  348. /package/{modern/models/api/gridClipboardApi.js → models/api/gridHeaderFilteringApi.js} +0 -0
  349. /package/node/models/api/{gridClipboardApi.js → gridHeaderFilteringApi.js} +0 -0
@@ -4,13 +4,16 @@ export { GridVirtualScrollerRenderZone } from '../components/virtualization/Grid
4
4
  export { GridBaseColumnHeaders } from '../components/columnHeaders/GridBaseColumnHeaders';
5
5
  export { GridColumnHeadersInner } from '../components/columnHeaders/GridColumnHeadersInner';
6
6
  export { DATA_GRID_DEFAULT_SLOTS_COMPONENTS } from '../constants/defaultGridSlotsComponents';
7
+ export { getGridFilter } from '../components/panel/filterPanel/GridFilterPanel';
7
8
  export { useGridRegisterPipeProcessor } from '../hooks/core/pipeProcessing';
8
9
  export { useGridRegisterStrategyProcessor, GRID_DEFAULT_STRATEGY } from '../hooks/core/strategyProcessing';
9
10
  export { useGridInitialization } from '../hooks/core/useGridInitialization';
10
11
  export { useGridClipboard } from '../hooks/features/clipboard/useGridClipboard';
11
12
  export { useGridColumnHeaders } from '../hooks/features/columnHeaders/useGridColumnHeaders';
13
+ export { unstable_gridHeaderFilteringEditFieldSelector, unstable_gridHeaderFilteringMenuSelector } from '../hooks/features/headerFiltering/gridHeaderFilteringSelectors';
12
14
  export { useGridColumnMenu, columnMenuStateInitializer } from '../hooks/features/columnMenu/useGridColumnMenu';
13
15
  export { useGridColumns, columnsStateInitializer } from '../hooks/features/columns/useGridColumns';
16
+ export { getTotalHeaderHeight } from '../hooks/features/columns/gridColumnsUtils';
14
17
  export { useGridColumnSpanning } from '../hooks/features/columns/useGridColumnSpanning';
15
18
  export { useGridColumnGrouping, columnGroupsStateInitializer } from '../hooks/features/columnGrouping/useGridColumnGrouping';
16
19
  export { useGridDensity, densityStateInitializer } from '../hooks/features/density/useGridDensity';
@@ -32,6 +35,7 @@ export { useGridRowsMeta, rowsMetaStateInitializer } from '../hooks/features/row
32
35
  export { useGridParamsApi } from '../hooks/features/rows/useGridParamsApi';
33
36
  export { getRowIdFromRowModel } from '../hooks/features/rows/gridRowsUtils';
34
37
  export { gridAdditionalRowGroupsSelector, gridPinnedRowsSelector } from '../hooks/features/rows/gridRowsSelector';
38
+ export { headerFilteringStateInitializer, useGridHeaderFiltering } from '../hooks/features/headerFiltering/useGridHeaderFiltering';
35
39
  export { calculatePinnedRowsHeight } from '../hooks/features/rows/gridRowsUtils';
36
40
  export { useGridRowSelection, rowSelectionStateInitializer } from '../hooks/features/rowSelection/useGridRowSelection';
37
41
  export { useGridRowSelectionPreProcessors } from '../hooks/features/rowSelection/useGridRowSelectionPreProcessors';
@@ -41,14 +45,15 @@ export { useGridEvents } from '../hooks/features/events/useGridEvents';
41
45
  export { useGridDimensions } from '../hooks/features/dimensions/useGridDimensions';
42
46
  export { useGridStatePersistence } from '../hooks/features/statePersistence/useGridStatePersistence';
43
47
  export { useGridVirtualScroller, getRenderableIndexes } from '../hooks/features/virtualization/useGridVirtualScroller';
44
- export { useGridVisibleRows } from '../hooks/utils/useGridVisibleRows';
48
+ export { useGridVisibleRows, getVisibleRows } from '../hooks/utils/useGridVisibleRows';
45
49
  export { useGridInitializeState } from '../hooks/utils/useGridInitializeState';
46
50
  export { getColumnsToExport, defaultGetRowsToExport } from '../hooks/features/export/utils';
47
51
  export { createSelector, unstable_resetCreateSelectorCache } from '../utils/createSelector';
48
- export { findParentElementFromClassName } from '../utils/domUtils';
52
+ export { findParentElementFromClassName, getActiveElement } from '../utils/domUtils';
49
53
  export { isNavigationKey } from '../utils/keyboardUtils';
50
54
  export { clamp, isDeepEqual, isNumber, isFunction, isObject } from '../utils/utils';
51
55
  export { buildWarning } from '../utils/warning';
52
56
  export { exportAs } from '../utils/exportAs';
53
57
  export { useGridPrivateApiContext } from '../hooks/utils/useGridPrivateApiContext';
58
+ export { serializeCellValue } from '../hooks/features/export/serializers/csvSerializer';
54
59
  export * from './utils';
@@ -1,2 +1,3 @@
1
1
  export * from './computeSlots';
2
- export * from './slotsMigration';
2
+ export * from './slotsMigration';
3
+ export * from './useProps';
@@ -0,0 +1,13 @@
1
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
+ const _excluded = ["components", "componentsProps"];
3
+ import * as React from 'react';
4
+ export function useProps(allProps) {
5
+ return React.useMemo(() => {
6
+ const {
7
+ components,
8
+ componentsProps
9
+ } = allProps,
10
+ themedProps = _objectWithoutPropertiesLoose(allProps, _excluded);
11
+ return [components, componentsProps, themedProps];
12
+ }, [allProps]);
13
+ }
@@ -0,0 +1,433 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ const _excluded = ["sx", "fontSize"],
4
+ _excluded2 = ["sortingOrder"];
5
+ /**
6
+ * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2022 as part of Feather (MIT).
7
+ * All other copyright (c) for Lucide are held by Lucide Contributors 2022.
8
+ *
9
+ * Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted,
10
+ * provided that the above copyright notice and this permission notice appear in all copies.
11
+ *
12
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
13
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
14
+ * FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
15
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
16
+ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17
+ */
18
+ import * as React from 'react';
19
+ import SvgIcon from '@mui/joy/SvgIcon';
20
+ import { useGridRootProps } from '../hooks/utils/useGridRootProps';
21
+ import { jsx as _jsx } from "react/jsx-runtime";
22
+ import { jsxs as _jsxs } from "react/jsx-runtime";
23
+ function createSvgIcon(path, displayName) {
24
+ const fontSizeMap = {
25
+ small: 'lg',
26
+ medium: 'xl',
27
+ large: 'xl2',
28
+ inherit: undefined
29
+ };
30
+ // @ts-ignore internal component
31
+ function Component(_ref, ref) {
32
+ let {
33
+ sx,
34
+ fontSize
35
+ } = _ref,
36
+ props = _objectWithoutPropertiesLoose(_ref, _excluded);
37
+ return /*#__PURE__*/_jsx(SvgIcon, _extends({
38
+ "data-testid": `${displayName}Icon`,
39
+ ref: ref,
40
+ fill: "none",
41
+ stroke: "currentColor",
42
+ strokeWidth: "2",
43
+ strokeLinecap: "round",
44
+ strokeLinejoin: "round",
45
+ sx: [{
46
+ fill: 'none'
47
+ }, ...(Array.isArray(sx) ? sx : [sx])],
48
+ fontSize: fontSize ? fontSizeMap[fontSize] : undefined
49
+ }, props, {
50
+ children: path
51
+ }));
52
+ }
53
+ if (process.env.NODE_ENV !== 'production') {
54
+ // Need to set `displayName` on the inner component for React.memo.
55
+ // React prior to 16.14 ignores `displayName` on the wrapper.
56
+ Component.displayName = `${displayName}Icon`;
57
+ }
58
+
59
+ // @ts-ignore internal component
60
+ Component.muiName = SvgIcon.muiName;
61
+
62
+ // @ts-ignore internal component
63
+ return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));
64
+ }
65
+ export const GridArrowUpwardIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
66
+ children: [/*#__PURE__*/_jsx("line", {
67
+ x1: "12",
68
+ x2: "12",
69
+ y1: "19",
70
+ y2: "5"
71
+ }), /*#__PURE__*/_jsx("polyline", {
72
+ points: "5 12 12 5 19 12"
73
+ })]
74
+ }), 'ArrowUpward');
75
+ export const GridArrowDownwardIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
76
+ children: [/*#__PURE__*/_jsx("line", {
77
+ x1: "12",
78
+ x2: "12",
79
+ y1: "5",
80
+ y2: "19"
81
+ }), /*#__PURE__*/_jsx("polyline", {
82
+ points: "19 12 12 19 5 12"
83
+ })]
84
+ }), 'ArrowDownward');
85
+ export const GridKeyboardArrowLeft = createSvgIcon( /*#__PURE__*/_jsx("polyline", {
86
+ points: "15 18 9 12 15 6"
87
+ }), 'KeyboardArrowLeft');
88
+ export const GridKeyboardArrowRight = createSvgIcon( /*#__PURE__*/_jsx("polyline", {
89
+ points: "9 18 15 12 9 6"
90
+ }), 'KeyboardArrowRight');
91
+ export const GridExpandMoreIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
92
+ children: [/*#__PURE__*/_jsx("path", {
93
+ d: "m7 15 5 5 5-5"
94
+ }), /*#__PURE__*/_jsx("path", {
95
+ d: "m7 9 5-5 5 5"
96
+ })]
97
+ }), 'ExpandMore');
98
+ export const GridFilterListIcon = createSvgIcon( /*#__PURE__*/_jsx("polygon", {
99
+ points: "22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"
100
+ }), 'FilterList');
101
+ export const GridFilterAltIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
102
+ children: [/*#__PURE__*/_jsx("path", {
103
+ d: "M3 6h18"
104
+ }), /*#__PURE__*/_jsx("path", {
105
+ d: "M7 12h10"
106
+ }), /*#__PURE__*/_jsx("path", {
107
+ d: "M10 18h4"
108
+ })]
109
+ }), 'FilterAlt');
110
+ export const GridSearchIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
111
+ children: [/*#__PURE__*/_jsx("circle", {
112
+ cx: "11",
113
+ cy: "11",
114
+ r: "8"
115
+ }), /*#__PURE__*/_jsx("line", {
116
+ x1: "21",
117
+ x2: "16.65",
118
+ y1: "21",
119
+ y2: "16.65"
120
+ })]
121
+ }), 'Search');
122
+ export const GridMenuIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
123
+ children: [/*#__PURE__*/_jsx("rect", {
124
+ width: "18",
125
+ height: "18",
126
+ x: "3",
127
+ y: "3",
128
+ rx: "2"
129
+ }), /*#__PURE__*/_jsx("path", {
130
+ d: "M7 8h10"
131
+ }), /*#__PURE__*/_jsx("path", {
132
+ d: "M7 12h10"
133
+ }), /*#__PURE__*/_jsx("path", {
134
+ d: "M7 16h10"
135
+ })]
136
+ }), 'Menu');
137
+ export const GridCheckCircleIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
138
+ children: [/*#__PURE__*/_jsx("path", {
139
+ d: "M22 11.08V12a10 10 0 1 1-5.93-9.14"
140
+ }), /*#__PURE__*/_jsx("polyline", {
141
+ points: "22 4 12 14.01 9 11.01"
142
+ })]
143
+ }), 'CheckCircle');
144
+ export const GridColumnIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
145
+ children: [/*#__PURE__*/_jsx("rect", {
146
+ width: "18",
147
+ height: "18",
148
+ x: "3",
149
+ y: "3",
150
+ rx: "2",
151
+ ry: "2"
152
+ }), /*#__PURE__*/_jsx("line", {
153
+ x1: "12",
154
+ x2: "12",
155
+ y1: "3",
156
+ y2: "21"
157
+ })]
158
+ }), 'ColumnIcon');
159
+ export const GridSeparatorIcon = createSvgIcon( /*#__PURE__*/_jsx("path", {
160
+ d: "M11 19V5h2v14z"
161
+ }), 'Separator');
162
+ export const GridViewHeadlineIcon = createSvgIcon( /*#__PURE__*/_jsx("path", {
163
+ fill: "none",
164
+ stroke: "currentColor",
165
+ strokeWidth: "1.5",
166
+ d: "M3 12h18M3 12v4.5M3 12V7.5M21 12v4.5m0-4.5V7.5m-18 9v3.9a.6.6 0 0 0 .6.6h16.8a.6.6 0 0 0 .6-.6v-3.9m-18 0h18m0-9V3.6a.6.6 0 0 0-.6-.6H3.6a.6.6 0 0 0-.6.6v3.9m18 0H3"
167
+ }), 'ViewHeadline');
168
+ export const GridTableRowsIcon = createSvgIcon( /*#__PURE__*/_jsx("path", {
169
+ fill: "currentColor",
170
+ strokeWidth: "0",
171
+ d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 2v3H5V5h14zm0 5v4H5v-4h14zM5 19v-3h14v3H5z"
172
+ }), 'TableRows');
173
+ export const GridViewStreamIcon = createSvgIcon( /*#__PURE__*/_jsx("path", {
174
+ d: "M4 6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2zm0 6h16"
175
+ }), 'ViewStream');
176
+ export const GridTripleDotsVerticalIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
177
+ children: [/*#__PURE__*/_jsx("circle", {
178
+ cx: "12",
179
+ cy: "12",
180
+ r: "1"
181
+ }), /*#__PURE__*/_jsx("circle", {
182
+ cx: "12",
183
+ cy: "5",
184
+ r: "1"
185
+ }), /*#__PURE__*/_jsx("circle", {
186
+ cx: "12",
187
+ cy: "19",
188
+ r: "1"
189
+ })]
190
+ }), 'TripleDotsVertical');
191
+ export const GridCloseIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
192
+ children: [/*#__PURE__*/_jsx("circle", {
193
+ cx: "12",
194
+ cy: "12",
195
+ r: "10"
196
+ }), /*#__PURE__*/_jsx("line", {
197
+ x1: "15",
198
+ x2: "9",
199
+ y1: "9",
200
+ y2: "15"
201
+ }), /*#__PURE__*/_jsx("line", {
202
+ x1: "9",
203
+ x2: "15",
204
+ y1: "9",
205
+ y2: "15"
206
+ })]
207
+ }), 'Close');
208
+ export const GridAddIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
209
+ children: [/*#__PURE__*/_jsx("circle", {
210
+ cx: "12",
211
+ cy: "12",
212
+ r: "10"
213
+ }), /*#__PURE__*/_jsx("line", {
214
+ x1: "12",
215
+ x2: "12",
216
+ y1: "8",
217
+ y2: "16"
218
+ }), /*#__PURE__*/_jsx("line", {
219
+ x1: "8",
220
+ x2: "16",
221
+ y1: "12",
222
+ y2: "12"
223
+ })]
224
+ }), 'Add');
225
+ export const GridRemoveIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
226
+ children: [/*#__PURE__*/_jsx("circle", {
227
+ cx: "12",
228
+ cy: "12",
229
+ r: "10"
230
+ }), /*#__PURE__*/_jsx("line", {
231
+ x1: "15",
232
+ x2: "9",
233
+ y1: "9",
234
+ y2: "15"
235
+ }), /*#__PURE__*/_jsx("line", {
236
+ x1: "9",
237
+ x2: "15",
238
+ y1: "9",
239
+ y2: "15"
240
+ })]
241
+ }), 'Remove');
242
+ export const GridLoadIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
243
+ children: [/*#__PURE__*/_jsx("path", {
244
+ d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"
245
+ }), /*#__PURE__*/_jsx("polyline", {
246
+ points: "7 10 12 15 17 10"
247
+ }), /*#__PURE__*/_jsx("line", {
248
+ x1: "12",
249
+ x2: "12",
250
+ y1: "15",
251
+ y2: "3"
252
+ })]
253
+ }), 'Load');
254
+ export const GridDragIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
255
+ children: [/*#__PURE__*/_jsx("circle", {
256
+ cx: "9",
257
+ cy: "12",
258
+ r: "1"
259
+ }), /*#__PURE__*/_jsx("circle", {
260
+ cx: "9",
261
+ cy: "5",
262
+ r: "1"
263
+ }), /*#__PURE__*/_jsx("circle", {
264
+ cx: "9",
265
+ cy: "19",
266
+ r: "1"
267
+ }), /*#__PURE__*/_jsx("circle", {
268
+ cx: "15",
269
+ cy: "12",
270
+ r: "1"
271
+ }), /*#__PURE__*/_jsx("circle", {
272
+ cx: "15",
273
+ cy: "5",
274
+ r: "1"
275
+ }), /*#__PURE__*/_jsx("circle", {
276
+ cx: "15",
277
+ cy: "19",
278
+ r: "1"
279
+ })]
280
+ }), 'Drag');
281
+ export const GridSaveAltIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
282
+ children: [/*#__PURE__*/_jsx("path", {
283
+ d: "M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"
284
+ }), /*#__PURE__*/_jsx("polyline", {
285
+ points: "14 2 14 8 20 8"
286
+ }), /*#__PURE__*/_jsx("path", {
287
+ d: "M12 12v6"
288
+ }), /*#__PURE__*/_jsx("path", {
289
+ d: "m15 15-3-3-3 3"
290
+ })]
291
+ }), 'SaveAlt');
292
+ export const GridCheckIcon = createSvgIcon( /*#__PURE__*/_jsx("polyline", {
293
+ points: "20 6 9 17 4 12"
294
+ }), 'Check');
295
+ export const GridMoreVertIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
296
+ children: [/*#__PURE__*/_jsx("circle", {
297
+ cx: "12",
298
+ cy: "12",
299
+ r: "1"
300
+ }), /*#__PURE__*/_jsx("circle", {
301
+ cx: "12",
302
+ cy: "5",
303
+ r: "1"
304
+ }), /*#__PURE__*/_jsx("circle", {
305
+ cx: "12",
306
+ cy: "19",
307
+ r: "1"
308
+ })]
309
+ }), 'MoreVert');
310
+ export const GridVisibilityOffIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
311
+ children: [/*#__PURE__*/_jsx("path", {
312
+ d: "M9.88 9.88a3 3 0 1 0 4.24 4.24"
313
+ }), /*#__PURE__*/_jsx("path", {
314
+ d: "M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68"
315
+ }), /*#__PURE__*/_jsx("path", {
316
+ d: "M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61"
317
+ }), /*#__PURE__*/_jsx("line", {
318
+ x1: "2",
319
+ x2: "22",
320
+ y1: "2",
321
+ y2: "22"
322
+ })]
323
+ }), 'VisibilityOff');
324
+ export const GridViewColumnIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
325
+ children: [/*#__PURE__*/_jsx("rect", {
326
+ width: "6",
327
+ height: "20",
328
+ x: "4",
329
+ y: "2",
330
+ rx: "2"
331
+ }), /*#__PURE__*/_jsx("rect", {
332
+ width: "6",
333
+ height: "20",
334
+ x: "14",
335
+ y: "2",
336
+ rx: "2"
337
+ })]
338
+ }), 'ViewColumn');
339
+ export const GridClearIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
340
+ children: [/*#__PURE__*/_jsx("path", {
341
+ d: "m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21"
342
+ }), /*#__PURE__*/_jsx("path", {
343
+ d: "M22 21H7"
344
+ }), /*#__PURE__*/_jsx("path", {
345
+ d: "m5 11 9 9"
346
+ })]
347
+ }), 'Clear');
348
+ export const GridDeleteIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
349
+ children: [/*#__PURE__*/_jsx("path", {
350
+ d: "M3 6h18"
351
+ }), /*#__PURE__*/_jsx("path", {
352
+ d: "M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"
353
+ }), /*#__PURE__*/_jsx("path", {
354
+ d: "M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"
355
+ }), /*#__PURE__*/_jsx("line", {
356
+ x1: "10",
357
+ x2: "10",
358
+ y1: "11",
359
+ y2: "17"
360
+ }), /*#__PURE__*/_jsx("line", {
361
+ x1: "14",
362
+ x2: "14",
363
+ y1: "11",
364
+ y2: "17"
365
+ })]
366
+ }), 'Delete');
367
+ export const GridDeleteForeverIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
368
+ children: [/*#__PURE__*/_jsx("path", {
369
+ d: "M3 6h18"
370
+ }), /*#__PURE__*/_jsx("path", {
371
+ d: "M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"
372
+ }), /*#__PURE__*/_jsx("path", {
373
+ d: "M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"
374
+ }), /*#__PURE__*/_jsx("line", {
375
+ x1: "10",
376
+ x2: "10",
377
+ y1: "11",
378
+ y2: "17"
379
+ }), /*#__PURE__*/_jsx("line", {
380
+ x1: "14",
381
+ x2: "14",
382
+ y1: "11",
383
+ y2: "17"
384
+ })]
385
+ }), 'Delete');
386
+ const GridColumnUnsortedIcon = /*#__PURE__*/React.memo(function GridColumnHeaderSortIcon(props) {
387
+ const {
388
+ sortingOrder
389
+ } = props,
390
+ other = _objectWithoutPropertiesLoose(props, _excluded2);
391
+ const rootProps = useGridRootProps();
392
+ const [nextSortDirection] = sortingOrder;
393
+ const Icon = nextSortDirection === 'asc' ? rootProps.slots.columnSortedAscendingIcon : rootProps.slots.columnSortedDescendingIcon;
394
+ return Icon ? /*#__PURE__*/_jsx(Icon, _extends({}, other)) : null;
395
+ });
396
+ const joyIconSlots = {
397
+ booleanCellTrueIcon: GridCheckIcon,
398
+ booleanCellFalseIcon: GridCloseIcon,
399
+ columnMenuIcon: GridTripleDotsVerticalIcon,
400
+ openFilterButtonIcon: GridFilterListIcon,
401
+ filterPanelDeleteIcon: GridCloseIcon,
402
+ columnFilteredIcon: GridFilterAltIcon,
403
+ columnSelectorIcon: GridColumnIcon,
404
+ columnUnsortedIcon: GridColumnUnsortedIcon,
405
+ columnSortedAscendingIcon: GridArrowUpwardIcon,
406
+ columnSortedDescendingIcon: GridArrowDownwardIcon,
407
+ columnResizeIcon: GridSeparatorIcon,
408
+ densityCompactIcon: GridViewHeadlineIcon,
409
+ densityStandardIcon: GridTableRowsIcon,
410
+ densityComfortableIcon: GridViewStreamIcon,
411
+ exportIcon: GridSaveAltIcon,
412
+ moreActionsIcon: GridMoreVertIcon,
413
+ treeDataCollapseIcon: GridExpandMoreIcon,
414
+ treeDataExpandIcon: GridKeyboardArrowRight,
415
+ groupingCriteriaCollapseIcon: GridExpandMoreIcon,
416
+ groupingCriteriaExpandIcon: GridKeyboardArrowRight,
417
+ detailPanelExpandIcon: GridAddIcon,
418
+ detailPanelCollapseIcon: GridRemoveIcon,
419
+ rowReorderIcon: GridDragIcon,
420
+ quickFilterIcon: GridSearchIcon,
421
+ quickFilterClearIcon: GridCloseIcon,
422
+ columnMenuHideIcon: GridVisibilityOffIcon,
423
+ columnMenuSortAscendingIcon: GridArrowUpwardIcon,
424
+ columnMenuSortDescendingIcon: GridArrowDownwardIcon,
425
+ columnMenuFilterIcon: GridFilterAltIcon,
426
+ columnMenuManageColumnsIcon: GridViewColumnIcon,
427
+ columnMenuClearIcon: GridClearIcon,
428
+ loadIcon: GridLoadIcon,
429
+ filterPanelAddIcon: GridAddIcon,
430
+ filterPanelRemoveAllIcon: GridDeleteForeverIcon,
431
+ columnReorderIcon: GridDragIcon
432
+ };
433
+ export default joyIconSlots;
@@ -18,7 +18,13 @@ import JoyIconButton from '@mui/joy/IconButton';
18
18
  import JoySwitch from '@mui/joy/Switch';
19
19
  import JoySelect from '@mui/joy/Select';
20
20
  import JoyOption from '@mui/joy/Option';
21
+ import JoyBox from '@mui/joy/Box';
22
+ import JoyTypography from '@mui/joy/Typography';
21
23
  import { unstable_useForkRef as useForkRef } from '@mui/utils';
24
+ import joyIconSlots, { GridKeyboardArrowRight, GridKeyboardArrowLeft } from './icons';
25
+ import { useGridApiContext } from '../hooks/utils/useGridApiContext';
26
+ import { useGridRootProps } from '../hooks/utils/useGridRootProps';
27
+ import { gridFilteredTopLevelRowCountSelector, gridPaginationModelSelector } from '../hooks';
22
28
  import { jsx as _jsx } from "react/jsx-runtime";
23
29
  import { jsxs as _jsxs } from "react/jsx-runtime";
24
30
  function convertColor(color) {
@@ -261,7 +267,107 @@ const InputLabel = /*#__PURE__*/React.forwardRef((_ref8, ref) => {
261
267
  sx: sx
262
268
  }));
263
269
  });
264
- const joySlots = {
270
+ function labelDisplayedRows({
271
+ from,
272
+ to,
273
+ count
274
+ }) {
275
+ return `${from}–${to} of ${count !== -1 ? count : `more than ${to}`}`;
276
+ }
277
+ const getLabelDisplayedRowsTo = ({
278
+ page,
279
+ pageSize,
280
+ rowCount
281
+ }) => {
282
+ if (rowCount === -1) {
283
+ return (page + 1) * pageSize;
284
+ }
285
+ return pageSize === -1 ? rowCount : Math.min(rowCount, (page + 1) * pageSize);
286
+ };
287
+ const Pagination = /*#__PURE__*/React.forwardRef((props, ref) => {
288
+ const apiRef = useGridApiContext();
289
+ const rootProps = useGridRootProps();
290
+ const paginationModel = gridPaginationModelSelector(apiRef);
291
+ const visibleTopLevelRowCount = gridFilteredTopLevelRowCountSelector(apiRef);
292
+ const rowCount = React.useMemo(() => rootProps.rowCount ?? visibleTopLevelRowCount ?? 0, [rootProps.rowCount, visibleTopLevelRowCount]);
293
+ const lastPage = React.useMemo(() => Math.floor(rowCount / (paginationModel.pageSize || 1)), [rowCount, paginationModel.pageSize]);
294
+ const handlePageChange = React.useCallback(page => {
295
+ apiRef.current.setPage(page);
296
+ }, [apiRef]);
297
+ const page = paginationModel.page <= lastPage ? paginationModel.page : lastPage;
298
+ const pageSize = paginationModel.pageSize;
299
+ const pageSizeOptions = rootProps.pageSizeOptions?.includes(pageSize) ? rootProps.pageSizeOptions : [];
300
+ const handleChangeRowsPerPage = (event, newValue) => {
301
+ const newPageSize = Number(newValue);
302
+ apiRef.current.setPageSize(newPageSize);
303
+ };
304
+ return /*#__PURE__*/_jsxs(JoyBox, {
305
+ sx: {
306
+ display: 'flex',
307
+ alignItems: 'center',
308
+ gap: 2,
309
+ justifyContent: 'flex-end',
310
+ px: 2
311
+ },
312
+ ref: ref,
313
+ children: [/*#__PURE__*/_jsxs(JoyFormControl, {
314
+ orientation: "horizontal",
315
+ size: "sm",
316
+ children: [/*#__PURE__*/_jsx(JoyFormLabel, {
317
+ children: "Rows per page:"
318
+ }), /*#__PURE__*/_jsx(JoySelect, {
319
+ onChange: handleChangeRowsPerPage,
320
+ value: pageSize,
321
+ children: pageSizeOptions.map(option => {
322
+ return /*#__PURE__*/_jsx(Option, {
323
+ value: option,
324
+ children: option
325
+ }, option);
326
+ })
327
+ })]
328
+ }), /*#__PURE__*/_jsx(JoyTypography, {
329
+ textAlign: "center",
330
+ fontSize: "xs",
331
+ fontWeight: "md",
332
+ children: labelDisplayedRows({
333
+ from: rowCount === 0 ? 0 : page * pageSize + 1,
334
+ to: getLabelDisplayedRowsTo({
335
+ page,
336
+ pageSize,
337
+ rowCount
338
+ }),
339
+ count: rowCount === -1 ? -1 : rowCount
340
+ })
341
+ }), /*#__PURE__*/_jsxs(JoyBox, {
342
+ sx: {
343
+ display: 'flex',
344
+ gap: 0.5
345
+ },
346
+ children: [/*#__PURE__*/_jsx(JoyIconButton, {
347
+ size: "sm",
348
+ color: "neutral",
349
+ variant: "outlined",
350
+ disabled: page === 0,
351
+ onClick: () => handlePageChange(page - 1),
352
+ sx: {
353
+ bgcolor: 'background.surface'
354
+ },
355
+ children: /*#__PURE__*/_jsx(GridKeyboardArrowLeft, {})
356
+ }), /*#__PURE__*/_jsx(JoyIconButton, {
357
+ size: "sm",
358
+ color: "neutral",
359
+ variant: "outlined",
360
+ disabled: rowCount !== -1 ? page >= Math.ceil(rowCount / pageSize) - 1 : false,
361
+ onClick: () => handlePageChange(page + 1),
362
+ sx: {
363
+ bgcolor: 'background.surface'
364
+ },
365
+ children: /*#__PURE__*/_jsx(GridKeyboardArrowRight, {})
366
+ })]
367
+ })]
368
+ });
369
+ });
370
+ const joySlots = _extends({}, joyIconSlots, {
265
371
  baseCheckbox: Checkbox,
266
372
  baseTextField: TextField,
267
373
  baseButton: Button,
@@ -270,9 +376,9 @@ const joySlots = {
270
376
  baseSelect: Select,
271
377
  baseSelectOption: Option,
272
378
  baseInputLabel: InputLabel,
273
- baseFormControl: JoyFormControl
379
+ baseFormControl: JoyFormControl,
274
380
  // BaseTooltip: MUITooltip,
275
381
  // BasePopper: MUIPopper,
276
- };
277
-
382
+ pagination: Pagination
383
+ });
278
384
  export default joySlots;
@@ -60,6 +60,34 @@ const arSDGrid = {
60
60
  filterOperatorIsEmpty: 'خالي',
61
61
  filterOperatorIsNotEmpty: 'غير خالي',
62
62
  filterOperatorIsAnyOf: 'أي من',
63
+ // filterOperator=: '=',
64
+ // filterOperator!=: '!=',
65
+ // filterOperator>: '>',
66
+ // filterOperator>=: '>=',
67
+ // filterOperator<: '<',
68
+ // filterOperator<=: '<=',
69
+
70
+ // Header filter operators text
71
+ // headerFilterOperatorContains: 'Contains',
72
+ // headerFilterOperatorEquals: 'Equals',
73
+ // headerFilterOperatorStartsWith: 'Starts with',
74
+ // headerFilterOperatorEndsWith: 'Ends with',
75
+ // headerFilterOperatorIs: 'Is',
76
+ // headerFilterOperatorNot: 'Is not',
77
+ // headerFilterOperatorAfter: 'Is after',
78
+ // headerFilterOperatorOnOrAfter: 'Is on or after',
79
+ // headerFilterOperatorBefore: 'Is before',
80
+ // headerFilterOperatorOnOrBefore: 'Is on or before',
81
+ // headerFilterOperatorIsEmpty: 'Is empty',
82
+ // headerFilterOperatorIsNotEmpty: 'Is not empty',
83
+ // headerFilterOperatorIsAnyOf: 'Is any of',
84
+ // headerFilterOperator=: 'Equals',
85
+ // headerFilterOperator!=: 'Not equals',
86
+ // headerFilterOperator>: 'Is greater than',
87
+ // headerFilterOperator>=: 'Is greater than or equal to',
88
+ // headerFilterOperator<: 'Is less than',
89
+ // headerFilterOperator<=: 'Is less than or equal to',
90
+
63
91
  // Filter values text
64
92
  filterValueAny: 'أي',
65
93
  filterValueTrue: 'صائب',