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.
@@ -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: commonMenuItemStyles,
385
+ sx: {
386
+ py: '6px',
387
+ my: 0,
388
+ alignItems: 'center',
389
+ display: 'flex',
390
+ gap: '2ch'
391
+ },
361
392
  value: option
362
- }, label);
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) >= +filterValue : row.getValue(id).toString().toLowerCase().trim() > filterValue.toString().toLowerCase().trim();
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) <= +filterValue : row.getValue(id).toString().toLowerCase().trim() < filterValue.toString().toLowerCase().trim();
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$1 = {
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$1
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$1
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$1
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$1
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$1
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$1
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$1
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$1
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$1
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$1
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$1
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$1
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$1
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({