material-react-table 2.11.2 → 2.12.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +29 -22
- package/dist/index.d.ts +30 -16
- package/dist/index.esm.js +161 -152
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +162 -156
- package/dist/index.js.map +1 -1
- package/package.json +24 -24
- package/src/components/body/MRT_TableBodyCell.tsx +11 -6
- package/src/components/body/MRT_TableBodyCellValue.tsx +5 -4
- package/src/components/body/MRT_TableBodyRow.tsx +10 -7
- package/src/components/body/MRT_TableDetailPanel.tsx +4 -9
- package/src/components/footer/MRT_TableFooterRow.tsx +6 -3
- package/src/components/head/MRT_TableHead.tsx +11 -11
- package/src/components/head/MRT_TableHeadCell.tsx +9 -3
- package/src/components/head/MRT_TableHeadCellFilterContainer.tsx +3 -4
- package/src/components/head/MRT_TableHeadCellFilterLabel.tsx +61 -37
- package/src/components/head/MRT_TableHeadRow.tsx +7 -3
- package/src/components/inputs/MRT_FilterRangeFields.tsx +8 -2
- package/src/components/inputs/MRT_FilterTextField.tsx +29 -38
- package/src/components/inputs/MRT_SelectCheckbox.tsx +2 -1
- package/src/components/menus/MRT_CellActionMenu.tsx +1 -5
- package/src/components/menus/MRT_ColumnActionMenu.tsx +1 -5
- package/src/components/menus/MRT_FilterOptionMenu.tsx +1 -5
- package/src/components/menus/MRT_RowActionMenu.tsx +1 -5
- package/src/components/menus/MRT_ShowHideColumnsMenu.tsx +1 -5
- package/src/components/menus/MRT_ShowHideColumnsMenuItems.tsx +3 -2
- package/src/components/table/MRT_TableLoadingOverlay.tsx +8 -8
- package/src/components/table/MRT_TablePaper.tsx +6 -6
- package/src/components/toolbar/MRT_ToolbarAlertBanner.tsx +3 -1
- package/src/components/toolbar/MRT_ToolbarDropZone.tsx +5 -0
- package/src/hooks/display-columns/getMRT_RowActionsColumnDef.tsx +1 -1
- package/src/hooks/display-columns/getMRT_RowDragColumnDef.tsx +1 -1
- package/src/hooks/display-columns/getMRT_RowExpandColumnDef.tsx +1 -1
- package/src/hooks/display-columns/getMRT_RowNumbersColumnDef.tsx +1 -1
- package/src/hooks/display-columns/getMRT_RowPinningColumnDef.tsx +1 -1
- package/src/hooks/display-columns/getMRT_RowSelectColumnDef.tsx +1 -1
- package/src/hooks/display-columns/getMRT_RowSpacerColumnDef.tsx +1 -1
- package/src/hooks/useMRT_TableOptions.ts +4 -0
- package/src/types.ts +15 -13
- package/src/utils/column.utils.ts +78 -40
- package/src/utils/row.utils.ts +2 -1
- package/src/utils/style.utils.ts +24 -26
- package/src/utils/utils.ts +1 -1
package/dist/index.esm.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { flexRender as flexRender$1, createRow as createRow$1, sortingFns, aggregationFns, filterFns, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, useReactTable } from '@tanstack/react-table';
|
2
|
+
import { useMemo, useState, useReducer, useRef, useEffect, useCallback, memo, Fragment as Fragment$1, useLayoutEffect } from 'react';
|
2
3
|
import { compareItems, rankItem, rankings } from '@tanstack/match-sorter-utils';
|
3
|
-
import { useState, useMemo, useReducer, useRef, useEffect, useCallback, memo, Fragment as Fragment$1, useLayoutEffect } from 'react';
|
4
4
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
5
5
|
import IconButton from '@mui/material/IconButton';
|
6
6
|
import Tooltip from '@mui/material/Tooltip';
|
@@ -169,31 +169,53 @@ const getDefaultColumnFilterFn = (columnDef) => {
|
|
169
169
|
return 'equals';
|
170
170
|
return 'fuzzy';
|
171
171
|
};
|
172
|
-
const
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
};
|
178
|
-
const
|
179
|
-
const
|
180
|
-
const
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
172
|
+
const getColumnFilterInfo = ({ header, table, }) => {
|
173
|
+
var _a;
|
174
|
+
const { options: { columnFilterModeOptions }, } = table;
|
175
|
+
const { column } = header;
|
176
|
+
const { columnDef } = column;
|
177
|
+
const { filterVariant } = columnDef;
|
178
|
+
const isDateFilter = !!((filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.startsWith('date')) || (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.startsWith('time')));
|
179
|
+
const isAutocompleteFilter = filterVariant === 'autocomplete';
|
180
|
+
const isRangeFilter = (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.includes('range')) ||
|
181
|
+
['between', 'betweenInclusive', 'inNumberRange'].includes(columnDef._filterFn);
|
182
|
+
const isSelectFilter = filterVariant === 'select';
|
183
|
+
const isMultiSelectFilter = filterVariant === 'multi-select';
|
184
|
+
const isTextboxFilter = ['autocomplete', 'text'].includes(filterVariant) ||
|
185
|
+
(!isSelectFilter && !isMultiSelectFilter);
|
186
|
+
const currentFilterOption = columnDef._filterFn;
|
187
|
+
const allowedColumnFilterOptions = (_a = columnDef === null || columnDef === void 0 ? void 0 : columnDef.columnFilterModeOptions) !== null && _a !== void 0 ? _a : columnFilterModeOptions;
|
188
|
+
const facetedUniqueValues = column.getFacetedUniqueValues();
|
189
|
+
return {
|
190
|
+
allowedColumnFilterOptions,
|
191
|
+
currentFilterOption,
|
192
|
+
facetedUniqueValues,
|
193
|
+
isAutocompleteFilter,
|
194
|
+
isDateFilter,
|
195
|
+
isMultiSelectFilter,
|
196
|
+
isRangeFilter,
|
197
|
+
isSelectFilter,
|
198
|
+
isTextboxFilter,
|
199
|
+
};
|
191
200
|
};
|
192
|
-
const
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
201
|
+
const useDropdownOptions = ({ header, table, }) => {
|
202
|
+
const { column } = header;
|
203
|
+
const { columnDef } = column;
|
204
|
+
const { facetedUniqueValues, isAutocompleteFilter, isMultiSelectFilter, isSelectFilter, } = getColumnFilterInfo({ header, table });
|
205
|
+
return useMemo(() => {
|
206
|
+
var _a;
|
207
|
+
return (_a = columnDef.filterSelectOptions) !== null && _a !== void 0 ? _a : ((isSelectFilter || isMultiSelectFilter || isAutocompleteFilter) &&
|
208
|
+
facetedUniqueValues
|
209
|
+
? Array.from(facetedUniqueValues.keys())
|
210
|
+
.filter((value) => value !== null && value !== undefined)
|
211
|
+
.sort((a, b) => a.localeCompare(b))
|
212
|
+
: undefined);
|
213
|
+
}, [
|
214
|
+
columnDef.filterSelectOptions,
|
215
|
+
facetedUniqueValues,
|
216
|
+
isMultiSelectFilter,
|
217
|
+
isSelectFilter,
|
218
|
+
]);
|
197
219
|
};
|
198
220
|
|
199
221
|
const flexRender = flexRender$1;
|
@@ -461,9 +483,9 @@ const getMRT_RowSelectionHandler = ({ row, staticRowIndex = 0, table, }) => (eve
|
|
461
483
|
});
|
462
484
|
}
|
463
485
|
};
|
464
|
-
const getMRT_SelectAllHandler = ({ table }) => (event, value) => {
|
486
|
+
const getMRT_SelectAllHandler = ({ table }) => (event, value, forceAll) => {
|
465
487
|
const { options: { enableRowPinning, rowPinningDisplayMode, selectAllMode }, refs: { lastSelectedRowId }, } = table;
|
466
|
-
selectAllMode === 'all'
|
488
|
+
selectAllMode === 'all' || forceAll
|
467
489
|
? table.toggleAllRowsSelected(value !== null && value !== void 0 ? value : event.target.checked)
|
468
490
|
: table.toggleAllPageRowsSelected(value !== null && value !== void 0 ? value : event.target.checked);
|
469
491
|
if (enableRowPinning && (rowPinningDisplayMode === null || rowPinningDisplayMode === void 0 ? void 0 : rowPinningDisplayMode.includes('select'))) {
|
@@ -639,15 +661,15 @@ const MRT_EditActionButtons = (_a) => {
|
|
639
661
|
};
|
640
662
|
|
641
663
|
const parseCSSVarId = (id) => id.replace(/[^a-zA-Z0-9]/g, '_');
|
642
|
-
const getMRTTheme = (
|
664
|
+
const getMRTTheme = (mrtTheme, muiTheme) => {
|
643
665
|
var _a;
|
644
|
-
const
|
645
|
-
const baseBackgroundColor = (_a =
|
646
|
-
? lighten(
|
647
|
-
:
|
648
|
-
return Object.assign({ baseBackgroundColor, draggingBorderColor:
|
649
|
-
? darken(
|
650
|
-
: lighten(
|
666
|
+
const mrtThemeOverrides = parseFromValuesOrFunc(mrtTheme, muiTheme);
|
667
|
+
const baseBackgroundColor = (_a = mrtThemeOverrides === null || mrtThemeOverrides === void 0 ? void 0 : mrtThemeOverrides.baseBackgroundColor) !== null && _a !== void 0 ? _a : (muiTheme.palette.mode === 'dark'
|
668
|
+
? lighten(muiTheme.palette.background.default, 0.05)
|
669
|
+
: muiTheme.palette.background.default);
|
670
|
+
return Object.assign({ baseBackgroundColor, draggingBorderColor: muiTheme.palette.primary.main, matchHighlightColor: muiTheme.palette.mode === 'dark'
|
671
|
+
? darken(muiTheme.palette.warning.dark, 0.25)
|
672
|
+
: lighten(muiTheme.palette.warning.light, 0.5), menuBackgroundColor: lighten(baseBackgroundColor, 0.07), pinnedRowBackgroundColor: alpha(muiTheme.palette.primary.main, 0.1), selectedRowBackgroundColor: alpha(muiTheme.palette.primary.main, 0.2) }, mrtThemeOverrides);
|
651
673
|
};
|
652
674
|
const commonCellBeforeAfterStyles = {
|
653
675
|
content: '""',
|
@@ -659,13 +681,14 @@ const commonCellBeforeAfterStyles = {
|
|
659
681
|
zIndex: -1,
|
660
682
|
};
|
661
683
|
const getCommonPinnedCellStyles = ({ column, table, theme, }) => {
|
662
|
-
const { baseBackgroundColor } =
|
684
|
+
const { baseBackgroundColor } = table.options.mrtTheme;
|
685
|
+
const isPinned = column === null || column === void 0 ? void 0 : column.getIsPinned();
|
663
686
|
return {
|
664
687
|
'&[data-pinned="true"]': {
|
665
688
|
'&:before': Object.assign({ backgroundColor: alpha(darken(baseBackgroundColor, theme.palette.mode === 'dark' ? 0.05 : 0.01), 0.97), boxShadow: column
|
666
|
-
?
|
689
|
+
? isPinned === 'left' && column.getIsLastColumn(isPinned)
|
667
690
|
? `-4px 0 4px -4px ${alpha(theme.palette.grey[700], 0.5)} inset`
|
668
|
-
:
|
691
|
+
: isPinned === 'right' && column.getIsFirstColumn(isPinned)
|
669
692
|
? `4px 0 4px -4px ${alpha(theme.palette.grey[700], 0.5)} inset`
|
670
693
|
: undefined
|
671
694
|
: undefined }, commonCellBeforeAfterStyles),
|
@@ -695,7 +718,7 @@ const getCommonMRTCellStyles = ({ column, header, table, tableCellProps, theme,
|
|
695
718
|
? Object.assign(Object.assign({}, getCommonPinnedCellStyles({ column, table, theme })), { left: isColumnPinned === 'left'
|
696
719
|
? `${column.getStart('left')}px`
|
697
720
|
: undefined, opacity: 0.97, position: 'sticky', right: isColumnPinned === 'right'
|
698
|
-
? `${
|
721
|
+
? `${column.getAfter('right')}px`
|
699
722
|
: undefined }) : {};
|
700
723
|
return Object.assign(Object.assign(Object.assign({ backgroundColor: 'inherit', backgroundImage: 'inherit', display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'flex' : undefined, justifyContent: columnDefType === 'group'
|
701
724
|
? 'center'
|
@@ -712,9 +735,9 @@ const getCommonMRTCellStyles = ({ column, header, table, tableCellProps, theme,
|
|
712
735
|
? 1
|
713
736
|
: 0 }, pinnedStyles), widthStyles), parseFromValuesOrFunc(tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx, theme));
|
714
737
|
};
|
715
|
-
const getCommonToolbarStyles = ({ table,
|
738
|
+
const getCommonToolbarStyles = ({ table, }) => ({
|
716
739
|
alignItems: 'flex-start',
|
717
|
-
backgroundColor:
|
740
|
+
backgroundColor: table.options.mrtTheme.baseBackgroundColor,
|
718
741
|
display: 'grid',
|
719
742
|
flexWrap: 'wrap-reverse',
|
720
743
|
minHeight: '3.5rem',
|
@@ -750,10 +773,8 @@ const MRT_ActionMenuItem = (_a) => {
|
|
750
773
|
|
751
774
|
const MRT_RowActionMenu = (_a) => {
|
752
775
|
var { anchorEl, handleEdit, row, setAnchorEl, staticRowIndex, table } = _a, rest = __rest(_a, ["anchorEl", "handleEdit", "row", "setAnchorEl", "staticRowIndex", "table"]);
|
753
|
-
const { getState, options: { editDisplayMode, enableEditing, icons: { EditIcon }, localization, renderRowActionMenuItems, }, } = table;
|
776
|
+
const { getState, options: { editDisplayMode, enableEditing, icons: { EditIcon }, localization, mrtTheme: { menuBackgroundColor }, renderRowActionMenuItems, }, } = table;
|
754
777
|
const { density } = getState();
|
755
|
-
const theme = useTheme();
|
756
|
-
const { menuBackgroundColor } = getMRTTheme(table, theme);
|
757
778
|
return (jsxs(Menu, Object.assign({ MenuListProps: {
|
758
779
|
dense: density === 'compact',
|
759
780
|
sx: {
|
@@ -1030,6 +1051,7 @@ const MRT_SelectCheckbox = (_a) => {
|
|
1030
1051
|
? parseFromValuesOrFunc(muiSelectAllCheckboxProps, { table })
|
1031
1052
|
: parseFromValuesOrFunc(muiSelectCheckboxProps, {
|
1032
1053
|
row,
|
1054
|
+
staticRowIndex,
|
1033
1055
|
table,
|
1034
1056
|
}))), rest);
|
1035
1057
|
const onSelectionChange = row
|
@@ -1048,7 +1070,7 @@ const MRT_SelectCheckbox = (_a) => {
|
|
1048
1070
|
: localization.toggleSelectRow,
|
1049
1071
|
}, onChange: (event) => {
|
1050
1072
|
event.stopPropagation();
|
1051
|
-
|
1073
|
+
selectAll ? onSelectAllChange(event) : onSelectionChange(event);
|
1052
1074
|
}, size: (density === 'compact' ? 'small' : 'medium') }, checkboxProps), { onClick: (e) => {
|
1053
1075
|
var _a;
|
1054
1076
|
e.stopPropagation();
|
@@ -1226,10 +1248,11 @@ const MRT_DefaultDisplayColumn = {
|
|
1226
1248
|
};
|
1227
1249
|
const useMRT_TableOptions = (_a) => {
|
1228
1250
|
var _b;
|
1229
|
-
var { aggregationFns, autoResetExpanded = false, columnFilterDisplayMode = 'subheader', columnResizeDirection, columnResizeMode = 'onChange', createDisplayMode = 'modal', defaultColumn, defaultDisplayColumn, editDisplayMode = 'modal', enableBatchRowSelection = true, enableBottomToolbar = true, enableColumnActions = true, enableColumnFilters = true, enableColumnOrdering = false, enableColumnPinning = false, enableColumnResizing = false, enableColumnVirtualization, enableDensityToggle = true, enableExpandAll = true, enableExpanding, enableFacetedValues = false, enableFilterMatchHighlighting = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enableRowPinning = false, enableRowSelection = false, enableRowVirtualization, enableSelectAll = true, enableSorting = true, enableStickyHeader = false, enableTableFooter = true, enableTableHead = true, enableToolbarInternalActions = true, enableTopToolbar = true, filterFns, icons, layoutMode, localization, manualFiltering, manualGrouping, manualPagination, manualSorting, paginationDisplayMode = 'default', positionActionsColumn = 'first', positionCreatingRow = 'top', positionExpandColumn = 'first', positionGlobalFilter = 'right', positionPagination = 'bottom', positionToolbarAlertBanner = 'top', positionToolbarDropZone = 'top', rowNumberDisplayMode = 'static', rowPinningDisplayMode = 'sticky', selectAllMode = 'page', sortingFns } = _a, rest = __rest(_a, ["aggregationFns", "autoResetExpanded", "columnFilterDisplayMode", "columnResizeDirection", "columnResizeMode", "createDisplayMode", "defaultColumn", "defaultDisplayColumn", "editDisplayMode", "enableBatchRowSelection", "enableBottomToolbar", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnPinning", "enableColumnResizing", "enableColumnVirtualization", "enableDensityToggle", "enableExpandAll", "enableExpanding", "enableFacetedValues", "enableFilterMatchHighlighting", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enableRowPinning", "enableRowSelection", "enableRowVirtualization", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "layoutMode", "localization", "manualFiltering", "manualGrouping", "manualPagination", "manualSorting", "paginationDisplayMode", "positionActionsColumn", "positionCreatingRow", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberDisplayMode", "rowPinningDisplayMode", "selectAllMode", "sortingFns"]);
|
1251
|
+
var { aggregationFns, autoResetExpanded = false, columnFilterDisplayMode = 'subheader', columnResizeDirection, columnResizeMode = 'onChange', createDisplayMode = 'modal', defaultColumn, defaultDisplayColumn, editDisplayMode = 'modal', enableBatchRowSelection = true, enableBottomToolbar = true, enableColumnActions = true, enableColumnFilters = true, enableColumnOrdering = false, enableColumnPinning = false, enableColumnResizing = false, enableColumnVirtualization, enableDensityToggle = true, enableExpandAll = true, enableExpanding, enableFacetedValues = false, enableFilterMatchHighlighting = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enableRowPinning = false, enableRowSelection = false, enableRowVirtualization, enableSelectAll = true, enableSorting = true, enableStickyHeader = false, enableTableFooter = true, enableTableHead = true, enableToolbarInternalActions = true, enableTopToolbar = true, filterFns, icons, layoutMode, localization, manualFiltering, manualGrouping, manualPagination, manualSorting, mrtTheme, paginationDisplayMode = 'default', positionActionsColumn = 'first', positionCreatingRow = 'top', positionExpandColumn = 'first', positionGlobalFilter = 'right', positionPagination = 'bottom', positionToolbarAlertBanner = 'top', positionToolbarDropZone = 'top', rowNumberDisplayMode = 'static', rowPinningDisplayMode = 'sticky', selectAllMode = 'page', sortingFns } = _a, rest = __rest(_a, ["aggregationFns", "autoResetExpanded", "columnFilterDisplayMode", "columnResizeDirection", "columnResizeMode", "createDisplayMode", "defaultColumn", "defaultDisplayColumn", "editDisplayMode", "enableBatchRowSelection", "enableBottomToolbar", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnPinning", "enableColumnResizing", "enableColumnVirtualization", "enableDensityToggle", "enableExpandAll", "enableExpanding", "enableFacetedValues", "enableFilterMatchHighlighting", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enableRowPinning", "enableRowSelection", "enableRowVirtualization", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "layoutMode", "localization", "manualFiltering", "manualGrouping", "manualPagination", "manualSorting", "mrtTheme", "paginationDisplayMode", "positionActionsColumn", "positionCreatingRow", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberDisplayMode", "rowPinningDisplayMode", "selectAllMode", "sortingFns"]);
|
1230
1252
|
const theme = useTheme();
|
1231
1253
|
icons = useMemo(() => (Object.assign(Object.assign({}, MRT_Default_Icons), icons)), [icons]);
|
1232
1254
|
localization = useMemo(() => (Object.assign(Object.assign({}, MRT_Localization_EN), localization)), [localization]);
|
1255
|
+
mrtTheme = useMemo(() => getMRTTheme(mrtTheme, theme), [mrtTheme, theme]);
|
1233
1256
|
aggregationFns = useMemo(() => (Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns)), []);
|
1234
1257
|
filterFns = useMemo(() => (Object.assign(Object.assign({}, MRT_FilterFns), filterFns)), []);
|
1235
1258
|
sortingFns = useMemo(() => (Object.assign(Object.assign({}, MRT_SortingFns), sortingFns)), []);
|
@@ -1314,6 +1337,7 @@ const useMRT_TableOptions = (_a) => {
|
|
1314
1337
|
manualGrouping,
|
1315
1338
|
manualPagination,
|
1316
1339
|
manualSorting,
|
1340
|
+
mrtTheme,
|
1317
1341
|
paginationDisplayMode,
|
1318
1342
|
positionActionsColumn,
|
1319
1343
|
positionCreatingRow,
|
@@ -1730,7 +1754,7 @@ const useMRT_Rows = (table) => {
|
|
1730
1754
|
const allowedTypes = ['string', 'number'];
|
1731
1755
|
const MRT_TableBodyCellValue = ({ cell, rowRef, staticColumnIndex, staticRowIndex, table, }) => {
|
1732
1756
|
var _a, _b, _c;
|
1733
|
-
const { getState, options: { enableFilterMatchHighlighting }, } = table;
|
1757
|
+
const { getState, options: { enableFilterMatchHighlighting, mrtTheme: { matchHighlightColor }, }, } = table;
|
1734
1758
|
const { column, row } = cell;
|
1735
1759
|
const { columnDef } = column;
|
1736
1760
|
const { globalFilter, globalFilterFn } = getState();
|
@@ -1774,7 +1798,7 @@ const MRT_TableBodyCellValue = ({ cell, rowRef, staticColumnIndex, staticRowInde
|
|
1774
1798
|
if ((chunks === null || chunks === void 0 ? void 0 : chunks.length) > 1 || ((_b = chunks === null || chunks === void 0 ? void 0 : chunks[0]) === null || _b === void 0 ? void 0 : _b.match)) {
|
1775
1799
|
renderedCellValue = (jsx("span", { "aria-label": renderedCellValue, role: "note", children: (_c = chunks === null || chunks === void 0 ? void 0 : chunks.map(({ key, match, text }) => (jsx(Box, { "aria-hidden": "true", component: "span", sx: match
|
1776
1800
|
? {
|
1777
|
-
backgroundColor:
|
1801
|
+
backgroundColor: matchHighlightColor,
|
1778
1802
|
borderRadius: '2px',
|
1779
1803
|
color: (theme) => theme.palette.mode === 'dark'
|
1780
1804
|
? theme.palette.common.white
|
@@ -1926,7 +1950,7 @@ const MRT_TableBodyCell = (_a) => {
|
|
1926
1950
|
var _b, _c, _d, _e, _f;
|
1927
1951
|
var { cell, numRows, rowRef, staticColumnIndex, staticRowIndex, table } = _a, rest = __rest(_a, ["cell", "numRows", "rowRef", "staticColumnIndex", "staticRowIndex", "table"]);
|
1928
1952
|
const theme = useTheme();
|
1929
|
-
const { getState, options: { columnResizeDirection, columnResizeMode, createDisplayMode, editDisplayMode, enableCellActions, enableClickToCopy, enableColumnOrdering, enableColumnPinning, enableGrouping, layoutMode, muiSkeletonProps, muiTableBodyCellProps, }, setHoveredColumn, } = table;
|
1953
|
+
const { getState, options: { columnResizeDirection, columnResizeMode, createDisplayMode, editDisplayMode, enableCellActions, enableClickToCopy, enableColumnOrdering, enableColumnPinning, enableGrouping, layoutMode, mrtTheme: { draggingBorderColor }, muiSkeletonProps, muiTableBodyCellProps, }, setHoveredColumn, } = table;
|
1930
1954
|
const { actionCell, columnSizingInfo, creatingRow, density, draggingColumn, draggingRow, editingCell, editingRow, hoveredColumn, hoveredRow, isLoading, showSkeletons, } = getState();
|
1931
1955
|
const { column, row } = cell;
|
1932
1956
|
const { columnDef } = column;
|
@@ -1939,7 +1963,6 @@ const MRT_TableBodyCell = (_a) => {
|
|
1939
1963
|
row,
|
1940
1964
|
table,
|
1941
1965
|
});
|
1942
|
-
const { draggingBorderColor } = getMRTTheme(table, theme);
|
1943
1966
|
const [skeletonWidth, setSkeletonWidth] = useState(100);
|
1944
1967
|
useEffect(() => {
|
1945
1968
|
if ((!isLoading && !showSkeletons) || skeletonWidth !== 100)
|
@@ -1954,8 +1977,8 @@ const MRT_TableBodyCell = (_a) => {
|
|
1954
1977
|
const isHoveredColumn = (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id;
|
1955
1978
|
const isDraggingRow = (draggingRow === null || draggingRow === void 0 ? void 0 : draggingRow.id) === row.id;
|
1956
1979
|
const isHoveredRow = (hoveredRow === null || hoveredRow === void 0 ? void 0 : hoveredRow.id) === row.id;
|
1957
|
-
const isFirstColumn = getIsFirstColumn(
|
1958
|
-
const isLastColumn = getIsLastColumn(
|
1980
|
+
const isFirstColumn = column.getIsFirstColumn();
|
1981
|
+
const isLastColumn = column.getIsLastColumn();
|
1959
1982
|
const isLastRow = numRows && staticRowIndex === numRows - 1;
|
1960
1983
|
const isResizingColumn = columnSizingInfo.isResizingColumn === column.id;
|
1961
1984
|
const showResizeBorder = isResizingColumn && columnResizeMode === 'onChange';
|
@@ -2033,6 +2056,11 @@ const MRT_TableBodyCell = (_a) => {
|
|
2033
2056
|
setHoveredColumn(columnDef.enableColumnOrdering !== false ? column : null);
|
2034
2057
|
}
|
2035
2058
|
};
|
2059
|
+
const handleDragOver = (e) => {
|
2060
|
+
if (columnDef.enableColumnOrdering !== false) {
|
2061
|
+
e.preventDefault();
|
2062
|
+
}
|
2063
|
+
};
|
2036
2064
|
const handleContextMenu = (e) => {
|
2037
2065
|
var _a;
|
2038
2066
|
(_a = tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.onContextMenu) === null || _a === void 0 ? void 0 : _a.call(tableCellProps, e);
|
@@ -2042,7 +2070,7 @@ const MRT_TableBodyCell = (_a) => {
|
|
2042
2070
|
table.refs.actionCellRef.current = e.currentTarget;
|
2043
2071
|
}
|
2044
2072
|
};
|
2045
|
-
return (jsx(TableCell, Object.assign({ align: theme.direction === 'rtl' ? 'right' : 'left', "data-index": staticColumnIndex, "data-pinned": !!isColumnPinned || undefined }, tableCellProps, { onContextMenu: handleContextMenu, onDoubleClick: handleDoubleClick, onDragEnter: handleDragEnter, sx: (theme) => (Object.assign(Object.assign({ '&:hover': {
|
2073
|
+
return (jsx(TableCell, Object.assign({ align: theme.direction === 'rtl' ? 'right' : 'left', "data-index": staticColumnIndex, "data-pinned": !!isColumnPinned || undefined }, tableCellProps, { onContextMenu: handleContextMenu, onDoubleClick: handleDoubleClick, onDragEnter: handleDragEnter, onDragOver: handleDragOver, sx: (theme) => (Object.assign(Object.assign({ '&:hover': {
|
2046
2074
|
outline: (actionCell === null || actionCell === void 0 ? void 0 : actionCell.id) === cell.id ||
|
2047
2075
|
(editDisplayMode === 'cell' && isEditable) ||
|
2048
2076
|
(editDisplayMode === 'table' && (isCreating || isEditing))
|
@@ -2087,7 +2115,7 @@ const Memo_MRT_TableBodyCell = memo(MRT_TableBodyCell, (prev, next) => next.cell
|
|
2087
2115
|
|
2088
2116
|
const MRT_TableDetailPanel = (_a) => {
|
2089
2117
|
var { parentRowRef, row, rowVirtualizer, staticRowIndex, table, virtualRow } = _a, rest = __rest(_a, ["parentRowRef", "row", "rowVirtualizer", "staticRowIndex", "table", "virtualRow"]);
|
2090
|
-
const { getState, getVisibleLeafColumns, options: {
|
2118
|
+
const { getState, getVisibleLeafColumns, options: { layoutMode, mrtTheme: { baseBackgroundColor }, muiDetailPanelProps, muiTableBodyRowProps, renderDetailPanel, }, } = table;
|
2091
2119
|
const { isLoading } = getState();
|
2092
2120
|
const tableRowProps = parseFromValuesOrFunc(muiTableBodyRowProps, {
|
2093
2121
|
isDetailPanel: true,
|
@@ -2112,18 +2140,14 @@ const MRT_TableDetailPanel = (_a) => {
|
|
2112
2140
|
: undefined, transform: virtualRow
|
2113
2141
|
? `translateY(${virtualRow === null || virtualRow === void 0 ? void 0 : virtualRow.start}px)`
|
2114
2142
|
: undefined, width: '100%' }, parseFromValuesOrFunc(tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.sx, theme)));
|
2115
|
-
}, children: jsx(TableCell, Object.assign({ className: "Mui-TableBodyCell-DetailPanel", colSpan: getVisibleLeafColumns().length }, tableCellProps, { sx: (theme) => (Object.assign({ backgroundColor: virtualRow
|
2116
|
-
? getMRTTheme(table, theme).baseBackgroundColor
|
2117
|
-
: undefined, borderBottom: !row.getIsExpanded() ? 'none' : undefined, display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'flex' : undefined, py: !!DetailPanel && row.getIsExpanded() ? '1rem' : 0, transition: !enableRowVirtualization
|
2118
|
-
? 'all 150ms ease-in-out'
|
2119
|
-
: undefined, width: `100%` }, parseFromValuesOrFunc(tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx, theme))), children: enableRowVirtualization ? (row.getIsExpanded() && DetailPanel) : (jsx(Collapse, { in: row.getIsExpanded(), mountOnEnter: true, unmountOnExit: true, children: DetailPanel })) })) })));
|
2143
|
+
}, children: jsx(TableCell, Object.assign({ className: "Mui-TableBodyCell-DetailPanel", colSpan: getVisibleLeafColumns().length }, tableCellProps, { sx: (theme) => (Object.assign({ backgroundColor: virtualRow ? baseBackgroundColor : undefined, borderBottom: !row.getIsExpanded() ? 'none' : undefined, display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'flex' : undefined, py: !!DetailPanel && row.getIsExpanded() ? '1rem' : 0, transition: !virtualRow ? 'all 150ms ease-in-out' : undefined, width: `100%` }, parseFromValuesOrFunc(tableCellProps === null || tableCellProps === void 0 ? void 0 : tableCellProps.sx, theme))), children: virtualRow ? (row.getIsExpanded() && DetailPanel) : (jsx(Collapse, { in: row.getIsExpanded(), mountOnEnter: true, unmountOnExit: true, children: DetailPanel })) })) })));
|
2120
2144
|
};
|
2121
2145
|
|
2122
2146
|
const MRT_TableBodyRow = (_a) => {
|
2123
2147
|
var _b, _c, _d, _f;
|
2124
2148
|
var { columnVirtualizer, numRows, pinnedRowIds, row, rowVirtualizer, staticRowIndex, table, virtualRow } = _a, rest = __rest(_a, ["columnVirtualizer", "numRows", "pinnedRowIds", "row", "rowVirtualizer", "staticRowIndex", "table", "virtualRow"]);
|
2125
2149
|
const theme = useTheme();
|
2126
|
-
const { getState, options: { enableRowOrdering, enableRowPinning, enableStickyFooter, enableStickyHeader, layoutMode, memoMode, muiTableBodyRowProps, renderDetailPanel, rowPinningDisplayMode, }, refs: { tableFooterRef, tableHeadRef }, setHoveredRow, } = table;
|
2150
|
+
const { getState, options: { enableRowOrdering, enableRowPinning, enableStickyFooter, enableStickyHeader, layoutMode, memoMode, mrtTheme: { baseBackgroundColor, pinnedRowBackgroundColor, selectedRowBackgroundColor, }, muiTableBodyRowProps, renderDetailPanel, rowPinningDisplayMode, }, refs: { tableFooterRef, tableHeadRef }, setHoveredRow, } = table;
|
2127
2151
|
const { density, draggingColumn, draggingRow, editingCell, editingRow, hoveredRow, isFullScreen, rowPinning, } = getState();
|
2128
2152
|
const visibleCells = row.getVisibleCells();
|
2129
2153
|
const { virtualColumns, virtualPaddingLeft, virtualPaddingRight } = columnVirtualizer !== null && columnVirtualizer !== void 0 ? columnVirtualizer : {};
|
@@ -2162,8 +2186,10 @@ const MRT_TableBodyRow = (_a) => {
|
|
2162
2186
|
setHoveredRow(row);
|
2163
2187
|
}
|
2164
2188
|
};
|
2189
|
+
const handleDragOver = (e) => {
|
2190
|
+
e.preventDefault();
|
2191
|
+
};
|
2165
2192
|
const rowRef = useRef(null);
|
2166
|
-
const { baseBackgroundColor, pinnedRowBackgroundColor, selectedRowBackgroundColor, } = getMRTTheme(table, theme);
|
2167
2193
|
const cellHighlightColor = isRowSelected
|
2168
2194
|
? selectedRowBackgroundColor
|
2169
2195
|
: isRowPinned
|
@@ -2176,7 +2202,7 @@ const MRT_TableBodyRow = (_a) => {
|
|
2176
2202
|
? `${lighten(baseBackgroundColor, 0.3)}`
|
2177
2203
|
: `${darken(baseBackgroundColor, 0.3)}`
|
2178
2204
|
: undefined;
|
2179
|
-
return (jsxs(Fragment, { children: [jsxs(TableRow, Object.assign({ "data-index": renderDetailPanel ? staticRowIndex * 2 : staticRowIndex, "data-pinned": !!isRowPinned || undefined, "data-selected": isRowSelected || undefined, onDragEnter: handleDragEnter, ref: (node) => {
|
2205
|
+
return (jsxs(Fragment, { children: [jsxs(TableRow, Object.assign({ "data-index": renderDetailPanel ? staticRowIndex * 2 : staticRowIndex, "data-pinned": !!isRowPinned || undefined, "data-selected": isRowSelected || undefined, onDragEnter: handleDragEnter, onDragOver: handleDragOver, ref: (node) => {
|
2180
2206
|
if (node) {
|
2181
2207
|
rowRef.current = node;
|
2182
2208
|
rowVirtualizer === null || rowVirtualizer === void 0 ? void 0 : rowVirtualizer.measureElement(node);
|
@@ -2340,7 +2366,7 @@ const MRT_TableFooterCell = (_a) => {
|
|
2340
2366
|
const MRT_TableFooterRow = (_a) => {
|
2341
2367
|
var _b;
|
2342
2368
|
var { columnVirtualizer, footerGroup, table } = _a, rest = __rest(_a, ["columnVirtualizer", "footerGroup", "table"]);
|
2343
|
-
const { options: { layoutMode, muiTableFooterRowProps }, } = table;
|
2369
|
+
const { options: { layoutMode, mrtTheme: { baseBackgroundColor }, muiTableFooterRowProps, }, } = table;
|
2344
2370
|
const { virtualColumns, virtualPaddingLeft, virtualPaddingRight } = columnVirtualizer !== null && columnVirtualizer !== void 0 ? columnVirtualizer : {};
|
2345
2371
|
// if no content in row, skip row
|
2346
2372
|
if (!((_b = footerGroup.headers) === null || _b === void 0 ? void 0 : _b.some((header) => (typeof header.column.columnDef.footer === 'string' &&
|
@@ -2352,7 +2378,7 @@ const MRT_TableFooterRow = (_a) => {
|
|
2352
2378
|
footerGroup,
|
2353
2379
|
table,
|
2354
2380
|
})), rest);
|
2355
|
-
return (jsxs(TableRow, Object.assign({}, tableRowProps, { sx: (theme) => (Object.assign({ backgroundColor:
|
2381
|
+
return (jsxs(TableRow, Object.assign({}, tableRowProps, { sx: (theme) => (Object.assign({ backgroundColor: baseBackgroundColor, display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'flex' : undefined, position: 'relative', width: '100%' }, parseFromValuesOrFunc(tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.sx, theme))), children: [virtualPaddingLeft ? (jsx("th", { style: { display: 'flex', width: virtualPaddingLeft } })) : null, (virtualColumns !== null && virtualColumns !== void 0 ? virtualColumns : footerGroup.headers).map((footerOrVirtualFooter, staticColumnIndex) => {
|
2356
2382
|
let footer = footerOrVirtualFooter;
|
2357
2383
|
if (columnVirtualizer) {
|
2358
2384
|
staticColumnIndex = footerOrVirtualFooter
|
@@ -2477,7 +2503,7 @@ const rangeVariants = ['range-slider', 'date-range', 'datetime-range', 'range'];
|
|
2477
2503
|
const MRT_FilterOptionMenu = (_a) => {
|
2478
2504
|
var _b, _c, _d, _e;
|
2479
2505
|
var { anchorEl, header, onSelect, setAnchorEl, setFilterValue, table } = _a, rest = __rest(_a, ["anchorEl", "header", "onSelect", "setAnchorEl", "setFilterValue", "table"]);
|
2480
|
-
const { getState, options: { columnFilterModeOptions, globalFilterModeOptions, localization, renderColumnFilterModeMenuItems, renderGlobalFilterModeMenuItems, }, setColumnFilterFns, setGlobalFilterFn, } = table;
|
2506
|
+
const { getState, options: { columnFilterModeOptions, globalFilterModeOptions, localization, mrtTheme: { menuBackgroundColor }, renderColumnFilterModeMenuItems, renderGlobalFilterModeMenuItems, }, setColumnFilterFns, setGlobalFilterFn, } = table;
|
2481
2507
|
const { density, globalFilterFn } = getState();
|
2482
2508
|
const { column } = header !== null && header !== void 0 ? header : {};
|
2483
2509
|
const { columnDef } = column !== null && column !== void 0 ? column : {};
|
@@ -2560,8 +2586,6 @@ const MRT_FilterOptionMenu = (_a) => {
|
|
2560
2586
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect();
|
2561
2587
|
};
|
2562
2588
|
const filterOption = !!header && columnDef ? columnDef._filterFn : globalFilterFn;
|
2563
|
-
const theme = useTheme();
|
2564
|
-
const { menuBackgroundColor } = getMRTTheme(table, theme);
|
2565
2589
|
return (jsx(Menu, Object.assign({ MenuListProps: {
|
2566
2590
|
dense: density === 'compact',
|
2567
2591
|
sx: {
|
@@ -2589,7 +2613,7 @@ const MRT_FilterOptionMenu = (_a) => {
|
|
2589
2613
|
const MRT_ColumnActionMenu = (_a) => {
|
2590
2614
|
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
2591
2615
|
var { anchorEl, header, setAnchorEl, table } = _a, rest = __rest(_a, ["anchorEl", "header", "setAnchorEl", "table"]);
|
2592
|
-
const { getAllLeafColumns, getState, options: { columnFilterDisplayMode, columnFilterModeOptions, enableColumnFilterModes, enableColumnFilters, enableColumnPinning, enableColumnResizing, enableGrouping, enableHiding, enableSorting, enableSortingRemoval, icons: { ClearAllIcon, DynamicFeedIcon, FilterListIcon, FilterListOffIcon, PushPinIcon, RestartAltIcon, SortIcon, ViewColumnIcon, VisibilityOffIcon, }, localization, renderColumnActionsMenuItems, }, refs: { filterInputRefs }, setColumnFilterFns, setColumnOrder, setColumnSizingInfo, setShowColumnFilters, } = table;
|
2616
|
+
const { getAllLeafColumns, getState, options: { columnFilterDisplayMode, columnFilterModeOptions, enableColumnFilterModes, enableColumnFilters, enableColumnPinning, enableColumnResizing, enableGrouping, enableHiding, enableSorting, enableSortingRemoval, icons: { ClearAllIcon, DynamicFeedIcon, FilterListIcon, FilterListOffIcon, PushPinIcon, RestartAltIcon, SortIcon, ViewColumnIcon, VisibilityOffIcon, }, localization, mrtTheme: { menuBackgroundColor }, renderColumnActionsMenuItems, }, refs: { filterInputRefs }, setColumnFilterFns, setColumnOrder, setColumnSizingInfo, setShowColumnFilters, } = table;
|
2593
2617
|
const { column } = header;
|
2594
2618
|
const { columnDef } = column;
|
2595
2619
|
const { columnSizing, columnVisibility, density, showColumnFilters } = getState();
|
@@ -2701,8 +2725,6 @@ const MRT_ColumnActionMenu = (_a) => {
|
|
2701
2725
|
]
|
2702
2726
|
: []),
|
2703
2727
|
].filter(Boolean);
|
2704
|
-
const theme = useTheme();
|
2705
|
-
const { menuBackgroundColor } = getMRTTheme(table, theme);
|
2706
2728
|
return (jsx(Menu, Object.assign({ MenuListProps: {
|
2707
2729
|
dense: density === 'compact',
|
2708
2730
|
sx: {
|
@@ -2775,9 +2797,9 @@ const MRT_FilterCheckbox = (_a) => {
|
|
2775
2797
|
};
|
2776
2798
|
|
2777
2799
|
const MRT_FilterTextField = (_a) => {
|
2778
|
-
var _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t
|
2800
|
+
var _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
2779
2801
|
var { header, rangeFilterIndex, table } = _a, rest = __rest(_a, ["header", "rangeFilterIndex", "table"]);
|
2780
|
-
const { options: {
|
2802
|
+
const { options: { enableColumnFilterModes, icons: { CloseIcon, FilterListIcon }, localization, manualFiltering, muiFilterAutocompleteProps, muiFilterDatePickerProps, muiFilterDateTimePickerProps, muiFilterTextFieldProps, muiFilterTimePickerProps, }, refs: { filterInputRefs }, setColumnFilterFns, } = table;
|
2781
2803
|
const { column } = header;
|
2782
2804
|
const { columnDef } = column;
|
2783
2805
|
const { filterVariant } = columnDef;
|
@@ -2801,14 +2823,8 @@ const MRT_FilterTextField = (_a) => {
|
|
2801
2823
|
column,
|
2802
2824
|
table,
|
2803
2825
|
}));
|
2804
|
-
const
|
2805
|
-
const
|
2806
|
-
const isRangeFilter = (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.includes('range')) || rangeFilterIndex !== undefined;
|
2807
|
-
const isSelectFilter = filterVariant === 'select';
|
2808
|
-
const isMultiSelectFilter = filterVariant === 'multi-select';
|
2809
|
-
const isTextboxFilter = ['autocomplete', 'text'].includes(filterVariant) ||
|
2810
|
-
(!isSelectFilter && !isMultiSelectFilter);
|
2811
|
-
const currentFilterOption = columnDef._filterFn;
|
2826
|
+
const { allowedColumnFilterOptions, currentFilterOption, facetedUniqueValues, isAutocompleteFilter, isDateFilter, isMultiSelectFilter, isRangeFilter, isSelectFilter, isTextboxFilter, } = getColumnFilterInfo({ header, table });
|
2827
|
+
const dropdownOptions = useDropdownOptions({ header, table });
|
2812
2828
|
const filterChipLabel = ['empty', 'notEmpty'].includes(currentFilterOption)
|
2813
2829
|
? //@ts-ignore
|
2814
2830
|
localization[`filter${((_c = (_b = currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.charAt) === null || _b === void 0 ? void 0 : _b.call(currentFilterOption, 0)) === null || _c === void 0 ? void 0 : _c.toUpperCase()) +
|
@@ -2821,13 +2837,11 @@ const MRT_FilterTextField = (_a) => {
|
|
2821
2837
|
: rangeFilterIndex === 1
|
2822
2838
|
? localization.max
|
2823
2839
|
: '';
|
2824
|
-
const
|
2825
|
-
const showChangeModeButton = enableColumnFilterModes &&
|
2840
|
+
const showChangeModeButton = !!(enableColumnFilterModes &&
|
2826
2841
|
columnDef.enableColumnFilterModes !== false &&
|
2827
2842
|
!rangeFilterIndex &&
|
2828
2843
|
(allowedColumnFilterOptions === undefined ||
|
2829
|
-
!!(allowedColumnFilterOptions === null || allowedColumnFilterOptions === void 0 ? void 0 : allowedColumnFilterOptions.length));
|
2830
|
-
const facetedUniqueValues = column.getFacetedUniqueValues();
|
2844
|
+
!!(allowedColumnFilterOptions === null || allowedColumnFilterOptions === void 0 ? void 0 : allowedColumnFilterOptions.length)));
|
2831
2845
|
const [anchorEl, setAnchorEl] = useState(null);
|
2832
2846
|
const [filterValue, setFilterValue] = useState(() => {
|
2833
2847
|
var _a, _b;
|
@@ -2914,23 +2928,9 @@ const MRT_FilterTextField = (_a) => {
|
|
2914
2928
|
isMounted.current = true;
|
2915
2929
|
}, [column.getFilterValue()]);
|
2916
2930
|
if (columnDef.Filter) {
|
2917
|
-
return (jsx(Fragment, { children: (
|
2931
|
+
return (jsx(Fragment, { children: (_g = columnDef.Filter) === null || _g === void 0 ? void 0 : _g.call(columnDef, { column, header, rangeFilterIndex, table }) }));
|
2918
2932
|
}
|
2919
|
-
const
|
2920
|
-
var _a;
|
2921
|
-
return (_a = columnDef.filterSelectOptions) !== null && _a !== void 0 ? _a : ((isSelectFilter || isMultiSelectFilter || isAutocompleteFilter) &&
|
2922
|
-
facetedUniqueValues
|
2923
|
-
? Array.from(facetedUniqueValues.keys())
|
2924
|
-
.filter((value) => value !== null && value !== undefined)
|
2925
|
-
.sort((a, b) => a.localeCompare(b))
|
2926
|
-
: undefined);
|
2927
|
-
}, [
|
2928
|
-
columnDef.filterSelectOptions,
|
2929
|
-
facetedUniqueValues,
|
2930
|
-
isMultiSelectFilter,
|
2931
|
-
isSelectFilter,
|
2932
|
-
]);
|
2933
|
-
const endAdornment = !isAutocompleteFilter && !isDateFilter && !filterChipLabel ? (jsx(InputAdornment, { position: "end", sx: { mr: isSelectFilter || isMultiSelectFilter ? '20px' : undefined }, children: jsx(Tooltip, { placement: "right", title: (_j = localization.clearFilter) !== null && _j !== void 0 ? _j : '', children: jsx("span", { children: jsx(IconButton, { "aria-label": localization.clearFilter, disabled: !((_k = filterValue === null || filterValue === void 0 ? void 0 : filterValue.toString()) === null || _k === void 0 ? void 0 : _k.length), onClick: handleClear, size: "small", sx: {
|
2933
|
+
const endAdornment = !isAutocompleteFilter && !isDateFilter && !filterChipLabel ? (jsx(InputAdornment, { position: "end", sx: { mr: isSelectFilter || isMultiSelectFilter ? '20px' : undefined }, children: jsx(Tooltip, { placement: "right", title: (_h = localization.clearFilter) !== null && _h !== void 0 ? _h : '', children: jsx("span", { children: jsx(IconButton, { "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: {
|
2934
2934
|
height: '2rem',
|
2935
2935
|
transform: 'scale(0.9)',
|
2936
2936
|
width: '2rem',
|
@@ -2946,7 +2946,7 @@ const MRT_FilterTextField = (_a) => {
|
|
2946
2946
|
? { endAdornment, startAdornment }
|
2947
2947
|
: { startAdornment }, fullWidth: true, helperText: showChangeModeButton ? (jsx("label", { children: localization.filterMode.replace('{filterType}',
|
2948
2948
|
// @ts-ignore
|
2949
|
-
localization[`filter${((
|
2949
|
+
localization[`filter${((_k = currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.charAt(0)) === null || _k === void 0 ? void 0 : _k.toUpperCase()) +
|
2950
2950
|
(currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.slice(1))}`]) })) : null, inputProps: {
|
2951
2951
|
'aria-label': filterPlaceholder,
|
2952
2952
|
autoComplete: 'new-password', // disable autocomplete and autofill
|
@@ -2980,15 +2980,15 @@ const MRT_FilterTextField = (_a) => {
|
|
2980
2980
|
value: filterValue || null,
|
2981
2981
|
};
|
2982
2982
|
return (jsxs(Fragment, { children: [(filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.startsWith('time')) ? (jsx(TimePicker, Object.assign({}, commonDatePickerProps, timePickerProps, { slotProps: {
|
2983
|
-
field: Object.assign({ clearable: true, onClear: () => handleClear() }, (
|
2984
|
-
textField: Object.assign(Object.assign({}, commonTextFieldProps), (
|
2983
|
+
field: Object.assign({ clearable: true, onClear: () => handleClear() }, (_l = timePickerProps === null || timePickerProps === void 0 ? void 0 : timePickerProps.slotProps) === null || _l === void 0 ? void 0 : _l.field),
|
2984
|
+
textField: Object.assign(Object.assign({}, commonTextFieldProps), (_m = timePickerProps === null || timePickerProps === void 0 ? void 0 : timePickerProps.slotProps) === null || _m === void 0 ? void 0 : _m.textField),
|
2985
2985
|
} }))) : (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.startsWith('datetime')) ? (jsx(DateTimePicker, Object.assign({}, commonDatePickerProps, dateTimePickerProps, { slotProps: {
|
2986
|
-
field: Object.assign({ clearable: true, onClear: () => handleClear() }, (
|
2987
|
-
textField: Object.assign(Object.assign({}, commonTextFieldProps), (
|
2986
|
+
field: Object.assign({ clearable: true, onClear: () => handleClear() }, (_o = dateTimePickerProps === null || dateTimePickerProps === void 0 ? void 0 : dateTimePickerProps.slotProps) === null || _o === void 0 ? void 0 : _o.field),
|
2987
|
+
textField: Object.assign(Object.assign({}, commonTextFieldProps), (_p = dateTimePickerProps === null || dateTimePickerProps === void 0 ? void 0 : dateTimePickerProps.slotProps) === null || _p === void 0 ? void 0 : _p.textField),
|
2988
2988
|
} }))) : (filterVariant === null || filterVariant === void 0 ? void 0 : filterVariant.startsWith('date')) ? (jsx(DatePicker, Object.assign({}, commonDatePickerProps, datePickerProps, { slotProps: {
|
2989
|
-
field: Object.assign({ clearable: true, onClear: () => handleClear() }, (
|
2990
|
-
textField: Object.assign(Object.assign({}, commonTextFieldProps), (
|
2991
|
-
} }))) : isAutocompleteFilter ? (jsx(Autocomplete, Object.assign({ freeSolo: true, getOptionLabel: (option) => getValueAndLabel(option).label, onChange: (_e, newValue) => handleAutocompleteChange(newValue), options: (
|
2989
|
+
field: Object.assign({ clearable: true, onClear: () => handleClear() }, (_q = datePickerProps === null || datePickerProps === void 0 ? void 0 : datePickerProps.slotProps) === null || _q === void 0 ? void 0 : _q.field),
|
2990
|
+
textField: Object.assign(Object.assign({}, commonTextFieldProps), (_r = datePickerProps === null || datePickerProps === void 0 ? void 0 : datePickerProps.slotProps) === null || _r === void 0 ? void 0 : _r.textField),
|
2991
|
+
} }))) : isAutocompleteFilter ? (jsx(Autocomplete, Object.assign({ freeSolo: true, getOptionLabel: (option) => getValueAndLabel(option).label, onChange: (_e, newValue) => handleAutocompleteChange(newValue), options: (_s = dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.map((option) => getValueAndLabel(option))) !== null && _s !== void 0 ? _s : [] }, autocompleteProps, { renderInput: (builtinTextFieldProps) => {
|
2992
2992
|
var _a;
|
2993
2993
|
return (jsx(TextField, 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, onClick: (e) => e.stopPropagation() })));
|
2994
2994
|
}, value: autocompleteValue }))) : (jsx(TextField, Object.assign({ select: isSelectFilter || isMultiSelectFilter }, commonTextFieldProps, { SelectProps: Object.assign({ MenuProps: { disableScrollLock: true }, displayEmpty: true, multiple: isMultiSelectFilter, renderValue: isMultiSelectFilter
|
@@ -2999,7 +2999,7 @@ const MRT_FilterTextField = (_a) => {
|
|
2999
2999
|
: undefined }, commonTextFieldProps.SelectProps), onChange: handleTextFieldChange, onClick: (e) => e.stopPropagation(), value: filterValue !== null && filterValue !== void 0 ? filterValue : '', children: (isSelectFilter || isMultiSelectFilter) && [
|
3000
3000
|
jsx(MenuItem, { disabled: true, divider: true, hidden: true, value: "", children: jsx(Box, { sx: { opacity: 0.5 }, children: filterPlaceholder }) }, "p"),
|
3001
3001
|
...[
|
3002
|
-
(
|
3002
|
+
(_t = textFieldProps.children) !== null && _t !== void 0 ? _t : dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.map((option, index) => {
|
3003
3003
|
var _a;
|
3004
3004
|
const { label, value } = getValueAndLabel(option);
|
3005
3005
|
return (jsxs(MenuItem, { sx: {
|
@@ -3016,7 +3016,7 @@ const MRT_FilterTextField = (_a) => {
|
|
3016
3016
|
|
3017
3017
|
const MRT_FilterRangeFields = (_a) => {
|
3018
3018
|
var { header, table } = _a, rest = __rest(_a, ["header", "table"]);
|
3019
|
-
return (
|
3019
|
+
return (jsx(Box, Object.assign({}, rest, { sx: (theme) => (Object.assign({ display: 'grid', gap: '1rem', gridTemplateColumns: '1fr 1fr' }, parseFromValuesOrFunc(rest === null || rest === void 0 ? void 0 : rest.sx, theme))), children: [0, 1].map((rangeFilterIndex) => (jsx(MRT_FilterTextField, { header: header, rangeFilterIndex: rangeFilterIndex, table: table }, rangeFilterIndex))) })));
|
3020
3020
|
};
|
3021
3021
|
|
3022
3022
|
const MRT_FilterRangeSlider = (_a) => {
|
@@ -3092,41 +3092,45 @@ const MRT_FilterRangeSlider = (_a) => {
|
|
3092
3092
|
};
|
3093
3093
|
|
3094
3094
|
const MRT_TableHeadCellFilterContainer = (_a) => {
|
3095
|
-
var _b;
|
3096
3095
|
var { header, table } = _a, rest = __rest(_a, ["header", "table"]);
|
3097
3096
|
const { getState, options: { columnFilterDisplayMode }, } = table;
|
3098
3097
|
const { showColumnFilters } = getState();
|
3099
3098
|
const { column } = header;
|
3100
3099
|
const { columnDef } = column;
|
3101
|
-
|
3102
|
-
|
3100
|
+
const { isRangeFilter } = getColumnFilterInfo({ header, table });
|
3101
|
+
return (jsx(Collapse, Object.assign({ in: showColumnFilters || columnFilterDisplayMode === 'popover', mountOnEnter: true, unmountOnExit: true }, rest, { children: columnDef.filterVariant === 'checkbox' ? (jsx(MRT_FilterCheckbox, { column: column, table: table })) : columnDef.filterVariant === 'range-slider' ? (jsx(MRT_FilterRangeSlider, { header: header, table: table })) : isRangeFilter ? (jsx(MRT_FilterRangeFields, { header: header, table: table })) : (jsx(MRT_FilterTextField, { header: header, table: table })) })));
|
3103
3102
|
};
|
3104
3103
|
|
3105
3104
|
const MRT_TableHeadCellFilterLabel = (_a) => {
|
3106
|
-
var _b, _c
|
3105
|
+
var _b, _c;
|
3107
3106
|
var { header, table } = _a, rest = __rest(_a, ["header", "table"]);
|
3108
3107
|
const { options: { columnFilterDisplayMode, icons: { FilterAltIcon }, localization, }, refs: { filterInputRefs }, setShowColumnFilters, } = table;
|
3109
3108
|
const { column } = header;
|
3110
3109
|
const { columnDef } = column;
|
3111
3110
|
const filterValue = column.getFilterValue();
|
3112
3111
|
const [anchorEl, setAnchorEl] = useState(null);
|
3112
|
+
const { currentFilterOption, isMultiSelectFilter, isRangeFilter, isSelectFilter, } = getColumnFilterInfo({ header, table });
|
3113
|
+
const dropdownOptions = useDropdownOptions({ header, table });
|
3114
|
+
const getSelectLabel = (index) => getValueAndLabel(dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.find((option) => getValueAndLabel(option).value ===
|
3115
|
+
(index !== undefined ? filterValue[index] : filterValue))).label;
|
3113
3116
|
const isFilterActive = (Array.isArray(filterValue) && filterValue.some(Boolean)) ||
|
3114
3117
|
(!!filterValue && !Array.isArray(filterValue));
|
3115
|
-
const isRangeFilter = ((_b = columnDef.filterVariant) === null || _b === void 0 ? void 0 : _b.includes('range')) ||
|
3116
|
-
['between', 'betweenInclusive', 'inNumberRange'].includes(columnDef._filterFn);
|
3117
|
-
const currentFilterOption = columnDef._filterFn;
|
3118
3118
|
const filterTooltip = columnFilterDisplayMode === 'popover' && !isFilterActive
|
3119
|
-
? (
|
3119
|
+
? (_b = localization.filterByColumn) === null || _b === void 0 ? void 0 : _b.replace('{column}', String(columnDef.header))
|
3120
3120
|
: localization.filteringByColumn
|
3121
3121
|
.replace('{column}', String(columnDef.header))
|
3122
3122
|
.replace('{filterType}', currentFilterOption
|
3123
3123
|
? // @ts-ignore
|
3124
|
-
localization[`filter${((
|
3124
|
+
localization[`filter${((_c = currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.charAt(0)) === null || _c === void 0 ? void 0 : _c.toUpperCase()) +
|
3125
3125
|
(currentFilterOption === null || currentFilterOption === void 0 ? void 0 : currentFilterOption.slice(1))}`]
|
3126
3126
|
: '')
|
3127
3127
|
.replace('{filterValue}', `"${Array.isArray(filterValue)
|
3128
|
-
? filterValue
|
3129
|
-
|
3128
|
+
? filterValue
|
3129
|
+
.map((value, index) => isMultiSelectFilter ? getSelectLabel(index) : value)
|
3130
|
+
.join(`" ${isRangeFilter ? localization.and : localization.or} "`)
|
3131
|
+
: isSelectFilter
|
3132
|
+
? getSelectLabel()
|
3133
|
+
: filterValue}"`)
|
3130
3134
|
.replace('" "', '');
|
3131
3135
|
return (jsxs(Fragment, { children: [jsx(Grow, { in: columnFilterDisplayMode === 'popover' ||
|
3132
3136
|
(!!filterValue && !isRangeFilter) ||
|
@@ -3144,7 +3148,7 @@ const MRT_TableHeadCellFilterLabel = (_a) => {
|
|
3144
3148
|
(_d = (_c = filterInputRefs.current[`${column.id}-0`]) === null || _c === void 0 ? void 0 : _c.select) === null || _d === void 0 ? void 0 : _d.call(_c);
|
3145
3149
|
});
|
3146
3150
|
event.stopPropagation();
|
3147
|
-
}, size: "small" }, rest, { sx: (theme) => (Object.assign({ height: '16px', ml: '4px', opacity: isFilterActive ? 1 : 0.3, p: '8px', transform: 'scale(0.75)', transition: 'all 150ms ease-in-out', width: '16px' }, parseFromValuesOrFunc(rest === null || rest === void 0 ? void 0 : rest.sx, theme))), children: jsx(FilterAltIcon, {}) })) }) }) }), jsx(Popover, { anchorEl: anchorEl, anchorOrigin: {
|
3151
|
+
}, size: "small" }, rest, { sx: (theme) => (Object.assign({ height: '16px', ml: '4px', opacity: isFilterActive ? 1 : 0.3, p: '8px', transform: 'scale(0.75)', transition: 'all 150ms ease-in-out', width: '16px' }, parseFromValuesOrFunc(rest === null || rest === void 0 ? void 0 : rest.sx, theme))), children: jsx(FilterAltIcon, {}) })) }) }) }), columnFilterDisplayMode === 'popover' && (jsx(Popover, { anchorEl: anchorEl, anchorOrigin: {
|
3148
3152
|
horizontal: 'center',
|
3149
3153
|
vertical: 'top',
|
3150
3154
|
}, disableScrollLock: true, onClick: (event) => event.stopPropagation(), onClose: (event) => {
|
@@ -3154,7 +3158,7 @@ const MRT_TableHeadCellFilterLabel = (_a) => {
|
|
3154
3158
|
}, onKeyDown: (event) => event.key === 'Enter' && setAnchorEl(null), open: !!anchorEl, slotProps: { paper: { sx: { overflow: 'visible' } } }, transformOrigin: {
|
3155
3159
|
horizontal: 'center',
|
3156
3160
|
vertical: 'bottom',
|
3157
|
-
}, children: jsx(Box, { sx: { p: '1rem' }, children: jsx(MRT_TableHeadCellFilterContainer, { header: header, table: table }) }) })] }));
|
3161
|
+
}, children: jsx(Box, { sx: { p: '1rem' }, children: jsx(MRT_TableHeadCellFilterContainer, { header: header, table: table }) }) }))] }));
|
3158
3162
|
};
|
3159
3163
|
|
3160
3164
|
const MRT_TableHeadCellGrabHandle = (_a) => {
|
@@ -3270,7 +3274,7 @@ const MRT_TableHeadCell = (_a) => {
|
|
3270
3274
|
var _b, _c, _d, _f, _g, _h;
|
3271
3275
|
var { columnVirtualizer, header, staticColumnIndex, table } = _a, rest = __rest(_a, ["columnVirtualizer", "header", "staticColumnIndex", "table"]);
|
3272
3276
|
const theme = useTheme();
|
3273
|
-
const { getState, options: { columnFilterDisplayMode, columnResizeDirection, columnResizeMode, enableColumnActions, enableColumnDragging, enableColumnOrdering, enableColumnPinning, enableGrouping, enableMultiSort, layoutMode, muiTableHeadCellProps, }, refs: { tableHeadCellRefs }, setHoveredColumn, } = table;
|
3277
|
+
const { getState, options: { columnFilterDisplayMode, columnResizeDirection, columnResizeMode, enableColumnActions, enableColumnDragging, enableColumnOrdering, enableColumnPinning, enableGrouping, enableMultiSort, layoutMode, mrtTheme: { draggingBorderColor }, muiTableHeadCellProps, }, refs: { tableHeadCellRefs }, setHoveredColumn, } = table;
|
3274
3278
|
const { columnSizingInfo, density, draggingColumn, grouping, hoveredColumn, showColumnFilters, } = getState();
|
3275
3279
|
const { column } = header;
|
3276
3280
|
const { columnDef } = column;
|
@@ -3279,7 +3283,6 @@ const MRT_TableHeadCell = (_a) => {
|
|
3279
3283
|
column,
|
3280
3284
|
table,
|
3281
3285
|
})), rest);
|
3282
|
-
const { draggingBorderColor } = getMRTTheme(table, theme);
|
3283
3286
|
const isColumnPinned = enableColumnPinning &&
|
3284
3287
|
columnDef.columnDefType !== 'group' &&
|
3285
3288
|
column.getIsPinned();
|
@@ -3335,6 +3338,11 @@ const MRT_TableHeadCell = (_a) => {
|
|
3335
3338
|
setHoveredColumn(columnDef.enableColumnOrdering !== false ? column : null);
|
3336
3339
|
}
|
3337
3340
|
};
|
3341
|
+
const handleDragOver = (e) => {
|
3342
|
+
if (columnDef.enableColumnOrdering !== false) {
|
3343
|
+
e.preventDefault();
|
3344
|
+
}
|
3345
|
+
};
|
3338
3346
|
const HeaderElement = (_b = parseFromValuesOrFunc(columnDef.Header, {
|
3339
3347
|
column,
|
3340
3348
|
header,
|
@@ -3344,7 +3352,7 @@ const MRT_TableHeadCell = (_a) => {
|
|
3344
3352
|
? 'center'
|
3345
3353
|
: theme.direction === 'rtl'
|
3346
3354
|
? 'right'
|
3347
|
-
: 'left', colSpan: header.colSpan, "data-index": staticColumnIndex, "data-pinned": !!isColumnPinned || undefined, onDragEnter: handleDragEnter, ref: (node) => {
|
3355
|
+
: 'left', colSpan: header.colSpan, "data-index": staticColumnIndex, "data-pinned": !!isColumnPinned || undefined, onDragEnter: handleDragEnter, onDragOver: handleDragOver, ref: (node) => {
|
3348
3356
|
var _a;
|
3349
3357
|
if (node) {
|
3350
3358
|
tableHeadCellRefs.current[column.id] = node;
|
@@ -3422,13 +3430,13 @@ const MRT_TableHeadCell = (_a) => {
|
|
3422
3430
|
|
3423
3431
|
const MRT_TableHeadRow = (_a) => {
|
3424
3432
|
var { columnVirtualizer, headerGroup, table } = _a, rest = __rest(_a, ["columnVirtualizer", "headerGroup", "table"]);
|
3425
|
-
const { options: { enableStickyHeader, layoutMode, muiTableHeadRowProps }, } = table;
|
3433
|
+
const { options: { enableStickyHeader, layoutMode, mrtTheme: { baseBackgroundColor }, muiTableHeadRowProps, }, } = table;
|
3426
3434
|
const { virtualColumns, virtualPaddingLeft, virtualPaddingRight } = columnVirtualizer !== null && columnVirtualizer !== void 0 ? columnVirtualizer : {};
|
3427
3435
|
const tableRowProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiTableHeadRowProps, {
|
3428
3436
|
headerGroup,
|
3429
3437
|
table,
|
3430
3438
|
})), rest);
|
3431
|
-
return (jsxs(TableRow, Object.assign({}, tableRowProps, { sx: (theme) => (Object.assign({ backgroundColor:
|
3439
|
+
return (jsxs(TableRow, Object.assign({}, tableRowProps, { sx: (theme) => (Object.assign({ backgroundColor: baseBackgroundColor, boxShadow: `4px 0 8px ${alpha(theme.palette.common.black, 0.1)}`, display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'flex' : undefined, position: enableStickyHeader && layoutMode === 'semantic'
|
3432
3440
|
? 'sticky'
|
3433
3441
|
: 'relative', top: 0 }, parseFromValuesOrFunc(tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.sx, theme))), children: [virtualPaddingLeft ? (jsx("th", { style: { display: 'flex', width: virtualPaddingLeft } })) : null, (virtualColumns !== null && virtualColumns !== void 0 ? virtualColumns : headerGroup.headers).map((headerOrVirtualHeader, staticColumnIndex) => {
|
3434
3442
|
let header = headerOrVirtualHeader;
|
@@ -3456,7 +3464,7 @@ const MRT_ToolbarAlertBanner = (_a) => {
|
|
3456
3464
|
const selectedRowCount = useMemo(() => manualPagination
|
3457
3465
|
? Object.values(rowSelection).filter(Boolean).length
|
3458
3466
|
: getFilteredSelectedRowModel().rows.length, [rowSelection, totalRowCount, manualPagination]);
|
3459
|
-
const selectedAlert = selectedRowCount > 0 ? (jsxs(Stack, { alignItems: "center", direction: "row", gap: "16px", children: [(_c = (_b = localization.selectedCountOfRowCountRowsSelected) === null || _b === void 0 ? void 0 : _b.replace('{selectedCount}', selectedRowCount.toLocaleString())) === null || _c === void 0 ? void 0 : _c.replace('{rowCount}', totalRowCount.toString()), jsx(Button, { onClick: (event) => getMRT_SelectAllHandler({ table })(event, false), size: "small", sx: { p: '2px' }, children: localization.clearSelection })] })) : null;
|
3467
|
+
const selectedAlert = selectedRowCount > 0 ? (jsxs(Stack, { alignItems: "center", direction: "row", gap: "16px", children: [(_c = (_b = localization.selectedCountOfRowCountRowsSelected) === null || _b === void 0 ? void 0 : _b.replace('{selectedCount}', selectedRowCount.toLocaleString())) === null || _c === void 0 ? void 0 : _c.replace('{rowCount}', totalRowCount.toString()), jsx(Button, { onClick: (event) => getMRT_SelectAllHandler({ table })(event, false, true), size: "small", sx: { p: '2px' }, children: localization.clearSelection })] })) : null;
|
3460
3468
|
const groupedAlert = grouping.length > 0 ? (jsxs("span", { children: [localization.groupedBy, ' ', grouping.map((columnId, index) => (jsxs(Fragment$1, { children: [index > 0 ? localization.thenBy : '', jsx(Chip, Object.assign({ label: table.getColumn(columnId).columnDef.header, onDelete: () => table.getColumn(columnId).toggleGrouping() }, chipProps))] }, `${index}-${columnId}`)))] })) : null;
|
3461
3469
|
return (jsx(Collapse, { in: showAlertBanner || !!selectedAlert || !!groupedAlert, timeout: stackAlertBanner ? 200 : 0, children: jsx(Alert, Object.assign({ color: "info", icon: false }, alertProps, { sx: (theme) => {
|
3462
3470
|
var _a, _b;
|
@@ -3487,7 +3495,7 @@ const MRT_ToolbarAlertBanner = (_a) => {
|
|
3487
3495
|
|
3488
3496
|
const MRT_TableHead = (_a) => {
|
3489
3497
|
var { columnVirtualizer, table } = _a, rest = __rest(_a, ["columnVirtualizer", "table"]);
|
3490
|
-
const {
|
3498
|
+
const { getState, options: { enableStickyHeader, layoutMode, muiTableHeadProps, positionToolbarAlertBanner, }, refs: { tableHeadRef }, } = table;
|
3491
3499
|
const { isFullScreen, showAlertBanner } = getState();
|
3492
3500
|
const tableHeadProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiTableHeadProps, { table })), rest);
|
3493
3501
|
const stickyHeader = enableStickyHeader || isFullScreen;
|
@@ -3498,12 +3506,14 @@ const MRT_TableHead = (_a) => {
|
|
3498
3506
|
tableHeadProps.ref.current = ref;
|
3499
3507
|
}
|
3500
3508
|
}, sx: (theme) => (Object.assign({ display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'grid' : undefined, opacity: 0.97, position: stickyHeader ? 'sticky' : 'relative', top: stickyHeader && (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 0 : undefined, zIndex: stickyHeader ? 2 : undefined }, parseFromValuesOrFunc(tableHeadProps === null || tableHeadProps === void 0 ? void 0 : tableHeadProps.sx, theme))), children: positionToolbarAlertBanner === 'head-overlay' &&
|
3501
|
-
(showAlertBanner || getSelectedRowModel().rows.length > 0) ? (jsx("tr", { style: {
|
3509
|
+
(showAlertBanner || table.getSelectedRowModel().rows.length > 0) ? (jsx("tr", { style: {
|
3502
3510
|
display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'grid' : undefined,
|
3503
3511
|
}, children: jsx("th", { colSpan: table.getVisibleLeafColumns().length, style: {
|
3504
3512
|
display: (layoutMode === null || layoutMode === void 0 ? void 0 : layoutMode.startsWith('grid')) ? 'grid' : undefined,
|
3505
3513
|
padding: 0,
|
3506
|
-
}, children: jsx(MRT_ToolbarAlertBanner, { table: table }) }) })) : (
|
3514
|
+
}, children: jsx(MRT_ToolbarAlertBanner, { table: table }) }) })) : (table
|
3515
|
+
.getHeaderGroups()
|
3516
|
+
.map((headerGroup) => (jsx(MRT_TableHeadRow, { columnVirtualizer: columnVirtualizer, headerGroup: headerGroup, table: table }, headerGroup.id)))) })));
|
3507
3517
|
};
|
3508
3518
|
|
3509
3519
|
const MRT_Table = (_a) => {
|
@@ -3534,11 +3544,11 @@ const MRT_Table = (_a) => {
|
|
3534
3544
|
const MRT_TableLoadingOverlay = (_a) => {
|
3535
3545
|
var _b;
|
3536
3546
|
var { table } = _a, rest = __rest(_a, ["table"]);
|
3537
|
-
const { options: { localization, muiCircularProgressProps }, } = table;
|
3547
|
+
const { options: { localization, mrtTheme: { baseBackgroundColor }, muiCircularProgressProps, }, } = table;
|
3538
3548
|
const circularProgressProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiCircularProgressProps, { table })), rest);
|
3539
|
-
return (jsx(Box, { sx:
|
3549
|
+
return (jsx(Box, { sx: {
|
3540
3550
|
alignItems: 'center',
|
3541
|
-
backgroundColor: alpha(
|
3551
|
+
backgroundColor: alpha(baseBackgroundColor, 0.5),
|
3542
3552
|
bottom: 0,
|
3543
3553
|
display: 'flex',
|
3544
3554
|
justifyContent: 'center',
|
@@ -3549,20 +3559,18 @@ const MRT_TableLoadingOverlay = (_a) => {
|
|
3549
3559
|
top: 0,
|
3550
3560
|
width: '100%',
|
3551
3561
|
zIndex: 3,
|
3552
|
-
}
|
3562
|
+
}, children: (_b = circularProgressProps === null || circularProgressProps === void 0 ? void 0 : circularProgressProps.Component) !== null && _b !== void 0 ? _b : (jsx(CircularProgress, Object.assign({ "aria-label": localization.noRecordsToDisplay, id: "mrt-progress" }, circularProgressProps))) }));
|
3553
3563
|
};
|
3554
3564
|
|
3555
3565
|
const MRT_CellActionMenu = (_a) => {
|
3556
3566
|
var _b, _c;
|
3557
3567
|
var { table } = _a, rest = __rest(_a, ["table"]);
|
3558
|
-
const { getState, options: { editDisplayMode, enableClickToCopy, enableEditing, icons: { ContentCopy, EditIcon }, localization, renderCellActionMenuItems, }, refs: { actionCellRef }, } = table;
|
3568
|
+
const { getState, options: { editDisplayMode, enableClickToCopy, enableEditing, icons: { ContentCopy, EditIcon }, localization, mrtTheme: { menuBackgroundColor }, renderCellActionMenuItems, }, refs: { actionCellRef }, } = table;
|
3559
3569
|
const { actionCell, density } = getState();
|
3560
3570
|
const cell = actionCell;
|
3561
3571
|
const { row } = cell;
|
3562
3572
|
const { column } = cell;
|
3563
3573
|
const { columnDef } = column;
|
3564
|
-
const theme = useTheme();
|
3565
|
-
const { menuBackgroundColor } = getMRTTheme(table, theme);
|
3566
3574
|
const handleClose = (event) => {
|
3567
3575
|
event === null || event === void 0 ? void 0 : event.stopPropagation();
|
3568
3576
|
table.setActionCell(null);
|
@@ -3754,6 +3762,9 @@ const MRT_ToolbarDropZone = (_a) => {
|
|
3754
3762
|
const handleDragEnter = (_event) => {
|
3755
3763
|
setHoveredColumn({ id: 'drop-zone' });
|
3756
3764
|
};
|
3765
|
+
const handleDragOver = (e) => {
|
3766
|
+
e.preventDefault();
|
3767
|
+
};
|
3757
3768
|
useEffect(() => {
|
3758
3769
|
var _a;
|
3759
3770
|
if (((_a = table.options.state) === null || _a === void 0 ? void 0 : _a.showToolbarDropZone) !== undefined) {
|
@@ -3763,7 +3774,7 @@ const MRT_ToolbarDropZone = (_a) => {
|
|
3763
3774
|
!grouping.includes(draggingColumn.id));
|
3764
3775
|
}
|
3765
3776
|
}, [enableGrouping, draggingColumn, grouping]);
|
3766
|
-
return (jsx(Fade, { in: showToolbarDropZone, children: jsx(Box, Object.assign({ className: "Mui-ToolbarDropZone", onDragEnter: handleDragEnter }, rest, { sx: (theme) => (Object.assign({ alignItems: 'center', backdropFilter: 'blur(4px)', backgroundColor: alpha(theme.palette.info.main, (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === 'drop-zone' ? 0.2 : 0.1), border: `dashed ${theme.palette.info.main} 2px`, boxSizing: 'border-box', display: 'flex', height: '100%', justifyContent: 'center', position: 'absolute', width: '100%', zIndex: 4 }, parseFromValuesOrFunc(rest === null || rest === void 0 ? void 0 : rest.sx, theme))), children: jsx(Typography, { fontStyle: "italic", children: localization.dropToGroupBy.replace('{column}', (_c = (_b = draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.columnDef) === null || _b === void 0 ? void 0 : _b.header) !== null && _c !== void 0 ? _c : '') }) })) }));
|
3777
|
+
return (jsx(Fade, { in: showToolbarDropZone, children: jsx(Box, Object.assign({ className: "Mui-ToolbarDropZone", onDragEnter: handleDragEnter, onDragOver: handleDragOver }, rest, { sx: (theme) => (Object.assign({ alignItems: 'center', backdropFilter: 'blur(4px)', backgroundColor: alpha(theme.palette.info.main, (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === 'drop-zone' ? 0.2 : 0.1), border: `dashed ${theme.palette.info.main} 2px`, boxSizing: 'border-box', display: 'flex', height: '100%', justifyContent: 'center', position: 'absolute', width: '100%', zIndex: 4 }, parseFromValuesOrFunc(rest === null || rest === void 0 ? void 0 : rest.sx, theme))), children: jsx(Typography, { fontStyle: "italic", children: localization.dropToGroupBy.replace('{column}', (_c = (_b = draggingColumn === null || draggingColumn === void 0 ? void 0 : draggingColumn.columnDef) === null || _b === void 0 ? void 0 : _b.header) !== null && _c !== void 0 ? _c : '') }) })) }));
|
3767
3778
|
};
|
3768
3779
|
|
3769
3780
|
const MRT_BottomToolbar = (_a) => {
|
@@ -3814,7 +3825,7 @@ const MRT_ColumnPinningButtons = (_a) => {
|
|
3814
3825
|
const MRT_ShowHideColumnsMenuItems = (_a) => {
|
3815
3826
|
var _b;
|
3816
3827
|
var { allColumns, column, hoveredColumn, isNestedColumns, setHoveredColumn, table } = _a, rest = __rest(_a, ["allColumns", "column", "hoveredColumn", "isNestedColumns", "setHoveredColumn", "table"]);
|
3817
|
-
const { getState, options: { enableColumnOrdering, enableColumnPinning, enableHiding, localization, }, setColumnOrder, } = table;
|
3828
|
+
const { getState, options: { enableColumnOrdering, enableColumnPinning, enableHiding, localization, mrtTheme: { draggingBorderColor }, }, setColumnOrder, } = table;
|
3818
3829
|
const { columnOrder } = getState();
|
3819
3830
|
const { columnDef } = column;
|
3820
3831
|
const { columnDefType } = columnDef;
|
@@ -3861,7 +3872,7 @@ const MRT_ShowHideColumnsMenuItems = (_a) => {
|
|
3861
3872
|
return (jsxs(Fragment, { children: [jsx(MenuItem, Object.assign({ disableRipple: true, onDragEnter: handleDragEnter, ref: menuItemRef }, rest, { sx: (theme) => (Object.assign({ alignItems: 'center', justifyContent: 'flex-start', my: 0, opacity: isDragging ? 0.5 : 1, outline: isDragging
|
3862
3873
|
? `2px dashed ${theme.palette.grey[500]}`
|
3863
3874
|
: (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === column.id
|
3864
|
-
? `2px dashed ${
|
3875
|
+
? `2px dashed ${draggingBorderColor}`
|
3865
3876
|
: 'none', outlineOffset: '-2px', pl: `${(column.depth + 0.5) * 2}rem`, py: '6px' }, parseFromValuesOrFunc(rest === null || rest === void 0 ? void 0 : rest.sx, theme))), children: jsxs(Box, { sx: {
|
3866
3877
|
display: 'flex',
|
3867
3878
|
flexWrap: 'nowrap',
|
@@ -3882,7 +3893,7 @@ const MRT_ShowHideColumnsMenuItems = (_a) => {
|
|
3882
3893
|
|
3883
3894
|
const MRT_ShowHideColumnsMenu = (_a) => {
|
3884
3895
|
var { anchorEl, setAnchorEl, table } = _a, rest = __rest(_a, ["anchorEl", "setAnchorEl", "table"]);
|
3885
|
-
const { getAllColumns, getAllLeafColumns, getCenterLeafColumns, getIsAllColumnsVisible, getIsSomeColumnsPinned, getIsSomeColumnsVisible, getLeftLeafColumns, getRightLeafColumns, getState, options: { enableColumnOrdering, enableColumnPinning, enableHiding, localization, }, } = table;
|
3896
|
+
const { getAllColumns, getAllLeafColumns, getCenterLeafColumns, getIsAllColumnsVisible, getIsSomeColumnsPinned, getIsSomeColumnsVisible, getLeftLeafColumns, getRightLeafColumns, getState, options: { enableColumnOrdering, enableColumnPinning, enableHiding, localization, mrtTheme: { menuBackgroundColor }, }, } = table;
|
3886
3897
|
const { columnOrder, columnPinning, density } = getState();
|
3887
3898
|
const handleToggleAllColumns = (value) => {
|
3888
3899
|
getAllLeafColumns()
|
@@ -3910,8 +3921,6 @@ const MRT_ShowHideColumnsMenu = (_a) => {
|
|
3910
3921
|
]);
|
3911
3922
|
const isNestedColumns = allColumns.some((col) => col.columnDef.columnDefType === 'group');
|
3912
3923
|
const [hoveredColumn, setHoveredColumn] = useState(null);
|
3913
|
-
const theme = useTheme();
|
3914
|
-
const { menuBackgroundColor } = getMRTTheme(table, theme);
|
3915
3924
|
return (jsxs(Menu, Object.assign({ MenuListProps: {
|
3916
3925
|
dense: density === 'compact',
|
3917
3926
|
sx: {
|
@@ -4098,7 +4107,7 @@ const MRT_TopToolbar = ({ table, }) => {
|
|
4098
4107
|
const MRT_TablePaper = (_a) => {
|
4099
4108
|
var _b, _c;
|
4100
4109
|
var { table } = _a, rest = __rest(_a, ["table"]);
|
4101
|
-
const { getState, options: { enableBottomToolbar, enableTopToolbar, muiTablePaperProps, renderBottomToolbar, renderTopToolbar, }, refs: { tablePaperRef }, } = table;
|
4110
|
+
const { getState, options: { enableBottomToolbar, enableTopToolbar, mrtTheme: { baseBackgroundColor }, muiTablePaperProps, renderBottomToolbar, renderTopToolbar, }, refs: { tablePaperRef }, } = table;
|
4102
4111
|
const { isFullScreen } = getState();
|
4103
4112
|
const paperProps = Object.assign(Object.assign({}, parseFromValuesOrFunc(muiTablePaperProps, { table })), rest);
|
4104
4113
|
return (jsxs(Paper, Object.assign({ elevation: 2 }, paperProps, { ref: (ref) => {
|
@@ -4110,19 +4119,19 @@ const MRT_TablePaper = (_a) => {
|
|
4110
4119
|
}, style: Object.assign(Object.assign({}, (isFullScreen
|
4111
4120
|
? {
|
4112
4121
|
bottom: 0,
|
4113
|
-
height: '
|
4122
|
+
height: '100dvh',
|
4114
4123
|
left: 0,
|
4115
4124
|
margin: 0,
|
4116
|
-
maxHeight: '
|
4117
|
-
maxWidth: '
|
4125
|
+
maxHeight: '100dvh',
|
4126
|
+
maxWidth: '100dvw',
|
4118
4127
|
padding: 0,
|
4119
4128
|
position: 'fixed',
|
4120
4129
|
right: 0,
|
4121
4130
|
top: 0,
|
4122
|
-
width: '
|
4131
|
+
width: '100dvw',
|
4123
4132
|
zIndex: 999,
|
4124
4133
|
}
|
4125
|
-
: {})), paperProps === null || paperProps === void 0 ? void 0 : paperProps.style), sx: (theme) => (Object.assign({ backgroundColor:
|
4134
|
+
: {})), paperProps === null || paperProps === void 0 ? void 0 : paperProps.style), sx: (theme) => (Object.assign({ backgroundColor: baseBackgroundColor, backgroundImage: 'unset', overflow: 'hidden', transition: 'all 100ms ease-in-out' }, parseFromValuesOrFunc(paperProps === null || paperProps === void 0 ? void 0 : paperProps.sx, theme))), children: [enableTopToolbar &&
|
4126
4135
|
((_b = parseFromValuesOrFunc(renderTopToolbar, { table })) !== null && _b !== void 0 ? _b : (jsx(MRT_TopToolbar, { table: table }))), jsx(MRT_TableContainer, { table: table }), enableBottomToolbar &&
|
4127
4136
|
((_c = parseFromValuesOrFunc(renderBottomToolbar, { table })) !== null && _c !== void 0 ? _c : (jsx(MRT_BottomToolbar, { table: table })))] })));
|
4128
4137
|
};
|
@@ -4139,5 +4148,5 @@ const MaterialReactTable = (props) => {
|
|
4139
4148
|
return jsx(MRT_TablePaper, { table: table });
|
4140
4149
|
};
|
4141
4150
|
|
4142
|
-
export { MRT_ActionMenuItem, MRT_AggregationFns, MRT_BottomToolbar, MRT_ColumnActionMenu, MRT_ColumnPinningButtons, MRT_CopyButton, MRT_DefaultColumn, MRT_DefaultDisplayColumn, MRT_EditActionButtons, MRT_EditCellTextField, MRT_EditRowModal, MRT_ExpandAllButton, MRT_ExpandButton, MRT_FilterCheckbox, MRT_FilterFns, MRT_FilterOptionMenu, MRT_FilterRangeFields, MRT_FilterRangeSlider, MRT_FilterTextField, MRT_GlobalFilterTextField, MRT_GrabHandleButton, MRT_LinearProgressBar, MRT_RowActionMenu, MRT_RowPinButton, MRT_SelectCheckbox, MRT_ShowHideColumnsButton, MRT_ShowHideColumnsMenu, MRT_ShowHideColumnsMenuItems, MRT_SortingFns, MRT_Table, MRT_TableBody, MRT_TableBodyCell, MRT_TableBodyCellValue, MRT_TableBodyRow, MRT_TableBodyRowGrabHandle, MRT_TableBodyRowPinButton, MRT_TableContainer, MRT_TableDetailPanel, MRT_TableFooter, MRT_TableFooterCell, MRT_TableFooterRow, MRT_TableHead, MRT_TableHeadCell, MRT_TableHeadCellColumnActionsButton, MRT_TableHeadCellFilterContainer, MRT_TableHeadCellFilterLabel, MRT_TableHeadCellGrabHandle, MRT_TableHeadCellResizeHandle, MRT_TableHeadCellSortLabel, MRT_TableHeadRow, MRT_TableLoadingOverlay, MRT_TablePagination, MRT_TablePaper, MRT_ToggleDensePaddingButton, MRT_ToggleFiltersButton, MRT_ToggleFullScreenButton, MRT_ToggleGlobalFilterButton, MRT_ToggleRowActionMenuButton, MRT_ToolbarAlertBanner, MRT_ToolbarDropZone, MRT_ToolbarInternalButtons, MRT_TopToolbar, MaterialReactTable, Memo_MRT_TableBody, Memo_MRT_TableBodyCell, Memo_MRT_TableBodyRow, createMRTColumnHelper, createRow, defaultDisplayColumnProps, flexRender, getAllLeafColumnDefs, getCanRankRows, getColumnId, getDefaultColumnFilterFn, getDefaultColumnOrderIds,
|
4151
|
+
export { MRT_ActionMenuItem, MRT_AggregationFns, MRT_BottomToolbar, MRT_ColumnActionMenu, MRT_ColumnPinningButtons, MRT_CopyButton, MRT_DefaultColumn, MRT_DefaultDisplayColumn, MRT_EditActionButtons, MRT_EditCellTextField, MRT_EditRowModal, MRT_ExpandAllButton, MRT_ExpandButton, MRT_FilterCheckbox, MRT_FilterFns, MRT_FilterOptionMenu, MRT_FilterRangeFields, MRT_FilterRangeSlider, MRT_FilterTextField, MRT_GlobalFilterTextField, MRT_GrabHandleButton, MRT_LinearProgressBar, MRT_RowActionMenu, MRT_RowPinButton, MRT_SelectCheckbox, MRT_ShowHideColumnsButton, MRT_ShowHideColumnsMenu, MRT_ShowHideColumnsMenuItems, MRT_SortingFns, MRT_Table, MRT_TableBody, MRT_TableBodyCell, MRT_TableBodyCellValue, MRT_TableBodyRow, MRT_TableBodyRowGrabHandle, MRT_TableBodyRowPinButton, MRT_TableContainer, MRT_TableDetailPanel, MRT_TableFooter, MRT_TableFooterCell, MRT_TableFooterRow, MRT_TableHead, MRT_TableHeadCell, MRT_TableHeadCellColumnActionsButton, MRT_TableHeadCellFilterContainer, MRT_TableHeadCellFilterLabel, MRT_TableHeadCellGrabHandle, MRT_TableHeadCellResizeHandle, MRT_TableHeadCellSortLabel, MRT_TableHeadRow, MRT_TableLoadingOverlay, MRT_TablePagination, MRT_TablePaper, MRT_ToggleDensePaddingButton, MRT_ToggleFiltersButton, MRT_ToggleFullScreenButton, MRT_ToggleGlobalFilterButton, MRT_ToggleRowActionMenuButton, MRT_ToolbarAlertBanner, MRT_ToolbarDropZone, MRT_ToolbarInternalButtons, MRT_TopToolbar, MaterialReactTable, Memo_MRT_TableBody, Memo_MRT_TableBodyCell, Memo_MRT_TableBodyRow, createMRTColumnHelper, createRow, defaultDisplayColumnProps, flexRender, getAllLeafColumnDefs, getCanRankRows, getColumnFilterInfo, getColumnId, getDefaultColumnFilterFn, getDefaultColumnOrderIds, getIsRankingRows, getIsRowSelected, getLeadingDisplayColumnIds, getMRT_RowSelectionHandler, getMRT_Rows, getMRT_SelectAllHandler, getTrailingDisplayColumnIds, isCellEditable, mrtFilterOptions, openEditingCell, prepareColumns, rankGlobalFuzzy, reorderColumn, showRowActionsColumn, showRowDragColumn, showRowExpandColumn, showRowNumbersColumn, showRowPinningColumn, showRowSelectionColumn, showRowSpacerColumn, useDropdownOptions, useMRT_ColumnVirtualizer, useMRT_Effects, useMRT_RowVirtualizer, useMRT_Rows, useMRT_TableInstance, useMRT_TableOptions, useMaterialReactTable };
|
4143
4152
|
//# sourceMappingURL=index.esm.js.map
|