material-react-table 0.5.8 → 0.5.9
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 +1 -10
- package/dist/body/MRT_TableBodyCell.d.ts +1 -1
- package/dist/body/MRT_TableBodyRow.d.ts +1 -1
- package/dist/body/MRT_TableDetailPanel.d.ts +1 -1
- package/dist/buttons/MRT_EditActionButtons.d.ts +1 -1
- package/dist/buttons/MRT_ExpandButton.d.ts +1 -1
- package/dist/buttons/MRT_ToggleColumnActionMenuButton.d.ts +1 -1
- package/dist/buttons/MRT_ToggleRowActionMenuButton.d.ts +1 -1
- package/dist/enums.d.ts +12 -0
- package/dist/filtersFNs.d.ts +16 -0
- package/dist/footer/MRT_TableFooterCell.d.ts +1 -1
- package/dist/footer/MRT_TableFooterRow.d.ts +1 -1
- package/dist/head/MRT_TableHeadCell.d.ts +1 -1
- package/dist/head/MRT_TableHeadRow.d.ts +1 -1
- package/dist/inputs/MRT_EditCellTextField.d.ts +1 -1
- package/dist/inputs/MRT_FilterTextField.d.ts +1 -1
- package/dist/inputs/MRT_SelectCheckbox.d.ts +1 -1
- package/dist/localization.d.ts +3 -1
- package/dist/material-react-table.cjs.development.js +111 -37
- 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 +100 -28
- package/dist/material-react-table.esm.js.map +1 -1
- package/dist/menus/MRT_ColumnActionMenu.d.ts +1 -1
- package/dist/menus/MRT_FilterTypeMenu.d.ts +1 -1
- package/dist/menus/MRT_RowActionMenu.d.ts +1 -1
- package/dist/menus/MRT_ShowHideColumnsMenu.d.ts +1 -1
- package/dist/useMRT.d.ts +1 -1
- package/package.json +1 -1
- package/src/MaterialReactTable.tsx +1 -11
- package/src/body/MRT_TableBody.tsx +1 -1
- package/src/body/MRT_TableBodyCell.tsx +1 -1
- package/src/body/MRT_TableBodyRow.tsx +1 -1
- package/src/body/MRT_TableDetailPanel.tsx +1 -1
- package/src/buttons/MRT_EditActionButtons.tsx +1 -1
- package/src/buttons/MRT_ExpandButton.tsx +1 -1
- package/src/buttons/MRT_ShowHideColumnsButton.tsx +1 -1
- package/src/buttons/MRT_ToggleColumnActionMenuButton.tsx +2 -1
- package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +1 -1
- package/src/enums.ts +12 -0
- package/src/filtersFNs.ts +30 -0
- package/src/footer/MRT_TableFooter.tsx +1 -1
- package/src/footer/MRT_TableFooterCell.tsx +1 -1
- package/src/footer/MRT_TableFooterRow.tsx +1 -1
- package/src/head/MRT_TableHead.tsx +1 -1
- package/src/head/MRT_TableHeadCell.tsx +1 -1
- package/src/head/MRT_TableHeadRow.tsx +1 -1
- package/src/inputs/MRT_EditCellTextField.tsx +1 -1
- package/src/inputs/MRT_FilterTextField.tsx +2 -2
- package/src/inputs/MRT_SelectCheckbox.tsx +1 -1
- package/src/localization.ts +6 -2
- package/src/menus/MRT_ColumnActionMenu.tsx +1 -1
- package/src/menus/MRT_FilterTypeMenu.tsx +37 -3
- package/src/menus/MRT_RowActionMenu.tsx +1 -1
- package/src/menus/MRT_ShowHideColumnsMenu.tsx +1 -1
- package/src/useMRT.tsx +25 -8
|
@@ -160,6 +160,26 @@ notEqualsFilterFN.autoRemove = function (val) {
|
|
|
160
160
|
return !val;
|
|
161
161
|
};
|
|
162
162
|
|
|
163
|
+
var greaterThanFilterFN = function greaterThanFilterFN(rows, id, filterValue) {
|
|
164
|
+
return rows.filter(function (row) {
|
|
165
|
+
return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] > +filterValue : row.values[id].toString().toLowerCase().trim() > filterValue.toString().toLowerCase().trim();
|
|
166
|
+
});
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
greaterThanFilterFN.autoRemove = function (val) {
|
|
170
|
+
return !val;
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
var lessThanFilterFN = function lessThanFilterFN(rows, id, filterValue) {
|
|
174
|
+
return rows.filter(function (row) {
|
|
175
|
+
return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] < +filterValue : row.values[id].toString().toLowerCase().trim() < filterValue.toString().toLowerCase().trim();
|
|
176
|
+
});
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
lessThanFilterFN.autoRemove = function (val) {
|
|
180
|
+
return !val;
|
|
181
|
+
};
|
|
182
|
+
|
|
163
183
|
var emptyFilterFN = function emptyFilterFN(rows, id, _filterValue) {
|
|
164
184
|
return rows.filter(function (row) {
|
|
165
185
|
return !row.values[id].toString().toLowerCase().trim();
|
|
@@ -184,6 +204,8 @@ var defaultFilterFNs = {
|
|
|
184
204
|
contains: containsFilterFN,
|
|
185
205
|
empty: emptyFilterFN,
|
|
186
206
|
endsWith: endsWithFilterFN,
|
|
207
|
+
greaterThan: greaterThanFilterFN,
|
|
208
|
+
lessThan: lessThanFilterFN,
|
|
187
209
|
equals: equalsFilterFN,
|
|
188
210
|
fuzzy: fuzzyFilterFN,
|
|
189
211
|
notEmpty: notEmptyFilterFN,
|
|
@@ -225,12 +247,40 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
|
|
|
225
247
|
return _extends({}, defaultFilterFNs, props.filterTypes);
|
|
226
248
|
}, [props.filterTypes]);
|
|
227
249
|
|
|
228
|
-
var
|
|
229
|
-
|
|
250
|
+
var getInitialFilterTypeState = function getInitialFilterTypeState() {
|
|
251
|
+
var lowestLevelColumns = props.columns;
|
|
252
|
+
var currentCols = props.columns;
|
|
253
|
+
|
|
254
|
+
while (!!currentCols.length && currentCols.some(function (col) {
|
|
255
|
+
return col.columns;
|
|
256
|
+
})) {
|
|
257
|
+
var nextCols = currentCols.filter(function (col) {
|
|
258
|
+
return !!col.columns;
|
|
259
|
+
}).map(function (col) {
|
|
260
|
+
return col.columns;
|
|
261
|
+
}).flat();
|
|
262
|
+
|
|
263
|
+
if (nextCols.every(function (col) {
|
|
264
|
+
return !col.columns;
|
|
265
|
+
})) {
|
|
266
|
+
lowestLevelColumns = [].concat(lowestLevelColumns, nextCols);
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
currentCols = nextCols;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
lowestLevelColumns = lowestLevelColumns.filter(function (col) {
|
|
273
|
+
return !col.columns;
|
|
274
|
+
});
|
|
275
|
+
return Object.assign.apply(Object, [{}].concat(lowestLevelColumns.map(function (c) {
|
|
230
276
|
var _ref, _c$filter, _props$initialState5, _props$initialState5$, _ref2;
|
|
231
277
|
|
|
232
278
|
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;
|
|
233
279
|
})));
|
|
280
|
+
};
|
|
281
|
+
|
|
282
|
+
var _useState6 = useState(function () {
|
|
283
|
+
return getInitialFilterTypeState();
|
|
234
284
|
}),
|
|
235
285
|
currentFilterTypes = _useState6[0],
|
|
236
286
|
setCurrentFilterTypes = _useState6[1];
|
|
@@ -295,6 +345,21 @@ var useMRT = function useMRT() {
|
|
|
295
345
|
return useContext(MaterialReactTableContext);
|
|
296
346
|
};
|
|
297
347
|
|
|
348
|
+
var MRT_FILTER_TYPE;
|
|
349
|
+
|
|
350
|
+
(function (MRT_FILTER_TYPE) {
|
|
351
|
+
MRT_FILTER_TYPE["CONTAINS"] = "contains";
|
|
352
|
+
MRT_FILTER_TYPE["EMPTY"] = "empty";
|
|
353
|
+
MRT_FILTER_TYPE["ENDS_WITH"] = "endsWith";
|
|
354
|
+
MRT_FILTER_TYPE["EQUALS"] = "equals";
|
|
355
|
+
MRT_FILTER_TYPE["FUZZY"] = "fuzzy";
|
|
356
|
+
MRT_FILTER_TYPE["GREATER_THAN"] = "greaterThan";
|
|
357
|
+
MRT_FILTER_TYPE["LESS_THAN"] = "lessThan";
|
|
358
|
+
MRT_FILTER_TYPE["NOT_EMPTY"] = "notEmpty";
|
|
359
|
+
MRT_FILTER_TYPE["NOT_EQUALS"] = "notEquals";
|
|
360
|
+
MRT_FILTER_TYPE["STARTS_WITH"] = "startsWith";
|
|
361
|
+
})(MRT_FILTER_TYPE || (MRT_FILTER_TYPE = {}));
|
|
362
|
+
|
|
298
363
|
var commonMenuItemStyles = {
|
|
299
364
|
py: '6px',
|
|
300
365
|
my: 0,
|
|
@@ -315,35 +380,53 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
|
|
|
315
380
|
return [{
|
|
316
381
|
type: MRT_FILTER_TYPE.FUZZY,
|
|
317
382
|
label: localization.filterMenuItemFuzzy,
|
|
318
|
-
divider: false
|
|
383
|
+
divider: false,
|
|
384
|
+
fn: fuzzyFilterFN
|
|
319
385
|
}, {
|
|
320
386
|
type: MRT_FILTER_TYPE.CONTAINS,
|
|
321
387
|
label: localization.filterMenuItemContains,
|
|
322
|
-
divider: true
|
|
388
|
+
divider: true,
|
|
389
|
+
fn: containsFilterFN
|
|
323
390
|
}, {
|
|
324
391
|
type: MRT_FILTER_TYPE.STARTS_WITH,
|
|
325
392
|
label: localization.filterMenuItemStartsWith,
|
|
326
|
-
divider: false
|
|
393
|
+
divider: false,
|
|
394
|
+
fn: startsWithFilterFN
|
|
327
395
|
}, {
|
|
328
396
|
type: MRT_FILTER_TYPE.ENDS_WITH,
|
|
329
397
|
label: localization.filterMenuItemEndsWith,
|
|
330
|
-
divider: true
|
|
398
|
+
divider: true,
|
|
399
|
+
fn: endsWithFilterFN
|
|
331
400
|
}, {
|
|
332
401
|
type: MRT_FILTER_TYPE.EQUALS,
|
|
333
402
|
label: localization.filterMenuItemEquals,
|
|
334
|
-
divider: false
|
|
403
|
+
divider: false,
|
|
404
|
+
fn: equalsFilterFN
|
|
335
405
|
}, {
|
|
336
406
|
type: MRT_FILTER_TYPE.NOT_EQUALS,
|
|
337
407
|
label: localization.filterMenuItemNotEquals,
|
|
338
|
-
divider: true
|
|
408
|
+
divider: true,
|
|
409
|
+
fn: notEqualsFilterFN
|
|
410
|
+
}, {
|
|
411
|
+
type: MRT_FILTER_TYPE.GREATER_THAN,
|
|
412
|
+
label: localization.filterMenuItemGreaterThan,
|
|
413
|
+
divider: false,
|
|
414
|
+
fn: greaterThanFilterFN
|
|
415
|
+
}, {
|
|
416
|
+
type: MRT_FILTER_TYPE.LESS_THAN,
|
|
417
|
+
label: localization.filterMenuItemLessThan,
|
|
418
|
+
divider: true,
|
|
419
|
+
fn: lessThanFilterFN
|
|
339
420
|
}, {
|
|
340
421
|
type: MRT_FILTER_TYPE.EMPTY,
|
|
341
422
|
label: localization.filterMenuItemEmpty,
|
|
342
|
-
divider: false
|
|
423
|
+
divider: false,
|
|
424
|
+
fn: emptyFilterFN
|
|
343
425
|
}, {
|
|
344
426
|
type: MRT_FILTER_TYPE.NOT_EMPTY,
|
|
345
427
|
label: localization.filterMenuItemNotEmpty,
|
|
346
|
-
divider: false
|
|
428
|
+
divider: false,
|
|
429
|
+
fn: notEmptyFilterFN
|
|
347
430
|
}];
|
|
348
431
|
}, []);
|
|
349
432
|
|
|
@@ -379,14 +462,15 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
|
|
|
379
462
|
}, filterTypes.map(function (_ref2, index) {
|
|
380
463
|
var type = _ref2.type,
|
|
381
464
|
label = _ref2.label,
|
|
382
|
-
divider = _ref2.divider
|
|
465
|
+
divider = _ref2.divider,
|
|
466
|
+
fn = _ref2.fn;
|
|
383
467
|
return React.createElement(MenuItem, {
|
|
384
468
|
divider: divider,
|
|
385
469
|
key: index,
|
|
386
470
|
onClick: function onClick() {
|
|
387
471
|
return handleSelectFilterType(type);
|
|
388
472
|
},
|
|
389
|
-
selected: type === filterType,
|
|
473
|
+
selected: type === filterType || fn === filterType,
|
|
390
474
|
sx: commonMenuItemStyles,
|
|
391
475
|
value: type
|
|
392
476
|
}, label);
|
|
@@ -495,7 +579,6 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
495
579
|
arrow: true,
|
|
496
580
|
title: localization.changeFilterMode
|
|
497
581
|
}, React.createElement("span", null, React.createElement(IconButton, {
|
|
498
|
-
disabled: isCustomFilterType,
|
|
499
582
|
onClick: handleFilterMenuOpen,
|
|
500
583
|
size: "small",
|
|
501
584
|
sx: {
|
|
@@ -748,6 +831,7 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
|
|
|
748
831
|
arrow: true,
|
|
749
832
|
enterDelay: 1000,
|
|
750
833
|
enterNextDelay: 1000,
|
|
834
|
+
placement: "top",
|
|
751
835
|
title: localization.columnActionMenuButtonTitle
|
|
752
836
|
}, React.createElement(IconButton, {
|
|
753
837
|
"aria-label": localization.columnActionMenuButtonTitle,
|
|
@@ -2820,6 +2904,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
|
|
|
2820
2904
|
|
|
2821
2905
|
var MRT_DefaultLocalization_EN = {
|
|
2822
2906
|
actionsHeadColumnTitle: 'Actions',
|
|
2907
|
+
changeFilterMode: 'Change filter mode',
|
|
2823
2908
|
columnActionMenuButtonTitle: 'Column Actions',
|
|
2824
2909
|
columnActionMenuItemClearSort: 'Clear sort',
|
|
2825
2910
|
columnActionMenuItemGroupBy: 'Group by {column}',
|
|
@@ -2836,8 +2921,9 @@ var MRT_DefaultLocalization_EN = {
|
|
|
2836
2921
|
filterMenuItemEmpty: 'Empty',
|
|
2837
2922
|
filterMenuItemEndsWith: 'Ends With',
|
|
2838
2923
|
filterMenuItemEquals: 'Equals',
|
|
2839
|
-
changeFilterMode: 'Change filter mode',
|
|
2840
2924
|
filterMenuItemFuzzy: 'Fuzzy Match (Default)',
|
|
2925
|
+
filterMenuItemGreaterThan: 'Greater Than',
|
|
2926
|
+
filterMenuItemLessThan: 'Less Than',
|
|
2841
2927
|
filterMenuItemNotEmpty: 'Not Empty',
|
|
2842
2928
|
filterMenuItemNotEquals: 'Not Equals',
|
|
2843
2929
|
filterMenuItemStartsWith: 'Starts With',
|
|
@@ -2895,19 +2981,6 @@ var MRT_Default_Icons = {
|
|
|
2895
2981
|
};
|
|
2896
2982
|
|
|
2897
2983
|
var _excluded = ["defaultColumn", "icons", "localization", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
|
|
2898
|
-
var MRT_FILTER_TYPE;
|
|
2899
|
-
|
|
2900
|
-
(function (MRT_FILTER_TYPE) {
|
|
2901
|
-
MRT_FILTER_TYPE["CONTAINS"] = "contains";
|
|
2902
|
-
MRT_FILTER_TYPE["EMPTY"] = "empty";
|
|
2903
|
-
MRT_FILTER_TYPE["ENDS_WITH"] = "endsWith";
|
|
2904
|
-
MRT_FILTER_TYPE["EQUALS"] = "equals";
|
|
2905
|
-
MRT_FILTER_TYPE["FUZZY"] = "fuzzy";
|
|
2906
|
-
MRT_FILTER_TYPE["NOT_EMPTY"] = "notEmpty";
|
|
2907
|
-
MRT_FILTER_TYPE["NOT_EQUALS"] = "notEquals";
|
|
2908
|
-
MRT_FILTER_TYPE["STARTS_WITH"] = "startsWith";
|
|
2909
|
-
})(MRT_FILTER_TYPE || (MRT_FILTER_TYPE = {}));
|
|
2910
|
-
|
|
2911
2984
|
var MaterialReactTable = (function (_ref) {
|
|
2912
2985
|
var _ref$defaultColumn = _ref.defaultColumn,
|
|
2913
2986
|
defaultColumn = _ref$defaultColumn === void 0 ? {
|
|
@@ -2938,5 +3011,4 @@ var MaterialReactTable = (function (_ref) {
|
|
|
2938
3011
|
});
|
|
2939
3012
|
|
|
2940
3013
|
export default MaterialReactTable;
|
|
2941
|
-
export { MRT_FILTER_TYPE };
|
|
2942
3014
|
//# sourceMappingURL=material-react-table.esm.js.map
|