material-react-table 0.18.0 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. package/dist/MaterialReactTable.d.ts +169 -133
  2. package/dist/body/MRT_TableBody.d.ts +1 -1
  3. package/dist/body/MRT_TableBodyCell.d.ts +1 -1
  4. package/dist/body/MRT_TableBodyRow.d.ts +1 -1
  5. package/dist/body/MRT_TableDetailPanel.d.ts +1 -1
  6. package/dist/buttons/MRT_ColumnPinningButtons.d.ts +1 -1
  7. package/dist/buttons/MRT_CopyButton.d.ts +1 -1
  8. package/dist/buttons/MRT_EditActionButtons.d.ts +1 -1
  9. package/dist/buttons/MRT_ExpandAllButton.d.ts +1 -1
  10. package/dist/buttons/MRT_ExpandButton.d.ts +1 -1
  11. package/dist/buttons/MRT_FullScreenToggleButton.d.ts +1 -1
  12. package/dist/buttons/MRT_GrabHandleButton.d.ts +1 -1
  13. package/dist/buttons/MRT_ShowHideColumnsButton.d.ts +1 -1
  14. package/dist/buttons/MRT_ToggleDensePaddingButton.d.ts +1 -1
  15. package/dist/buttons/MRT_ToggleFiltersButton.d.ts +1 -1
  16. package/dist/buttons/MRT_ToggleGlobalFilterButton.d.ts +1 -1
  17. package/dist/buttons/MRT_ToggleRowActionMenuButton.d.ts +1 -1
  18. package/dist/filtersFns.d.ts +31 -23
  19. package/dist/footer/MRT_TableFooter.d.ts +1 -1
  20. package/dist/footer/MRT_TableFooterCell.d.ts +1 -1
  21. package/dist/footer/MRT_TableFooterRow.d.ts +1 -1
  22. package/dist/head/MRT_DraggableTableHeadCell.d.ts +1 -1
  23. package/dist/head/MRT_TableHead.d.ts +1 -1
  24. package/dist/head/MRT_TableHeadCell.d.ts +1 -1
  25. package/dist/head/MRT_TableHeadCellColumnActionsButton.d.ts +1 -1
  26. package/dist/head/MRT_TableHeadCellFilterContainer.d.ts +1 -1
  27. package/dist/head/MRT_TableHeadCellFilterLabel.d.ts +1 -1
  28. package/dist/head/MRT_TableHeadCellResizeHandle.d.ts +1 -1
  29. package/dist/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
  30. package/dist/head/MRT_TableHeadRow.d.ts +1 -1
  31. package/dist/inputs/MRT_EditCellTextField.d.ts +1 -1
  32. package/dist/inputs/MRT_FilterRangeFields.d.ts +1 -1
  33. package/dist/inputs/MRT_FilterTextField.d.ts +1 -1
  34. package/dist/inputs/MRT_GlobalFilterTextField.d.ts +1 -1
  35. package/dist/inputs/MRT_SelectCheckbox.d.ts +1 -1
  36. package/dist/material-react-table.cjs.development.js +760 -759
  37. package/dist/material-react-table.cjs.development.js.map +1 -1
  38. package/dist/material-react-table.cjs.production.min.js +1 -1
  39. package/dist/material-react-table.cjs.production.min.js.map +1 -1
  40. package/dist/material-react-table.esm.js +762 -761
  41. package/dist/material-react-table.esm.js.map +1 -1
  42. package/dist/menus/MRT_ColumnActionMenu.d.ts +1 -1
  43. package/dist/menus/MRT_FilterOptionMenu.d.ts +1 -1
  44. package/dist/menus/MRT_RowActionMenu.d.ts +1 -1
  45. package/dist/menus/MRT_ShowHideColumnsMenu.d.ts +1 -1
  46. package/dist/menus/MRT_ShowHideColumnsMenuItems.d.ts +1 -1
  47. package/dist/sortingFns.d.ts +10 -3
  48. package/dist/table/MRT_Table.d.ts +1 -1
  49. package/dist/table/MRT_TableContainer.d.ts +1 -1
  50. package/dist/table/MRT_TablePaper.d.ts +1 -1
  51. package/dist/toolbar/MRT_LinearProgressBar.d.ts +1 -1
  52. package/dist/toolbar/MRT_TablePagination.d.ts +1 -1
  53. package/dist/toolbar/MRT_ToolbarAlertBanner.d.ts +1 -1
  54. package/dist/toolbar/MRT_ToolbarBottom.d.ts +1 -1
  55. package/dist/toolbar/MRT_ToolbarInternalButtons.d.ts +1 -1
  56. package/dist/toolbar/MRT_ToolbarTop.d.ts +1 -1
  57. package/dist/utils.d.ts +10 -16
  58. package/package.json +4 -4
  59. package/src/MaterialReactTable.tsx +167 -156
  60. package/src/body/MRT_TableBody.tsx +5 -6
  61. package/src/body/MRT_TableBodyCell.tsx +18 -27
  62. package/src/body/MRT_TableBodyRow.tsx +7 -7
  63. package/src/body/MRT_TableDetailPanel.tsx +7 -7
  64. package/src/buttons/MRT_ColumnPinningButtons.tsx +3 -3
  65. package/src/buttons/MRT_CopyButton.tsx +5 -7
  66. package/src/buttons/MRT_EditActionButtons.tsx +4 -5
  67. package/src/buttons/MRT_ExpandAllButton.tsx +4 -5
  68. package/src/buttons/MRT_ExpandButton.tsx +4 -5
  69. package/src/buttons/MRT_FullScreenToggleButton.tsx +3 -7
  70. package/src/buttons/MRT_GrabHandleButton.tsx +39 -41
  71. package/src/buttons/MRT_ShowHideColumnsButton.tsx +4 -4
  72. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +3 -7
  73. package/src/buttons/MRT_ToggleFiltersButton.tsx +3 -4
  74. package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +4 -8
  75. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +6 -6
  76. package/src/filtersFns.ts +24 -23
  77. package/src/footer/MRT_TableFooter.tsx +5 -6
  78. package/src/footer/MRT_TableFooterCell.tsx +8 -11
  79. package/src/footer/MRT_TableFooterRow.tsx +5 -9
  80. package/src/head/MRT_DraggableTableHeadCell.tsx +4 -6
  81. package/src/head/MRT_TableHead.tsx +5 -5
  82. package/src/head/MRT_TableHeadCell.tsx +18 -29
  83. package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +6 -8
  84. package/src/head/MRT_TableHeadCellFilterContainer.tsx +5 -7
  85. package/src/head/MRT_TableHeadCellFilterLabel.tsx +13 -19
  86. package/src/head/MRT_TableHeadCellResizeHandle.tsx +12 -11
  87. package/src/head/MRT_TableHeadCellSortLabel.tsx +3 -5
  88. package/src/head/MRT_TableHeadRow.tsx +6 -6
  89. package/src/inputs/MRT_EditCellTextField.tsx +12 -14
  90. package/src/inputs/MRT_FilterRangeFields.tsx +4 -4
  91. package/src/inputs/MRT_FilterTextField.tsx +27 -38
  92. package/src/inputs/MRT_GlobalFilterTextField.tsx +5 -6
  93. package/src/inputs/MRT_SelectCheckbox.tsx +9 -12
  94. package/src/menus/MRT_ColumnActionMenu.tsx +5 -9
  95. package/src/menus/MRT_FilterOptionMenu.tsx +16 -48
  96. package/src/menus/MRT_RowActionMenu.tsx +4 -5
  97. package/src/menus/MRT_ShowHideColumnsMenu.tsx +8 -9
  98. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +11 -10
  99. package/src/sortingFns.ts +11 -3
  100. package/src/table/MRT_Table.tsx +7 -11
  101. package/src/table/MRT_TableContainer.tsx +5 -6
  102. package/src/table/MRT_TablePaper.tsx +7 -8
  103. package/src/table/MRT_TableRoot.tsx +118 -132
  104. package/src/toolbar/MRT_LinearProgressBar.tsx +4 -5
  105. package/src/toolbar/MRT_TablePagination.tsx +7 -9
  106. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +13 -9
  107. package/src/toolbar/MRT_ToolbarBottom.tsx +8 -9
  108. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +10 -10
  109. package/src/toolbar/MRT_ToolbarTop.tsx +11 -11
  110. package/src/utils.ts +56 -50
