material-react-table 2.9.2 → 2.10.0

Sign up to get free protection for your applications and to get access to all the features.
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: 'Дії стовпця',