material-react-table 0.6.1 → 0.6.2
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.
- package/dist/MaterialReactTable.d.ts +13 -5
- package/dist/filtersFNs.d.ts +2 -10
- package/dist/material-react-table.cjs.development.js +145 -146
- package/dist/material-react-table.cjs.development.js.map +1 -1
- package/dist/material-react-table.cjs.production.min.js +1 -1
- package/dist/material-react-table.cjs.production.min.js.map +1 -1
- package/dist/material-react-table.esm.js +146 -147
- package/dist/material-react-table.esm.js.map +1 -1
- package/dist/useMRT.d.ts +4 -0
- package/package.json +1 -1
- package/src/MaterialReactTable.tsx +59 -47
- package/src/filtersFNs.ts +4 -15
- package/src/inputs/MRT_FilterTextField.tsx +1 -0
- package/src/useMRT.tsx +27 -24
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ChangeEvent, FC, MouseEvent, ReactNode } from 'react';
|
|
2
2
|
import { AlertProps, IconButtonProps, LinearProgressProps, SkeletonProps, TableBodyProps, TableCellProps, TableContainerProps, TableFooterProps, TableHeadProps, TablePaginationProps, TableProps, TableRowProps, TextFieldProps, ToolbarProps } from '@mui/material';
|
|
3
|
-
import { Cell, Column, ColumnInstance, FilterType, HeaderGroup, Row, TableInstance, TableOptions, TableState, UseColumnOrderInstanceProps, UseColumnOrderState, UseExpandedInstanceProps, UseExpandedOptions, UseExpandedRowProps, UseExpandedState, UseFiltersColumnOptions, UseFiltersColumnProps, UseFiltersInstanceProps, UseFiltersOptions, UseFiltersState, UseGlobalFiltersColumnOptions, UseGlobalFiltersInstanceProps, UseGlobalFiltersOptions, UseGlobalFiltersState, UseGroupByCellProps, UseGroupByColumnOptions, UseGroupByColumnProps, UseGroupByInstanceProps, UseGroupByOptions, UseGroupByRowProps, UseGroupByState, UsePaginationInstanceProps, UsePaginationOptions, UsePaginationState, UseResizeColumnsColumnOptions, UseResizeColumnsColumnProps, UseResizeColumnsOptions, UseResizeColumnsState, UseRowSelectInstanceProps, UseRowSelectOptions, UseRowSelectRowProps, UseRowSelectState, UseRowStateCellProps, UseRowStateInstanceProps, UseRowStateOptions, UseRowStateRowProps, UseRowStateState, UseSortByColumnOptions, UseSortByColumnProps, UseSortByInstanceProps, UseSortByOptions, UseSortByState, UseTableHeaderGroupProps, UseTableInstanceProps, UseTableOptions } from 'react-table';
|
|
3
|
+
import { Cell, Column, ColumnInstance, FilterType, ColumnInterface, HeaderGroup, Row, TableInstance, TableOptions, TableState, UseColumnOrderInstanceProps, UseColumnOrderState, UseExpandedInstanceProps, UseExpandedOptions, UseExpandedRowProps, UseExpandedState, UseFiltersColumnOptions, UseFiltersColumnProps, UseFiltersInstanceProps, UseFiltersOptions, UseFiltersState, UseGlobalFiltersColumnOptions, UseGlobalFiltersInstanceProps, UseGlobalFiltersOptions, UseGlobalFiltersState, UseGroupByCellProps, UseGroupByColumnOptions, UseGroupByColumnProps, UseGroupByInstanceProps, UseGroupByOptions, UseGroupByRowProps, UseGroupByState, UsePaginationInstanceProps, UsePaginationOptions, UsePaginationState, UseResizeColumnsColumnOptions, UseResizeColumnsColumnProps, UseResizeColumnsOptions, UseResizeColumnsState, UseRowSelectInstanceProps, UseRowSelectOptions, UseRowSelectRowProps, UseRowSelectState, UseRowStateCellProps, UseRowStateInstanceProps, UseRowStateOptions, UseRowStateRowProps, UseRowStateState, UseSortByColumnOptions, UseSortByColumnProps, UseSortByInstanceProps, UseSortByOptions, UseSortByState, UseTableHeaderGroupProps, UseTableInstanceProps, UseTableOptions } from 'react-table';
|
|
4
4
|
import { MRT_Localization } from './localization';
|
|
5
5
|
import { MRT_Icons } from './icons';
|
|
6
6
|
import { MRT_FILTER_TYPE } from './enums';
|
|
@@ -19,7 +19,7 @@ export declare type MRT_TableInstance<D extends {} = {}> = TableInstance<D> & Us
|
|
|
19
19
|
resetResizing: () => void;
|
|
20
20
|
getToggleAllRowsExpandedProps: () => void;
|
|
21
21
|
};
|
|
22
|
-
export declare type MRT_ColumnInterface<D extends {} = {}> = UseFiltersColumnOptions<D> & UseGlobalFiltersColumnOptions<D> & UseGroupByColumnOptions<D> & UseResizeColumnsColumnOptions<D> & UseSortByColumnOptions<D> & {
|
|
22
|
+
export declare type MRT_ColumnInterface<D extends {} = {}> = ColumnInterface<D> & UseFiltersColumnOptions<D> & UseGlobalFiltersColumnOptions<D> & UseGroupByColumnOptions<D> & UseResizeColumnsColumnOptions<D> & UseSortByColumnOptions<D> & {
|
|
23
23
|
Edit?: ({ cell, onChange, }: {
|
|
24
24
|
cell: MRT_Cell<D>;
|
|
25
25
|
onChange?: (event: ChangeEvent<HTMLInputElement>) => void;
|
|
@@ -29,6 +29,8 @@ export declare type MRT_ColumnInterface<D extends {} = {}> = UseFiltersColumnOpt
|
|
|
29
29
|
}) => ReactNode;
|
|
30
30
|
Footer?: string;
|
|
31
31
|
Header?: string;
|
|
32
|
+
accessor: string;
|
|
33
|
+
columns?: (Column<D> & MRT_ColumnInterface<D>)[];
|
|
32
34
|
disableFilters?: boolean;
|
|
33
35
|
editable?: boolean;
|
|
34
36
|
filter?: MRT_FilterType | string | FilterType<D>;
|
|
@@ -36,6 +38,7 @@ export declare type MRT_ColumnInterface<D extends {} = {}> = UseFiltersColumnOpt
|
|
|
36
38
|
text: string;
|
|
37
39
|
value: string;
|
|
38
40
|
})[];
|
|
41
|
+
filterTypes: MRT_FILTER_TYPE[];
|
|
39
42
|
muiTableBodyCellEditTextFieldProps?: TextFieldProps | ((cell: MRT_Cell<D>) => TextFieldProps);
|
|
40
43
|
muiTableBodyCellProps?: TableCellProps | ((cell: MRT_Cell<D>) => TableCellProps);
|
|
41
44
|
muiTableFooterCellProps?: TableCellProps | ((column: Column<D>) => TableCellProps);
|
|
@@ -44,7 +47,7 @@ export declare type MRT_ColumnInterface<D extends {} = {}> = UseFiltersColumnOpt
|
|
|
44
47
|
onCellEditChange?: (event: ChangeEvent<HTMLInputElement>, cell: MRT_Cell<D>) => void;
|
|
45
48
|
onFilterChange?: (event: ChangeEvent<HTMLInputElement>, filterValue: any) => void;
|
|
46
49
|
};
|
|
47
|
-
export declare type MRT_ColumnInstance<D extends {} = {}> = ColumnInstance<D> & UseFiltersColumnProps<D> & UseGroupByColumnProps<D> & UseResizeColumnsColumnProps<D> & UseSortByColumnProps<D> & {
|
|
50
|
+
export declare type MRT_ColumnInstance<D extends {} = {}> = ColumnInstance<D> & UseFiltersColumnProps<D> & UseGroupByColumnProps<D> & UseResizeColumnsColumnProps<D> & UseSortByColumnProps<D> & MRT_ColumnInterface<D> & {
|
|
48
51
|
columns?: MRT_ColumnInstance<D>[];
|
|
49
52
|
};
|
|
50
53
|
export declare type MRT_HeaderGroup<D extends {} = {}> = HeaderGroup<D> & MRT_ColumnInstance<D> & UseTableHeaderGroupProps<D> & {
|
|
@@ -53,7 +56,9 @@ export declare type MRT_HeaderGroup<D extends {} = {}> = HeaderGroup<D> & MRT_Co
|
|
|
53
56
|
export declare type MRT_Row<D extends {} = {}> = Row<D> & UseExpandedRowProps<D> & UseGroupByRowProps<D> & UseRowSelectRowProps<D> & UseRowStateRowProps<D> & {
|
|
54
57
|
cells: MRT_Cell<D>[];
|
|
55
58
|
};
|
|
56
|
-
export declare type MRT_Cell<D extends {} = {}, _V = any> = Cell<D> & UseGroupByCellProps<D> & UseRowStateCellProps<D> & {
|
|
59
|
+
export declare type MRT_Cell<D extends {} = {}, _V = any> = Cell<D> & UseGroupByCellProps<D> & UseRowStateCellProps<D> & {
|
|
60
|
+
column: MRT_ColumnInstance<D>;
|
|
61
|
+
};
|
|
57
62
|
export declare type MRT_FilterType = MRT_FILTER_TYPE | Function;
|
|
58
63
|
export declare type MRT_TableState<D extends {} = {}> = TableState<D> & UseColumnOrderState<D> & UseExpandedState<D> & UseFiltersState<D> & UseGlobalFiltersState<D> & UseGroupByState<D> & UsePaginationState<D> & UseResizeColumnsState<D> & UseRowSelectState<D> & UseRowStateState<D> & UseSortByState<D> & {
|
|
59
64
|
currentEditingRow: MRT_Row<D> | null;
|
|
@@ -79,6 +84,9 @@ export declare type MaterialReactTableProps<D extends {} = {}> = UseTableOptions
|
|
|
79
84
|
enableRowEditing?: boolean;
|
|
80
85
|
enableRowNumbers?: boolean;
|
|
81
86
|
enableSelection?: boolean;
|
|
87
|
+
filterTypes?: {
|
|
88
|
+
[key in MRT_FILTER_TYPE]: any;
|
|
89
|
+
};
|
|
82
90
|
hideTableFooter?: boolean;
|
|
83
91
|
hideTableHead?: boolean;
|
|
84
92
|
hideToolbarBottom?: boolean;
|
|
@@ -135,5 +143,5 @@ export declare type MaterialReactTableProps<D extends {} = {}> = UseTableOptions
|
|
|
135
143
|
MRT_FullScreenToggleButton: FC<IconButtonProps>;
|
|
136
144
|
}) => ReactNode;
|
|
137
145
|
};
|
|
138
|
-
declare const _default: <D extends {}>({ defaultColumn, icons, localization, positionActionsColumn, positionPagination, positionToolbarActions, positionToolbarAlertBanner, ...rest }: MaterialReactTableProps<D>) => JSX.Element;
|
|
146
|
+
declare const _default: <D extends {}>({ defaultColumn, filterTypes, globalFilter, icons, localization, positionActionsColumn, positionPagination, positionToolbarActions, positionToolbarAlertBanner, ...rest }: MaterialReactTableProps<D>) => JSX.Element;
|
|
139
147
|
export default _default;
|
package/dist/filtersFNs.d.ts
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { MRT_Row } from '.';
|
|
2
|
-
export declare const fuzzySearchFN: {
|
|
3
|
-
(rows: MRT_Row[], columnIds: string[], filterValue: string | number): MRT_Row<{}>[];
|
|
4
|
-
autoRemove(val: any): boolean;
|
|
5
|
-
};
|
|
6
2
|
export declare const fuzzyFilterFN: {
|
|
7
|
-
(rows: MRT_Row[],
|
|
3
|
+
(rows: MRT_Row[], columnIds: string[] | string, filterValue: string | number): MRT_Row<{}>[];
|
|
8
4
|
autoRemove(val: any): boolean;
|
|
9
5
|
};
|
|
10
6
|
export declare const containsFilterFN: {
|
|
@@ -61,11 +57,7 @@ export declare const defaultFilterFNs: {
|
|
|
61
57
|
autoRemove(val: any): boolean;
|
|
62
58
|
};
|
|
63
59
|
fuzzy: {
|
|
64
|
-
(rows: MRT_Row[],
|
|
65
|
-
autoRemove(val: any): boolean;
|
|
66
|
-
};
|
|
67
|
-
globalFuzzy: {
|
|
68
|
-
(rows: MRT_Row[], columnIds: string[], filterValue: string | number): MRT_Row<{}>[];
|
|
60
|
+
(rows: MRT_Row[], columnIds: string[] | string, filterValue: string | number): MRT_Row<{}>[];
|
|
69
61
|
autoRemove(val: any): boolean;
|
|
70
62
|
};
|
|
71
63
|
greaterThan: {
|
|
@@ -7,8 +7,8 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
|
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var React__default = _interopDefault(React);
|
|
9
9
|
var reactTable = require('react-table');
|
|
10
|
-
var matchSorter = require('match-sorter');
|
|
11
10
|
var material = require('@mui/material');
|
|
11
|
+
var matchSorter = require('match-sorter');
|
|
12
12
|
var ArrowRightIcon = _interopDefault(require('@mui/icons-material/ArrowRight'));
|
|
13
13
|
var CancelIcon = _interopDefault(require('@mui/icons-material/Cancel'));
|
|
14
14
|
var ClearAllIcon = _interopDefault(require('@mui/icons-material/ClearAll'));
|
|
@@ -104,144 +104,12 @@ function _objectWithoutPropertiesLoose(source, excluded) {
|
|
|
104
104
|
return target;
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
-
var fuzzySearchFN = function fuzzySearchFN(rows, columnIds, filterValue) {
|
|
108
|
-
return matchSorter.matchSorter(rows, filterValue.toString().trim(), {
|
|
109
|
-
keys: columnIds.map(function (c) {
|
|
110
|
-
return "values." + c;
|
|
111
|
-
}),
|
|
112
|
-
sorter: function sorter(rankedItems) {
|
|
113
|
-
return rankedItems;
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
fuzzySearchFN.autoRemove = function (val) {
|
|
119
|
-
return !val;
|
|
120
|
-
};
|
|
121
|
-
|
|
122
|
-
var fuzzyFilterFN = function fuzzyFilterFN(rows, id, filterValue) {
|
|
123
|
-
return matchSorter.matchSorter(rows, filterValue.toString().trim(), {
|
|
124
|
-
keys: ["values." + id],
|
|
125
|
-
sorter: function sorter(rankedItems) {
|
|
126
|
-
return rankedItems;
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
fuzzyFilterFN.autoRemove = function (val) {
|
|
132
|
-
return !val;
|
|
133
|
-
};
|
|
134
|
-
|
|
135
|
-
var containsFilterFN = function containsFilterFN(rows, id, filterValue) {
|
|
136
|
-
return rows.filter(function (row) {
|
|
137
|
-
return row.values[id].toString().toLowerCase().trim().includes(filterValue.toString().toLowerCase().trim());
|
|
138
|
-
});
|
|
139
|
-
};
|
|
140
|
-
|
|
141
|
-
containsFilterFN.autoRemove = function (val) {
|
|
142
|
-
return !val;
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
var startsWithFilterFN = function startsWithFilterFN(rows, id, filterValue) {
|
|
146
|
-
return rows.filter(function (row) {
|
|
147
|
-
return row.values[id].toString().toLowerCase().trim().startsWith(filterValue.toString().toLowerCase().trim());
|
|
148
|
-
});
|
|
149
|
-
};
|
|
150
|
-
|
|
151
|
-
startsWithFilterFN.autoRemove = function (val) {
|
|
152
|
-
return !val;
|
|
153
|
-
};
|
|
154
|
-
|
|
155
|
-
var endsWithFilterFN = function endsWithFilterFN(rows, id, filterValue) {
|
|
156
|
-
return rows.filter(function (row) {
|
|
157
|
-
return row.values[id].toString().toLowerCase().trim().endsWith(filterValue.toString().toLowerCase().trim());
|
|
158
|
-
});
|
|
159
|
-
};
|
|
160
|
-
|
|
161
|
-
endsWithFilterFN.autoRemove = function (val) {
|
|
162
|
-
return !val;
|
|
163
|
-
};
|
|
164
|
-
|
|
165
|
-
var equalsFilterFN = function equalsFilterFN(rows, id, filterValue) {
|
|
166
|
-
return rows.filter(function (row) {
|
|
167
|
-
return row.values[id].toString().toLowerCase().trim() === filterValue.toString().toLowerCase().trim();
|
|
168
|
-
});
|
|
169
|
-
};
|
|
170
|
-
|
|
171
|
-
equalsFilterFN.autoRemove = function (val) {
|
|
172
|
-
return !val;
|
|
173
|
-
};
|
|
174
|
-
|
|
175
|
-
var notEqualsFilterFN = function notEqualsFilterFN(rows, id, filterValue) {
|
|
176
|
-
return rows.filter(function (row) {
|
|
177
|
-
return row.values[id].toString().toLowerCase().trim() !== filterValue.toString().toLowerCase().trim();
|
|
178
|
-
});
|
|
179
|
-
};
|
|
180
|
-
|
|
181
|
-
notEqualsFilterFN.autoRemove = function (val) {
|
|
182
|
-
return !val;
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
var greaterThanFilterFN = function greaterThanFilterFN(rows, id, filterValue) {
|
|
186
|
-
return rows.filter(function (row) {
|
|
187
|
-
return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] > +filterValue : row.values[id].toString().toLowerCase().trim() > filterValue.toString().toLowerCase().trim();
|
|
188
|
-
});
|
|
189
|
-
};
|
|
190
|
-
|
|
191
|
-
greaterThanFilterFN.autoRemove = function (val) {
|
|
192
|
-
return !val;
|
|
193
|
-
};
|
|
194
|
-
|
|
195
|
-
var lessThanFilterFN = function lessThanFilterFN(rows, id, filterValue) {
|
|
196
|
-
return rows.filter(function (row) {
|
|
197
|
-
return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] < +filterValue : row.values[id].toString().toLowerCase().trim() < filterValue.toString().toLowerCase().trim();
|
|
198
|
-
});
|
|
199
|
-
};
|
|
200
|
-
|
|
201
|
-
lessThanFilterFN.autoRemove = function (val) {
|
|
202
|
-
return !val;
|
|
203
|
-
};
|
|
204
|
-
|
|
205
|
-
var emptyFilterFN = function emptyFilterFN(rows, id, _filterValue) {
|
|
206
|
-
return rows.filter(function (row) {
|
|
207
|
-
return !row.values[id].toString().toLowerCase().trim();
|
|
208
|
-
});
|
|
209
|
-
};
|
|
210
|
-
|
|
211
|
-
emptyFilterFN.autoRemove = function (val) {
|
|
212
|
-
return !val;
|
|
213
|
-
};
|
|
214
|
-
|
|
215
|
-
var notEmptyFilterFN = function notEmptyFilterFN(rows, id, _filterValue) {
|
|
216
|
-
return rows.filter(function (row) {
|
|
217
|
-
return !!row.values[id].toString().toLowerCase().trim();
|
|
218
|
-
});
|
|
219
|
-
};
|
|
220
|
-
|
|
221
|
-
notEmptyFilterFN.autoRemove = function (val) {
|
|
222
|
-
return !val;
|
|
223
|
-
};
|
|
224
|
-
|
|
225
|
-
var defaultFilterFNs = {
|
|
226
|
-
contains: containsFilterFN,
|
|
227
|
-
empty: emptyFilterFN,
|
|
228
|
-
endsWith: endsWithFilterFN,
|
|
229
|
-
equals: equalsFilterFN,
|
|
230
|
-
fuzzy: fuzzyFilterFN,
|
|
231
|
-
globalFuzzy: fuzzySearchFN,
|
|
232
|
-
greaterThan: greaterThanFilterFN,
|
|
233
|
-
lessThan: lessThanFilterFN,
|
|
234
|
-
notEmpty: notEmptyFilterFN,
|
|
235
|
-
notEquals: notEqualsFilterFN,
|
|
236
|
-
startsWith: startsWithFilterFN
|
|
237
|
-
};
|
|
238
|
-
|
|
239
107
|
var MaterialReactTableContext = /*#__PURE__*/function () {
|
|
240
108
|
return React.createContext({});
|
|
241
109
|
}();
|
|
242
110
|
|
|
243
111
|
var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
|
|
244
|
-
var _props$initialState$d, _props$initialState, _props$initialState$f, _props$initialState2, _props$initialState$s, _props$initialState3, _props$initialState$s2, _props$initialState4
|
|
112
|
+
var _props$initialState$d, _props$initialState, _props$initialState$f, _props$initialState2, _props$initialState$s, _props$initialState3, _props$initialState$s2, _props$initialState4;
|
|
245
113
|
|
|
246
114
|
var hooks = [reactTable.useFilters, reactTable.useGlobalFilter, reactTable.useGroupBy, reactTable.useSortBy, reactTable.useExpanded, reactTable.usePagination, reactTable.useRowSelect];
|
|
247
115
|
if (props.enableColumnResizing) hooks.unshift(reactTable.useResizeColumns, reactTable.useFlexLayout);
|
|
@@ -266,9 +134,6 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
|
|
|
266
134
|
showSearch = _useState5[0],
|
|
267
135
|
setShowSearch = _useState5[1];
|
|
268
136
|
|
|
269
|
-
var filterTypes = React.useMemo(function () {
|
|
270
|
-
return _extends({}, defaultFilterFNs, props.filterTypes);
|
|
271
|
-
}, [props.filterTypes]);
|
|
272
137
|
var findLowestLevelCols = React.useCallback(function () {
|
|
273
138
|
var lowestLevelColumns = props.columns;
|
|
274
139
|
var currentCols = props.columns;
|
|
@@ -306,17 +171,26 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
|
|
|
306
171
|
currentFilterTypes = _useState6[0],
|
|
307
172
|
setCurrentFilterTypes = _useState6[1];
|
|
308
173
|
|
|
309
|
-
var
|
|
310
|
-
return
|
|
311
|
-
column.
|
|
174
|
+
var applyFiltersToColumns = React.useCallback(function (cols) {
|
|
175
|
+
return cols.map(function (column) {
|
|
176
|
+
if (column.columns) {
|
|
177
|
+
applyFiltersToColumns(column.columns);
|
|
178
|
+
} else {
|
|
179
|
+
var _props$filterTypes;
|
|
180
|
+
|
|
181
|
+
column.filter = props == null ? void 0 : (_props$filterTypes = props.filterTypes) == null ? void 0 : _props$filterTypes[currentFilterTypes[column.accessor]];
|
|
182
|
+
}
|
|
183
|
+
|
|
312
184
|
return column;
|
|
313
185
|
});
|
|
314
|
-
}, [props.
|
|
315
|
-
var
|
|
316
|
-
|
|
186
|
+
}, [currentFilterTypes, props.filterTypes]);
|
|
187
|
+
var columns = React.useMemo(function () {
|
|
188
|
+
return applyFiltersToColumns(props.columns);
|
|
189
|
+
}, [props.columns, applyFiltersToColumns]);
|
|
190
|
+
var tableInstance = reactTable.useTable.apply(void 0, [// @ts-ignore
|
|
191
|
+
_extends({}, props, {
|
|
317
192
|
// @ts-ignore
|
|
318
|
-
|
|
319
|
-
globalFilter: (_props$globalFilter = props.globalFilter) != null ? _props$globalFilter : 'globalFuzzy',
|
|
193
|
+
columns: columns,
|
|
320
194
|
useControlledState: function useControlledState(state) {
|
|
321
195
|
return React.useMemo(function () {
|
|
322
196
|
return _extends({}, state, {
|
|
@@ -381,6 +255,124 @@ var MRT_FILTER_TYPE;
|
|
|
381
255
|
MRT_FILTER_TYPE["STARTS_WITH"] = "startsWith";
|
|
382
256
|
})(MRT_FILTER_TYPE || (MRT_FILTER_TYPE = {}));
|
|
383
257
|
|
|
258
|
+
var fuzzyFilterFN = function fuzzyFilterFN(rows, columnIds, filterValue) {
|
|
259
|
+
return matchSorter.matchSorter(rows, filterValue.toString().trim(), {
|
|
260
|
+
keys: Array.isArray(columnIds) ? columnIds.map(function (c) {
|
|
261
|
+
return "values." + c;
|
|
262
|
+
}) : ["values." + columnIds],
|
|
263
|
+
sorter: function sorter(rankedItems) {
|
|
264
|
+
return rankedItems;
|
|
265
|
+
}
|
|
266
|
+
});
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
fuzzyFilterFN.autoRemove = function (val) {
|
|
270
|
+
return !val;
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
var containsFilterFN = function containsFilterFN(rows, id, filterValue) {
|
|
274
|
+
return rows.filter(function (row) {
|
|
275
|
+
return row.values[id].toString().toLowerCase().trim().includes(filterValue.toString().toLowerCase().trim());
|
|
276
|
+
});
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
containsFilterFN.autoRemove = function (val) {
|
|
280
|
+
return !val;
|
|
281
|
+
};
|
|
282
|
+
|
|
283
|
+
var startsWithFilterFN = function startsWithFilterFN(rows, id, filterValue) {
|
|
284
|
+
return rows.filter(function (row) {
|
|
285
|
+
return row.values[id].toString().toLowerCase().trim().startsWith(filterValue.toString().toLowerCase().trim());
|
|
286
|
+
});
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
startsWithFilterFN.autoRemove = function (val) {
|
|
290
|
+
return !val;
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
var endsWithFilterFN = function endsWithFilterFN(rows, id, filterValue) {
|
|
294
|
+
return rows.filter(function (row) {
|
|
295
|
+
return row.values[id].toString().toLowerCase().trim().endsWith(filterValue.toString().toLowerCase().trim());
|
|
296
|
+
});
|
|
297
|
+
};
|
|
298
|
+
|
|
299
|
+
endsWithFilterFN.autoRemove = function (val) {
|
|
300
|
+
return !val;
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
var equalsFilterFN = function equalsFilterFN(rows, id, filterValue) {
|
|
304
|
+
return rows.filter(function (row) {
|
|
305
|
+
return row.values[id].toString().toLowerCase().trim() === filterValue.toString().toLowerCase().trim();
|
|
306
|
+
});
|
|
307
|
+
};
|
|
308
|
+
|
|
309
|
+
equalsFilterFN.autoRemove = function (val) {
|
|
310
|
+
return !val;
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
var notEqualsFilterFN = function notEqualsFilterFN(rows, id, filterValue) {
|
|
314
|
+
return rows.filter(function (row) {
|
|
315
|
+
return row.values[id].toString().toLowerCase().trim() !== filterValue.toString().toLowerCase().trim();
|
|
316
|
+
});
|
|
317
|
+
};
|
|
318
|
+
|
|
319
|
+
notEqualsFilterFN.autoRemove = function (val) {
|
|
320
|
+
return !val;
|
|
321
|
+
};
|
|
322
|
+
|
|
323
|
+
var greaterThanFilterFN = function greaterThanFilterFN(rows, id, filterValue) {
|
|
324
|
+
return rows.filter(function (row) {
|
|
325
|
+
return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] > +filterValue : row.values[id].toString().toLowerCase().trim() > filterValue.toString().toLowerCase().trim();
|
|
326
|
+
});
|
|
327
|
+
};
|
|
328
|
+
|
|
329
|
+
greaterThanFilterFN.autoRemove = function (val) {
|
|
330
|
+
return !val;
|
|
331
|
+
};
|
|
332
|
+
|
|
333
|
+
var lessThanFilterFN = function lessThanFilterFN(rows, id, filterValue) {
|
|
334
|
+
return rows.filter(function (row) {
|
|
335
|
+
return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] < +filterValue : row.values[id].toString().toLowerCase().trim() < filterValue.toString().toLowerCase().trim();
|
|
336
|
+
});
|
|
337
|
+
};
|
|
338
|
+
|
|
339
|
+
lessThanFilterFN.autoRemove = function (val) {
|
|
340
|
+
return !val;
|
|
341
|
+
};
|
|
342
|
+
|
|
343
|
+
var emptyFilterFN = function emptyFilterFN(rows, id, _filterValue) {
|
|
344
|
+
return rows.filter(function (row) {
|
|
345
|
+
return !row.values[id].toString().toLowerCase().trim();
|
|
346
|
+
});
|
|
347
|
+
};
|
|
348
|
+
|
|
349
|
+
emptyFilterFN.autoRemove = function (val) {
|
|
350
|
+
return !val;
|
|
351
|
+
};
|
|
352
|
+
|
|
353
|
+
var notEmptyFilterFN = function notEmptyFilterFN(rows, id, _filterValue) {
|
|
354
|
+
return rows.filter(function (row) {
|
|
355
|
+
return !!row.values[id].toString().toLowerCase().trim();
|
|
356
|
+
});
|
|
357
|
+
};
|
|
358
|
+
|
|
359
|
+
notEmptyFilterFN.autoRemove = function (val) {
|
|
360
|
+
return !val;
|
|
361
|
+
};
|
|
362
|
+
|
|
363
|
+
var defaultFilterFNs = {
|
|
364
|
+
contains: containsFilterFN,
|
|
365
|
+
empty: emptyFilterFN,
|
|
366
|
+
endsWith: endsWithFilterFN,
|
|
367
|
+
equals: equalsFilterFN,
|
|
368
|
+
fuzzy: fuzzyFilterFN,
|
|
369
|
+
greaterThan: greaterThanFilterFN,
|
|
370
|
+
lessThan: lessThanFilterFN,
|
|
371
|
+
notEmpty: notEmptyFilterFN,
|
|
372
|
+
notEquals: notEqualsFilterFN,
|
|
373
|
+
startsWith: startsWithFilterFN
|
|
374
|
+
};
|
|
375
|
+
|
|
384
376
|
var commonMenuItemStyles = {
|
|
385
377
|
py: '6px',
|
|
386
378
|
my: 0,
|
|
@@ -608,6 +600,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
608
600
|
arrow: true,
|
|
609
601
|
title: localization.changeFilterMode
|
|
610
602
|
}, React__default.createElement("span", null, React__default.createElement(material.IconButton, {
|
|
603
|
+
"aria-label": localization.changeFilterMode,
|
|
611
604
|
onClick: handleFilterMenuOpen,
|
|
612
605
|
size: "small",
|
|
613
606
|
sx: {
|
|
@@ -3061,13 +3054,16 @@ var MRT_Default_Icons = {
|
|
|
3061
3054
|
VisibilityOffIcon: VisibilityOffIcon
|
|
3062
3055
|
};
|
|
3063
3056
|
|
|
3064
|
-
var _excluded = ["defaultColumn", "icons", "localization", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
|
|
3057
|
+
var _excluded = ["defaultColumn", "filterTypes", "globalFilter", "icons", "localization", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
|
|
3065
3058
|
var MaterialReactTable = (function (_ref) {
|
|
3066
3059
|
var _ref$defaultColumn = _ref.defaultColumn,
|
|
3067
3060
|
defaultColumn = _ref$defaultColumn === void 0 ? {
|
|
3068
3061
|
minWidth: 50,
|
|
3069
3062
|
maxWidth: 1000
|
|
3070
3063
|
} : _ref$defaultColumn,
|
|
3064
|
+
filterTypes = _ref.filterTypes,
|
|
3065
|
+
_ref$globalFilter = _ref.globalFilter,
|
|
3066
|
+
globalFilter = _ref$globalFilter === void 0 ? 'fuzzy' : _ref$globalFilter,
|
|
3071
3067
|
icons = _ref.icons,
|
|
3072
3068
|
localization = _ref.localization,
|
|
3073
3069
|
_ref$positionActionsC = _ref.positionActionsColumn,
|
|
@@ -3082,6 +3078,9 @@ var MaterialReactTable = (function (_ref) {
|
|
|
3082
3078
|
|
|
3083
3079
|
return React__default.createElement(MaterialReactTableProvider, Object.assign({
|
|
3084
3080
|
defaultColumn: defaultColumn,
|
|
3081
|
+
// @ts-ignore
|
|
3082
|
+
filterTypes: _extends({}, defaultFilterFNs, filterTypes),
|
|
3083
|
+
globalFilter: globalFilter,
|
|
3085
3084
|
icons: _extends({}, MRT_Default_Icons, icons),
|
|
3086
3085
|
localization: _extends({}, MRT_DefaultLocalization_EN, localization),
|
|
3087
3086
|
positionActionsColumn: positionActionsColumn,
|