@@ -7,10 +7,10 @@ import { commonToolbarStyles } from './MRT_ToolbarTop';
7
7
  import { MRT_TableInstance } from '..';
8
8
 
9
9
  interface Props {
10
- instance: MRT_TableInstance;
10
+ table: MRT_TableInstance;
11
11
  }
12
12
 
13
- export const MRT_ToolbarBottom: FC<Props> = ({ instance }) => {
13
+ export const MRT_ToolbarBottom: FC<Props> = ({ table }) => {
14
14
  const {
15
15
  getState,
16
16
  options: {
@@ -21,15 +21,14 @@ export const MRT_ToolbarBottom: FC<Props> = ({ instance }) => {
21
21
  renderToolbarBottomCustomActions,
22
22
  tableId,
23
23
  },
24
- } = instance;
25
-
24
+ } = table;
26
25
  const { isFullScreen } = getState();
27
26
 
28
27
  const isMobile = useMediaQuery('(max-width:720px)');
29
28
 
30
29
  const toolbarProps =
31
30
  muiTableToolbarBottomProps instanceof Function
32
- ? muiTableToolbarBottomProps({ instance })
31
+ ? muiTableToolbarBottomProps({ table })
33
32
  : muiTableToolbarBottomProps;
34
33
 
35
34
  const stackAlertBanner =
@@ -54,9 +53,9 @@ export const MRT_ToolbarBottom: FC<Props> = ({ instance }) => {
54
53
  } as any)
55
54
  }
