material-react-table 0.25.0 → 0.26.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +11 -9
- package/dist/{utils.d.ts → column.utils.d.ts} +1 -1
- package/dist/filtersFns.d.ts +22 -54
- package/dist/localization.d.ts +3 -0
- package/dist/material-react-table.cjs.development.js +87 -24
- 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 +87 -24
- package/dist/material-react-table.esm.js.map +1 -1
- package/dist/table/MRT_TableRoot.d.ts +1 -1
- package/package.json +1 -1
- package/src/{utils.ts → column.utils.ts} +0 -0
- package/src/filtersFns.ts +47 -13
- package/src/head/MRT_TableHeadCellGrabHandle.tsx +1 -1
- package/src/localization.ts +6 -0
- package/src/menus/MRT_FilterOptionMenu.tsx +105 -72
- package/src/menus/MRT_ShowHideColumnsMenu.tsx +1 -1
- package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +1 -1
- package/src/table/MRT_TableRoot.tsx +12 -12
@@ -53,6 +53,7 @@ var MRT_DefaultLocalization_EN = {
|
|
53
53
|
expand: 'Expand',
|
54
54
|
expandAll: 'Expand all',
|
55
55
|
filterBetween: 'Between',
|
56
|
+
filterBetweenInclusive: 'Between Inclusive',
|
56
57
|
filterByColumn: 'Filter by {column}',
|
57
58
|
filterContains: 'Contains',
|
58
59
|
filterEmpty: 'Empty',
|
@@ -60,7 +61,9 @@ var MRT_DefaultLocalization_EN = {
|
|
60
61
|
filterEquals: 'Equals',
|
61
62
|
filterFuzzy: 'Fuzzy',
|
62
63
|
filterGreaterThan: 'Greater Than',
|
64
|
+
filterGreaterThanOrEqualTo: 'Greater Than Or Equal To',
|
63
65
|
filterLessThan: 'Less Than',
|
66
|
+
filterLessThanOrEqualTo: 'Less Than Or Equal To',
|
64
67
|
filterMode: 'Filter Mode: {filterType}',
|
65
68
|
filterNotEmpty: 'Not Empty',
|
66
69
|
filterNotEquals: 'Not Equals',
|
@@ -226,11 +229,6 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
|
|
226
229
|
}))));
|
227
230
|
};
|
228
231
|
|
229
|
-
var commonMenuItemStyles = {
|
230
|
-
py: '6px',
|
231
|
-
my: 0,
|
232
|
-
alignItems: 'center'
|
233
|
-
};
|
234
232
|
var MRT_FilterOptionMenu = function MRT_FilterOptionMenu(_ref) {
|
235
233
|
var _columnDef$enabledCol;
|
236
234
|
|
@@ -262,46 +260,72 @@ var MRT_FilterOptionMenu = function MRT_FilterOptionMenu(_ref) {
|
|
262
260
|
var filterOptions = useMemo(function () {
|
263
261
|
return [{
|
264
262
|
option: 'fuzzy',
|
263
|
+
symbol: '≈',
|
265
264
|
label: localization.filterFuzzy,
|
266
265
|
divider: false
|
267
266
|
}, {
|
268
267
|
option: 'contains',
|
268
|
+
symbol: '[]',
|
269
269
|
label: localization.filterContains,
|
270
270
|
divider: false
|
271
271
|
}, {
|
272
272
|
option: 'startsWith',
|
273
|
+
symbol: 'a',
|
273
274
|
label: localization.filterStartsWith,
|
274
275
|
divider: false
|
275
276
|
}, {
|
276
277
|
option: 'endsWith',
|
278
|
+
symbol: 'z',
|
277
279
|
label: localization.filterEndsWith,
|
278
280
|
divider: true
|
279
281
|
}, {
|
280
282
|
option: 'equals',
|
283
|
+
symbol: '=',
|
281
284
|
label: localization.filterEquals,
|
282
285
|
divider: false
|
283
286
|
}, {
|
284
287
|
option: 'notEquals',
|
288
|
+
symbol: '≠',
|
285
289
|
label: localization.filterNotEquals,
|
286
290
|
divider: true
|
287
291
|
}, {
|
288
292
|
option: 'between',
|
293
|
+
symbol: '⇿',
|
289
294
|
label: localization.filterBetween,
|
290
295
|
divider: false
|
296
|
+
}, {
|
297
|
+
option: 'betweenInclusive',
|
298
|
+
symbol: '⬌',
|
299
|
+
label: localization.filterBetweenInclusive,
|
300
|
+
divider: true
|
291
301
|
}, {
|
292
302
|
option: 'greaterThan',
|
303
|
+
symbol: '>',
|
293
304
|
label: localization.filterGreaterThan,
|
294
305
|
divider: false
|
306
|
+
}, {
|
307
|
+
option: 'greaterThanOrEqualTo',
|
308
|
+
symbol: '≥',
|
309
|
+
label: localization.filterGreaterThanOrEqualTo,
|
310
|
+
divider: false
|
295
311
|
}, {
|
296
312
|
option: 'lessThan',
|
313
|
+
symbol: '<',
|
297
314
|
label: localization.filterLessThan,
|
315
|
+
divider: false
|
316
|
+
}, {
|
317
|
+
option: 'lessThanOrEqualTo',
|
318
|
+
symbol: '≤',
|
319
|
+
label: localization.filterLessThanOrEqualTo,
|
298
320
|
divider: true
|
299
321
|
}, {
|
300
322
|
option: 'empty',
|
323
|
+
symbol: '∅',
|
301
324
|
label: localization.filterEmpty,
|
302
325
|
divider: false
|
303
326
|
}, {
|
304
327
|
option: 'notEmpty',
|
328
|
+
symbol: '!∅',
|
305
329
|
label: localization.filterNotEmpty,
|
306
330
|
divider: false
|
307
331
|
}].filter(function (filterType) {
|
@@ -349,7 +373,8 @@ var MRT_FilterOptionMenu = function MRT_FilterOptionMenu(_ref) {
|
|
349
373
|
}, filterOptions.map(function (_ref4, index) {
|
350
374
|
var option = _ref4.option,
|
351
375
|
label = _ref4.label,
|
352
|
-
divider = _ref4.divider
|
376
|
+
divider = _ref4.divider,
|
377
|
+
symbol = _ref4.symbol;
|
353
378
|
return React.createElement(MenuItem, {
|
354
379
|
divider: divider,
|
355
380
|
key: index,
|
@@ -357,9 +382,20 @@ var MRT_FilterOptionMenu = function MRT_FilterOptionMenu(_ref) {
|
|
357
382
|
return handleSelectFilterType(option);
|
358
383
|
},
|
359
384
|
selected: option === filterOption,
|
360
|
-
sx:
|
385
|
+
sx: {
|
386
|
+
py: '6px',
|
387
|
+
my: 0,
|
388
|
+
alignItems: 'center',
|
389
|
+
display: 'flex',
|
390
|
+
gap: '2ch'
|
391
|
+
},
|
361
392
|
value: option
|
362
|
-
},
|
393
|
+
}, React.createElement(Box, {
|
394
|
+
sx: {
|
395
|
+
fontSize: '1.25rem',
|
396
|
+
width: '2ch'
|
397
|
+
}
|
398
|
+
}, symbol), label);
|
363
399
|
}));
|
364
400
|
};
|
365
401
|
|
@@ -505,21 +541,37 @@ notEquals.autoRemove = function (val) {
|
|
505
541
|
};
|
506
542
|
|
507
543
|
var greaterThan = function greaterThan(row, id, filterValue) {
|
508
|
-
return !isNaN(+filterValue) && !isNaN(+row.getValue(id)) ? +row.getValue(id)
|
544
|
+
return !isNaN(+filterValue) && !isNaN(+row.getValue(id)) ? +row.getValue(id) > +filterValue : row.getValue(id).toString().toLowerCase().trim() > filterValue.toString().toLowerCase().trim();
|
509
545
|
};
|
510
546
|
|
511
547
|
greaterThan.autoRemove = function (val) {
|
512
548
|
return !val;
|
513
549
|
};
|
514
550
|
|
551
|
+
var greaterThanOrEqualTo = function greaterThanOrEqualTo(row, id, filterValue) {
|
552
|
+
return equals(row, id, filterValue) || greaterThan(row, id, filterValue);
|
553
|
+
};
|
554
|
+
|
555
|
+
greaterThanOrEqualTo.autoRemove = function (val) {
|
556
|
+
return !val;
|
557
|
+
};
|
558
|
+
|
515
559
|
var lessThan = function lessThan(row, id, filterValue) {
|
516
|
-
return !isNaN(+filterValue) && !isNaN(+row.getValue(id)) ? +row.getValue(id)
|
560
|
+
return !isNaN(+filterValue) && !isNaN(+row.getValue(id)) ? +row.getValue(id) < +filterValue : row.getValue(id).toString().toLowerCase().trim() < filterValue.toString().toLowerCase().trim();
|
517
561
|
};
|
518
562
|
|
519
563
|
lessThan.autoRemove = function (val) {
|
520
564
|
return !val;
|
521
565
|
};
|
522
566
|
|
567
|
+
var lessThanOrEqualTo = function lessThanOrEqualTo(row, id, filterValue) {
|
568
|
+
return equals(row, id, filterValue) || lessThan(row, id, filterValue);
|
569
|
+
};
|
570
|
+
|
571
|
+
lessThanOrEqualTo.autoRemove = function (val) {
|
572
|
+
return !val;
|
573
|
+
};
|
574
|
+
|
523
575
|
var between = function between(row, id, filterValues) {
|
524
576
|
return (['', undefined].includes(filterValues[0]) || greaterThan(row, id, filterValues[0])) && (!isNaN(+filterValues[0]) && !isNaN(+filterValues[1]) && +filterValues[0] > +filterValues[1] || ['', undefined].includes(filterValues[1]) || lessThan(row, id, filterValues[1]));
|
525
577
|
};
|
@@ -528,6 +580,14 @@ between.autoRemove = function (val) {
|
|
528
580
|
return !val;
|
529
581
|
};
|
530
582
|
|
583
|
+
var betweenInclusive = function betweenInclusive(row, id, filterValues) {
|
584
|
+
return (['', undefined].includes(filterValues[0]) || greaterThanOrEqualTo(row, id, filterValues[0])) && (!isNaN(+filterValues[0]) && !isNaN(+filterValues[1]) && +filterValues[0] > +filterValues[1] || ['', undefined].includes(filterValues[1]) || lessThanOrEqualTo(row, id, filterValues[1]));
|
585
|
+
};
|
586
|
+
|
587
|
+
betweenInclusive.autoRemove = function (val) {
|
588
|
+
return !val;
|
589
|
+
};
|
590
|
+
|
531
591
|
var empty = function empty(row, id, _filterValue) {
|
532
592
|
return !row.getValue(id).toString().trim();
|
533
593
|
};
|
@@ -546,13 +606,16 @@ notEmpty.autoRemove = function (val) {
|
|
546
606
|
|
547
607
|
var MRT_FilterFns = /*#__PURE__*/_extends({}, filterFns, {
|
548
608
|
between: between,
|
609
|
+
betweenInclusive: betweenInclusive,
|
549
610
|
contains: contains,
|
550
611
|
empty: empty,
|
551
612
|
endsWith: endsWith,
|
552
613
|
equals: equals,
|
553
614
|
fuzzy: fuzzy,
|
554
615
|
greaterThan: greaterThan,
|
616
|
+
greaterThanOrEqualTo: greaterThanOrEqualTo,
|
555
617
|
lessThan: lessThan,
|
618
|
+
lessThanOrEqualTo: lessThanOrEqualTo,
|
556
619
|
notEmpty: notEmpty,
|
557
620
|
notEquals: notEquals,
|
558
621
|
startsWith: startsWith
|
@@ -904,7 +967,7 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
|
|
904
967
|
}));
|
905
968
|
};
|
906
969
|
|
907
|
-
var commonMenuItemStyles
|
970
|
+
var commonMenuItemStyles = {
|
908
971
|
py: '6px',
|
909
972
|
my: 0,
|
910
973
|
justifyContent: 'space-between',
|
@@ -1048,14 +1111,14 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
1048
1111
|
disabled: !column.getIsSorted(),
|
1049
1112
|
key: 0,
|
1050
1113
|
onClick: handleClearSort,
|
1051
|
-
sx: commonMenuItemStyles
|
1114
|
+
sx: commonMenuItemStyles
|
1052
1115
|
}, React.createElement(Box, {
|
1053
1116
|
sx: commonListItemStyles
|
1054
1117
|
}, React.createElement(ListItemIcon, null, React.createElement(ClearAllIcon, null)), localization.clearSort)), React.createElement(MenuItem, {
|
1055
1118
|
disabled: column.getIsSorted() === 'asc',
|
1056
1119
|
key: 1,
|
1057
1120
|
onClick: handleSortAsc,
|
1058
|
-
sx: commonMenuItemStyles
|
1121
|
+
sx: commonMenuItemStyles
|
1059
1122
|
}, React.createElement(Box, {
|
1060
1123
|
sx: commonListItemStyles
|
1061
1124
|
}, React.createElement(ListItemIcon, null, React.createElement(SortIcon, null)), (_localization$sortByC = localization.sortByColumnAsc) == null ? void 0 : _localization$sortByC.replace('{column}', String(columnDef.header)))), React.createElement(MenuItem, {
|
@@ -1063,7 +1126,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
1063
1126
|
key: 2,
|
1064
1127
|
disabled: column.getIsSorted() === 'desc',
|
1065
1128
|
onClick: handleSortDesc,
|
1066
|
-
sx: commonMenuItemStyles
|
1129
|
+
sx: commonMenuItemStyles
|
1067
1130
|
}, React.createElement(Box, {
|
1068
1131
|
sx: commonListItemStyles
|
1069
1132
|
}, React.createElement(ListItemIcon, null, React.createElement(SortIcon, {
|
@@ -1074,14 +1137,14 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
1074
1137
|
disabled: !column.getFilterValue(),
|
1075
1138
|
key: 0,
|
1076
1139
|
onClick: handleClearFilter,
|
1077
|
-
sx: commonMenuItemStyles
|
1140
|
+
sx: commonMenuItemStyles
|
1078
1141
|
}, React.createElement(Box, {
|
1079
1142
|
sx: commonListItemStyles
|
1080
1143
|
}, React.createElement(ListItemIcon, null, React.createElement(FilterListOffIcon, null)), localization.clearFilter)), React.createElement(MenuItem, {
|
1081
1144
|
divider: enableGrouping || enableHiding,
|
1082
1145
|
key: 1,
|
1083
1146
|
onClick: handleFilterByColumn,
|
1084
|
-
sx: commonMenuItemStyles
|
1147
|
+
sx: commonMenuItemStyles
|
1085
1148
|
}, React.createElement(Box, {
|
1086
1149
|
sx: commonListItemStyles
|
1087
1150
|
}, React.createElement(ListItemIcon, null, React.createElement(FilterListIcon, null)), (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(columnDef.header))), showFilterModeSubMenu && React.createElement(IconButton, {
|
@@ -1102,7 +1165,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
1102
1165
|
divider: enablePinning,
|
1103
1166
|
key: 0,
|
1104
1167
|
onClick: handleGroupByColumn,
|
1105
|
-
sx: commonMenuItemStyles
|
1168
|
+
sx: commonMenuItemStyles
|
1106
1169
|
}, React.createElement(Box, {
|
1107
1170
|
sx: commonListItemStyles
|
1108
1171
|
}, React.createElement(ListItemIcon, null, React.createElement(DynamicFeedIcon, null)), (_localization = localization[column.getIsGrouped() ? 'ungroupByColumn' : 'groupByColumn']) == null ? void 0 : _localization.replace('{column}', String(columnDef.header))))], enablePinning && column.getCanPin() && [React.createElement(MenuItem, {
|
@@ -1111,7 +1174,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
1111
1174
|
onClick: function onClick() {
|
1112
1175
|
return handlePinColumn('left');
|
1113
1176
|
},
|
1114
|
-
sx: commonMenuItemStyles
|
1177
|
+
sx: commonMenuItemStyles
|
1115
1178
|
}, React.createElement(Box, {
|
1116
1179
|
sx: commonListItemStyles
|
1117
1180
|
}, React.createElement(ListItemIcon, null, React.createElement(PushPinIcon, {
|
@@ -1124,7 +1187,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
1124
1187
|
onClick: function onClick() {
|
1125
1188
|
return handlePinColumn('right');
|
1126
1189
|
},
|
1127
|
-
sx: commonMenuItemStyles
|
1190
|
+
sx: commonMenuItemStyles
|
1128
1191
|
}, React.createElement(Box, {
|
1129
1192
|
sx: commonListItemStyles
|
1130
1193
|
}, React.createElement(ListItemIcon, null, React.createElement(PushPinIcon, {
|
@@ -1138,21 +1201,21 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
1138
1201
|
onClick: function onClick() {
|
1139
1202
|
return handlePinColumn(false);
|
1140
1203
|
},
|
1141
|
-
sx: commonMenuItemStyles
|
1204
|
+
sx: commonMenuItemStyles
|
1142
1205
|
}, React.createElement(Box, {
|
1143
1206
|
sx: commonListItemStyles
|
1144
1207
|
}, React.createElement(ListItemIcon, null, React.createElement(PushPinIcon, null)), localization.unpin))], enableColumnResizing && column.getCanResize() && [React.createElement(MenuItem, {
|
1145
1208
|
disabled: !columnSizing[column.id],
|
1146
1209
|
key: 0,
|
1147
1210
|
onClick: handleResetColumnSize,
|
1148
|
-
sx: commonMenuItemStyles
|
1211
|
+
sx: commonMenuItemStyles
|
1149
1212
|
}, React.createElement(Box, {
|
1150
1213
|
sx: commonListItemStyles
|
1151
1214
|
}, React.createElement(ListItemIcon, null, React.createElement(RestartAltIcon, null)), localization.resetColumnSize))], enableHiding && [React.createElement(MenuItem, {
|
1152
1215
|
disabled: columnDef.enableHiding === false,
|
1153
1216
|
key: 0,
|
1154
1217
|
onClick: handleHideColumn,
|
1155
|
-
sx: commonMenuItemStyles
|
1218
|
+
sx: commonMenuItemStyles
|
1156
1219
|
}, React.createElement(Box, {
|
1157
1220
|
sx: commonListItemStyles
|
1158
1221
|
}, React.createElement(ListItemIcon, null, React.createElement(VisibilityOffIcon, null)), (_localization$hideCol = localization.hideColumn) == null ? void 0 : _localization$hideCol.replace('{column}', String(columnDef.header)))), React.createElement(MenuItem, {
|
@@ -1161,7 +1224,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
1161
1224
|
}).length,
|
1162
1225
|
key: 1,
|
1163
1226
|
onClick: handleShowAllColumns,
|
1164
|
-
sx: commonMenuItemStyles
|
1227
|
+
sx: commonMenuItemStyles
|
1165
1228
|
}, React.createElement(Box, {
|
1166
1229
|
sx: commonListItemStyles
|
1167
1230
|
}, React.createElement(ListItemIcon, null, React.createElement(ViewColumnIcon, null)), (_localization$showAll = localization.showAllColumns) == null ? void 0 : _localization$showAll.replace('{column}', String(columnDef.header))), React.createElement(IconButton, {
|
@@ -1207,7 +1270,7 @@ var MRT_RowActionMenu = function MRT_RowActionMenu(_ref) {
|
|
1207
1270
|
}
|
1208
1271
|
}, enableEditing && React.createElement(MenuItem, {
|
1209
1272
|
onClick: handleEdit,
|
1210
|
-
sx: commonMenuItemStyles
|
1273
|
+
sx: commonMenuItemStyles
|
1211
1274
|
}, React.createElement(Box, {
|
1212
1275
|
sx: commonListItemStyles
|
1213
1276
|
}, React.createElement(ListItemIcon, null, React.createElement(EditIcon, null)), localization.edit)), renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems({
|