material-react-table 1.14.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 (467) hide show
  1. package/README.md +1 -0
  2. package/dist/cjs/index.js +1629 -1323
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/types/MaterialReactTable.d.ts +7 -11
  5. package/dist/cjs/types/body/MRT_TableBody.d.ts +4 -5
  6. package/dist/cjs/types/body/MRT_TableBodyCell.d.ts +5 -5
  7. package/dist/cjs/types/body/MRT_TableBodyCellValue.d.ts +4 -4
  8. package/dist/cjs/types/body/MRT_TableBodyRow.d.ts +5 -6
  9. package/dist/cjs/types/body/MRT_TableBodyRowGrabHandle.d.ts +5 -5
  10. package/dist/cjs/types/body/MRT_TableDetailPanel.d.ts +6 -6
  11. package/dist/cjs/types/body/index.d.ts +6 -0
  12. package/dist/cjs/types/buttons/MRT_ColumnPinningButtons.d.ts +2 -2
  13. package/dist/cjs/types/buttons/MRT_CopyButton.d.ts +2 -2
  14. package/dist/cjs/types/buttons/MRT_EditActionButtons.d.ts +2 -2
  15. package/dist/cjs/types/buttons/MRT_ExpandAllButton.d.ts +3 -3
  16. package/dist/cjs/types/buttons/MRT_ExpandButton.d.ts +2 -2
  17. package/dist/cjs/types/buttons/MRT_GrabHandleButton.d.ts +2 -2
  18. package/dist/cjs/types/buttons/MRT_ShowHideColumnsButton.d.ts +2 -2
  19. package/dist/cjs/types/buttons/MRT_ToggleDensePaddingButton.d.ts +2 -2
  20. package/dist/cjs/types/buttons/MRT_ToggleFiltersButton.d.ts +2 -2
  21. package/dist/cjs/types/buttons/MRT_ToggleFullScreenButton.d.ts +7 -0
  22. package/dist/cjs/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +2 -2
  23. package/dist/cjs/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +2 -2
  24. package/dist/cjs/types/buttons/index.d.ts +12 -0
  25. package/dist/cjs/types/column.utils.d.ts +39 -51
  26. package/dist/cjs/types/filterFns.d.ts +14 -14
  27. package/dist/cjs/types/footer/MRT_TableFooter.d.ts +3 -3
  28. package/dist/cjs/types/footer/MRT_TableFooterCell.d.ts +4 -4
  29. package/dist/cjs/types/footer/MRT_TableFooterRow.d.ts +4 -4
  30. package/dist/cjs/types/footer/index.d.ts +3 -0
  31. package/dist/cjs/types/head/MRT_TableHead.d.ts +3 -3
  32. package/dist/cjs/types/head/MRT_TableHeadCell.d.ts +4 -4
  33. package/dist/cjs/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +4 -4
  34. package/dist/cjs/types/head/MRT_TableHeadCellFilterContainer.d.ts +4 -4
  35. package/dist/cjs/types/head/MRT_TableHeadCellFilterLabel.d.ts +4 -4
  36. package/dist/cjs/types/head/MRT_TableHeadCellGrabHandle.d.ts +4 -4
  37. package/dist/cjs/types/head/MRT_TableHeadCellResizeHandle.d.ts +4 -4
  38. package/dist/cjs/types/head/MRT_TableHeadCellSortLabel.d.ts +4 -4
  39. package/dist/cjs/types/head/MRT_TableHeadRow.d.ts +4 -4
  40. package/dist/cjs/types/head/index.d.ts +9 -0
  41. package/dist/cjs/types/hooks/useMRT_DisplayColumns.d.ts +9 -0
  42. package/dist/cjs/types/hooks/useMRT_Effects.d.ts +2 -0
  43. package/dist/cjs/types/hooks/useMRT_TableInstance.d.ts +2 -0
  44. package/dist/cjs/types/hooks/useMRT_TableOptions.d.ts +2 -0
  45. package/dist/cjs/types/index.d.ts +14 -25
  46. package/dist/cjs/types/inputs/MRT_EditCellTextField.d.ts +2 -3
  47. package/dist/cjs/types/inputs/MRT_FilterCheckbox.d.ts +4 -4
  48. package/dist/cjs/types/inputs/MRT_FilterRangeFields.d.ts +4 -4
  49. package/dist/cjs/types/inputs/MRT_FilterRangeSlider.d.ts +4 -4
  50. package/dist/cjs/types/inputs/MRT_FilterTextField.d.ts +4 -4
  51. package/dist/cjs/types/inputs/MRT_GlobalFilterTextField.d.ts +2 -2
  52. package/dist/cjs/types/inputs/MRT_SelectCheckbox.d.ts +4 -4
  53. package/dist/cjs/types/inputs/index.d.ts +7 -0
  54. package/dist/cjs/types/locales/ar.d.ts +2 -0
  55. package/dist/cjs/types/locales/bg.d.ts +2 -0
  56. package/dist/cjs/types/locales/et.d.ts +2 -0
  57. package/dist/cjs/types/locales/ko.d.ts +2 -0
  58. package/dist/cjs/types/menus/MRT_ColumnActionMenu.d.ts +4 -4
  59. package/dist/cjs/types/menus/MRT_FilterOptionMenu.d.ts +2 -2
  60. package/dist/cjs/types/menus/MRT_RowActionMenu.d.ts +4 -4
  61. package/dist/cjs/types/menus/MRT_ShowHideColumnsMenu.d.ts +2 -2
  62. package/dist/cjs/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +2 -2
  63. package/dist/cjs/types/menus/index.d.ts +5 -0
  64. package/dist/cjs/types/modals/MRT_EditRowModal.d.ts +7 -0
  65. package/dist/cjs/types/modals/index.d.ts +1 -0
  66. package/dist/cjs/types/sortingFns.d.ts +2 -418
  67. package/dist/cjs/types/table/MRT_Table.d.ts +3 -3
  68. package/dist/cjs/types/table/MRT_TableContainer.d.ts +3 -3
  69. package/dist/cjs/types/table/MRT_TablePaper.d.ts +3 -3
  70. package/dist/cjs/types/table/index.d.ts +4 -0
  71. package/dist/cjs/types/toolbar/MRT_BottomToolbar.d.ts +2 -2
  72. package/dist/cjs/types/toolbar/MRT_LinearProgressBar.d.ts +2 -2
  73. package/dist/cjs/types/toolbar/MRT_TablePagination.d.ts +2 -2
  74. package/dist/cjs/types/toolbar/MRT_ToolbarAlertBanner.d.ts +2 -2
  75. package/dist/cjs/types/toolbar/MRT_ToolbarDropZone.d.ts +2 -2
  76. package/dist/cjs/types/toolbar/MRT_ToolbarInternalButtons.d.ts +2 -2
  77. package/dist/cjs/types/toolbar/MRT_TopToolbar.d.ts +2 -2
  78. package/dist/cjs/types/toolbar/index.d.ts +7 -0
  79. package/dist/cjs/types/types.d.ts +116 -85
  80. package/dist/cjs/types/useMaterialReactTable.d.ts +2 -0
  81. package/dist/esm/material-react-table.esm.js +1559 -1317
  82. package/dist/esm/material-react-table.esm.js.map +1 -1
  83. package/dist/esm/types/MaterialReactTable.d.ts +7 -11
  84. package/dist/esm/types/body/MRT_TableBody.d.ts +4 -5
  85. package/dist/esm/types/body/MRT_TableBodyCell.d.ts +5 -5
  86. package/dist/esm/types/body/MRT_TableBodyCellValue.d.ts +4 -4
  87. package/dist/esm/types/body/MRT_TableBodyRow.d.ts +5 -6
  88. package/dist/esm/types/body/MRT_TableBodyRowGrabHandle.d.ts +5 -5
  89. package/dist/esm/types/body/MRT_TableDetailPanel.d.ts +6 -6
  90. package/dist/esm/types/body/index.d.ts +6 -0
  91. package/dist/esm/types/buttons/MRT_ColumnPinningButtons.d.ts +2 -2
  92. package/dist/esm/types/buttons/MRT_CopyButton.d.ts +2 -2
  93. package/dist/esm/types/buttons/MRT_EditActionButtons.d.ts +2 -2
  94. package/dist/esm/types/buttons/MRT_ExpandAllButton.d.ts +3 -3
  95. package/dist/esm/types/buttons/MRT_ExpandButton.d.ts +2 -2
  96. package/dist/esm/types/buttons/MRT_GrabHandleButton.d.ts +2 -2
  97. package/dist/esm/types/buttons/MRT_ShowHideColumnsButton.d.ts +2 -2
  98. package/dist/esm/types/buttons/MRT_ToggleDensePaddingButton.d.ts +2 -2
  99. package/dist/esm/types/buttons/MRT_ToggleFiltersButton.d.ts +2 -2
  100. package/dist/esm/types/buttons/MRT_ToggleFullScreenButton.d.ts +7 -0
  101. package/dist/esm/types/buttons/MRT_ToggleGlobalFilterButton.d.ts +2 -2
  102. package/dist/esm/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +2 -2
  103. package/dist/esm/types/buttons/index.d.ts +12 -0
  104. package/dist/esm/types/column.utils.d.ts +39 -51
  105. package/dist/esm/types/filterFns.d.ts +14 -14
  106. package/dist/esm/types/footer/MRT_TableFooter.d.ts +3 -3
  107. package/dist/esm/types/footer/MRT_TableFooterCell.d.ts +4 -4
  108. package/dist/esm/types/footer/MRT_TableFooterRow.d.ts +4 -4
  109. package/dist/esm/types/footer/index.d.ts +3 -0
  110. package/dist/esm/types/head/MRT_TableHead.d.ts +3 -3
  111. package/dist/esm/types/head/MRT_TableHeadCell.d.ts +4 -4
  112. package/dist/esm/types/head/MRT_TableHeadCellColumnActionsButton.d.ts +4 -4
  113. package/dist/esm/types/head/MRT_TableHeadCellFilterContainer.d.ts +4 -4
  114. package/dist/esm/types/head/MRT_TableHeadCellFilterLabel.d.ts +4 -4
  115. package/dist/esm/types/head/MRT_TableHeadCellGrabHandle.d.ts +4 -4
  116. package/dist/esm/types/head/MRT_TableHeadCellResizeHandle.d.ts +4 -4
  117. package/dist/esm/types/head/MRT_TableHeadCellSortLabel.d.ts +4 -4
  118. package/dist/esm/types/head/MRT_TableHeadRow.d.ts +4 -4
  119. package/dist/esm/types/head/index.d.ts +9 -0
  120. package/dist/esm/types/hooks/useMRT_DisplayColumns.d.ts +9 -0
  121. package/dist/esm/types/hooks/useMRT_Effects.d.ts +2 -0
  122. package/dist/esm/types/hooks/useMRT_TableInstance.d.ts +2 -0
  123. package/dist/esm/types/hooks/useMRT_TableOptions.d.ts +2 -0
  124. package/dist/esm/types/index.d.ts +14 -25
  125. package/dist/esm/types/inputs/MRT_EditCellTextField.d.ts +2 -3
  126. package/dist/esm/types/inputs/MRT_FilterCheckbox.d.ts +4 -4
  127. package/dist/esm/types/inputs/MRT_FilterRangeFields.d.ts +4 -4
  128. package/dist/esm/types/inputs/MRT_FilterRangeSlider.d.ts +4 -4
  129. package/dist/esm/types/inputs/MRT_FilterTextField.d.ts +4 -4
  130. package/dist/esm/types/inputs/MRT_GlobalFilterTextField.d.ts +2 -2
  131. package/dist/esm/types/inputs/MRT_SelectCheckbox.d.ts +4 -4
  132. package/dist/esm/types/inputs/index.d.ts +7 -0
  133. package/dist/esm/types/locales/ar.d.ts +2 -0
  134. package/dist/esm/types/locales/bg.d.ts +2 -0
  135. package/dist/esm/types/locales/et.d.ts +2 -0
  136. package/dist/esm/types/locales/ko.d.ts +2 -0
  137. package/dist/esm/types/menus/MRT_ColumnActionMenu.d.ts +4 -4
  138. package/dist/esm/types/menus/MRT_FilterOptionMenu.d.ts +2 -2
  139. package/dist/esm/types/menus/MRT_RowActionMenu.d.ts +4 -4
  140. package/dist/esm/types/menus/MRT_ShowHideColumnsMenu.d.ts +2 -2
  141. package/dist/esm/types/menus/MRT_ShowHideColumnsMenuItems.d.ts +2 -2
  142. package/dist/esm/types/menus/index.d.ts +5 -0
  143. package/dist/esm/types/modals/MRT_EditRowModal.d.ts +7 -0
  144. package/dist/esm/types/modals/index.d.ts +1 -0
  145. package/dist/esm/types/sortingFns.d.ts +2 -418
  146. package/dist/esm/types/table/MRT_Table.d.ts +3 -3
  147. package/dist/esm/types/table/MRT_TableContainer.d.ts +3 -3
  148. package/dist/esm/types/table/MRT_TablePaper.d.ts +3 -3
  149. package/dist/esm/types/table/index.d.ts +4 -0
  150. package/dist/esm/types/toolbar/MRT_BottomToolbar.d.ts +2 -2
  151. package/dist/esm/types/toolbar/MRT_LinearProgressBar.d.ts +2 -2
  152. package/dist/esm/types/toolbar/MRT_TablePagination.d.ts +2 -2
  153. package/dist/esm/types/toolbar/MRT_ToolbarAlertBanner.d.ts +2 -2
  154. package/dist/esm/types/toolbar/MRT_ToolbarDropZone.d.ts +2 -2
  155. package/dist/esm/types/toolbar/MRT_ToolbarInternalButtons.d.ts +2 -2
  156. package/dist/esm/types/toolbar/MRT_TopToolbar.d.ts +2 -2
  157. package/dist/esm/types/toolbar/index.d.ts +7 -0
  158. package/dist/esm/types/types.d.ts +116 -85
  159. package/dist/esm/types/useMaterialReactTable.d.ts +2 -0
  160. package/dist/index.d.ts +606 -156
  161. package/locales/ar.d.ts +2 -0
  162. package/locales/ar.esm.d.ts +2 -0
  163. package/locales/ar.esm.js +93 -0
  164. package/locales/ar.esm.js.map +1 -0
  165. package/locales/ar.js +97 -0
  166. package/locales/ar.js.map +1 -0
  167. package/locales/bg.d.ts +2 -0
  168. package/locales/bg.esm.d.ts +2 -0
  169. package/locales/bg.esm.js +93 -0
  170. package/locales/bg.esm.js.map +1 -0
  171. package/locales/bg.js +97 -0
  172. package/locales/bg.js.map +1 -0
  173. package/locales/cs.esm.js +1 -2
  174. package/locales/cs.esm.js.map +1 -1
  175. package/locales/cs.js +1 -2
  176. package/locales/cs.js.map +1 -1
  177. package/locales/da.esm.js +0 -1
  178. package/locales/da.esm.js.map +1 -1
  179. package/locales/da.js +0 -1
  180. package/locales/da.js.map +1 -1
  181. package/locales/de.esm.js +0 -1
  182. package/locales/de.esm.js.map +1 -1
  183. package/locales/de.js +0 -1
  184. package/locales/de.js.map +1 -1
  185. package/locales/en.esm.js +0 -1
  186. package/locales/en.esm.js.map +1 -1
  187. package/locales/en.js +0 -1
  188. package/locales/en.js.map +1 -1
  189. package/locales/es.esm.js +0 -1
  190. package/locales/es.esm.js.map +1 -1
  191. package/locales/es.js +0 -1
  192. package/locales/es.js.map +1 -1
  193. package/locales/et.d.ts +2 -0
  194. package/locales/et.esm.d.ts +2 -0
  195. package/locales/et.esm.js +93 -0
  196. package/locales/et.esm.js.map +1 -0
  197. package/locales/et.js +97 -0
  198. package/locales/et.js.map +1 -0
  199. package/locales/fa.esm.js +0 -1
  200. package/locales/fa.esm.js.map +1 -1
  201. package/locales/fa.js +0 -1
  202. package/locales/fa.js.map +1 -1
  203. package/locales/fi.esm.js +0 -1
  204. package/locales/fi.esm.js.map +1 -1
  205. package/locales/fi.js +0 -1
  206. package/locales/fi.js.map +1 -1
  207. package/locales/fr.esm.js +0 -1
  208. package/locales/fr.esm.js.map +1 -1
  209. package/locales/fr.js +0 -1
  210. package/locales/fr.js.map +1 -1
  211. package/locales/hu.esm.js +0 -1
  212. package/locales/hu.esm.js.map +1 -1
  213. package/locales/hu.js +0 -1
  214. package/locales/hu.js.map +1 -1
  215. package/locales/id.esm.js +0 -1
  216. package/locales/id.esm.js.map +1 -1
  217. package/locales/id.js +0 -1
  218. package/locales/id.js.map +1 -1
  219. package/locales/it.esm.js +0 -1
  220. package/locales/it.esm.js.map +1 -1
  221. package/locales/it.js +0 -1
  222. package/locales/it.js.map +1 -1
  223. package/locales/ja.esm.js +0 -1
  224. package/locales/ja.esm.js.map +1 -1
  225. package/locales/ja.js +0 -1
  226. package/locales/ja.js.map +1 -1
  227. package/locales/ko.d.ts +2 -0
  228. package/locales/ko.esm.d.ts +2 -0
  229. package/locales/ko.esm.js +93 -0
  230. package/locales/ko.esm.js.map +1 -0
  231. package/locales/ko.js +97 -0
  232. package/locales/ko.js.map +1 -0
  233. package/locales/nl.esm.js +0 -1
  234. package/locales/nl.esm.js.map +1 -1
  235. package/locales/nl.js +0 -1
  236. package/locales/nl.js.map +1 -1
  237. package/locales/no.esm.js +0 -1
  238. package/locales/no.esm.js.map +1 -1
  239. package/locales/no.js +0 -1
  240. package/locales/no.js.map +1 -1
  241. package/locales/pl.esm.js +0 -1
  242. package/locales/pl.esm.js.map +1 -1
  243. package/locales/pl.js +0 -1
  244. package/locales/pl.js.map +1 -1
  245. package/locales/pt-BR.esm.js +0 -1
  246. package/locales/pt-BR.esm.js.map +1 -1
  247. package/locales/pt-BR.js +0 -1
  248. package/locales/pt-BR.js.map +1 -1
  249. package/locales/pt.esm.js +0 -1
  250. package/locales/pt.esm.js.map +1 -1
  251. package/locales/pt.js +0 -1
  252. package/locales/pt.js.map +1 -1
  253. package/locales/ro.esm.js +0 -1
  254. package/locales/ro.esm.js.map +1 -1
  255. package/locales/ro.js +0 -1
  256. package/locales/ro.js.map +1 -1
  257. package/locales/ru.esm.js +0 -1
  258. package/locales/ru.esm.js.map +1 -1
  259. package/locales/ru.js +0 -1
  260. package/locales/ru.js.map +1 -1
  261. package/locales/sk.esm.js +0 -1
  262. package/locales/sk.esm.js.map +1 -1
  263. package/locales/sk.js +0 -1
  264. package/locales/sk.js.map +1 -1
  265. package/locales/sr-Cyrl-RS.esm.js +0 -1
  266. package/locales/sr-Cyrl-RS.esm.js.map +1 -1
  267. package/locales/sr-Cyrl-RS.js +0 -1
  268. package/locales/sr-Cyrl-RS.js.map +1 -1
  269. package/locales/sr-Latn-RS.esm.js +0 -1
  270. package/locales/sr-Latn-RS.esm.js.map +1 -1
  271. package/locales/sr-Latn-RS.js +0 -1
  272. package/locales/sr-Latn-RS.js.map +1 -1
  273. package/locales/sv.esm.js +0 -1
  274. package/locales/sv.esm.js.map +1 -1
  275. package/locales/sv.js +0 -1
  276. package/locales/sv.js.map +1 -1
  277. package/locales/tr.esm.js +0 -1
  278. package/locales/tr.esm.js.map +1 -1
  279. package/locales/tr.js +0 -1
  280. package/locales/tr.js.map +1 -1
  281. package/locales/uk.esm.js +0 -1
  282. package/locales/uk.esm.js.map +1 -1
  283. package/locales/uk.js +0 -1
  284. package/locales/uk.js.map +1 -1
  285. package/locales/vi.esm.js +0 -1
  286. package/locales/vi.esm.js.map +1 -1
  287. package/locales/vi.js +0 -1
  288. package/locales/vi.js.map +1 -1
  289. package/locales/zh-Hans.esm.js +7 -8
  290. package/locales/zh-Hans.esm.js.map +1 -1
  291. package/locales/zh-Hans.js +7 -8
  292. package/locales/zh-Hans.js.map +1 -1
  293. package/locales/zh-Hant.esm.js +1 -2
  294. package/locales/zh-Hant.esm.js.map +1 -1
  295. package/locales/zh-Hant.js +1 -2
  296. package/locales/zh-Hant.js.map +1 -1
  297. package/package.json +44 -42
  298. package/src/MaterialReactTable.tsx +31 -168
  299. package/src/body/MRT_TableBody.tsx +10 -23
  300. package/src/body/MRT_TableBodyCell.tsx +36 -39
  301. package/src/body/MRT_TableBodyCellValue.tsx +7 -4
  302. package/src/body/MRT_TableBodyRow.tsx +7 -7
  303. package/src/body/MRT_TableBodyRowGrabHandle.tsx +13 -10
  304. package/src/body/MRT_TableDetailPanel.tsx +11 -11
  305. package/src/body/index.ts +6 -0
  306. package/src/buttons/MRT_ColumnPinningButtons.tsx +2 -4
  307. package/src/buttons/MRT_CopyButton.tsx +9 -9
  308. package/src/buttons/MRT_EditActionButtons.tsx +56 -25
  309. package/src/buttons/MRT_ExpandAllButton.tsx +5 -3
  310. package/src/buttons/MRT_ExpandButton.tsx +2 -2
  311. package/src/buttons/MRT_GrabHandleButton.tsx +2 -2
  312. package/src/buttons/MRT_ShowHideColumnsButton.tsx +2 -5
  313. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +2 -3
  314. package/src/buttons/MRT_ToggleFiltersButton.tsx +2 -5
  315. package/src/buttons/{MRT_FullScreenToggleButton.tsx → MRT_ToggleFullScreenButton.tsx} +13 -6
  316. package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +3 -5
  317. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +16 -8
  318. package/src/buttons/index.ts +12 -0
  319. package/src/column.utils.ts +96 -45
  320. package/src/filterFns.ts +14 -14
  321. package/src/footer/MRT_TableFooter.tsx +4 -4
  322. package/src/footer/MRT_TableFooterCell.tsx +7 -4
  323. package/src/footer/MRT_TableFooterRow.tsx +6 -6
  324. package/src/footer/index.ts +3 -0
  325. package/src/head/MRT_TableHead.tsx +4 -4
  326. package/src/head/MRT_TableHeadCell.tsx +7 -4
  327. package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +14 -12
  328. package/src/head/MRT_TableHeadCellFilterContainer.tsx +9 -4
  329. package/src/head/MRT_TableHeadCellFilterLabel.tsx +9 -4
  330. package/src/head/MRT_TableHeadCellGrabHandle.tsx +13 -13
  331. package/src/head/MRT_TableHeadCellResizeHandle.tsx +9 -4
  332. package/src/head/MRT_TableHeadCellSortLabel.tsx +8 -6
  333. package/src/head/MRT_TableHeadRow.tsx +6 -6
  334. package/src/head/index.ts +9 -0
  335. package/src/hooks/useMRT_DisplayColumns.tsx +142 -0
  336. package/src/hooks/useMRT_Effects.ts +77 -0
  337. package/src/hooks/useMRT_TableInstance.ts +291 -0
  338. package/src/hooks/useMRT_TableOptions.ts +169 -0
  339. package/src/index.ts +16 -0
  340. package/src/inputs/MRT_EditCellTextField.tsx +39 -25
  341. package/src/inputs/MRT_FilterCheckbox.tsx +14 -11
  342. package/src/inputs/MRT_FilterRangeFields.tsx +7 -4
  343. package/src/inputs/MRT_FilterRangeSlider.tsx +18 -19
  344. package/src/inputs/MRT_FilterTextField.tsx +15 -15
  345. package/src/inputs/MRT_GlobalFilterTextField.tsx +2 -4
  346. package/src/inputs/MRT_SelectCheckbox.tsx +8 -4
  347. package/src/inputs/index.ts +7 -0
  348. package/src/locales/ar.ts +94 -0
  349. package/src/locales/bg.ts +93 -0
  350. package/src/{_locales → locales}/cs.ts +1 -2
  351. package/src/{_locales → locales}/da.ts +0 -1
  352. package/src/{_locales → locales}/de.ts +0 -1
  353. package/src/{_locales → locales}/en.ts +1 -1
  354. package/src/{_locales → locales}/es.ts +0 -1
  355. package/src/locales/et.ts +94 -0
  356. package/src/{_locales → locales}/fa.ts +0 -1
  357. package/src/{_locales → locales}/fi.ts +0 -1
  358. package/src/{_locales → locales}/fr.ts +0 -1
  359. package/src/{_locales → locales}/hu.ts +0 -1
  360. package/src/{_locales → locales}/id.ts +0 -1
  361. package/src/{_locales → locales}/it.ts +0 -1
  362. package/src/{_locales → locales}/ja.ts +0 -1
  363. package/src/locales/ko.ts +93 -0
  364. package/src/{_locales → locales}/nl.ts +0 -1
  365. package/src/{_locales → locales}/no.ts +1 -1
  366. package/src/{_locales → locales}/pl.ts +0 -1
  367. package/src/{_locales → locales}/pt-BR.ts +0 -1
  368. package/src/{_locales → locales}/pt.ts +0 -1
  369. package/src/{_locales → locales}/ro.ts +0 -1
  370. package/src/{_locales → locales}/ru.ts +0 -1
  371. package/src/{_locales → locales}/sk.ts +0 -1
  372. package/src/{_locales → locales}/sr-Cyrl-RS.ts +0 -1
  373. package/src/{_locales → locales}/sr-Latn-RS.ts +0 -1
  374. package/src/{_locales → locales}/sv.ts +0 -1
  375. package/src/{_locales → locales}/tr.ts +0 -1
  376. package/src/{_locales → locales}/uk.ts +0 -1
  377. package/src/{_locales → locales}/vi.ts +0 -1
  378. package/src/{_locales → locales}/zh-Hans.ts +7 -8
  379. package/src/{_locales → locales}/zh-Hant.ts +1 -2
  380. package/src/menus/MRT_ColumnActionMenu.tsx +8 -8
  381. package/src/menus/MRT_FilterOptionMenu.tsx +4 -3
  382. package/src/menus/MRT_RowActionMenu.tsx +5 -5
  383. package/src/menus/MRT_ShowHideColumnsMenu.tsx +4 -6
  384. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +4 -4
  385. package/src/menus/index.ts +5 -0
  386. package/src/modals/MRT_EditRowModal.tsx +115 -0
  387. package/src/modals/index.ts +1 -0
  388. package/src/sortingFns.ts +2 -2
  389. package/src/table/MRT_Table.tsx +40 -33
  390. package/src/table/MRT_TableContainer.tsx +23 -5
  391. package/src/table/MRT_TablePaper.tsx +13 -4
  392. package/src/table/index.ts +4 -0
  393. package/src/toolbar/MRT_BottomToolbar.tsx +2 -2
  394. package/src/toolbar/MRT_LinearProgressBar.tsx +2 -2
  395. package/src/toolbar/MRT_TablePagination.tsx +2 -2
  396. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +2 -2
  397. package/src/toolbar/MRT_ToolbarDropZone.tsx +2 -2
  398. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +6 -8
  399. package/src/toolbar/MRT_TopToolbar.tsx +2 -2
  400. package/src/toolbar/index.ts +7 -0
  401. package/src/types.ts +765 -751
  402. package/src/useMaterialReactTable.ts +11 -0
  403. package/dist/cjs/types/body/MRT_EditRowModal.d.ts +0 -8
  404. package/dist/cjs/types/buttons/MRT_FullScreenToggleButton.d.ts +0 -7
  405. package/dist/cjs/types/table/MRT_TableRoot.d.ts +0 -1
  406. package/dist/esm/types/body/MRT_EditRowModal.d.ts +0 -8
  407. package/dist/esm/types/buttons/MRT_FullScreenToggleButton.d.ts +0 -7
  408. package/dist/esm/types/table/MRT_TableRoot.d.ts +0 -1
  409. package/src/body/MRT_EditRowModal.tsx +0 -57
  410. package/src/index.tsx +0 -50
  411. package/src/table/MRT_TableRoot.tsx +0 -421
  412. /package/dist/cjs/types/{_locales → locales}/cs.d.ts +0 -0
  413. /package/dist/cjs/types/{_locales → locales}/da.d.ts +0 -0
  414. /package/dist/cjs/types/{_locales → locales}/de.d.ts +0 -0
  415. /package/dist/cjs/types/{_locales → locales}/en.d.ts +0 -0
  416. /package/dist/cjs/types/{_locales → locales}/es.d.ts +0 -0
  417. /package/dist/cjs/types/{_locales → locales}/fa.d.ts +0 -0
  418. /package/dist/cjs/types/{_locales → locales}/fi.d.ts +0 -0
  419. /package/dist/cjs/types/{_locales → locales}/fr.d.ts +0 -0
  420. /package/dist/cjs/types/{_locales → locales}/hu.d.ts +0 -0
  421. /package/dist/cjs/types/{_locales → locales}/id.d.ts +0 -0
  422. /package/dist/cjs/types/{_locales → locales}/it.d.ts +0 -0
  423. /package/dist/cjs/types/{_locales → locales}/ja.d.ts +0 -0
  424. /package/dist/cjs/types/{_locales → locales}/nl.d.ts +0 -0
  425. /package/dist/cjs/types/{_locales → locales}/no.d.ts +0 -0
  426. /package/dist/cjs/types/{_locales → locales}/pl.d.ts +0 -0
  427. /package/dist/cjs/types/{_locales → locales}/pt-BR.d.ts +0 -0
  428. /package/dist/cjs/types/{_locales → locales}/pt.d.ts +0 -0
  429. /package/dist/cjs/types/{_locales → locales}/ro.d.ts +0 -0
  430. /package/dist/cjs/types/{_locales → locales}/ru.d.ts +0 -0
  431. /package/dist/cjs/types/{_locales → locales}/sk.d.ts +0 -0
  432. /package/dist/cjs/types/{_locales → locales}/sr-Cyrl-RS.d.ts +0 -0
  433. /package/dist/cjs/types/{_locales → locales}/sr-Latn-RS.d.ts +0 -0
  434. /package/dist/cjs/types/{_locales → locales}/sv.d.ts +0 -0
  435. /package/dist/cjs/types/{_locales → locales}/tr.d.ts +0 -0
  436. /package/dist/cjs/types/{_locales → locales}/uk.d.ts +0 -0
  437. /package/dist/cjs/types/{_locales → locales}/vi.d.ts +0 -0
  438. /package/dist/cjs/types/{_locales → locales}/zh-Hans.d.ts +0 -0
  439. /package/dist/cjs/types/{_locales → locales}/zh-Hant.d.ts +0 -0
  440. /package/dist/esm/types/{_locales → locales}/cs.d.ts +0 -0
  441. /package/dist/esm/types/{_locales → locales}/da.d.ts +0 -0
  442. /package/dist/esm/types/{_locales → locales}/de.d.ts +0 -0
  443. /package/dist/esm/types/{_locales → locales}/en.d.ts +0 -0
  444. /package/dist/esm/types/{_locales → locales}/es.d.ts +0 -0
  445. /package/dist/esm/types/{_locales → locales}/fa.d.ts +0 -0
  446. /package/dist/esm/types/{_locales → locales}/fi.d.ts +0 -0
  447. /package/dist/esm/types/{_locales → locales}/fr.d.ts +0 -0
  448. /package/dist/esm/types/{_locales → locales}/hu.d.ts +0 -0
  449. /package/dist/esm/types/{_locales → locales}/id.d.ts +0 -0
  450. /package/dist/esm/types/{_locales → locales}/it.d.ts +0 -0
  451. /package/dist/esm/types/{_locales → locales}/ja.d.ts +0 -0
  452. /package/dist/esm/types/{_locales → locales}/nl.d.ts +0 -0
  453. /package/dist/esm/types/{_locales → locales}/no.d.ts +0 -0
  454. /package/dist/esm/types/{_locales → locales}/pl.d.ts +0 -0
  455. /package/dist/esm/types/{_locales → locales}/pt-BR.d.ts +0 -0
  456. /package/dist/esm/types/{_locales → locales}/pt.d.ts +0 -0
  457. /package/dist/esm/types/{_locales → locales}/ro.d.ts +0 -0
  458. /package/dist/esm/types/{_locales → locales}/ru.d.ts +0 -0
  459. /package/dist/esm/types/{_locales → locales}/sk.d.ts +0 -0
  460. /package/dist/esm/types/{_locales → locales}/sr-Cyrl-RS.d.ts +0 -0
  461. /package/dist/esm/types/{_locales → locales}/sr-Latn-RS.d.ts +0 -0
  462. /package/dist/esm/types/{_locales → locales}/sv.d.ts +0 -0
  463. /package/dist/esm/types/{_locales → locales}/tr.d.ts +0 -0
  464. /package/dist/esm/types/{_locales → locales}/uk.d.ts +0 -0
  465. /package/dist/esm/types/{_locales → locales}/vi.d.ts +0 -0
  466. /package/dist/esm/types/{_locales → locales}/zh-Hans.d.ts +0 -0
  467. /package/dist/esm/types/{_locales → locales}/zh-Hant.d.ts +0 -0
