material-react-table 1.15.0 → 2.0.0-alpha.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 (466) hide show
  1. package/dist/cjs/index.js +1626 -1324
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/types/MaterialReactTable.d.ts +7 -11
  4. package/dist/cjs/types/body/MRT_TableBody.d.ts +4 -5
  5. package/dist/cjs/types/body/MRT_TableBodyCell.d.ts +5 -5
  6. package/dist/cjs/types/body/MRT_TableBodyCellValue.d.ts +4 -4
  7. package/dist/cjs/types/body/MRT_TableBodyRow.d.ts +5 -6
  8. package/dist/cjs/types/body/MRT_TableBodyRowGrabHandle.d.ts +5 -5
  9. package/dist/cjs/types/body/MRT_TableDetailPanel.d.ts +6 -6
  10. package/dist/cjs/types/body/index.d.ts +6 -0
  11. package/dist/cjs/types/buttons/MRT_ColumnPinningButtons.d.ts +2 -2
  12. package/dist/cjs/types/buttons/MRT_CopyButton.d.ts +2 -2
  13. package/dist/cjs/types/buttons/MRT_EditActionButtons.d.ts +2 -2
  14. package/dist/cjs/types/buttons/MRT_ExpandAllButton.d.ts +3 -3
  15. package/dist/cjs/types/buttons/MRT_ExpandButton.d.ts +2 -2
  16. package/dist/cjs/types/buttons/MRT_GrabHandleButton.d.ts +2 -2
  17. package/dist/cjs/types/buttons/MRT_ShowHideColumnsButton.d.ts +2 -2
  18. package/dist/cjs/types/buttons/MRT_ToggleDensePaddingButton.d.ts +2 -2
  19. package/dist/cjs/types/buttons/MRT_ToggleFiltersButton.d.ts +2 -2
  20. package/dist/cjs/types/buttons/MRT_ToggleFullScreenButton.d.ts +7 -0
  21. package/dist/cjs/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +2 -2
  22. package/dist/cjs/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +2 -2
  23. package/dist/cjs/types/buttons/index.d.ts +12 -0
  24. package/dist/cjs/types/column.utils.d.ts +39 -51
  25. package/dist/cjs/types/filterFns.d.ts +14 -14
  26. package/dist/cjs/types/footer/MRT_TableFooter.d.ts +3 -3
  27. package/dist/cjs/types/footer/MRT_TableFooterCell.d.ts +4 -4
  28. package/dist/cjs/types/footer/MRT_TableFooterRow.d.ts +4 -4
  29. package/dist/cjs/types/footer/index.d.ts +3 -0
  30. package/dist/cjs/types/head/MRT_TableHead.d.ts +3 -3
  31. package/dist/cjs/types/head/MRT_TableHeadCell.d.ts +4 -4
  32. package/dist/cjs/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +4 -4
  33. package/dist/cjs/types/head/MRT_TableHeadCellFilterContainer.d.ts +4 -4
  34. package/dist/cjs/types/head/MRT_TableHeadCellFilterLabel.d.ts +4 -4
  35. package/dist/cjs/types/head/MRT_TableHeadCellGrabHandle.d.ts +4 -4
  36. package/dist/cjs/types/head/MRT_TableHeadCellResizeHandle.d.ts +4 -4
  37. package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +4 -4
  38. package/dist/cjs/types/head/MRT_TableHeadRow.d.ts +4 -4
  39. package/dist/cjs/types/head/index.d.ts +9 -0
  40. package/dist/cjs/types/hooks/useMRT_DisplayColumns.d.ts +9 -0
  41. package/dist/cjs/types/hooks/useMRT_Effects.d.ts +2 -0
  42. package/dist/cjs/types/hooks/useMRT_TableInstance.d.ts +2 -0
  43. package/dist/cjs/types/hooks/useMRT_TableOptions.d.ts +2 -0
  44. package/dist/cjs/types/index.d.ts +14 -25
  45. package/dist/cjs/types/inputs/MRT_EditCellTextField.d.ts +2 -3
  46. package/dist/cjs/types/inputs/MRT_FilterCheckbox.d.ts +4 -4
  47. package/dist/cjs/types/inputs/MRT_FilterRangeFields.d.ts +4 -4
  48. package/dist/cjs/types/inputs/MRT_FilterRangeSlider.d.ts +4 -4
  49. package/dist/cjs/types/inputs/MRT_FilterTextField.d.ts +4 -4
  50. package/dist/cjs/types/inputs/MRT_GlobalFilterTextField.d.ts +2 -2
  51. package/dist/cjs/types/inputs/MRT_SelectCheckbox.d.ts +4 -4
  52. package/dist/cjs/types/inputs/index.d.ts +7 -0
  53. package/dist/cjs/types/locales/ar.d.ts +2 -0
  54. package/dist/cjs/types/locales/bg.d.ts +2 -0
  55. package/dist/cjs/types/locales/et.d.ts +2 -0
  56. package/dist/cjs/types/locales/ko.d.ts +2 -0
  57. package/dist/cjs/types/menus/MRT_ColumnActionMenu.d.ts +4 -4
  58. package/dist/cjs/types/menus/MRT_FilterOptionMenu.d.ts +2 -2
  59. package/dist/cjs/types/menus/MRT_RowActionMenu.d.ts +4 -4
  60. package/dist/cjs/types/menus/MRT_ShowHideColumnsMenu.d.ts +2 -2
  61. package/dist/cjs/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +2 -2
  62. package/dist/cjs/types/menus/index.d.ts +5 -0
  63. package/dist/cjs/types/modals/MRT_EditRowModal.d.ts +7 -0
  64. package/dist/cjs/types/modals/index.d.ts +1 -0
  65. package/dist/cjs/types/sortingFns.d.ts +3 -2
  66. package/dist/cjs/types/table/MRT_Table.d.ts +3 -3
  67. package/dist/cjs/types/table/MRT_TableContainer.d.ts +3 -3
  68. package/dist/cjs/types/table/MRT_TablePaper.d.ts +3 -3
  69. package/dist/cjs/types/table/index.d.ts +4 -0
  70. package/dist/cjs/types/toolbar/MRT_BottomToolbar.d.ts +2 -2
  71. package/dist/cjs/types/toolbar/MRT_LinearProgressBar.d.ts +2 -2
  72. package/dist/cjs/types/toolbar/MRT_TablePagination.d.ts +2 -2
  73. package/dist/cjs/types/toolbar/MRT_ToolbarAlertBanner.d.ts +2 -2
  74. package/dist/cjs/types/toolbar/MRT_ToolbarDropZone.d.ts +2 -2
  75. package/dist/cjs/types/toolbar/MRT_ToolbarInternalButtons.d.ts +2 -2
  76. package/dist/cjs/types/toolbar/MRT_TopToolbar.d.ts +2 -2
  77. package/dist/cjs/types/toolbar/index.d.ts +7 -0
  78. package/dist/cjs/types/types.d.ts +115 -84
  79. package/dist/cjs/types/useMaterialReactTable.d.ts +2 -0
  80. package/dist/esm/material-react-table.esm.js +1556 -1318
  81. package/dist/esm/material-react-table.esm.js.map +1 -1
  82. package/dist/esm/types/MaterialReactTable.d.ts +7 -11
  83. package/dist/esm/types/body/MRT_TableBody.d.ts +4 -5
  84. package/dist/esm/types/body/MRT_TableBodyCell.d.ts +5 -5
  85. package/dist/esm/types/body/MRT_TableBodyCellValue.d.ts +4 -4
  86. package/dist/esm/types/body/MRT_TableBodyRow.d.ts +5 -6
  87. package/dist/esm/types/body/MRT_TableBodyRowGrabHandle.d.ts +5 -5
  88. package/dist/esm/types/body/MRT_TableDetailPanel.d.ts +6 -6
  89. package/dist/esm/types/body/index.d.ts +6 -0
  90. package/dist/esm/types/buttons/MRT_ColumnPinningButtons.d.ts +2 -2
  91. package/dist/esm/types/buttons/MRT_CopyButton.d.ts +2 -2
  92. package/dist/esm/types/buttons/MRT_EditActionButtons.d.ts +2 -2
  93. package/dist/esm/types/buttons/MRT_ExpandAllButton.d.ts +3 -3
  94. package/dist/esm/types/buttons/MRT_ExpandButton.d.ts +2 -2
  95. package/dist/esm/types/buttons/MRT_GrabHandleButton.d.ts +2 -2
  96. package/dist/esm/types/buttons/MRT_ShowHideColumnsButton.d.ts +2 -2
  97. package/dist/esm/types/buttons/MRT_ToggleDensePaddingButton.d.ts +2 -2
  98. package/dist/esm/types/buttons/MRT_ToggleFiltersButton.d.ts +2 -2
  99. package/dist/esm/types/buttons/MRT_ToggleFullScreenButton.d.ts +7 -0
  100. package/dist/esm/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +2 -2
  101. package/dist/esm/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +2 -2
  102. package/dist/esm/types/buttons/index.d.ts +12 -0
  103. package/dist/esm/types/column.utils.d.ts +39 -51
  104. package/dist/esm/types/filterFns.d.ts +14 -14
  105. package/dist/esm/types/footer/MRT_TableFooter.d.ts +3 -3
  106. package/dist/esm/types/footer/MRT_TableFooterCell.d.ts +4 -4
  107. package/dist/esm/types/footer/MRT_TableFooterRow.d.ts +4 -4
  108. package/dist/esm/types/footer/index.d.ts +3 -0
  109. package/dist/esm/types/head/MRT_TableHead.d.ts +3 -3
  110. package/dist/esm/types/head/MRT_TableHeadCell.d.ts +4 -4
  111. package/dist/esm/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +4 -4
  112. package/dist/esm/types/head/MRT_TableHeadCellFilterContainer.d.ts +4 -4
  113. package/dist/esm/types/head/MRT_TableHeadCellFilterLabel.d.ts +4 -4
  114. package/dist/esm/types/head/MRT_TableHeadCellGrabHandle.d.ts +4 -4
  115. package/dist/esm/types/head/MRT_TableHeadCellResizeHandle.d.ts +4 -4
  116. package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +4 -4
  117. package/dist/esm/types/head/MRT_TableHeadRow.d.ts +4 -4
  118. package/dist/esm/types/head/index.d.ts +9 -0
  119. package/dist/esm/types/hooks/useMRT_DisplayColumns.d.ts +9 -0
  120. package/dist/esm/types/hooks/useMRT_Effects.d.ts +2 -0
  121. package/dist/esm/types/hooks/useMRT_TableInstance.d.ts +2 -0
  122. package/dist/esm/types/hooks/useMRT_TableOptions.d.ts +2 -0
  123. package/dist/esm/types/index.d.ts +14 -25
  124. package/dist/esm/types/inputs/MRT_EditCellTextField.d.ts +2 -3
  125. package/dist/esm/types/inputs/MRT_FilterCheckbox.d.ts +4 -4
  126. package/dist/esm/types/inputs/MRT_FilterRangeFields.d.ts +4 -4
  127. package/dist/esm/types/inputs/MRT_FilterRangeSlider.d.ts +4 -4
  128. package/dist/esm/types/inputs/MRT_FilterTextField.d.ts +4 -4
  129. package/dist/esm/types/inputs/MRT_GlobalFilterTextField.d.ts +2 -2
  130. package/dist/esm/types/inputs/MRT_SelectCheckbox.d.ts +4 -4
  131. package/dist/esm/types/inputs/index.d.ts +7 -0
  132. package/dist/esm/types/locales/ar.d.ts +2 -0
  133. package/dist/esm/types/locales/bg.d.ts +2 -0
  134. package/dist/esm/types/locales/et.d.ts +2 -0
  135. package/dist/esm/types/locales/ko.d.ts +2 -0
  136. package/dist/esm/types/menus/MRT_ColumnActionMenu.d.ts +4 -4
  137. package/dist/esm/types/menus/MRT_FilterOptionMenu.d.ts +2 -2
  138. package/dist/esm/types/menus/MRT_RowActionMenu.d.ts +4 -4
  139. package/dist/esm/types/menus/MRT_ShowHideColumnsMenu.d.ts +2 -2
  140. package/dist/esm/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +2 -2
  141. package/dist/esm/types/menus/index.d.ts +5 -0
  142. package/dist/esm/types/modals/MRT_EditRowModal.d.ts +7 -0
  143. package/dist/esm/types/modals/index.d.ts +1 -0
  144. package/dist/esm/types/sortingFns.d.ts +3 -2
  145. package/dist/esm/types/table/MRT_Table.d.ts +3 -3
  146. package/dist/esm/types/table/MRT_TableContainer.d.ts +3 -3
  147. package/dist/esm/types/table/MRT_TablePaper.d.ts +3 -3
  148. package/dist/esm/types/table/index.d.ts +4 -0
  149. package/dist/esm/types/toolbar/MRT_BottomToolbar.d.ts +2 -2
  150. package/dist/esm/types/toolbar/MRT_LinearProgressBar.d.ts +2 -2
  151. package/dist/esm/types/toolbar/MRT_TablePagination.d.ts +2 -2
  152. package/dist/esm/types/toolbar/MRT_ToolbarAlertBanner.d.ts +2 -2
  153. package/dist/esm/types/toolbar/MRT_ToolbarDropZone.d.ts +2 -2
  154. package/dist/esm/types/toolbar/MRT_ToolbarInternalButtons.d.ts +2 -2
  155. package/dist/esm/types/toolbar/MRT_TopToolbar.d.ts +2 -2
  156. package/dist/esm/types/toolbar/index.d.ts +7 -0
  157. package/dist/esm/types/types.d.ts +115 -84
  158. package/dist/esm/types/useMaterialReactTable.d.ts +2 -0
  159. package/dist/index.d.ts +598 -148
  160. package/locales/ar.d.ts +2 -0
  161. package/locales/ar.esm.d.ts +2 -0
  162. package/locales/ar.esm.js +93 -0
  163. package/locales/ar.esm.js.map +1 -0
  164. package/locales/ar.js +97 -0
  165. package/locales/ar.js.map +1 -0
  166. package/locales/bg.d.ts +2 -0
  167. package/locales/bg.esm.d.ts +2 -0
  168. package/locales/bg.esm.js +93 -0
  169. package/locales/bg.esm.js.map +1 -0
  170. package/locales/bg.js +97 -0
  171. package/locales/bg.js.map +1 -0
  172. package/locales/cs.esm.js +1 -2
  173. package/locales/cs.esm.js.map +1 -1
  174. package/locales/cs.js +1 -2
  175. package/locales/cs.js.map +1 -1
  176. package/locales/da.esm.js +0 -1
  177. package/locales/da.esm.js.map +1 -1
  178. package/locales/da.js +0 -1
  179. package/locales/da.js.map +1 -1
  180. package/locales/de.esm.js +0 -1
  181. package/locales/de.esm.js.map +1 -1
  182. package/locales/de.js +0 -1
  183. package/locales/de.js.map +1 -1
  184. package/locales/en.esm.js +0 -1
  185. package/locales/en.esm.js.map +1 -1
  186. package/locales/en.js +0 -1
  187. package/locales/en.js.map +1 -1
  188. package/locales/es.esm.js +0 -1
  189. package/locales/es.esm.js.map +1 -1
  190. package/locales/es.js +0 -1
  191. package/locales/es.js.map +1 -1
  192. package/locales/et.d.ts +2 -0
  193. package/locales/et.esm.d.ts +2 -0
  194. package/locales/et.esm.js +93 -0
  195. package/locales/et.esm.js.map +1 -0
  196. package/locales/et.js +97 -0
  197. package/locales/et.js.map +1 -0
  198. package/locales/fa.esm.js +0 -1
  199. package/locales/fa.esm.js.map +1 -1
  200. package/locales/fa.js +0 -1
  201. package/locales/fa.js.map +1 -1
  202. package/locales/fi.esm.js +0 -1
  203. package/locales/fi.esm.js.map +1 -1
  204. package/locales/fi.js +0 -1
  205. package/locales/fi.js.map +1 -1
  206. package/locales/fr.esm.js +0 -1
  207. package/locales/fr.esm.js.map +1 -1
  208. package/locales/fr.js +0 -1
  209. package/locales/fr.js.map +1 -1
  210. package/locales/hu.esm.js +0 -1
  211. package/locales/hu.esm.js.map +1 -1
  212. package/locales/hu.js +0 -1
  213. package/locales/hu.js.map +1 -1
  214. package/locales/id.esm.js +0 -1
  215. package/locales/id.esm.js.map +1 -1
  216. package/locales/id.js +0 -1
  217. package/locales/id.js.map +1 -1
  218. package/locales/it.esm.js +0 -1
  219. package/locales/it.esm.js.map +1 -1
  220. package/locales/it.js +0 -1
  221. package/locales/it.js.map +1 -1
  222. package/locales/ja.esm.js +0 -1
  223. package/locales/ja.esm.js.map +1 -1
  224. package/locales/ja.js +0 -1
  225. package/locales/ja.js.map +1 -1
  226. package/locales/ko.d.ts +2 -0
  227. package/locales/ko.esm.d.ts +2 -0
  228. package/locales/ko.esm.js +93 -0
  229. package/locales/ko.esm.js.map +1 -0
  230. package/locales/ko.js +97 -0
  231. package/locales/ko.js.map +1 -0
  232. package/locales/nl.esm.js +0 -1
  233. package/locales/nl.esm.js.map +1 -1
  234. package/locales/nl.js +0 -1
  235. package/locales/nl.js.map +1 -1
  236. package/locales/no.esm.js +0 -1
  237. package/locales/no.esm.js.map +1 -1
  238. package/locales/no.js +0 -1
  239. package/locales/no.js.map +1 -1
  240. package/locales/pl.esm.js +0 -1
  241. package/locales/pl.esm.js.map +1 -1
  242. package/locales/pl.js +0 -1
  243. package/locales/pl.js.map +1 -1
  244. package/locales/pt-BR.esm.js +0 -1
  245. package/locales/pt-BR.esm.js.map +1 -1
  246. package/locales/pt-BR.js +0 -1
  247. package/locales/pt-BR.js.map +1 -1
  248. package/locales/pt.esm.js +0 -1
  249. package/locales/pt.esm.js.map +1 -1
  250. package/locales/pt.js +0 -1
  251. package/locales/pt.js.map +1 -1
  252. package/locales/ro.esm.js +0 -1
  253. package/locales/ro.esm.js.map +1 -1
  254. package/locales/ro.js +0 -1
  255. package/locales/ro.js.map +1 -1
  256. package/locales/ru.esm.js +0 -1
  257. package/locales/ru.esm.js.map +1 -1
  258. package/locales/ru.js +0 -1
  259. package/locales/ru.js.map +1 -1
  260. package/locales/sk.esm.js +0 -1
  261. package/locales/sk.esm.js.map +1 -1
  262. package/locales/sk.js +0 -1
  263. package/locales/sk.js.map +1 -1
  264. package/locales/sr-Cyrl-RS.esm.js +0 -1
  265. package/locales/sr-Cyrl-RS.esm.js.map +1 -1
  266. package/locales/sr-Cyrl-RS.js +0 -1
  267. package/locales/sr-Cyrl-RS.js.map +1 -1
  268. package/locales/sr-Latn-RS.esm.js +0 -1
  269. package/locales/sr-Latn-RS.esm.js.map +1 -1
  270. package/locales/sr-Latn-RS.js +0 -1
  271. package/locales/sr-Latn-RS.js.map +1 -1
  272. package/locales/sv.esm.js +0 -1
  273. package/locales/sv.esm.js.map +1 -1
  274. package/locales/sv.js +0 -1
  275. package/locales/sv.js.map +1 -1
  276. package/locales/tr.esm.js +0 -1
  277. package/locales/tr.esm.js.map +1 -1
  278. package/locales/tr.js +0 -1
  279. package/locales/tr.js.map +1 -1
  280. package/locales/uk.esm.js +0 -1
  281. package/locales/uk.esm.js.map +1 -1
  282. package/locales/uk.js +0 -1
  283. package/locales/uk.js.map +1 -1
  284. package/locales/vi.esm.js +0 -1
  285. package/locales/vi.esm.js.map +1 -1
  286. package/locales/vi.js +0 -1
  287. package/locales/vi.js.map +1 -1
  288. package/locales/zh-Hans.esm.js +7 -8
  289. package/locales/zh-Hans.esm.js.map +1 -1
  290. package/locales/zh-Hans.js +7 -8
  291. package/locales/zh-Hans.js.map +1 -1
  292. package/locales/zh-Hant.esm.js +1 -2
  293. package/locales/zh-Hant.esm.js.map +1 -1
  294. package/locales/zh-Hant.js +1 -2
  295. package/locales/zh-Hant.js.map +1 -1
  296. package/package.json +10 -8
  297. package/src/MaterialReactTable.tsx +31 -168
  298. package/src/body/MRT_TableBody.tsx +10 -23
  299. package/src/body/MRT_TableBodyCell.tsx +35 -38
  300. package/src/body/MRT_TableBodyCellValue.tsx +7 -4
  301. package/src/body/MRT_TableBodyRow.tsx +7 -7
  302. package/src/body/MRT_TableBodyRowGrabHandle.tsx +13 -10
  303. package/src/body/MRT_TableDetailPanel.tsx +11 -11
  304. package/src/body/index.ts +6 -0
  305. package/src/buttons/MRT_ColumnPinningButtons.tsx +2 -4
  306. package/src/buttons/MRT_CopyButton.tsx +9 -9
  307. package/src/buttons/MRT_EditActionButtons.tsx +56 -25
  308. package/src/buttons/MRT_ExpandAllButton.tsx +5 -3
  309. package/src/buttons/MRT_ExpandButton.tsx +2 -2
  310. package/src/buttons/MRT_GrabHandleButton.tsx +2 -2
  311. package/src/buttons/MRT_ShowHideColumnsButton.tsx +2 -5
  312. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +2 -3
  313. package/src/buttons/MRT_ToggleFiltersButton.tsx +2 -5
  314. package/src/buttons/{MRT_FullScreenToggleButton.tsx → MRT_ToggleFullScreenButton.tsx} +13 -6
  315. package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +3 -5
  316. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +16 -8
  317. package/src/buttons/index.ts +12 -0
  318. package/src/column.utils.ts +96 -45
  319. package/src/filterFns.ts +14 -14
  320. package/src/footer/MRT_TableFooter.tsx +4 -4
  321. package/src/footer/MRT_TableFooterCell.tsx +7 -4
  322. package/src/footer/MRT_TableFooterRow.tsx +6 -6
  323. package/src/footer/index.ts +3 -0
  324. package/src/head/MRT_TableHead.tsx +4 -4
  325. package/src/head/MRT_TableHeadCell.tsx +7 -4
  326. package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +14 -12
  327. package/src/head/MRT_TableHeadCellFilterContainer.tsx +9 -4
  328. package/src/head/MRT_TableHeadCellFilterLabel.tsx +9 -4
  329. package/src/head/MRT_TableHeadCellGrabHandle.tsx +13 -13
  330. package/src/head/MRT_TableHeadCellResizeHandle.tsx +9 -4
  331. package/src/head/MRT_TableHeadCellSortLabel.tsx +8 -6
  332. package/src/head/MRT_TableHeadRow.tsx +6 -6
  333. package/src/head/index.ts +9 -0
  334. package/src/hooks/useMRT_DisplayColumns.tsx +142 -0
  335. package/src/hooks/useMRT_Effects.ts +77 -0
  336. package/src/hooks/useMRT_TableInstance.ts +291 -0
  337. package/src/hooks/useMRT_TableOptions.ts +169 -0
  338. package/src/index.ts +16 -0
  339. package/src/inputs/MRT_EditCellTextField.tsx +39 -25
  340. package/src/inputs/MRT_FilterCheckbox.tsx +14 -11
  341. package/src/inputs/MRT_FilterRangeFields.tsx +7 -4
  342. package/src/inputs/MRT_FilterRangeSlider.tsx +18 -19
  343. package/src/inputs/MRT_FilterTextField.tsx +15 -15
  344. package/src/inputs/MRT_GlobalFilterTextField.tsx +2 -4
  345. package/src/inputs/MRT_SelectCheckbox.tsx +8 -4
  346. package/src/inputs/index.ts +7 -0
  347. package/src/locales/ar.ts +94 -0
  348. package/src/locales/bg.ts +93 -0
  349. package/src/{_locales → locales}/cs.ts +1 -2
  350. package/src/{_locales → locales}/da.ts +0 -1
  351. package/src/{_locales → locales}/de.ts +0 -1
  352. package/src/{_locales → locales}/en.ts +1 -1
  353. package/src/{_locales → locales}/es.ts +0 -1
  354. package/src/locales/et.ts +94 -0
  355. package/src/{_locales → locales}/fa.ts +0 -1
  356. package/src/{_locales → locales}/fi.ts +0 -1
  357. package/src/{_locales → locales}/fr.ts +0 -1
  358. package/src/{_locales → locales}/hu.ts +0 -1
  359. package/src/{_locales → locales}/id.ts +0 -1
  360. package/src/{_locales → locales}/it.ts +0 -1
  361. package/src/{_locales → locales}/ja.ts +0 -1
  362. package/src/locales/ko.ts +93 -0
  363. package/src/{_locales → locales}/nl.ts +0 -1
  364. package/src/{_locales → locales}/no.ts +1 -1
  365. package/src/{_locales → locales}/pl.ts +0 -1
  366. package/src/{_locales → locales}/pt-BR.ts +0 -1
  367. package/src/{_locales → locales}/pt.ts +0 -1
  368. package/src/{_locales → locales}/ro.ts +0 -1
  369. package/src/{_locales → locales}/ru.ts +0 -1
  370. package/src/{_locales → locales}/sk.ts +0 -1
  371. package/src/{_locales → locales}/sr-Cyrl-RS.ts +0 -1
  372. package/src/{_locales → locales}/sr-Latn-RS.ts +0 -1
  373. package/src/{_locales → locales}/sv.ts +0 -1
  374. package/src/{_locales → locales}/tr.ts +0 -1
  375. package/src/{_locales → locales}/uk.ts +0 -1
  376. package/src/{_locales → locales}/vi.ts +0 -1
  377. package/src/{_locales → locales}/zh-Hans.ts +7 -8
  378. package/src/{_locales → locales}/zh-Hant.ts +1 -2
  379. package/src/menus/MRT_ColumnActionMenu.tsx +8 -8
  380. package/src/menus/MRT_FilterOptionMenu.tsx +4 -3
  381. package/src/menus/MRT_RowActionMenu.tsx +5 -5
  382. package/src/menus/MRT_ShowHideColumnsMenu.tsx +4 -6
  383. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +4 -4
  384. package/src/menus/index.ts +5 -0
  385. package/src/modals/MRT_EditRowModal.tsx +115 -0
  386. package/src/modals/index.ts +1 -0
  387. package/src/sortingFns.ts +6 -2
  388. package/src/table/MRT_Table.tsx +40 -33
  389. package/src/table/MRT_TableContainer.tsx +23 -5
  390. package/src/table/MRT_TablePaper.tsx +13 -4
  391. package/src/table/index.ts +4 -0
  392. package/src/toolbar/MRT_BottomToolbar.tsx +2 -2
  393. package/src/toolbar/MRT_LinearProgressBar.tsx +2 -2
  394. package/src/toolbar/MRT_TablePagination.tsx +2 -2
  395. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +2 -2
  396. package/src/toolbar/MRT_ToolbarDropZone.tsx +2 -2
  397. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +6 -8
  398. package/src/toolbar/MRT_TopToolbar.tsx +2 -2
  399. package/src/toolbar/index.ts +7 -0
  400. package/src/types.ts +781 -765
  401. package/src/useMaterialReactTable.ts +11 -0
  402. package/dist/cjs/types/body/MRT_EditRowModal.d.ts +0 -8
  403. package/dist/cjs/types/buttons/MRT_FullScreenToggleButton.d.ts +0 -7
  404. package/dist/cjs/types/table/MRT_TableRoot.d.ts +0 -1
  405. package/dist/esm/types/body/MRT_EditRowModal.d.ts +0 -8
  406. package/dist/esm/types/buttons/MRT_FullScreenToggleButton.d.ts +0 -7
  407. package/dist/esm/types/table/MRT_TableRoot.d.ts +0 -1
  408. package/src/body/MRT_EditRowModal.tsx +0 -57
  409. package/src/index.tsx +0 -50
  410. package/src/table/MRT_TableRoot.tsx +0 -421
  411. /package/dist/cjs/types/{_locales → locales}/cs.d.ts +0 -0
  412. /package/dist/cjs/types/{_locales → locales}/da.d.ts +0 -0
  413. /package/dist/cjs/types/{_locales → locales}/de.d.ts +0 -0
  414. /package/dist/cjs/types/{_locales → locales}/en.d.ts +0 -0
  415. /package/dist/cjs/types/{_locales → locales}/es.d.ts +0 -0
  416. /package/dist/cjs/types/{_locales → locales}/fa.d.ts +0 -0
  417. /package/dist/cjs/types/{_locales → locales}/fi.d.ts +0 -0
  418. /package/dist/cjs/types/{_locales → locales}/fr.d.ts +0 -0
  419. /package/dist/cjs/types/{_locales → locales}/hu.d.ts +0 -0
  420. /package/dist/cjs/types/{_locales → locales}/id.d.ts +0 -0
  421. /package/dist/cjs/types/{_locales → locales}/it.d.ts +0 -0
  422. /package/dist/cjs/types/{_locales → locales}/ja.d.ts +0 -0
  423. /package/dist/cjs/types/{_locales → locales}/nl.d.ts +0 -0
  424. /package/dist/cjs/types/{_locales → locales}/no.d.ts +0 -0
  425. /package/dist/cjs/types/{_locales → locales}/pl.d.ts +0 -0
  426. /package/dist/cjs/types/{_locales → locales}/pt-BR.d.ts +0 -0
  427. /package/dist/cjs/types/{_locales → locales}/pt.d.ts +0 -0
  428. /package/dist/cjs/types/{_locales → locales}/ro.d.ts +0 -0
  429. /package/dist/cjs/types/{_locales → locales}/ru.d.ts +0 -0
  430. /package/dist/cjs/types/{_locales → locales}/sk.d.ts +0 -0
  431. /package/dist/cjs/types/{_locales → locales}/sr-Cyrl-RS.d.ts +0 -0
  432. /package/dist/cjs/types/{_locales → locales}/sr-Latn-RS.d.ts +0 -0
  433. /package/dist/cjs/types/{_locales → locales}/sv.d.ts +0 -0
  434. /package/dist/cjs/types/{_locales → locales}/tr.d.ts +0 -0
  435. /package/dist/cjs/types/{_locales → locales}/uk.d.ts +0 -0
  436. /package/dist/cjs/types/{_locales → locales}/vi.d.ts +0 -0
  437. /package/dist/cjs/types/{_locales → locales}/zh-Hans.d.ts +0 -0
  438. /package/dist/cjs/types/{_locales → locales}/zh-Hant.d.ts +0 -0
  439. /package/dist/esm/types/{_locales → locales}/cs.d.ts +0 -0
  440. /package/dist/esm/types/{_locales → locales}/da.d.ts +0 -0
  441. /package/dist/esm/types/{_locales → locales}/de.d.ts +0 -0
  442. /package/dist/esm/types/{_locales → locales}/en.d.ts +0 -0
  443. /package/dist/esm/types/{_locales → locales}/es.d.ts +0 -0
  444. /package/dist/esm/types/{_locales → locales}/fa.d.ts +0 -0
  445. /package/dist/esm/types/{_locales → locales}/fi.d.ts +0 -0
  446. /package/dist/esm/types/{_locales → locales}/fr.d.ts +0 -0
  447. /package/dist/esm/types/{_locales → locales}/hu.d.ts +0 -0
  448. /package/dist/esm/types/{_locales → locales}/id.d.ts +0 -0
  449. /package/dist/esm/types/{_locales → locales}/it.d.ts +0 -0
  450. /package/dist/esm/types/{_locales → locales}/ja.d.ts +0 -0
  451. /package/dist/esm/types/{_locales → locales}/nl.d.ts +0 -0
  452. /package/dist/esm/types/{_locales → locales}/no.d.ts +0 -0
  453. /package/dist/esm/types/{_locales → locales}/pl.d.ts +0 -0
  454. /package/dist/esm/types/{_locales → locales}/pt-BR.d.ts +0 -0
  455. /package/dist/esm/types/{_locales → locales}/pt.d.ts +0 -0
  456. /package/dist/esm/types/{_locales → locales}/ro.d.ts +0 -0
  457. /package/dist/esm/types/{_locales → locales}/ru.d.ts +0 -0
  458. /package/dist/esm/types/{_locales → locales}/sk.d.ts +0 -0
  459. /package/dist/esm/types/{_locales → locales}/sr-Cyrl-RS.d.ts +0 -0
  460. /package/dist/esm/types/{_locales → locales}/sr-Latn-RS.d.ts +0 -0
  461. /package/dist/esm/types/{_locales → locales}/sv.d.ts +0 -0
  462. /package/dist/esm/types/{_locales → locales}/tr.d.ts +0 -0
  463. /package/dist/esm/types/{_locales → locales}/uk.d.ts +0 -0
  464. /package/dist/esm/types/{_locales → locales}/vi.d.ts +0 -0
  465. /package/dist/esm/types/{_locales → locales}/zh-Hans.d.ts +0 -0
  466. /package/dist/esm/types/{_locales → locales}/zh-Hant.d.ts +0 -0
