material-react-table 0.5.7 → 0.5.8
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 +17 -2
- package/dist/filtersFNs.d.ts +4 -0
- package/dist/localization.d.ts +1 -0
- package/dist/material-react-table.cjs.development.js +264 -189
- 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 +267 -190
- package/dist/material-react-table.esm.js.map +1 -1
- package/dist/menus/MRT_ColumnActionMenu.d.ts +8 -1
- package/package.json +2 -2
- package/src/MaterialReactTable.tsx +15 -9
- package/src/buttons/MRT_ShowHideColumnsButton.tsx +0 -3
- package/src/filtersFNs.ts +12 -0
- package/src/head/MRT_TableHeadCell.tsx +6 -15
- package/src/inputs/MRT_FilterTextField.tsx +70 -16
- package/src/localization.ts +2 -0
- package/src/menus/MRT_ColumnActionMenu.tsx +51 -43
- package/src/menus/MRT_FilterTypeMenu.tsx +20 -17
- package/src/menus/MRT_RowActionMenu.tsx +3 -9
- package/src/menus/MRT_ShowHideColumnsMenu.tsx +5 -1
- package/src/useMRT.tsx +14 -9
|
@@ -234,13 +234,9 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
|
|
|
234
234
|
|
|
235
235
|
var _useState6 = React.useState(function () {
|
|
236
236
|
return Object.assign.apply(Object, [{}].concat(props.columns.map(function (c) {
|
|
237
|
-
var _c$
|
|
237
|
+
var _ref, _c$filter, _props$initialState5, _props$initialState5$, _ref2;
|
|
238
238
|
|
|
239
|
-
return (_c$
|
|
240
|
-
}).map(function (accessor) {
|
|
241
|
-
var _props$initialState$f2, _props$initialState5, _props$initialState5$, _ref;
|
|
242
|
-
|
|
243
|
-
return _ref = {}, _ref[accessor] = (_props$initialState$f2 = props == null ? void 0 : (_props$initialState5 = props.initialState) == null ? void 0 : (_props$initialState5$ = _props$initialState5.filters) == null ? void 0 : _props$initialState5$[accessor]) != null ? _props$initialState$f2 : 'fuzzy', _ref;
|
|
239
|
+
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
240
|
})));
|
|
245
241
|
}),
|
|
246
242
|
currentFilterTypes = _useState6[0],
|
|
@@ -256,6 +252,7 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
|
|
|
256
252
|
columns: columns,
|
|
257
253
|
// @ts-ignore
|
|
258
254
|
filterTypes: filterTypes,
|
|
255
|
+
globalFilterValue: 'fuzzy',
|
|
259
256
|
useControlledState: function useControlledState(state) {
|
|
260
257
|
return React.useMemo(function () {
|
|
261
258
|
return _extends({}, state, {
|
|
@@ -306,150 +303,10 @@ var useMRT = function useMRT() {
|
|
|
306
303
|
};
|
|
307
304
|
|
|
308
305
|
var commonMenuItemStyles = {
|
|
309
|
-
py: '
|
|
310
|
-
my:
|
|
306
|
+
py: '6px',
|
|
307
|
+
my: 0,
|
|
308
|
+
alignItems: 'center'
|
|
311
309
|
};
|
|
312
|
-
var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
313
|
-
var _localization$columnA, _localization$columnA2, _localization$filterT, _localization, _localization$columnA3;
|
|
314
|
-
|
|
315
|
-
var anchorEl = _ref.anchorEl,
|
|
316
|
-
column = _ref.column,
|
|
317
|
-
setAnchorEl = _ref.setAnchorEl;
|
|
318
|
-
|
|
319
|
-
var _useMRT = useMRT(),
|
|
320
|
-
disableColumnHiding = _useMRT.disableColumnHiding,
|
|
321
|
-
disableFilters = _useMRT.disableFilters,
|
|
322
|
-
disableSortBy = _useMRT.disableSortBy,
|
|
323
|
-
enableColumnGrouping = _useMRT.enableColumnGrouping,
|
|
324
|
-
_useMRT$icons = _useMRT.icons,
|
|
325
|
-
ArrowRightIcon = _useMRT$icons.ArrowRightIcon,
|
|
326
|
-
ClearAllIcon = _useMRT$icons.ClearAllIcon,
|
|
327
|
-
DynamicFeedIcon = _useMRT$icons.DynamicFeedIcon,
|
|
328
|
-
FilterListIcon = _useMRT$icons.FilterListIcon,
|
|
329
|
-
SortIcon = _useMRT$icons.SortIcon,
|
|
330
|
-
VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon,
|
|
331
|
-
idPrefix = _useMRT.idPrefix,
|
|
332
|
-
localization = _useMRT.localization,
|
|
333
|
-
setShowFilters = _useMRT.setShowFilters,
|
|
334
|
-
tableInstance = _useMRT.tableInstance;
|
|
335
|
-
|
|
336
|
-
var _useState = React.useState(null),
|
|
337
|
-
filterMenuAnchorEl = _useState[0],
|
|
338
|
-
setFilterMenuAnchorEl = _useState[1];
|
|
339
|
-
|
|
340
|
-
var handleClearSort = function handleClearSort() {
|
|
341
|
-
column.clearSortBy();
|
|
342
|
-
setAnchorEl(null);
|
|
343
|
-
};
|
|
344
|
-
|
|
345
|
-
var handleSortAsc = function handleSortAsc() {
|
|
346
|
-
column.toggleSortBy(false);
|
|
347
|
-
setAnchorEl(null);
|
|
348
|
-
};
|
|
349
|
-
|
|
350
|
-
var handleSortDesc = function handleSortDesc() {
|
|
351
|
-
column.toggleSortBy(true);
|
|
352
|
-
setAnchorEl(null);
|
|
353
|
-
};
|
|
354
|
-
|
|
355
|
-
var handleHideColumn = function handleHideColumn() {
|
|
356
|
-
column.toggleHidden();
|
|
357
|
-
setAnchorEl(null);
|
|
358
|
-
};
|
|
359
|
-
|
|
360
|
-
var handleGroupByColumn = function handleGroupByColumn() {
|
|
361
|
-
column.toggleGroupBy();
|
|
362
|
-
setAnchorEl(null);
|
|
363
|
-
};
|
|
364
|
-
|
|
365
|
-
var handleFilterByColumn = function handleFilterByColumn() {
|
|
366
|
-
setShowFilters(true);
|
|
367
|
-
setTimeout(function () {
|
|
368
|
-
var _document$getElementB, _column$muiTableHeadC, _column$muiTableHeadC2;
|
|
369
|
-
|
|
370
|
-
return (_document$getElementB = document.getElementById( // @ts-ignore
|
|
371
|
-
(_column$muiTableHeadC = (_column$muiTableHeadC2 = column.muiTableHeadCellFilterTextFieldProps) == null ? void 0 : _column$muiTableHeadC2.id) != null ? _column$muiTableHeadC : "mrt-" + idPrefix + "-" + column.id + "-filter-text-field")) == null ? void 0 : _document$getElementB.focus();
|
|
372
|
-
}, 200);
|
|
373
|
-
setAnchorEl(null);
|
|
374
|
-
};
|
|
375
|
-
|
|
376
|
-
var handleOpenFilterModeMenu = function handleOpenFilterModeMenu(event) {
|
|
377
|
-
event.stopPropagation();
|
|
378
|
-
setFilterMenuAnchorEl(event.currentTarget);
|
|
379
|
-
};
|
|
380
|
-
|
|
381
|
-
return React__default.createElement(material.Menu, {
|
|
382
|
-
anchorEl: anchorEl,
|
|
383
|
-
open: !!anchorEl,
|
|
384
|
-
onClose: function onClose() {
|
|
385
|
-
return setAnchorEl(null);
|
|
386
|
-
},
|
|
387
|
-
MenuListProps: {
|
|
388
|
-
dense: tableInstance.state.densePadding,
|
|
389
|
-
disablePadding: true
|
|
390
|
-
}
|
|
391
|
-
}, !disableSortBy && column.canSort && [React__default.createElement(material.MenuItem, {
|
|
392
|
-
key: 1,
|
|
393
|
-
disabled: !column.isSorted,
|
|
394
|
-
onClick: handleClearSort,
|
|
395
|
-
sx: commonMenuItemStyles
|
|
396
|
-
}, React__default.createElement(material.ListItemIcon, null, React__default.createElement(ClearAllIcon, null)), React__default.createElement(material.ListItemText, {
|
|
397
|
-
sx: commonMenuItemStyles
|
|
398
|
-
}, localization.columnActionMenuItemClearSort)), React__default.createElement(material.MenuItem, {
|
|
399
|
-
disabled: column.isSorted && !column.isSortedDesc,
|
|
400
|
-
key: 2,
|
|
401
|
-
onClick: handleSortAsc,
|
|
402
|
-
sx: commonMenuItemStyles
|
|
403
|
-
}, React__default.createElement(material.ListItemIcon, null, React__default.createElement(SortIcon, null)), React__default.createElement(material.ListItemText, {
|
|
404
|
-
sx: commonMenuItemStyles
|
|
405
|
-
}, (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header)))), React__default.createElement(material.MenuItem, {
|
|
406
|
-
divider: !disableFilters || enableColumnGrouping || !disableColumnHiding,
|
|
407
|
-
key: 3,
|
|
408
|
-
disabled: column.isSorted && column.isSortedDesc,
|
|
409
|
-
onClick: handleSortDesc,
|
|
410
|
-
sx: commonMenuItemStyles
|
|
411
|
-
}, React__default.createElement(material.ListItemIcon, null, React__default.createElement(SortIcon, {
|
|
412
|
-
style: {
|
|
413
|
-
transform: 'rotate(180deg) scaleX(-1)'
|
|
414
|
-
}
|
|
415
|
-
})), React__default.createElement(material.ListItemText, {
|
|
416
|
-
sx: commonMenuItemStyles
|
|
417
|
-
}, (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header))))], !disableFilters && column.canFilter && [React__default.createElement(material.MenuItem, {
|
|
418
|
-
divider: enableColumnGrouping || !disableColumnHiding,
|
|
419
|
-
key: 1,
|
|
420
|
-
onClick: handleFilterByColumn,
|
|
421
|
-
sx: commonMenuItemStyles
|
|
422
|
-
}, React__default.createElement(material.ListItemIcon, null, React__default.createElement(FilterListIcon, null)), React__default.createElement(material.ListItemText, {
|
|
423
|
-
sx: commonMenuItemStyles
|
|
424
|
-
}, (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header))), React__default.createElement(material.IconButton, {
|
|
425
|
-
onClick: handleOpenFilterModeMenu,
|
|
426
|
-
onMouseEnter: handleOpenFilterModeMenu,
|
|
427
|
-
size: "small",
|
|
428
|
-
sx: {
|
|
429
|
-
p: 0
|
|
430
|
-
}
|
|
431
|
-
}, React__default.createElement(ArrowRightIcon, null))), React__default.createElement(MRT_FilterTypeMenu, {
|
|
432
|
-
anchorEl: filterMenuAnchorEl,
|
|
433
|
-
column: column,
|
|
434
|
-
key: 2,
|
|
435
|
-
setAnchorEl: setFilterMenuAnchorEl,
|
|
436
|
-
onSelect: handleFilterByColumn
|
|
437
|
-
})], enableColumnGrouping && column.canGroupBy && [React__default.createElement(material.MenuItem, {
|
|
438
|
-
divider: !disableColumnHiding,
|
|
439
|
-
key: 2,
|
|
440
|
-
onClick: handleGroupByColumn,
|
|
441
|
-
sx: commonMenuItemStyles
|
|
442
|
-
}, React__default.createElement(material.ListItemIcon, null, React__default.createElement(DynamicFeedIcon, null)), React__default.createElement(material.ListItemText, {
|
|
443
|
-
sx: commonMenuItemStyles
|
|
444
|
-
}, (_localization = localization[column.isGrouped ? 'columnActionMenuItemUnGroupBy' : 'columnActionMenuItemGroupBy']) == null ? void 0 : _localization.replace('{column}', String(column.Header))))], !disableColumnHiding && [React__default.createElement(material.MenuItem, {
|
|
445
|
-
key: 1,
|
|
446
|
-
onClick: handleHideColumn,
|
|
447
|
-
sx: commonMenuItemStyles
|
|
448
|
-
}, React__default.createElement(material.ListItemIcon, null, React__default.createElement(VisibilityOffIcon, null)), React__default.createElement(material.ListItemText, {
|
|
449
|
-
sx: commonMenuItemStyles
|
|
450
|
-
}, (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header))))]);
|
|
451
|
-
};
|
|
452
|
-
|
|
453
310
|
var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
|
|
454
311
|
var anchorEl = _ref.anchorEl,
|
|
455
312
|
column = _ref.column,
|
|
@@ -463,35 +320,35 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
|
|
|
463
320
|
|
|
464
321
|
var filterTypes = React.useMemo(function () {
|
|
465
322
|
return [{
|
|
466
|
-
type:
|
|
323
|
+
type: exports.MRT_FILTER_TYPE.FUZZY,
|
|
467
324
|
label: localization.filterMenuItemFuzzy,
|
|
468
325
|
divider: false
|
|
469
326
|
}, {
|
|
470
|
-
type:
|
|
327
|
+
type: exports.MRT_FILTER_TYPE.CONTAINS,
|
|
471
328
|
label: localization.filterMenuItemContains,
|
|
472
329
|
divider: true
|
|
473
330
|
}, {
|
|
474
|
-
type:
|
|
331
|
+
type: exports.MRT_FILTER_TYPE.STARTS_WITH,
|
|
475
332
|
label: localization.filterMenuItemStartsWith,
|
|
476
333
|
divider: false
|
|
477
334
|
}, {
|
|
478
|
-
type:
|
|
335
|
+
type: exports.MRT_FILTER_TYPE.ENDS_WITH,
|
|
479
336
|
label: localization.filterMenuItemEndsWith,
|
|
480
337
|
divider: true
|
|
481
338
|
}, {
|
|
482
|
-
type:
|
|
339
|
+
type: exports.MRT_FILTER_TYPE.EQUALS,
|
|
483
340
|
label: localization.filterMenuItemEquals,
|
|
484
341
|
divider: false
|
|
485
342
|
}, {
|
|
486
|
-
type:
|
|
343
|
+
type: exports.MRT_FILTER_TYPE.NOT_EQUALS,
|
|
487
344
|
label: localization.filterMenuItemNotEquals,
|
|
488
345
|
divider: true
|
|
489
346
|
}, {
|
|
490
|
-
type:
|
|
347
|
+
type: exports.MRT_FILTER_TYPE.EMPTY,
|
|
491
348
|
label: localization.filterMenuItemEmpty,
|
|
492
349
|
divider: false
|
|
493
350
|
}, {
|
|
494
|
-
type:
|
|
351
|
+
type: exports.MRT_FILTER_TYPE.NOT_EMPTY,
|
|
495
352
|
label: localization.filterMenuItemNotEmpty,
|
|
496
353
|
divider: false
|
|
497
354
|
}];
|
|
@@ -505,7 +362,7 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
|
|
|
505
362
|
return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = value, _extends2));
|
|
506
363
|
});
|
|
507
364
|
|
|
508
|
-
if ([
|
|
365
|
+
if ([exports.MRT_FILTER_TYPE.EMPTY, exports.MRT_FILTER_TYPE.NOT_EMPTY].includes(value)) {
|
|
509
366
|
column.setFilter(' ');
|
|
510
367
|
}
|
|
511
368
|
|
|
@@ -524,28 +381,27 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
|
|
|
524
381
|
},
|
|
525
382
|
open: !!anchorEl,
|
|
526
383
|
MenuListProps: {
|
|
527
|
-
dense: tableInstance.state.densePadding
|
|
528
|
-
disablePadding: true
|
|
384
|
+
dense: tableInstance.state.densePadding
|
|
529
385
|
}
|
|
530
|
-
}, filterTypes.map(function (_ref2) {
|
|
386
|
+
}, filterTypes.map(function (_ref2, index) {
|
|
531
387
|
var type = _ref2.type,
|
|
532
388
|
label = _ref2.label,
|
|
533
389
|
divider = _ref2.divider;
|
|
534
390
|
return React__default.createElement(material.MenuItem, {
|
|
535
391
|
divider: divider,
|
|
536
|
-
key:
|
|
392
|
+
key: index,
|
|
537
393
|
onClick: function onClick() {
|
|
538
394
|
return handleSelectFilterType(type);
|
|
539
395
|
},
|
|
540
396
|
selected: type === filterType,
|
|
541
|
-
|
|
542
|
-
|
|
397
|
+
sx: commonMenuItemStyles,
|
|
398
|
+
value: type
|
|
543
399
|
}, label);
|
|
544
400
|
}));
|
|
545
401
|
};
|
|
546
402
|
|
|
547
403
|
var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
548
|
-
var _localization$filterT, _localization$filterT2;
|
|
404
|
+
var _localization$filterT, _localization$filterT2, _column$filterSelectO;
|
|
549
405
|
|
|
550
406
|
var column = _ref.column;
|
|
551
407
|
|
|
@@ -593,7 +449,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
593
449
|
setCurrentFilterTypes(function (prev) {
|
|
594
450
|
var _extends2;
|
|
595
451
|
|
|
596
|
-
return _extends({}, prev, (_extends2 = {}, _extends2[column.id] =
|
|
452
|
+
return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = exports.MRT_FILTER_TYPE.FUZZY, _extends2));
|
|
597
453
|
});
|
|
598
454
|
};
|
|
599
455
|
|
|
@@ -604,7 +460,9 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
604
460
|
}
|
|
605
461
|
|
|
606
462
|
var filterType = tableInstance.state.currentFilterTypes[column.id];
|
|
607
|
-
var
|
|
463
|
+
var isCustomFilterType = filterType instanceof Function;
|
|
464
|
+
var isSelectFilter = !!column.filterSelectOptions;
|
|
465
|
+
var filterChipLabel = !isCustomFilterType && [exports.MRT_FILTER_TYPE.EMPTY, exports.MRT_FILTER_TYPE.NOT_EMPTY].includes(filterType);
|
|
608
466
|
var filterPlaceholder = (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header));
|
|
609
467
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.TextField, Object.assign({
|
|
610
468
|
fullWidth: true,
|
|
@@ -617,8 +475,16 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
617
475
|
},
|
|
618
476
|
title: filterPlaceholder
|
|
619
477
|
},
|
|
478
|
+
label: isSelectFilter && !filterValue ? filterPlaceholder : undefined,
|
|
479
|
+
InputLabelProps: {
|
|
480
|
+
shrink: false,
|
|
481
|
+
sx: {
|
|
482
|
+
maxWidth: 'calc(100% - 2.5rem)'
|
|
483
|
+
},
|
|
484
|
+
title: filterPlaceholder
|
|
485
|
+
},
|
|
620
486
|
margin: "none",
|
|
621
|
-
placeholder: filterChipLabel ?
|
|
487
|
+
placeholder: filterChipLabel || isSelectFilter ? undefined : filterPlaceholder,
|
|
622
488
|
onChange: function onChange(e) {
|
|
623
489
|
setFilterValue(e.target.value);
|
|
624
490
|
handleChange(e.target.value);
|
|
@@ -626,22 +492,24 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
626
492
|
onClick: function onClick(e) {
|
|
627
493
|
return e.stopPropagation();
|
|
628
494
|
},
|
|
495
|
+
select: isSelectFilter,
|
|
629
496
|
value: filterValue != null ? filterValue : '',
|
|
630
497
|
variant: "standard",
|
|
631
498
|
InputProps: {
|
|
632
|
-
startAdornment: React__default.createElement(material.InputAdornment, {
|
|
499
|
+
startAdornment: !isSelectFilter && React__default.createElement(material.InputAdornment, {
|
|
633
500
|
position: "start"
|
|
634
501
|
}, React__default.createElement(material.Tooltip, {
|
|
635
502
|
arrow: true,
|
|
636
|
-
title:
|
|
637
|
-
}, React__default.createElement(material.IconButton, {
|
|
503
|
+
title: localization.changeFilterMode
|
|
504
|
+
}, React__default.createElement("span", null, React__default.createElement(material.IconButton, {
|
|
505
|
+
disabled: isCustomFilterType,
|
|
638
506
|
onClick: handleFilterMenuOpen,
|
|
639
507
|
size: "small",
|
|
640
508
|
sx: {
|
|
641
509
|
height: '1.75rem',
|
|
642
510
|
width: '1.75rem'
|
|
643
511
|
}
|
|
644
|
-
}, React__default.createElement(FilterListIcon, null))), filterChipLabel && React__default.createElement(material.Chip, {
|
|
512
|
+
}, React__default.createElement(FilterListIcon, null)))), filterChipLabel && React__default.createElement(material.Chip, {
|
|
645
513
|
onDelete: handleClearFilterChip,
|
|
646
514
|
label: filterType
|
|
647
515
|
})),
|
|
@@ -649,11 +517,12 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
649
517
|
position: "end"
|
|
650
518
|
}, React__default.createElement(material.Tooltip, {
|
|
651
519
|
arrow: true,
|
|
520
|
+
disableHoverListener: isSelectFilter,
|
|
652
521
|
placement: "right",
|
|
653
522
|
title: (_localization$filterT2 = localization.filterTextFieldClearButtonTitle) != null ? _localization$filterT2 : ''
|
|
654
523
|
}, React__default.createElement("span", null, React__default.createElement(material.IconButton, {
|
|
655
524
|
"aria-label": localization.filterTextFieldClearButtonTitle,
|
|
656
|
-
disabled: (filterValue
|
|
525
|
+
disabled: !(filterValue != null && filterValue.length),
|
|
657
526
|
onClick: handleClear,
|
|
658
527
|
size: "small",
|
|
659
528
|
sx: {
|
|
@@ -668,8 +537,32 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
668
537
|
sx: _extends({
|
|
669
538
|
m: '0 -0.25rem',
|
|
670
539
|
minWidth: !filterChipLabel ? '5rem' : 'auto',
|
|
671
|
-
width: 'calc(100% + 0.5rem)'
|
|
540
|
+
width: 'calc(100% + 0.5rem)',
|
|
541
|
+
mt: isSelectFilter && !filterValue ? '-1rem' : undefined,
|
|
542
|
+
'& .MuiSelect-icon': {
|
|
543
|
+
mr: '1.5rem'
|
|
544
|
+
}
|
|
672
545
|
}, textFieldProps == null ? void 0 : textFieldProps.sx)
|
|
546
|
+
}), isSelectFilter && React__default.createElement(material.MenuItem, {
|
|
547
|
+
divider: true,
|
|
548
|
+
disabled: !filterValue,
|
|
549
|
+
value: ""
|
|
550
|
+
}, localization.filterTextFieldClearButtonTitle), column == null ? void 0 : (_column$filterSelectO = column.filterSelectOptions) == null ? void 0 : _column$filterSelectO.map(function (option) {
|
|
551
|
+
var value;
|
|
552
|
+
var text;
|
|
553
|
+
|
|
554
|
+
if (typeof option === 'string') {
|
|
555
|
+
value = option;
|
|
556
|
+
text = option;
|
|
557
|
+
} else if (typeof option === 'object') {
|
|
558
|
+
value = option.value;
|
|
559
|
+
text = option.text;
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
return React__default.createElement(material.MenuItem, {
|
|
563
|
+
key: value,
|
|
564
|
+
value: value
|
|
565
|
+
}, text);
|
|
673
566
|
})), React__default.createElement(MRT_FilterTypeMenu, {
|
|
674
567
|
anchorEl: anchorEl,
|
|
675
568
|
column: column,
|
|
@@ -677,6 +570,170 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
677
570
|
}));
|
|
678
571
|
};
|
|
679
572
|
|
|
573
|
+
var commonMenuItemStyles$1 = {
|
|
574
|
+
py: '6px',
|
|
575
|
+
my: 0,
|
|
576
|
+
justifyContent: 'space-between',
|
|
577
|
+
alignItems: 'center'
|
|
578
|
+
};
|
|
579
|
+
var commonListItemStyles = {
|
|
580
|
+
display: 'flex',
|
|
581
|
+
gap: '0.75rem',
|
|
582
|
+
alignItems: 'center'
|
|
583
|
+
};
|
|
584
|
+
var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
585
|
+
var _localization$columnA, _localization$columnA2, _localization$filterT, _localization, _localization$columnA3;
|
|
586
|
+
|
|
587
|
+
var anchorEl = _ref.anchorEl,
|
|
588
|
+
column = _ref.column,
|
|
589
|
+
setAnchorEl = _ref.setAnchorEl;
|
|
590
|
+
|
|
591
|
+
var _useMRT = useMRT(),
|
|
592
|
+
disableColumnHiding = _useMRT.disableColumnHiding,
|
|
593
|
+
disableFilters = _useMRT.disableFilters,
|
|
594
|
+
disableSortBy = _useMRT.disableSortBy,
|
|
595
|
+
enableColumnGrouping = _useMRT.enableColumnGrouping,
|
|
596
|
+
_useMRT$icons = _useMRT.icons,
|
|
597
|
+
ArrowRightIcon = _useMRT$icons.ArrowRightIcon,
|
|
598
|
+
ClearAllIcon = _useMRT$icons.ClearAllIcon,
|
|
599
|
+
DynamicFeedIcon = _useMRT$icons.DynamicFeedIcon,
|
|
600
|
+
FilterListIcon = _useMRT$icons.FilterListIcon,
|
|
601
|
+
FilterListOffIcon = _useMRT$icons.FilterListOffIcon,
|
|
602
|
+
SortIcon = _useMRT$icons.SortIcon,
|
|
603
|
+
VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon,
|
|
604
|
+
idPrefix = _useMRT.idPrefix,
|
|
605
|
+
localization = _useMRT.localization,
|
|
606
|
+
setShowFilters = _useMRT.setShowFilters,
|
|
607
|
+
tableInstance = _useMRT.tableInstance;
|
|
608
|
+
|
|
609
|
+
var _useState = React.useState(null),
|
|
610
|
+
filterMenuAnchorEl = _useState[0],
|
|
611
|
+
setFilterMenuAnchorEl = _useState[1];
|
|
612
|
+
|
|
613
|
+
var handleClearSort = function handleClearSort() {
|
|
614
|
+
column.clearSortBy();
|
|
615
|
+
setAnchorEl(null);
|
|
616
|
+
};
|
|
617
|
+
|
|
618
|
+
var handleSortAsc = function handleSortAsc() {
|
|
619
|
+
column.toggleSortBy(false);
|
|
620
|
+
setAnchorEl(null);
|
|
621
|
+
};
|
|
622
|
+
|
|
623
|
+
var handleSortDesc = function handleSortDesc() {
|
|
624
|
+
column.toggleSortBy(true);
|
|
625
|
+
setAnchorEl(null);
|
|
626
|
+
};
|
|
627
|
+
|
|
628
|
+
var handleHideColumn = function handleHideColumn() {
|
|
629
|
+
column.toggleHidden();
|
|
630
|
+
setAnchorEl(null);
|
|
631
|
+
};
|
|
632
|
+
|
|
633
|
+
var handleGroupByColumn = function handleGroupByColumn() {
|
|
634
|
+
column.toggleGroupBy();
|
|
635
|
+
setAnchorEl(null);
|
|
636
|
+
};
|
|
637
|
+
|
|
638
|
+
var handleClearFilter = function handleClearFilter() {
|
|
639
|
+
column.setFilter('');
|
|
640
|
+
setAnchorEl(null);
|
|
641
|
+
};
|
|
642
|
+
|
|
643
|
+
var handleFilterByColumn = function handleFilterByColumn() {
|
|
644
|
+
setShowFilters(true);
|
|
645
|
+
setTimeout(function () {
|
|
646
|
+
var _document$getElementB, _column$muiTableHeadC, _column$muiTableHeadC2;
|
|
647
|
+
|
|
648
|
+
return (_document$getElementB = document.getElementById( // @ts-ignore
|
|
649
|
+
(_column$muiTableHeadC = (_column$muiTableHeadC2 = column.muiTableHeadCellFilterTextFieldProps) == null ? void 0 : _column$muiTableHeadC2.id) != null ? _column$muiTableHeadC : "mrt-" + idPrefix + "-" + column.id + "-filter-text-field")) == null ? void 0 : _document$getElementB.focus();
|
|
650
|
+
}, 200);
|
|
651
|
+
setAnchorEl(null);
|
|
652
|
+
};
|
|
653
|
+
|
|
654
|
+
var handleOpenFilterModeMenu = function handleOpenFilterModeMenu(event) {
|
|
655
|
+
event.stopPropagation();
|
|
656
|
+
setFilterMenuAnchorEl(event.currentTarget);
|
|
657
|
+
};
|
|
658
|
+
|
|
659
|
+
return React__default.createElement(material.Menu, {
|
|
660
|
+
anchorEl: anchorEl,
|
|
661
|
+
open: !!anchorEl,
|
|
662
|
+
onClose: function onClose() {
|
|
663
|
+
return setAnchorEl(null);
|
|
664
|
+
},
|
|
665
|
+
MenuListProps: {
|
|
666
|
+
dense: tableInstance.state.densePadding
|
|
667
|
+
}
|
|
668
|
+
}, !disableSortBy && column.canSort && [React__default.createElement(material.MenuItem, {
|
|
669
|
+
disabled: !column.isSorted,
|
|
670
|
+
key: 1,
|
|
671
|
+
onClick: handleClearSort,
|
|
672
|
+
sx: commonMenuItemStyles$1
|
|
673
|
+
}, React__default.createElement(material.Box, {
|
|
674
|
+
sx: commonListItemStyles
|
|
675
|
+
}, React__default.createElement(ClearAllIcon, null), localization.columnActionMenuItemClearSort)), React__default.createElement(material.MenuItem, {
|
|
676
|
+
disabled: column.isSorted && !column.isSortedDesc,
|
|
677
|
+
key: 2,
|
|
678
|
+
onClick: handleSortAsc,
|
|
679
|
+
sx: commonMenuItemStyles$1
|
|
680
|
+
}, React__default.createElement(material.Box, {
|
|
681
|
+
sx: commonListItemStyles
|
|
682
|
+
}, React__default.createElement(SortIcon, null), (_localization$columnA = localization.columnActionMenuItemSortAsc) == null ? void 0 : _localization$columnA.replace('{column}', String(column.Header)))), React__default.createElement(material.MenuItem, {
|
|
683
|
+
divider: !disableFilters || enableColumnGrouping || !disableColumnHiding,
|
|
684
|
+
key: 3,
|
|
685
|
+
disabled: column.isSorted && column.isSortedDesc,
|
|
686
|
+
onClick: handleSortDesc,
|
|
687
|
+
sx: commonMenuItemStyles$1
|
|
688
|
+
}, React__default.createElement(material.Box, {
|
|
689
|
+
sx: commonListItemStyles
|
|
690
|
+
}, React__default.createElement(SortIcon, {
|
|
691
|
+
style: {
|
|
692
|
+
transform: 'rotate(180deg) scaleX(-1)'
|
|
693
|
+
}
|
|
694
|
+
}), (_localization$columnA2 = localization.columnActionMenuItemSortDesc) == null ? void 0 : _localization$columnA2.replace('{column}', String(column.Header))))], !disableFilters && column.canFilter && [React__default.createElement(material.MenuItem, {
|
|
695
|
+
disabled: !column.filterValue,
|
|
696
|
+
key: 0,
|
|
697
|
+
onClick: handleClearFilter,
|
|
698
|
+
sx: commonMenuItemStyles$1
|
|
699
|
+
}, React__default.createElement(material.Box, {
|
|
700
|
+
sx: commonListItemStyles
|
|
701
|
+
}, React__default.createElement(FilterListOffIcon, null), localization.filterTextFieldClearButtonTitle)), React__default.createElement(material.MenuItem, {
|
|
702
|
+
divider: enableColumnGrouping || !disableColumnHiding,
|
|
703
|
+
key: 1,
|
|
704
|
+
onClick: handleFilterByColumn,
|
|
705
|
+
sx: commonMenuItemStyles$1
|
|
706
|
+
}, React__default.createElement(material.Box, {
|
|
707
|
+
sx: commonListItemStyles
|
|
708
|
+
}, 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, {
|
|
709
|
+
onClick: handleOpenFilterModeMenu,
|
|
710
|
+
onMouseEnter: handleOpenFilterModeMenu,
|
|
711
|
+
size: "small",
|
|
712
|
+
sx: {
|
|
713
|
+
p: 0
|
|
714
|
+
}
|
|
715
|
+
}, React__default.createElement(ArrowRightIcon, null))), React__default.createElement(MRT_FilterTypeMenu, {
|
|
716
|
+
anchorEl: filterMenuAnchorEl,
|
|
717
|
+
column: column,
|
|
718
|
+
key: 2,
|
|
719
|
+
setAnchorEl: setFilterMenuAnchorEl,
|
|
720
|
+
onSelect: handleFilterByColumn
|
|
721
|
+
})], enableColumnGrouping && column.canGroupBy && [React__default.createElement(material.MenuItem, {
|
|
722
|
+
divider: !disableColumnHiding,
|
|
723
|
+
key: 2,
|
|
724
|
+
onClick: handleGroupByColumn,
|
|
725
|
+
sx: commonMenuItemStyles$1
|
|
726
|
+
}, React__default.createElement(material.Box, {
|
|
727
|
+
sx: commonListItemStyles
|
|
728
|
+
}, 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, {
|
|
729
|
+
key: 1,
|
|
730
|
+
onClick: handleHideColumn,
|
|
731
|
+
sx: commonMenuItemStyles$1
|
|
732
|
+
}, React__default.createElement(material.Box, {
|
|
733
|
+
sx: commonListItemStyles
|
|
734
|
+
}, React__default.createElement(VisibilityOffIcon, null), (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header))))]);
|
|
735
|
+
};
|
|
736
|
+
|
|
680
737
|
var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton(_ref) {
|
|
681
738
|
var column = _ref.column;
|
|
682
739
|
|
|
@@ -757,8 +814,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
|
|
|
757
814
|
});
|
|
758
815
|
|
|
759
816
|
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);
|
|
760
|
-
var filterTooltip = !!column.filterValue ? localization.filterApplied.replace('{column}', String(column.Header)).replace('{filterType}',
|
|
761
|
-
localization["filterMenuItem" + (tableInstance.state.currentFilterTypes[column.id].charAt(0).toUpperCase() + tableInstance.state.currentFilterTypes[column.id].slice(1))]) : localization.toggleFilterButtonTitle;
|
|
817
|
+
var filterTooltip = !!column.filterValue ? localization.filterApplied.replace('{column}', String(column.Header)).replace('{filterType}', column.filterValue) : localization.toggleFilterButtonTitle;
|
|
762
818
|
var columnHeader = column.render('Header');
|
|
763
819
|
return React__default.createElement(material.TableCell, Object.assign({
|
|
764
820
|
align: isParentHeader ? 'center' : 'left'
|
|
@@ -781,6 +837,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
|
|
|
781
837
|
title: undefined
|
|
782
838
|
}), column.render('Header'), !isParentHeader && column.canSort && React__default.createElement(material.Tooltip, {
|
|
783
839
|
arrow: true,
|
|
840
|
+
placement: "top",
|
|
784
841
|
title: sortTooltip
|
|
785
842
|
}, React__default.createElement(material.TableSortLabel, {
|
|
786
843
|
"aria-label": sortTooltip,
|
|
@@ -788,19 +845,22 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
|
|
|
788
845
|
direction: column.isSortedDesc ? 'desc' : 'asc'
|
|
789
846
|
})), !isParentHeader && !!column.canFilter && React__default.createElement(material.Tooltip, {
|
|
790
847
|
arrow: true,
|
|
848
|
+
placement: "top",
|
|
791
849
|
title: filterTooltip
|
|
792
850
|
}, React__default.createElement(material.IconButton, {
|
|
851
|
+
disableRipple: true,
|
|
793
852
|
onClick: function onClick(event) {
|
|
794
853
|
event.stopPropagation();
|
|
795
854
|
setShowFilters(!tableInstance.state.showFilters);
|
|
796
855
|
},
|
|
797
856
|
size: "small",
|
|
798
857
|
sx: {
|
|
858
|
+
m: 0,
|
|
799
859
|
opacity: !!column.filterValue ? 0.8 : 0,
|
|
800
860
|
p: '2px',
|
|
801
|
-
m: 0,
|
|
802
861
|
transition: 'all 0.2s ease-in-out',
|
|
803
862
|
'&:hover': {
|
|
863
|
+
backgroundColor: 'transparent',
|
|
804
864
|
opacity: 0.8
|
|
805
865
|
}
|
|
806
866
|
}
|
|
@@ -1161,15 +1221,12 @@ var MRT_RowActionMenu = function MRT_RowActionMenu(_ref) {
|
|
|
1161
1221
|
return setAnchorEl(null);
|
|
1162
1222
|
},
|
|
1163
1223
|
MenuListProps: {
|
|
1164
|
-
dense: tableInstance.state.densePadding
|
|
1165
|
-
disablePadding: true
|
|
1224
|
+
dense: tableInstance.state.densePadding
|
|
1166
1225
|
}
|
|
1167
1226
|
}, enableRowEditing && React__default.createElement(material.MenuItem, {
|
|
1168
1227
|
onClick: handleEdit,
|
|
1169
|
-
sx: commonMenuItemStyles
|
|
1170
|
-
}, React__default.createElement(
|
|
1171
|
-
sx: commonMenuItemStyles
|
|
1172
|
-
}, localization.rowActionMenuItemEdit)), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
|
|
1228
|
+
sx: commonMenuItemStyles$1
|
|
1229
|
+
}, React__default.createElement(EditIcon, null), localization.rowActionMenuItemEdit), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
|
|
1173
1230
|
return setAnchorEl(null);
|
|
1174
1231
|
})) != null ? _renderRowActionMenuI : null);
|
|
1175
1232
|
};
|
|
@@ -2353,10 +2410,17 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
|
|
|
2353
2410
|
};
|
|
2354
2411
|
|
|
2355
2412
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.MenuItem, {
|
|
2356
|
-
sx: {
|
|
2413
|
+
sx: _extends({}, commonMenuItemStyles$1, {
|
|
2357
2414
|
pl: (column.depth + 0.5) * 2 + "rem"
|
|
2358
|
-
}
|
|
2415
|
+
})
|
|
2359
2416
|
}, React__default.createElement(material.FormControlLabel, {
|
|
2417
|
+
componentsProps: {
|
|
2418
|
+
typography: {
|
|
2419
|
+
sx: {
|
|
2420
|
+
marginBottom: 0
|
|
2421
|
+
}
|
|
2422
|
+
}
|
|
2423
|
+
},
|
|
2360
2424
|
checked: switchChecked,
|
|
2361
2425
|
control: React__default.createElement(material.Switch, null),
|
|
2362
2426
|
label: column.Header,
|
|
@@ -2401,10 +2465,8 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
|
|
|
2401
2465
|
return setAnchorEl(null);
|
|
2402
2466
|
},
|
|
2403
2467
|
MenuListProps: {
|
|
2404
|
-
dense: tableInstance.state.densePadding
|
|
2405
|
-
|
|
2406
|
-
},
|
|
2407
|
-
sx: commonMenuItemStyles
|
|
2468
|
+
dense: tableInstance.state.densePadding
|
|
2469
|
+
}
|
|
2408
2470
|
}, React__default.createElement(material.Box, {
|
|
2409
2471
|
sx: {
|
|
2410
2472
|
display: 'flex',
|
|
@@ -2781,6 +2843,7 @@ var MRT_DefaultLocalization_EN = {
|
|
|
2781
2843
|
filterMenuItemEmpty: 'Empty',
|
|
2782
2844
|
filterMenuItemEndsWith: 'Ends With',
|
|
2783
2845
|
filterMenuItemEquals: 'Equals',
|
|
2846
|
+
changeFilterMode: 'Change filter mode',
|
|
2784
2847
|
filterMenuItemFuzzy: 'Fuzzy Match (Default)',
|
|
2785
2848
|
filterMenuItemNotEmpty: 'Not Empty',
|
|
2786
2849
|
filterMenuItemNotEquals: 'Not Equals',
|
|
@@ -2839,6 +2902,18 @@ var MRT_Default_Icons = {
|
|
|
2839
2902
|
};
|
|
2840
2903
|
|
|
2841
2904
|
var _excluded = ["defaultColumn", "icons", "localization", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
|
|
2905
|
+
|
|
2906
|
+
(function (MRT_FILTER_TYPE) {
|
|
2907
|
+
MRT_FILTER_TYPE["CONTAINS"] = "contains";
|
|
2908
|
+
MRT_FILTER_TYPE["EMPTY"] = "empty";
|
|
2909
|
+
MRT_FILTER_TYPE["ENDS_WITH"] = "endsWith";
|
|
2910
|
+
MRT_FILTER_TYPE["EQUALS"] = "equals";
|
|
2911
|
+
MRT_FILTER_TYPE["FUZZY"] = "fuzzy";
|
|
2912
|
+
MRT_FILTER_TYPE["NOT_EMPTY"] = "notEmpty";
|
|
2913
|
+
MRT_FILTER_TYPE["NOT_EQUALS"] = "notEquals";
|
|
2914
|
+
MRT_FILTER_TYPE["STARTS_WITH"] = "startsWith";
|
|
2915
|
+
})(exports.MRT_FILTER_TYPE || (exports.MRT_FILTER_TYPE = {}));
|
|
2916
|
+
|
|
2842
2917
|
var MaterialReactTable = (function (_ref) {
|
|
2843
2918
|
var _ref$defaultColumn = _ref.defaultColumn,
|
|
2844
2919
|
defaultColumn = _ref$defaultColumn === void 0 ? {
|