material-react-table 2.9.2 → 2.10.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 (143) hide show
  1. package/dist/index.d.ts +162 -111
  2. package/dist/index.esm.js +694 -606
  3. package/dist/index.esm.js.map +1 -1
  4. package/dist/index.js +708 -618
  5. package/dist/index.js.map +1 -1
  6. package/locales/ar/index.esm.js +1 -0
  7. package/locales/ar/index.js +1 -0
  8. package/locales/az/index.esm.js +1 -0
  9. package/locales/az/index.js +1 -0
  10. package/locales/bg/index.esm.js +1 -0
  11. package/locales/bg/index.js +1 -0
  12. package/locales/cs/index.esm.js +1 -0
  13. package/locales/cs/index.js +1 -0
  14. package/locales/da/index.esm.js +1 -0
  15. package/locales/da/index.js +1 -0
  16. package/locales/de/index.esm.js +1 -0
  17. package/locales/de/index.js +1 -0
  18. package/locales/en/index.esm.js +1 -0
  19. package/locales/en/index.js +1 -0
  20. package/locales/es/index.esm.js +1 -0
  21. package/locales/es/index.js +1 -0
  22. package/locales/et/index.esm.js +1 -0
  23. package/locales/et/index.js +1 -0
  24. package/locales/fa/index.esm.js +1 -0
  25. package/locales/fa/index.js +1 -0
  26. package/locales/fi/index.esm.js +1 -0
  27. package/locales/fi/index.js +1 -0
  28. package/locales/fr/index.esm.js +1 -0
  29. package/locales/fr/index.js +1 -0
  30. package/locales/he/index.esm.js +1 -0
  31. package/locales/he/index.js +1 -0
  32. package/locales/hu/index.esm.js +1 -0
  33. package/locales/hu/index.js +1 -0
  34. package/locales/hy/index.esm.js +1 -0
  35. package/locales/hy/index.js +1 -0
  36. package/locales/id/index.esm.js +1 -0
  37. package/locales/id/index.js +1 -0
  38. package/locales/it/index.esm.js +1 -0
  39. package/locales/it/index.js +1 -0
  40. package/locales/ja/index.esm.js +1 -0
  41. package/locales/ja/index.js +1 -0
  42. package/locales/ko/index.esm.js +1 -0
  43. package/locales/ko/index.js +1 -0
  44. package/locales/nl/index.esm.js +1 -0
  45. package/locales/nl/index.js +1 -0
  46. package/locales/no/index.esm.js +1 -0
  47. package/locales/no/index.js +1 -0
  48. package/locales/np/index.esm.js +1 -0
  49. package/locales/np/index.js +1 -0
  50. package/locales/pl/index.esm.js +1 -0
  51. package/locales/pl/index.js +1 -0
  52. package/locales/pt/index.esm.js +1 -0
  53. package/locales/pt/index.js +1 -0
  54. package/locales/pt-BR/index.esm.js +1 -0
  55. package/locales/pt-BR/index.js +1 -0
  56. package/locales/ro/index.esm.js +1 -0
  57. package/locales/ro/index.js +1 -0
  58. package/locales/ru/index.esm.js +1 -0
  59. package/locales/ru/index.js +1 -0
  60. package/locales/sk/index.esm.js +1 -0
  61. package/locales/sk/index.js +1 -0
  62. package/locales/sr-Cyrl-RS/index.esm.js +1 -0
  63. package/locales/sr-Cyrl-RS/index.js +1 -0
  64. package/locales/sr-Latn-RS/index.esm.js +1 -0
  65. package/locales/sr-Latn-RS/index.js +1 -0
  66. package/locales/sv/index.esm.js +1 -0
  67. package/locales/sv/index.js +1 -0
  68. package/locales/tr/index.esm.js +1 -0
  69. package/locales/tr/index.js +1 -0
  70. package/locales/uk/index.esm.js +1 -0
  71. package/locales/uk/index.js +1 -0
  72. package/locales/vi/index.esm.js +1 -0
  73. package/locales/vi/index.js +1 -0
  74. package/locales/zh-Hans/index.esm.js +1 -0
  75. package/locales/zh-Hans/index.js +1 -0
  76. package/locales/zh-Hant/index.esm.js +1 -0
  77. package/locales/zh-Hant/index.js +1 -0
  78. package/package.json +4 -4
  79. package/src/components/body/MRT_TableBodyCell.tsx +41 -32
  80. package/src/components/body/MRT_TableBodyRow.tsx +0 -4
  81. package/src/components/buttons/MRT_CopyButton.tsx +1 -0
  82. package/src/components/head/MRT_TableHeadCell.tsx +6 -0
  83. package/src/components/head/MRT_TableHeadCellFilterLabel.tsx +1 -0
  84. package/src/components/head/MRT_TableHeadRow.tsx +1 -0
  85. package/src/components/menus/MRT_ActionMenuItem.tsx +60 -0
  86. package/src/components/menus/MRT_CellActionMenu.tsx +108 -0
  87. package/src/components/menus/MRT_ColumnActionMenu.tsx +89 -170
  88. package/src/components/menus/MRT_FilterOptionMenu.tsx +6 -14
  89. package/src/components/menus/MRT_RowActionMenu.tsx +7 -15
  90. package/src/components/menus/MRT_ShowHideColumnsMenu.tsx +3 -1
  91. package/src/components/table/MRT_TableContainer.tsx +4 -0
  92. package/src/hooks/display-columns/getMRT_RowActionsColumnDef.tsx +1 -8
  93. package/src/hooks/display-columns/getMRT_RowDragColumnDef.tsx +1 -8
  94. package/src/hooks/display-columns/getMRT_RowExpandColumnDef.tsx +1 -8
  95. package/src/hooks/display-columns/getMRT_RowNumbersColumnDef.tsx +1 -8
  96. package/src/hooks/display-columns/getMRT_RowPinningColumnDef.tsx +1 -8
  97. package/src/hooks/display-columns/getMRT_RowSelectColumnDef.tsx +1 -8
  98. package/src/hooks/display-columns/getMRT_RowSpacerColumnDef.tsx +1 -8
  99. package/src/hooks/useMRT_Effects.ts +10 -0
  100. package/src/hooks/useMRT_TableInstance.ts +112 -59
  101. package/src/icons.ts +2 -0
  102. package/src/index.ts +2 -0
  103. package/src/locales/ar.ts +1 -0
  104. package/src/locales/az.ts +1 -0
  105. package/src/locales/bg.ts +1 -0
  106. package/src/locales/cs.ts +1 -0
  107. package/src/locales/da.ts +1 -0
  108. package/src/locales/de.ts +1 -0
  109. package/src/locales/en.ts +1 -0
  110. package/src/locales/es.ts +1 -0
  111. package/src/locales/et.ts +1 -0
  112. package/src/locales/fa.ts +1 -0
  113. package/src/locales/fi.ts +1 -0
  114. package/src/locales/fr.ts +1 -0
  115. package/src/locales/he.ts +1 -0
  116. package/src/locales/hu.ts +1 -0
  117. package/src/locales/hy.ts +1 -0
  118. package/src/locales/id.ts +1 -0
  119. package/src/locales/it.ts +1 -0
  120. package/src/locales/ja.ts +1 -0
  121. package/src/locales/ko.ts +1 -0
  122. package/src/locales/nl.ts +1 -0
  123. package/src/locales/no.ts +1 -0
  124. package/src/locales/np.ts +1 -0
  125. package/src/locales/pl.ts +1 -0
  126. package/src/locales/pt-BR.ts +1 -0
  127. package/src/locales/pt.ts +1 -0
  128. package/src/locales/ro.ts +1 -0
  129. package/src/locales/ru.ts +1 -0
  130. package/src/locales/sk.ts +1 -0
  131. package/src/locales/sr-Cyrl-RS.ts +1 -0
  132. package/src/locales/sr-Latn-RS.ts +1 -0
  133. package/src/locales/sv.ts +1 -0
  134. package/src/locales/tr.ts +1 -0
  135. package/src/locales/uk.ts +1 -0
  136. package/src/locales/vi.ts +1 -0
  137. package/src/locales/zh-Hans.ts +1 -0
  138. package/src/locales/zh-Hant.ts +1 -0
  139. package/src/types.ts +41 -9
  140. package/src/utils/cell.utils.ts +50 -0
  141. package/src/utils/displayColumn.utils.ts +38 -20
  142. package/src/hooks/display-columns/getMRT_DisplayColumns.tsx +0 -26
  143. package/src/locales/am.ts +0 -94