@@ -0,0 +1,169 @@
1
+ import { useMemo } from 'react';
2
+ import { MRT_AggregationFns } from '../aggregationFns';
3
+ import { MRT_FilterFns } from '../filterFns';
4
+ import { MRT_SortingFns } from '../sortingFns';
5
+ import { MRT_DefaultColumn, MRT_DefaultDisplayColumn } from '../column.utils';
6
+ import { MRT_Localization_EN } from '../locales/en';
7
+ import { MRT_Default_Icons } from '../icons';
8
+ import { type MRT_DefinedTableOptions, type MRT_TableOptions } from '../types';
9
+
10
+ export const useMRT_TableOptions: <TData extends Record<string, any>>(
11
+ tableOptions: MRT_TableOptions<TData>,
12
+ ) => MRT_DefinedTableOptions<TData> = <TData extends Record<string, any>>({
13
+ aggregationFns,
14
+ autoResetExpanded = false,
15
+ columnFilterDisplayMode = 'subheader',
16
+ columnResizeMode = 'onChange',
17
+ createDisplayMode = 'modal',
18
+ defaultColumn,
19
+ defaultDisplayColumn,
20
+ editDisplayMode = 'modal',
21
+ enableBottomToolbar = true,
22
+ enableColumnActions = true,
23
+ enableColumnFilters = true,
24
+ enableColumnOrdering = false,
25
+ enableColumnResizing = false,
26
+ enableDensityToggle = true,
27
+ enableExpandAll = true,
28
+ enableExpanding,
29
+ enableFilterMatchHighlighting = true,
30
+ enableFilters = true,
31
+ enableFullScreenToggle = true,
32
+ enableGlobalFilter = true,
33
+ enableGlobalFilterRankedResults = true,
34
+ enableGrouping = false,
35
+ enableHiding = true,
36
+ enableMultiRowSelection = true,
37
+ enableMultiSort = true,
38
+ enablePagination = true,
39
+ enableColumnPinning = false,
40
+ enableRowSelection = false,
41
+ enableSelectAll = true,
42
+ enableSorting = true,
43
+ enableStickyHeader = false,
44
+ enableTableFooter = true,
45
+ enableTableHead = true,
46
+ enableToolbarInternalActions = true,
47
+ enableTopToolbar = true,
48
+ filterFns,
49
+ icons,
50
+ layoutMode = 'semantic',
51
+ localization,
52
+ manualFiltering,
53
+ manualGrouping,
54
+ manualPagination,
55
+ manualSorting,
56
+ paginationDisplayMode = 'default',
57
+ positionActionsColumn = 'first',
58
+ positionExpandColumn = 'first',
59
+ positionGlobalFilter = 'right',
60
+ positionPagination = 'bottom',
61
+ positionToolbarAlertBanner = 'top',
62
+ positionToolbarDropZone = 'top',
63
+ rowNumberMode = 'static',
64
+ selectAllMode = 'page',
65
+ sortingFns,
66
+ ...rest
67
+ }: MRT_TableOptions<TData>) => {
68
+ const _icons = useMemo(() => ({ ...MRT_Default_Icons, ...icons }), [icons]);
69
+ const _localization = useMemo(
70
+ () => ({
71
+ ...MRT_Localization_EN,
72
+ ...localization,
73
+ }),
74
+ [localization],
75
+ );
76
+ const _aggregationFns = useMemo(
77
+ () => ({ ...MRT_AggregationFns, ...aggregationFns }),
78
+ [],
79
+ );
80
+ const _filterFns = useMemo(() => ({ ...MRT_FilterFns, ...filterFns }), []);
81
+ const _sortingFns = useMemo(() => ({ ...MRT_SortingFns, ...sortingFns }), []);
82
+ const _defaultColumn = useMemo(
83
+ () => ({ ...MRT_DefaultColumn, ...defaultColumn }),
84
+ [defaultColumn],
85
+ );
86
+ const _defaultDisplayColumn = useMemo(
87
+ () => ({
88
+ ...MRT_DefaultDisplayColumn,
89
+ ...defaultDisplayColumn,
90
+ }),
91
+ [defaultDisplayColumn],
92
+ );
93
+
94
+ if (rest.enableRowVirtualization || rest.enableColumnVirtualization) {
95
+ layoutMode = 'grid';
96
+ }
97
+
98
+ if (rest.enableRowVirtualization) {
99
+ enableStickyHeader = true;
100
+ }
101
+
102
+ if (enablePagination === false && manualPagination === undefined) {
103
+ manualPagination = true;
104
+ }
105
+
106
+ if (!rest.data?.length) {
107
+ manualFiltering = true;
108
+ manualGrouping = true;
109
+ manualPagination = true;
110
+ manualSorting = true;
111
+ }
112
+
113
+ return {
114
+ aggregationFns: _aggregationFns,
115
+ autoResetExpanded,
116
+ columnFilterDisplayMode,
117
+ columnResizeMode,
118
+ createDisplayMode,
119
+ defaultColumn: _defaultColumn,
120
+ defaultDisplayColumn: _defaultDisplayColumn,
121
+ editDisplayMode,
122
+ enableBottomToolbar,
123
+ enableColumnActions,
124
+ enableColumnFilters,
125
+ enableColumnOrdering,
126
+ enableColumnResizing,
127
+ enableDensityToggle,
128
+ enableExpandAll,
129
+ enableExpanding,
130
+ enableFilterMatchHighlighting,
131
+ enableFilters,
132
+ enableFullScreenToggle,
133
+ enableGlobalFilter,
134
+ enableGlobalFilterRankedResults,
135
+ enableGrouping,
136
+ enableHiding,
137
+ enableMultiRowSelection,
138
+ enableMultiSort,
139
+ enablePagination,
140
+ enableColumnPinning,
141
+ enableRowSelection,
142
+ enableSelectAll,
143
+ enableSorting,
144
+ enableStickyHeader,
145
+ enableTableFooter,
146
+ enableTableHead,
147
+ enableToolbarInternalActions,
148
+ enableTopToolbar,
149
+ filterFns: _filterFns,
150
+ icons: _icons,
151
+ layoutMode,
152
+ localization: _localization,
153
+ manualFiltering,
154
+ manualGrouping,
155
+ manualPagination,
156
+ manualSorting,
157
+ paginationDisplayMode,
158
+ positionActionsColumn,
159
+ positionExpandColumn,
160
+ positionGlobalFilter,
161
+ positionPagination,
162
+ positionToolbarAlertBanner,
163
+ positionToolbarDropZone,
164
+ rowNumberMode,
165
+ selectAllMode,
166
+ sortingFns: _sortingFns,
167
+ ...rest,
168
+ };
169
+ };
package/src/index.ts ADDED
@@ -0,0 +1,16 @@
1
+ export * from './MaterialReactTable';
2
+ export * from './aggregationFns';
3
+ export * from './body';
4
+ export * from './buttons';
5
+ export * from './column.utils';
6
+ export * from './filterFns';
7
+ export * from './footer';
8
+ export * from './head';
9
+ export * from './inputs';
10
+ export * from './menus';
11
+ export * from './modals';
12
+ export * from './sortingFns';
13
+ export * from './table';
14
+ export * from './toolbar';
15
+ export * from './types';
16
+ export * from './useMaterialReactTable';
@@ -9,58 +9,60 @@ import MenuItem from '@mui/material/MenuItem';
9
9
  import { type TextFieldProps } from '@mui/material/TextField';
