material-react-table 0.6.1 → 0.6.4
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 +18 -10
- package/dist/filtersFNs.d.ts +12 -20
- package/dist/material-react-table.cjs.development.js +249 -228
- 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 +250 -229
- package/dist/material-react-table.esm.js.map +1 -1
- package/dist/toolbar/MRT_LinearProgressBar.d.ts +5 -0
- package/dist/toolbar/MRT_ToolbarTop.d.ts +11 -0
- package/dist/useMRT.d.ts +5 -1
- package/dist/utils.d.ts +2 -0
- package/package.json +1 -1
- package/src/MaterialReactTable.tsx +67 -53
- package/src/body/MRT_TableBody.tsx +3 -1
- package/src/filtersFNs.ts +34 -45
- package/src/inputs/MRT_FilterTextField.tsx +25 -12
- package/src/menus/MRT_ColumnActionMenu.tsx +5 -4
- package/src/menus/MRT_FilterTypeMenu.tsx +20 -20
- package/src/table/MRT_TableContainer.tsx +4 -28
- package/src/toolbar/MRT_LinearProgressBar.tsx +25 -0
- package/src/toolbar/MRT_TablePagination.tsx +1 -1
- package/src/toolbar/MRT_ToolbarBottom.tsx +18 -21
- package/src/toolbar/MRT_ToolbarTop.tsx +21 -10
- package/src/useMRT.tsx +48 -44
- package/src/utils.ts +17 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import React, { useState,
|
|
1
|
+
import React, { useState, useCallback, useMemo, useContext, createContext, Fragment, useEffect } from 'react';
|
|
2
2
|
import { useTable, useFilters, useGlobalFilter, useGroupBy, useSortBy, useExpanded, usePagination, useRowSelect, useResizeColumns, useFlexLayout, useAsyncDebounce } from 'react-table';
|
|
3
|
+
import { Menu, MenuItem, TextField, InputAdornment, Tooltip, IconButton, Chip, FormControlLabel, Switch, Box, Button, Divider, TableCell, TableSortLabel, Collapse, Skeleton, Checkbox, TableRow, TableHead, alpha, TableBody, TableFooter, Table, TablePagination, useMediaQuery, Alert, LinearProgress, Toolbar, TableContainer, Paper } from '@mui/material';
|
|
3
4
|
import { matchSorter } from 'match-sorter';
|
|
4
|
-
import { Menu, MenuItem, TextField, InputAdornment, Tooltip, IconButton, Chip, FormControlLabel, Switch, Box, Button, Divider, TableCell, TableSortLabel, Collapse, Skeleton, Checkbox, TableRow, TableHead, alpha, TableBody, TableFooter, Table, TablePagination, useMediaQuery, Alert, Toolbar, TableContainer, Paper, LinearProgress } from '@mui/material';
|
|
5
5
|
import ArrowRightIcon from '@mui/icons-material/ArrowRight';
|
|
6
6
|
import CancelIcon from '@mui/icons-material/Cancel';
|
|
7
7
|
import ClearAllIcon from '@mui/icons-material/ClearAll';
|
|
@@ -97,144 +97,41 @@ function _objectWithoutPropertiesLoose(source, excluded) {
|
|
|
97
97
|
return target;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
var
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
return "values." + c;
|
|
104
|
-
}),
|
|
105
|
-
sorter: function sorter(rankedItems) {
|
|
106
|
-
return rankedItems;
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
fuzzySearchFN.autoRemove = function (val) {
|
|
112
|
-
return !val;
|
|
113
|
-
};
|
|
114
|
-
|
|
115
|
-
var fuzzyFilterFN = function fuzzyFilterFN(rows, id, filterValue) {
|
|
116
|
-
return matchSorter(rows, filterValue.toString().trim(), {
|
|
117
|
-
keys: ["values." + id],
|
|
118
|
-
sorter: function sorter(rankedItems) {
|
|
119
|
-
return rankedItems;
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
fuzzyFilterFN.autoRemove = function (val) {
|
|
125
|
-
return !val;
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
var containsFilterFN = function containsFilterFN(rows, id, filterValue) {
|
|
129
|
-
return rows.filter(function (row) {
|
|
130
|
-
return row.values[id].toString().toLowerCase().trim().includes(filterValue.toString().toLowerCase().trim());
|
|
131
|
-
});
|
|
132
|
-
};
|
|
133
|
-
|
|
134
|
-
containsFilterFN.autoRemove = function (val) {
|
|
135
|
-
return !val;
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
var startsWithFilterFN = function startsWithFilterFN(rows, id, filterValue) {
|
|
139
|
-
return rows.filter(function (row) {
|
|
140
|
-
return row.values[id].toString().toLowerCase().trim().startsWith(filterValue.toString().toLowerCase().trim());
|
|
141
|
-
});
|
|
142
|
-
};
|
|
143
|
-
|
|
144
|
-
startsWithFilterFN.autoRemove = function (val) {
|
|
145
|
-
return !val;
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
var endsWithFilterFN = function endsWithFilterFN(rows, id, filterValue) {
|
|
149
|
-
return rows.filter(function (row) {
|
|
150
|
-
return row.values[id].toString().toLowerCase().trim().endsWith(filterValue.toString().toLowerCase().trim());
|
|
151
|
-
});
|
|
152
|
-
};
|
|
153
|
-
|
|
154
|
-
endsWithFilterFN.autoRemove = function (val) {
|
|
155
|
-
return !val;
|
|
156
|
-
};
|
|
157
|
-
|
|
158
|
-
var equalsFilterFN = function equalsFilterFN(rows, id, filterValue) {
|
|
159
|
-
return rows.filter(function (row) {
|
|
160
|
-
return row.values[id].toString().toLowerCase().trim() === filterValue.toString().toLowerCase().trim();
|
|
161
|
-
});
|
|
162
|
-
};
|
|
163
|
-
|
|
164
|
-
equalsFilterFN.autoRemove = function (val) {
|
|
165
|
-
return !val;
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
var notEqualsFilterFN = function notEqualsFilterFN(rows, id, filterValue) {
|
|
169
|
-
return rows.filter(function (row) {
|
|
170
|
-
return row.values[id].toString().toLowerCase().trim() !== filterValue.toString().toLowerCase().trim();
|
|
171
|
-
});
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
notEqualsFilterFN.autoRemove = function (val) {
|
|
175
|
-
return !val;
|
|
176
|
-
};
|
|
100
|
+
var findLowestLevelCols = function findLowestLevelCols(columns) {
|
|
101
|
+
var lowestLevelColumns = columns;
|
|
102
|
+
var currentCols = columns;
|
|
177
103
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
};
|
|
104
|
+
while (!!((_currentCols = currentCols) != null && _currentCols.length) && currentCols.some(function (col) {
|
|
105
|
+
return col.columns;
|
|
106
|
+
})) {
|
|
107
|
+
var _currentCols;
|
|
183
108
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
return rows.filter(function (row) {
|
|
190
|
-
return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] < +filterValue : row.values[id].toString().toLowerCase().trim() < filterValue.toString().toLowerCase().trim();
|
|
191
|
-
});
|
|
192
|
-
};
|
|
193
|
-
|
|
194
|
-
lessThanFilterFN.autoRemove = function (val) {
|
|
195
|
-
return !val;
|
|
196
|
-
};
|
|
109
|
+
var nextCols = currentCols.filter(function (col) {
|
|
110
|
+
return !!col.columns;
|
|
111
|
+
}).map(function (col) {
|
|
112
|
+
return col.columns;
|
|
113
|
+
}).flat();
|
|
197
114
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
}
|
|
115
|
+
if (nextCols.every(function (col) {
|
|
116
|
+
return !(col != null && col.columns);
|
|
117
|
+
})) {
|
|
118
|
+
lowestLevelColumns = [].concat(lowestLevelColumns, nextCols);
|
|
119
|
+
}
|
|
203
120
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
};
|
|
121
|
+
currentCols = nextCols;
|
|
122
|
+
}
|
|
207
123
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
return !!row.values[id].toString().toLowerCase().trim();
|
|
124
|
+
return lowestLevelColumns.filter(function (col) {
|
|
125
|
+
return !col.columns;
|
|
211
126
|
});
|
|
212
127
|
};
|
|
213
128
|
|
|
214
|
-
notEmptyFilterFN.autoRemove = function (val) {
|
|
215
|
-
return !val;
|
|
216
|
-
};
|
|
217
|
-
|
|
218
|
-
var defaultFilterFNs = {
|
|
219
|
-
contains: containsFilterFN,
|
|
220
|
-
empty: emptyFilterFN,
|
|
221
|
-
endsWith: endsWithFilterFN,
|
|
222
|
-
equals: equalsFilterFN,
|
|
223
|
-
fuzzy: fuzzyFilterFN,
|
|
224
|
-
globalFuzzy: fuzzySearchFN,
|
|
225
|
-
greaterThan: greaterThanFilterFN,
|
|
226
|
-
lessThan: lessThanFilterFN,
|
|
227
|
-
notEmpty: notEmptyFilterFN,
|
|
228
|
-
notEquals: notEqualsFilterFN,
|
|
229
|
-
startsWith: startsWithFilterFN
|
|
230
|
-
};
|
|
231
|
-
|
|
232
129
|
var MaterialReactTableContext = /*#__PURE__*/function () {
|
|
233
130
|
return createContext({});
|
|
234
131
|
}();
|
|
235
132
|
|
|
236
133
|
var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
|
|
237
|
-
var _props$initialState$d, _props$initialState, _props$initialState$f, _props$initialState2, _props$initialState$s, _props$initialState3, _props$initialState$s2, _props$initialState4
|
|
134
|
+
var _props$initialState$d, _props$initialState, _props$initialState$f, _props$initialState2, _props$initialState$s, _props$initialState3, _props$initialState$s2, _props$initialState4;
|
|
238
135
|
|
|
239
136
|
var hooks = [useFilters, useGlobalFilter, useGroupBy, useSortBy, useExpanded, usePagination, useRowSelect];
|
|
240
137
|
if (props.enableColumnResizing) hooks.unshift(useResizeColumns, useFlexLayout);
|
|
@@ -259,38 +156,8 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
|
|
|
259
156
|
showSearch = _useState5[0],
|
|
260
157
|
setShowSearch = _useState5[1];
|
|
261
158
|
|
|
262
|
-
var filterTypes = useMemo(function () {
|
|
263
|
-
return _extends({}, defaultFilterFNs, props.filterTypes);
|
|
264
|
-
}, [props.filterTypes]);
|
|
265
|
-
var findLowestLevelCols = useCallback(function () {
|
|
266
|
-
var lowestLevelColumns = props.columns;
|
|
267
|
-
var currentCols = props.columns;
|
|
268
|
-
|
|
269
|
-
while (!!currentCols.length && currentCols.some(function (col) {
|
|
270
|
-
return col.columns;
|
|
271
|
-
})) {
|
|
272
|
-
var nextCols = currentCols.filter(function (col) {
|
|
273
|
-
return !!col.columns;
|
|
274
|
-
}).map(function (col) {
|
|
275
|
-
return col.columns;
|
|
276
|
-
}).flat();
|
|
277
|
-
|
|
278
|
-
if (nextCols.every(function (col) {
|
|
279
|
-
return !col.columns;
|
|
280
|
-
})) {
|
|
281
|
-
lowestLevelColumns = [].concat(lowestLevelColumns, nextCols);
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
currentCols = nextCols;
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
return lowestLevelColumns.filter(function (col) {
|
|
288
|
-
return !col.columns;
|
|
289
|
-
});
|
|
290
|
-
}, [props.columns]);
|
|
291
|
-
|
|
292
159
|
var _useState6 = useState(function () {
|
|
293
|
-
return Object.assign.apply(Object, [{}].concat(findLowestLevelCols().map(function (c) {
|
|
160
|
+
return Object.assign.apply(Object, [{}].concat(findLowestLevelCols(props.columns).map(function (c) {
|
|
294
161
|
var _ref, _c$filter, _props$initialState5, _props$initialState5$, _ref2;
|
|
295
162
|
|
|
296
163
|
return _ref2 = {}, _ref2[c.accessor] = (_ref = (_c$filter = c.filter) != null ? _c$filter : props == null ? void 0 : (_props$initialState5 = props.initialState) == null ? void 0 : (_props$initialState5$ = _props$initialState5.filters) == null ? void 0 : _props$initialState5$[c.accessor]) != null ? _ref : !!c.filterSelectOptions ? 'equals' : 'fuzzy', _ref2;
|
|
@@ -299,17 +166,36 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
|
|
|
299
166
|
currentFilterTypes = _useState6[0],
|
|
300
167
|
setCurrentFilterTypes = _useState6[1];
|
|
301
168
|
|
|
302
|
-
var
|
|
303
|
-
return
|
|
304
|
-
column.
|
|
169
|
+
var applyFiltersToColumns = useCallback(function (cols) {
|
|
170
|
+
return cols.map(function (column) {
|
|
171
|
+
if (column.columns) {
|
|
172
|
+
applyFiltersToColumns(column.columns);
|
|
173
|
+
} else {
|
|
174
|
+
var _props$filterTypes;
|
|
175
|
+
|
|
176
|
+
column.filter = props == null ? void 0 : (_props$filterTypes = props.filterTypes) == null ? void 0 : _props$filterTypes[currentFilterTypes[column.accessor]];
|
|
177
|
+
}
|
|
178
|
+
|
|
305
179
|
return column;
|
|
306
180
|
});
|
|
307
|
-
}, [props.
|
|
308
|
-
var
|
|
309
|
-
|
|
181
|
+
}, [currentFilterTypes, props.filterTypes]);
|
|
182
|
+
var columns = useMemo(function () {
|
|
183
|
+
return applyFiltersToColumns(props.columns);
|
|
184
|
+
}, [props.columns, applyFiltersToColumns]);
|
|
185
|
+
var data = useMemo(function () {
|
|
186
|
+
return !props.isLoading || !!props.data.length ? props.data : [].concat(Array(10).fill(null)).map(function (_) {
|
|
187
|
+
return Object.assign.apply(Object, [{}].concat(findLowestLevelCols(props.columns).map(function (c) {
|
|
188
|
+
var _ref3;
|
|
189
|
+
|
|
190
|
+
return _ref3 = {}, _ref3[c.accessor] = null, _ref3;
|
|
191
|
+
})));
|
|
192
|
+
});
|
|
193
|
+
}, [props.data, props.isLoading]);
|
|
194
|
+
var tableInstance = useTable.apply(void 0, [// @ts-ignore
|
|
195
|
+
_extends({}, props, {
|
|
310
196
|
// @ts-ignore
|
|
311
|
-
|
|
312
|
-
|
|
197
|
+
columns: columns,
|
|
198
|
+
data: data,
|
|
313
199
|
useControlledState: function useControlledState(state) {
|
|
314
200
|
return useMemo(function () {
|
|
315
201
|
return _extends({}, state, {
|
|
@@ -374,6 +260,124 @@ var MRT_FILTER_TYPE;
|
|
|
374
260
|
MRT_FILTER_TYPE["STARTS_WITH"] = "startsWith";
|
|
375
261
|
})(MRT_FILTER_TYPE || (MRT_FILTER_TYPE = {}));
|
|
376
262
|
|
|
263
|
+
var fuzzy = function fuzzy(rows, columnIds, filterValue) {
|
|
264
|
+
return matchSorter(rows, filterValue.toString().trim(), {
|
|
265
|
+
keys: Array.isArray(columnIds) ? columnIds.map(function (c) {
|
|
266
|
+
return "values." + c;
|
|
267
|
+
}) : ["values." + columnIds],
|
|
268
|
+
sorter: function sorter(rankedItems) {
|
|
269
|
+
return rankedItems;
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
};
|
|
273
|
+
|
|
274
|
+
fuzzy.autoRemove = function (val) {
|
|
275
|
+
return !val;
|
|
276
|
+
};
|
|
277
|
+
|
|
278
|
+
var contains = function contains(rows, id, filterValue) {
|
|
279
|
+
return rows.filter(function (row) {
|
|
280
|
+
return row.values[id].toString().toLowerCase().trim().includes(filterValue.toString().toLowerCase().trim());
|
|
281
|
+
});
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
contains.autoRemove = function (val) {
|
|
285
|
+
return !val;
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
var startsWith = function startsWith(rows, id, filterValue) {
|
|
289
|
+
return rows.filter(function (row) {
|
|
290
|
+
return row.values[id].toString().toLowerCase().trim().startsWith(filterValue.toString().toLowerCase().trim());
|
|
291
|
+
});
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
startsWith.autoRemove = function (val) {
|
|
295
|
+
return !val;
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
var endsWith = function endsWith(rows, id, filterValue) {
|
|
299
|
+
return rows.filter(function (row) {
|
|
300
|
+
return row.values[id].toString().toLowerCase().trim().endsWith(filterValue.toString().toLowerCase().trim());
|
|
301
|
+
});
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
endsWith.autoRemove = function (val) {
|
|
305
|
+
return !val;
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
var equals = function equals(rows, id, filterValue) {
|
|
309
|
+
return rows.filter(function (row) {
|
|
310
|
+
return row.values[id].toString().toLowerCase().trim() === filterValue.toString().toLowerCase().trim();
|
|
311
|
+
});
|
|
312
|
+
};
|
|
313
|
+
|
|
314
|
+
equals.autoRemove = function (val) {
|
|
315
|
+
return !val;
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
var notEquals = function notEquals(rows, id, filterValue) {
|
|
319
|
+
return rows.filter(function (row) {
|
|
320
|
+
return row.values[id].toString().toLowerCase().trim() !== filterValue.toString().toLowerCase().trim();
|
|
321
|
+
});
|
|
322
|
+
};
|
|
323
|
+
|
|
324
|
+
notEquals.autoRemove = function (val) {
|
|
325
|
+
return !val;
|
|
326
|
+
};
|
|
327
|
+
|
|
328
|
+
var greaterThan = function greaterThan(rows, id, filterValue) {
|
|
329
|
+
return rows.filter(function (row) {
|
|
330
|
+
return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] > +filterValue : row.values[id].toString().toLowerCase().trim() > filterValue.toString().toLowerCase().trim();
|
|
331
|
+
});
|
|
332
|
+
};
|
|
333
|
+
|
|
334
|
+
greaterThan.autoRemove = function (val) {
|
|
335
|
+
return !val;
|
|
336
|
+
};
|
|
337
|
+
|
|
338
|
+
var lessThan = function lessThan(rows, id, filterValue) {
|
|
339
|
+
return rows.filter(function (row) {
|
|
340
|
+
return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] < +filterValue : row.values[id].toString().toLowerCase().trim() < filterValue.toString().toLowerCase().trim();
|
|
341
|
+
});
|
|
342
|
+
};
|
|
343
|
+
|
|
344
|
+
lessThan.autoRemove = function (val) {
|
|
345
|
+
return !val;
|
|
346
|
+
};
|
|
347
|
+
|
|
348
|
+
var empty = function empty(rows, id, _filterValue) {
|
|
349
|
+
return rows.filter(function (row) {
|
|
350
|
+
return !row.values[id].toString().toLowerCase().trim();
|
|
351
|
+
});
|
|
352
|
+
};
|
|
353
|
+
|
|
354
|
+
empty.autoRemove = function (val) {
|
|
355
|
+
return !val;
|
|
356
|
+
};
|
|
357
|
+
|
|
358
|
+
var notEmpty = function notEmpty(rows, id, _filterValue) {
|
|
359
|
+
return rows.filter(function (row) {
|
|
360
|
+
return !!row.values[id].toString().toLowerCase().trim();
|
|
361
|
+
});
|
|
362
|
+
};
|
|
363
|
+
|
|
364
|
+
notEmpty.autoRemove = function (val) {
|
|
365
|
+
return !val;
|
|
366
|
+
};
|
|
367
|
+
|
|
368
|
+
var defaultFilterFNs = {
|
|
369
|
+
contains: contains,
|
|
370
|
+
empty: empty,
|
|
371
|
+
endsWith: endsWith,
|
|
372
|
+
equals: equals,
|
|
373
|
+
fuzzy: fuzzy,
|
|
374
|
+
greaterThan: greaterThan,
|
|
375
|
+
lessThan: lessThan,
|
|
376
|
+
notEmpty: notEmpty,
|
|
377
|
+
notEquals: notEquals,
|
|
378
|
+
startsWith: startsWith
|
|
379
|
+
};
|
|
380
|
+
|
|
377
381
|
var commonMenuItemStyles = {
|
|
378
382
|
py: '6px',
|
|
379
383
|
my: 0,
|
|
@@ -395,52 +399,52 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
|
|
|
395
399
|
type: MRT_FILTER_TYPE.FUZZY,
|
|
396
400
|
label: localization.filterFuzzy,
|
|
397
401
|
divider: false,
|
|
398
|
-
fn:
|
|
402
|
+
fn: fuzzy
|
|
399
403
|
}, {
|
|
400
404
|
type: MRT_FILTER_TYPE.CONTAINS,
|
|
401
405
|
label: localization.filterContains,
|
|
402
406
|
divider: true,
|
|
403
|
-
fn:
|
|
407
|
+
fn: contains
|
|
404
408
|
}, {
|
|
405
409
|
type: MRT_FILTER_TYPE.STARTS_WITH,
|
|
406
410
|
label: localization.filterStartsWith,
|
|
407
411
|
divider: false,
|
|
408
|
-
fn:
|
|
412
|
+
fn: startsWith
|
|
409
413
|
}, {
|
|
410
414
|
type: MRT_FILTER_TYPE.ENDS_WITH,
|
|
411
415
|
label: localization.filterEndsWith,
|
|
412
416
|
divider: true,
|
|
413
|
-
fn:
|
|
417
|
+
fn: endsWith
|
|
414
418
|
}, {
|
|
415
419
|
type: MRT_FILTER_TYPE.EQUALS,
|
|
416
420
|
label: localization.filterEquals,
|
|
417
421
|
divider: false,
|
|
418
|
-
fn:
|
|
422
|
+
fn: equals
|
|
419
423
|
}, {
|
|
420
424
|
type: MRT_FILTER_TYPE.NOT_EQUALS,
|
|
421
425
|
label: localization.filterNotEquals,
|
|
422
426
|
divider: true,
|
|
423
|
-
fn:
|
|
427
|
+
fn: notEquals
|
|
424
428
|
}, {
|
|
425
429
|
type: MRT_FILTER_TYPE.GREATER_THAN,
|
|
426
430
|
label: localization.filterGreaterThan,
|
|
427
431
|
divider: false,
|
|
428
|
-
fn:
|
|
432
|
+
fn: greaterThan
|
|
429
433
|
}, {
|
|
430
434
|
type: MRT_FILTER_TYPE.LESS_THAN,
|
|
431
435
|
label: localization.filterLessThan,
|
|
432
436
|
divider: true,
|
|
433
|
-
fn:
|
|
437
|
+
fn: lessThan
|
|
434
438
|
}, {
|
|
435
439
|
type: MRT_FILTER_TYPE.EMPTY,
|
|
436
440
|
label: localization.filterEmpty,
|
|
437
441
|
divider: false,
|
|
438
|
-
fn:
|
|
442
|
+
fn: empty
|
|
439
443
|
}, {
|
|
440
444
|
type: MRT_FILTER_TYPE.NOT_EMPTY,
|
|
441
445
|
label: localization.filterNotEmpty,
|
|
442
446
|
divider: false,
|
|
443
|
-
fn:
|
|
447
|
+
fn: notEmpty
|
|
444
448
|
}];
|
|
445
449
|
}, []);
|
|
446
450
|
|
|
@@ -492,7 +496,7 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
|
|
|
492
496
|
};
|
|
493
497
|
|
|
494
498
|
var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
495
|
-
var _localization$filterB, _localization$clearFi, _column$filterSelectO;
|
|
499
|
+
var _localization$filterB, _localization$filterM, _localization$, _localization$clearFi, _column$filterSelectO;
|
|
496
500
|
|
|
497
501
|
var column = _ref.column;
|
|
498
502
|
|
|
@@ -550,6 +554,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
550
554
|
}));
|
|
551
555
|
}
|
|
552
556
|
|
|
557
|
+
var filterId = "mrt-" + idPrefix + "-" + column.id + "-filter-text-field";
|
|
553
558
|
var filterType = tableInstance.state.currentFilterTypes[column.id];
|
|
554
559
|
var isSelectFilter = !!column.filterSelectOptions;
|
|
555
560
|
var filterChipLabel = !(filterType instanceof Function) && [MRT_FILTER_TYPE.EMPTY, MRT_FILTER_TYPE.NOT_EMPTY].includes(filterType) ? //@ts-ignore
|
|
@@ -557,7 +562,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
557
562
|
var filterPlaceholder = (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(column.Header));
|
|
558
563
|
return React.createElement(React.Fragment, null, React.createElement(TextField, Object.assign({
|
|
559
564
|
fullWidth: true,
|
|
560
|
-
id:
|
|
565
|
+
id: filterId,
|
|
561
566
|
inputProps: {
|
|
562
567
|
disabled: !!filterChipLabel,
|
|
563
568
|
sx: {
|
|
@@ -566,8 +571,11 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
566
571
|
},
|
|
567
572
|
title: filterPlaceholder
|
|
568
573
|
},
|
|
569
|
-
helperText:
|
|
570
|
-
|
|
574
|
+
helperText: React.createElement("label", {
|
|
575
|
+
htmlFor: filterId
|
|
576
|
+
}, filterType instanceof Function ? (_localization$filterM = localization.filterMode.replace('{filterType}', // @ts-ignore
|
|
577
|
+
(_localization$ = localization["filter" + (filterType.name.charAt(0).toUpperCase() + filterType.name.slice(1))]) != null ? _localization$ : '')) != null ? _localization$filterM : '' : localization.filterMode.replace('{filterType}', // @ts-ignore
|
|
578
|
+
localization["filter" + (filterType.charAt(0).toUpperCase() + filterType.slice(1))])),
|
|
571
579
|
FormHelperTextProps: {
|
|
572
580
|
sx: {
|
|
573
581
|
fontSize: '0.6rem',
|
|
@@ -601,6 +609,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
601
609
|
arrow: true,
|
|
602
610
|
title: localization.changeFilterMode
|
|
603
611
|
}, React.createElement("span", null, React.createElement(IconButton, {
|
|
612
|
+
"aria-label": localization.changeFilterMode,
|
|
604
613
|
onClick: handleFilterMenuOpen,
|
|
605
614
|
size: "small",
|
|
606
615
|
sx: {
|
|
@@ -850,15 +859,16 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
|
850
859
|
setAnchorEl(null);
|
|
851
860
|
};
|
|
852
861
|
|
|
862
|
+
var handleShowAllColumns = function handleShowAllColumns() {
|
|
863
|
+
tableInstance.toggleHideAllColumns(false);
|
|
864
|
+
setAnchorEl(null);
|
|
865
|
+
};
|
|
866
|
+
|
|
853
867
|
var handleOpenFilterModeMenu = function handleOpenFilterModeMenu(event) {
|
|
854
868
|
event.stopPropagation();
|
|
855
869
|
setFilterMenuAnchorEl(event.currentTarget);
|
|
856
870
|
};
|
|
857
871
|
|
|
858
|
-
var handleShowAllColumns = function handleShowAllColumns() {
|
|
859
|
-
tableInstance.toggleHideAllColumns(false);
|
|
860
|
-
};
|
|
861
|
-
|
|
862
872
|
var handleOpenShowHideColumnsMenu = function handleOpenShowHideColumnsMenu(event) {
|
|
863
873
|
event.stopPropagation();
|
|
864
874
|
setShowHideColumnsMenuAnchorEl(event.currentTarget);
|
|
@@ -2420,9 +2430,7 @@ var MRT_TableBody = function MRT_TableBody() {
|
|
|
2420
2430
|
});
|
|
2421
2431
|
|
|
2422
2432
|
return React.createElement(TableBody, Object.assign({}, tableBodyProps, {
|
|
2423
|
-
sx: _extends({
|
|
2424
|
-
overflowY: 'hidden'
|
|
2425
|
-
}, tableBodyProps == null ? void 0 : tableBodyProps.sx)
|
|
2433
|
+
sx: _extends({}, tableBodyProps == null ? void 0 : tableBodyProps.sx)
|
|
2426
2434
|
}), rows.map(function (row) {
|
|
2427
2435
|
tableInstance.prepareRow(row);
|
|
2428
2436
|
return React.createElement(MRT_TableBodyRow, {
|
|
@@ -2782,7 +2790,7 @@ var MRT_TablePagination = function MRT_TablePagination() {
|
|
|
2782
2790
|
showLastButton: tableInstance.rows.length / tableInstance.state.pageSize > 2
|
|
2783
2791
|
}, tablePaginationProps, {
|
|
2784
2792
|
sx: _extends({
|
|
2785
|
-
|
|
2793
|
+
m: '0 0.5rem',
|
|
2786
2794
|
position: 'relative',
|
|
2787
2795
|
zIndex: 2
|
|
2788
2796
|
}, tablePaginationProps == null ? void 0 : tablePaginationProps.sx)
|
|
@@ -2844,6 +2852,34 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner() {
|
|
|
2844
2852
|
}, selectMessage, groupedByMessage)));
|
|
2845
2853
|
};
|
|
2846
2854
|
|
|
2855
|
+
var MRT_LinearProgressBar = function MRT_LinearProgressBar() {
|
|
2856
|
+
var _useMRT = useMRT(),
|
|
2857
|
+
muiLinearProgressProps = _useMRT.muiLinearProgressProps,
|
|
2858
|
+
isFetching = _useMRT.isFetching,
|
|
2859
|
+
isLoading = _useMRT.isLoading,
|
|
2860
|
+
tableInstance = _useMRT.tableInstance;
|
|
2861
|
+
|
|
2862
|
+
var linearProgressProps = muiLinearProgressProps instanceof Function ? muiLinearProgressProps(tableInstance) : muiLinearProgressProps;
|
|
2863
|
+
return React.createElement(Collapse, {
|
|
2864
|
+
"in": isFetching || isLoading,
|
|
2865
|
+
unmountOnExit: true
|
|
2866
|
+
}, React.createElement(LinearProgress, Object.assign({
|
|
2867
|
+
"aria-label": "Loading",
|
|
2868
|
+
"aria-busy": "true"
|
|
2869
|
+
}, linearProgressProps)));
|
|
2870
|
+
};
|
|
2871
|
+
|
|
2872
|
+
var commonToolbarStyles = function commonToolbarStyles(theme, tableInstance) {
|
|
2873
|
+
return {
|
|
2874
|
+
backgroundColor: theme.palette.background["default"],
|
|
2875
|
+
backgroundImage: "linear-gradient(" + alpha(theme.palette.common.white, 0.05) + "," + alpha(theme.palette.common.white, 0.05) + ")",
|
|
2876
|
+
display: 'grid',
|
|
2877
|
+
opacity: tableInstance.state.fullScreen ? 0.95 : 1,
|
|
2878
|
+
p: '0 !important',
|
|
2879
|
+
width: '100%',
|
|
2880
|
+
zIndex: 1
|
|
2881
|
+
};
|
|
2882
|
+
};
|
|
2847
2883
|
var MRT_ToolbarTop = function MRT_ToolbarTop() {
|
|
2848
2884
|
var _renderToolbarCustomA;
|
|
2849
2885
|
|
|
@@ -2864,15 +2900,9 @@ var MRT_ToolbarTop = function MRT_ToolbarTop() {
|
|
|
2864
2900
|
}, toolbarProps, {
|
|
2865
2901
|
sx: function sx(theme) {
|
|
2866
2902
|
return _extends({
|
|
2867
|
-
backgroundColor: theme.palette.background["default"],
|
|
2868
|
-
backgroundImage: "linear-gradient(" + alpha(theme.palette.common.white, 0.05) + "," + alpha(theme.palette.common.white, 0.05) + ")",
|
|
2869
|
-
display: 'grid',
|
|
2870
|
-
p: '0 !important',
|
|
2871
2903
|
position: tableInstance.state.fullScreen ? 'sticky' : undefined,
|
|
2872
|
-
top: tableInstance.state.fullScreen ? '0' : undefined
|
|
2873
|
-
|
|
2874
|
-
zIndex: 1
|
|
2875
|
-
}, toolbarProps == null ? void 0 : toolbarProps.sx);
|
|
2904
|
+
top: tableInstance.state.fullScreen ? '0' : undefined
|
|
2905
|
+
}, commonToolbarStyles(theme, tableInstance), toolbarProps == null ? void 0 : toolbarProps.sx);
|
|
2876
2906
|
}
|
|
2877
2907
|
}), positionToolbarAlertBanner === 'top' && React.createElement(MRT_ToolbarAlertBanner, null), React.createElement(Box, {
|
|
2878
2908
|
sx: {
|
|
@@ -2887,7 +2917,7 @@ var MRT_ToolbarTop = function MRT_ToolbarTop() {
|
|
|
2887
2917
|
position: 'relative',
|
|
2888
2918
|
zIndex: 3
|
|
2889
2919
|
}
|
|
2890
|
-
}, !disableGlobalFilter && React.createElement(MRT_SearchTextField, null), !hideToolbarInternalActions && positionToolbarActions === 'top' && React.createElement(MRT_ToolbarInternalButtons, null))), React.createElement("div", null, !manualPagination && ['top', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, null)));
|
|
2920
|
+
}, !disableGlobalFilter && React.createElement(MRT_SearchTextField, null), !hideToolbarInternalActions && positionToolbarActions === 'top' && React.createElement(MRT_ToolbarInternalButtons, null))), React.createElement("div", null, !manualPagination && ['top', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, null)), React.createElement(MRT_LinearProgressBar, null));
|
|
2891
2921
|
};
|
|
2892
2922
|
|
|
2893
2923
|
var MRT_ToolbarBottom = function MRT_ToolbarBottom() {
|
|
@@ -2906,53 +2936,37 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom() {
|
|
|
2906
2936
|
}, toolbarProps, {
|
|
2907
2937
|
sx: function sx(theme) {
|
|
2908
2938
|
return _extends({
|
|
2909
|
-
backgroundColor: theme.palette.background["default"],
|
|
2910
|
-
backgroundImage: "linear-gradient(" + alpha(theme.palette.common.white, 0.05) + "," + alpha(theme.palette.common.white, 0.05) + ")",
|
|
2911
2939
|
bottom: tableInstance.state.fullScreen ? '0' : undefined,
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
overflowY: 'hidden',
|
|
2915
|
-
p: '0 0.5rem !important',
|
|
2916
|
-
position: tableInstance.state.fullScreen ? 'fixed' : undefined,
|
|
2917
|
-
width: 'calc(100% - 1rem)',
|
|
2918
|
-
zIndex: 1
|
|
2919
|
-
}, toolbarProps == null ? void 0 : toolbarProps.sx);
|
|
2940
|
+
position: tableInstance.state.fullScreen ? 'fixed' : undefined
|
|
2941
|
+
}, commonToolbarStyles(theme, tableInstance), toolbarProps == null ? void 0 : toolbarProps.sx);
|
|
2920
2942
|
}
|
|
2921
|
-
}),
|
|
2943
|
+
}), React.createElement(MRT_LinearProgressBar, null), React.createElement(Box, {
|
|
2944
|
+
sx: {
|
|
2945
|
+
display: 'flex',
|
|
2946
|
+
justifyContent: 'space-between',
|
|
2947
|
+
width: '100%'
|
|
2948
|
+
}
|
|
2949
|
+
}, !hideToolbarInternalActions && positionToolbarActions === 'bottom' ? React.createElement(MRT_ToolbarInternalButtons, null) : React.createElement("span", null), positionToolbarAlertBanner === 'bottom' && React.createElement(MRT_ToolbarAlertBanner, null), !manualPagination && ['bottom', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, null)));
|
|
2922
2950
|
};
|
|
2923
2951
|
|
|
2924
2952
|
var MRT_TableContainer = function MRT_TableContainer() {
|
|
2925
2953
|
var _useMRT = useMRT(),
|
|
2926
2954
|
hideToolbarBottom = _useMRT.hideToolbarBottom,
|
|
2927
2955
|
hideToolbarTop = _useMRT.hideToolbarTop,
|
|
2928
|
-
isFetching = _useMRT.isFetching,
|
|
2929
|
-
isLoading = _useMRT.isLoading,
|
|
2930
|
-
muiLinearProgressProps = _useMRT.muiLinearProgressProps,
|
|
2931
2956
|
muiTableContainerProps = _useMRT.muiTableContainerProps,
|
|
2932
2957
|
tableInstance = _useMRT.tableInstance;
|
|
2933
2958
|
|
|
2934
2959
|
var fullScreen = tableInstance.state.fullScreen;
|
|
2935
|
-
var originalBodyOverflowStyle = useRef();
|
|
2936
|
-
useEffect(function () {
|
|
2937
|
-
if (typeof window !== 'undefined') {
|
|
2938
|
-
var _document, _document$body, _document$body$style;
|
|
2939
|
-
|
|
2940
|
-
originalBodyOverflowStyle.current = (_document = document) == null ? void 0 : (_document$body = _document.body) == null ? void 0 : (_document$body$style = _document$body.style) == null ? void 0 : _document$body$style.overflow;
|
|
2941
|
-
}
|
|
2942
|
-
}, []);
|
|
2943
2960
|
useEffect(function () {
|
|
2944
2961
|
if (typeof window !== 'undefined') {
|
|
2945
2962
|
if (fullScreen) {
|
|
2946
2963
|
document.body.style.overflow = 'hidden';
|
|
2947
2964
|
} else {
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
document.body.style.overflow = (_originalBodyOverflow = originalBodyOverflowStyle.current) != null ? _originalBodyOverflow : 'auto';
|
|
2965
|
+
document.body.style.overflow = 'auto';
|
|
2951
2966
|
}
|
|
2952
2967
|
}
|
|
2953
2968
|
}, [fullScreen]);
|
|
2954
2969
|
var tableContainerProps = muiTableContainerProps instanceof Function ? muiTableContainerProps(tableInstance) : muiTableContainerProps;
|
|
2955
|
-
var linearProgressProps = muiLinearProgressProps instanceof Function ? muiLinearProgressProps(tableInstance) : muiLinearProgressProps;
|
|
2956
2970
|
return React.createElement(TableContainer, Object.assign({
|
|
2957
2971
|
component: Paper
|
|
2958
2972
|
}, tableContainerProps, {
|
|
@@ -2961,6 +2975,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
|
|
|
2961
2975
|
height: fullScreen ? '100%' : undefined,
|
|
2962
2976
|
left: fullScreen ? '0' : undefined,
|
|
2963
2977
|
m: fullScreen ? '0' : undefined,
|
|
2978
|
+
overflowY: !fullScreen ? 'hidden' : undefined,
|
|
2964
2979
|
position: fullScreen ? 'fixed' : undefined,
|
|
2965
2980
|
right: fullScreen ? '0' : undefined,
|
|
2966
2981
|
top: fullScreen ? '0' : undefined,
|
|
@@ -2968,10 +2983,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
|
|
|
2968
2983
|
width: fullScreen ? '100vw' : undefined,
|
|
2969
2984
|
zIndex: fullScreen ? 1200 : 1
|
|
2970
2985
|
}, tableContainerProps == null ? void 0 : tableContainerProps.sx)
|
|
2971
|
-
}), !hideToolbarTop && React.createElement(MRT_ToolbarTop, null), React.createElement(
|
|
2972
|
-
"in": isFetching || isLoading,
|
|
2973
|
-
unmountOnExit: true
|
|
2974
|
-
}, React.createElement(LinearProgress, Object.assign({}, linearProgressProps))), React.createElement(Box, {
|
|
2986
|
+
}), !hideToolbarTop && React.createElement(MRT_ToolbarTop, null), React.createElement(Box, {
|
|
2975
2987
|
sx: {
|
|
2976
2988
|
maxWidth: '100%',
|
|
2977
2989
|
overflowX: 'auto'
|
|
@@ -3054,13 +3066,16 @@ var MRT_Default_Icons = {
|
|
|
3054
3066
|
VisibilityOffIcon: VisibilityOffIcon
|
|
3055
3067
|
};
|
|
3056
3068
|
|
|
3057
|
-
var _excluded = ["defaultColumn", "icons", "localization", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
|
|
3069
|
+
var _excluded = ["defaultColumn", "filterTypes", "globalFilter", "icons", "localization", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
|
|
3058
3070
|
var MaterialReactTable = (function (_ref) {
|
|
3059
3071
|
var _ref$defaultColumn = _ref.defaultColumn,
|
|
3060
3072
|
defaultColumn = _ref$defaultColumn === void 0 ? {
|
|
3061
3073
|
minWidth: 50,
|
|
3062
3074
|
maxWidth: 1000
|
|
3063
3075
|
} : _ref$defaultColumn,
|
|
3076
|
+
filterTypes = _ref.filterTypes,
|
|
3077
|
+
_ref$globalFilter = _ref.globalFilter,
|
|
3078
|
+
globalFilter = _ref$globalFilter === void 0 ? 'fuzzy' : _ref$globalFilter,
|
|
3064
3079
|
icons = _ref.icons,
|
|
3065
3080
|
localization = _ref.localization,
|
|
3066
3081
|
_ref$positionActionsC = _ref.positionActionsColumn,
|
|
@@ -3073,8 +3088,14 @@ var MaterialReactTable = (function (_ref) {
|
|
|
3073
3088
|
positionToolbarAlertBanner = _ref$positionToolbarA2 === void 0 ? 'top' : _ref$positionToolbarA2,
|
|
3074
3089
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
3075
3090
|
|
|
3076
|
-
return React.createElement(MaterialReactTableProvider
|
|
3091
|
+
return React.createElement(MaterialReactTableProvider //@ts-ignore
|
|
3092
|
+
, Object.assign({
|
|
3093
|
+
//@ts-ignore
|
|
3077
3094
|
defaultColumn: defaultColumn,
|
|
3095
|
+
//@ts-ignore
|
|
3096
|
+
filterTypes: _extends({}, defaultFilterFNs, filterTypes),
|
|
3097
|
+
//@ts-ignore
|
|
3098
|
+
globalFilter: globalFilter,
|
|
3078
3099
|
icons: _extends({}, MRT_Default_Icons, icons),
|
|
3079
3100
|
localization: _extends({}, MRT_DefaultLocalization_EN, localization),
|
|
3080
3101
|
positionActionsColumn: positionActionsColumn,
|