material-react-table 0.5.5 → 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 +20 -3
- package/dist/filtersFNs.d.ts +4 -0
- package/dist/localization.d.ts +1 -0
- package/dist/material-react-table.cjs.development.js +174 -70
- 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 +177 -71
- package/dist/material-react-table.esm.js.map +1 -1
- package/dist/menus/MRT_ColumnActionMenu.d.ts +11 -0
- package/package.json +6 -7
- package/src/MaterialReactTable.tsx +23 -9
- package/src/body/MRT_TableBodyCell.tsx +12 -3
- package/src/buttons/MRT_ShowHideColumnsButton.tsx +32 -32
- package/src/filtersFNs.ts +12 -0
- package/src/head/MRT_TableHeadCell.tsx +6 -15
- package/src/inputs/MRT_FilterTextField.tsx +71 -17
- package/src/localization.ts +2 -0
- package/src/menus/MRT_ColumnActionMenu.tsx +125 -120
- package/src/menus/MRT_FilterTypeMenu.tsx +34 -26
- package/src/menus/MRT_RowActionMenu.tsx +14 -20
- package/src/menus/MRT_ShowHideColumnsMenu.tsx +5 -1
- package/src/table/MRT_TableContainer.tsx +7 -1
- package/src/useMRT.tsx +14 -9
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ChangeEvent, FC, MouseEvent, ReactNode } from 'react';
|
|
2
|
-
import { AlertProps, IconButtonProps, TableBodyProps, TableCellProps, TableContainerProps, TableFooterProps, TableHeadProps, TablePaginationProps, TableProps, TableRowProps, TextFieldProps, ToolbarProps } from '@mui/material';
|
|
3
|
-
import { Cell, Column, ColumnInstance, HeaderGroup, Row, TableInstance, TableOptions, TableState, UseColumnOrderInstanceProps, UseColumnOrderState, UseExpandedInstanceProps, UseExpandedOptions, UseExpandedRowProps, UseExpandedState, UseFiltersColumnOptions, UseFiltersColumnProps, UseFiltersInstanceProps, UseFiltersOptions, UseFiltersState, UseGlobalFiltersColumnOptions, UseGlobalFiltersInstanceProps, UseGlobalFiltersOptions, UseGlobalFiltersState, UseGroupByCellProps, UseGroupByColumnOptions, UseGroupByColumnProps, UseGroupByInstanceProps, UseGroupByOptions, UseGroupByRowProps, UseGroupByState, UsePaginationInstanceProps, UsePaginationOptions, UsePaginationState, UseResizeColumnsColumnOptions, UseResizeColumnsColumnProps, UseResizeColumnsOptions, UseResizeColumnsState, UseRowSelectInstanceProps, UseRowSelectOptions, UseRowSelectRowProps, UseRowSelectState, UseRowStateCellProps, UseRowStateInstanceProps, UseRowStateOptions, UseRowStateRowProps, UseRowStateState, UseSortByColumnOptions, UseSortByColumnProps, UseSortByInstanceProps, UseSortByOptions, UseSortByState, UseTableHeaderGroupProps, UseTableInstanceProps, UseTableOptions } from 'react-table';
|
|
2
|
+
import { AlertProps, IconButtonProps, LinearProgressProps, SkeletonProps, TableBodyProps, TableCellProps, TableContainerProps, TableFooterProps, TableHeadProps, TablePaginationProps, TableProps, TableRowProps, TextFieldProps, ToolbarProps } from '@mui/material';
|
|
3
|
+
import { Cell, Column, ColumnInstance, FilterType, HeaderGroup, Row, TableInstance, TableOptions, TableState, UseColumnOrderInstanceProps, UseColumnOrderState, UseExpandedInstanceProps, UseExpandedOptions, UseExpandedRowProps, UseExpandedState, UseFiltersColumnOptions, UseFiltersColumnProps, UseFiltersInstanceProps, UseFiltersOptions, UseFiltersState, UseGlobalFiltersColumnOptions, UseGlobalFiltersInstanceProps, UseGlobalFiltersOptions, UseGlobalFiltersState, UseGroupByCellProps, UseGroupByColumnOptions, UseGroupByColumnProps, UseGroupByInstanceProps, UseGroupByOptions, UseGroupByRowProps, UseGroupByState, UsePaginationInstanceProps, UsePaginationOptions, UsePaginationState, UseResizeColumnsColumnOptions, UseResizeColumnsColumnProps, UseResizeColumnsOptions, UseResizeColumnsState, UseRowSelectInstanceProps, UseRowSelectOptions, UseRowSelectRowProps, UseRowSelectState, UseRowStateCellProps, UseRowStateInstanceProps, UseRowStateOptions, UseRowStateRowProps, UseRowStateState, UseSortByColumnOptions, UseSortByColumnProps, UseSortByInstanceProps, UseSortByOptions, UseSortByState, UseTableHeaderGroupProps, UseTableInstanceProps, UseTableOptions } from 'react-table';
|
|
4
4
|
import { MRT_Localization } from './localization';
|
|
5
5
|
import { MRT_Icons } from './icons';
|
|
6
6
|
export declare type MRT_TableOptions<D extends {} = {}> = TableOptions<D> & UseExpandedOptions<D> & UseFiltersOptions<D> & UseGlobalFiltersOptions<D> & UseGroupByOptions<D> & UsePaginationOptions<D> & UseResizeColumnsOptions<D> & UseRowSelectOptions<D> & UseRowStateOptions<D> & UseSortByOptions<D> & {
|
|
@@ -30,6 +30,11 @@ export declare type MRT_ColumnInterface<D extends {} = {}> = UseFiltersColumnOpt
|
|
|
30
30
|
Header?: string;
|
|
31
31
|
disableFilters?: boolean;
|
|
32
32
|
editable?: boolean;
|
|
33
|
+
filter?: MRT_FilterType | string | FilterType<D>;
|
|
34
|
+
filterSelectOptions?: (string | {
|
|
35
|
+
text: string;
|
|
36
|
+
value: string;
|
|
37
|
+
})[];
|
|
33
38
|
muiTableBodyCellEditTextFieldProps?: TextFieldProps | ((cell: MRT_Cell<D>) => TextFieldProps);
|
|
34
39
|
muiTableBodyCellProps?: TableCellProps | ((cell: MRT_Cell<D>) => TableCellProps);
|
|
35
40
|
muiTableFooterCellProps?: TableCellProps | ((column: Column<D>) => TableCellProps);
|
|
@@ -48,7 +53,17 @@ export declare type MRT_Row<D extends {} = {}> = Row<D> & UseExpandedRowProps<D>
|
|
|
48
53
|
cells: MRT_Cell<D>[];
|
|
49
54
|
};
|
|
50
55
|
export declare type MRT_Cell<D extends {} = {}, _V = any> = Cell<D> & UseGroupByCellProps<D> & UseRowStateCellProps<D> & {};
|
|
51
|
-
export declare
|
|
56
|
+
export declare enum MRT_FILTER_TYPE {
|
|
57
|
+
CONTAINS = "contains",
|
|
58
|
+
EMPTY = "empty",
|
|
59
|
+
ENDS_WITH = "endsWith",
|
|
60
|
+
EQUALS = "equals",
|
|
61
|
+
FUZZY = "fuzzy",
|
|
62
|
+
NOT_EMPTY = "notEmpty",
|
|
63
|
+
NOT_EQUALS = "notEquals",
|
|
64
|
+
STARTS_WITH = "startsWith"
|
|
65
|
+
}
|
|
66
|
+
export declare type MRT_FilterType = MRT_FILTER_TYPE | Function;
|
|
52
67
|
export declare type MRT_TableState<D extends {} = {}> = TableState<D> & UseColumnOrderState<D> & UseExpandedState<D> & UseFiltersState<D> & UseGlobalFiltersState<D> & UseGroupByState<D> & UsePaginationState<D> & UseResizeColumnsState<D> & UseRowSelectState<D> & UseRowStateState<D> & UseSortByState<D> & {
|
|
53
68
|
currentEditingRow: MRT_Row<D> | null;
|
|
54
69
|
currentFilterTypes: {
|
|
@@ -83,9 +98,11 @@ export declare type MaterialReactTableProps<D extends {} = {}> = UseTableOptions
|
|
|
83
98
|
isFetching?: boolean;
|
|
84
99
|
isLoading?: boolean;
|
|
85
100
|
localization?: Partial<MRT_Localization>;
|
|
101
|
+
muiLinearProgressProps?: LinearProgressProps | ((tableInstance: MRT_TableInstance) => LinearProgressProps);
|
|
86
102
|
muiSearchTextFieldProps?: TextFieldProps;
|
|
87
103
|
muiTableBodyCellEditTextFieldProps?: TextFieldProps | ((cell?: MRT_Cell<D>) => TextFieldProps);
|
|
88
104
|
muiTableBodyCellProps?: TableCellProps | ((cell?: MRT_Cell<D>) => TableCellProps);
|
|
105
|
+
muiTableBodyCellSkeletonProps?: SkeletonProps | ((cell?: MRT_Cell<D>) => SkeletonProps);
|
|
89
106
|
muiTableBodyProps?: TableBodyProps | ((tableInstance: MRT_TableInstance<D>) => TableBodyProps);
|
|
90
107
|
muiTableBodyRowProps?: TableRowProps | ((row: Row<D>) => TableRowProps);
|
|
91
108
|
muiTableContainerProps?: TableContainerProps | ((tableInstance: MRT_TableInstance<D>) => TableContainerProps);
|
package/dist/filtersFNs.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { MRT_Row } from '.';
|
|
2
|
+
export declare const fuzzySearchFN: {
|
|
3
|
+
(rows: MRT_Row[], columnIds: string[], filterValue: string | number): MRT_Row<{}>[];
|
|
4
|
+
autoRemove(val: any): boolean;
|
|
5
|
+
};
|
|
2
6
|
export declare const fuzzyFilterFN: {
|
|
3
7
|
(rows: MRT_Row[], id: string, filterValue: string | number): MRT_Row<{}>[];
|
|
4
8
|
autoRemove(val: any): boolean;
|
package/dist/localization.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export interface MRT_Localization {
|
|
|
26
26
|
filterTextFieldChipLabelNotEmpty: string;
|
|
27
27
|
filterTextFieldClearButtonTitle: string;
|
|
28
28
|
filterTextFieldPlaceholder: string;
|
|
29
|
+
changeFilterMode: string;
|
|
29
30
|
rowActionButtonCancel: string;
|
|
30
31
|
rowActionButtonSave: string;
|
|
31
32
|
rowActionMenuButtonTitle: string;
|
|
@@ -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, {
|
|
@@ -305,6 +302,11 @@ var useMRT = function useMRT() {
|
|
|
305
302
|
return React.useContext(MaterialReactTableContext);
|
|
306
303
|
};
|
|
307
304
|
|
|
305
|
+
var commonMenuItemStyles = {
|
|
306
|
+
py: '6px',
|
|
307
|
+
my: 0,
|
|
308
|
+
alignItems: 'center'
|
|
309
|
+
};
|
|
308
310
|
var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
|
|
309
311
|
var anchorEl = _ref.anchorEl,
|
|
310
312
|
column = _ref.column,
|
|
@@ -318,35 +320,35 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
|
|
|
318
320
|
|
|
319
321
|
var filterTypes = React.useMemo(function () {
|
|
320
322
|
return [{
|
|
321
|
-
type:
|
|
323
|
+
type: exports.MRT_FILTER_TYPE.FUZZY,
|
|
322
324
|
label: localization.filterMenuItemFuzzy,
|
|
323
325
|
divider: false
|
|
324
326
|
}, {
|
|
325
|
-
type:
|
|
327
|
+
type: exports.MRT_FILTER_TYPE.CONTAINS,
|
|
326
328
|
label: localization.filterMenuItemContains,
|
|
327
329
|
divider: true
|
|
328
330
|
}, {
|
|
329
|
-
type:
|
|
331
|
+
type: exports.MRT_FILTER_TYPE.STARTS_WITH,
|
|
330
332
|
label: localization.filterMenuItemStartsWith,
|
|
331
333
|
divider: false
|
|
332
334
|
}, {
|
|
333
|
-
type:
|
|
335
|
+
type: exports.MRT_FILTER_TYPE.ENDS_WITH,
|
|
334
336
|
label: localization.filterMenuItemEndsWith,
|
|
335
337
|
divider: true
|
|
336
338
|
}, {
|
|
337
|
-
type:
|
|
339
|
+
type: exports.MRT_FILTER_TYPE.EQUALS,
|
|
338
340
|
label: localization.filterMenuItemEquals,
|
|
339
341
|
divider: false
|
|
340
342
|
}, {
|
|
341
|
-
type:
|
|
343
|
+
type: exports.MRT_FILTER_TYPE.NOT_EQUALS,
|
|
342
344
|
label: localization.filterMenuItemNotEquals,
|
|
343
345
|
divider: true
|
|
344
346
|
}, {
|
|
345
|
-
type:
|
|
347
|
+
type: exports.MRT_FILTER_TYPE.EMPTY,
|
|
346
348
|
label: localization.filterMenuItemEmpty,
|
|
347
349
|
divider: false
|
|
348
350
|
}, {
|
|
349
|
-
type:
|
|
351
|
+
type: exports.MRT_FILTER_TYPE.NOT_EMPTY,
|
|
350
352
|
label: localization.filterMenuItemNotEmpty,
|
|
351
353
|
divider: false
|
|
352
354
|
}];
|
|
@@ -360,7 +362,7 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
|
|
|
360
362
|
return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = value, _extends2));
|
|
361
363
|
});
|
|
362
364
|
|
|
363
|
-
if ([
|
|
365
|
+
if ([exports.MRT_FILTER_TYPE.EMPTY, exports.MRT_FILTER_TYPE.NOT_EMPTY].includes(value)) {
|
|
364
366
|
column.setFilter(' ');
|
|
365
367
|
}
|
|
366
368
|
|
|
@@ -377,28 +379,29 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
|
|
|
377
379
|
onClose: function onClose() {
|
|
378
380
|
return setAnchorEl(null);
|
|
379
381
|
},
|
|
380
|
-
open: !!anchorEl
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
}, filterTypes.map(function (_ref2) {
|
|
382
|
+
open: !!anchorEl,
|
|
383
|
+
MenuListProps: {
|
|
384
|
+
dense: tableInstance.state.densePadding
|
|
385
|
+
}
|
|
386
|
+
}, filterTypes.map(function (_ref2, index) {
|
|
385
387
|
var type = _ref2.type,
|
|
386
388
|
label = _ref2.label,
|
|
387
389
|
divider = _ref2.divider;
|
|
388
390
|
return React__default.createElement(material.MenuItem, {
|
|
389
391
|
divider: divider,
|
|
390
|
-
key:
|
|
392
|
+
key: index,
|
|
391
393
|
onClick: function onClick() {
|
|
392
394
|
return handleSelectFilterType(type);
|
|
393
395
|
},
|
|
394
396
|
selected: type === filterType,
|
|
397
|
+
sx: commonMenuItemStyles,
|
|
395
398
|
value: type
|
|
396
399
|
}, label);
|
|
397
|
-
}))
|
|
400
|
+
}));
|
|
398
401
|
};
|
|
399
402
|
|
|
400
403
|
var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
401
|
-
var _localization$filterT, _localization$filterT2;
|
|
404
|
+
var _localization$filterT, _localization$filterT2, _column$filterSelectO;
|
|
402
405
|
|
|
403
406
|
var column = _ref.column;
|
|
404
407
|
|
|
@@ -446,7 +449,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
446
449
|
setCurrentFilterTypes(function (prev) {
|
|
447
450
|
var _extends2;
|
|
448
451
|
|
|
449
|
-
return _extends({}, prev, (_extends2 = {}, _extends2[column.id] =
|
|
452
|
+
return _extends({}, prev, (_extends2 = {}, _extends2[column.id] = exports.MRT_FILTER_TYPE.FUZZY, _extends2));
|
|
450
453
|
});
|
|
451
454
|
};
|
|
452
455
|
|
|
@@ -457,7 +460,9 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
457
460
|
}
|
|
458
461
|
|
|
459
462
|
var filterType = tableInstance.state.currentFilterTypes[column.id];
|
|
460
|
-
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);
|
|
461
466
|
var filterPlaceholder = (_localization$filterT = localization.filterTextFieldPlaceholder) == null ? void 0 : _localization$filterT.replace('{column}', String(column.Header));
|
|
462
467
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.TextField, Object.assign({
|
|
463
468
|
fullWidth: true,
|
|
@@ -466,12 +471,20 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
466
471
|
disabled: !!filterChipLabel,
|
|
467
472
|
sx: {
|
|
468
473
|
textOverflow: 'ellipsis',
|
|
469
|
-
width: filterChipLabel ? 0 :
|
|
474
|
+
width: filterChipLabel ? 0 : undefined
|
|
475
|
+
},
|
|
476
|
+
title: filterPlaceholder
|
|
477
|
+
},
|
|
478
|
+
label: isSelectFilter && !filterValue ? filterPlaceholder : undefined,
|
|
479
|
+
InputLabelProps: {
|
|
480
|
+
shrink: false,
|
|
481
|
+
sx: {
|
|
482
|
+
maxWidth: 'calc(100% - 2.5rem)'
|
|
470
483
|
},
|
|
471
484
|
title: filterPlaceholder
|
|
472
485
|
},
|
|
473
486
|
margin: "none",
|
|
474
|
-
placeholder: filterChipLabel ?
|
|
487
|
+
placeholder: filterChipLabel || isSelectFilter ? undefined : filterPlaceholder,
|
|
475
488
|
onChange: function onChange(e) {
|
|
476
489
|
setFilterValue(e.target.value);
|
|
477
490
|
handleChange(e.target.value);
|
|
@@ -479,22 +492,24 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
479
492
|
onClick: function onClick(e) {
|
|
480
493
|
return e.stopPropagation();
|
|
481
494
|
},
|
|
495
|
+
select: isSelectFilter,
|
|
482
496
|
value: filterValue != null ? filterValue : '',
|
|
483
497
|
variant: "standard",
|
|
484
498
|
InputProps: {
|
|
485
|
-
startAdornment: React__default.createElement(material.InputAdornment, {
|
|
499
|
+
startAdornment: !isSelectFilter && React__default.createElement(material.InputAdornment, {
|
|
486
500
|
position: "start"
|
|
487
501
|
}, React__default.createElement(material.Tooltip, {
|
|
488
502
|
arrow: true,
|
|
489
|
-
title:
|
|
490
|
-
}, React__default.createElement(material.IconButton, {
|
|
503
|
+
title: localization.changeFilterMode
|
|
504
|
+
}, React__default.createElement("span", null, React__default.createElement(material.IconButton, {
|
|
505
|
+
disabled: isCustomFilterType,
|
|
491
506
|
onClick: handleFilterMenuOpen,
|
|
492
507
|
size: "small",
|
|
493
508
|
sx: {
|
|
494
509
|
height: '1.75rem',
|
|
495
510
|
width: '1.75rem'
|
|
496
511
|
}
|
|
497
|
-
}, React__default.createElement(FilterListIcon, null))), filterChipLabel && React__default.createElement(material.Chip, {
|
|
512
|
+
}, React__default.createElement(FilterListIcon, null)))), filterChipLabel && React__default.createElement(material.Chip, {
|
|
498
513
|
onDelete: handleClearFilterChip,
|
|
499
514
|
label: filterType
|
|
500
515
|
})),
|
|
@@ -502,11 +517,12 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
502
517
|
position: "end"
|
|
503
518
|
}, React__default.createElement(material.Tooltip, {
|
|
504
519
|
arrow: true,
|
|
520
|
+
disableHoverListener: isSelectFilter,
|
|
505
521
|
placement: "right",
|
|
506
522
|
title: (_localization$filterT2 = localization.filterTextFieldClearButtonTitle) != null ? _localization$filterT2 : ''
|
|
507
523
|
}, React__default.createElement("span", null, React__default.createElement(material.IconButton, {
|
|
508
524
|
"aria-label": localization.filterTextFieldClearButtonTitle,
|
|
509
|
-
disabled: (filterValue
|
|
525
|
+
disabled: !(filterValue != null && filterValue.length),
|
|
510
526
|
onClick: handleClear,
|
|
511
527
|
size: "small",
|
|
512
528
|
sx: {
|
|
@@ -521,8 +537,32 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
521
537
|
sx: _extends({
|
|
522
538
|
m: '0 -0.25rem',
|
|
523
539
|
minWidth: !filterChipLabel ? '5rem' : 'auto',
|
|
524
|
-
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
|
+
}
|
|
525
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);
|
|
526
566
|
})), React__default.createElement(MRT_FilterTypeMenu, {
|
|
527
567
|
anchorEl: anchorEl,
|
|
528
568
|
column: column,
|
|
@@ -530,8 +570,15 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
|
|
|
530
570
|
}));
|
|
531
571
|
};
|
|
532
572
|
|
|
533
|
-
var commonMenuItemStyles = {
|
|
573
|
+
var commonMenuItemStyles$1 = {
|
|
574
|
+
py: '6px',
|
|
575
|
+
my: 0,
|
|
576
|
+
justifyContent: 'space-between',
|
|
577
|
+
alignItems: 'center'
|
|
578
|
+
};
|
|
579
|
+
var commonListItemStyles = {
|
|
534
580
|
display: 'flex',
|
|
581
|
+
gap: '0.75rem',
|
|
535
582
|
alignItems: 'center'
|
|
536
583
|
};
|
|
537
584
|
var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
@@ -551,6 +598,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
|
551
598
|
ClearAllIcon = _useMRT$icons.ClearAllIcon,
|
|
552
599
|
DynamicFeedIcon = _useMRT$icons.DynamicFeedIcon,
|
|
553
600
|
FilterListIcon = _useMRT$icons.FilterListIcon,
|
|
601
|
+
FilterListOffIcon = _useMRT$icons.FilterListOffIcon,
|
|
554
602
|
SortIcon = _useMRT$icons.SortIcon,
|
|
555
603
|
VisibilityOffIcon = _useMRT$icons.VisibilityOffIcon,
|
|
556
604
|
idPrefix = _useMRT.idPrefix,
|
|
@@ -587,6 +635,11 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
|
587
635
|
setAnchorEl(null);
|
|
588
636
|
};
|
|
589
637
|
|
|
638
|
+
var handleClearFilter = function handleClearFilter() {
|
|
639
|
+
column.setFilter('');
|
|
640
|
+
setAnchorEl(null);
|
|
641
|
+
};
|
|
642
|
+
|
|
590
643
|
var handleFilterByColumn = function handleFilterByColumn() {
|
|
591
644
|
setShowFilters(true);
|
|
592
645
|
setTimeout(function () {
|
|
@@ -608,36 +661,51 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
|
608
661
|
open: !!anchorEl,
|
|
609
662
|
onClose: function onClose() {
|
|
610
663
|
return setAnchorEl(null);
|
|
664
|
+
},
|
|
665
|
+
MenuListProps: {
|
|
666
|
+
dense: tableInstance.state.densePadding
|
|
611
667
|
}
|
|
612
|
-
}, React__default.createElement(material.MenuList, {
|
|
613
|
-
dense: tableInstance.state.densePadding,
|
|
614
|
-
disablePadding: true
|
|
615
668
|
}, !disableSortBy && column.canSort && [React__default.createElement(material.MenuItem, {
|
|
616
|
-
key: 1,
|
|
617
669
|
disabled: !column.isSorted,
|
|
670
|
+
key: 1,
|
|
618
671
|
onClick: handleClearSort,
|
|
619
|
-
sx: commonMenuItemStyles
|
|
620
|
-
}, React__default.createElement(material.
|
|
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, {
|
|
621
676
|
disabled: column.isSorted && !column.isSortedDesc,
|
|
622
677
|
key: 2,
|
|
623
678
|
onClick: handleSortAsc,
|
|
624
|
-
sx: commonMenuItemStyles
|
|
625
|
-
}, React__default.createElement(material.
|
|
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, {
|
|
626
683
|
divider: !disableFilters || enableColumnGrouping || !disableColumnHiding,
|
|
627
684
|
key: 3,
|
|
628
685
|
disabled: column.isSorted && column.isSortedDesc,
|
|
629
686
|
onClick: handleSortDesc,
|
|
630
|
-
sx: commonMenuItemStyles
|
|
631
|
-
}, React__default.createElement(material.
|
|
687
|
+
sx: commonMenuItemStyles$1
|
|
688
|
+
}, React__default.createElement(material.Box, {
|
|
689
|
+
sx: commonListItemStyles
|
|
690
|
+
}, React__default.createElement(SortIcon, {
|
|
632
691
|
style: {
|
|
633
692
|
transform: 'rotate(180deg) scaleX(-1)'
|
|
634
693
|
}
|
|
635
|
-
})
|
|
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, {
|
|
636
702
|
divider: enableColumnGrouping || !disableColumnHiding,
|
|
637
703
|
key: 1,
|
|
638
704
|
onClick: handleFilterByColumn,
|
|
639
|
-
sx: commonMenuItemStyles
|
|
640
|
-
}, React__default.createElement(material.
|
|
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, {
|
|
641
709
|
onClick: handleOpenFilterModeMenu,
|
|
642
710
|
onMouseEnter: handleOpenFilterModeMenu,
|
|
643
711
|
size: "small",
|
|
@@ -654,12 +722,16 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
|
|
|
654
722
|
divider: !disableColumnHiding,
|
|
655
723
|
key: 2,
|
|
656
724
|
onClick: handleGroupByColumn,
|
|
657
|
-
sx: commonMenuItemStyles
|
|
658
|
-
}, React__default.createElement(material.
|
|
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, {
|
|
659
729
|
key: 1,
|
|
660
730
|
onClick: handleHideColumn,
|
|
661
|
-
sx: commonMenuItemStyles
|
|
662
|
-
}, React__default.createElement(material.
|
|
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))))]);
|
|
663
735
|
};
|
|
664
736
|
|
|
665
737
|
var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton(_ref) {
|
|
@@ -742,8 +814,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
|
|
|
742
814
|
});
|
|
743
815
|
|
|
744
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);
|
|
745
|
-
var filterTooltip = !!column.filterValue ? localization.filterApplied.replace('{column}', String(column.Header)).replace('{filterType}',
|
|
746
|
-
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;
|
|
747
818
|
var columnHeader = column.render('Header');
|
|
748
819
|
return React__default.createElement(material.TableCell, Object.assign({
|
|
749
820
|
align: isParentHeader ? 'center' : 'left'
|
|
@@ -766,6 +837,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
|
|
|
766
837
|
title: undefined
|
|
767
838
|
}), column.render('Header'), !isParentHeader && column.canSort && React__default.createElement(material.Tooltip, {
|
|
768
839
|
arrow: true,
|
|
840
|
+
placement: "top",
|
|
769
841
|
title: sortTooltip
|
|
770
842
|
}, React__default.createElement(material.TableSortLabel, {
|
|
771
843
|
"aria-label": sortTooltip,
|
|
@@ -773,19 +845,22 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
|
|
|
773
845
|
direction: column.isSortedDesc ? 'desc' : 'asc'
|
|
774
846
|
})), !isParentHeader && !!column.canFilter && React__default.createElement(material.Tooltip, {
|
|
775
847
|
arrow: true,
|
|
848
|
+
placement: "top",
|
|
776
849
|
title: filterTooltip
|
|
777
850
|
}, React__default.createElement(material.IconButton, {
|
|
851
|
+
disableRipple: true,
|
|
778
852
|
onClick: function onClick(event) {
|
|
779
853
|
event.stopPropagation();
|
|
780
854
|
setShowFilters(!tableInstance.state.showFilters);
|
|
781
855
|
},
|
|
782
856
|
size: "small",
|
|
783
857
|
sx: {
|
|
858
|
+
m: 0,
|
|
784
859
|
opacity: !!column.filterValue ? 0.8 : 0,
|
|
785
860
|
p: '2px',
|
|
786
|
-
m: 0,
|
|
787
861
|
transition: 'all 0.2s ease-in-out',
|
|
788
862
|
'&:hover': {
|
|
863
|
+
backgroundColor: 'transparent',
|
|
789
864
|
opacity: 0.8
|
|
790
865
|
}
|
|
791
866
|
}
|
|
@@ -882,8 +957,10 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
|
|
|
882
957
|
var cell = _ref.cell;
|
|
883
958
|
|
|
884
959
|
var _useMRT = useMRT(),
|
|
885
|
-
|
|
960
|
+
isLoading = _useMRT.isLoading,
|
|
886
961
|
muiTableBodyCellProps = _useMRT.muiTableBodyCellProps,
|
|
962
|
+
muiTableBodyCellSkeletonProps = _useMRT.muiTableBodyCellSkeletonProps,
|
|
963
|
+
onCellClick = _useMRT.onCellClick,
|
|
887
964
|
_useMRT$tableInstance = _useMRT.tableInstance.state,
|
|
888
965
|
currentEditingRow = _useMRT$tableInstance.currentEditingRow,
|
|
889
966
|
densePadding = _useMRT$tableInstance.densePadding;
|
|
@@ -901,7 +978,11 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
|
|
|
901
978
|
}
|
|
902
979
|
}, tableCellProps, {
|
|
903
980
|
sx: _extends({}, commonTableBodyCellStyles(densePadding), tableCellProps == null ? void 0 : tableCellProps.sx)
|
|
904
|
-
}),
|
|
981
|
+
}), isLoading ? React__default.createElement(material.Skeleton, Object.assign({
|
|
982
|
+
animation: "wave",
|
|
983
|
+
height: 20,
|
|
984
|
+
width: Math.random() * (120 - 60) + 60
|
|
985
|
+
}, muiTableBodyCellSkeletonProps)) : (currentEditingRow == null ? void 0 : currentEditingRow.id) === cell.row.id ? React__default.createElement(MRT_EditCellTextField, {
|
|
905
986
|
cell: cell
|
|
906
987
|
}) : cell.isPlaceholder ? null : cell.isAggregated ? cell.render('Aggregated') : cell.isGrouped ? React__default.createElement("span", null, cell.render('Cell'), " (", cell.row.subRows.length, ")") : cell.render('Cell'));
|
|
907
988
|
};
|
|
@@ -1138,15 +1219,16 @@ var MRT_RowActionMenu = function MRT_RowActionMenu(_ref) {
|
|
|
1138
1219
|
open: !!anchorEl,
|
|
1139
1220
|
onClose: function onClose() {
|
|
1140
1221
|
return setAnchorEl(null);
|
|
1222
|
+
},
|
|
1223
|
+
MenuListProps: {
|
|
1224
|
+
dense: tableInstance.state.densePadding
|
|
1141
1225
|
}
|
|
1142
|
-
}, React__default.createElement(material.MenuList, {
|
|
1143
|
-
dense: tableInstance.state.densePadding,
|
|
1144
|
-
disablePadding: true
|
|
1145
1226
|
}, enableRowEditing && React__default.createElement(material.MenuItem, {
|
|
1146
|
-
onClick: handleEdit
|
|
1147
|
-
|
|
1227
|
+
onClick: handleEdit,
|
|
1228
|
+
sx: commonMenuItemStyles$1
|
|
1229
|
+
}, React__default.createElement(EditIcon, null), localization.rowActionMenuItemEdit), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
|
|
1148
1230
|
return setAnchorEl(null);
|
|
1149
|
-
})) != null ? _renderRowActionMenuI : null)
|
|
1231
|
+
})) != null ? _renderRowActionMenuI : null);
|
|
1150
1232
|
};
|
|
1151
1233
|
|
|
1152
1234
|
function createCommonjsModule(fn, module) {
|
|
@@ -2328,10 +2410,17 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
|
|
|
2328
2410
|
};
|
|
2329
2411
|
|
|
2330
2412
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.MenuItem, {
|
|
2331
|
-
sx: {
|
|
2413
|
+
sx: _extends({}, commonMenuItemStyles$1, {
|
|
2332
2414
|
pl: (column.depth + 0.5) * 2 + "rem"
|
|
2333
|
-
}
|
|
2415
|
+
})
|
|
2334
2416
|
}, React__default.createElement(material.FormControlLabel, {
|
|
2417
|
+
componentsProps: {
|
|
2418
|
+
typography: {
|
|
2419
|
+
sx: {
|
|
2420
|
+
marginBottom: 0
|
|
2421
|
+
}
|
|
2422
|
+
}
|
|
2423
|
+
},
|
|
2335
2424
|
checked: switchChecked,
|
|
2336
2425
|
control: React__default.createElement(material.Switch, null),
|
|
2337
2426
|
label: column.Header,
|
|
@@ -2374,15 +2463,15 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
|
|
|
2374
2463
|
open: !!anchorEl,
|
|
2375
2464
|
onClose: function onClose() {
|
|
2376
2465
|
return setAnchorEl(null);
|
|
2466
|
+
},
|
|
2467
|
+
MenuListProps: {
|
|
2468
|
+
dense: tableInstance.state.densePadding
|
|
2377
2469
|
}
|
|
2378
|
-
}, React__default.createElement(material.MenuList, {
|
|
2379
|
-
dense: tableInstance.state.densePadding,
|
|
2380
|
-
disablePadding: true
|
|
2381
2470
|
}, React__default.createElement(material.Box, {
|
|
2382
2471
|
sx: {
|
|
2383
2472
|
display: 'flex',
|
|
2384
2473
|
justifyContent: 'space-between',
|
|
2385
|
-
p: '0
|
|
2474
|
+
p: '0.5rem'
|
|
2386
2475
|
}
|
|
2387
2476
|
}, React__default.createElement(material.Button, {
|
|
2388
2477
|
disabled: !tableInstance.getToggleHideAllColumnsProps().checked && !tableInstance.getToggleHideAllColumnsProps().indeterminate,
|
|
@@ -2399,7 +2488,7 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
|
|
|
2399
2488
|
key: index + "-" + column.id,
|
|
2400
2489
|
column: column
|
|
2401
2490
|
});
|
|
2402
|
-
})))
|
|
2491
|
+
})));
|
|
2403
2492
|
};
|
|
2404
2493
|
|
|
2405
2494
|
var MRT_ToggleDensePaddingButton = function MRT_ToggleDensePaddingButton(_ref) {
|
|
@@ -2684,6 +2773,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
|
|
|
2684
2773
|
hideToolbarTop = _useMRT.hideToolbarTop,
|
|
2685
2774
|
isFetching = _useMRT.isFetching,
|
|
2686
2775
|
isLoading = _useMRT.isLoading,
|
|
2776
|
+
muiLinearProgressProps = _useMRT.muiLinearProgressProps,
|
|
2687
2777
|
muiTableContainerProps = _useMRT.muiTableContainerProps,
|
|
2688
2778
|
tableInstance = _useMRT.tableInstance;
|
|
2689
2779
|
|
|
@@ -2708,6 +2798,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
|
|
|
2708
2798
|
}
|
|
2709
2799
|
}, [fullScreen]);
|
|
2710
2800
|
var tableContainerProps = muiTableContainerProps instanceof Function ? muiTableContainerProps(tableInstance) : muiTableContainerProps;
|
|
2801
|
+
var linearProgressProps = muiLinearProgressProps instanceof Function ? muiLinearProgressProps(tableInstance) : muiLinearProgressProps;
|
|
2711
2802
|
return React__default.createElement(material.TableContainer, Object.assign({
|
|
2712
2803
|
component: material.Paper
|
|
2713
2804
|
}, tableContainerProps, {
|
|
@@ -2726,7 +2817,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
|
|
|
2726
2817
|
}), !hideToolbarTop && React__default.createElement(MRT_ToolbarTop, null), React__default.createElement(material.Collapse, {
|
|
2727
2818
|
"in": isFetching || isLoading,
|
|
2728
2819
|
unmountOnExit: true
|
|
2729
|
-
}, React__default.createElement(material.LinearProgress,
|
|
2820
|
+
}, React__default.createElement(material.LinearProgress, Object.assign({}, linearProgressProps))), React__default.createElement(material.Box, {
|
|
2730
2821
|
sx: {
|
|
2731
2822
|
maxWidth: '100%',
|
|
2732
2823
|
overflowX: 'auto'
|
|
@@ -2752,6 +2843,7 @@ var MRT_DefaultLocalization_EN = {
|
|
|
2752
2843
|
filterMenuItemEmpty: 'Empty',
|
|
2753
2844
|
filterMenuItemEndsWith: 'Ends With',
|
|
2754
2845
|
filterMenuItemEquals: 'Equals',
|
|
2846
|
+
changeFilterMode: 'Change filter mode',
|
|
2755
2847
|
filterMenuItemFuzzy: 'Fuzzy Match (Default)',
|
|
2756
2848
|
filterMenuItemNotEmpty: 'Not Empty',
|
|
2757
2849
|
filterMenuItemNotEquals: 'Not Equals',
|
|
@@ -2810,6 +2902,18 @@ var MRT_Default_Icons = {
|
|
|
2810
2902
|
};
|
|
2811
2903
|
|
|
2812
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
|
+
|
|
2813
2917
|
var MaterialReactTable = (function (_ref) {
|
|
2814
2918
|
var _ref$defaultColumn = _ref.defaultColumn,
|
|
2815
2919
|
defaultColumn = _ref$defaultColumn === void 0 ? {
|