material-react-table 0.5.6 → 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 +8 -2
- 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 +20 -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 -0
- package/dist/material-react-table.cjs.development.js +234 -68
- 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 +235 -69
- package/dist/material-react-table.esm.js.map +1 -1
- package/dist/menus/MRT_ColumnActionMenu.d.ts +12 -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 +3 -4
- package/src/MaterialReactTable.tsx +5 -9
- 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 -2
- 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 +42 -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 +7 -16
- package/src/head/MRT_TableHeadRow.tsx +1 -1
- package/src/inputs/MRT_EditCellTextField.tsx +1 -1
- package/src/inputs/MRT_FilterTextField.tsx +70 -16
- package/src/inputs/MRT_SelectCheckbox.tsx +1 -1
- package/src/localization.ts +6 -0
- package/src/menus/MRT_ColumnActionMenu.tsx +51 -43
- package/src/menus/MRT_FilterTypeMenu.tsx +56 -16
- package/src/menus/MRT_RowActionMenu.tsx +6 -8
- package/src/menus/MRT_ShowHideColumnsMenu.tsx +6 -2
- package/src/useMRT.tsx +36 -14
|
@@ -167,6 +167,26 @@ notEqualsFilterFN.autoRemove = function (val) {
|
|
|
167
167
|
return !val;
|
|
168
168
|
};
|
|
169
169
|
|
|
170
|
+
var greaterThanFilterFN = function greaterThanFilterFN(rows, id, filterValue) {
|
|
171
|
+
return rows.filter(function (row) {
|
|
172
|
+
return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] > +filterValue : row.values[id].toString().toLowerCase().trim() > filterValue.toString().toLowerCase().trim();
|
|
173
|
+
});
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
greaterThanFilterFN.autoRemove = function (val) {
|
|
177
|
+
return !val;
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
var lessThanFilterFN = function lessThanFilterFN(rows, id, filterValue) {
|
|
181
|
+
return rows.filter(function (row) {
|
|
182
|
+
return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] < +filterValue : row.values[id].toString().toLowerCase().trim() < filterValue.toString().toLowerCase().trim();
|
|
183
|
+
});
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
lessThanFilterFN.autoRemove = function (val) {
|
|
187
|
+
return !val;
|
|
188
|
+
};
|
|
189
|
+
|
|
170
190
|
var emptyFilterFN = function emptyFilterFN(rows, id, _filterValue) {
|
|
171
191
|
return rows.filter(function (row) {
|
|
172
192
|
return !row.values[id].toString().toLowerCase().trim();
|
|
@@ -191,6 +211,8 @@ var defaultFilterFNs = {
|
|
|
191
211
|
contains: containsFilterFN,
|
|
192
212
|
empty: emptyFilterFN,
|
|
193
213
|
endsWith: endsWithFilterFN,
|
|
214
|
+
greaterThan: greaterThanFilterFN,
|
|
215
|
+
lessThan: lessThanFilterFN,
|
|
194
216
|
equals: equalsFilterFN,
|
|
195
217
|
fuzzy: fuzzyFilterFN,
|
|
196
218
|
notEmpty: notEmptyFilterFN,
|
|
@@ -232,16 +254,40 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
|
|
|
232
254
|
return _extends({}, defaultFilterFNs, props.filterTypes);
|
|
233
255
|
}, [props.filterTypes]);
|
|
234
256
|
|
|
235
|
-
var
|
|
236
|
-
|
|
237
|
-
|
|
257
|
+
var getInitialFilterTypeState = function getInitialFilterTypeState() {
|
|
258
|
+
var lowestLevelColumns = props.columns;
|
|
259
|
+
var currentCols = props.columns;
|
|
260
|
+
|
|
261
|
+
while (!!currentCols.length && currentCols.some(function (col) {
|
|
262
|
+
return col.columns;
|
|
263
|
+
})) {
|
|
264
|
+
var nextCols = currentCols.filter(function (col) {
|
|
265
|
+
return !!col.columns;
|
|
266
|
+
}).map(function (col) {
|
|
267
|
+
return col.columns;
|
|
268
|
+
}).flat();
|
|
269
|
+
|
|
270
|
+
if (nextCols.every(function (col) {
|
|
271
|
+
return !col.columns;
|
|
272
|
+
})) {
|
|
273
|
+
lowestLevelColumns = [].concat(lowestLevelColumns, nextCols);
|
|
274
|
+
}
|
|
238
275
|
|
|
239
|
-
|
|
240
|
-
}
|
|
241
|
-
var _props$initialState$f2, _props$initialState5, _props$initialState5$, _ref;
|
|
276
|
+
currentCols = nextCols;
|
|
277
|
+
}
|
|
242
278
|
|
|
243
|
-
|
|
279
|
+
lowestLevelColumns = lowestLevelColumns.filter(function (col) {
|
|
280
|
+
return !col.columns;
|
|
281
|
+
});
|
|
282
|
+
return Object.assign.apply(Object, [{}].concat(lowestLevelColumns.map(function (c) {
|
|
283
|
+
var _ref, _c$filter, _props$initialState5, _props$initialState5$, _ref2;
|
|
284
|
+
|
|
285
|
+
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;
|
|
244
286
|
})));
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
var _useState6 = React.useState(function () {
|
|
290
|
+
return getInitialFilterTypeState();
|
|
245
291
|
}),
|
|
246
292
|
currentFilterTypes = _useState6[0],
|
|
247
293
|
setCurrentFilterTypes = _useState6[1];
|
|
@@ -256,6 +302,7 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
|
|
|
256
302
|
columns: columns,
|
|
257
303
|
// @ts-ignore
|
|
258
304
|
filterTypes: filterTypes,
|
|
305
|
+
globalFilterValue: 'fuzzy',
|
|
259
306
|
useControlledState: function useControlledState(state) {
|
|
260
307
|
return React.useMemo(function () {
|
|
261
308
|
return _extends({}, state, {
|
|
@@ -305,6 +352,26 @@ var useMRT = function useMRT() {
|
|
|
305
352
|
return React.useContext(MaterialReactTableContext);
|
|
306
353
|
};
|
|
307
354
|
|
|
355
|
+
var MRT_FILTER_TYPE;
|
|
356
|
+
|
|
357
|
+
(function (MRT_FILTER_TYPE) {
|
|
358
|
+
MRT_FILTER_TYPE["CONTAINS"] = "contains";
|
|
359
|
+
MRT_FILTER_TYPE["EMPTY"] = "empty";
|
|
360
|
+
MRT_FILTER_TYPE["ENDS_WITH"] = "endsWith";
|
|
361
|
+
MRT_FILTER_TYPE["EQUALS"] = "equals";
|
|
362
|
+
MRT_FILTER_TYPE["FUZZY"] = "fuzzy";
|
|
363
|
+
MRT_FILTER_TYPE["GREATER_THAN"] = "greaterThan";
|
|
364
|
+
MRT_FILTER_TYPE["LESS_THAN"] = "lessThan";
|
|
365
|
+
MRT_FILTER_TYPE["NOT_EMPTY"] = "notEmpty";
|
|
366
|
+
MRT_FILTER_TYPE["NOT_EQUALS"] = "notEquals";
|
|
367
|
+
MRT_FILTER_TYPE["STARTS_WITH"] = "startsWith";
|
|
368
|
+
})(MRT_FILTER_TYPE || (MRT_FILTER_TYPE = {}));
|
|
369
|
+
|
|
370
|
+
var commonMenuItemStyles = {
|
|
371
|
+
py: '6px',
|
|
372
|
+
my: 0,
|
|
373
|
+
alignItems: 'center'
|
|
374
|
+
};
|
|
308
375
|
var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
|
|
309
376
|
var anchorEl = _ref.anchorEl,
|
|
310
377
|
column = _ref.column,
|
|
@@ -318,37 +385,55 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
|
|
|
318
385
|
|
|
319
386
|
var filterTypes = React.useMemo(function () {
|
|
320
387
|
return [{
|
|
321
|
-
type:
|
|
388
|
+
type: MRT_FILTER_TYPE.FUZZY,
|
|
322
389
|
label: localization.filterMenuItemFuzzy,
|
|
323
|
-
divider: false
|
|
390
|
+
divider: false,
|
|
391
|
+
fn: fuzzyFilterFN
|
|
324
392
|
}, {
|
|
325
|
-
type:
|
|
393
|
+
type: MRT_FILTER_TYPE.CONTAINS,
|
|
326
394
|
label: localization.filterMenuItemContains,
|
|
327
|
-
divider: true
|
|
395
|
+
divider: true,
|
|
396
|
+
fn: containsFilterFN
|
|
328
397
|
}, {
|
|
329
|
-
type:
|
|
398
|
+
type: MRT_FILTER_TYPE.STARTS_WITH,
|
|
330
399
|
label: localization.filterMenuItemStartsWith,
|
|
331
|
-
divider: false
|
|
400
|
+
divider: false,
|
|
401
|
+
fn: startsWithFilterFN
|
|
332
402
|
}, {
|
|
333
|
-
type:
|
|
403
|
+
type: MRT_FILTER_TYPE.ENDS_WITH,
|
|
334
404
|
label: localization.filterMenuItemEndsWith,
|
|
335
|
-
divider: true
|
|
405
|
+
divider: true,
|
|
406
|
+
fn: endsWithFilterFN
|
|
336
407
|
}, {
|
|
337
|
-
type:
|
|
408
|
+
type: MRT_FILTER_TYPE.EQUALS,
|
|
338
409
|
label: localization.filterMenuItemEquals,
|
|
339
|
-
divider: false
|
|
410
|
+
divider: false,
|
|
411
|
+
fn: equalsFilterFN
|
|
340
412
|
}, {
|
|
341
|
-
type:
|
|
413
|
+
type: MRT_FILTER_TYPE.NOT_EQUALS,
|
|
342
414
|
label: localization.filterMenuItemNotEquals,
|
|
343
|
-
divider: true
|
|
415
|
+
divider: true,
|
|
416
|
+
fn: notEqualsFilterFN
|
|
417
|
+
}, {
|
|
418
|
+
type: MRT_FILTER_TYPE.GREATER_THAN,
|
|
419
|
+
label: localization.filterMenuItemGreaterThan,
|
|
420
|
+
divider: false,
|
|
421
|
+
fn: greaterThanFilterFN
|
|
344
422
|
}, {
|
|
345
|
-
type:
|
|
423
|
+
type: MRT_FILTER_TYPE.LESS_THAN,
|
|
424
|
+
label: localization.filterMenuItemLessThan,
|
|
425
|
+
divider: true,
|
|
426
|
+
fn: lessThanFilterFN
|
|
427
|
+
}, {
|
|
428
|
+
type: MRT_FILTER_TYPE.EMPTY,
|
|
346
429
|
label: localization.filterMenuItemEmpty,
|
|
347
|
-
divider: false
|
|
430
|
+
divider: false,
|
|
431
|
+
fn: emptyFilterFN
|
|
348
432
|
}, {
|
|
349
|
-
type:
|
|
433
|
+
type: MRT_FILTER_TYPE.NOT_EMPTY,
|
|
350
434
|
label: localization.filterMenuItemNotEmpty,
|
|
351
|
-
divider: false
|
|
435
|
+
divider: false,
|
|
436
|
+
fn: notEmptyFilterFN
|
|
352
437
|
}];
|
|
353
438
|
}, []);
|
|
354
439
|
|
|
@@ -360,7 +445,7 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
|
|
|
360
445
|
return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = value, _extends2));
|
|
361
446
|
});
|
|
362
447
|
|
|
363
|
-
if ([
|
|
448
|
+
if ([MRT_FILTER_TYPE.EMPTY, MRT_FILTER_TYPE.NOT_EMPTY].includes(value)) {
|
|
364
449
|
column.setFilter(' ');
|
|
365
450
|
}
|
|
366
451
|
|
|
@@ -379,27 +464,28 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
|
|
|
379
464
|
},
|
|
380
465
|
open: !!anchorEl,
|
|
381
466
|
MenuListProps: {
|
|
382
|
-
dense: tableInstance.state.densePadding
|
|
383
|
-
disablePadding: true
|
|
467
|
+
dense: tableInstance.state.densePadding
|
|
384
468
|
}
|
|
385
|
-
}, filterTypes.map(function (_ref2) {
|
|
469
|
+
}, filterTypes.map(function (_ref2, index) {
|
|
386
470
|
var type = _ref2.type,
|
|
387
471
|
label = _ref2.label,
|
|
388
|
-
divider = _ref2.divider
|
|
472
|
+
divider = _ref2.divider,
|
|
473
|
+
fn = _ref2.fn;
|
|
389
474
|
return React__default.createElement(material.MenuItem, {
|
|
390
475
|
divider: divider,
|
|
391
|
-
key:
|
|
476
|
+
key: index,
|
|
392
477
|
onClick: function onClick() {
|
|
393
478
|
return handleSelectFilterType(type);
|
|
394
479
|
},
|
|
395
|
-
selected: type === filterType,
|
|
480
|
+
selected: type === filterType || fn === filterType,
|
|
481
|
+
sx: commonMenuItemStyles,
|
|
396
482
|
value: type
|
|
397
483
|
}, label);
|
|
398
484
|
}));
|
|
399
485
|
};
|
|
400
486
|
|
|
401
487
|
var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
402
|
-
var _localization$filterT, _localization$filterT2;
|
|
488
|
+
var _localization$filterT, _localization$filterT2, _column$filterSelectO;
|
|
403
489
|
|
|
404
490
|
var column = _ref.column;
|
|
405
491
|
|
|
@@ -447,7 +533,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
447
533
|
setCurrentFilterTypes(function (prev) {
|
|
448
534
|
var _extends2;
|
|
449
535
|
|
|
450
|
-
return _extends({}, prev, (_extends2 = {}, _extends2[column.id] =
|
|
536
|
+
return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = MRT_FILTER_TYPE.FUZZY, _extends2));
|
|
451
537
|
});
|
|
452
538
|
};
|
|
453
539
|
|
|
@@ -458,7 +544,9 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
458
544
|
}
|
|
459
545
|
|
|
460
546
|
var filterType = tableInstance.state.currentFilterTypes[column.id];
|
|
461
|
-
var
|
|
547
|
+
var isCustomFilterType = filterType instanceof Function;
|
|
548
|
+
var isSelectFilter = !!column.filterSelectOptions;
|
|
549
|
+
var filterChipLabel = !isCustomFilterType && [MRT_FILTER_TYPE.EMPTY, MRT_FILTER_TYPE.NOT_EMPTY].includes(filterType);
|
|
462
550
|
var filterPlaceholder = (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header));
|
|
463
551
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.TextField, Object.assign({
|
|
464
552
|
fullWidth: true,
|
|
@@ -471,8 +559,16 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
471
559
|
},
|
|
472
560
|
title: filterPlaceholder
|
|
473
561
|
},
|
|
562
|
+
label: isSelectFilter && !filterValue ? filterPlaceholder : undefined,
|
|
563
|
+
InputLabelProps: {
|
|
564
|
+
shrink: false,
|
|
565
|
+
sx: {
|
|
566
|
+
maxWidth: 'calc(100% - 2.5rem)'
|
|
567
|
+
},
|
|
568
|
+
title: filterPlaceholder
|
|
569
|
+
},
|
|
474
570
|
margin: "none",
|
|
475
|
-
placeholder: filterChipLabel ?
|
|
571
|
+
placeholder: filterChipLabel || isSelectFilter ? undefined : filterPlaceholder,
|
|
476
572
|
onChange: function onChange(e) {
|
|
477
573
|
setFilterValue(e.target.value);
|
|
478
574
|
handleChange(e.target.value);
|
|
@@ -480,22 +576,23 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
480
576
|
onClick: function onClick(e) {
|
|
481
577
|
return e.stopPropagation();
|
|
482
578
|
},
|
|
579
|
+
select: isSelectFilter,
|
|
483
580
|
value: filterValue != null ? filterValue : '',
|
|
484
581
|
variant: "standard",
|
|
485
582
|
InputProps: {
|
|
486
|
-
startAdornment: React__default.createElement(material.InputAdornment, {
|
|
583
|
+
startAdornment: !isSelectFilter && React__default.createElement(material.InputAdornment, {
|
|
487
584
|
position: "start"
|
|
488
585
|
}, React__default.createElement(material.Tooltip, {
|
|
489
586
|
arrow: true,
|
|
490
|
-
title:
|
|
491
|
-
}, React__default.createElement(material.IconButton, {
|
|
587
|
+
title: localization.changeFilterMode
|
|
588
|
+
}, React__default.createElement("span", null, React__default.createElement(material.IconButton, {
|
|
492
589
|
onClick: handleFilterMenuOpen,
|
|
493
590
|
size: "small",
|
|
494
591
|
sx: {
|
|
495
592
|
height: '1.75rem',
|
|
496
593
|
width: '1.75rem'
|
|
497
594
|
}
|
|
498
|
-
}, React__default.createElement(FilterListIcon, null))), filterChipLabel && React__default.createElement(material.Chip, {
|
|
595
|
+
}, React__default.createElement(FilterListIcon, null)))), filterChipLabel && React__default.createElement(material.Chip, {
|
|
499
596
|
onDelete: handleClearFilterChip,
|
|
500
597
|
label: filterType
|
|
501
598
|
})),
|
|
@@ -503,11 +600,12 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
503
600
|
position: "end"
|
|
504
601
|
}, React__default.createElement(material.Tooltip, {
|
|
505
602
|
arrow: true,
|
|
603
|
+
disableHoverListener: isSelectFilter,
|
|
506
604
|
placement: "right",
|
|
507
605
|
title: (_localization$filterT2 = localization.filterTextFieldClearButtonTitle) != null ? _localization$filterT2 : ''
|
|
508
606
|
}, React__default.createElement("span", null, React__default.createElement(material.IconButton, {
|
|
509
607
|
"aria-label": localization.filterTextFieldClearButtonTitle,
|
|
510
|
-
disabled: (filterValue
|
|
608
|
+
disabled: !(filterValue != null && filterValue.length),
|
|
511
609
|
onClick: handleClear,
|
|
512
610
|
size: "small",
|
|
513
611
|
sx: {
|
|
@@ -522,8 +620,32 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
522
620
|
sx: _extends({
|
|
523
621
|
m: '0 -0.25rem',
|
|
524
622
|
minWidth: !filterChipLabel ? '5rem' : 'auto',
|
|
525
|
-
width: 'calc(100% + 0.5rem)'
|
|
623
|
+
width: 'calc(100% + 0.5rem)',
|
|
624
|
+
mt: isSelectFilter && !filterValue ? '-1rem' : undefined,
|
|
625
|
+
'& .MuiSelect-icon': {
|
|
626
|
+
mr: '1.5rem'
|
|
627
|
+
}
|
|
526
628
|
}, textFieldProps == null ? void 0 : textFieldProps.sx)
|
|
629
|
+
}), isSelectFilter && React__default.createElement(material.MenuItem, {
|
|
630
|
+
divider: true,
|
|
631
|
+
disabled: !filterValue,
|
|
632
|
+
value: ""
|
|
633
|
+
}, localization.filterTextFieldClearButtonTitle), column == null ? void 0 : (_column$filterSelectO = column.filterSelectOptions) == null ? void 0 : _column$filterSelectO.map(function (option) {
|
|
634
|
+
var value;
|
|
635
|
+
var text;
|
|
636
|
+
|
|
637
|
+
if (typeof option === 'string') {
|
|
638
|
+
value = option;
|
|
639
|
+
text = option;
|
|
640
|
+
} else if (typeof option === 'object') {
|
|
641
|
+
value = option.value;
|
|
642
|
+
text = option.text;
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
return React__default.createElement(material.MenuItem, {
|
|
646
|
+
key: value,
|
|
647
|
+
value: value
|
|
648
|
+
}, text);
|
|
527
649
|
})), React__default.createElement(MRT_FilterTypeMenu, {
|
|
528
650
|
anchorEl: anchorEl,
|
|
529
651
|
column: column,
|
|
@@ -531,8 +653,15 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
531
653
|
}));
|
|
532
654
|
};
|
|
533
655
|
|
|
534
|
-
var commonMenuItemStyles = {
|
|
656
|
+
var commonMenuItemStyles$1 = {
|
|
657
|
+
py: '6px',
|
|
658
|
+
my: 0,
|
|
659
|
+
justifyContent: 'space-between',
|
|
660
|
+
alignItems: 'center'
|
|
661
|
+
};
|
|
662
|
+
var commonListItemStyles = {
|
|
535
663
|
display: 'flex',
|
|
664
|
+
gap: '0.75rem',
|
|
536
665
|
alignItems: 'center'
|
|
537
666
|
};
|
|
538
667
|
var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
@@ -552,6 +681,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
|
552
681
|
ClearAllIcon = _useMRT$icons.ClearAllIcon,
|
|
553
682
|
DynamicFeedIcon = _useMRT$icons.DynamicFeedIcon,
|
|
554
683
|
FilterListIcon = _useMRT$icons.FilterListIcon,
|
|
684
|
+
FilterListOffIcon = _useMRT$icons.FilterListOffIcon,
|
|
555
685
|
SortIcon = _useMRT$icons.SortIcon,
|
|
556
686
|
VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon,
|
|
557
687
|
idPrefix = _useMRT.idPrefix,
|
|
@@ -588,6 +718,11 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
|
588
718
|
setAnchorEl(null);
|
|
589
719
|
};
|
|
590
720
|
|
|
721
|
+
var handleClearFilter = function handleClearFilter() {
|
|
722
|
+
column.setFilter('');
|
|
723
|
+
setAnchorEl(null);
|
|
724
|
+
};
|
|
725
|
+
|
|
591
726
|
var handleFilterByColumn = function handleFilterByColumn() {
|
|
592
727
|
setShowFilters(true);
|
|
593
728
|
setTimeout(function () {
|
|
@@ -611,35 +746,49 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
|
611
746
|
return setAnchorEl(null);
|
|
612
747
|
},
|
|
613
748
|
MenuListProps: {
|
|
614
|
-
dense: tableInstance.state.densePadding
|
|
615
|
-
disablePadding: true
|
|
749
|
+
dense: tableInstance.state.densePadding
|
|
616
750
|
}
|
|
617
751
|
}, !disableSortBy && column.canSort && [React__default.createElement(material.MenuItem, {
|
|
618
|
-
key: 1,
|
|
619
752
|
disabled: !column.isSorted,
|
|
753
|
+
key: 1,
|
|
620
754
|
onClick: handleClearSort,
|
|
621
|
-
sx: commonMenuItemStyles
|
|
622
|
-
}, React__default.createElement(material.
|
|
755
|
+
sx: commonMenuItemStyles$1
|
|
756
|
+
}, React__default.createElement(material.Box, {
|
|
757
|
+
sx: commonListItemStyles
|
|
758
|
+
}, React__default.createElement(ClearAllIcon, null), localization.columnActionMenuItemClearSort)), React__default.createElement(material.MenuItem, {
|
|
623
759
|
disabled: column.isSorted && !column.isSortedDesc,
|
|
624
760
|
key: 2,
|
|
625
761
|
onClick: handleSortAsc,
|
|
626
|
-
sx: commonMenuItemStyles
|
|
627
|
-
}, React__default.createElement(material.
|
|
762
|
+
sx: commonMenuItemStyles$1
|
|
763
|
+
}, React__default.createElement(material.Box, {
|
|
764
|
+
sx: commonListItemStyles
|
|
765
|
+
}, React__default.createElement(SortIcon, null), (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header)))), React__default.createElement(material.MenuItem, {
|
|
628
766
|
divider: !disableFilters || enableColumnGrouping || !disableColumnHiding,
|
|
629
767
|
key: 3,
|
|
630
768
|
disabled: column.isSorted && column.isSortedDesc,
|
|
631
769
|
onClick: handleSortDesc,
|
|
632
|
-
sx: commonMenuItemStyles
|
|
633
|
-
}, React__default.createElement(material.
|
|
770
|
+
sx: commonMenuItemStyles$1
|
|
771
|
+
}, React__default.createElement(material.Box, {
|
|
772
|
+
sx: commonListItemStyles
|
|
773
|
+
}, React__default.createElement(SortIcon, {
|
|
634
774
|
style: {
|
|
635
775
|
transform: 'rotate(180deg) scaleX(-1)'
|
|
636
776
|
}
|
|
637
|
-
})
|
|
777
|
+
}), (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header))))], !disableFilters && column.canFilter && [React__default.createElement(material.MenuItem, {
|
|
778
|
+
disabled: !column.filterValue,
|
|
779
|
+
key: 0,
|
|
780
|
+
onClick: handleClearFilter,
|
|
781
|
+
sx: commonMenuItemStyles$1
|
|
782
|
+
}, React__default.createElement(material.Box, {
|
|
783
|
+
sx: commonListItemStyles
|
|
784
|
+
}, React__default.createElement(FilterListOffIcon, null), localization.filterTextFieldClearButtonTitle)), React__default.createElement(material.MenuItem, {
|
|
638
785
|
divider: enableColumnGrouping || !disableColumnHiding,
|
|
639
786
|
key: 1,
|
|
640
787
|
onClick: handleFilterByColumn,
|
|
641
|
-
sx: commonMenuItemStyles
|
|
642
|
-
}, React__default.createElement(material.
|
|
788
|
+
sx: commonMenuItemStyles$1
|
|
789
|
+
}, React__default.createElement(material.Box, {
|
|
790
|
+
sx: commonListItemStyles
|
|
791
|
+
}, React__default.createElement(FilterListIcon, null), (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header))), !column.filterSelectOptions && React__default.createElement(material.IconButton, {
|
|
643
792
|
onClick: handleOpenFilterModeMenu,
|
|
644
793
|
onMouseEnter: handleOpenFilterModeMenu,
|
|
645
794
|
size: "small",
|
|
@@ -656,12 +805,16 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
|
656
805
|
divider: !disableColumnHiding,
|
|
657
806
|
key: 2,
|
|
658
807
|
onClick: handleGroupByColumn,
|
|
659
|
-
sx: commonMenuItemStyles
|
|
660
|
-
}, React__default.createElement(material.
|
|
808
|
+
sx: commonMenuItemStyles$1
|
|
809
|
+
}, React__default.createElement(material.Box, {
|
|
810
|
+
sx: commonListItemStyles
|
|
811
|
+
}, React__default.createElement(DynamicFeedIcon, null), (_localization = localization[column.isGrouped ? 'columnActionMenuItemUnGroupBy' : 'columnActionMenuItemGroupBy']) == null ? void 0 : _localization.replace('{column}', String(column.Header))))], !disableColumnHiding && [React__default.createElement(material.MenuItem, {
|
|
661
812
|
key: 1,
|
|
662
813
|
onClick: handleHideColumn,
|
|
663
|
-
sx: commonMenuItemStyles
|
|
664
|
-
}, React__default.createElement(material.
|
|
814
|
+
sx: commonMenuItemStyles$1
|
|
815
|
+
}, React__default.createElement(material.Box, {
|
|
816
|
+
sx: commonListItemStyles
|
|
817
|
+
}, React__default.createElement(VisibilityOffIcon, null), (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header))))]);
|
|
665
818
|
};
|
|
666
819
|
|
|
667
820
|
var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton(_ref) {
|
|
@@ -685,6 +838,7 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
|
|
|
685
838
|
arrow: true,
|
|
686
839
|
enterDelay: 1000,
|
|
687
840
|
enterNextDelay: 1000,
|
|
841
|
+
placement: "top",
|
|
688
842
|
title: localization.columnActionMenuButtonTitle
|
|
689
843
|
}, React__default.createElement(material.IconButton, {
|
|
690
844
|
"aria-label": localization.columnActionMenuButtonTitle,
|
|
@@ -744,8 +898,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
|
|
|
744
898
|
});
|
|
745
899
|
|
|
746
900
|
var sortTooltip = column.isSorted ? column.isSortedDesc ? localization.columnActionMenuItemClearSort : (_localization$columnA = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA.replace('{column}', column.Header) : (_localization$columnA2 = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA2.replace('{column}', column.Header);
|
|
747
|
-
var filterTooltip = !!column.filterValue ? localization.filterApplied.replace('{column}', String(column.Header)).replace('{filterType}',
|
|
748
|
-
localization["filterMenuItem" + (tableInstance.state.currentFilterTypes[column.id].charAt(0).toUpperCase() + tableInstance.state.currentFilterTypes[column.id].slice(1))]) : localization.toggleFilterButtonTitle;
|
|
901
|
+
var filterTooltip = !!column.filterValue ? localization.filterApplied.replace('{column}', String(column.Header)).replace('{filterType}', column.filterValue) : localization.toggleFilterButtonTitle;
|
|
749
902
|
var columnHeader = column.render('Header');
|
|
750
903
|
return React__default.createElement(material.TableCell, Object.assign({
|
|
751
904
|
align: isParentHeader ? 'center' : 'left'
|
|
@@ -768,6 +921,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
|
|
|
768
921
|
title: undefined
|
|
769
922
|
}), column.render('Header'), !isParentHeader && column.canSort && React__default.createElement(material.Tooltip, {
|
|
770
923
|
arrow: true,
|
|
924
|
+
placement: "top",
|
|
771
925
|
title: sortTooltip
|
|
772
926
|
}, React__default.createElement(material.TableSortLabel, {
|
|
773
927
|
"aria-label": sortTooltip,
|
|
@@ -775,19 +929,22 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
|
|
|
775
929
|
direction: column.isSortedDesc ? 'desc' : 'asc'
|
|
776
930
|
})), !isParentHeader && !!column.canFilter && React__default.createElement(material.Tooltip, {
|
|
777
931
|
arrow: true,
|
|
932
|
+
placement: "top",
|
|
778
933
|
title: filterTooltip
|
|
779
934
|
}, React__default.createElement(material.IconButton, {
|
|
935
|
+
disableRipple: true,
|
|
780
936
|
onClick: function onClick(event) {
|
|
781
937
|
event.stopPropagation();
|
|
782
938
|
setShowFilters(!tableInstance.state.showFilters);
|
|
783
939
|
},
|
|
784
940
|
size: "small",
|
|
785
941
|
sx: {
|
|
942
|
+
m: 0,
|
|
786
943
|
opacity: !!column.filterValue ? 0.8 : 0,
|
|
787
944
|
p: '2px',
|
|
788
|
-
m: 0,
|
|
789
945
|
transition: 'all 0.2s ease-in-out',
|
|
790
946
|
'&:hover': {
|
|
947
|
+
backgroundColor: 'transparent',
|
|
791
948
|
opacity: 0.8
|
|
792
949
|
}
|
|
793
950
|
}
|
|
@@ -1148,12 +1305,12 @@ var MRT_RowActionMenu = function MRT_RowActionMenu(_ref) {
|
|
|
1148
1305
|
return setAnchorEl(null);
|
|
1149
1306
|
},
|
|
1150
1307
|
MenuListProps: {
|
|
1151
|
-
dense: tableInstance.state.densePadding
|
|
1152
|
-
disablePadding: true
|
|
1308
|
+
dense: tableInstance.state.densePadding
|
|
1153
1309
|
}
|
|
1154
1310
|
}, enableRowEditing && React__default.createElement(material.MenuItem, {
|
|
1155
|
-
onClick: handleEdit
|
|
1156
|
-
|
|
1311
|
+
onClick: handleEdit,
|
|
1312
|
+
sx: commonMenuItemStyles$1
|
|
1313
|
+
}, React__default.createElement(EditIcon, null), localization.rowActionMenuItemEdit), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
|
|
1157
1314
|
return setAnchorEl(null);
|
|
1158
1315
|
})) != null ? _renderRowActionMenuI : null);
|
|
1159
1316
|
};
|
|
@@ -2337,10 +2494,17 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
|
|
|
2337
2494
|
};
|
|
2338
2495
|
|
|
2339
2496
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.MenuItem, {
|
|
2340
|
-
sx: {
|
|
2497
|
+
sx: _extends({}, commonMenuItemStyles$1, {
|
|
2341
2498
|
pl: (column.depth + 0.5) * 2 + "rem"
|
|
2342
|
-
}
|
|
2499
|
+
})
|
|
2343
2500
|
}, React__default.createElement(material.FormControlLabel, {
|
|
2501
|
+
componentsProps: {
|
|
2502
|
+
typography: {
|
|
2503
|
+
sx: {
|
|
2504
|
+
marginBottom: 0
|
|
2505
|
+
}
|
|
2506
|
+
}
|
|
2507
|
+
},
|
|
2344
2508
|
checked: switchChecked,
|
|
2345
2509
|
control: React__default.createElement(material.Switch, null),
|
|
2346
2510
|
label: column.Header,
|
|
@@ -2385,8 +2549,7 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
|
|
|
2385
2549
|
return setAnchorEl(null);
|
|
2386
2550
|
},
|
|
2387
2551
|
MenuListProps: {
|
|
2388
|
-
dense: tableInstance.state.densePadding
|
|
2389
|
-
disablePadding: true
|
|
2552
|
+
dense: tableInstance.state.densePadding
|
|
2390
2553
|
}
|
|
2391
2554
|
}, React__default.createElement(material.Box, {
|
|
2392
2555
|
sx: {
|
|
@@ -2748,6 +2911,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
|
|
|
2748
2911
|
|
|
2749
2912
|
var MRT_DefaultLocalization_EN = {
|
|
2750
2913
|
actionsHeadColumnTitle: 'Actions',
|
|
2914
|
+
changeFilterMode: 'Change filter mode',
|
|
2751
2915
|
columnActionMenuButtonTitle: 'Column Actions',
|
|
2752
2916
|
columnActionMenuItemClearSort: 'Clear sort',
|
|
2753
2917
|
columnActionMenuItemGroupBy: 'Group by {column}',
|
|
@@ -2765,6 +2929,8 @@ var MRT_DefaultLocalization_EN = {
|
|
|
2765
2929
|
filterMenuItemEndsWith: 'Ends With',
|
|
2766
2930
|
filterMenuItemEquals: 'Equals',
|
|
2767
2931
|
filterMenuItemFuzzy: 'Fuzzy Match (Default)',
|
|
2932
|
+
filterMenuItemGreaterThan: 'Greater Than',
|
|
2933
|
+
filterMenuItemLessThan: 'Less Than',
|
|
2768
2934
|
filterMenuItemNotEmpty: 'Not Empty',
|
|
2769
2935
|
filterMenuItemNotEquals: 'Not Equals',
|
|
2770
2936
|
filterMenuItemStartsWith: 'Starts With',
|