material-react-table 0.38.3 → 0.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/MaterialReactTable.d.ts +26 -4
- package/dist/cjs/body/MRT_EditRowModal.d.ts +1 -0
- package/dist/cjs/body/MRT_TableBodyRow.d.ts +1 -0
- package/dist/cjs/buttons/MRT_ColumnPinningButtons.d.ts +1 -0
- package/dist/cjs/buttons/MRT_EditActionButtons.d.ts +1 -0
- package/dist/cjs/buttons/MRT_FullScreenToggleButton.d.ts +1 -0
- package/dist/cjs/buttons/MRT_ShowHideColumnsButton.d.ts +1 -0
- package/dist/cjs/buttons/MRT_ToggleDensePaddingButton.d.ts +1 -0
- package/dist/cjs/buttons/MRT_ToggleFiltersButton.d.ts +1 -0
- package/dist/cjs/buttons/MRT_ToggleGlobalFilterButton.d.ts +1 -0
- package/dist/cjs/column.utils.d.ts +1 -0
- package/dist/cjs/index.js +68 -43
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/inputs/MRT_EditCellTextField.d.ts +1 -0
- package/dist/cjs/inputs/MRT_GlobalFilterTextField.d.ts +1 -0
- package/dist/cjs/menus/MRT_FilterOptionMenu.d.ts +3 -7
- package/dist/cjs/menus/MRT_ShowHideColumnsMenu.d.ts +1 -0
- package/dist/cjs/table/MRT_TableRoot.d.ts +1 -0
- package/dist/esm/MaterialReactTable.d.ts +26 -4
- package/dist/esm/body/MRT_EditRowModal.d.ts +1 -0
- package/dist/esm/body/MRT_TableBodyRow.d.ts +1 -0
- package/dist/esm/buttons/MRT_ColumnPinningButtons.d.ts +1 -0
- package/dist/esm/buttons/MRT_EditActionButtons.d.ts +1 -0
- package/dist/esm/buttons/MRT_FullScreenToggleButton.d.ts +1 -0
- package/dist/esm/buttons/MRT_ShowHideColumnsButton.d.ts +1 -0
- package/dist/esm/buttons/MRT_ToggleDensePaddingButton.d.ts +1 -0
- package/dist/esm/buttons/MRT_ToggleFiltersButton.d.ts +1 -0
- package/dist/esm/buttons/MRT_ToggleGlobalFilterButton.d.ts +1 -0
- package/dist/esm/column.utils.d.ts +1 -0
- package/dist/esm/inputs/MRT_EditCellTextField.d.ts +1 -0
- package/dist/esm/inputs/MRT_GlobalFilterTextField.d.ts +1 -0
- package/dist/esm/material-react-table.esm.js +68 -43
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/menus/MRT_FilterOptionMenu.d.ts +3 -7
- package/dist/esm/menus/MRT_ShowHideColumnsMenu.d.ts +1 -0
- package/dist/esm/table/MRT_TableRoot.d.ts +1 -0
- package/dist/index.d.ts +28 -5
- package/package.json +2 -2
- package/src/MaterialReactTable.tsx +42 -7
- package/src/body/MRT_TableBody.tsx +1 -0
- package/src/body/MRT_TableBodyCell.tsx +6 -4
- package/src/body/MRT_TableBodyCellValue.tsx +10 -11
- package/src/body/MRT_TableBodyRow.tsx +14 -3
- package/src/column.utils.ts +1 -1
- package/src/head/MRT_TableHeadCellFilterContainer.tsx +3 -2
- package/src/inputs/MRT_FilterTextField.tsx +5 -8
- package/src/inputs/MRT_GlobalFilterTextField.tsx +2 -2
- package/src/menus/MRT_ColumnActionMenu.tsx +3 -3
- package/src/menus/MRT_FilterOptionMenu.tsx +50 -33
- package/src/table/MRT_TableRoot.tsx +18 -13
|
@@ -154,7 +154,7 @@ export declare type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit
|
|
|
154
154
|
enableClickToCopy?: boolean;
|
|
155
155
|
enableColumnActions?: boolean;
|
|
156
156
|
enableColumnDragging?: boolean;
|
|
157
|
-
|
|
157
|
+
enableColumnFilterModes?: boolean;
|
|
158
158
|
enableColumnOrdering?: boolean;
|
|
159
159
|
enableEditing?: boolean;
|
|
160
160
|
filterFn?: MRT_FilterFn<TData>;
|
|
@@ -216,6 +216,10 @@ export declare type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit
|
|
|
216
216
|
table: MRT_TableInstance<TData>;
|
|
217
217
|
column: MRT_Column<TData>;
|
|
218
218
|
}) => TableCellProps);
|
|
219
|
+
renderColumnFilterModeMenuItems?: ({ table, column, }: {
|
|
220
|
+
table: MRT_TableInstance<TData>;
|
|
221
|
+
column: MRT_Column<TData>;
|
|
222
|
+
}) => ReactNode[];
|
|
219
223
|
sortingFn?: MRT_SortingFn;
|
|
220
224
|
};
|
|
221
225
|
export declare type MRT_DefinedColumnDef<TData extends Record<string, any> = {}> = Omit<MRT_ColumnDef<TData>, 'id'> & {
|
|
@@ -249,6 +253,12 @@ export declare type MRT_SortingOption = LiteralUnion<string & keyof typeof MRT_S
|
|
|
249
253
|
export declare type MRT_SortingFn<TData extends Record<string, any> = {}> = SortingFn<TData> | MRT_SortingOption;
|
|
250
254
|
export declare type MRT_FilterOption = LiteralUnion<string & keyof typeof MRT_FilterFns>;
|
|
251
255
|
export declare type MRT_FilterFn<TData extends Record<string, any> = {}> = FilterFn<TData> | MRT_FilterOption;
|
|
256
|
+
export declare type MRT_InternalFilterOption = {
|
|
257
|
+
option: string;
|
|
258
|
+
symbol: string;
|
|
259
|
+
label: string;
|
|
260
|
+
divider: boolean;
|
|
261
|
+
};
|
|
252
262
|
export declare type MRT_DisplayColumnIds = 'mrt-row-actions' | 'mrt-row-drag' | 'mrt-row-expand' | 'mrt-row-numbers' | 'mrt-row-select';
|
|
253
263
|
/**
|
|
254
264
|
* `columns` and `data` props are the only required props, but there are over 150 other optional props.
|
|
@@ -272,13 +282,13 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
|
|
|
272
282
|
enableClickToCopy?: boolean;
|
|
273
283
|
enableColumnActions?: boolean;
|
|
274
284
|
enableColumnDragging?: boolean;
|
|
275
|
-
|
|
285
|
+
enableColumnFilterModes?: boolean;
|
|
276
286
|
enableColumnOrdering?: boolean;
|
|
277
287
|
enableDensityToggle?: boolean;
|
|
278
288
|
enableEditing?: boolean;
|
|
279
289
|
enableExpandAll?: boolean;
|
|
280
290
|
enableFullScreenToggle?: boolean;
|
|
281
|
-
|
|
291
|
+
enableGlobalFilterModes?: boolean;
|
|
282
292
|
enableGlobalFilterRankedResults?: boolean;
|
|
283
293
|
enablePagination?: boolean;
|
|
284
294
|
enableRowActions?: boolean;
|
|
@@ -460,10 +470,21 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
|
|
|
460
470
|
renderBottomToolbarCustomActions?: ({ table, }: {
|
|
461
471
|
table: MRT_TableInstance<TData>;
|
|
462
472
|
}) => ReactNode;
|
|
473
|
+
renderColumnFilterModeMenuItems?: ({ column, internalFilterOptions, onSelectFilterMode, table, }: {
|
|
474
|
+
column: MRT_Column<TData>;
|
|
475
|
+
internalFilterOptions: MRT_InternalFilterOption[];
|
|
476
|
+
onSelectFilterMode: (filterMode: MRT_FilterOption) => void;
|
|
477
|
+
table: MRT_TableInstance<TData>;
|
|
478
|
+
}) => ReactNode;
|
|
463
479
|
renderDetailPanel?: ({ row, table, }: {
|
|
464
480
|
row: MRT_Row<TData>;
|
|
465
481
|
table: MRT_TableInstance<TData>;
|
|
466
482
|
}) => ReactNode;
|
|
483
|
+
renderGlobalFilterModeMenuItems?: ({ internalFilterOptions, onSelectFilterMode, table, }: {
|
|
484
|
+
internalFilterOptions: MRT_InternalFilterOption[];
|
|
485
|
+
onSelectFilterMode: (filterMode: MRT_FilterOption) => void;
|
|
486
|
+
table: MRT_TableInstance<TData>;
|
|
487
|
+
}) => ReactNode[];
|
|
467
488
|
renderRowActionMenuItems?: ({ closeMenu, row, table, }: {
|
|
468
489
|
closeMenu: () => void;
|
|
469
490
|
row: MRT_Row<TData>;
|
|
@@ -484,9 +505,10 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
|
|
|
484
505
|
rowNumberMode?: 'original' | 'static';
|
|
485
506
|
selectAllMode?: 'all' | 'page';
|
|
486
507
|
state?: Partial<MRT_TableState<TData>>;
|
|
508
|
+
tableInstanceRef?: MutableRefObject<MRT_TableInstance<TData> | null>;
|
|
487
509
|
virtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement>> | (({ table, }: {
|
|
488
510
|
table: MRT_TableInstance<TData>;
|
|
489
511
|
}) => Partial<VirtualizerOptions<HTMLDivElement>>);
|
|
490
512
|
};
|
|
491
|
-
declare const _default: <TData extends Record<string, any> = {}>({ aggregationFns, autoResetExpanded, columnResizeMode, defaultColumn, editingMode, enableBottomToolbar, enableColumnActions,
|
|
513
|
+
declare const _default: <TData extends Record<string, any> = {}>({ aggregationFns, autoResetExpanded, columnResizeMode, defaultColumn, editingMode, enableBottomToolbar, enableColumnActions, enableColumnFilterModes, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGlobalFilterModes, enableGlobalFilterRankedResults, enableGrouping, enableHiding, enableMultiRowSelection, enableMultiSort, enablePagination, enablePinning, enableRowSelection, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarInternalActions, enableTopToolbar, filterFns, icons, localization, positionActionsColumn, positionExpandColumn, positionGlobalFilter, positionPagination, positionToolbarAlertBanner, positionToolbarDropZone, rowNumberMode, selectAllMode, sortingFns, ...rest }: MaterialReactTableProps<TData>) => JSX.Element;
|
|
492
514
|
export default _default;
|
|
@@ -3,6 +3,7 @@ import { MaterialReactTableProps, MRT_Column, MRT_ColumnDef, MRT_DefinedColumnDe
|
|
|
3
3
|
import { MRT_FilterFns } from './filterFns';
|
|
4
4
|
import { MRT_SortingFns } from './sortingFns';
|
|
5
5
|
export declare const defaultDisplayColumnDefOptions: Partial<MRT_ColumnDef<{}>>;
|
|
6
|
+
export declare const getColumnId: <TData extends Record<string, any> = {}>(columnDef: MRT_ColumnDef<TData>) => string;
|
|
6
7
|
export declare const getAllLeafColumnDefs: <TData extends Record<string, any> = {}>(columns: MRT_ColumnDef<TData>[]) => MRT_ColumnDef<TData>[];
|
|
7
8
|
export declare const prepareColumns: <TData extends Record<string, any> = {}>(columnDefs: MRT_ColumnDef<TData>[], columnFilterFns: {
|
|
8
9
|
[key: string]: MRT_FilterOption;
|
package/dist/cjs/index.js
CHANGED
|
@@ -300,7 +300,7 @@ const MRT_ExpandButton = ({ row, table }) => {
|
|
|
300
300
|
} })))));
|
|
301
301
|
};
|
|
302
302
|
|
|
303
|
-
const
|
|
303
|
+
const mrtFilterOptions = (localization) => [
|
|
304
304
|
{
|
|
305
305
|
option: 'fuzzy',
|
|
306
306
|
symbol: '≈',
|
|
@@ -387,19 +387,19 @@ const internalFilterOptions = (localization) => [
|
|
|
387
387
|
},
|
|
388
388
|
];
|
|
389
389
|
const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, table, }) => {
|
|
390
|
-
var _a;
|
|
391
|
-
const { getState, options: { enabledGlobalFilterOptions, columnFilterModeOptions, localization, }, setColumnFilterFns, setGlobalFilterFn, } = table;
|
|
392
|
-
const {
|
|
390
|
+
var _a, _b;
|
|
391
|
+
const { getState, options: { enabledGlobalFilterOptions, columnFilterModeOptions, localization, renderColumnFilterModeMenuItems, renderGlobalFilterModeMenuItems, }, setColumnFilterFns, setGlobalFilterFn, } = table;
|
|
392
|
+
const { globalFilterFn, density } = getState();
|
|
393
393
|
const { column } = header !== null && header !== void 0 ? header : {};
|
|
394
394
|
const { columnDef } = column !== null && column !== void 0 ? column : {};
|
|
395
395
|
const allowedColumnFilterOptions = (_a = columnDef === null || columnDef === void 0 ? void 0 : columnDef.columnFilterModeOptions) !== null && _a !== void 0 ? _a : columnFilterModeOptions;
|
|
396
|
-
const
|
|
396
|
+
const internalFilterOptions = React.useMemo(() => mrtFilterOptions(localization).filter((filterOption) => columnDef
|
|
397
397
|
? allowedColumnFilterOptions === undefined ||
|
|
398
398
|
(allowedColumnFilterOptions === null || allowedColumnFilterOptions === void 0 ? void 0 : allowedColumnFilterOptions.includes(filterOption.option))
|
|
399
399
|
: (!enabledGlobalFilterOptions ||
|
|
400
400
|
enabledGlobalFilterOptions.includes(filterOption.option)) &&
|
|
401
|
-
['fuzzy', 'contains'].includes(filterOption.option)), []);
|
|
402
|
-
const
|
|
401
|
+
['fuzzy', 'contains', 'startsWith'].includes(filterOption.option)), []);
|
|
402
|
+
const handleSelectFilterMode = (option) => {
|
|
403
403
|
if (header && column) {
|
|
404
404
|
setColumnFilterFns((prev) => (Object.assign(Object.assign({}, prev), { [header.id]: option })));
|
|
405
405
|
if (['empty', 'notEmpty'].includes(option)) {
|
|
@@ -418,15 +418,26 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, table,
|
|
|
418
418
|
setAnchorEl(null);
|
|
419
419
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect();
|
|
420
420
|
};
|
|
421
|
-
const filterOption = !!header ?
|
|
421
|
+
const filterOption = !!header && columnDef ? columnDef._filterFn : globalFilterFn;
|
|
422
422
|
return (React__default["default"].createElement(material.Menu, { anchorEl: anchorEl, anchorOrigin: { vertical: 'center', horizontal: 'right' }, onClose: () => setAnchorEl(null), open: !!anchorEl, MenuListProps: {
|
|
423
423
|
dense: density === 'compact',
|
|
424
|
-
} },
|
|
425
|
-
|
|
426
|
-
|
|
424
|
+
} }, (_b = (header && column
|
|
425
|
+
? renderColumnFilterModeMenuItems === null || renderColumnFilterModeMenuItems === void 0 ? void 0 : renderColumnFilterModeMenuItems({
|
|
426
|
+
column: column,
|
|
427
|
+
internalFilterOptions,
|
|
428
|
+
onSelectFilterMode: handleSelectFilterMode,
|
|
429
|
+
table,
|
|
430
|
+
})
|
|
431
|
+
: renderGlobalFilterModeMenuItems === null || renderGlobalFilterModeMenuItems === void 0 ? void 0 : renderGlobalFilterModeMenuItems({
|
|
432
|
+
internalFilterOptions,
|
|
433
|
+
onSelectFilterMode: handleSelectFilterMode,
|
|
434
|
+
table,
|
|
435
|
+
}))) !== null && _b !== void 0 ? _b : internalFilterOptions.map(({ option, label, divider, symbol }, index) => (React__default["default"].createElement(material.MenuItem, { divider: divider, key: index, onClick: () => handleSelectFilterMode(option), selected: option === filterOption, sx: {
|
|
427
436
|
alignItems: 'center',
|
|
428
437
|
display: 'flex',
|
|
429
438
|
gap: '2ch',
|
|
439
|
+
my: 0,
|
|
440
|
+
py: '6px',
|
|
430
441
|
}, value: option },
|
|
431
442
|
React__default["default"].createElement(material.Box, { sx: { fontSize: '1.25rem', width: '2ch' } }, symbol),
|
|
432
443
|
label)))));
|
|
@@ -714,7 +725,7 @@ const commonListItemStyles = {
|
|
|
714
725
|
};
|
|
715
726
|
const MRT_ColumnActionMenu = ({ anchorEl, header, setAnchorEl, table, }) => {
|
|
716
727
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
717
|
-
const { getState, toggleAllColumnsVisible, setColumnOrder, options: {
|
|
728
|
+
const { getState, toggleAllColumnsVisible, setColumnOrder, options: { enableColumnFilterModes, enableColumnFilters, enableColumnResizing, enableGrouping, enableHiding, enablePinning, enableSorting, columnFilterModeOptions, icons: { ArrowRightIcon, ClearAllIcon, ViewColumnIcon, DynamicFeedIcon, FilterListIcon, FilterListOffIcon, PushPinIcon, SortIcon, RestartAltIcon, VisibilityOffIcon, }, localization, }, refs: { filterInputRefs }, setShowFilters, } = table;
|
|
718
729
|
const { column } = header;
|
|
719
730
|
const { columnDef } = column;
|
|
720
731
|
const { columnSizing, columnVisibility, density } = getState();
|
|
@@ -772,8 +783,8 @@ const MRT_ColumnActionMenu = ({ anchorEl, header, setAnchorEl, table, }) => {
|
|
|
772
783
|
};
|
|
773
784
|
const isSelectFilter = !!columnDef.filterSelectOptions;
|
|
774
785
|
const allowedColumnFilterOptions = (_a = columnDef === null || columnDef === void 0 ? void 0 : columnDef.columnFilterModeOptions) !== null && _a !== void 0 ? _a : columnFilterModeOptions;
|
|
775
|
-
const showFilterModeSubMenu =
|
|
776
|
-
columnDef.
|
|
786
|
+
const showFilterModeSubMenu = enableColumnFilterModes &&
|
|
787
|
+
columnDef.enableColumnFilterModes !== false &&
|
|
777
788
|
!isSelectFilter &&
|
|
778
789
|
(allowedColumnFilterOptions === undefined ||
|
|
779
790
|
!!(allowedColumnFilterOptions === null || allowedColumnFilterOptions === void 0 ? void 0 : allowedColumnFilterOptions.length));
|
|
@@ -975,7 +986,7 @@ const MRT_SelectCheckbox = ({ row, selectAll, table }) => {
|
|
|
975
986
|
|
|
976
987
|
const MRT_GlobalFilterTextField = ({ table, }) => {
|
|
977
988
|
var _a;
|
|
978
|
-
const { getState, setGlobalFilter, options: {
|
|
989
|
+
const { getState, setGlobalFilter, options: { enableGlobalFilterModes, icons: { SearchIcon, CloseIcon }, localization, muiSearchTextFieldProps, }, refs: { searchInputRef }, } = table;
|
|
979
990
|
const { globalFilter, showGlobalFilter } = getState();
|
|
980
991
|
const [anchorEl, setAnchorEl] = React.useState(null);
|
|
981
992
|
const [searchValue, setSearchValue] = React.useState(globalFilter !== null && globalFilter !== void 0 ? globalFilter : '');
|
|
@@ -999,7 +1010,7 @@ const MRT_GlobalFilterTextField = ({ table, }) => {
|
|
|
999
1010
|
: muiSearchTextFieldProps;
|
|
1000
1011
|
return (React__default["default"].createElement(material.Collapse, { in: showGlobalFilter, orientation: "horizontal" },
|
|
1001
1012
|
React__default["default"].createElement(material.TextField, Object.assign({ placeholder: localization.search, onChange: handleChange, value: searchValue !== null && searchValue !== void 0 ? searchValue : '', variant: "standard", InputProps: {
|
|
1002
|
-
startAdornment:
|
|
1013
|
+
startAdornment: enableGlobalFilterModes ? (React__default["default"].createElement(material.InputAdornment, { position: "start" },
|
|
1003
1014
|
React__default["default"].createElement(material.Tooltip, { arrow: true, title: localization.changeSearchMode },
|
|
1004
1015
|
React__default["default"].createElement(material.IconButton, { "aria-label": localization.changeSearchMode, onClick: handleGlobalFilterMenuOpen, size: "small", sx: { height: '1.75rem', width: '1.75rem' } },
|
|
1005
1016
|
React__default["default"].createElement(SearchIcon, null))))) : (React__default["default"].createElement(SearchIcon, { style: { marginRight: '4px' } })),
|
|
@@ -1310,10 +1321,9 @@ const MRT_TableHeadCellColumnActionsButton = ({ header, table, }) => {
|
|
|
1310
1321
|
|
|
1311
1322
|
const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
|
|
1312
1323
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
1313
|
-
const {
|
|
1324
|
+
const { options: { enableColumnFilterModes, columnFilterModeOptions, icons: { FilterListIcon, CloseIcon }, localization, muiTableHeadCellFilterTextFieldProps, }, refs: { filterInputRefs }, setColumnFilterFns, } = table;
|
|
1314
1325
|
const { column } = header;
|
|
1315
1326
|
const { columnDef } = column;
|
|
1316
|
-
const { columnFilterFns } = getState();
|
|
1317
1327
|
const mTableHeadCellFilterTextFieldProps = muiTableHeadCellFilterTextFieldProps instanceof Function
|
|
1318
1328
|
? muiTableHeadCellFilterTextFieldProps({
|
|
1319
1329
|
column,
|
|
@@ -1334,7 +1344,7 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
|
|
|
1334
1344
|
const isMultiSelectFilter = columnDef.filterVariant === 'multi-select';
|
|
1335
1345
|
const isTextboxFilter = columnDef.filterVariant === 'text' ||
|
|
1336
1346
|
(!isSelectFilter && !isMultiSelectFilter);
|
|
1337
|
-
const currentFilterOption =
|
|
1347
|
+
const currentFilterOption = columnDef._filterFn;
|
|
1338
1348
|
const filterChipLabel = ['empty', 'notEmpty'].includes(currentFilterOption)
|
|
1339
1349
|
? //@ts-ignore
|
|
1340
1350
|
localization[`filter${((_b = (_a = currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.charAt) === null || _a === void 0 ? void 0 : _a.call(currentFilterOption, 0)) === null || _b === void 0 ? void 0 : _b.toUpperCase()) +
|
|
@@ -1348,8 +1358,8 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
|
|
|
1348
1358
|
? localization.max
|
|
1349
1359
|
: '';
|
|
1350
1360
|
const allowedColumnFilterOptions = (_d = columnDef === null || columnDef === void 0 ? void 0 : columnDef.columnFilterModeOptions) !== null && _d !== void 0 ? _d : columnFilterModeOptions;
|
|
1351
|
-
const showChangeModeButton =
|
|
1352
|
-
columnDef.
|
|
1361
|
+
const showChangeModeButton = enableColumnFilterModes &&
|
|
1362
|
+
columnDef.enableColumnFilterModes !== false &&
|
|
1353
1363
|
!rangeFilterIndex &&
|
|
1354
1364
|
(allowedColumnFilterOptions === undefined ||
|
|
1355
1365
|
!!(allowedColumnFilterOptions === null || allowedColumnFilterOptions === void 0 ? void 0 : allowedColumnFilterOptions.length));
|
|
@@ -1456,7 +1466,7 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
|
|
|
1456
1466
|
if (textFieldProps.inputRef) {
|
|
1457
1467
|
textFieldProps.inputRef = inputRef;
|
|
1458
1468
|
}
|
|
1459
|
-
}, sx: (theme) => (Object.assign({ p: 0, minWidth: !filterChipLabel ? '
|
|
1469
|
+
}, sx: (theme) => (Object.assign({ p: 0, minWidth: !filterChipLabel ? '120px' : 'auto', width: '100%', '& .MuiSelect-icon': {
|
|
1460
1470
|
mr: '1.5rem',
|
|
1461
1471
|
} }, ((textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.sx) instanceof Function
|
|
1462
1472
|
? textFieldProps.sx(theme)
|
|
@@ -1490,9 +1500,10 @@ const MRT_FilterRangeFields = ({ header, table }) => {
|
|
|
1490
1500
|
|
|
1491
1501
|
const MRT_TableHeadCellFilterContainer = ({ header, table, }) => {
|
|
1492
1502
|
const { getState } = table;
|
|
1493
|
-
const {
|
|
1503
|
+
const { showColumnFilters } = getState();
|
|
1494
1504
|
const { column } = header;
|
|
1495
|
-
|
|
1505
|
+
const { columnDef } = column;
|
|
1506
|
+
return (React__default["default"].createElement(material.Collapse, { in: showColumnFilters, mountOnEnter: true, unmountOnExit: true }, ['between', 'betweenInclusive', 'inNumberRange'].includes(columnDef._filterFn) ? (React__default["default"].createElement(MRT_FilterRangeFields, { header: header, table: table })) : (React__default["default"].createElement(MRT_FilterTextField, { header: header, table: table }))));
|
|
1496
1507
|
};
|
|
1497
1508
|
|
|
1498
1509
|
const MRT_TableHeadCellFilterLabel = ({ header, table }) => {
|
|
@@ -1875,11 +1886,11 @@ const MRT_TableBodyRowGrabHandle = ({ cell, rowRef, table, }) => {
|
|
|
1875
1886
|
};
|
|
1876
1887
|
|
|
1877
1888
|
const MRT_TableBodyCellValue = ({ cell, table }) => {
|
|
1878
|
-
var _a, _b
|
|
1889
|
+
var _a, _b;
|
|
1879
1890
|
const { column, row } = cell;
|
|
1880
1891
|
const { columnDef } = column;
|
|
1881
|
-
return (React__default["default"].createElement(React__default["default"].Fragment, null, cell.getIsAggregated() &&
|
|
1882
|
-
?
|
|
1892
|
+
return (React__default["default"].createElement(React__default["default"].Fragment, null, cell.getIsAggregated() && columnDef.AggregatedCell
|
|
1893
|
+
? columnDef.AggregatedCell({
|
|
1883
1894
|
cell,
|
|
1884
1895
|
column,
|
|
1885
1896
|
row,
|
|
@@ -1887,14 +1898,14 @@ const MRT_TableBodyCellValue = ({ cell, table }) => {
|
|
|
1887
1898
|
})
|
|
1888
1899
|
: row.getIsGrouped() && !cell.getIsGrouped()
|
|
1889
1900
|
? null
|
|
1890
|
-
:
|
|
1891
|
-
|
|
1901
|
+
: cell.getIsGrouped() && columnDef.GroupedCell
|
|
1902
|
+
? columnDef.GroupedCell({
|
|
1892
1903
|
cell,
|
|
1893
1904
|
column,
|
|
1894
1905
|
row,
|
|
1895
1906
|
table,
|
|
1896
|
-
})
|
|
1897
|
-
(
|
|
1907
|
+
})
|
|
1908
|
+
: (_b = (_a = columnDef === null || columnDef === void 0 ? void 0 : columnDef.Cell) === null || _a === void 0 ? void 0 : _a.call(columnDef, { cell, column, row, table })) !== null && _b !== void 0 ? _b : cell.renderValue()));
|
|
1898
1909
|
};
|
|
1899
1910
|
|
|
1900
1911
|
const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
|
|
@@ -1926,7 +1937,9 @@ const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
|
|
|
1926
1937
|
: Math.round(Math.random() * (column.getSize() - column.getSize() / 3) +
|
|
1927
1938
|
column.getSize() / 3)
|
|
1928
1939
|
: 100), [isLoading, showSkeletons]);
|
|
1929
|
-
const handleDoubleClick = (
|
|
1940
|
+
const handleDoubleClick = (event) => {
|
|
1941
|
+
var _a;
|
|
1942
|
+
(_a = tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.onDoubleClick) === null || _a === void 0 ? void 0 : _a.call(tableCellProps, event);
|
|
1930
1943
|
if ((enableEditing || columnDef.enableEditing) &&
|
|
1931
1944
|
columnDef.enableEditing !== false &&
|
|
1932
1945
|
editingMode === 'cell') {
|
|
@@ -1950,7 +1963,9 @@ const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
|
|
|
1950
1963
|
const getTotalRight = () => {
|
|
1951
1964
|
return ((table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150);
|
|
1952
1965
|
};
|
|
1953
|
-
const handleDragEnter = (
|
|
1966
|
+
const handleDragEnter = (e) => {
|
|
1967
|
+
var _a;
|
|
1968
|
+
(_a = tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.onDragEnter) === null || _a === void 0 ? void 0 : _a.call(tableCellProps, e);
|
|
1954
1969
|
if (enableGrouping && (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === 'drop-zone') {
|
|
1955
1970
|
setHoveredColumn(null);
|
|
1956
1971
|
}
|
|
@@ -1976,7 +1991,7 @@ const MRT_TableBodyCell = ({ cell, enableHover, rowIndex, rowRef, table, }) => {
|
|
|
1976
1991
|
: undefined,
|
|
1977
1992
|
}
|
|
1978
1993
|
: undefined;
|
|
1979
|
-
return (React__default["default"].createElement(material.TableCell, Object.assign({
|
|
1994
|
+
return (React__default["default"].createElement(material.TableCell, Object.assign({}, tableCellProps, { onDragEnter: handleDragEnter, onDoubleClick: handleDoubleClick, sx: (theme) => {
|
|
1980
1995
|
var _a;
|
|
1981
1996
|
return (Object.assign(Object.assign(Object.assign({ backgroundColor: column.getIsPinned()
|
|
1982
1997
|
? material.alpha(material.lighten(theme.palette.background.default, 0.04), 0.95)
|
|
@@ -2050,7 +2065,7 @@ const MRT_TableDetailPanel = ({ row, table }) => {
|
|
|
2050
2065
|
: tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx))) }), renderDetailPanel && (React__default["default"].createElement(material.Collapse, { in: row.getIsExpanded() }, renderDetailPanel({ row, table }))))));
|
|
2051
2066
|
};
|
|
2052
2067
|
|
|
2053
|
-
const MRT_TableBodyRow = ({ row, rowIndex, table }) => {
|
|
2068
|
+
const MRT_TableBodyRow = ({ row, rowIndex, table, virtualRow, }) => {
|
|
2054
2069
|
var _a, _b;
|
|
2055
2070
|
const theme = material.useTheme();
|
|
2056
2071
|
const { getIsSomeColumnsPinned, getState, options: { enableRowOrdering, muiTableBodyRowProps, renderDetailPanel }, setHoveredRow, } = table;
|
|
@@ -2075,7 +2090,12 @@ const MRT_TableBodyRow = ({ row, rowIndex, table }) => {
|
|
|
2075
2090
|
}
|
|
2076
2091
|
: undefined;
|
|
2077
2092
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
2078
|
-
React__default["default"].createElement(material.TableRow, Object.assign({ onDragEnter: handleDragEnter, hover: true, selected: row.getIsSelected(), ref:
|
|
2093
|
+
React__default["default"].createElement(material.TableRow, Object.assign({ onDragEnter: handleDragEnter, hover: true, selected: row.getIsSelected(), ref: (node) => {
|
|
2094
|
+
rowRef.current = node;
|
|
2095
|
+
if (virtualRow === null || virtualRow === void 0 ? void 0 : virtualRow.measureRef) {
|
|
2096
|
+
virtualRow.measureRef = node;
|
|
2097
|
+
}
|
|
2098
|
+
} }, tableRowProps, { sx: (theme) => (Object.assign(Object.assign({ backgroundColor: material.lighten(theme.palette.background.default, 0.06), opacity: (draggingRow === null || draggingRow === void 0 ? void 0 : draggingRow.id) === row.id || (hoveredRow === null || hoveredRow === void 0 ? void 0 : hoveredRow.id) === row.id ? 0.5 : 1, transition: 'all 0.2s ease-in-out', '&:hover td': {
|
|
2079
2099
|
backgroundColor: (tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.hover) !== false && getIsSomeColumnsPinned()
|
|
2080
2100
|
? theme.palette.mode === 'dark'
|
|
2081
2101
|
? `${material.lighten(theme.palette.background.default, 0.12)}`
|
|
@@ -2155,7 +2175,7 @@ const MRT_TableBody = ({ table, tableContainerRef }) => {
|
|
|
2155
2175
|
const row = enableRowVirtualization
|
|
2156
2176
|
? rows[rowOrVirtualRow.index]
|
|
2157
2177
|
: rowOrVirtualRow;
|
|
2158
|
-
return (React__default["default"].createElement(MRT_TableBodyRow, { key: row.id, row: row, rowIndex: enableRowVirtualization ? rowOrVirtualRow.index : rowIndex, table: table }));
|
|
2178
|
+
return (React__default["default"].createElement(MRT_TableBodyRow, { key: row.id, row: row, rowIndex: enableRowVirtualization ? rowOrVirtualRow.index : rowIndex, table: table, virtualRow: enableRowVirtualization ? rowOrVirtualRow : null }));
|
|
2159
2179
|
}),
|
|
2160
2180
|
enableRowVirtualization && paddingBottom > 0 && (React__default["default"].createElement("tr", null,
|
|
2161
2181
|
React__default["default"].createElement("td", { style: { height: `${paddingBottom}px` } })))));
|
|
@@ -2333,11 +2353,11 @@ const MRT_TableRoot = (props) => {
|
|
|
2333
2353
|
return initState;
|
|
2334
2354
|
}, []);
|
|
2335
2355
|
const [columnFilterFns, setColumnFilterFns] = React.useState(() => Object.assign({}, ...getAllLeafColumnDefs(props.columns).map((col) => {
|
|
2336
|
-
var _a, _b, _c, _d
|
|
2356
|
+
var _a, _b, _c, _d;
|
|
2337
2357
|
return ({
|
|
2338
|
-
[(
|
|
2339
|
-
? (
|
|
2340
|
-
: (
|
|
2358
|
+
[getColumnId(col)]: col.filterFn instanceof Function
|
|
2359
|
+
? (_a = col.filterFn.name) !== null && _a !== void 0 ? _a : 'custom'
|
|
2360
|
+
: (_d = (_b = col.filterFn) !== null && _b !== void 0 ? _b : (_c = initialState === null || initialState === void 0 ? void 0 : initialState.columnFilterFns) === null || _c === void 0 ? void 0 : _c[getColumnId(col)]) !== null && _d !== void 0 ? _d : getDefaultColumnFilterFn(col),
|
|
2341
2361
|
});
|
|
2342
2362
|
})));
|
|
2343
2363
|
const [columnOrder, setColumnOrder] = React.useState((_a = initialState.columnOrder) !== null && _a !== void 0 ? _a : []);
|
|
@@ -2427,6 +2447,11 @@ const MRT_TableRoot = (props) => {
|
|
|
2427
2447
|
tableContainerRef,
|
|
2428
2448
|
topToolbarRef,
|
|
2429
2449
|
}, setColumnFilterFns: (_w = props.onFilterFnsChange) !== null && _w !== void 0 ? _w : setColumnFilterFns, setDensity: (_x = props.onDensityChange) !== null && _x !== void 0 ? _x : setDensity, setDraggingColumn: (_y = props.onDraggingColumnChange) !== null && _y !== void 0 ? _y : setDraggingColumn, setDraggingRow: (_z = props.onDraggingRowChange) !== null && _z !== void 0 ? _z : setDraggingRow, setEditingCell: (_0 = props.onEditingCellChange) !== null && _0 !== void 0 ? _0 : setEditingCell, setEditingRow: (_1 = props.onEditingRowChange) !== null && _1 !== void 0 ? _1 : setEditingRow, setGlobalFilterFn: (_2 = props.onGlobalFilterFnChange) !== null && _2 !== void 0 ? _2 : setGlobalFilterFn, setHoveredColumn: (_3 = props.onHoveredColumnChange) !== null && _3 !== void 0 ? _3 : setHoveredColumn, setHoveredRow: (_4 = props.onHoveredRowChange) !== null && _4 !== void 0 ? _4 : setHoveredRow, setIsFullScreen: (_5 = props.onIsFullScreenChange) !== null && _5 !== void 0 ? _5 : setIsFullScreen, setShowAlertBanner: (_6 = props.onShowAlertBannerChange) !== null && _6 !== void 0 ? _6 : setShowAlertBanner, setShowFilters: (_7 = props.onShowFiltersChange) !== null && _7 !== void 0 ? _7 : setShowFilters, setShowGlobalFilter: (_8 = props.onShowGlobalFilterChange) !== null && _8 !== void 0 ? _8 : setShowGlobalFilter });
|
|
2450
|
+
React.useEffect(() => {
|
|
2451
|
+
if (props.tableInstanceRef) {
|
|
2452
|
+
props.tableInstanceRef.current = table;
|
|
2453
|
+
}
|
|
2454
|
+
}, []);
|
|
2430
2455
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
2431
2456
|
React__default["default"].createElement(material.Dialog, { PaperComponent: material.Box, TransitionComponent: material.Grow, disablePortal: true, fullScreen: true, keepMounted: false, onClose: () => setIsFullScreen(false), open: isFullScreen, transitionDuration: 400 },
|
|
2432
2457
|
React__default["default"].createElement(MRT_TablePaper, { table: table })),
|
|
@@ -2435,8 +2460,8 @@ const MRT_TableRoot = (props) => {
|
|
|
2435
2460
|
};
|
|
2436
2461
|
|
|
2437
2462
|
var MaterialReactTable = (_a) => {
|
|
2438
|
-
var { aggregationFns, autoResetExpanded = false, columnResizeMode = 'onEnd', defaultColumn = { minSize: 40, maxSize: 1000, size: 180 }, editingMode = 'modal', enableBottomToolbar = true, enableColumnActions = true,
|
|
2439
|
-
return (React__default["default"].createElement(MRT_TableRoot, Object.assign({ aggregationFns: Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns), autoResetExpanded: autoResetExpanded, columnResizeMode: columnResizeMode, defaultColumn: defaultColumn, editingMode: editingMode, enableBottomToolbar: enableBottomToolbar, enableColumnActions: enableColumnActions,
|
|
2463
|
+
var { aggregationFns, autoResetExpanded = false, columnResizeMode = 'onEnd', defaultColumn = { minSize: 40, maxSize: 1000, size: 180 }, editingMode = 'modal', enableBottomToolbar = true, enableColumnActions = true, enableColumnFilterModes = false, enableColumnFilters = true, enableColumnOrdering = false, enableColumnResizing = false, enableDensityToggle = true, enableExpandAll = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterModes = false, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enablePinning = false, enableRowSelection = false, enableSelectAll = true, enableSorting = true, enableStickyHeader = false, enableTableFooter = true, enableTableHead = true, enableToolbarInternalActions = true, enableTopToolbar = true, filterFns, icons, localization, positionActionsColumn = 'first', positionExpandColumn = 'first', positionGlobalFilter = 'right', positionPagination = 'bottom', positionToolbarAlertBanner = 'top', positionToolbarDropZone = 'top', rowNumberMode = 'original', selectAllMode = 'all', sortingFns } = _a, rest = __rest(_a, ["aggregationFns", "autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableBottomToolbar", "enableColumnActions", "enableColumnFilterModes", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterModes", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "localization", "positionActionsColumn", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberMode", "selectAllMode", "sortingFns"]);
|
|
2464
|
+
return (React__default["default"].createElement(MRT_TableRoot, Object.assign({ aggregationFns: Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns), autoResetExpanded: autoResetExpanded, columnResizeMode: columnResizeMode, defaultColumn: defaultColumn, editingMode: editingMode, enableBottomToolbar: enableBottomToolbar, enableColumnActions: enableColumnActions, enableColumnFilterModes: enableColumnFilterModes, enableColumnFilters: enableColumnFilters, enableColumnOrdering: enableColumnOrdering, enableColumnResizing: enableColumnResizing, enableDensityToggle: enableDensityToggle, enableExpandAll: enableExpandAll, enableFilters: enableFilters, enableFullScreenToggle: enableFullScreenToggle, enableGlobalFilter: enableGlobalFilter, enableGlobalFilterModes: enableGlobalFilterModes, enableGlobalFilterRankedResults: enableGlobalFilterRankedResults, enableGrouping: enableGrouping, enableHiding: enableHiding, enableMultiRowSelection: enableMultiRowSelection, enableMultiSort: enableMultiSort, enablePagination: enablePagination, enablePinning: enablePinning, enableRowSelection: enableRowSelection, enableSelectAll: enableSelectAll, enableSorting: enableSorting, enableStickyHeader: enableStickyHeader, enableTableFooter: enableTableFooter, enableTableHead: enableTableHead, enableToolbarInternalActions: enableToolbarInternalActions, enableTopToolbar: enableTopToolbar, filterFns: Object.assign(Object.assign({}, MRT_FilterFns), filterFns), icons: Object.assign(Object.assign({}, MRT_Default_Icons), icons), localization: Object.assign(Object.assign({}, MRT_DefaultLocalization_EN), localization), positionActionsColumn: positionActionsColumn, positionExpandColumn: positionExpandColumn, positionGlobalFilter: positionGlobalFilter, positionPagination: positionPagination, positionToolbarAlertBanner: positionToolbarAlertBanner, positionToolbarDropZone: positionToolbarDropZone, rowNumberMode: rowNumberMode, selectAllMode: selectAllMode, sortingFns: Object.assign(Object.assign({}, MRT_SortingFns), sortingFns) }, rest)));
|
|
2440
2465
|
};
|
|
2441
2466
|
|
|
2442
2467
|
exports.MRT_CopyButton = MRT_CopyButton;
|