material-react-table 0.22.0 → 0.22.1

Sign up to get free protection for your applications and to get access to all the features.
package/src/filtersFns.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { rankItem, rankings, RankingInfo } from '@tanstack/match-sorter-utils';
2
2
  import { filterFns, Row } from '@tanstack/react-table';
3
3
 
4
- export const fuzzy = <D extends Record<string, any> = {}>(
5
- row: Row<D>,
4
+ export const fuzzy = <TData extends Record<string, any> = {}>(
5
+ row: Row<TData>,
6
6
  columnId: string,
7
7
  filterValue: string,
8
8
  addMeta: (item: RankingInfo) => void,
@@ -16,8 +16,8 @@ export const fuzzy = <D extends Record<string, any> = {}>(
16
16
 
17
17
  fuzzy.autoRemove = (val: any) => !val;
18
18
 
19
- export const contains = <D extends Record<string, any> = {}>(
20
- row: Row<D>,
19
+ export const contains = <TData extends Record<string, any> = {}>(
20
+ row: Row<TData>,
21
21
  id: string,
22
22
  filterValue: string | number,
23
23
  ) =>
@@ -30,8 +30,8 @@ export const contains = <D extends Record<string, any> = {}>(
30
30
 
31
31
  contains.autoRemove = (val: any) => !val;
32
32
 
33
- export const startsWith = <D extends Record<string, any> = {}>(
34
- row: Row<D>,
33
+ export const startsWith = <TData extends Record<string, any> = {}>(
34
+ row: Row<TData>,
35
35
  id: string,
36
36
  filterValue: string | number,
37
37
  ) =>
@@ -44,8 +44,8 @@ export const startsWith = <D extends Record<string, any> = {}>(
44
44
 
45
45
  startsWith.autoRemove = (val: any) => !val;
46
46
 
47
- export const endsWith = <D extends Record<string, any> = {}>(
48
- row: Row<D>,
47
+ export const endsWith = <TData extends Record<string, any> = {}>(
48
+ row: Row<TData>,
49
49
  id: string,
50
50
  filterValue: string | number,
51
51
  ) =>
@@ -58,8 +58,8 @@ export const endsWith = <D extends Record<string, any> = {}>(
58
58
 
59
59
  endsWith.autoRemove = (val: any) => !val;
60
60
 
61
- export const equals = <D extends Record<string, any> = {}>(
62
- row: Row<D>,
61
+ export const equals = <TData extends Record<string, any> = {}>(
62
+ row: Row<TData>,
63
63
  id: string,
64
64
  filterValue: string | number,
65
65
  ) =>
@@ -68,8 +68,8 @@ export const equals = <D extends Record<string, any> = {}>(
68
68
 
69
69
  equals.autoRemove = (val: any) => !val;
70
70
 
71
- export const notEquals = <D extends Record<string, any> = {}>(
72
- row: Row<D>,
71
+ export const notEquals = <TData extends Record<string, any> = {}>(
72
+ row: Row<TData>,
73
73
  id: string,
74
74
  filterValue: string | number,
75
75
  ) =>
@@ -78,8 +78,8 @@ export const notEquals = <D extends Record<string, any> = {}>(
78
78
 
79
79
  notEquals.autoRemove = (val: any) => !val;
80
80
 
81
- export const greaterThan = <D extends Record<string, any> = {}>(
82
- row: Row<D>,
81
+ export const greaterThan = <TData extends Record<string, any> = {}>(
82
+ row: Row<TData>,
83
83
  id: string,
84
84
  filterValue: string | number,
85
85
  ) =>
@@ -90,8 +90,8 @@ export const greaterThan = <D extends Record<string, any> = {}>(
90
90
 
91
91
  greaterThan.autoRemove = (val: any) => !val;
92
92
 
93
- export const lessThan = <D extends Record<string, any> = {}>(
94
- row: Row<D>,
93
+ export const lessThan = <TData extends Record<string, any> = {}>(
94
+ row: Row<TData>,
95
95
  id: string,
96
96
  filterValue: string | number,
97
97
  ) =>
@@ -102,8 +102,8 @@ export const lessThan = <D extends Record<string, any> = {}>(
102
102
 
103
103
  lessThan.autoRemove = (val: any) => !val;
104
104
 
105
- export const between = <D extends Record<string, any> = {}>(
106
- row: Row<D>,
105
+ export const between = <TData extends Record<string, any> = {}>(
106
+ row: Row<TData>,
107
107
  id: string,
108
108
  filterValues: [string | number, string | number],
109
109
  ) =>
@@ -117,16 +117,16 @@ export const between = <D extends Record<string, any> = {}>(
117
117
 
118
118
  between.autoRemove = (val: any) => !val;
119
119
 
120
- export const empty = <D extends Record<string, any> = {}>(
121
- row: Row<D>,
120
+ export const empty = <TData extends Record<string, any> = {}>(
121
+ row: Row<TData>,
122
122
  id: string,
123
123
  _filterValue: string | number,
124
124
  ) => !row.getValue(id).toString().trim();
125
125
 
126
126
  empty.autoRemove = (val: any) => !val;
127
127
 
128
- export const notEmpty = <D extends Record<string, any> = {}>(
129
- row: Row<D>,
128
+ export const notEmpty = <TData extends Record<string, any> = {}>(
129
+ row: Row<TData>,
130
130
  id: string,
131
131
  _filterValue: string | number,
132
132
  ) => !!row.getValue(id).toString().trim();
package/src/sortingFns.ts CHANGED
@@ -2,9 +2,9 @@ import { compareItems, RankingInfo } from '@tanstack/match-sorter-utils';
2
2
  import { Row, sortingFns } from '@tanstack/react-table';
3
3
  import { MRT_Row } from '.';
4
4
 
5
- const fuzzy = <D extends Record<string, any> = {}>(
6
- rowA: Row<D>,
7
- rowB: Row<D>,
5
+ const fuzzy = <TData extends Record<string, any> = {}>(
6
+ rowA: Row<TData>,
7
+ rowB: Row<TData>,
8
8
  columnId: string,
9
9
  ) => {
10
10
  let dir = 0;
@@ -25,9 +25,9 @@ export const MRT_SortingFns = {
25
25
  fuzzy,
26
26
  };
27
27
 
28
- export const rankGlobalFuzzy = <D extends Record<string, any> = {}>(
29
- rowA: MRT_Row<D>,
30
- rowB: MRT_Row<D>,
28
+ export const rankGlobalFuzzy = <TData extends Record<string, any> = {}>(
29
+ rowA: MRT_Row<TData>,
30
+ rowB: MRT_Row<TData>,
31
31
  ) =>
32
32
  Math.max(...Object.values(rowB.columnFiltersMeta).map((v: any) => v.rank)) -
33
33
  Math.max(...Object.values(rowA.columnFiltersMeta).map((v: any) => v.rank));
@@ -32,8 +32,8 @@ import {
32
32
  } from '../utils';
33
33
  import { MRT_FilterFns } from '../filtersFns';
34
34
 
35
- export const MRT_TableRoot = <D extends Record<string, any> = {}>(
36
- props: MaterialReactTableProps<D>,
35
+ export const MRT_TableRoot = <TData extends Record<string, any> = {}>(
36
+ props: MaterialReactTableProps<TData>,
37
37
  ) => {
38
38
  const [tableId, setIdPrefix] = useState(props.tableId);
39
39
  useEffect(
@@ -42,7 +42,7 @@ export const MRT_TableRoot = <D extends Record<string, any> = {}>(
42
42
  [props.tableId],
43
43
  );
44
44
 
45
- const initialState: Partial<MRT_TableState<D>> = useMemo(() => {
45
+ const initialState: Partial<MRT_TableState<TData>> = useMemo(() => {
46
46
  const initState = props.initialState ?? {};
47
47
  initState.columnOrder =
48
48
  initState.columnOrder ?? getDefaultColumnOrderIds(props);
@@ -53,10 +53,9 @@ export const MRT_TableRoot = <D extends Record<string, any> = {}>(
53
53
  initialState.columnOrder ?? [],
54
54
  );
55
55
  const [currentEditingCell, setCurrentEditingCell] =
56
- useState<MRT_Cell<D> | null>(initialState?.currentEditingCell ?? null);
57
- const [currentEditingRow, setCurrentEditingRow] = useState<MRT_Row<D> | null>(
58
- initialState?.currentEditingRow ?? null,
59
- );
56
+ useState<MRT_Cell<TData> | null>(initialState?.currentEditingCell ?? null);
57
+ const [currentEditingRow, setCurrentEditingRow] =
58
+ useState<MRT_Row<TData> | null>(initialState?.currentEditingRow ?? null);
60
59
  const [density, setDensity] = useState(
61
60
  initialState?.density ?? 'comfortable',
62
61
  );
@@ -78,7 +77,7 @@ export const MRT_TableRoot = <D extends Record<string, any> = {}>(
78
77
  }>(() =>
79
78
  Object.assign(
80
79
  {},
81
- ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef<D>[]).map(
80
+ ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef<TData>[]).map(
82
81
  (col) => ({
83
82
  [col.id?.toString() ?? col.accessorKey?.toString() ?? '']:
84
83
  col.filterFn instanceof Function
@@ -158,7 +157,7 @@ export const MRT_TableRoot = <D extends Record<string, any> = {}>(
158
157
  muiTableHeadCellProps: props.muiTableHeadCellProps,
159
158
  size: 60,
160
159
  },
161
- ] as MRT_ColumnDef<D>[]
160
+ ] as MRT_ColumnDef<TData>[]
162
161
  ).filter(Boolean),
163
162
  [
164
163
  columnOrder,
@@ -184,7 +183,7 @@ export const MRT_TableRoot = <D extends Record<string, any> = {}>(
184
183
  [currentFilterFns, displayColumns, props.columns],
185
184
  );
186
185
 
187
- const data: D[] = useMemo(
186
+ const data: TData[] = useMemo(
188
187
  () =>
189
188
  (props.state?.isLoading || props.state?.showSkeletons) &&
190
189
  !props.data.length
package/src/utils.ts CHANGED
@@ -9,21 +9,21 @@ import {
9
9
  import { MRT_FilterFns } from './filtersFns';
10
10
  import { MRT_SortingFns } from './sortingFns';
11
11
 
12
- const getColumnId = <D extends Record<string, any> = {}>(
13
- columnDef: MRT_ColumnDef<D>,
12
+ const getColumnId = <TData extends Record<string, any> = {}>(
13
+ columnDef: MRT_ColumnDef<TData>,
14
14
  ): string =>
15
15
  columnDef.id ?? columnDef.accessorKey?.toString?.() ?? columnDef.header;
16
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;
17
+ export const getAllLeafColumnDefs = <TData extends Record<string, any> = {}>(
18
+ columns: MRT_ColumnDef<TData>[],
19
+ ): MRT_ColumnDef<TData>[] => {
20
+ let lowestLevelColumns: MRT_ColumnDef<TData>[] = columns;
21
+ let currentCols: MRT_ColumnDef<TData>[] | undefined = columns;
22
22
  while (!!currentCols?.length && currentCols.some((col) => col.columns)) {
23
- const nextCols: MRT_ColumnDef<D>[] = currentCols
23
+ const nextCols: MRT_ColumnDef<TData>[] = currentCols
24
24
  .filter((col) => !!col.columns)
25
25
  .map((col) => col.columns)
26
- .flat() as MRT_ColumnDef<D>[];
26
+ .flat() as MRT_ColumnDef<TData>[];
27
27
  if (nextCols.every((col) => !col?.columns)) {
28
28
  lowestLevelColumns = [...lowestLevelColumns, ...nextCols];
29
29
  }
@@ -32,10 +32,10 @@ export const getAllLeafColumnDefs = <D extends Record<string, any> = {}>(
32
32
  return lowestLevelColumns.filter((col) => !col.columns);
33
33
  };
34
34
 
35
- export const prepareColumns = <D extends Record<string, any> = {}>(
36
- columnDefs: MRT_ColumnDef<D>[],
35
+ export const prepareColumns = <TData extends Record<string, any> = {}>(
36
+ columnDefs: MRT_ColumnDef<TData>[],
37
37
  currentFilterFns: { [key: string]: MRT_FilterOption },
38
- ): MRT_DefinedColumnDef<D>[] =>
38
+ ): MRT_DefinedColumnDef<TData>[] =>
39
39
  columnDefs.map((columnDef) => {
40
40
  if (!columnDef.id) columnDef.id = getColumnId(columnDef);
41
41
  if (process.env.NODE_ENV !== 'production' && !columnDef.id) {
@@ -58,11 +58,11 @@ export const prepareColumns = <D extends Record<string, any> = {}>(
58
58
  }
59
59
  }
60
60
  return columnDef;
61
- }) as MRT_DefinedColumnDef<D>[];
61
+ }) as MRT_DefinedColumnDef<TData>[];
62
62
 
63
- export const reorderColumn = <D extends Record<string, any> = {}>(
64
- movingColumn: MRT_Column<D>,
65
- receivingColumn: MRT_Column<D>,
63
+ export const reorderColumn = <TData extends Record<string, any> = {}>(
64
+ movingColumn: MRT_Column<TData>,
65
+ receivingColumn: MRT_Column<TData>,
66
66
  columnOrder: ColumnOrderState,
67
67
  ): ColumnOrderState => {
68
68
  if (movingColumn.getCanPin()) {
@@ -76,8 +76,10 @@ export const reorderColumn = <D extends Record<string, any> = {}>(
76
76
  return [...columnOrder];
77
77
  };
78
78
 
79
- export const getLeadingDisplayColumnIds = <D extends Record<string, any> = {}>(
80
- props: MaterialReactTableProps<D>,
79
+ export const getLeadingDisplayColumnIds = <
80
+ TData extends Record<string, any> = {},
81
+ >(
82
+ props: MaterialReactTableProps<TData>,
81
83
  ) =>
82
84
  [
83
85
  ((props.positionActionsColumn === 'first' && props.enableRowActions) ||
@@ -88,16 +90,20 @@ export const getLeadingDisplayColumnIds = <D extends Record<string, any> = {}>(
88
90
  props.enableRowNumbers && 'mrt-row-numbers',
89
91
  ].filter(Boolean) as string[];
90
92
 
91
- export const getTrailingDisplayColumnIds = <D extends Record<string, any> = {}>(
92
- props: MaterialReactTableProps<D>,
93
+ export const getTrailingDisplayColumnIds = <
94
+ TData extends Record<string, any> = {},
95
+ >(
96
+ props: MaterialReactTableProps<TData>,
93
97
  ) => [
94
98
  ((props.positionActionsColumn === 'last' && props.enableRowActions) ||
95
99
  (props.enableEditing && props.editingMode === 'row')) &&
96
100
  'mrt-row-actions',
97
101
  ];
98
102
 
99
- export const getDefaultColumnOrderIds = <D extends Record<string, any> = {}>(
100
- props: MaterialReactTableProps<D>,
103
+ export const getDefaultColumnOrderIds = <
104
+ TData extends Record<string, any> = {},
105
+ >(
106
+ props: MaterialReactTableProps<TData>,
101
107
  ) =>
102
108
  [
103
109
  ...getLeadingDisplayColumnIds(props),