@@ -1,12 +1,18 @@
1
+ import { type ReactNode } from 'react';
2
+ import {
3
+ type Row,
4
+ type Renderable,
5
+ flexRender as _flexRender,
6
+ createRow as _createRow,
7
+ } from '@tanstack/react-table';
1
8
  import { alpha, lighten } from '@mui/material/styles';
2
9
  import { type MRT_AggregationFns } from './aggregationFns';
3
10
  import { type MRT_FilterFns } from './filterFns';
4
11
  import { type MRT_SortingFns } from './sortingFns';
5
- import { type Row } from '@tanstack/react-table';
6
12
  import { type TableCellProps } from '@mui/material/TableCell';
7
13
  import { type Theme } from '@mui/material/styles';
8
14
  import {
9
- type MaterialReactTableProps,
15
+ type MRT_TableOptions,
10
16
  type MRT_Column,
11
17
  type MRT_ColumnDef,
12
18
  type MRT_ColumnOrderState,
@@ -16,14 +22,15 @@ import {
16
22
  type MRT_GroupingState,
17
23
  type MRT_Header,
18
24
  type MRT_TableInstance,
25
+ type MRT_Row,
19
26
  } from './types';
20
27
 
21
- export const getColumnId = <TData extends Record<string, any> = {}>(
28
+ export const getColumnId = <TData extends Record<string, any>>(
22
29
  columnDef: MRT_ColumnDef<TData>,
23
30
  ): string =>
24
31
  columnDef.id ?? columnDef.accessorKey?.toString?.() ?? columnDef.header;
25
32
 
26
- export const getAllLeafColumnDefs = <TData extends Record<string, any> = {}>(
33
+ export const getAllLeafColumnDefs = <TData extends Record<string, any>>(
27
34
  columns: MRT_ColumnDef<TData>[],
28
35
  ): MRT_ColumnDef<TData>[] => {
29
36
  const allLeafColumnDefs: MRT_ColumnDef<TData>[] = [];
@@ -40,7 +47,7 @@ export const getAllLeafColumnDefs = <TData extends Record<string, any> = {}>(
40
47
  return allLeafColumnDefs;
41
48
  };
42
49
 
43
- export const prepareColumns = <TData extends Record<string, any> = {}>({
50
+ export const prepareColumns = <TData extends Record<string, any>>({
44
51
  aggregationFns,
45
52
  columnDefs,
46
53
  columnFilterFns,
@@ -49,13 +56,12 @@ export const prepareColumns = <TData extends Record<string, any> = {}>({
49
56
  sortingFns,
50
57
  }: {
51
58
  aggregationFns: typeof MRT_AggregationFns &
52
- MaterialReactTableProps<TData>['aggregationFns'];
59
+ MRT_TableOptions<TData>['aggregationFns'];
53
60
  columnDefs: MRT_ColumnDef<TData>[];
54
61
  columnFilterFns: { [key: string]: MRT_FilterOption };
55
62
  defaultDisplayColumn: Partial<MRT_ColumnDef<TData>>;
56
- filterFns: typeof MRT_FilterFns & MaterialReactTableProps<TData>['filterFns'];
57
- sortingFns: typeof MRT_SortingFns &
58
- MaterialReactTableProps<TData>['sortingFns'];
63
+ filterFns: typeof MRT_FilterFns & MRT_TableOptions<TData>['filterFns'];
64
+ sortingFns: typeof MRT_SortingFns & MRT_TableOptions<TData>['sortingFns'];
59
65
  }): MRT_DefinedColumnDef<TData>[] =>
60
66
  columnDefs.map((columnDef) => {
61
67
  //assign columnId
@@ -97,7 +103,7 @@ export const prepareColumns = <TData extends Record<string, any> = {}>({
97
103
  if (Object.keys(filterFns).includes(columnFilterFns[columnDef.id])) {
98
104
  columnDef.filterFn =
99
105
  filterFns[columnFilterFns[columnDef.id]] ?? filterFns.fuzzy;
100
- (columnDef as MRT_DefinedColumnDef)._filterFn =
106
+ (columnDef as MRT_DefinedColumnDef<TData>)._filterFn =
101
107
  columnFilterFns[columnDef.id];
102
108
  }
103
109
 
@@ -115,7 +121,7 @@ export const prepareColumns = <TData extends Record<string, any> = {}>({
115
121
  return columnDef;
116
122
  }) as MRT_DefinedColumnDef<TData>[];
117
123
 
118
- export const reorderColumn = <TData extends Record<string, any> = {}>(
124
+ export const reorderColumn = <TData extends Record<string, any>>(
119
125
  draggedColumn: MRT_Column<TData>,
120
126
  targetColumn: MRT_Column<TData>,
121
127
  columnOrder: MRT_ColumnOrderState,
@@ -132,8 +138,8 @@ export const reorderColumn = <TData extends Record<string, any> = {}>(
132
138
  return newColumnOrder;
133
139
  };
134
140
 
135
- export const showExpandColumn = <TData extends Record<string, any> = {}>(
136
- props: MaterialReactTableProps<TData>,
141
+ export const showExpandColumn = <TData extends Record<string, any>>(
142
+ props: MRT_TableOptions<TData>,
137
143
  grouping?: MRT_GroupingState,
138
144
  ) =>
139
145
  !!(
@@ -142,17 +148,15 @@ export const showExpandColumn = <TData extends Record<string, any> = {}>(
142
148
  props.renderDetailPanel
143
149
  );
144
150
 
145
- export const getLeadingDisplayColumnIds = <
146
- TData extends Record<string, any> = {},
147
- >(
148
- props: MaterialReactTableProps<TData>,
151
+ export const getLeadingDisplayColumnIds = <TData extends Record<string, any>>(
152
+ props: MRT_TableOptions<TData>,
149
153
  ) =>
150
154
  [
151
155
  (props.enableRowDragging || props.enableRowOrdering) && 'mrt-row-drag',
152
156
  props.positionActionsColumn === 'first' &&
153
157
  (props.enableRowActions ||
154
158
  (props.enableEditing &&
155
- ['row', 'modal'].includes(props.editingMode ?? ''))) &&
159
+ ['row', 'modal'].includes(props.editDisplayMode ?? ''))) &&
156
160
  'mrt-row-actions',
157
161
  props.positionExpandColumn === 'first' &&
158
162
  showExpandColumn(props) &&
@@ -161,26 +165,22 @@ export const getLeadingDisplayColumnIds = <
161
165
  props.enableRowNumbers && 'mrt-row-numbers',
162
166
  ].filter(Boolean) as MRT_DisplayColumnIds[];
163
167
 
164
- export const getTrailingDisplayColumnIds = <
165
- TData extends Record<string, any> = {},
166
- >(
167
- props: MaterialReactTableProps<TData>,
168
+ export const getTrailingDisplayColumnIds = <TData extends Record<string, any>>(
169
+ props: MRT_TableOptions<TData>,
168
170
  ) =>
169
171
  [
170
172
  props.positionActionsColumn === 'last' &&
171
173
  (props.enableRowActions ||
172
174
  (props.enableEditing &&
173
- ['row', 'modal'].includes(props.editingMode ?? ''))) &&
175
+ ['row', 'modal'].includes(props.editDisplayMode ?? ''))) &&
174
176
  'mrt-row-actions',
175
177
  props.positionExpandColumn === 'last' &&
176
178
  showExpandColumn(props) &&
177
179
  'mrt-row-expand',
178
180
  ].filter(Boolean) as MRT_DisplayColumnIds[];
179
181
 
180
- export const getDefaultColumnOrderIds = <
181
- TData extends Record<string, any> = {},
182
- >(
183
- props: MaterialReactTableProps<TData>,
182
+ export const getDefaultColumnOrderIds = <TData extends Record<string, any>>(
183
+ props: MRT_TableOptions<TData>,
184
184
  ) => {
185
185
  const leadingDisplayCols: string[] = getLeadingDisplayColumnIds(props);
186
186
  const trailingDisplayCols: string[] = getTrailingDisplayColumnIds(props);
@@ -194,9 +194,7 @@ export const getDefaultColumnOrderIds = <
194
194
  return [...leadingDisplayCols, ...allLeafColumnDefs, ...trailingDisplayCols];
195
195
  };
196
196
 
197
- export const getDefaultColumnFilterFn = <
198
- TData extends Record<string, any> = {},
199
- >(
197
+ export const getDefaultColumnFilterFn = <TData extends Record<string, any>>(
200
198
  columnDef: MRT_ColumnDef<TData>,
201
199
  ): MRT_FilterOption => {
202
200
  if (columnDef.filterVariant === 'multi-select') return 'arrIncludesSome';
@@ -213,24 +211,24 @@ export const getDefaultColumnFilterFn = <
213
211
  return 'fuzzy';
214
212
  };
215
213
 
216
- export const getIsFirstColumn = (
217
- column: MRT_Column,
218
- table: MRT_TableInstance,
214
+ export const getIsFirstColumn = <TData extends Record<string, any>>(
215
+ column: MRT_Column<TData>,
216
+ table: MRT_TableInstance<TData>,
219
217
  ) => {
220
218
  return table.getVisibleLeafColumns()[0].id === column.id;
221
219
  };
222
220
 
223
- export const getIsLastColumn = (
224
- column: MRT_Column,
225
- table: MRT_TableInstance,
221
+ export const getIsLastColumn = <TData extends Record<string, any>>(
222
+ column: MRT_Column<TData>,
223
+ table: MRT_TableInstance<TData>,
226
224
  ) => {
227
225
  const columns = table.getVisibleLeafColumns();
228
226
  return columns[columns.length - 1].id === column.id;
229
227
  };
230
228
 
231
- export const getIsLastLeftPinnedColumn = (
232
- table: MRT_TableInstance,
233
- column: MRT_Column,
229
+ export const getIsLastLeftPinnedColumn = <TData extends Record<string, any>>(
230
+ table: MRT_TableInstance<TData>,
231
+ column: MRT_Column<TData>,
234
232
  ) => {
235
233
  return (
236
234
  column.getIsPinned() === 'left' &&
@@ -238,27 +236,57 @@ export const getIsLastLeftPinnedColumn = (
238
236
  );
239
237
  };
240
238
 
241
- export const getIsFirstRightPinnedColumn = (column: MRT_Column) => {
239
+ export const getIsFirstRightPinnedColumn = <TData extends Record<string, any>>(
240
+ column: MRT_Column<TData>,
241
+ ) => {
242
242
  return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;
243
243
  };
244
244
 
245
- export const getTotalRight = (table: MRT_TableInstance, column: MRT_Column) => {
245
+ export const getTotalRight = <TData extends Record<string, any>>(
246
+ table: MRT_TableInstance<TData>,
247
+ column: MRT_Column<TData>,
248
+ ) => {
246
249
  return table
247
250
  .getRightLeafHeaders()
248
251
  .slice(column.getPinnedIndex() + 1)
249
252
  .reduce((acc, col) => acc + col.getSize(), 0);
250
253
  };
251
254
 
252
- export const getCommonCellStyles = ({
255
+ export const getCanRankRows = <TData extends Record<string, any>>(
256
+ table: MRT_TableInstance<TData>,
257
+ ) => {
258
+ const { options, getState } = table;
259
+ const {
260
+ manualExpanding,
261
+ manualFiltering,
262
+ manualGrouping,
263
+ manualSorting,
264
+ enableGlobalFilterRankedResults,
265
+ } = options;
266
+ const { globalFilterFn, expanded } = getState();
267
+
268
+ return (
269
+ !manualExpanding &&
270
+ !manualFiltering &&
271
+ !manualGrouping &&
272
+ !manualSorting &&
273
+ enableGlobalFilterRankedResults &&
274
+ globalFilterFn === 'fuzzy' &&
275
+ expanded !== true &&
276
+ !Object.values(expanded).some(Boolean)
277
+ );
278
+ };
279
+
280
+ export const getCommonCellStyles = <TData extends Record<string, any>>({
253
281
  column,
254
282
  header,
255
283
  table,
256
284
  tableCellProps,
257
285
  theme,
258
286
  }: {
259
- column: MRT_Column;
260
- header?: MRT_Header;
261
- table: MRT_TableInstance;
287
+ column: MRT_Column<TData>;
288
+ header?: MRT_Header<TData>;
289
+ table: MRT_TableInstance<TData>;
262
290
  tableCellProps: TableCellProps;
263
291
  theme: Theme;
264
292
  }) => {
@@ -358,3 +386,26 @@ export const MRT_DefaultDisplayColumn = {
358
386
  } as const;
359
387
 
360
388
  export const parseCSSVarId = (id: string) => id.replace(/[^a-zA-Z0-9]/g, '_');
389
+
390
+ export const flexRender = _flexRender as (
391
+ Comp: Renderable<any>,
392
+ props: any,
393
+ ) => ReactNode | JSX.Element;
394
+
395
+ export const createRow = <TData extends Record<string, any>>(
396
+ table: MRT_TableInstance<TData>,
397
+ originalRow?: TData,
398
+ ): MRT_Row<TData> =>
399
+ _createRow(
400
+ table as any,
401
+ 'mrt-row-create',
402
+ originalRow ??
403
+ Object.assign(
404
+ {},
405
+ ...getAllLeafColumnDefs(table.options.columns).map((col) => ({
406
+ [getColumnId(col)]: '',
407
+ })),
408
+ ),
409
+ -1,
410
+ 0,
411
+ ) as MRT_Row<TData>;
package/src/filterFns.ts CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  } from '@tanstack/match-sorter-utils';
6
6
  import { filterFns, type Row } from '@tanstack/react-table';
7
7
 
8
- const fuzzy = <TData extends Record<string, any> = {}>(
8
+ const fuzzy = <TData extends Record<string, any>>(
9
9
  row: Row<TData>,
10
10
  columnId: string,
11
11
  filterValue: string | number,
@@ -20,7 +20,7 @@ const fuzzy = <TData extends Record<string, any> = {}>(
20
20
 
21
21
  fuzzy.autoRemove = (val: any) => !val;
22
22
 
23
- const contains = <TData extends Record<string, any> = {}>(
23
+ const contains = <TData extends Record<string, any>>(
24
24
  row: Row<TData>,
25
25
  id: string,
26
26
  filterValue: string | number,
@@ -34,7 +34,7 @@ const contains = <TData extends Record<string, any> = {}>(
34
34
 
35
35
  contains.autoRemove = (val: any) => !val;
36
36
 
37
- const startsWith = <TData extends Record<string, any> = {}>(
37
+ const startsWith = <TData extends Record<string, any>>(
38
38
  row: Row<TData>,
39
39
  id: string,
40
40
  filterValue: string | number,
@@ -48,7 +48,7 @@ const startsWith = <TData extends Record<string, any> = {}>(
48
48
 
49
49
  startsWith.autoRemove = (val: any) => !val;
50
50
 
51
- const endsWith = <TData extends Record<string, any> = {}>(
51
+ const endsWith = <TData extends Record<string, any>>(
52
52
  row: Row<TData>,
53
53
  id: string,
54
54
  filterValue: string | number,
@@ -62,7 +62,7 @@ const endsWith = <TData extends Record<string, any> = {}>(
62
62
 
63
63
  endsWith.autoRemove = (val: any) => !val;
64
64
 
65
- const equals = <TData extends Record<string, any> = {}>(
65
+ const equals = <TData extends Record<string, any>>(
66
66
  row: Row<TData>,
67
67
  id: string,
68
68
  filterValue: string | number,
@@ -72,7 +72,7 @@ const equals = <TData extends Record<string, any> = {}>(
72
72
 
73
73
  equals.autoRemove = (val: any) => !val;
74
74
 
75
- const notEquals = <TData extends Record<string, any> = {}>(
75
+ const notEquals = <TData extends Record<string, any>>(
76
76
  row: Row<TData>,
77
77
  id: string,
78
78
  filterValue: string | number,
@@ -82,7 +82,7 @@ const notEquals = <TData extends Record<string, any> = {}>(
82
82
 
83
83
  notEquals.autoRemove = (val: any) => !val;
84
84
 
85
- const greaterThan = <TData extends Record<string, any> = {}>(
85
+ const greaterThan = <TData extends Record<string, any>>(
86
86
  row: Row<TData>,
87
87
  id: string,
88
88
  filterValue: string | number,
@@ -94,7 +94,7 @@ const greaterThan = <TData extends Record<string, any> = {}>(
94
94
 
95
95
  greaterThan.autoRemove = (val: any) => !val;
96
96
 
97
- const greaterThanOrEqualTo = <TData extends Record<string, any> = {}>(
97
+ const greaterThanOrEqualTo = <TData extends Record<string, any>>(
98
98
  row: Row<TData>,
99
99
  id: string,
100
100
  filterValue: string | number,
@@ -102,7 +102,7 @@ const greaterThanOrEqualTo = <TData extends Record<string, any> = {}>(
102
102
 
103
103
  greaterThanOrEqualTo.autoRemove = (val: any) => !val;
104
104
 
105
- const lessThan = <TData extends Record<string, any> = {}>(
105
+ const lessThan = <TData extends Record<string, any>>(
106
106
  row: Row<TData>,
107
107
  id: string,
108
108
  filterValue: string | number,
@@ -114,7 +114,7 @@ const lessThan = <TData extends Record<string, any> = {}>(
114
114
 
115
115
  lessThan.autoRemove = (val: any) => !val;
116
116
 
117
- const lessThanOrEqualTo = <TData extends Record<string, any> = {}>(
117
+ const lessThanOrEqualTo = <TData extends Record<string, any>>(
118
118
  row: Row<TData>,
119
119
  id: string,
120
120
  filterValue: string | number,
@@ -122,7 +122,7 @@ const lessThanOrEqualTo = <TData extends Record<string, any> = {}>(
122
122
 
123
123
  lessThanOrEqualTo.autoRemove = (val: any) => !val;
124
124
 
125
- const between = <TData extends Record<string, any> = {}>(
125
+ const between = <TData extends Record<string, any>>(
126
126
  row: Row<TData>,
127
127
  id: string,
128
128
  filterValues: [string | number, string | number],
@@ -137,7 +137,7 @@ const between = <TData extends Record<string, any> = {}>(
137
137
 
138
138
  between.autoRemove = (val: any) => !val;
139
139
 
140
- const betweenInclusive = <TData extends Record<string, any> = {}>(
140
+ const betweenInclusive = <TData extends Record<string, any>>(
141
141
  row: Row<TData>,
142
142
  id: string,
143
143
  filterValues: [string | number, string | number],
@@ -152,7 +152,7 @@ const betweenInclusive = <TData extends Record<string, any> = {}>(
152
152
 
153
153
  betweenInclusive.autoRemove = (val: any) => !val;
154
154
 
155
- const empty = <TData extends Record<string, any> = {}>(
155
+ const empty = <TData extends Record<string, any>>(
156
156
  row: Row<TData>,
157
157
  id: string,
158
158
  _filterValue: string | number,
@@ -160,7 +160,7 @@ const empty = <TData extends Record<string, any> = {}>(
160
160
 
161
161
  empty.autoRemove = (val: any) => !val;
162
162
 
163
- const notEmpty = <TData extends Record<string, any> = {}>(
163
+ const notEmpty = <TData extends Record<string, any>>(
164
164
  row: Row<TData>,
165
165
  id: string,
166
166
  _filterValue: string | number,
@@ -3,19 +3,19 @@ import { MRT_TableFooterRow } from './MRT_TableFooterRow';
3
3
  import { type VirtualItem } from '@tanstack/react-virtual';
4
4
  import { type MRT_TableInstance } from '../types';
5
5
 
6
- interface Props {
7
- table: MRT_TableInstance;
6
+ interface Props<TData extends Record<string, any>> {
7
+ table: MRT_TableInstance<TData>;
8
8
  virtualColumns?: VirtualItem[];
9
9
  virtualPaddingLeft?: number;
10
10
  virtualPaddingRight?: number;
11
11
  }
12
12
 
13
- export const MRT_TableFooter = ({
13
+ export const MRT_TableFooter = <TData extends Record<string, any>>({
14
14
  table,
15
15
  virtualColumns,
16
16
  virtualPaddingLeft,
17
17
  virtualPaddingRight,
18
- }: Props) => {
18
+ }: Props<TData>) => {
19
19
  const {
20
20
  getFooterGroups,
21
21
  getState,
@@ -2,12 +2,15 @@ import TableCell from '@mui/material/TableCell';
2
2
  import { getCommonCellStyles } from '../column.utils';
3
3
  import { type MRT_Header, type MRT_TableInstance } from '../types';
4
4
 
5
- interface Props {
6
- footer: MRT_Header;
7
- table: MRT_TableInstance;
5
+ interface Props<TData extends Record<string, any>> {
6
+ footer: MRT_Header<TData>;
7
+ table: MRT_TableInstance<TData>;
8
8
  }
9
9
 
10
- export const MRT_TableFooterCell = ({ footer, table }: Props) => {
10
+ export const MRT_TableFooterCell = <TData extends Record<string, any>>({
11
+ footer,
12
+ table,
13
+ }: Props<TData>) => {
11
14
  const {
12
15
  getState,
13
16
  options: { layoutMode, muiTableFooterCellProps },
@@ -8,21 +8,21 @@ import {
8
8
  type MRT_TableInstance,
9
9
  } from '../types';
10
10
 
11
- interface Props {
12
- footerGroup: MRT_HeaderGroup;
13
- table: MRT_TableInstance;
11
+ interface Props<TData extends Record<string, any>> {
12
+ footerGroup: MRT_HeaderGroup<TData>;
13
+ table: MRT_TableInstance<TData>;
14
14
  virtualColumns?: VirtualItem[];
15
15
  virtualPaddingLeft?: number;
16
16
  virtualPaddingRight?: number;
17
17
  }
18
18
 
19
- export const MRT_TableFooterRow = ({
19
+ export const MRT_TableFooterRow = <TData extends Record<string, any>>({
20
20
  footerGroup,
21
21
  table,
22
22
  virtualColumns,
23
23
  virtualPaddingLeft,
24
24
  virtualPaddingRight,
25
- }: Props) => {
25
+ }: Props<TData>) => {
26
26
  const {
27
27
  options: { layoutMode, muiTableFooterRowProps },
28
28
  } = table;
@@ -61,7 +61,7 @@ export const MRT_TableFooterRow = ({
61
61
  {(virtualColumns ?? footerGroup.headers).map((footerOrVirtualFooter) => {
62
62
  const footer = virtualColumns
63
63
  ? footerGroup.headers[footerOrVirtualFooter.index]
64
- : (footerOrVirtualFooter as MRT_Header);
64
+ : (footerOrVirtualFooter as MRT_Header<TData>);
65
65
 
66
66
  return (
67
67
  <MRT_TableFooterCell footer={footer} key={footer.id} table={table} />
@@ -0,0 +1,3 @@
1
+ export * from './MRT_TableFooter';
2
+ export * from './MRT_TableFooterCell';
3
+ export * from './MRT_TableFooterRow';
@@ -3,19 +3,19 @@ import { MRT_TableHeadRow } from './MRT_TableHeadRow';
3
3
  import { type VirtualItem } from '@tanstack/react-virtual';
4
4
  import { type MRT_TableInstance } from '../types';
5
5
 
6
- interface Props {
7
- table: MRT_TableInstance;
6
+ interface Props<TData extends Record<string, any>> {
7
+ table: MRT_TableInstance<TData>;
8
8
  virtualColumns?: VirtualItem[];
9
9
  virtualPaddingLeft?: number;
10
10
  virtualPaddingRight?: number;
11
11
  }
12
12
 
13
- export const MRT_TableHead = ({
13
+ export const MRT_TableHead = <TData extends Record<string, any>>({
14
14
  table,
15
15
  virtualColumns,
16
16
  virtualPaddingLeft,
17
17
  virtualPaddingRight,
18
- }: Props) => {
18
+ }: Props<TData>) => {
19
19
  const {
20
20
  getHeaderGroups,
21
21
  getState,
@@ -12,12 +12,15 @@ import { getCommonCellStyles } from '../column.utils';
12
12
  import { type Theme } from '@mui/material/styles';
13
13
  import { type MRT_Header, type MRT_TableInstance } from '../types';
14
14
 
15
- interface Props {
16
- header: MRT_Header;
17
- table: MRT_TableInstance;
15
+ interface Props<TData extends Record<string, any>> {
16
+ header: MRT_Header<TData>;
17
+ table: MRT_TableInstance<TData>;
18
18
  }
19
19
 
20
- export const MRT_TableHeadCell = ({ header, table }: Props) => {
20
+ export const MRT_TableHeadCell = <TData extends Record<string, any>>({
21
+ header,
22
+ table,
23
+ }: Props<TData>) => {
21
24
  const theme = useTheme();
22
25
  const {
23
26
  getState,
@@ -4,20 +4,22 @@ import Tooltip from '@mui/material/Tooltip';
4
4
  import { MRT_ColumnActionMenu } from '../menus/MRT_ColumnActionMenu';
5
5
  import { type MRT_Header, type MRT_TableInstance } from '../types';
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_TableHeadCellColumnActionsButton = ({
12
+ export const MRT_TableHeadCellColumnActionsButton = <
13
+ TData extends Record<string, any>,
14
+ >({
13
15
  header,
14
16
  table,
15
- }: Props) => {
17
+ }: Props<TData>) => {
16
18
  const {
17
19
  options: {
18
20
  icons: { MoreVertIcon },
19
21
  localization,
20
- muiTableHeadCellColumnActionsButtonProps,
22
+ muiColumnActionsButtonProps,
21
23
  },
22
24
  } = table;
23
25
  const { column } = header;
@@ -32,17 +34,17 @@ export const MRT_TableHeadCellColumnActionsButton = ({
32
34
  };
33
35
 
34
36
  const mTableHeadCellColumnActionsButtonProps =
35
- muiTableHeadCellColumnActionsButtonProps instanceof Function
36
- ? muiTableHeadCellColumnActionsButtonProps({ column, table })
37
- : muiTableHeadCellColumnActionsButtonProps;
37
+ muiColumnActionsButtonProps instanceof Function
38
+ ? muiColumnActionsButtonProps({ column, table })
39
+ : muiColumnActionsButtonProps;
38
40
 
39
41
  const mcTableHeadCellColumnActionsButtonProps =
40
- columnDef.muiTableHeadCellColumnActionsButtonProps instanceof Function
41
- ? columnDef.muiTableHeadCellColumnActionsButtonProps({
42
+ columnDef.muiColumnActionsButtonProps instanceof Function
43
+ ? columnDef.muiColumnActionsButtonProps({
42
44
  column,
43
45
  table,
44
46
  })
45
- : columnDef.muiTableHeadCellColumnActionsButtonProps;
47
+ : columnDef.muiColumnActionsButtonProps;
46
48
 
47
49
  const iconButtonProps = {
48
50
  ...mTableHeadCellColumnActionsButtonProps,
@@ -5,12 +5,17 @@ import { MRT_FilterCheckbox } from '../inputs/MRT_FilterCheckbox';
5
5
  import { MRT_FilterRangeSlider } from '../inputs/MRT_FilterRangeSlider';
6
6
  import { type MRT_Header, type MRT_TableInstance } from '../types';
7
7
 
8
- interface Props {
9
- header: MRT_Header;
10
- table: MRT_TableInstance;
8
+ interface Props<TData extends Record<string, any>> {
9
+ header: MRT_Header<TData>;
10
+ table: MRT_TableInstance<TData>;
11
11
  }
12
12
 
13
- export const MRT_TableHeadCellFilterContainer = ({ header, table }: Props) => {
13
+ export const MRT_TableHeadCellFilterContainer = <
14
+ TData extends Record<string, any>,
15
+ >({
16
+ header,
17
+ table,
18
+ }: Props<TData>) => {
14
19
  const { getState } = table;
15
20
  const { showColumnFilters } = getState();
16
21
  const { column } = header;
@@ -5,12 +5,17 @@ import IconButton from '@mui/material/IconButton';
5
5
  import Tooltip from '@mui/material/Tooltip';
6
6
  import { type MRT_Header, type MRT_TableInstance } from '../types';
7
7
 
8
- interface Props {
9
- header: MRT_Header;
10
- table: MRT_TableInstance;
8
+ interface Props<TData extends Record<string, any>> {
9
+ header: MRT_Header<TData>;
10
+ table: MRT_TableInstance<TData>;
11
11
  }
12
12
 
13
- export const MRT_TableHeadCellFilterLabel = ({ header, table }: Props) => {
13
+ export const MRT_TableHeadCellFilterLabel = <
14
+ TData extends Record<string, any>,
15
+ >({
16
+ header,
17
+ table,
18
+ }: Props<TData>) => {
14
19
  const {
15
20
  options: {
16
21
  icons: { FilterAltIcon },