material-react-table 2.10.0 → 2.11.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 (187) hide show
  1. package/README.md +3 -2
  2. package/dist/index.d.ts +144 -125
  3. package/dist/index.esm.js +201 -152
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.js +201 -149
  6. package/dist/index.js.map +1 -1
  7. package/locales/ar/index.esm.js +1 -0
  8. package/locales/ar/index.js +1 -0
  9. package/locales/az/index.esm.js +1 -0
  10. package/locales/az/index.js +1 -0
  11. package/locales/bg/index.esm.js +1 -0
  12. package/locales/bg/index.js +1 -0
  13. package/locales/cs/index.esm.js +1 -0
  14. package/locales/cs/index.js +1 -0
  15. package/locales/da/index.esm.js +1 -0
  16. package/locales/da/index.js +1 -0
  17. package/locales/de/index.esm.js +1 -0
  18. package/locales/de/index.js +1 -0
  19. package/locales/en/index.esm.js +1 -0
  20. package/locales/en/index.js +1 -0
  21. package/locales/es/index.esm.js +1 -0
  22. package/locales/es/index.js +1 -0
  23. package/locales/et/index.esm.js +1 -0
  24. package/locales/et/index.js +1 -0
  25. package/locales/fa/index.esm.js +1 -0
  26. package/locales/fa/index.js +1 -0
  27. package/locales/fi/index.esm.js +1 -0
  28. package/locales/fi/index.js +1 -0
  29. package/locales/fr/index.esm.js +1 -0
  30. package/locales/fr/index.js +1 -0
  31. package/locales/he/index.esm.js +1 -0
  32. package/locales/he/index.js +1 -0
  33. package/locales/hu/index.esm.js +1 -0
  34. package/locales/hu/index.js +1 -0
  35. package/locales/hy/index.esm.js +1 -0
  36. package/locales/hy/index.js +1 -0
  37. package/locales/id/index.esm.js +1 -0
  38. package/locales/id/index.js +1 -0
  39. package/locales/it/index.esm.js +1 -0
  40. package/locales/it/index.js +1 -0
  41. package/locales/ja/index.esm.js +1 -0
  42. package/locales/ja/index.js +1 -0
  43. package/locales/ko/index.esm.js +1 -0
  44. package/locales/ko/index.js +1 -0
  45. package/locales/nl/index.esm.js +1 -0
  46. package/locales/nl/index.js +1 -0
  47. package/locales/no/index.esm.js +1 -0
  48. package/locales/no/index.js +1 -0
  49. package/locales/np/index.esm.js +1 -0
  50. package/locales/np/index.js +1 -0
  51. package/locales/pl/index.esm.js +1 -0
  52. package/locales/pl/index.js +1 -0
  53. package/locales/pt/index.esm.js +1 -0
  54. package/locales/pt/index.js +1 -0
  55. package/locales/pt-BR/index.esm.js +1 -0
  56. package/locales/pt-BR/index.js +1 -0
  57. package/locales/ro/index.esm.js +1 -0
  58. package/locales/ro/index.js +1 -0
  59. package/locales/ru/index.esm.js +1 -0
  60. package/locales/ru/index.js +1 -0
  61. package/locales/sk/index.esm.js +1 -0
  62. package/locales/sk/index.js +1 -0
  63. package/locales/sr-Cyrl-RS/index.esm.js +1 -0
  64. package/locales/sr-Cyrl-RS/index.js +1 -0
  65. package/locales/sr-Latn-RS/index.esm.js +1 -0
  66. package/locales/sr-Latn-RS/index.js +1 -0
  67. package/locales/sv/index.esm.js +1 -0
  68. package/locales/sv/index.js +1 -0
  69. package/locales/tr/index.esm.js +1 -0
  70. package/locales/tr/index.js +1 -0
  71. package/locales/uk/index.esm.js +1 -0
  72. package/locales/uk/index.js +1 -0
  73. package/locales/vi/index.esm.js +1 -0
  74. package/locales/vi/index.js +1 -0
  75. package/locales/zh-Hans/index.esm.js +1 -0
  76. package/locales/zh-Hans/index.js +1 -0
  77. package/locales/zh-Hant/index.esm.js +1 -0
  78. package/locales/zh-Hant/index.js +1 -0
  79. package/package.json +18 -18
  80. package/src/components/MaterialReactTable.tsx +3 -3
  81. package/src/components/body/MRT_TableBody.tsx +3 -2
  82. package/src/components/body/MRT_TableBodyCell.tsx +4 -2
  83. package/src/components/body/MRT_TableBodyCellValue.tsx +5 -2
  84. package/src/components/body/MRT_TableBodyRow.tsx +13 -8
  85. package/src/components/body/MRT_TableBodyRowGrabHandle.tsx +4 -3
  86. package/src/components/body/MRT_TableBodyRowPinButton.tsx +3 -2
  87. package/src/components/body/MRT_TableDetailPanel.tsx +3 -2
  88. package/src/components/buttons/MRT_ColumnPinningButtons.tsx +3 -2
  89. package/src/components/buttons/MRT_CopyButton.tsx +3 -2
  90. package/src/components/buttons/MRT_EditActionButtons.tsx +3 -2
  91. package/src/components/buttons/MRT_ExpandAllButton.tsx +3 -2
  92. package/src/components/buttons/MRT_ExpandButton.tsx +3 -2
  93. package/src/components/buttons/MRT_GrabHandleButton.tsx +9 -15
  94. package/src/components/buttons/MRT_RowPinButton.tsx +3 -2
  95. package/src/components/buttons/MRT_ShowHideColumnsButton.tsx +3 -2
  96. package/src/components/buttons/MRT_ToggleDensePaddingButton.tsx +3 -2
  97. package/src/components/buttons/MRT_ToggleFiltersButton.tsx +3 -2
  98. package/src/components/buttons/MRT_ToggleFullScreenButton.tsx +3 -2
  99. package/src/components/buttons/MRT_ToggleGlobalFilterButton.tsx +3 -2
  100. package/src/components/buttons/MRT_ToggleRowActionMenuButton.tsx +3 -2
  101. package/src/components/footer/MRT_TableFooter.tsx +3 -2
  102. package/src/components/footer/MRT_TableFooterCell.tsx +3 -2
  103. package/src/components/footer/MRT_TableFooterRow.tsx +5 -3
  104. package/src/components/head/MRT_TableHead.tsx +3 -2
  105. package/src/components/head/MRT_TableHeadCell.tsx +3 -5
  106. package/src/components/head/MRT_TableHeadCellColumnActionsButton.tsx +4 -2
  107. package/src/components/head/MRT_TableHeadCellFilterContainer.tsx +4 -2
  108. package/src/components/head/MRT_TableHeadCellFilterLabel.tsx +3 -2
  109. package/src/components/head/MRT_TableHeadCellGrabHandle.tsx +4 -3
  110. package/src/components/head/MRT_TableHeadCellResizeHandle.tsx +3 -2
  111. package/src/components/head/MRT_TableHeadCellSortLabel.tsx +3 -2
  112. package/src/components/head/MRT_TableHeadRow.tsx +3 -2
  113. package/src/components/inputs/MRT_EditCellTextField.tsx +3 -2
  114. package/src/components/inputs/MRT_FilterCheckbox.tsx +3 -2
  115. package/src/components/inputs/MRT_FilterRangeFields.tsx +3 -2
  116. package/src/components/inputs/MRT_FilterRangeSlider.tsx +3 -2
  117. package/src/components/inputs/MRT_FilterTextField.tsx +15 -6
  118. package/src/components/inputs/MRT_GlobalFilterTextField.tsx +3 -2
  119. package/src/components/inputs/MRT_SelectCheckbox.tsx +26 -33
  120. package/src/components/menus/MRT_ActionMenuItem.tsx +3 -2
  121. package/src/components/menus/MRT_CellActionMenu.tsx +5 -4
  122. package/src/components/menus/MRT_ColumnActionMenu.tsx +5 -4
  123. package/src/components/menus/MRT_FilterOptionMenu.tsx +3 -2
  124. package/src/components/menus/MRT_RowActionMenu.tsx +3 -2
  125. package/src/components/menus/MRT_ShowHideColumnsMenu.tsx +8 -2
  126. package/src/components/menus/MRT_ShowHideColumnsMenuItems.tsx +7 -5
  127. package/src/components/modals/MRT_EditRowModal.tsx +3 -2
  128. package/src/components/table/MRT_Table.tsx +2 -2
  129. package/src/components/table/MRT_TableContainer.tsx +3 -2
  130. package/src/components/table/MRT_TableLoadingOverlay.tsx +11 -8
  131. package/src/components/table/MRT_TablePaper.tsx +3 -2
  132. package/src/components/toolbar/MRT_BottomToolbar.tsx +3 -2
  133. package/src/components/toolbar/MRT_LinearProgressBar.tsx +3 -2
  134. package/src/components/toolbar/MRT_TablePagination.tsx +2 -2
  135. package/src/components/toolbar/MRT_ToolbarAlertBanner.tsx +30 -13
  136. package/src/components/toolbar/MRT_ToolbarDropZone.tsx +3 -2
  137. package/src/components/toolbar/MRT_ToolbarInternalButtons.tsx +3 -2
  138. package/src/components/toolbar/MRT_TopToolbar.tsx +2 -2
  139. package/src/hooks/useMRT_Effects.ts +11 -11
  140. package/src/hooks/useMRT_Rows.ts +11 -79
  141. package/src/hooks/useMRT_TableInstance.ts +2 -0
  142. package/src/hooks/useMRT_TableOptions.ts +2 -0
  143. package/src/locales/ar.ts +1 -0
  144. package/src/locales/az.ts +1 -0
  145. package/src/locales/bg.ts +1 -0
  146. package/src/locales/cs.ts +1 -0
  147. package/src/locales/da.ts +1 -0
  148. package/src/locales/de.ts +1 -0
  149. package/src/locales/en.ts +1 -0
  150. package/src/locales/es.ts +1 -0
  151. package/src/locales/et.ts +1 -0
  152. package/src/locales/fa.ts +1 -0
  153. package/src/locales/fi.ts +1 -0
  154. package/src/locales/fr.ts +1 -0
  155. package/src/locales/he.ts +1 -0
  156. package/src/locales/hu.ts +1 -0
  157. package/src/locales/hy.ts +1 -0
  158. package/src/locales/id.ts +1 -0
  159. package/src/locales/it.ts +1 -0
  160. package/src/locales/ja.ts +1 -0
  161. package/src/locales/ko.ts +1 -0
  162. package/src/locales/nl.ts +1 -0
  163. package/src/locales/no.ts +1 -0
  164. package/src/locales/np.ts +1 -0
  165. package/src/locales/pl.ts +1 -0
  166. package/src/locales/pt-BR.ts +1 -0
  167. package/src/locales/pt.ts +1 -0
  168. package/src/locales/ro.ts +1 -0
  169. package/src/locales/ru.ts +1 -0
  170. package/src/locales/sk.ts +1 -0
  171. package/src/locales/sr-Cyrl-RS.ts +1 -0
  172. package/src/locales/sr-Latn-RS.ts +1 -0
  173. package/src/locales/sv.ts +1 -0
  174. package/src/locales/tr.ts +1 -0
  175. package/src/locales/uk.ts +1 -0
  176. package/src/locales/vi.ts +1 -0
  177. package/src/locales/zh-Hans.ts +1 -0
  178. package/src/locales/zh-Hant.ts +1 -0
  179. package/src/types.ts +10 -4
  180. package/src/utils/column.utils.ts +4 -6
  181. package/src/utils/displayColumn.utils.ts +1 -1
  182. package/src/utils/row.utils.ts +179 -21
  183. package/locales/am/index.d.ts +0 -3
  184. package/locales/am/index.esm.d.ts +0 -3
  185. package/locales/am/index.esm.js +0 -93
  186. package/locales/am/index.js +0 -97
  187. package/locales/am/package.json +0 -6