@@ -4,6 +4,7 @@ import {
4
4
  type MRT_SortingState,
5
5
  type MRT_TableInstance,
6
6
  } from '../types';
7
+ import { getDefaultColumnOrderIds } from '../utils/displayColumn.utils';
7
8
  import { getCanRankRows } from '../utils/row.utils';
8
9
 
9
10
  export const useMRT_Effects = <TData extends MRT_RowData>(
@@ -16,6 +17,7 @@ export const useMRT_Effects = <TData extends MRT_RowData>(
16
17
  options: { enablePagination, enableRowPinning, rowCount },
17
18
  } = table;
18
19
  const {
20
+ columnOrder,
19
21
  density,
20
22
  globalFilter,
21
23
  isFullScreen,
@@ -25,6 +27,7 @@ export const useMRT_Effects = <TData extends MRT_RowData>(
25
27
  sorting,
26
28
  } = getState();
27
29
 
30
+ const totalColumnCount = table.options.columns.length;
28
31
  const totalRowCount = rowCount ?? getPrePaginationRowModel().rows.length;
29
32
 
30
33
  const rerender = useReducer(() => ({}), {})[1];
@@ -90,4 +93,11 @@ export const useMRT_Effects = <TData extends MRT_RowData>(
90
93
  }, 150);
91
94
  }
92
95
  }, [density]);
96
+
97
+ //recalculate column order when columns change or features are toggled on/off
98
+ useEffect(() => {
99
+ if (totalColumnCount !== columnOrder.length) {
100
+ table.setColumnOrder(getDefaultColumnOrderIds(table.options));
101
+ }
102
+ }, [totalColumnCount]);
93
103
  };
@@ -25,14 +25,35 @@ import {
25
25
  getDefaultColumnFilterFn,
26
26
  prepareColumns,
27
27
  } from '../utils/column.utils';
