material-react-table 0.25.0 → 0.26.0
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/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({
|