package/src/locales/en.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_EN: MRT_Localization = {
8
8
  changeSearchMode: 'Change search mode',
9
9
  clearFilter: 'Clear filter',
10
10
  clearSearch: 'Clear search',
11
+ clearSelection: 'Clear selection',
11
12
  clearSort: 'Clear sort',
12
13
  clickToCopy: 'Click to copy',
13
14
  copy: 'Copy',
package/src/locales/es.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_ES: MRT_Localization = {
8
8
  changeSearchMode: 'Cambiar modo de búsqueda',
9
9
  clearFilter: 'Borrar filtro',
10
10
  clearSearch: 'Borrar búsqueda',
11
+ clearSelection: 'Borrar selección',
11
12
  clearSort: 'Borrar ordenamiento',
12
13
  clickToCopy: 'Haga click para copiar',
13
14
  copy: 'Copiar',
package/src/locales/et.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_ET: MRT_Localization = {
8
8
  changeSearchMode: 'Muuda otsingu režiimi',
9
9
  clearFilter: 'Tühista filter',
10
10
  clearSearch: 'Tühjenda otsing',
11
+ clearSelection: 'Tühjenda valik',
11
12
  clearSort: 'Tühjenda sorteerimine',
12
13
  clickToCopy: 'Klõpsa kopeerimiseks',
13
14
  copy: 'Kopeeri',
package/src/locales/fa.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_FA: MRT_Localization = {
8
8
  changeSearchMode: 'تغییر حالت جستجو',
9
9
  clearFilter: 'پاک کردن فیلتر',
10
10
  clearSearch: 'پاک کردن جستجو',
11
+ clearSelection: 'پاک کردن انتخاب',
11
12
  clearSort: 'پاک کردن مرتب سازی',
12
13
  clickToCopy: 'کپی کردن',
13
14
  copy: 'کپی',
package/src/locales/fi.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_FI: MRT_Localization = {
8
8
  changeSearchMode: 'Muuta hakutapaa',
9
9
  clearFilter: 'Tyhjennä suodatin',
10
10
  clearSearch: 'Tyhjennä haku',
11
+ clearSelection: 'Tyhjennä valinta',
11
12
  clearSort: 'Tyhjennä lajittelu',
12
13
  clickToCopy: 'Kopioi napsauttamalla',
13
14
  copy: 'Kopioi',
package/src/locales/fr.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_FR: MRT_Localization = {
8
8
  changeSearchMode: 'Changer le mode de recherche',
9
9
  clearFilter: 'Effacer le filtre',
10
10
  clearSearch: 'Effacer la recherche',
11
+ clearSelection: 'Effacer la sélection',
11
12
  clearSort: 'Effacer le tri',
12
13
  clickToCopy: 'Cliquer pour copier',
13
14
  copy: 'Copier',
package/src/locales/he.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_HE: MRT_Localization = {
8
8
  changeSearchMode: 'שינוי מצב חיפוש',
9
9
  clearFilter: 'נקה סינון',
10
10
  clearSearch: 'נקה חיפוש',
11
+ clearSelection: 'נקה בחירה',
11
12
  clearSort: 'נקה מיון',
12
13
  clickToCopy: 'לחץ להעתקה',
13
14
  copy: 'העתק',
package/src/locales/hu.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_HU: MRT_Localization = {
8
8
  changeSearchMode: 'Keresés módjának megváltoztatása',
9
9
  clearFilter: 'Szűrő törlése',
10
10
  clearSearch: 'Keresés törlése',
11
+ clearSelection: 'Kiválasztás törlése',
11
12
  clearSort: 'Rendezés törlése',
12
13
  clickToCopy: 'Kattintson a másoláshoz',
13
14
  copy: 'Másolás',
package/src/locales/hy.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_HY: MRT_Localization = {
8
8
  changeSearchMode: 'Փոխել որոնման ռեժիմը',
9
9
  clearFilter: 'Մաքրել զտիչը',
10
10
  clearSearch: 'Մաքրել որոնումը',
11
+ clearSelection: 'Մաքրել ընտրությունը',
11
12
  clearSort: 'Մաքրել տեսակավորումը',
12
13
  clickToCopy: 'Սեղմել պատճենելու համար',
13
14
  copy: 'Պատճենել',
package/src/locales/id.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_ID: MRT_Localization = {
8
8
  changeSearchMode: 'Ubah mode pencarian',
9
9
  clearFilter: 'Hapus filter',
10
10
  clearSearch: 'Hapus pencarian',
11
+ clearSelection: 'Hapus pilihan',
11
12
  clearSort: 'Hapus urutan',
12
13
  clickToCopy: 'Klik untuk menyalin',
13
14
  copy: 'Salin',
package/src/locales/it.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_IT: MRT_Localization = {
8
8
  changeSearchMode: 'Cambia modalità ricerca',
9
9
  clearFilter: 'Cancella filtro',
10
10
  clearSearch: 'Cancella ricerca',
11
+ clearSelection: 'Cancella selezione',
11
12
  clearSort: 'Cancella ordinamento',
12
13
  clickToCopy: 'Click per copiare',
13
14
  copy: 'Copia',
package/src/locales/ja.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_JA: MRT_Localization = {
8
8
  changeSearchMode: '検索モードを変更',
9
9
  clearFilter: 'リセット',
10
10
  clearSearch: 'リセット',
11
+ clearSelection: '選択を解除',
11
12
  clearSort: '並べ替えを解除',
12
13
  clickToCopy: 'クリックでコピー',
13
14
  copy: 'コピー',
package/src/locales/ko.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_KO: MRT_Localization = {
8
8
  changeSearchMode: '검색 모드 변경',
9
9
  clearFilter: '필터 초기화',
10
10
  clearSearch: '검색 초기화',
11
+ clearSelection: '선택 초기화',
11
12
  clearSort: '정렬 초기화',
12
13
  clickToCopy: '클릭하여 복사하기',
13
14
  copy: '복사',
package/src/locales/nl.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_NL: MRT_Localization = {
8
8
  changeSearchMode: 'Zoekmodus wijzigen',
9
9
  clearFilter: 'Filter wissen',
10
10
  clearSearch: 'Zoekbalk wissen',
11
+ clearSelection: 'Selectie wissen',
11
12
  clearSort: 'Annuleer sortering',
12
13
  clickToCopy: 'Klik om te kopiëren',
13
14
  copy: 'Kopiëren',
package/src/locales/no.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_NO: MRT_Localization = {
8
8
  changeSearchMode: 'Endre søkemodus',
9
9
  clearFilter: 'Tøm filter',
10
10
  clearSearch: 'Tøm søk',
11
+ clearSelection: 'Tøm valg',
11
12
  clearSort: 'Tøm sortering',
12
13
  clickToCopy: 'Klikk for å kopiere',
13
14
  copy: 'Kopier',
package/src/locales/np.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_NP: MRT_Localization = {
8
8
  changeSearchMode: 'खोज प्रणाली परिवर्तन गर्नुहोस्',
9
9
  clearFilter: 'फिल्टर हटाउनुहोस्',
10
10
  clearSearch: 'खोजिएको शब्द मेट्नुहोस्',
11
+ clearSelection: 'चयन हटाउनुहोस्',
11
12
  clearSort: 'क्रम हटाउनुहोस्',
12
13
  clickToCopy: 'प्रतिलिपि बनाउन क्लिक गर्नुहोस्',
13
14
  copy: 'प्रतिलिपि बनाउनुहोस्',
package/src/locales/pl.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_PL: MRT_Localization = {
8
8
  changeSearchMode: 'Zmień tryb wyszukiwania',
9
9
  clearFilter: 'Wyczyść filtr',
10
10
  clearSearch: 'Wyczyść wyszukiwanie',
11
+ clearSelection: 'Wyczyść zaznaczenie',
11
12
  clearSort: 'Wyczyść sortowanie',
12
13
  clickToCopy: 'Kliknij, aby skopiować',
13
14
  copy: 'Kopiuj',
@@ -8,6 +8,7 @@ export const MRT_Localization_PT_BR: MRT_Localization = {
8
8
  changeSearchMode: 'Alterar o modo de pesquisa',
9
9
  clearFilter: 'Limpar filtros',
10
10
  clearSearch: 'Limpar pesquisa',
11
+ clearSelection: 'Limpar seleção',
11
12
  clearSort: 'Limpar classificações',
12
13
  clickToCopy: 'Clique para copiar',
13
14
  copy: 'Copiar',
package/src/locales/pt.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_PT: MRT_Localization = {
8
8
  changeSearchMode: 'Alterar o modo de pesquisa',
9
9
  clearFilter: 'Limpar filtros',
10
10
  clearSearch: 'Limpar pesquisa',
11
+ clearSelection: 'Limpar seleção',
11
12
  clearSort: 'Limpar classificações',
12
13
  clickToCopy: 'Clique para copiar',
13
14
  copy: 'Copiar',
package/src/locales/ro.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_RO: MRT_Localization = {
8
8
  changeSearchMode: 'Schimbă mod căutare',
9
9
  clearFilter: 'Curăță filtrarea',
10
10
  clearSearch: 'Curăță căutarea',
11
+ clearSelection: 'Curăță selecția',
11
12
  clearSort: 'Curăță sortarea',
12
13
  clickToCopy: 'Apasă pentru a copia',
13
14
  copy: 'Copiază',
package/src/locales/ru.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_RU: MRT_Localization = {
8
8
  changeSearchMode: 'Изменить режим поиска',
9
9
  clearFilter: 'Очистить фильтр',
10
10
  clearSearch: 'Очистить поиск',
11
+ clearSelection: 'Очистить выбор',
11
12
  clearSort: 'Очистить сортировку',
12
13
  clickToCopy: 'Нажмите, чтобы скопировать',
13
14
  copy: 'Копировать',
package/src/locales/sk.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_SK: MRT_Localization = {
8
8
  changeSearchMode: 'Zmeniť režim hľadania',
9
9
  clearFilter: 'Vyčistiť filter',
10
10
  clearSearch: 'Vyčistiť hľadanie',
11
+ clearSelection: 'Vyčistiť výber',
11
12
  clearSort: 'Vyčistiť zoradenie',
12
13
  clickToCopy: 'Kliknutím skopírovať',
13
14
  copy: 'Kopírovať',
@@ -8,6 +8,7 @@ export const MRT_Localization_SR_CYRL_RS: MRT_Localization = {
8
8
  changeSearchMode: 'Промени режим претраге',
9
9
  clearFilter: 'Поништи филтер',
10
10
  clearSearch: 'Поништи претрагу',
11
+ clearSelection: 'Поништи избор',
11
12
  clearSort: 'Поништи сортирање',
12
13
  clickToCopy: 'Кликни да копираш',
13
14
  copy: 'Копирај',
@@ -8,6 +8,7 @@ export const MRT_Localization_SR_LATN_RS: MRT_Localization = {
8
8
  changeSearchMode: 'Promeni režim pretrage',
9
9
  clearFilter: 'Poništi filter',
10
10
  clearSearch: 'Poništi pretragu',
11
+ clearSelection: 'Poništi izbor',
11
12
  clearSort: 'Poništi sortiranje',
12
13
  clickToCopy: 'Klikni da kopiraš',
13
14
  copy: 'Kopiraj',
package/src/locales/sv.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_SV: MRT_Localization = {
8
8
  changeSearchMode: 'Ändra sökläge',
9
9
  clearFilter: 'Rensa filter',
10
10
  clearSearch: 'Rensa sök',
11
+ clearSelection: 'Rensa val',
11
12
  clearSort: 'Rensa sortering',
12
13
  clickToCopy: 'Klicka för att kopiera',
13
14
  copy: 'Kopiera',
package/src/locales/tr.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_TR: MRT_Localization = {
8
8
  changeSearchMode: 'Arama Modunu Değiştir',
9
9
  clearFilter: 'Filtreyi Temizle',
10
10
  clearSearch: 'Aramayı Temizle',
11
+ clearSelection: 'Seçimi Temizle',
11
12
  clearSort: 'Sıralamayı Sıfırla',
12
13
  clickToCopy: 'Kopyala',
13
14
  copy: 'Kopyala',
package/src/locales/uk.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_UK: MRT_Localization = {
8
8
  changeSearchMode: 'Змінити режим пошуку',
9
9
  clearFilter: 'Очистити фільтр',
10
10
  clearSearch: 'Очистити пошук',
11
+ clearSelection: 'Скасувати вибір',
11
12
  clearSort: 'Очистити сортування',
12
13
  clickToCopy: 'Натисніть, щоб скопіювати',
13
14
  copy: 'Копіювати',
package/src/locales/vi.ts CHANGED
@@ -8,6 +8,7 @@ export const MRT_Localization_VI: MRT_Localization = {
8
8
  changeSearchMode: 'Thay đổi chế độ tìm kiếm',
9
9
  clearFilter: 'Xoá bộ lọc',
10
10
  clearSearch: 'Xoá ô tìm kiếm',
11
+ clearSelection: 'Xoá lựa chọn',
11
12
  clearSort: 'Huỷ sắp xếp',
12
13
  clickToCopy: 'Nhấn vào để sao chép',
13
14
  copy: 'Sao chép',
@@ -8,6 +8,7 @@ export const MRT_Localization_ZH_HANS: MRT_Localization = {
8
8
  changeSearchMode: '更改搜索模式',
9
9
  clearFilter: '清除过滤',
10
10
  clearSearch: '清除搜索',
11
+ clearSelection: '清除选择',
11
12
  clearSort: '清除排序',
12
13
  clickToCopy: '点击以复制',
13
14
  copy: '复制',
@@ -8,6 +8,7 @@ export const MRT_Localization_ZH_HANT: MRT_Localization = {
8
8
  changeSearchMode: '更改搜尋模式',
9
9
  clearFilter: '清除過濾',
10
10
  clearSearch: '清除搜尋',
11
+ clearSelection: '清除選擇',
11
12
  clearSort: '清除排序',
12
13
  clickToCopy: '點擊以複製',
13
14
  copy: '複製',
package/src/types.ts CHANGED
@@ -170,6 +170,7 @@ export interface MRT_Localization {
170
170
  changeSearchMode: string;
171
171
  clearFilter: string;
172
172
  clearSearch: string;
173
+ clearSelection: string;
173
174
  clearSort: string;
174
175
  clickToCopy: string;
175
176
  collapse: string;
@@ -320,6 +321,7 @@ export type MRT_TableInstance<TData extends MRT_RowData> = Omit<
320
321
  bottomToolbarRef: MutableRefObject<HTMLDivElement | null>;
321
322
  editInputRefs: MutableRefObject<Record<string, HTMLInputElement>>;
322
323
  filterInputRefs: MutableRefObject<Record<string, HTMLInputElement>>;
324
+ lastSelectedRowId: MutableRefObject<null | string>;
323
325
  searchInputRef: MutableRefObject<HTMLInputElement | null>;
324
326
  tableContainerRef: MutableRefObject<HTMLDivElement | null>;
325
327
  tableFooterRef: MutableRefObject<HTMLTableSectionElement | null>;
@@ -378,7 +380,7 @@ export type MRT_StatefulTableOptions<TData extends MRT_RowData> =
378
380
  >;
379
381
  };
380
382
 
381
- export type MRT_TableState<TData extends MRT_RowData> = TableState & {
383
+ export interface MRT_TableState<TData extends MRT_RowData> extends TableState {
382
384
  actionCell?: MRT_Cell<TData> | null;
383
385
  columnFilterFns: MRT_ColumnFilterFnsState;
384
386
  creatingRow: MRT_Row<TData> | null;
@@ -400,7 +402,7 @@ export type MRT_TableState<TData extends MRT_RowData> = TableState & {
400
402
  showProgressBars: boolean;
401
403
  showSkeletons: boolean;
402
404
  showToolbarDropZone: boolean;
403
- };
405
+ }
404
406
 
405
407
  export type MRT_ColumnDef<TData extends MRT_RowData, TValue = unknown> = Omit<
406
408
  ColumnDef<TData, TValue>,
@@ -427,6 +429,7 @@ export type MRT_ColumnDef<TData extends MRT_RowData, TValue = unknown> = Omit<
427
429
  renderedCellValue: ReactNode;
428
430
  row: MRT_Row<TData>;
429
431
  rowRef?: RefObject<HTMLTableRowElement>;
432
+ staticColumnIndex?: number;
430
433
  staticRowIndex?: number;
431
434
  table: MRT_TableInstance<TData>;
432
435
  }) => ReactNode;
@@ -849,6 +852,7 @@ export type MRT_TableOptions<TData extends MRT_RowData> = Omit<
849
852
  [key in MRT_DisplayColumnIds]: Partial<MRT_DisplayColumnDef<TData>>;
850
853
  }>;
851
854
  editDisplayMode?: 'cell' | 'custom' | 'modal' | 'row' | 'table';
855
+ enableBatchRowSelection?: boolean;
852
856
  enableBottomToolbar?: boolean;
853
857
  enableCellActions?: ((cell: MRT_Cell<TData>) => boolean) | boolean;
854
858
  enableClickToCopy?:
@@ -915,8 +919,10 @@ export type MRT_TableOptions<TData extends MRT_RowData> = Omit<
915
919
  | ((props: { table: MRT_TableInstance<TData> }) => BoxProps)
916
920
  | BoxProps;
917
921
  muiCircularProgressProps?:
918
- | ((props: { table: MRT_TableInstance<TData> }) => CircularProgressProps)
919
- | CircularProgressProps;
922
+ | ((props: {
923
+ table: MRT_TableInstance<TData>;
924
+ }) => CircularProgressProps & { Component?: ReactNode })
925
+ | (CircularProgressProps & { Component?: ReactNode });
920
926
  muiColumnActionsButtonProps?:
921
927
  | ((props: {
922
928
  column: MRT_Column<TData>;
@@ -115,12 +115,10 @@ export const reorderColumn = <TData extends MRT_RowData>(
115
115
  export const getDefaultColumnFilterFn = <TData extends MRT_RowData>(
116
116
  columnDef: MRT_ColumnDef<TData>,
117
117
  ): MRT_FilterOption => {
118
- if (columnDef.filterVariant === 'multi-select') return 'arrIncludesSome';
119
- if (columnDef.filterVariant?.includes('range')) return 'betweenInclusive';
120
- if (
121
- columnDef.filterVariant === 'select' ||
122
- columnDef.filterVariant === 'checkbox'
123
- )
118
+ const { filterVariant } = columnDef;
119
+ if (filterVariant === 'multi-select') return 'arrIncludesSome';
120
+ if (filterVariant?.includes('range')) return 'betweenInclusive';
121
+ if (filterVariant === 'select' || filterVariant === 'checkbox')
124
122
  return 'equals';
125
123
  return 'fuzzy';
126
124
  };
@@ -54,7 +54,7 @@ export const showRowExpandColumn = <TData extends MRT_RowData>(
54
54
  } = tableOptions;
55
55
  return !!(
56
56
  enableExpanding ||
57
- (enableGrouping && (grouping === undefined || grouping?.length)) ||
57
+ (enableGrouping && grouping?.length) ||
58
58
  renderDetailPanel
59
59
  );
60
60
  };
@@ -1,3 +1,5 @@
1
+ import { type ChangeEvent, type MouseEvent } from 'react';
2
+ import { rankGlobalFuzzy } from '../fns/sortingFns';
1
3
  import {
2
4
  type MRT_Row,
3
5
  type MRT_RowData,
@@ -5,36 +7,88 @@ import {
5
7
  } from '../types';
6
8
  import { parseFromValuesOrFunc } from './utils';
7
9
 
8
- export const getIsRowSelected = <TData extends MRT_RowData>({
9
- row,
10
- table,
11
- }: {
12
- row: MRT_Row<TData>;
13
- table: MRT_TableInstance<TData>;
14
- }) => {
10
+ export const getMRT_Rows = <TData extends MRT_RowData>(
11
+ table: MRT_TableInstance<TData>,
12
+ pinnedRowIds: string[] = [],
13
+ all?: boolean,
14
+ ): MRT_Row<TData>[] => {
15
15
  const {
16
- options: { enableRowSelection },
16
+ getBottomRows,
17
+ getCenterRows,
18
+ getPrePaginationRowModel,
19
+ getRowModel,
20
+ getState,
21
+ getTopRows,
22
+ options: {
23
+ createDisplayMode,
24
+ enablePagination,
25
+ enableRowPinning,
26
+ manualPagination,
27
+ positionCreatingRow,
28
+ rowPinningDisplayMode,
29
+ },
17
30
  } = table;
31
+ const { creatingRow, pagination } = getState();
18
32
 
19
- return (
20
- row.getIsSelected() ||
21
- (parseFromValuesOrFunc(enableRowSelection, row) &&
22
- row.getCanSelectSubRows() &&
23
- row.getIsAllSubRowsSelected())
24
- );
33
+ const isRankingRows = getIsRankingRows(table);
34
+
35
+ let rows: MRT_Row<TData>[] = [];
36
+ if (!isRankingRows) {
37
+ rows =
38
+ !enableRowPinning || rowPinningDisplayMode?.includes('sticky')
39
+ ? all
40
+ ? getPrePaginationRowModel().rows
41
+ : getRowModel().rows
42
+ : getCenterRows();
43
+ } else {
44
+ rows = getPrePaginationRowModel().rows.sort((a, b) =>
45
+ rankGlobalFuzzy(a, b),
46
+ );
47
+ if (enablePagination && !manualPagination && !all) {
48
+ const start = pagination.pageIndex * pagination.pageSize;
49
+ rows = rows.slice(start, start + pagination.pageSize);
50
+ }
51
+ }
52
+ if (enableRowPinning && rowPinningDisplayMode?.includes('sticky')) {
53
+ rows = [
54
+ ...getTopRows().filter((row) => !pinnedRowIds.includes(row.id)),
55
+ ...rows,
56
+ ...getBottomRows().filter((row) => !pinnedRowIds.includes(row.id)),
57
+ ];
58
+ }
59
+ if (
60
+ positionCreatingRow !== undefined &&
61
+ creatingRow &&
62
+ createDisplayMode === 'row'
63
+ ) {
64
+ const creatingRowIndex = !isNaN(+positionCreatingRow)
65
+ ? +positionCreatingRow
66
+ : positionCreatingRow === 'top'
67
+ ? 0
68
+ : rows.length;
69
+ rows = [
70
+ ...rows.slice(0, creatingRowIndex),
71
+ creatingRow,
72
+ ...rows.slice(creatingRowIndex),
73
+ ];
74
+ }
75
+
76
+ return rows;
25
77
  };
26
78
 
27
79
  export const getCanRankRows = <TData extends MRT_RowData>(
28
80
  table: MRT_TableInstance<TData>,
29
81
  ) => {
30
- const { getState, options } = table;
31
82
  const {
32
- enableGlobalFilterRankedResults,
33
- manualExpanding,
34
- manualFiltering,
35
- manualGrouping,
36
- manualSorting,
37
- } = options;
83
+ getState,
84
+ options: {
85
+ enableGlobalFilterRankedResults,
86
+ manualExpanding,
87
+ manualFiltering,
88
+ manualGrouping,
89
+ manualSorting,
90
+ },
91
+ } = table;
38
92
  const { expanded, globalFilterFn } = getState();
39
93
 
40
94
  return (
@@ -48,3 +102,107 @@ export const getCanRankRows = <TData extends MRT_RowData>(
48
102
  !Object.values(expanded).some(Boolean)
49
103
  );
50
104
  };
105
+
106
+ export const getIsRankingRows = <TData extends MRT_RowData>(
107
+ table: MRT_TableInstance<TData>,
108
+ ) => {
109
+ const { globalFilter, sorting } = table.getState();
110
+
111
+ return (
112
+ getCanRankRows(table) &&
113
+ globalFilter &&
114
+ !Object.values(sorting).some(Boolean)
115
+ );
116
+ };
117
+
118
+ export const getIsRowSelected = <TData extends MRT_RowData>({
119
+ row,
120
+ table,
121
+ }: {
122
+ row: MRT_Row<TData>;
123
+ table: MRT_TableInstance<TData>;
124
+ }) => {
125
+ const {
126
+ options: { enableRowSelection },
127
+ } = table;
128
+
129
+ return (
130
+ row.getIsSelected() ||
131
+ (parseFromValuesOrFunc(enableRowSelection, row) &&
132
+ row.getCanSelectSubRows() &&
133
+ row.getIsAllSubRowsSelected())
134
+ );
135
+ };
136
+
137
+ export const getMRT_RowSelectionHandler =
138
+ () =>
139
+ <TData extends MRT_RowData>({
140
+ event,
141
+ row,
142
+ staticRowIndex = 0,
143
+ table,
144
+ }: {
145
+ event: ChangeEvent<HTMLInputElement> | MouseEvent<HTMLTableRowElement>;
146
+ row: MRT_Row<TData>;
147
+ staticRowIndex?: number;
148
+ table: MRT_TableInstance<TData>;
149
+ }) => {
150
+ const {
151
+ getState,
152
+ options: {
153
+ enableBatchRowSelection,
154
+ enableRowPinning,
155
+ rowPinningDisplayMode,
156
+ },
157
+ refs: { lastSelectedRowId: lastSelectedRowId },
158
+ } = table;
159
+ const {
160
+ pagination: { pageIndex, pageSize },
161
+ } = getState();
162
+
163
+ const isChecked = getIsRowSelected({ row, table });
164
+
165
+ const isStickySelection =
166
+ enableRowPinning && rowPinningDisplayMode?.includes('select');
167
+
168
+ // toggle selected of this row
169
+ row.getToggleSelectedHandler()(event);
170
+
171
+ // if shift key is pressed, select all rows between last selected and this one
172
+ if (
173
+ enableBatchRowSelection &&
174
+ (event as any).nativeEvent.shiftKey &&
175
+ lastSelectedRowId.current !== null
176
+ ) {
177
+ const rows = getMRT_Rows(table, undefined, true);
178
+ const lastIndex = rows.findIndex(
179
+ (r) => r.id === lastSelectedRowId.current,
180
+ );
181
+ if (lastIndex !== -1) {
182
+ const currentIndex = staticRowIndex + pageSize * pageIndex;
183
+ const [start, end] =
184
+ lastIndex < currentIndex
185
+ ? [lastIndex, currentIndex]
186
+ : [currentIndex, lastIndex];
187
+ for (let i = start; i <= end; i++) {
188
+ rows[i].toggleSelected(!isChecked);
189
+ }
190
+ }
191
+ }
192
+ lastSelectedRowId.current = row.id;
193
+
194
+ // if all sub rows were selected, unselect them
195
+ if (row.getCanSelectSubRows() && row.getIsAllSubRowsSelected()) {
196
+ row.subRows?.forEach((r) => r.toggleSelected(false));
197
+ }
198
+
199
+ if (isStickySelection) {
200
+ row.pin(
201
+ !row.getIsPinned() && isChecked
202
+ ? rowPinningDisplayMode?.includes('bottom')
203
+ ? 'bottom'
204
+ : 'top'
205
+ : false,
206
+ );
207
+ }
208
+ };
@@ -1,3 +0,0 @@
1
- import { type MRT_Localization } from '../..';
2
- export declare const MRT_Localization_AM: MRT_Localization;
3
-
@@ -1,3 +0,0 @@
1
- import { type MRT_Localization } from '../..';
2
- export declare const MRT_Localization_AM: MRT_Localization;
3
-