28
- import { getDefaultColumnOrderIds } from '../utils/displayColumn.utils';
28
+ import {
29
+ getDefaultColumnOrderIds,
30
+ showRowActionsColumn,
31
+ showRowDragColumn,
32
+ showRowExpandColumn,
33
+ showRowNumbersColumn,
34
+ showRowPinningColumn,
35
+ showRowSelectionColumn,
36
+ showRowSpacerColumn,
37
+ } from '../utils/displayColumn.utils';
29
38
  import { createRow } from '../utils/tanstack.helpers';
30
- import { getMRT_DisplayColumns } from './display-columns/getMRT_DisplayColumns';
39
+ import { getMRT_RowActionsColumnDef } from './display-columns/getMRT_RowActionsColumnDef';
40
+ import { getMRT_RowDragColumnDef } from './display-columns/getMRT_RowDragColumnDef';
41
+ import { getMRT_RowExpandColumnDef } from './display-columns/getMRT_RowExpandColumnDef';
42
+ import { getMRT_RowNumbersColumnDef } from './display-columns/getMRT_RowNumbersColumnDef';
43
+ import { getMRT_RowPinningColumnDef } from './display-columns/getMRT_RowPinningColumnDef';
44
+ import { getMRT_RowSelectColumnDef } from './display-columns/getMRT_RowSelectColumnDef';
45
+ import { getMRT_RowSpacerColumnDef } from './display-columns/getMRT_RowSpacerColumnDef';
31
46
  import { useMRT_Effects } from './useMRT_Effects';
32
47
 
