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
@@ -0,0 +1,11 @@
1
+ import { useMRT_TableOptions } from './hooks/useMRT_TableOptions';
2
+ import { useMRT_TableInstance } from './hooks/useMRT_TableInstance';
3
+ import { type MRT_TableInstance, type MRT_TableOptions } from './types';
4
+
5
+ export const useMaterialReactTable = <TData extends Record<string, any>>(
6
+ tableOptions: MRT_TableOptions<TData>,
7
+ ): MRT_TableInstance<TData> => {
8
+ const parsedTableOptions = useMRT_TableOptions(tableOptions);
9
+ const tableInstance = useMRT_TableInstance(parsedTableOptions);
10
+ return tableInstance;
11
+ };
@@ -1,8 +0,0 @@
1
- import { type MRT_Row, type MRT_TableInstance } from '../types';
2
- interface Props<TData extends Record<string, any> = {}> {
3
- open: boolean;
4
- row: MRT_Row<TData>;
5
- table: MRT_TableInstance<TData>;
6
- }
7
- export declare const MRT_EditRowModal: <TData extends Record<string, any> = {}>({ open, row, table, }: Props<TData>) => import("react/jsx-runtime").JSX.Element;
8
- export {};
@@ -1,7 +0,0 @@
1
- import { type IconButtonProps } from '@mui/material/IconButton';
2
- import { type MRT_TableInstance } from '../types';
3
- interface Props<TData extends Record<string, any> = {}> extends IconButtonProps {
4
- table: MRT_TableInstance<TData>;
5
- }
6
- export declare const MRT_FullScreenToggleButton: <TData extends Record<string, any> = {}>({ table, ...rest }: Props<TData>) => import("react/jsx-runtime").JSX.Element;
7
- export {};
@@ -1 +0,0 @@
1
- export declare const MRT_TableRoot: any;
@@ -1,8 +0,0 @@
1
- import { type MRT_Row, type MRT_TableInstance } from '../types';
2
- interface Props<TData extends Record<string, any> = {}> {
3
- open: boolean;
4
- row: MRT_Row<TData>;
5
- table: MRT_TableInstance<TData>;
6
- }
7
- export declare const MRT_EditRowModal: <TData extends Record<string, any> = {}>({ open, row, table, }: Props<TData>) => import("react/jsx-runtime").JSX.Element;
8
- export {};
@@ -1,7 +0,0 @@
1
- import { type IconButtonProps } from '@mui/material/IconButton';
2
- import { type MRT_TableInstance } from '../types';
3
- interface Props<TData extends Record<string, any> = {}> extends IconButtonProps {
4
- table: MRT_TableInstance<TData>;
5
- }
6
- export declare const MRT_FullScreenToggleButton: <TData extends Record<string, any> = {}>({ table, ...rest }: Props<TData>) => import("react/jsx-runtime").JSX.Element;
7
- export {};
@@ -1 +0,0 @@
1
- export declare const MRT_TableRoot: any;
@@ -1,57 +0,0 @@
1
- import Dialog from '@mui/material/Dialog';
2
- import DialogActions from '@mui/material/DialogActions';
3
- import DialogContent from '@mui/material/DialogContent';
4
- import DialogTitle from '@mui/material/DialogTitle';
5
- import Stack from '@mui/material/Stack';
6
- import { MRT_EditActionButtons } from '../buttons/MRT_EditActionButtons';
7
- import { MRT_EditCellTextField } from '../inputs/MRT_EditCellTextField';
8
- import { type MRT_Row, type MRT_TableInstance } from '../types';
9
-
10
- interface Props<TData extends Record<string, any> = {}> {
11
- open: boolean;
12
- row: MRT_Row<TData>;
13
- table: MRT_TableInstance<TData>;
14
- }
15
-
16
- export const MRT_EditRowModal = <TData extends Record<string, any> = {}>({
17
- open,
18
- row,
19
- table,
20
- }: Props<TData>) => {
21
- const {
22
- options: { localization },
23
- } = table;
24
-
25
- return (
26
- <Dialog open={open}>
27
- <DialogTitle textAlign="center">{localization.edit}</DialogTitle>
28
- <DialogContent>
29
- <form onSubmit={(e) => e.preventDefault()}>
30
- <Stack
31
- sx={{
32
- gap: '1.5rem',
33
- minWidth: { xs: '300px', sm: '360px', md: '400px' },
34
- pt: '1rem',
35
- width: '100%',
36
- }}
37
- >
38
- {row
39
- .getAllCells()
40
- .filter((cell) => cell.column.columnDef.columnDefType === 'data')
41
- .map((cell) => (
42
- <MRT_EditCellTextField
43
- cell={cell as any}
44
- key={cell.id}
45
- showLabel
46
- table={table as any}
47
- />
48
- ))}
49
- </Stack>
50
- </form>
51
- </DialogContent>
52
- <DialogActions sx={{ p: '1.25rem' }}>
53
- <MRT_EditActionButtons row={row} table={table} variant="text" />
54
- </DialogActions>
55
- </Dialog>
56
- );
57
- };
package/src/index.tsx DELETED
@@ -1,50 +0,0 @@
1
- export * from './MaterialReactTable';
2
- export * from './types';
3
-
4
- import { MRT_BottomToolbar } from './toolbar/MRT_BottomToolbar';
5
- import { MRT_CopyButton } from './buttons/MRT_CopyButton';
6
- import { MRT_EditActionButtons } from './buttons/MRT_EditActionButtons';
7
- import { MRT_ExpandButton } from './buttons/MRT_ExpandButton';
8
- import { MRT_FilterOptionMenu } from './menus/MRT_FilterOptionMenu';
9
- import { MRT_FullScreenToggleButton } from './buttons/MRT_FullScreenToggleButton';
10
- import { MRT_GlobalFilterTextField } from './inputs/MRT_GlobalFilterTextField';
11
- import { MRT_GrabHandleButton } from './buttons/MRT_GrabHandleButton';
12
- import { MRT_ShowHideColumnsButton } from './buttons/MRT_ShowHideColumnsButton';
13
- import { MRT_TableHeadCellFilterContainer } from './head/MRT_TableHeadCellFilterContainer';
14
- import { MRT_TablePagination } from './toolbar/MRT_TablePagination';
15
- import { MRT_ToggleDensePaddingButton } from './buttons/MRT_ToggleDensePaddingButton';
16
- import { MRT_ToggleFiltersButton } from './buttons/MRT_ToggleFiltersButton';
17
- import { MRT_ToggleGlobalFilterButton } from './buttons/MRT_ToggleGlobalFilterButton';
18
- import { MRT_ToggleRowActionMenuButton } from './buttons/MRT_ToggleRowActionMenuButton';
19
- import { MRT_ToolbarAlertBanner } from './toolbar/MRT_ToolbarAlertBanner';
20
- import { MRT_ToolbarDropZone } from './toolbar/MRT_ToolbarDropZone';
21
- import { MRT_ToolbarInternalButtons } from './toolbar/MRT_ToolbarInternalButtons';
22
- import { MRT_TopToolbar } from './toolbar/MRT_TopToolbar';
23
-
24
- export {
25
- MRT_BottomToolbar,
26
- MRT_CopyButton,
27
- MRT_EditActionButtons,
28
- MRT_ExpandButton,
29
- MRT_FilterOptionMenu,
30
- MRT_FullScreenToggleButton,
31
- MRT_GlobalFilterTextField,
32
- MRT_GrabHandleButton,
33
- MRT_ShowHideColumnsButton,
34
- MRT_TableHeadCellFilterContainer,
35
- MRT_TablePagination,
36
- MRT_ToggleDensePaddingButton,
37
- MRT_ToggleFiltersButton,
38
- MRT_ToggleGlobalFilterButton,
39
- MRT_ToggleRowActionMenuButton,
40
- MRT_ToolbarAlertBanner,
41
- MRT_ToolbarDropZone,
42
- MRT_ToolbarInternalButtons,
43
- MRT_TopToolbar,
44
- };
45
-
46
- /**
47
- * @deprecated Use named exports instead of default export (will be removed in v2)
48
- * @example import { MaterialReactTable } from 'material-react-table';
49
- */
50
- export { default } from './MaterialReactTable';
@@ -1,421 +0,0 @@
1
- import { useEffect, useMemo, useRef, useState } from 'react';
2
- import {
3
- getCoreRowModel,
4
- getExpandedRowModel,
5
- getFacetedMinMaxValues,
6
- getFacetedRowModel,
7
- getFacetedUniqueValues,
8
- getFilteredRowModel,
9
- getGroupedRowModel,
10
- getPaginationRowModel,
11
- getSortedRowModel,
12
- useReactTable,
13
- } from '@tanstack/react-table';
14
- import Box from '@mui/material/Box';
15
- import Dialog from '@mui/material/Dialog';
16
- import Grow from '@mui/material/Grow';
17
- import { MRT_ExpandAllButton } from '../buttons/MRT_ExpandAllButton';
18
- import { MRT_ExpandButton } from '../buttons/MRT_ExpandButton';
19
- import { MRT_ToggleRowActionMenuButton } from '../buttons/MRT_ToggleRowActionMenuButton';
20
- import { MRT_SelectCheckbox } from '../inputs/MRT_SelectCheckbox';
21
- import { MRT_TablePaper } from './MRT_TablePaper';
22
- import { MRT_EditRowModal } from '../body/MRT_EditRowModal';
23
- import {
24
- prepareColumns,
25
- getAllLeafColumnDefs,
26
- getDefaultColumnOrderIds,
27
- getDefaultColumnFilterFn,
28
- showExpandColumn,
29
- getColumnId,
30
- } from '../column.utils';
31
- import {
32
- type MRT_Cell,
33
- type MRT_Column,
34
- type MRT_ColumnDef,
35
- type MRT_FilterOption,
36
- type MRT_Localization,
37
- type MRT_Row,
38
- type MRT_TableInstance,
39
- type MRT_TableState,
40
- type MaterialReactTableProps,
41
- type MRT_DensityState,
42
- type MRT_ColumnOrderState,
43
- type MRT_GroupingState,
44
- type MRT_FilterFnsState,
45
- } from '../types';
46
-
47
- export const MRT_TableRoot: any = <TData extends Record<string, any> = {}>(
48
- props: MaterialReactTableProps<TData> & { localization: MRT_Localization },
49
- ): JSX.Element => {
50
- const bottomToolbarRef = useRef<HTMLDivElement>(null);
51
- const editInputRefs = useRef<Record<string, HTMLInputElement>>({});
52
- const filterInputRefs = useRef<Record<string, HTMLInputElement>>({});
53
- const searchInputRef = useRef<HTMLInputElement>(null);
54
- const tableContainerRef = useRef<HTMLDivElement>(null);
55
- const tableHeadCellRefs = useRef<Record<string, HTMLTableCellElement>>({});
56
- const tablePaperRef = useRef<HTMLDivElement>(null);
57
- const topToolbarRef = useRef<HTMLDivElement>(null);
58
-
59
- const initialState: Partial<MRT_TableState<TData>> = useMemo(() => {
60
- const initState = props.initialState ?? {};
61
- initState.columnOrder =
62
- initState.columnOrder ?? getDefaultColumnOrderIds(props);
63
- initState.globalFilterFn = props.globalFilterFn ?? 'fuzzy';
64
- return initState;
65
- }, []);
66
-
67
- const [columnFilterFns, setColumnFilterFns] = useState<MRT_FilterFnsState>(
68
- () =>
69
- Object.assign(
70
- {},
71
- ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef<TData>[]).map(
72
- (col) => ({
73
- [getColumnId(col)]:
74
- col.filterFn instanceof Function
75
- ? col.filterFn.name ?? 'custom'
76
- : col.filterFn ??
77
- initialState?.columnFilterFns?.[getColumnId(col)] ??
78
- getDefaultColumnFilterFn(col),
79
- }),
80
- ),
81
- ),
82
- );
83
- const [columnOrder, setColumnOrder] = useState<MRT_ColumnOrderState>(
84
- initialState.columnOrder ?? [],
85
- );
86
- const [density, setDensity] = useState<MRT_DensityState>(
87
- initialState?.density ?? 'comfortable',
88
- );
89
- const [draggingColumn, setDraggingColumn] =
90
- useState<MRT_Column<TData> | null>(initialState.draggingColumn ?? null);
91
- const [draggingRow, setDraggingRow] = useState<MRT_Row<TData> | null>(
92
- initialState.draggingRow ?? null,
93
- );
94
- const [editingCell, setEditingCell] = useState<MRT_Cell<TData> | null>(
95
- initialState.editingCell ?? null,
96
- );
97
- const [editingRow, setEditingRow] = useState<MRT_Row<TData> | null>(
98
- initialState.editingRow ?? null,
99
- );
100
- const [globalFilterFn, setGlobalFilterFn] = useState<MRT_FilterOption>(
101
- initialState.globalFilterFn ?? 'fuzzy',
102
- );
103
- const [grouping, setGrouping] = useState<MRT_GroupingState>(
104
- initialState.grouping ?? [],
105
- );
106
- const [hoveredColumn, setHoveredColumn] = useState<
107
- MRT_Column<TData> | { id: string } | null
108
- >(initialState.hoveredColumn ?? null);
109
- const [hoveredRow, setHoveredRow] = useState<
110
- MRT_Row<TData> | { id: string } | null
111
- >(initialState.hoveredRow ?? null);
112
- const [isFullScreen, setIsFullScreen] = useState<boolean>(
113
- initialState?.isFullScreen ?? false,
114
- );
115
- const [showAlertBanner, setShowAlertBanner] = useState<boolean>(
116
- props.initialState?.showAlertBanner ?? false,
117
- );
118
- const [showColumnFilters, setShowColumnFilters] = useState<boolean>(
119
- initialState?.showColumnFilters ?? false,
120
- );
121
- const [showGlobalFilter, setShowGlobalFilter] = useState<boolean>(
122
- initialState?.showGlobalFilter ?? false,
123
- );
124
- const [showToolbarDropZone, setShowToolbarDropZone] = useState<boolean>(
125
- initialState?.showToolbarDropZone ?? false,
126
- );
127
-
128
- const displayColumns = useMemo(
129
- () =>
130
- (
131
- [
132
- (props.state?.columnOrder ?? columnOrder).includes(
133
- 'mrt-row-drag',
134
- ) && {
135
- header: props.localization.move,
136
- size: 60,
137
- ...props.defaultDisplayColumn,
138
- ...props.displayColumnDefOptions?.['mrt-row-drag'],
139
- id: 'mrt-row-drag',
140
- },
141
- (props.state?.columnOrder ?? columnOrder).includes(
142
- 'mrt-row-actions',
143
- ) && {
144
- Cell: ({ cell, row }) => (
145
- <MRT_ToggleRowActionMenuButton
146
- cell={cell as any}
147
- row={row as any}
148
- table={table as any}
149
- />
150
- ),
151
- header: props.localization.actions,
152
- size: 70,
153
- ...props.defaultDisplayColumn,
154
- ...props.displayColumnDefOptions?.['mrt-row-actions'],
155
- id: 'mrt-row-actions',
156
- },
157
- (props.state?.columnOrder ?? columnOrder).includes(
158
- 'mrt-row-expand',
159
- ) &&
160
- showExpandColumn(props, props.state?.grouping ?? grouping) && {
161
- Cell: ({ row }) => (
162
- <MRT_ExpandButton row={row as any} table={table as any} />
163
- ),
164
- Header: props.enableExpandAll
165
- ? () => <MRT_ExpandAllButton table={table as any} />
166
- : null,
167
- header: props.localization.expand,
168
- size: 60,
169
- ...props.defaultDisplayColumn,
170
- ...props.displayColumnDefOptions?.['mrt-row-expand'],
171
- id: 'mrt-row-expand',
172
- },
173
- (props.state?.columnOrder ?? columnOrder).includes(
174
- 'mrt-row-select',
175
- ) && {
176
- Cell: ({ row }) => (
177
- <MRT_SelectCheckbox row={row as any} table={table as any} />
178
- ),
179
- Header:
180
- props.enableSelectAll && props.enableMultiRowSelection
181
- ? () => <MRT_SelectCheckbox selectAll table={table as any} />
182
- : null,
183
- header: props.localization.select,
184
- size: 60,
185
- ...props.defaultDisplayColumn,
186
- ...props.displayColumnDefOptions?.['mrt-row-select'],
187
- id: 'mrt-row-select',
188
- },
189
- (props.state?.columnOrder ?? columnOrder).includes(
190
- 'mrt-row-numbers',
191
- ) && {
192
- Cell: ({ row }) => row.index + 1,
193
- Header: () => props.localization.rowNumber,
194
- header: props.localization.rowNumbers,
195
- size: 60,
196
- ...props.defaultDisplayColumn,
197
- ...props.displayColumnDefOptions?.['mrt-row-numbers'],
198
- id: 'mrt-row-numbers',
199
- },
200
- ] as MRT_ColumnDef<TData>[]
201
- ).filter(Boolean),
202
- [
203
- columnOrder,
204
- grouping,
205
- props.displayColumnDefOptions,
206
- props.editingMode,
207
- props.enableColumnDragging,
208
- props.enableColumnFilterModes,
209
- props.enableColumnOrdering,
210
- props.enableEditing,
211
- props.enableExpandAll,
212
- props.enableExpanding,
213
- props.enableGrouping,
214
- props.enableRowActions,
215
- props.enableRowDragging,
216
- props.enableRowNumbers,
217
- props.enableRowOrdering,
218
- props.enableRowSelection,
219
- props.enableSelectAll,
220
- props.localization,
221
- props.positionActionsColumn,
222
- props.renderDetailPanel,
223
- props.renderRowActionMenuItems,
224
- props.renderRowActions,
225
- props.state?.columnOrder,
226
- props.state?.grouping,
227
- ],
228
- );
229
-
230
- const columnDefs = useMemo(
231
- () =>
232
- prepareColumns({
233
- aggregationFns: props.aggregationFns as any,
234
- columnDefs: [...displayColumns, ...props.columns],
235
- columnFilterFns: props.state?.columnFilterFns ?? columnFilterFns,
236
- defaultDisplayColumn: props.defaultDisplayColumn ?? {},
237
- filterFns: props.filterFns as any,
238
- sortingFns: props.sortingFns as any,
239
- }),
240
- [
241
- columnFilterFns,
242
- displayColumns,
243
- props.columns,
244
- props.state?.columnFilterFns,
245
- ],
246
- );
247
-
248
- const data: TData[] = useMemo(
249
- () =>
250
- (props.state?.isLoading || props.state?.showSkeletons) &&
251
- !props.data.length
252
- ? [
253
- ...Array(
254
- props.state?.pagination?.pageSize ||
255
- initialState?.pagination?.pageSize ||
256
- 10,
257
- ).fill(null),
258
- ].map(() =>
259
- Object.assign(
260
- {},
261
- ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map(
262
- (col) => ({
263
- [getColumnId(col)]: null,
264
- }),
265
- ),
266
- ),
267
- )
268
- : props.data,
269
- [props.data, props.state?.isLoading, props.state?.showSkeletons],
270
- );
271
-
272
- //@ts-ignore
273
- const table = {
274
- ...useReactTable({
275
- getCoreRowModel: getCoreRowModel(),
276
- getExpandedRowModel:
277
- props.enableExpanding || props.enableGrouping
278
- ? getExpandedRowModel()
279
- : undefined,
280
- getFacetedMinMaxValues: props.enableFacetedValues
281
- ? getFacetedMinMaxValues()
282
- : undefined,
283
- getFacetedRowModel: props.enableFacetedValues
284
- ? getFacetedRowModel()
285
- : undefined,
286
- getFacetedUniqueValues: props.enableFacetedValues
287
- ? getFacetedUniqueValues()
288
- : undefined,
289
- getFilteredRowModel:
290
- props.enableColumnFilters ||
291
- props.enableGlobalFilter ||
292
- props.enableFilters
293
- ? getFilteredRowModel()
294
- : undefined,
295
- getGroupedRowModel: props.enableGrouping
296
- ? getGroupedRowModel()
297
- : undefined,
298
- getPaginationRowModel: props.enablePagination
299
- ? getPaginationRowModel()
300
- : undefined,
301
- getSortedRowModel: props.enableSorting ? getSortedRowModel() : undefined,
302
- onColumnOrderChange: setColumnOrder,
303
- onGroupingChange: setGrouping,
304
- getSubRows: (row) => row?.subRows,
305
- ...props,
306
- //@ts-ignore
307
- columns: columnDefs,
308
- data,
309
- globalFilterFn:
310
- props.filterFns?.[globalFilterFn] ?? props.filterFns?.fuzzy,
311
- initialState,
312
- state: {
313
- columnFilterFns,
314
- columnOrder,
315
- density,
316
- draggingColumn,
317
- draggingRow,
318
- editingCell,
319
- editingRow,
320
- globalFilterFn,
321
- grouping,
322
- hoveredColumn,
323
- hoveredRow,
324
- isFullScreen,
325
- showAlertBanner,
326
- showColumnFilters,
327
- showGlobalFilter,
328
- showToolbarDropZone,
329
- ...props.state,
330
- },
331
- }),
332
- refs: {
333
- bottomToolbarRef,
334
- editInputRefs,
335
- filterInputRefs,
336
- searchInputRef,
337
- tableContainerRef,
338
- tableHeadCellRefs,
339
- tablePaperRef,
340
- topToolbarRef,
341
- },
342
- setColumnFilterFns: props.onColumnFilterFnsChange ?? setColumnFilterFns,
343
- setDensity: props.onDensityChange ?? setDensity,
344
- setDraggingColumn: props.onDraggingColumnChange ?? setDraggingColumn,
345
- setDraggingRow: props.onDraggingRowChange ?? setDraggingRow,
346
- setEditingCell: props.onEditingCellChange ?? setEditingCell,
347
- setEditingRow: props.onEditingRowChange ?? setEditingRow,
348
- setGlobalFilterFn: props.onGlobalFilterFnChange ?? setGlobalFilterFn,
349
- setHoveredColumn: props.onHoveredColumnChange ?? setHoveredColumn,
350
- setHoveredRow: props.onHoveredRowChange ?? setHoveredRow,
351
- setIsFullScreen: props.onIsFullScreenChange ?? setIsFullScreen,
352
- setShowAlertBanner: props.onShowAlertBannerChange ?? setShowAlertBanner,
353
- setShowColumnFilters:
354
- props.onShowColumnFiltersChange ?? setShowColumnFilters,
355
- setShowGlobalFilter: props.onShowGlobalFilterChange ?? setShowGlobalFilter,
356
- setShowToolbarDropZone:
357
- props.onShowToolbarDropZoneChange ?? setShowToolbarDropZone,
358
- } as MRT_TableInstance<TData>;
359
-
360
- if (props.tableFeatures) {
361
- props.tableFeatures.forEach((feature) => {
362
- Object.assign(table, feature(table));
363
- });
364
- }
365
-
366
- if (props.tableInstanceRef) {
367
- props.tableInstanceRef.current = table;
368
- }
369
-
370
- const initialBodyHeight = useRef<string>();
371
-
372
- useEffect(() => {
373
- if (typeof window !== 'undefined') {
374
- initialBodyHeight.current = document.body.style.height;
375
- }
376
- }, []);
377
-
378
- useEffect(() => {
379
- if (typeof window !== 'undefined') {
380
- if (table.getState().isFullScreen) {
381
- document.body.style.height = '100vh';
382
- } else {
383
- document.body.style.height = initialBodyHeight.current as string;
384
- }
385
- }
386
- }, [table.getState().isFullScreen]);
387
-
388
- //if page index is out of bounds, set it to the last page
389
- useEffect(() => {
390
- const { pageIndex, pageSize } = table.getState().pagination;
391
- const totalRowCount =
392
- props.rowCount ?? table.getPrePaginationRowModel().rows.length;
393
- const firstVisibleRowIndex = pageIndex * pageSize;
394
- if (firstVisibleRowIndex > totalRowCount) {
395
- table.setPageIndex(Math.floor(totalRowCount / pageSize));
396
- }
397
- }, [props.rowCount, table.getPrePaginationRowModel().rows.length]);
398
-
399
- return (
400
- <>
401
- <Dialog
402
- PaperComponent={Box}
403
- TransitionComponent={!props.enableRowVirtualization ? Grow : undefined}
404
- disablePortal
405
- fullScreen
406
- keepMounted={false}
407
- onClose={() => table.setIsFullScreen(false)}
408
- open={table.getState().isFullScreen}
409
- transitionDuration={400}
410
- >
411
- <MRT_TablePaper table={table as any} />
412
- </Dialog>
413
- {!table.getState().isFullScreen && (
414
- <MRT_TablePaper table={table as any} />
415
- )}
416
- {editingRow && props.editingMode === 'modal' && (
417
- <MRT_EditRowModal row={editingRow as any} table={table} open />
418
- )}
419
- </>
420
- );
421
- };
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes