material-react-table 0.18.1 → 0.19.0-alpha.1

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 (110) hide show
  1. package/dist/MaterialReactTable.d.ts +166 -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 +756 -756
  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 +757 -757
  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 +163 -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 +6 -7
  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[];