10
10
  import { type MRT_Cell, type MRT_TableInstance } from '../types';
11
11
 
12
- interface Props<TData extends Record<string, any> = {}> {
12
+ interface Props<TData extends Record<string, any>> {
13
13
  cell: MRT_Cell<TData>;
14
14
  table: MRT_TableInstance<TData>;
15
- showLabel?: boolean;
16
15
  }
17
16
 
18
- export const MRT_EditCellTextField = <TData extends Record<string, any> = {}>({
17
+ export const MRT_EditCellTextField = <TData extends Record<string, any>>({
19
18
  cell,
20
- showLabel,
21
19
  table,
22
20
  }: Props<TData>) => {
23
21
  const {
24
22
  getState,
25
- options: { muiTableBodyCellEditTextFieldProps },
23
+ options: { createDisplayMode, editDisplayMode, muiEditTextFieldProps },
26
24
  refs: { editInputRefs },
27
25
  setEditingCell,
28
26
  setEditingRow,
27
+ setCreatingRow,
29
28
  } = table;
30
29
  const { column, row } = cell;
31
30
  const { columnDef } = column;
32
- const { editingRow } = getState();
31
+ const { creatingRow, editingRow } = getState();
32
+
33
+ const isCreating = creatingRow?.id === row.id;
34
+ const isEditing = editingRow?.id === row.id;
35
+ const isSelectEdit = columnDef.editVariant === 'select';
33
36
 
34
37
  const [value, setValue] = useState(() => cell.getValue<string>());
35
38
 
36
39
  const mTableBodyCellEditTextFieldProps =
37
- muiTableBodyCellEditTextFieldProps instanceof Function
38
- ? muiTableBodyCellEditTextFieldProps({ cell, column, row, table })
39
- : muiTableBodyCellEditTextFieldProps;
40
+ muiEditTextFieldProps instanceof Function
41
+ ? muiEditTextFieldProps({ cell, column, row, table })
42
+ : muiEditTextFieldProps;
40
43
 
41
44
  const mcTableBodyCellEditTextFieldProps =
42
- columnDef.muiTableBodyCellEditTextFieldProps instanceof Function
43
- ? columnDef.muiTableBodyCellEditTextFieldProps({
45
+ columnDef.muiEditTextFieldProps instanceof Function
46
+ ? columnDef.muiEditTextFieldProps({
44
47
  cell,
45
48
  column,
46
49
  row,
47
50
  table,
48
51
  })
49
- : columnDef.muiTableBodyCellEditTextFieldProps;
52
+ : columnDef.muiEditTextFieldProps;
50
53
 
51
54
  const textFieldProps: TextFieldProps = {
52
55
  ...mTableBodyCellEditTextFieldProps,
53
56
  ...mcTableBodyCellEditTextFieldProps,
54
57
  };
55
58
 
56
- const isSelectEdit = columnDef.editVariant === 'select';
57
-
58
- const saveRow = (newValue: string) => {
59
- if (editingRow) {
60
- setEditingRow({
61
- ...editingRow,
62
- _valuesCache: { ...editingRow._valuesCache, [column.id]: newValue },
63
- });
59
+ const saveInputValueToRowCache = (newValue: string) => {
60
+ //@ts-ignore
61
+ row._valuesCache[column.id] = newValue;
62
+ if (isCreating) {
63
+ setCreatingRow({ ...row });
64
+ } else if (isEditing) {
65
+ setEditingRow({ ...row });
64
66
  }
65
67
  };
66
68
 
@@ -68,19 +70,19 @@ export const MRT_EditCellTextField = <TData extends Record<string, any> = {}>({
68
70
  textFieldProps.onChange?.(event);
69
71
  setValue(event.target.value);
70
72
  if (textFieldProps?.select) {
71
- saveRow(event.target.value);
73
+ saveInputValueToRowCache(event.target.value);
72
74
  }
73
75
  };
74
76
 
75
77
  const handleBlur = (event: FocusEvent<HTMLInputElement>) => {
76
78
  textFieldProps.onBlur?.(event);
77
- saveRow(value);
79
+ saveInputValueToRowCache(value);
78
80
  setEditingCell(null);
79
81
  };
80
82
 
81
83
  const handleEnterKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {
82
84
  textFieldProps.onKeyDown?.(event);
83
- if (event.key === 'Enter') {
85
+ if (event.key === 'Enter' && !event.shiftKey) {
84
86
  editInputRefs.current[column.id]?.blur();
85
87
  }
86
88
  };
@@ -105,10 +107,22 @@ export const MRT_EditCellTextField = <TData extends Record<string, any> = {}>({
105
107
  }
106
108
  }
107
109
  }}
108
- label={showLabel ? column.columnDef.header : undefined}
110
+ label={
111
+ ['modal', 'custom'].includes(
112
+ (isCreating ? createDisplayMode : editDisplayMode) as string,
113
+ )
114
+ ? column.columnDef.header
115
+ : undefined
116
+ }
109
117
  margin="none"
110
118
  name={column.id}
111
- placeholder={columnDef.header}
119
+ placeholder={
120
+ !['modal', 'custom'].includes(
121
+ (isCreating ? createDisplayMode : editDisplayMode) as string,
122
+ )
123
+ ? columnDef.header
124
+ : undefined
125
+ }
112
126
  select={isSelectEdit}
113
127
  value={value}
114
128
  variant="standard"
@@ -4,34 +4,37 @@ import Tooltip from '@mui/material/Tooltip';
4
4
  import { type CheckboxProps } from '@mui/material/Checkbox';
5
5
  import { type MRT_Column, type MRT_TableInstance } from '../types';
6
6
 
7
- interface Props {
8
- column: MRT_Column;
9
- table: MRT_TableInstance;
7
+ interface Props<TData extends Record<string, any>> {
8
+ column: MRT_Column<TData>;
9
+ table: MRT_TableInstance<TData>;
10
10
  }
11
11
 
12
- export const MRT_FilterCheckbox = ({ column, table }: Props) => {
12
+ export const MRT_FilterCheckbox = <TData extends Record<string, any>>({
13
+ column,
14
+ table,
15
+ }: Props<TData>) => {
13
16
  const {
14
17
  getState,
15
- options: { localization, muiTableHeadCellFilterCheckboxProps },
18
+ options: { localization, muiFilterCheckboxProps },
16
19
  } = table;
17
20
  const { density } = getState();
18
21
  const { columnDef } = column;
19
22
 
20
23
  const mTableHeadCellFilterCheckboxProps =
21
- muiTableHeadCellFilterCheckboxProps instanceof Function
22
- ? muiTableHeadCellFilterCheckboxProps({
24
+ muiFilterCheckboxProps instanceof Function
25
+ ? muiFilterCheckboxProps({
23
26
  column,
24
27
  table,
25
28
  })
26
- : muiTableHeadCellFilterCheckboxProps;
29
+ : muiFilterCheckboxProps;
27
30
 
28
31
  const mcTableHeadCellFilterCheckboxProps =
29
- columnDef.muiTableHeadCellFilterCheckboxProps instanceof Function
30
- ? columnDef.muiTableHeadCellFilterCheckboxProps({
32
+ columnDef.muiFilterCheckboxProps instanceof Function
33
+ ? columnDef.muiFilterCheckboxProps({
31
34
  column,
32
35
  table,
33
36
  })
34
- : columnDef.muiTableHeadCellFilterCheckboxProps;
37
+ : columnDef.muiFilterCheckboxProps;
35
38
 
36
39
  const checkboxProps = {
37
40
  ...mTableHeadCellFilterCheckboxProps,
@@ -2,12 +2,15 @@ import Box from '@mui/material/Box';
2
2
  import { MRT_FilterTextField } from './MRT_FilterTextField';
3
3
  import { type MRT_Header, type MRT_TableInstance } from '../types';
4
4
 
5
- interface Props {
6
- header: MRT_Header;
7
- table: MRT_TableInstance;
5
+ interface Props<TData extends Record<string, any>> {
6
+ header: MRT_Header<TData>;
7
+ table: MRT_TableInstance<TData>;
8
8
  }
9
9
 
10
- export const MRT_FilterRangeFields = ({ header, table }: Props) => {
10
+ export const MRT_FilterRangeFields = <TData extends Record<string, any>>({
11
+ header,
12
+ table,
13
+ }: Props<TData>) => {
11
14
  return (
12
15
  <Box sx={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '1rem' }}>
13
16
  <MRT_FilterTextField header={header} rangeFilterIndex={0} table={table} />
@@ -4,18 +4,17 @@ import FormHelperText from '@mui/material/FormHelperText';
4
4
  import { type MRT_TableInstance, type MRT_Header } from '../types';
5
5
  import { useEffect, useRef, useState } from 'react';
6
6
 
7
- interface Props {
8
- header: MRT_Header;
9
- table: MRT_TableInstance;
7
+ interface Props<TData extends Record<string, any>> {
8
+ header: MRT_Header<TData>;
9
+ table: MRT_TableInstance<TData>;
10
10
  }
11
11
 
12
- export const MRT_FilterRangeSlider = ({ header, table }: Props) => {
12
+ export const MRT_FilterRangeSlider = <TData extends Record<string, any>>({
13
+ header,
14
+ table,
15
+ }: Props<TData>) => {
13
16
  const {
14
- options: {
15
- localization,
16
- muiTableHeadCellFilterSliderProps,
17
- enableColumnFilterModes,
18
- },
17
+ options: { localization, muiFilterSliderProps, enableColumnFilterModes },
19
18
  refs: { filterInputRefs },
20
19
  } = table;
21
20
  const { column } = header;
@@ -26,25 +25,25 @@ export const MRT_FilterRangeSlider = ({ header, table }: Props) => {
26
25
  const showChangeModeButton =
27
26
  enableColumnFilterModes && columnDef.enableColumnFilterModes !== false;
28
27
 
29
- const mTableHeadCellFilterTextFieldProps =
30
- muiTableHeadCellFilterSliderProps instanceof Function
31
- ? muiTableHeadCellFilterSliderProps({
28
+ const mFilterSliderProps =
29
+ muiFilterSliderProps instanceof Function
30
+ ? muiFilterSliderProps({
32
31
  column,
33
32
  table,
34
33
  })
35
- : muiTableHeadCellFilterSliderProps;
34
+ : muiFilterSliderProps;
36
35
 
37
- const mcTableHeadCellFilterTextFieldProps =
38
- columnDef.muiTableHeadCellFilterSliderProps instanceof Function
39
- ? columnDef.muiTableHeadCellFilterSliderProps({
36
+ const mcFilterSliderProps =
37
+ columnDef.muiFilterSliderProps instanceof Function
38
+ ? columnDef.muiFilterSliderProps({
40
39
  column,
41
40
  table,
42
41
  })
43
- : columnDef.muiTableHeadCellFilterSliderProps;
42
+ : columnDef.muiFilterSliderProps;
44
43
 
45
44
  const sliderProps = {
46
- ...mTableHeadCellFilterTextFieldProps,
47
- ...mcTableHeadCellFilterTextFieldProps,
45
+ ...mFilterSliderProps,
46
+ ...mcFilterSliderProps,
48
47
  } as SliderProps;
49
48
 
50
49
  let [min, max] =
@@ -20,17 +20,17 @@ import { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';
20
20
  import { type TextFieldProps } from '@mui/material/TextField';
21
21
  import { type MRT_Header, type MRT_TableInstance } from '../types';
22
22
 
23
- interface Props {
24
- header: MRT_Header;
23
+ interface Props<TData extends Record<string, any>> {
24
+ header: MRT_Header<TData>;
25
25
  rangeFilterIndex?: number;
26
- table: MRT_TableInstance;
26
+ table: MRT_TableInstance<TData>;
27
27
  }
28
28
 
29
- export const MRT_FilterTextField = ({
29
+ export const MRT_FilterTextField = <TData extends Record<string, any>>({
30
30
  header,
31
31
  rangeFilterIndex,
32
32
  table,
33
- }: Props) => {
33
+ }: Props<TData>) => {
34
34
  const {
35
35
  options: {
36
36
  enableColumnFilterModes,
@@ -38,7 +38,7 @@ export const MRT_FilterTextField = ({
38
38
  icons: { FilterListIcon, CloseIcon },
39
39
  localization,
40
40
  manualFiltering,
41
- muiTableHeadCellFilterTextFieldProps,
41
+ muiFilterTextFieldProps,
42
42
  },
43
43
  refs: { filterInputRefs },
44
44
  setColumnFilterFns,
@@ -47,22 +47,22 @@ export const MRT_FilterTextField = ({
47
47
  const { columnDef } = column;
48
48
 
49
49
  const mTableHeadCellFilterTextFieldProps =
50
- muiTableHeadCellFilterTextFieldProps instanceof Function
51
- ? muiTableHeadCellFilterTextFieldProps({
50
+ muiFilterTextFieldProps instanceof Function
51
+ ? muiFilterTextFieldProps({
52
52
  column,
53
53
  table,
54
54
  rangeFilterIndex,
55
55
  })
56
- : muiTableHeadCellFilterTextFieldProps;
56
+ : muiFilterTextFieldProps;
57
57
 
58
58
  const mcTableHeadCellFilterTextFieldProps =
59
- columnDef.muiTableHeadCellFilterTextFieldProps instanceof Function
60
- ? columnDef.muiTableHeadCellFilterTextFieldProps({
59
+ columnDef.muiFilterTextFieldProps instanceof Function
60
+ ? columnDef.muiFilterTextFieldProps({
61
61
  column,
62
62
  table,
63
63
  rangeFilterIndex,
64
64
  })
65
- : columnDef.muiTableHeadCellFilterTextFieldProps;
65
+ : columnDef.muiFilterTextFieldProps;
66
66
 
67
67
  const textFieldProps = {
68
68
  ...mTableHeadCellFilterTextFieldProps,
@@ -109,9 +109,9 @@ export const MRT_FilterTextField = ({
109
109
  () =>
110
110
  columnDef.filterSelectOptions ??
111
111
  ((isSelectFilter || isMultiSelectFilter) && facetedUniqueValues
112
- ? Array.from(facetedUniqueValues.keys()).sort((a, b) =>
113
- a.localeCompare(b),
114
- )
112
+ ? Array.from(facetedUniqueValues.keys())
113
+ .filter((value) => value !== null && value !== undefined)
114
+ .sort((a, b) => a.localeCompare(b))
115
115
  : undefined),
116
116
  [
117
117
  columnDef.filterSelectOptions,
@@ -15,13 +15,11 @@ import { debounce } from '@mui/material/utils';
15
15
  import { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';
16
16
  import { type MRT_TableInstance } from '../types';
17
17
 
18
- interface Props<TData extends Record<string, any> = {}> {
18
+ interface Props<TData extends Record<string, any>> {
19
19
  table: MRT_TableInstance<TData>;
20
20
  }
21
21
 
22
- export const MRT_GlobalFilterTextField = <
23
- TData extends Record<string, any> = {},
24
- >({
22
+ export const MRT_GlobalFilterTextField = <TData extends Record<string, any>>({
25
23
  table,
26
24
  }: Props<TData>) => {
27
25
  const {
@@ -5,13 +5,17 @@ import Radio from '@mui/material/Radio';
5
5
  import { type Theme } from '@mui/material/styles';
6
6
  import { type MRT_Row, type MRT_TableInstance } from '../types';
7
7
 
8
- interface Props {
9
- row?: MRT_Row;
8
+ interface Props<TData extends Record<string, any>> {
9
+ row?: MRT_Row<TData>;
10
10
  selectAll?: boolean;
11
- table: MRT_TableInstance;
11
+ table: MRT_TableInstance<TData>;
12
12
  }
13
13
 
14
- export const MRT_SelectCheckbox = ({ row, selectAll, table }: Props) => {
14
+ export const MRT_SelectCheckbox = <TData extends Record<string, any>>({
15
+ row,
16
+ selectAll,
17
+ table,
18
+ }: Props<TData>) => {
15
19
  const {
16
20
  getState,
17
21
  options: {
@@ -0,0 +1,7 @@
1
+ export * from './MRT_EditCellTextField';
2
+ export * from './MRT_FilterCheckbox';
3
+ export * from './MRT_FilterRangeFields';
4
+ export * from './MRT_FilterRangeSlider';
5
+ export * from './MRT_FilterTextField';
6
+ export * from './MRT_GlobalFilterTextField';
7
+ export * from './MRT_SelectCheckbox';
@@ -0,0 +1,94 @@
1
+ import { type MRT_Localization } from '..';
2
+
3
+ export const MRT_Localization_AR: MRT_Localization = {
4
+ actions: 'إجراءات',
5
+ and: 'و',
6
+ cancel: 'إلغاء',
7
+ changeFilterMode: 'تغيير وضع المرشح',
8
+ changeSearchMode: 'تغيير وضع البحث',
9
+ clearFilter: 'إعادة تعين المرشح',
10
+ clearSearch: 'إعادة تعيين البحث',
11
+ clearSort: 'إعادة تعيين الفرز',
12
+ clickToCopy: 'انقر للنسخ',
13
+ collapse: 'إخفاء',
14
+ collapseAll: 'إخفاء الكل',
15
+ columnActions: 'إجراءات العمود',
16
+ copiedToClipboard: 'نسخ إلى الحافظة',
17
+
18
+ dropToGroupBy: 'أفلت للمجموعة حسب {column}',
19
+ edit: 'تعديل',
20
+ expand: 'إظهار',
21
+ expandAll: 'إظهار الكل',
22
+ filterArrIncludes: 'يشمل',
23
+ filterArrIncludesAll: 'يشمل الجميع',
24
+ filterArrIncludesSome: 'يشمل',
25
+ filterBetween: 'بين',
26
+ filterBetweenInclusive: 'بين الشمول',
27
+ filterByColumn: 'مصنف بواسطة {column}',
28
+ filterContains: 'يتضمن',
29
+ filterEmpty: 'فارغ',
30
+ filterEndsWith: 'ينتهي بـ',
31
+ filterEquals: 'يساوي',
32
+ filterEqualsString: 'يساوي',
33
+ filterFuzzy: 'غامض',
34
+ filterGreaterThan: 'أكثر من',
35
+ filterGreaterThanOrEqualTo: 'أكبر من أو يساوي',
36
+ filterInNumberRange: 'بين',
37
+ filterIncludesString: 'يتضمن',
38
+ filterIncludesStringSensitive: 'يتضمن',
39
+ filterLessThan: 'أقل من',
40
+ filterLessThanOrEqualTo: 'أقل من أو يساوي',
41
+ filterMode: 'وضع التصفية: {filterType}',
42
+ filterNotEmpty: 'ليس فارغًا',
43
+ filterNotEquals: 'لا يساوي',
44
+ filterStartsWith: ' يبدا ب',
45
+ filterWeakEquals: 'يساوي',
46
+ filteringByColumn: 'التصفية حسب {column} - {filterType} {filterValue}',
47
+ goToFirstPage: 'الصفحة الأولى',
48
+ goToLastPage: 'الصفحة الأخيرة',
49
+ goToNextPage: 'الصفحة التالية',
50
+ goToPreviousPage: 'الصفحة السابقة',
51
+ grab: 'أمسك',
52
+ groupByColumn: 'مجموعة من {column}',
53
+ groupedBy: 'مجمعة حسب ',
54
+ hideAll: 'إخفاء الكل',
55
+ hideColumn: 'إخفاء {column} العمود',
56
+ max: 'الأعلى',
57
+ min: 'الأقل',
58
+ move: 'حرك',
59
+ noRecordsToDisplay: 'لا سجلات لعرضها',
60
+ noResultsFound: 'لم يتم العثور على نتائج',
61
+ of: 'ل',
62
+ or: 'أو',
63
+ pinToLeft: 'تثبيت جهة اليسار',
64
+ pinToRight: 'تثبيت على اليمين',
65
+ resetColumnSize: 'Reset column size',
66
+ resetOrder: 'إعادة تعيين',
67
+ rowActions: 'إجراءات الصف',
68
+ rowNumber: '#',
69
+ rowNumbers: 'أرقام الصفوف',
70
+ rowsPerPage: 'عدد الصفوف في الصفحة',
71
+ save: 'حفظ',
72
+ search: 'بحث',
73
+ selectedCountOfRowCountRowsSelected:
74
+ '{selectedCount} ل {rowCount} row(s) المحدد',
75
+ select: 'اخيار',
76
+ showAll: 'عرض الكل',
77
+ showAllColumns: 'إظهار كافة الأعمدة',
78
+ showHideColumns: 'إظهار / إخفاء الأعمدة',
79
+ showHideFilters: 'إظهار / إخفاء المرشحات',
80
+ showHideSearch: 'إظهار / إخفاء البحث',
81
+ sortByColumnAsc: 'فرز {column} تصاعدي',
82
+ sortByColumnDesc: 'فرز {column} تنازلي',
83
+ sortedByColumnAsc: 'مرتبة حسب {column} تصاعدي',
84
+ sortedByColumnDesc: 'مرتبة حسب {column} تنازلي',
85
+ thenBy: ', ثم بواسطة ',
86
+ toggleDensity: 'تبديل الكثافة',
87
+ toggleFullScreen: 'ملء الشاشة',
88
+ toggleSelectAll: 'تبديل حدد الكل',
89
+ toggleSelectRow: 'تبديل تحديد الصف',
90
+ toggleVisibility: 'تبديل الرؤية',
91
+ ungroupByColumn: 'فك التجميع حسب {column}',
92
+ unpin: 'عدم التثبيت',
93
+ unpinAll: 'عدم تثبيت الكل',
94
+ };