48
+ /**
49
+ * The MRT hook that wraps the TanStack useReactTable hook and adds additional functionality
50
+ * @param definedTableOptions - table options with proper defaults set
51
+ * @returns the MRT table instance
52
+ */
33
53
  export const useMRT_TableInstance = <TData extends MRT_RowData>(
34
- _tableOptions: MRT_DefinedTableOptions<TData>,
54
+ definedTableOptions: MRT_DefinedTableOptions<TData>,
35
55
  ): MRT_TableInstance<TData> => {
56
+ const actionCellRef = useRef<HTMLTableCellElement>(null);
36
57
  const bottomToolbarRef = useRef<HTMLDivElement>(null);
37
58
  const editInputRefs = useRef<Record<string, HTMLInputElement>>({});
38
59
  const filterInputRefs = useRef<Record<string, HTMLInputElement>>({});
@@ -44,20 +65,27 @@ export const useMRT_TableInstance = <TData extends MRT_RowData>(
44
65
  const tableHeadRef = useRef<HTMLTableSectionElement>(null);
45
66
  const tableFooterRef = useRef<HTMLTableSectionElement>(null);
46
67
 
68
+ //transform initial state with proper column order
47
69
  const initialState: Partial<MRT_TableState<TData>> = useMemo(() => {
48
- const initState = _tableOptions.initialState ?? {};
70
+ const initState = definedTableOptions.initialState ?? {};
49
71
  initState.columnOrder =
50
72
  initState.columnOrder ??
51
73
  getDefaultColumnOrderIds({
52
- ..._tableOptions,
53
- state: { ..._tableOptions.initialState, ..._tableOptions.state },
74
+ ...definedTableOptions,
75
+ state: {
76
+ ...definedTableOptions.initialState,
77
+ ...definedTableOptions.state,
78
+ },
54
79
  } as MRT_StatefulTableOptions<TData>);
55
- initState.globalFilterFn = _tableOptions.globalFilterFn ?? 'fuzzy';
80
+ initState.globalFilterFn = definedTableOptions.globalFilterFn ?? 'fuzzy';
56
81
  return initState;
57
82
  }, []);
58
83
 
59
- _tableOptions.initialState = initialState;
84
+ definedTableOptions.initialState = initialState;
60
85
 
86
+ const [actionCell, setActionCell] = useState<MRT_Cell<TData> | null>(
87
+ initialState.actionCell ?? null,
88
+ );
61
89
  const [creatingRow, _setCreatingRow] = useState<MRT_Row<TData> | null>(
62
90
  initialState.creatingRow ?? null,
63
91
  );
@@ -66,7 +94,7 @@ export const useMRT_TableInstance = <TData extends MRT_RowData>(
66
94
  Object.assign(
67
95
  {},
68
96
  ...getAllLeafColumnDefs(
69
- _tableOptions.columns as MRT_ColumnDef<TData>[],
97
+ definedTableOptions.columns as MRT_ColumnDef<TData>[],
70
98
  ).map((col) => ({
71
99
  [getColumnId(col)]:
72
100
  col.filterFn instanceof Function
@@ -129,7 +157,8 @@ export const useMRT_TableInstance = <TData extends MRT_RowData>(
129
157
  initialState?.showToolbarDropZone ?? false,
130
158
  );
131
159
 
132
- _tableOptions.state = {
160
+ definedTableOptions.state = {
161
+ actionCell,
133
162
  columnFilterFns,
134
163
  columnOrder,
135
164
  columnSizingInfo,
@@ -149,48 +178,71 @@ export const useMRT_TableInstance = <TData extends MRT_RowData>(
149
178
  showColumnFilters,
150
179
  showGlobalFilter,
151
180
  showToolbarDropZone,
152
- ..._tableOptions.state,
181
+ ...definedTableOptions.state,
153
182
  };
154
183
 
155
- const tableOptions = _tableOptions as MRT_StatefulTableOptions<TData>;
184
+ //The table options now include all state needed to help determine column visibility and order logic
185
+ const statefulTableOptions =
186
+ definedTableOptions as MRT_StatefulTableOptions<TData>;
156
187
 
157
188
  //don't recompute columnDefs while resizing column or dragging column/row
158
189
  const columnDefsRef = useRef<MRT_ColumnDef<TData>[]>([]);
159
- tableOptions.columns =
160
- tableOptions.state.columnSizingInfo.isResizingColumn ||
161
- tableOptions.state.draggingColumn ||
162
- tableOptions.state.draggingRow
190
+ statefulTableOptions.columns =
191
+ statefulTableOptions.state.columnSizingInfo.isResizingColumn ||
192
+ statefulTableOptions.state.draggingColumn ||
193
+ statefulTableOptions.state.draggingRow
163
194
  ? columnDefsRef.current
164
195
  : prepareColumns({
165
196
  columnDefs: [
166
- ...getMRT_DisplayColumns(tableOptions),
167
- ...tableOptions.columns,
197
+ ...([
198
+ showRowPinningColumn(statefulTableOptions) &&
199
+ getMRT_RowPinningColumnDef(statefulTableOptions),
200
+ showRowDragColumn(statefulTableOptions) &&
201
+ getMRT_RowDragColumnDef(statefulTableOptions),
202
+ showRowActionsColumn(statefulTableOptions) &&
203
+ getMRT_RowActionsColumnDef(statefulTableOptions),
204
+ showRowExpandColumn(statefulTableOptions) &&
205
+ getMRT_RowExpandColumnDef(statefulTableOptions),
206
+ showRowSelectionColumn(statefulTableOptions) &&
207
+ getMRT_RowSelectColumnDef(statefulTableOptions),
208
+ showRowNumbersColumn(statefulTableOptions) &&
209
+ getMRT_RowNumbersColumnDef(statefulTableOptions),
210
+ ].filter(Boolean) as MRT_ColumnDef<TData>[]),
211
+ ...statefulTableOptions.columns,
212
+ ...([
213
+ showRowSpacerColumn(statefulTableOptions) &&
214
+ getMRT_RowSpacerColumnDef(statefulTableOptions),
215
+ ].filter(Boolean) as MRT_ColumnDef<TData>[]),
168
216
  ],
169
- tableOptions,
217
+ tableOptions: statefulTableOptions,
170
218
  });
171
- columnDefsRef.current = tableOptions.columns;
219
+ columnDefsRef.current = statefulTableOptions.columns;
172
220
 
173
- tableOptions.data = useMemo(
221
+ //if loading, generate blank rows to show skeleton loaders
222
+ statefulTableOptions.data = useMemo(
174
223
  () =>
175
- (tableOptions.state.isLoading || tableOptions.state.showSkeletons) &&
176
- !tableOptions.data.length
224
+ (statefulTableOptions.state.isLoading ||
225
+ statefulTableOptions.state.showSkeletons) &&
226
+ !statefulTableOptions.data.length
177
227
  ? [
178
- ...Array(Math.min(tableOptions.state.pagination.pageSize, 20)).fill(
179
- null,
180
- ),
228
+ ...Array(
229
+ Math.min(statefulTableOptions.state.pagination.pageSize, 20),
230
+ ).fill(null),
181
231
  ].map(() =>
182
232
  Object.assign(
183
233
  {},
184
- ...getAllLeafColumnDefs(tableOptions.columns).map((col) => ({
185
- [getColumnId(col)]: null,
186
- })),
234
+ ...getAllLeafColumnDefs(statefulTableOptions.columns).map(
235
+ (col) => ({
236
+ [getColumnId(col)]: null,
237
+ }),
238
+ ),
187
239
  ),
188
240
  )
189
- : tableOptions.data,
241
+ : statefulTableOptions.data,
190
242
  [
191
- tableOptions.data,
192
- tableOptions.state.isLoading,
193
- tableOptions.state.showSkeletons,
243
+ statefulTableOptions.data,
244
+ statefulTableOptions.state.isLoading,
245
+ statefulTableOptions.state.showSkeletons,
194
246
  ],
195
247
  );
196
248
 
@@ -200,61 +252,62 @@ export const useMRT_TableInstance = <TData extends MRT_RowData>(
200
252
  onColumnSizingInfoChange,
201
253
  onGroupingChange,
202
254
  onPaginationChange,
203
- ...tableOptions,
204
- globalFilterFn: tableOptions.filterFns?.[globalFilterFn ?? 'fuzzy'],
255
+ ...statefulTableOptions,
256
+ globalFilterFn: statefulTableOptions.filterFns?.[globalFilterFn ?? 'fuzzy'],
205
257
  }) as MRT_TableInstance<TData>;
206
258
 
207
- //@ts-ignore
208
259
  table.refs = {
209
- //@ts-ignore
260
+ actionCellRef,
210
261
  bottomToolbarRef,
211
262
  editInputRefs,
212
263
  filterInputRefs,
213
- //@ts-ignore
214
264
  searchInputRef,
215
- //@ts-ignore
216
265
  tableContainerRef,
217
- //@ts-ignore
218
266
  tableFooterRef,
219
267
  tableHeadCellRefs,
220
- //@ts-ignore
221
268
  tableHeadRef,
222
- //@ts-ignore
223
269
  tablePaperRef,
224
- //@ts-ignore
225
270
  topToolbarRef,
226
271
  };
227
272
 
273
+ table.setActionCell =
274
+ statefulTableOptions.onActionCellChange ?? setActionCell;
228
275
  table.setCreatingRow = (row: MRT_Updater<MRT_Row<TData> | null | true>) => {
229
276
  let _row = row;
230
277
  if (row === true) {
231
278
  _row = createRow(table);
232
279
  }
233
- tableOptions?.onCreatingRowChange?.(_row as MRT_Row<TData> | null) ??
234
- _setCreatingRow(_row as MRT_Row<TData> | null);
280
+ statefulTableOptions?.onCreatingRowChange?.(
281
+ _row as MRT_Row<TData> | null,
282
+ ) ?? _setCreatingRow(_row as MRT_Row<TData> | null);
235
283
  };
236
284
  table.setColumnFilterFns =
237
- tableOptions.onColumnFilterFnsChange ?? setColumnFilterFns;
238
- table.setDensity = tableOptions.onDensityChange ?? setDensity;
285
+ statefulTableOptions.onColumnFilterFnsChange ?? setColumnFilterFns;
286
+ table.setDensity = statefulTableOptions.onDensityChange ?? setDensity;
239
287
  table.setDraggingColumn =
240
- tableOptions.onDraggingColumnChange ?? setDraggingColumn;
241
- table.setDraggingRow = tableOptions.onDraggingRowChange ?? setDraggingRow;
242
- table.setEditingCell = tableOptions.onEditingCellChange ?? setEditingCell;
243
- table.setEditingRow = tableOptions.onEditingRowChange ?? setEditingRow;
288
+ statefulTableOptions.onDraggingColumnChange ?? setDraggingColumn;
289
+ table.setDraggingRow =
290
+ statefulTableOptions.onDraggingRowChange ?? setDraggingRow;
291
+ table.setEditingCell =
292
+ statefulTableOptions.onEditingCellChange ?? setEditingCell;
293
+ table.setEditingRow =
294
+ statefulTableOptions.onEditingRowChange ?? setEditingRow;
244
295
  table.setGlobalFilterFn =
245
- tableOptions.onGlobalFilterFnChange ?? setGlobalFilterFn;
296
+ statefulTableOptions.onGlobalFilterFnChange ?? setGlobalFilterFn;
246
297
  table.setHoveredColumn =
247
- tableOptions.onHoveredColumnChange ?? setHoveredColumn;
248
- table.setHoveredRow = tableOptions.onHoveredRowChange ?? setHoveredRow;
249
- table.setIsFullScreen = tableOptions.onIsFullScreenChange ?? setIsFullScreen;
298
+ statefulTableOptions.onHoveredColumnChange ?? setHoveredColumn;
299
+ table.setHoveredRow =
300
+ statefulTableOptions.onHoveredRowChange ?? setHoveredRow;
301
+ table.setIsFullScreen =
302
+ statefulTableOptions.onIsFullScreenChange ?? setIsFullScreen;
250
303
  table.setShowAlertBanner =
251
- tableOptions.onShowAlertBannerChange ?? setShowAlertBanner;
304
+ statefulTableOptions.onShowAlertBannerChange ?? setShowAlertBanner;
252
305
  table.setShowColumnFilters =
253
- tableOptions.onShowColumnFiltersChange ?? setShowColumnFilters;
306
+ statefulTableOptions.onShowColumnFiltersChange ?? setShowColumnFilters;
254
307
  table.setShowGlobalFilter =
255
- tableOptions.onShowGlobalFilterChange ?? setShowGlobalFilter;
308
+ statefulTableOptions.onShowGlobalFilterChange ?? setShowGlobalFilter;
256
309
  table.setShowToolbarDropZone =
257
- tableOptions.onShowToolbarDropZoneChange ?? setShowToolbarDropZone;
310
+ statefulTableOptions.onShowToolbarDropZoneChange ?? setShowToolbarDropZone;
258
311
 
259
312
  useMRT_Effects(table);
260
313
 
package/src/icons.ts CHANGED
@@ -5,6 +5,7 @@ import ChevronLeftIcon from '@mui/icons-material/ChevronLeft';
5
5
  import ChevronRightIcon from '@mui/icons-material/ChevronRight';
6
6
  import ClearAllIcon from '@mui/icons-material/ClearAll';
7
7
  import CloseIcon from '@mui/icons-material/Close';
8
+ import ContentCopy from '@mui/icons-material/ContentCopy';
8
9
  import DensityLargeIcon from '@mui/icons-material/DensityLarge';
9
10
  import DensityMediumIcon from '@mui/icons-material/DensityMedium';
10
11
  import DensitySmallIcon from '@mui/icons-material/DensitySmall';
@@ -40,6 +41,7 @@ export const MRT_Default_Icons = {
40
41
  ChevronRightIcon,
41
42
  ClearAllIcon,
42
43
  CloseIcon,
44
+ ContentCopy,
43
45
  DensityLargeIcon,
44
46
  DensityMediumIcon,
45
47
  DensitySmallIcon,
package/src/index.ts CHANGED
@@ -2,6 +2,7 @@ export * from './types';
2
2
 
3
3
  //helpers
4
4
  export * from './utils/tanstack.helpers';
5
+ export * from './utils/cell.utils';
5
6
  export * from './utils/column.utils';
6
7
  export * from './utils/displayColumn.utils';
7
8
  export * from './utils/row.utils';
@@ -67,6 +68,7 @@ export * from './components/inputs/MRT_FilterTextField';
67
68
  export * from './components/inputs/MRT_GlobalFilterTextField';
68
69
  export * from './components/inputs/MRT_SelectCheckbox';
69
70
  //menu components
71
+ export * from './components/menus/MRT_ActionMenuItem';
70
72
  export * from './components/menus/MRT_ColumnActionMenu';
71
73
  export * from './components/menus/MRT_FilterOptionMenu';
72
74
  export * from './components/menus/MRT_RowActionMenu';
package/src/locales/ar.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_AR: MRT_Localization = {
10
10
  clearSearch: 'إعادة تعيين البحث',
11
11
  clearSort: 'إعادة تعيين الفرز',
12
12
  clickToCopy: 'انقر للنسخ',
13
+ copy: 'نسخ',
13
14
  collapse: 'إخفاء',
14
15
  collapseAll: 'إخفاء الكل',
15
16
  columnActions: 'إجراءات العمود',
package/src/locales/az.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_AZ: MRT_Localization = {
10
10
  clearSearch: 'Axtarışı təmizlə',
11
11
  clearSort: 'Sıralamanı sıfırla',
12
12
  clickToCopy: 'Köçür',
13
+ copy: 'Köçür',
13
14
  columnActions: 'Sütun Əməliyyatları',
14
15
  copiedToClipboard: 'Panelə Köçürüldü',
15
16
  collapse: 'Daralt',
package/src/locales/bg.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_BG: MRT_Localization = {
10
10
  clearSearch: 'Изчисти търсенето',
11
11
  clearSort: 'Изчисти сортирането',
12
12
  clickToCopy: 'Кликни, за да копираш',
13
+ copy: 'Копирай',
13
14
  collapse: 'Свий',
14
15
  collapseAll: 'Свий всички',
15
16
  columnActions: 'Действия за колони',
package/src/locales/cs.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_CS: MRT_Localization = {
10
10
  clearSearch: 'Vyčistit hledání',
11
11
  clearSort: 'vyčistit řazení',
12
12
  clickToCopy: 'Kliknutím zkopírovat',
13
+ copy: 'Kopírovat',
13
14
  collapse: 'Sbalit',
14
15
  collapseAll: 'Sbalit vše',
15
16
  columnActions: 'Akce sloupce',
package/src/locales/da.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_DA: MRT_Localization = {
10
10
  clearSearch: 'Ryd søgning',
11
11
  clearSort: 'Ryd sortering',
12
12
  clickToCopy: 'Tryk for at kopiere',
13
+ copy: 'Kopier',
13
14
  collapse: 'Luk',
14
15
  collapseAll: 'Luk alle',
15
16
  columnActions: 'Kolonnehandlinger',
package/src/locales/de.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_DE: MRT_Localization = {
10
10
  clearSearch: 'Suche zurücksetzen',
11
11
  clearSort: 'Sortierung zurücksetzen',
12
12
  clickToCopy: 'Kopieren',
13
+ copy: 'Kopieren',
13
14
  columnActions: 'Spalten-Aktionen',
14
15
  copiedToClipboard: 'In die Zwischenablage kopiert',
15
16
  collapse: 'Einklappen',
package/src/locales/en.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_EN: MRT_Localization = {
10
10
  clearSearch: 'Clear search',
11
11
  clearSort: 'Clear sort',
12
12
  clickToCopy: 'Click to copy',
13
+ copy: 'Copy',
13
14
  collapse: 'Collapse',
14
15
  collapseAll: 'Collapse all',
15
16
  columnActions: 'Column Actions',
package/src/locales/es.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_ES: MRT_Localization = {
10
10
  clearSearch: 'Borrar búsqueda',
11
11
  clearSort: 'Borrar ordenamiento',
12
12
  clickToCopy: 'Haga click para copiar',
13
+ copy: 'Copiar',
13
14
  collapse: 'Colapsar',
14
15
  collapseAll: 'Colapsar todo',
15
16
  columnActions: 'Columna de acciones',
package/src/locales/et.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_ET: MRT_Localization = {
10
10
  clearSearch: 'Tühjenda otsing',
11
11
  clearSort: 'Tühjenda sorteerimine',
12
12
  clickToCopy: 'Klõpsa kopeerimiseks',
13
+ copy: 'Kopeeri',
13
14
  collapse: 'Ahenda',
14
15
  collapseAll: 'Ahenda kõik',
15
16
  columnActions: 'Veeru toimingud',
package/src/locales/fa.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_FA: MRT_Localization = {
10
10
  clearSearch: 'پاک کردن جستجو',
11
11
  clearSort: 'پاک کردن مرتب سازی',
12
12
  clickToCopy: 'کپی کردن',
13
+ copy: 'کپی',
13
14
  collapse: 'بستن',
14
15
  collapseAll: 'بستن همه',
15
16
  columnActions: 'اقدامات ستون',
package/src/locales/fi.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_FI: MRT_Localization = {
10
10
  clearSearch: 'Tyhjennä haku',
11
11
  clearSort: 'Tyhjennä lajittelu',
12
12
  clickToCopy: 'Kopioi napsauttamalla',
13
+ copy: 'Kopioi',
13
14
  collapse: 'Supista',
14
15
  collapseAll: 'Supista kaikki',
15
16
  columnActions: 'Saraketoiminnot',
package/src/locales/fr.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_FR: MRT_Localization = {
10
10
  clearSearch: 'Effacer la recherche',
11
11
  clearSort: 'Effacer le tri',
12
12
  clickToCopy: 'Cliquer pour copier',
13
+ copy: 'Copier',
13
14
  collapse: 'Réduire',
14
15
  collapseAll: 'Réduire tout',
15
16
  columnActions: 'Actions de colonne',
package/src/locales/he.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_HE: MRT_Localization = {
10
10
  clearSearch: 'נקה חיפוש',
11
11
  clearSort: 'נקה מיון',
12
12
  clickToCopy: 'לחץ להעתקה',
13
+ copy: 'העתק',
13
14
  collapse: 'צמצום',
14
15
  collapseAll: 'צמצום הכל',
15
16
  columnActions: 'פעולות עמודה',
package/src/locales/hu.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_HU: MRT_Localization = {
10
10
  clearSearch: 'Keresés törlése',
11
11
  clearSort: 'Rendezés törlése',
12
12
  clickToCopy: 'Kattintson a másoláshoz',
13
+ copy: 'Másolás',
13
14
  collapse: 'Összecsukás',
14
15
  collapseAll: 'Mindet összecsuk',
15
16
  columnActions: 'Oszlop műveletek',
package/src/locales/hy.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_HY: MRT_Localization = {
10
10
  clearSearch: 'Մաքրել որոնումը',
11
11
  clearSort: 'Մաքրել տեսակավորումը',
12
12
  clickToCopy: 'Սեղմել պատճենելու համար',
13
+ copy: 'Պատճենել',
13
14
  columnActions: 'Սյունակի գործողություն',
14
15
  copiedToClipboard: 'Պատճենվել է փոխանակման բուֆերում',
15
16
  collapse: 'Փոքրացնել',
package/src/locales/id.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_ID: MRT_Localization = {
10
10
  clearSearch: 'Hapus pencarian',
11
11
  clearSort: 'Hapus urutan',
12
12
  clickToCopy: 'Klik untuk menyalin',
13
+ copy: 'Salin',
13
14
  collapse: 'Ciutkan',
14
15
  collapseAll: 'Ciutkan semua',
15
16
  columnActions: 'Aksi Kolom',
package/src/locales/it.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_IT: MRT_Localization = {
10
10
  clearSearch: 'Cancella ricerca',
11
11
  clearSort: 'Cancella ordinamento',
12
12
  clickToCopy: 'Click per copiare',
13
+ copy: 'Copia',
13
14
  collapse: 'Chiudi',
14
15
  collapseAll: 'Chiudi tutto',
15
16
  columnActions: 'Azioni colonna',
package/src/locales/ja.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_JA: MRT_Localization = {
10
10
  clearSearch: 'リセット',
11
11
  clearSort: '並べ替えを解除',
12
12
  clickToCopy: 'クリックでコピー',
13
+ copy: 'コピー',
13
14
  collapse: '折りたたむ',
14
15
  collapseAll: 'すべて折りたたむ',
15
16
  columnActions: '操作',
package/src/locales/ko.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_KO: MRT_Localization = {
10
10
  clearSearch: '검색 초기화',
11
11
  clearSort: '정렬 초기화',
12
12
  clickToCopy: '클릭하여 복사하기',
13
+ copy: '복사',
13
14
  collapse: '행 접기',
14
15
  collapseAll: '전체 접기',
15
16
  columnActions: '열 동작',
package/src/locales/nl.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_NL: MRT_Localization = {
10
10
  clearSearch: 'Zoekbalk wissen',
11
11
  clearSort: 'Annuleer sortering',
12
12
  clickToCopy: 'Klik om te kopiëren',
13
+ copy: 'Kopiëren',
13
14
  collapse: 'Samenvouwen',
14
15
  collapseAll: 'Alles samenvouwen',
15
16
  columnActions: 'Kolom acties',
package/src/locales/no.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_NO: MRT_Localization = {
10
10
  clearSearch: 'Tøm søk',
11
11
  clearSort: 'Tøm sortering',
12
12
  clickToCopy: 'Klikk for å kopiere',
13
+ copy: 'Kopier',
13
14
  collapse: 'Kollaps',
14
15
  collapseAll: 'Kollapse alle',
15
16
  columnActions: 'Kolonnehandlinger',
package/src/locales/np.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_NP: MRT_Localization = {
10
10
  clearSearch: 'खोजिएको शब्द मेट्नुहोस्',
11
11
  clearSort: 'क्रम हटाउनुहोस्',
12
12
  clickToCopy: 'प्रतिलिपि बनाउन क्लिक गर्नुहोस्',
13
+ copy: 'प्रतिलिपि बनाउनुहोस्',
13
14
  collapse: 'संकुचित गर्नुहोस्',
14
15
  collapseAll: 'सबै संकुचित गर्नुहोस्',
15
16
  columnActions: 'यस स्तम्भका कार्यहरू',
package/src/locales/pl.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_PL: MRT_Localization = {
10
10
  clearSearch: 'Wyczyść wyszukiwanie',
11
11
  clearSort: 'Wyczyść sortowanie',
12
12
  clickToCopy: 'Kliknij, aby skopiować',
13
+ copy: 'Kopiuj',
13
14
  collapse: 'Zwiń',
14
15
  collapseAll: 'Zwiń wszystko',
15
16
  columnActions: 'Akcje dla kolumny',
@@ -10,6 +10,7 @@ export const MRT_Localization_PT_BR: MRT_Localization = {
10
10
  clearSearch: 'Limpar pesquisa',
11
11
  clearSort: 'Limpar classificações',
12
12
  clickToCopy: 'Clique para copiar',
13
+ copy: 'Copiar',
13
14
  collapse: 'Recolher',
14
15
  collapseAll: 'Recolher tudo',
15
16
  columnActions: 'Ações das colunas',
package/src/locales/pt.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_PT: MRT_Localization = {
10
10
  clearSearch: 'Limpar pesquisa',
11
11
  clearSort: 'Limpar classificações',
12
12
  clickToCopy: 'Clique para copiar',
13
+ copy: 'Copiar',
13
14
  collapse: 'Recolher',
14
15
  collapseAll: 'Recolher tudo',
15
16
  columnActions: 'Ações das colunas',
package/src/locales/ro.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_RO: MRT_Localization = {
10
10
  clearSearch: 'Curăță căutarea',
11
11
  clearSort: 'Curăță sortarea',
12
12
  clickToCopy: 'Apasă pentru a copia',
13
+ copy: 'Copiază',
13
14
  collapse: 'Restrânge',
14
15
  collapseAll: 'Restrânge tot',
15
16
  columnActions: 'Acțiuni Coloană',
package/src/locales/ru.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_RU: MRT_Localization = {
10
10
  clearSearch: 'Очистить поиск',
11
11
  clearSort: 'Очистить сортировку',
12
12
  clickToCopy: 'Нажмите, чтобы скопировать',
13
+ copy: 'Копировать',
13
14
  columnActions: 'Действие колонки',
14
15
  copiedToClipboard: 'Скопировано в буфер обмена',
15
16
  collapse: 'Свернуть',
package/src/locales/sk.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_SK: MRT_Localization = {
10
10
  clearSearch: 'Vyčistiť hľadanie',
11
11
  clearSort: 'Vyčistiť zoradenie',
12
12
  clickToCopy: 'Kliknutím skopírovať',
13
+ copy: 'Kopírovať',
13
14
  collapse: 'Zbaliť',
14
15
  collapseAll: 'Zbaliť všetko',
15
16
  columnActions: 'Akcie stĺpca',
@@ -10,6 +10,7 @@ export const MRT_Localization_SR_CYRL_RS: MRT_Localization = {
10
10
  clearSearch: 'Поништи претрагу',
11
11
  clearSort: 'Поништи сортирање',
12
12
  clickToCopy: 'Кликни да копираш',
13
+ copy: 'Копирај',
13
14
  collapse: 'Рашири',
14
15
  collapseAll: 'Рашири све',
15
16
  columnActions: 'Акције над колонама',
@@ -10,6 +10,7 @@ export const MRT_Localization_SR_LATN_RS: MRT_Localization = {
10
10
  clearSearch: 'Poništi pretragu',
11
11
  clearSort: 'Poništi sortiranje',
12
12
  clickToCopy: 'Klikni da kopiraš',
13
+ copy: 'Kopiraj',
13
14
  collapse: 'Raširi',
14
15
  collapseAll: 'Raširi sve',
15
16
  columnActions: 'Akcije nad kolonama',
package/src/locales/sv.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_SV: MRT_Localization = {
10
10
  clearSearch: 'Rensa sök',
11
11
  clearSort: 'Rensa sortering',
12
12
  clickToCopy: 'Klicka för att kopiera',
13
+ copy: 'Kopiera',
13
14
  collapse: 'Stäng',
14
15
  collapseAll: 'Stäng alla',
15
16
  columnActions: 'Kolumnåtgärd',
package/src/locales/tr.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_TR: MRT_Localization = {
10
10
  clearSearch: 'Aramayı Temizle',
11
11
  clearSort: 'Sıralamayı Sıfırla',
12
12
  clickToCopy: 'Kopyala',
13
+ copy: 'Kopyala',
13
14
  columnActions: 'Sütun İşlemleri',
14
15
  copiedToClipboard: 'Panoya Kopyalandı',
15
16
  collapse: 'Daralt',
package/src/locales/uk.ts CHANGED
@@ -10,6 +10,7 @@ export const MRT_Localization_UK: MRT_Localization = {
10
10
  clearSearch: 'Очистити пошук',
11
11
  clearSort: 'Очистити сортування',
12
12
  clickToCopy: 'Натисніть, щоб скопіювати',
13
+ copy: 'Копіювати',
13
14
  collapse: 'Згорнути',
14
15
  collapseAll: 'Згорнути все',
15
16
  columnActions: 'Дії стовпця',