material-react-table 2.0.0-alpha.2 → 2.0.0-alpha.3
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/index.js +150 -111
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/locales/np.d.ts +2 -0
- package/dist/cjs/types/types.d.ts +21 -1
- package/dist/esm/material-react-table.esm.js +149 -111
- package/dist/esm/material-react-table.esm.js.map +1 -1
- package/dist/esm/types/locales/np.d.ts +2 -0
- package/dist/esm/types/types.d.ts +21 -1
- package/dist/index.d.ts +21 -1
- package/locales/np.d.ts +2 -0
- package/locales/np.esm.d.ts +2 -0
- package/locales/np.esm.js +94 -0
- package/locales/np.esm.js.map +1 -0
- package/locales/np.js +98 -0
- package/locales/np.js.map +1 -0
- package/package.json +26 -26
- package/src/column.utils.ts +1 -5
- package/src/head/MRT_TableHeadCellFilterContainer.tsx +1 -1
- package/src/head/MRT_TableHeadCellFilterLabel.tsx +6 -6
- package/src/inputs/MRT_FilterTextField.tsx +302 -223
- package/src/locales/np.ts +94 -0
- package/src/menus/MRT_ColumnActionMenu.tsx +34 -31
- package/src/menus/MRT_FilterOptionMenu.tsx +1 -1
- package/src/types.ts +31 -0
package/dist/cjs/index.js
CHANGED
@@ -30,9 +30,11 @@ var ListItemIcon = require('@mui/material/ListItemIcon');
|
|
30
30
|
var Menu = require('@mui/material/Menu');
|
31
31
|
var Checkbox = require('@mui/material/Checkbox');
|
32
32
|
var FormControlLabel = require('@mui/material/FormControlLabel');
|
33
|
+
var Autocomplete = require('@mui/material/Autocomplete');
|
33
34
|
var Chip = require('@mui/material/Chip');
|
34
35
|
var InputAdornment = require('@mui/material/InputAdornment');
|
35
36
|
var utils = require('@mui/material/utils');
|
37
|
+
var DatePicker = require('@mui/x-date-pickers/DatePicker');
|
36
38
|
var FormHelperText = require('@mui/material/FormHelperText');
|
37
39
|
var Slider = require('@mui/material/Slider');
|
38
40
|
var Stack = require('@mui/material/Stack');
|
@@ -108,6 +110,7 @@ var ListItemIcon__default = /*#__PURE__*/_interopDefaultLegacy(ListItemIcon);
|
|
108
110
|
var Menu__default = /*#__PURE__*/_interopDefaultLegacy(Menu);
|
109
111
|
var Checkbox__default = /*#__PURE__*/_interopDefaultLegacy(Checkbox);
|
110
112
|
var FormControlLabel__default = /*#__PURE__*/_interopDefaultLegacy(FormControlLabel);
|
113
|
+
var Autocomplete__default = /*#__PURE__*/_interopDefaultLegacy(Autocomplete);
|
111
114
|
var Chip__default = /*#__PURE__*/_interopDefaultLegacy(Chip);
|
112
115
|
var InputAdornment__default = /*#__PURE__*/_interopDefaultLegacy(InputAdornment);
|
113
116
|
var FormHelperText__default = /*#__PURE__*/_interopDefaultLegacy(FormHelperText);
|
@@ -346,10 +349,10 @@ const getDefaultColumnOrderIds = (props) => {
|
|
346
349
|
return [...leadingDisplayCols, ...allLeafColumnDefs, ...trailingDisplayCols];
|
347
350
|
};
|
348
351
|
const getDefaultColumnFilterFn = (columnDef) => {
|
352
|
+
var _a;
|
349
353
|
if (columnDef.filterVariant === 'multi-select')
|
350
354
|
return 'arrIncludesSome';
|
351
|
-
if (columnDef.filterVariant === 'range'
|
352
|
-
columnDef.filterVariant === 'range-slider')
|
355
|
+
if ((_a = columnDef.filterVariant) === null || _a === void 0 ? void 0 : _a.includes('range'))
|
353
356
|
return 'betweenInclusive';
|
354
357
|
if (columnDef.filterVariant === 'select' ||
|
355
358
|
columnDef.filterVariant === 'checkbox')
|
@@ -1217,7 +1220,7 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, setFilt
|
|
1217
1220
|
globalFilterModeOptions.includes(filterOption.option)) &&
|
1218
1221
|
['contains', 'fuzzy', 'startsWith'].includes(filterOption.option)), []);
|
1219
1222
|
const handleSelectFilterMode = (option) => {
|
1220
|
-
var _a;
|
1223
|
+
var _a, _b;
|
1221
1224
|
const prevFilterMode = (_a = columnDef === null || columnDef === void 0 ? void 0 : columnDef._filterFn) !== null && _a !== void 0 ? _a : '';
|
1222
1225
|
if (!header || !column) {
|
1223
1226
|
// global filter mode
|
@@ -1249,7 +1252,7 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, setFilt
|
|
1249
1252
|
column.setFilterValue(currentFilterValue); // perform new filter render
|
1250
1253
|
}
|
1251
1254
|
}
|
1252
|
-
else if ((columnDef === null || columnDef === void 0 ? void 0 : columnDef.filterVariant) === 'range' ||
|
1255
|
+
else if (((_b = columnDef === null || columnDef === void 0 ? void 0 : columnDef.filterVariant) === null || _b === void 0 ? void 0 : _b.includes('range')) ||
|
1253
1256
|
rangeModes.includes(option)) {
|
1254
1257
|
// will now be range filter mode
|
1255
1258
|
if (!Array.isArray(currentFilterValue) ||
|
@@ -1316,7 +1319,7 @@ const commonListItemStyles = {
|
|
1316
1319
|
};
|
1317
1320
|
const MRT_ColumnActionMenu = ({ anchorEl, header, setAnchorEl, table, }) => {
|
1318
1321
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
1319
|
-
const { getState, options: { columnFilterModeOptions, enableColumnFilterModes, enableColumnFilters, enableColumnPinning, enableColumnResizing, enableGrouping, enableHiding, enableSorting, enableSortingRemoval, icons: { ArrowRightIcon, ClearAllIcon, DynamicFeedIcon, FilterListIcon, FilterListOffIcon, PushPinIcon, RestartAltIcon, SortIcon, ViewColumnIcon, VisibilityOffIcon, }, localization, renderColumnActionsMenuItems, }, refs: { filterInputRefs }, setColumnOrder, setColumnSizingInfo, setShowColumnFilters, toggleAllColumnsVisible, } = table;
|
1322
|
+
const { getState, options: { columnFilterDisplayMode, columnFilterModeOptions, enableColumnFilterModes, enableColumnFilters, enableColumnPinning, enableColumnResizing, enableGrouping, enableHiding, enableSorting, enableSortingRemoval, icons: { ArrowRightIcon, ClearAllIcon, DynamicFeedIcon, FilterListIcon, FilterListOffIcon, PushPinIcon, RestartAltIcon, SortIcon, ViewColumnIcon, VisibilityOffIcon, }, localization, renderColumnActionsMenuItems, }, refs: { filterInputRefs }, setColumnOrder, setColumnSizingInfo, setShowColumnFilters, toggleAllColumnsVisible, } = table;
|
1320
1323
|
const { column } = header;
|
1321
1324
|
const { columnDef } = column;
|
1322
1325
|
const { columnSizing, columnVisibility, density, showColumnFilters } = getState();
|
@@ -1389,11 +1392,11 @@ const MRT_ColumnActionMenu = ({ anchorEl, header, setAnchorEl, table, }) => {
|
|
1389
1392
|
jsxRuntime.jsx(MenuItem__default["default"], { disabled: !columnFilterValue ||
|
1390
1393
|
(Array.isArray(columnFilterValue) &&
|
1391
1394
|
!columnFilterValue.filter((value) => value).length), onClick: handleClearFilter, sx: commonMenuItemStyles, children: jsxRuntime.jsxs(Box__default["default"], { sx: commonListItemStyles, children: [jsxRuntime.jsx(ListItemIcon__default["default"], { children: jsxRuntime.jsx(FilterListOffIcon, {}) }), localization.clearFilter] }) }, 3),
|
1392
|
-
jsxRuntime.jsxs(MenuItem__default["default"], { disabled: showColumnFilters && !enableColumnFilterModes, divider: enableGrouping || enableHiding, onClick: showColumnFilters
|
1395
|
+
columnFilterDisplayMode === 'subheader' && (jsxRuntime.jsxs(MenuItem__default["default"], { disabled: showColumnFilters && !enableColumnFilterModes, divider: enableGrouping || enableHiding, onClick: showColumnFilters
|
1393
1396
|
? handleOpenFilterModeMenu
|
1394
|
-
: handleFilterByColumn, sx: commonMenuItemStyles, children: [jsxRuntime.jsxs(Box__default["default"], { sx: commonListItemStyles, children: [jsxRuntime.jsx(ListItemIcon__default["default"], { children: jsxRuntime.jsx(FilterListIcon, {}) }), (_d = localization.filterByColumn) === null || _d === void 0 ? void 0 : _d.replace('{column}', String(columnDef.header))] }), showFilterModeSubMenu && (jsxRuntime.jsx(IconButton__default["default"], { onClick: handleOpenFilterModeMenu, onMouseEnter: handleOpenFilterModeMenu, size: "small", sx: { p: 0 }, children: jsxRuntime.jsx(ArrowRightIcon, {}) }))] }, 4),
|
1397
|
+
: handleFilterByColumn, sx: commonMenuItemStyles, children: [jsxRuntime.jsxs(Box__default["default"], { sx: commonListItemStyles, children: [jsxRuntime.jsx(ListItemIcon__default["default"], { children: jsxRuntime.jsx(FilterListIcon, {}) }), (_d = localization.filterByColumn) === null || _d === void 0 ? void 0 : _d.replace('{column}', String(columnDef.header))] }), showFilterModeSubMenu && (jsxRuntime.jsx(IconButton__default["default"], { onClick: handleOpenFilterModeMenu, onMouseEnter: handleOpenFilterModeMenu, size: "small", sx: { p: 0 }, children: jsxRuntime.jsx(ArrowRightIcon, {}) }))] }, 4)),
|
1395
1398
|
showFilterModeSubMenu && (jsxRuntime.jsx(MRT_FilterOptionMenu, { anchorEl: filterMenuAnchorEl, header: header, onSelect: handleFilterByColumn, setAnchorEl: setFilterMenuAnchorEl, table: table }, 5)),
|
1396
|
-
]
|
1399
|
+
].filter(Boolean)
|
1397
1400
|
: []),
|
1398
1401
|
...(enableGrouping && column.getCanGroup()
|
1399
1402
|
? [
|
@@ -1487,18 +1490,29 @@ const MRT_FilterCheckbox = ({ column, table, }) => {
|
|
1487
1490
|
};
|
1488
1491
|
|
1489
1492
|
const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
|
1490
|
-
var _a, _b, _c, _d,
|
1491
|
-
const { options: { columnFilterModeOptions, enableColumnFilterModes, icons: { CloseIcon, FilterListIcon }, localization, manualFiltering, muiFilterTextFieldProps, }, refs: { filterInputRefs }, setColumnFilterFns, } = table;
|
1493
|
+
var _a, _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o;
|
1494
|
+
const { options: { columnFilterModeOptions, enableColumnFilterModes, icons: { CloseIcon, FilterListIcon }, localization, manualFiltering, muiFilterAutocompleteProps, muiFilterDatePickerProps, muiFilterTextFieldProps, }, refs: { filterInputRefs }, setColumnFilterFns, } = table;
|
1492
1495
|
const { column } = header;
|
1493
1496
|
const { columnDef } = column;
|
1497
|
+
const { filterVariant } = columnDef;
|
1494
1498
|
const textFieldProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiFilterTextFieldProps, { column, table })), parseFromValuesOrFunc(columnDef.muiFilterTextFieldProps, {
|
1495
1499
|
column,
|
1496
1500
|
table,
|
1497
1501
|
}));
|
1498
|
-
const
|
1499
|
-
|
1500
|
-
|
1501
|
-
|
1502
|
+
const autocompleteProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiFilterAutocompleteProps, { column, table })), parseFromValuesOrFunc(columnDef.muiFilterAutocompleteProps, {
|
1503
|
+
column,
|
1504
|
+
table,
|
1505
|
+
}));
|
1506
|
+
const datePickerProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiFilterDatePickerProps, { column, table })), parseFromValuesOrFunc(columnDef.muiFilterDatePickerProps, {
|
1507
|
+
column,
|
1508
|
+
table,
|
1509
|
+
}));
|
1510
|
+
const isDateFilter = filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.startsWith('date');
|
1511
|
+
const isAutocompleteFilter = filterVariant === 'autocomplete';
|
1512
|
+
const isRangeFilter = (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.includes('range')) || rangeFilterIndex !== undefined;
|
1513
|
+
const isSelectFilter = filterVariant === 'select';
|
1514
|
+
const isMultiSelectFilter = filterVariant === 'multi-select';
|
1515
|
+
const isTextboxFilter = ['autocomplete', 'text'].includes(filterVariant) ||
|
1502
1516
|
(!isSelectFilter && !isMultiSelectFilter);
|
1503
1517
|
const currentFilterOption = columnDef._filterFn;
|
1504
1518
|
const filterChipLabel = ['empty', 'notEmpty'].includes(currentFilterOption)
|
@@ -1513,55 +1527,48 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
|
|
1513
1527
|
: rangeFilterIndex === 1
|
1514
1528
|
? localization.max
|
1515
1529
|
: '';
|
1516
|
-
const allowedColumnFilterOptions = (
|
1530
|
+
const allowedColumnFilterOptions = (_f = columnDef === null || columnDef === void 0 ? void 0 : columnDef.columnFilterModeOptions) !== null && _f !== void 0 ? _f : columnFilterModeOptions;
|
1517
1531
|
const showChangeModeButton = enableColumnFilterModes &&
|
1518
1532
|
columnDef.enableColumnFilterModes !== false &&
|
1519
1533
|
!rangeFilterIndex &&
|
1520
1534
|
(allowedColumnFilterOptions === undefined ||
|
1521
1535
|
!!(allowedColumnFilterOptions === null || allowedColumnFilterOptions === void 0 ? void 0 : allowedColumnFilterOptions.length));
|
1522
1536
|
const facetedUniqueValues = column.getFacetedUniqueValues();
|
1523
|
-
const filterSelectOptions = react.useMemo(() => {
|
1524
|
-
var _a;
|
1525
|
-
return (_a = columnDef.filterSelectOptions) !== null && _a !== void 0 ? _a : ((isSelectFilter || isMultiSelectFilter) && facetedUniqueValues
|
1526
|
-
? Array.from(facetedUniqueValues.keys())
|
1527
|
-
.filter((value) => value !== null && value !== undefined)
|
1528
|
-
.sort((a, b) => a.localeCompare(b))
|
1529
|
-
: undefined);
|
1530
|
-
}, [
|
1531
|
-
columnDef.filterSelectOptions,
|
1532
|
-
facetedUniqueValues,
|
1533
|
-
isMultiSelectFilter,
|
1534
|
-
isSelectFilter,
|
1535
|
-
]);
|
1536
1537
|
const [anchorEl, setAnchorEl] = react.useState(null);
|
1537
1538
|
const [filterValue, setFilterValue] = react.useState(() => {
|
1538
1539
|
var _a, _b;
|
1539
1540
|
return isMultiSelectFilter
|
1540
1541
|
? column.getFilterValue() || []
|
1541
1542
|
: isRangeFilter
|
1542
|
-
? ((_a = column.getFilterValue()) === null || _a === void 0 ? void 0 : _a[rangeFilterIndex]) ||
|
1543
|
+
? ((_a = column.getFilterValue()) === null || _a === void 0 ? void 0 : _a[rangeFilterIndex]) || ''
|
1543
1544
|
: (_b = column.getFilterValue()) !== null && _b !== void 0 ? _b : '';
|
1544
1545
|
});
|
1545
|
-
const handleChangeDebounced = react.useCallback(utils.debounce((
|
1546
|
-
const value = textFieldProps.type === 'date'
|
1547
|
-
? event.target.valueAsDate
|
1548
|
-
: textFieldProps.type === 'number'
|
1549
|
-
? event.target.valueAsNumber
|
1550
|
-
: event.target.value;
|
1546
|
+
const handleChangeDebounced = react.useCallback(utils.debounce((newValue) => {
|
1551
1547
|
if (isRangeFilter) {
|
1552
1548
|
column.setFilterValue((old) => {
|
1553
1549
|
const newFilterValues = old !== null && old !== void 0 ? old : ['', ''];
|
1554
|
-
newFilterValues[rangeFilterIndex] =
|
1550
|
+
newFilterValues[rangeFilterIndex] = newValue;
|
1555
1551
|
return newFilterValues;
|
1556
1552
|
});
|
1557
1553
|
}
|
1558
1554
|
else {
|
1559
|
-
column.setFilterValue(
|
1555
|
+
column.setFilterValue(newValue !== null && newValue !== void 0 ? newValue : undefined);
|
1560
1556
|
}
|
1561
1557
|
}, isTextboxFilter ? (manualFiltering ? 400 : 200) : 1), []);
|
1562
|
-
const handleChange = (
|
1563
|
-
|
1564
|
-
|
1558
|
+
const handleChange = (newValue) => {
|
1559
|
+
var _a;
|
1560
|
+
setFilterValue((_a = newValue === null || newValue === void 0 ? void 0 : newValue.toString()) !== null && _a !== void 0 ? _a : '');
|
1561
|
+
handleChangeDebounced(newValue);
|
1562
|
+
};
|
1563
|
+
const handleTextFieldChange = (event) => {
|
1564
|
+
var _a;
|
1565
|
+
const newValue = textFieldProps.type === 'date'
|
1566
|
+
? event.target.valueAsDate
|
1567
|
+
: textFieldProps.type === 'number'
|
1568
|
+
? event.target.valueAsNumber
|
1569
|
+
: event.target.value;
|
1570
|
+
handleChange(newValue);
|
1571
|
+
(_a = textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.onChange) === null || _a === void 0 ? void 0 : _a.call(textFieldProps, event);
|
1565
1572
|
};
|
1566
1573
|
const handleClear = () => {
|
1567
1574
|
if (isMultiSelectFilter) {
|
@@ -1609,26 +1616,76 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
|
|
1609
1616
|
isMounted.current = true;
|
1610
1617
|
}, [column.getFilterValue()]);
|
1611
1618
|
if (columnDef.Filter) {
|
1612
|
-
return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: (
|
1619
|
+
return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: (_g = columnDef.Filter) === null || _g === void 0 ? void 0 : _g.call(columnDef, { column, header, rangeFilterIndex, table }) }));
|
1613
1620
|
}
|
1614
|
-
|
1615
|
-
|
1616
|
-
|
1617
|
-
|
1618
|
-
|
1619
|
-
|
1620
|
-
|
1621
|
-
|
1622
|
-
|
1623
|
-
|
1624
|
-
|
1625
|
-
|
1626
|
-
|
1621
|
+
const dropdownOptions = react.useMemo(() => {
|
1622
|
+
var _a;
|
1623
|
+
return (_a = columnDef.filterSelectOptions) !== null && _a !== void 0 ? _a : ((isSelectFilter || isMultiSelectFilter || isAutocompleteFilter) &&
|
1624
|
+
facetedUniqueValues
|
1625
|
+
? Array.from(facetedUniqueValues.keys())
|
1626
|
+
.filter((value) => value !== null && value !== undefined)
|
1627
|
+
.sort((a, b) => a.localeCompare(b))
|
1628
|
+
: undefined);
|
1629
|
+
}, [
|
1630
|
+
columnDef.filterSelectOptions,
|
1631
|
+
facetedUniqueValues,
|
1632
|
+
isMultiSelectFilter,
|
1633
|
+
isSelectFilter,
|
1634
|
+
]);
|
1635
|
+
const endAdornment = !isAutocompleteFilter && !isDateFilter && !filterChipLabel ? (jsxRuntime.jsx(InputAdornment__default["default"], { position: "end", sx: { mr: isSelectFilter || isMultiSelectFilter ? '20px' : undefined }, children: jsxRuntime.jsx(Tooltip__default["default"], { arrow: true, placement: "right", title: (_h = localization.clearFilter) !== null && _h !== void 0 ? _h : '', children: jsxRuntime.jsx("span", { children: jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.clearFilter, disabled: !((_j = filterValue === null || filterValue === void 0 ? void 0 : filterValue.toString()) === null || _j === void 0 ? void 0 : _j.length), onClick: handleClear, size: "small", sx: {
|
1636
|
+
height: '2rem',
|
1637
|
+
transform: 'scale(0.9)',
|
1638
|
+
width: '2rem'
|
1639
|
+
}, children: jsxRuntime.jsx(CloseIcon, {}) }) }) }) })) : null;
|
1640
|
+
const startAdornment = showChangeModeButton ? (jsxRuntime.jsxs(InputAdornment__default["default"], { position: "start", children: [jsxRuntime.jsx(Tooltip__default["default"], { arrow: true, title: localization.changeFilterMode, children: jsxRuntime.jsx("span", { children: jsxRuntime.jsx(IconButton__default["default"], { "aria-label": localization.changeFilterMode, onClick: handleFilterMenuOpen, size: "small", sx: { height: '1.75rem', width: '1.75rem' }, children: jsxRuntime.jsx(FilterListIcon, {}) }) }) }), filterChipLabel && (jsxRuntime.jsx(Chip__default["default"], { label: filterChipLabel, onDelete: handleClearEmptyFilterChip }))] })) : null;
|
1641
|
+
const commonTextFieldProps = Object.assign(Object.assign({ FormHelperTextProps: {
|
1642
|
+
sx: {
|
1643
|
+
fontSize: '0.75rem',
|
1644
|
+
lineHeight: '0.8rem',
|
1645
|
+
whiteSpace: 'nowrap',
|
1646
|
+
},
|
1647
|
+
}, InputProps: endAdornment //hack because mui looks for presense of endAdornment key instead of undefined
|
1648
|
+
? { endAdornment, startAdornment }
|
1649
|
+
: { startAdornment }, fullWidth: true, helperText: showChangeModeButton ? (jsxRuntime.jsx("label", { children: localization.filterMode.replace('{filterType}',
|
1650
|
+
// @ts-ignore
|
1651
|
+
localization[`filter${((_k = currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.charAt(0)) === null || _k === void 0 ? void 0 : _k.toUpperCase()) +
|
1652
|
+
(currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.slice(1))}`]) })) : null, inputProps: {
|
1653
|
+
autoComplete: 'new-password',
|
1654
|
+
disabled: !!filterChipLabel,
|
1655
|
+
sx: {
|
1656
|
+
textOverflow: 'ellipsis',
|
1657
|
+
width: filterChipLabel ? 0 : undefined,
|
1658
|
+
},
|
1659
|
+
title: filterPlaceholder,
|
1660
|
+
}, inputRef: (inputRef) => {
|
1661
|
+
filterInputRefs.current[`${column.id}-${rangeFilterIndex !== null && rangeFilterIndex !== void 0 ? rangeFilterIndex : 0}`] =
|
1662
|
+
inputRef;
|
1663
|
+
if (textFieldProps.inputRef) {
|
1664
|
+
textFieldProps.inputRef = inputRef;
|
1665
|
+
}
|
1666
|
+
}, margin: 'none', onClick: (e) => e.stopPropagation(), placeholder: filterChipLabel || isSelectFilter || isMultiSelectFilter
|
1667
|
+
? undefined
|
1668
|
+
: filterPlaceholder, variant: 'standard' }, textFieldProps), { sx: (theme) => (Object.assign({ minWidth: isDateFilter
|
1669
|
+
? '160px'
|
1670
|
+
: isRangeFilter
|
1671
|
+
? '100px'
|
1672
|
+
: !filterChipLabel
|
1673
|
+
? '120px'
|
1674
|
+
: 'auto', mx: '-2px', p: 0, width: 'calc(100% + 4px)' }, parseFromValuesOrFunc(textFieldProps === null || textFieldProps === void 0 ? void 0 : textFieldProps.sx, theme))) });
|
1675
|
+
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [isDateFilter ? (jsxRuntime.jsx(DatePicker.DatePicker, Object.assign({ onChange: (newDate) => {
|
1676
|
+
handleChange(newDate);
|
1677
|
+
}, value: filterValue || null }, datePickerProps, { slotProps: {
|
1678
|
+
field: Object.assign({ clearable: true, onClear: () => handleClear() }, (_l = datePickerProps === null || datePickerProps === void 0 ? void 0 : datePickerProps.slotProps) === null || _l === void 0 ? void 0 : _l.field),
|
1679
|
+
textField: Object.assign(Object.assign({}, commonTextFieldProps), (_m = datePickerProps === null || datePickerProps === void 0 ? void 0 : datePickerProps.slotProps) === null || _m === void 0 ? void 0 : _m.textField),
|
1680
|
+
} }))) : isAutocompleteFilter ? (jsxRuntime.jsx(Autocomplete__default["default"], Object.assign({ getOptionLabel: (option) => option, onChange: (_e, newValue) => handleChange(newValue), options: dropdownOptions !== null && dropdownOptions !== void 0 ? dropdownOptions : [] }, autocompleteProps, { renderInput: (builtinTextFieldProps) => {
|
1681
|
+
var _a;
|
1682
|
+
return (jsxRuntime.jsx(TextField__default["default"], Object.assign({}, builtinTextFieldProps, commonTextFieldProps, { InputProps: Object.assign(Object.assign({}, builtinTextFieldProps.InputProps), { startAdornment: (_a = commonTextFieldProps === null || commonTextFieldProps === void 0 ? void 0 : commonTextFieldProps.InputProps) === null || _a === void 0 ? void 0 : _a.startAdornment }), inputProps: Object.assign(Object.assign({}, builtinTextFieldProps.inputProps), commonTextFieldProps === null || commonTextFieldProps === void 0 ? void 0 : commonTextFieldProps.inputProps), onChange: handleTextFieldChange })));
|
1683
|
+
}, value: filterValue }))) : (jsxRuntime.jsx(TextField__default["default"], Object.assign({ SelectProps: {
|
1627
1684
|
displayEmpty: true,
|
1628
1685
|
multiple: isMultiSelectFilter,
|
1629
1686
|
renderValue: isMultiSelectFilter
|
1630
1687
|
? (selected) => !(selected === null || selected === void 0 ? void 0 : selected.length) ? (jsxRuntime.jsx(Box__default["default"], { sx: { opacity: 0.5 }, children: filterPlaceholder })) : (jsxRuntime.jsx(Box__default["default"], { sx: { display: 'flex', flexWrap: 'wrap', gap: '2px' }, children: selected === null || selected === void 0 ? void 0 : selected.map((value) => {
|
1631
|
-
const selectedValue =
|
1688
|
+
const selectedValue = dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.find((option) => option instanceof Object
|
1632
1689
|
? option.value === value
|
1633
1690
|
: option === value);
|
1634
1691
|
return (jsxRuntime.jsx(Chip__default["default"], { label: selectedValue instanceof Object
|
@@ -1636,52 +1693,33 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
|
|
1636
1693
|
: selectedValue }, value));
|
1637
1694
|
}) }))
|
1638
1695
|
: undefined,
|
1639
|
-
},
|
1640
|
-
|
1641
|
-
|
1642
|
-
(
|
1643
|
-
|
1644
|
-
|
1645
|
-
|
1646
|
-
|
1647
|
-
|
1648
|
-
|
1649
|
-
|
1650
|
-
|
1651
|
-
|
1652
|
-
|
1653
|
-
|
1654
|
-
|
1655
|
-
|
1656
|
-
|
1657
|
-
|
1658
|
-
|
1659
|
-
|
1660
|
-
|
1661
|
-
|
1662
|
-
|
1663
|
-
|
1664
|
-
|
1665
|
-
|
1666
|
-
return '';
|
1667
|
-
let value;
|
1668
|
-
let text;
|
1669
|
-
if (typeof option !== 'object') {
|
1670
|
-
value = option;
|
1671
|
-
text = option;
|
1672
|
-
}
|
1673
|
-
else {
|
1674
|
-
value = option.value;
|
1675
|
-
text = option.text;
|
1676
|
-
}
|
1677
|
-
return (jsxRuntime.jsxs(MenuItem__default["default"], { sx: {
|
1678
|
-
alignItems: 'center',
|
1679
|
-
display: 'flex',
|
1680
|
-
gap: '0.5rem',
|
1681
|
-
m: 0,
|
1682
|
-
}, value: value, children: [isMultiSelectFilter && (jsxRuntime.jsx(Checkbox__default["default"], { checked: ((_a = column.getFilterValue()) !== null && _a !== void 0 ? _a : []).includes(value), sx: { mr: '0.5rem' } })), text, ' ', !columnDef.filterSelectOptions &&
|
1683
|
-
`(${facetedUniqueValues.get(value)})`] }, value));
|
1684
|
-
})] })), jsxRuntime.jsx(MRT_FilterOptionMenu, { anchorEl: anchorEl, header: header, setAnchorEl: setAnchorEl, setFilterValue: setFilterValue, table: table })] }));
|
1696
|
+
}, onChange: handleTextFieldChange, select: isSelectFilter || isMultiSelectFilter }, commonTextFieldProps, { value: filterValue !== null && filterValue !== void 0 ? filterValue : '', children: (isSelectFilter || isMultiSelectFilter) && [
|
1697
|
+
jsxRuntime.jsx(MenuItem__default["default"], { disabled: true, divider: true, hidden: true, value: "", children: jsxRuntime.jsx(Box__default["default"], { sx: { opacity: 0.5 }, children: filterPlaceholder }) }, "p"),
|
1698
|
+
...[
|
1699
|
+
(_o = textFieldProps.children) !== null && _o !== void 0 ? _o : dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.map((option, index) => {
|
1700
|
+
var _a;
|
1701
|
+
if (!option)
|
1702
|
+
return '';
|
1703
|
+
let value;
|
1704
|
+
let text;
|
1705
|
+
if (typeof option !== 'object') {
|
1706
|
+
value = option;
|
1707
|
+
text = option;
|
1708
|
+
}
|
1709
|
+
else {
|
1710
|
+
value = option.value;
|
1711
|
+
text = option.text;
|
1712
|
+
}
|
1713
|
+
return (jsxRuntime.jsxs(MenuItem__default["default"], { sx: {
|
1714
|
+
alignItems: 'center',
|
1715
|
+
display: 'flex',
|
1716
|
+
gap: '0.5rem',
|
1717
|
+
m: 0,
|
1718
|
+
}, value: value, children: [isMultiSelectFilter && (jsxRuntime.jsx(Checkbox__default["default"], { checked: ((_a = column.getFilterValue()) !== null && _a !== void 0 ? _a : []).includes(value), sx: { mr: '0.5rem' } })), text, ' ', !columnDef.filterSelectOptions &&
|
1719
|
+
`(${facetedUniqueValues.get(value)})`] }, `${index}-${value}`));
|
1720
|
+
}),
|
1721
|
+
],
|
1722
|
+
] }))), jsxRuntime.jsx(MRT_FilterOptionMenu, { anchorEl: anchorEl, header: header, setAnchorEl: setAnchorEl, setFilterValue: setFilterValue, table: table })] }));
|
1685
1723
|
};
|
1686
1724
|
|
1687
1725
|
const MRT_FilterRangeFields = ({ header, table, }) => {
|
@@ -1760,16 +1798,17 @@ const MRT_FilterRangeSlider = ({ header, table, }) => {
|
|
1760
1798
|
};
|
1761
1799
|
|
1762
1800
|
const MRT_TableHeadCellFilterContainer = ({ header, table, }) => {
|
1801
|
+
var _a;
|
1763
1802
|
const { getState, options: { columnFilterDisplayMode }, } = table;
|
1764
1803
|
const { showColumnFilters } = getState();
|
1765
1804
|
const { column } = header;
|
1766
1805
|
const { columnDef } = column;
|
1767
|
-
return (jsxRuntime.jsx(Collapse__default["default"], { in: showColumnFilters || columnFilterDisplayMode === 'popover', mountOnEnter: true, unmountOnExit: true, children: columnDef.filterVariant === 'checkbox' ? (jsxRuntime.jsx(MRT_FilterCheckbox, { column: column, table: table })) : columnDef.filterVariant === 'range-slider' ? (jsxRuntime.jsx(MRT_FilterRangeSlider, { header: header, table: table })) : columnDef.filterVariant === 'range' ||
|
1806
|
+
return (jsxRuntime.jsx(Collapse__default["default"], { in: showColumnFilters || columnFilterDisplayMode === 'popover', mountOnEnter: true, unmountOnExit: true, children: columnDef.filterVariant === 'checkbox' ? (jsxRuntime.jsx(MRT_FilterCheckbox, { column: column, table: table })) : columnDef.filterVariant === 'range-slider' ? (jsxRuntime.jsx(MRT_FilterRangeSlider, { header: header, table: table })) : ((_a = columnDef.filterVariant) === null || _a === void 0 ? void 0 : _a.includes('range')) ||
|
1768
1807
|
['between', 'betweenInclusive', 'inNumberRange'].includes(columnDef._filterFn) ? (jsxRuntime.jsx(MRT_FilterRangeFields, { header: header, table: table })) : (jsxRuntime.jsx(MRT_FilterTextField, { header: header, table: table })) }));
|
1769
1808
|
};
|
1770
1809
|
|
1771
1810
|
const MRT_TableHeadCellFilterLabel = ({ header, table, }) => {
|
1772
|
-
var _a, _b, _c
|
1811
|
+
var _a, _b, _c;
|
1773
1812
|
const { options: { columnFilterDisplayMode, icons: { FilterAltIcon }, localization, }, refs: { filterInputRefs }, setShowColumnFilters, } = table;
|
1774
1813
|
const { column } = header;
|
1775
1814
|
const { columnDef } = column;
|
@@ -1777,26 +1816,26 @@ const MRT_TableHeadCellFilterLabel = ({ header, table, }) => {
|
|
1777
1816
|
const [anchorEl, setAnchorEl] = react.useState(null);
|
1778
1817
|
const isFilterActive = (Array.isArray(filterValue) && filterValue.some(Boolean)) ||
|
1779
1818
|
(!!filterValue && !Array.isArray(filterValue));
|
1780
|
-
const isRangeFilter = columnDef.filterVariant === 'range' ||
|
1819
|
+
const isRangeFilter = ((_a = columnDef.filterVariant) === null || _a === void 0 ? void 0 : _a.includes('range')) ||
|
1781
1820
|
['between', 'betweenInclusive', 'inNumberRange'].includes(columnDef._filterFn);
|
1782
1821
|
const currentFilterOption = columnDef._filterFn;
|
1783
1822
|
const filterTooltip = columnFilterDisplayMode === 'popover' && !isFilterActive
|
1784
|
-
? (
|
1823
|
+
? (_b = localization.filterByColumn) === null || _b === void 0 ? void 0 : _b.replace('{column}', String(columnDef.header))
|
1785
1824
|
: localization.filteringByColumn
|
1786
1825
|
.replace('{column}', String(columnDef.header))
|
1787
1826
|
.replace('{filterType}', currentFilterOption
|
1788
1827
|
? // @ts-ignore
|
1789
|
-
localization[`filter${((
|
1828
|
+
localization[`filter${((_c = currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.charAt(0)) === null || _c === void 0 ? void 0 : _c.toUpperCase()) +
|
1790
1829
|
(currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.slice(1))}`]
|
1791
1830
|
: '')
|
1792
|
-
.replace('{filterValue}', `"${Array.isArray(
|
1793
|
-
?
|
1794
|
-
:
|
1831
|
+
.replace('{filterValue}', `"${Array.isArray(filterValue)
|
1832
|
+
? filterValue.join(`" ${isRangeFilter ? localization.and : localization.or} "`)
|
1833
|
+
: filterValue}"`)
|
1795
1834
|
.replace('" "', '');
|
1796
1835
|
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Grow__default["default"], { in: columnFilterDisplayMode === 'popover' ||
|
1797
|
-
(!!
|
1836
|
+
(!!filterValue && !isRangeFilter) ||
|
1798
1837
|
(isRangeFilter && // @ts-ignore
|
1799
|
-
(!!(
|
1838
|
+
(!!(filterValue === null || filterValue === void 0 ? void 0 : filterValue[0]) || !!(filterValue === null || filterValue === void 0 ? void 0 : filterValue[1]))), unmountOnExit: true, children: jsxRuntime.jsx(Box__default["default"], { component: "span", sx: { flex: '0 0' }, children: jsxRuntime.jsx(Tooltip__default["default"], { arrow: true, placement: "top", title: filterTooltip, children: jsxRuntime.jsx(IconButton__default["default"], { disableRipple: true, onClick: (event) => {
|
1800
1839
|
if (columnFilterDisplayMode === 'popover') {
|
1801
1840
|
setAnchorEl(event.currentTarget);
|
1802
1841
|
}
|