56
55
  >
57
- <MRT_LinearProgressBar alignTo="top" instance={instance} />
56
+ <MRT_LinearProgressBar alignTo="top" table={table} />
58
57
  {positionToolbarAlertBanner === 'bottom' && (
59
- <MRT_ToolbarAlertBanner instance={instance} />
58
+ <MRT_ToolbarAlertBanner table={table} />
60
59
  )}
61
60
  <Box
62
61
  sx={{
@@ -67,7 +66,7 @@ export const MRT_ToolbarBottom: FC<Props> = ({ instance }) => {
67
66
  >
68
67
  {renderToolbarBottomCustomActions ? (
69
68
  <Box sx={{ p: '0.5rem' }}>
70
- {renderToolbarBottomCustomActions({ instance })}
69
+ {renderToolbarBottomCustomActions({ table })}
71
70
  </Box>
72
71
  ) : (
73
72
  <span />
@@ -83,7 +82,7 @@ export const MRT_ToolbarBottom: FC<Props> = ({ instance }) => {
83
82
  >
84
83
  {enablePagination &&
85
84
  ['bottom', 'both'].includes(positionPagination ?? '') && (
86
- <MRT_TablePagination instance={instance} position="bottom" />
85
+ <MRT_TablePagination table={table} position="bottom" />
87
86
  )}
88
87
  </Box>
89
88
  </Box>
@@ -9,10 +9,10 @@ import { MRT_TableInstance } from '..';
9
9
  import { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';
10
10
 
11
11
  interface Props {
12
- instance: MRT_TableInstance;
12
+ table: MRT_TableInstance;
13
13
  }
14
14
 
15
- export const MRT_ToolbarInternalButtons: FC<Props> = ({ instance }) => {
15
+ export const MRT_ToolbarInternalButtons: FC<Props> = ({ table }) => {
16
16
  const {
17
17
  options: {
18
18
  enableColumnFilters,
@@ -26,7 +26,7 @@ export const MRT_ToolbarInternalButtons: FC<Props> = ({ instance }) => {
26
26
  positionGlobalFilter,
27
27
  renderToolbarInternalActions,
28
28
  },
29
- } = instance;
29
+ } = table;
30
30
 
31
31
  return (
32
32
  <Box
@@ -42,26 +42,26 @@ export const MRT_ToolbarInternalButtons: FC<Props> = ({ instance }) => {
42
42
  MRT_ToggleDensePaddingButton,
43
43
  MRT_ToggleFiltersButton,
44
44
  MRT_ToggleGlobalFilterButton,
45
- instance,
45
+ table,
46
46
  }) ?? (
47
47
  <>
48
48
  {enableGlobalFilter && positionGlobalFilter === 'right' && (
49
- <MRT_GlobalFilterTextField instance={instance} />
49
+ <MRT_GlobalFilterTextField table={table} />
50
50
  )}
51
51
  {enableFilters && enableGlobalFilter && (
52
- <MRT_ToggleGlobalFilterButton instance={instance} />
52
+ <MRT_ToggleGlobalFilterButton table={table} />
53
53
  )}
54
54
  {enableFilters && enableColumnFilters && (
55
- <MRT_ToggleFiltersButton instance={instance} />
55
+ <MRT_ToggleFiltersButton table={table} />
56
56
  )}
57
57
  {(enableHiding || enableColumnOrdering || enablePinning) && (
58
- <MRT_ShowHideColumnsButton instance={instance} />
58
+ <MRT_ShowHideColumnsButton table={table} />
59
59
  )}
60
60
  {enableDensityToggle && (
61
- <MRT_ToggleDensePaddingButton instance={instance} />
61
+ <MRT_ToggleDensePaddingButton table={table} />
62
62
  )}
63
63
  {enableFullScreenToggle && (
64
- <MRT_FullScreenToggleButton instance={instance} />
64
+ <MRT_FullScreenToggleButton table={table} />
65
65
  )}
66
66
  </>
67
67
  )}
@@ -19,10 +19,10 @@ export const commonToolbarStyles = ({ theme }: { theme: Theme }) => ({
19
19
  });
20
20
 
21
21
  interface Props {
22
- instance: MRT_TableInstance;
22
+ table: MRT_TableInstance;
23
23
  }
24
24
 
25
- export const MRT_ToolbarTop: FC<Props> = ({ instance }) => {
25
+ export const MRT_ToolbarTop: FC<Props> = ({ table }) => {
26
26
  const {
27
27
  getState,
28
28
  options: {
@@ -36,7 +36,7 @@ export const MRT_ToolbarTop: FC<Props> = ({ instance }) => {
36
36
  renderToolbarTopCustomActions,
37
37
  tableId,
38
38
  },
39
- } = instance;
39
+ } = table;
40
40
 
41
41
  const { isFullScreen, showGlobalFilter } = getState();
42
42
 
@@ -44,7 +44,7 @@ export const MRT_ToolbarTop: FC<Props> = ({ instance }) => {
44
44
 
45
45
  const toolbarProps =
46
46
  muiTableToolbarTopProps instanceof Function
47
- ? muiTableToolbarTopProps({ instance })
47
+ ? muiTableToolbarTopProps({ table })
48
48
  : muiTableToolbarTopProps;
49
49
 
50
50
  const stackAlertBanner =
@@ -69,7 +69,7 @@ export const MRT_ToolbarTop: FC<Props> = ({ instance }) => {
69
69
  {positionToolbarAlertBanner === 'top' && (
70
70
  <MRT_ToolbarAlertBanner
71
71
  stackAlertBanner={stackAlertBanner}
72
- instance={instance}
72
+ table={table}
73
73
  />
74
74
  )}
75
75
  <Box
@@ -86,24 +86,24 @@ export const MRT_ToolbarTop: FC<Props> = ({ instance }) => {
86
86
  }}
87
87
  >
88
88
  {enableGlobalFilter && positionGlobalFilter === 'left' && (
89
- <MRT_GlobalFilterTextField instance={instance} />
89
+ <MRT_GlobalFilterTextField table={table} />
90
90
  )}
91
91
 
92
- {renderToolbarTopCustomActions?.({ instance }) ?? <span />}
92
+ {renderToolbarTopCustomActions?.({ table }) ?? <span />}
93
93
  {enableToolbarInternalActions ? (
94
- <MRT_ToolbarInternalButtons instance={instance} />
94
+ <MRT_ToolbarInternalButtons table={table} />
95
95
  ) : (
96
96
  enableGlobalFilter &&
97
97
  positionGlobalFilter === 'right' && (
98
- <MRT_GlobalFilterTextField instance={instance} />
98
+ <MRT_GlobalFilterTextField table={table} />
99
99
  )
100
100
  )}
101
101
  </Box>
102
102
  {enablePagination &&
103
103
  ['top', 'both'].includes(positionPagination ?? '') && (
104
- <MRT_TablePagination instance={instance} position="top" />
104
+ <MRT_TablePagination table={table} position="top" />
105
105
  )}
106
- <MRT_LinearProgressBar alignTo="bottom" instance={instance} />
106
+ <MRT_LinearProgressBar alignTo="bottom" table={table} />
107
107
  </Toolbar>
108
108
  );
109
109
  };
package/src/utils.ts CHANGED
@@ -1,22 +1,29 @@
1
- import { ColumnDef, ColumnOrderState, Table } from '@tanstack/react-table';
1
+ import { ColumnOrderState } from '@tanstack/react-table';
2
2
  import {
3
3
  MaterialReactTableProps,
4
4
  MRT_Column,
5
5
  MRT_ColumnDef,
6
- MRT_FilterFn,
6
+ MRT_DefinedColumnDef,
7
+ MRT_FilterOption,
7
8
  } from '.';
8
9
  import { MRT_FilterFns } from './filtersFns';
10
+ import { MRT_SortingFns } from './sortingFns';
9
11
 
10
- export const getAllLeafColumnDefs = (
11
- columns: MRT_ColumnDef[],
12
- ): MRT_ColumnDef[] => {
13
- let lowestLevelColumns: MRT_ColumnDef[] = columns;
14
- let currentCols: MRT_ColumnDef[] | undefined = columns;
12
+ const getColumnId = <D extends Record<string, any> = {}>(
13
+ columnDef: MRT_ColumnDef<D>,
14
+ ): string =>
15
+ columnDef.id ?? columnDef.accessorKey?.toString?.() ?? columnDef.header;
16
+
17
+ export const getAllLeafColumnDefs = <D extends Record<string, any> = {}>(
18
+ columns: MRT_ColumnDef<D>[],
19
+ ): MRT_ColumnDef<D>[] => {
20
+ let lowestLevelColumns: MRT_ColumnDef<D>[] = columns;
21
+ let currentCols: MRT_ColumnDef<D>[] | undefined = columns;
15
22
  while (!!currentCols?.length && currentCols.some((col) => col.columns)) {
16
- const nextCols: MRT_ColumnDef[] = currentCols
23
+ const nextCols: MRT_ColumnDef<D>[] = currentCols
17
24
  .filter((col) => !!col.columns)
18
25
  .map((col) => col.columns)
19
- .flat() as MRT_ColumnDef[];
26
+ .flat() as MRT_ColumnDef<D>[];
20
27
  if (nextCols.every((col) => !col?.columns)) {
21
28
  lowestLevelColumns = [...lowestLevelColumns, ...nextCols];
22
29
  }
@@ -25,42 +32,37 @@ export const getAllLeafColumnDefs = (
25
32
  return lowestLevelColumns.filter((col) => !col.columns);
26
33
  };
27
34
 
28
- export const createGroup = <D extends Record<string, any> = {}>(
29
- table: Table<D>,
30
- column: MRT_ColumnDef<D>,
31
- currentFilterFns: { [key: string]: MRT_FilterFn },
32
- ): ColumnDef<D> =>
33
- table.createGroup({
34
- ...column,
35
- columns: column?.columns?.map?.((col) =>
36
- col.columns
37
- ? createGroup<D>(table, col, currentFilterFns)
38
- : createDataColumn(table, col, currentFilterFns),
39
- ),
40
- } as any);
41
-
42
- export const createDataColumn = <D extends Record<string, any> = {}>(
43
- table: Table<D>,
44
- column: MRT_ColumnDef<D>,
45
- currentFilterFns: { [key: string]: MRT_FilterFn },
46
- ): ColumnDef<D> => // @ts-ignore
47
- table.createDataColumn(column.id, {
48
- filterFn:
49
- currentFilterFns[column.id] instanceof Function
50
- ? currentFilterFns[column.id]
51
- : // @ts-ignore
52
- MRT_FilterFns[currentFilterFns[column.id]],
53
- ...column,
54
- }) as any;
55
-
56
- export const createDisplayColumn = <D extends Record<string, any> = {}>(
57
- table: Table<D>,
58
- column: Omit<MRT_ColumnDef<D>, 'header'> & { header?: string },
59
- ): ColumnDef<D> => table.createDisplayColumn(column as ColumnDef<D>);
35
+ export const prepareColumns = <D extends Record<string, any> = {}>(
36
+ columnDefs: MRT_ColumnDef<D>[],
37
+ currentFilterFns: { [key: string]: MRT_FilterOption },
38
+ ): MRT_DefinedColumnDef<D>[] =>
39
+ columnDefs.map((columnDef) => {
40
+ if (!columnDef.id) columnDef.id = getColumnId(columnDef);
41
+ if (process.env.NODE_ENV !== 'production' && !columnDef.id) {
42
+ console.error(
43
+ 'Column definitions must have a valid `accessorKey` or `id` property',
44
+ );
45
+ }
46
+ if (!columnDef.columnDefType) columnDef.columnDefType = 'data';
47
+ if (!!columnDef.columns?.length) {
48
+ columnDef.columnDefType = 'group';
49
+ columnDef.columns = prepareColumns(columnDef.columns, currentFilterFns);
50
+ } else if (columnDef.columnDefType === 'data') {
51
+ if (Object.keys(MRT_FilterFns).includes(currentFilterFns[columnDef.id])) {
52
+ columnDef.filterFn =
53
+ MRT_FilterFns[currentFilterFns[columnDef.id]] ?? MRT_FilterFns.fuzzy;
54
+ }
55
+ if (Object.keys(MRT_SortingFns).includes(columnDef.sortingFn as string)) {
56
+ // @ts-ignore
57
+ columnDef.sortingFn = MRT_SortingFns[columnDef.sortingFn];
58
+ }
59
+ }
60
+ return columnDef;
61
+ }) as MRT_DefinedColumnDef<D>[];
60
62
 
61
- export const reorderColumn = (
62
- movingColumn: MRT_Column,
63
- receivingColumn: MRT_Column,
63
+ export const reorderColumn = <D extends Record<string, any> = {}>(
64
+ movingColumn: MRT_Column<D>,
65
+ receivingColumn: MRT_Column<D>,
64
66
  columnOrder: ColumnOrderState,
65
67
  ): ColumnOrderState => {
66
68
  if (movingColumn.getCanPin()) {
@@ -74,8 +76,8 @@ export const reorderColumn = (
74
76
  return [...columnOrder];
75
77
  };
76
78
 
77
- export const getLeadingDisplayColumnIds = (
78
- props: MaterialReactTableProps<any>,
79
+ export const getLeadingDisplayColumnIds = <D extends Record<string, any> = {}>(
80
+ props: MaterialReactTableProps<D>,
79
81
  ) =>
80
82
  [
81
83
  ((props.positionActionsColumn === 'first' && props.enableRowActions) ||
@@ -86,17 +88,21 @@ export const getLeadingDisplayColumnIds = (
86
88
  props.enableRowNumbers && 'mrt-row-numbers',
87
89
  ].filter(Boolean) as string[];
88
90
 
89
- export const getTrailingDisplayColumnIds = (
90
- props: MaterialReactTableProps<any>,
91
+ export const getTrailingDisplayColumnIds = <D extends Record<string, any> = {}>(
92
+ props: MaterialReactTableProps<D>,
91
93
  ) => [
92
94
  ((props.positionActionsColumn === 'last' && props.enableRowActions) ||
93
95
  (props.enableEditing && props.editingMode === 'row')) &&
94
96
  'mrt-row-actions',
95
97
  ];
96
98
 
97
- export const getDefaultColumnOrderIds = (props: MaterialReactTableProps<any>) =>
99
+ export const getDefaultColumnOrderIds = <D extends Record<string, any> = {}>(
100
+ props: MaterialReactTableProps<D>,
101
+ ) =>
98
102
  [
99
103
  ...getLeadingDisplayColumnIds(props),
100
- ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map((c) => c.id),
104
+ ...getAllLeafColumnDefs(props.columns).map((columnDef) =>
105
+ getColumnId(columnDef),
106
+ ),
101
107
  ...getTrailingDisplayColumnIds(props),
102
108
  ].filter(Boolean) as string[];