material-react-table 0.14.3 → 0.14.6

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.
@@ -1,8 +1,8 @@
1
1
  import React, { useMemo, forwardRef, useState, useCallback, Fragment, useLayoutEffect, useEffect } from 'react';
2
2
  import { ArrowRight, Cancel, CheckBox, ClearAll, Close, DensityLarge, DensityMedium, DensitySmall, DragHandle, DynamicFeed, Edit, ExpandLess, ExpandMore, FilterAlt, FilterAltOff, FilterList, FilterListOff, FullscreenExit, Fullscreen, KeyboardDoubleArrowDown, MoreHoriz, MoreVert, PushPin, RestartAlt, Save, Search, SearchOff, Sort, ViewColumn, VisibilityOff } from '@mui/icons-material';
3
- import { createTable, getCoreRowModel, getExpandedRowModel, getFacetedRowModel, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, useTableInstance } from '@tanstack/react-table';
4
- import { Tooltip, IconButton, Menu, MenuItem, Box, FormControlLabel, Switch, Button, Divider, ListItemIcon, Checkbox, debounce, Collapse, TextField, InputAdornment, TablePagination, Chip, Alert, LinearProgress, useMediaQuery, Toolbar, lighten, alpha, TableSortLabel, TableCell, TableRow, TableHead, darken, Skeleton, TableBody, TableFooter, Table, TableContainer, Paper, Dialog, Grow } from '@mui/material';
5
- import { rankItem, rankings } from '@tanstack/match-sorter-utils';
3
+ import { sortingFns, createTable, filterFns, getCoreRowModel, getExpandedRowModel, getFacetedRowModel, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, useTableInstance } from '@tanstack/react-table';
4
+ import { Tooltip, IconButton, Menu, MenuItem, Box, FormControlLabel, Switch, Button, Divider, ListItemIcon, Checkbox, debounce, Collapse, TextField, InputAdornment, TablePagination, Chip, Alert, LinearProgress, useMediaQuery, Toolbar, lighten, alpha, Grow, TableSortLabel, TableCell, TableRow, TableHead, darken, Skeleton, TableBody, TableFooter, Table, TableContainer, Paper, Dialog } from '@mui/material';
5
+ import { rankItem, rankings, compareItems } from '@tanstack/match-sorter-utils';
6
6
  import { useDrop, useDrag, DndProvider } from 'react-dnd';
7
7
  import { HTML5Backend } from 'react-dnd-html5-backend';
8
8
  import { useVirtual } from 'react-virtual';
@@ -329,7 +329,7 @@ notEmpty.autoRemove = function (val) {
329
329
  return !val;
330
330
  };
331
331
 
332
- var defaultFilterFNs = {
332
+ var MRT_FilterFns = {
333
333
  between: between,
334
334
  contains: contains,
335
335
  empty: empty,
@@ -616,7 +616,7 @@ var createDataColumn = function createDataColumn(table, column, currentFilterFns
616
616
  return (// @ts-ignore
617
617
  table.createDataColumn(column.id, _extends({
618
618
  filterFn: currentFilterFns[column.id] instanceof Function ? currentFilterFns[column.id] : // @ts-ignore
619
- defaultFilterFNs[currentFilterFns[column.id]]
619
+ MRT_FilterFns[currentFilterFns[column.id]]
620
620
  }, column))
621
621
  );
622
622
  };
@@ -1539,19 +1539,22 @@ var MRT_ToggleGlobalFilterButton = function MRT_ToggleGlobalFilterButton(_ref) {
1539
1539
  }, rest), showGlobalFilter ? React.createElement(SearchOffIcon, null) : React.createElement(SearchIcon, null)));
1540
1540
  };
1541
1541
 
1542
- var MRT_SearchTextField = function MRT_SearchTextField(_ref) {
1542
+ var MRT_GlobalFilterTextField = function MRT_GlobalFilterTextField(_ref) {
1543
+ var _localization$clearSe;
1544
+
1543
1545
  var instance = _ref.instance;
1544
1546
  var getState = instance.getState,
1545
1547
  setGlobalFilter = instance.setGlobalFilter,
1546
1548
  _instance$options = instance.options,
1549
+ enableGlobalFilterChangeMode = _instance$options.enableGlobalFilterChangeMode,
1547
1550
  _instance$options$ico = _instance$options.icons,
1548
1551
  SearchIcon = _instance$options$ico.SearchIcon,
1549
1552
  CloseIcon = _instance$options$ico.CloseIcon,
1550
- tableId = _instance$options.tableId,
1551
1553
  localization = _instance$options.localization,
1552
1554
  muiSearchTextFieldProps = _instance$options.muiSearchTextFieldProps,
1553
1555
  onGlobalFilterValueChanged = _instance$options.onGlobalFilterValueChanged,
1554
- onGlobalFilterValueChangedDebounced = _instance$options.onGlobalFilterValueChangedDebounced;
1556
+ onGlobalFilterValueChangedDebounced = _instance$options.onGlobalFilterValueChangedDebounced,
1557
+ tableId = _instance$options.tableId;
1555
1558
 
1556
1559
  var _getState = getState(),
1557
1560
  globalFilter = _getState.globalFilter,
@@ -1606,7 +1609,7 @@ var MRT_SearchTextField = function MRT_SearchTextField(_ref) {
1606
1609
  value: searchValue != null ? searchValue : '',
1607
1610
  variant: "standard",
1608
1611
  InputProps: {
1609
- startAdornment: React.createElement(InputAdornment, {
1612
+ startAdornment: enableGlobalFilterChangeMode ? React.createElement(InputAdornment, {
1610
1613
  position: "start"
1611
1614
  }, React.createElement(Tooltip, {
1612
1615
  arrow: true,
@@ -1619,16 +1622,18 @@ var MRT_SearchTextField = function MRT_SearchTextField(_ref) {
1619
1622
  height: '1.75rem',
1620
1623
  width: '1.75rem'
1621
1624
  }
1622
- }, React.createElement(SearchIcon, null)))),
1625
+ }, React.createElement(SearchIcon, null)))) : React.createElement(SearchIcon, null),
1623
1626
  endAdornment: React.createElement(InputAdornment, {
1624
1627
  position: "end"
1625
- }, React.createElement(IconButton, {
1628
+ }, React.createElement(Tooltip, {
1629
+ arrow: true,
1630
+ title: (_localization$clearSe = localization.clearSearch) != null ? _localization$clearSe : ''
1631
+ }, React.createElement("span", null, React.createElement(IconButton, {
1626
1632
  "aria-label": localization.clearSearch,
1627
- disabled: (searchValue == null ? void 0 : searchValue.length) === 0,
1633
+ disabled: !(searchValue != null && searchValue.length),
1628
1634
  onClick: handleClear,
1629
- size: "small",
1630
- title: localization.clearSearch
1631
- }, React.createElement(CloseIcon, null)))
1635
+ size: "small"
1636
+ }, React.createElement(CloseIcon, null)))))
1632
1637
  }
1633
1638
  }, textFieldProps)), React.createElement(MRT_FilterOptionMenu, {
1634
1639
  anchorEl: anchorEl,
@@ -1663,7 +1668,7 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons(_ref) {
1663
1668
  MRT_ToggleFiltersButton: MRT_ToggleFiltersButton,
1664
1669
  MRT_ToggleGlobalFilterButton: MRT_ToggleGlobalFilterButton,
1665
1670
  instance: instance
1666
- })) != null ? _renderToolbarInterna : React.createElement(React.Fragment, null, enableGlobalFilter && positionGlobalFilter === 'right' && React.createElement(MRT_SearchTextField, {
1671
+ })) != null ? _renderToolbarInterna : React.createElement(React.Fragment, null, enableGlobalFilter && positionGlobalFilter === 'right' && React.createElement(MRT_GlobalFilterTextField, {
1667
1672
  instance: instance
1668
1673
  }), enableFilters && enableGlobalFilter && React.createElement(MRT_ToggleGlobalFilterButton, {
1669
1674
  instance: instance
@@ -1889,13 +1894,13 @@ var MRT_ToolbarTop = function MRT_ToolbarTop(_ref2) {
1889
1894
  top: 0,
1890
1895
  width: '100%'
1891
1896
  }
1892
- }, enableGlobalFilter && positionGlobalFilter === 'left' && React.createElement(MRT_SearchTextField, {
1897
+ }, enableGlobalFilter && positionGlobalFilter === 'left' && React.createElement(MRT_GlobalFilterTextField, {
1893
1898
  instance: instance
1894
1899
  }), (_renderToolbarTopCust = renderToolbarTopCustomActions == null ? void 0 : renderToolbarTopCustomActions({
1895
1900
  instance: instance
1896
1901
  })) != null ? _renderToolbarTopCust : React.createElement("span", null), enableToolbarInternalActions ? React.createElement(MRT_ToolbarInternalButtons, {
1897
1902
  instance: instance
1898
- }) : enableGlobalFilter && positionGlobalFilter === 'right' && React.createElement(MRT_SearchTextField, {
1903
+ }) : enableGlobalFilter && positionGlobalFilter === 'right' && React.createElement(MRT_GlobalFilterTextField, {
1899
1904
  instance: instance
1900
1905
  })), enablePagination && ['top', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, {
1901
1906
  instance: instance,
@@ -1972,13 +1977,14 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
1972
1977
  };
1973
1978
 
1974
1979
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1975
- var _localization$filterB, _columnDef$enabledCol, _allowedColumnFilterO, _localization$filterM, _localization$, _allowedColumnFilterO2, _localization$clearFi, _columnDef$filterSele;
1980
+ var _localization$filterB, _columnDef$enabledCol, _allowedColumnFilterO, _localization$filterM, _localization$, _localization$clearFi, _columnDef$filterSele;
1976
1981
 
1977
1982
  var header = _ref.header,
1978
1983
  inputIndex = _ref.inputIndex,
1979
1984
  instance = _ref.instance;
1980
1985
  var getState = instance.getState,
1981
1986
  _instance$options = instance.options,
1987
+ enableColumnFilterChangeMode = _instance$options.enableColumnFilterChangeMode,
1982
1988
  enabledColumnFilterOptions = _instance$options.enabledColumnFilterOptions,
1983
1989
  _instance$options$ico = _instance$options.icons,
1984
1990
  FilterListIcon = _instance$options$ico.FilterListIcon,
@@ -2104,6 +2110,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
2104
2110
  localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))] : '';
2105
2111
  var filterPlaceholder = inputIndex === undefined ? (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(columnDef.header)) : inputIndex === 0 ? localization.min : inputIndex === 1 ? localization.max : '';
2106
2112
  var allowedColumnFilterOptions = (_columnDef$enabledCol = columnDef == null ? void 0 : columnDef.enabledColumnFilterOptions) != null ? _columnDef$enabledCol : enabledColumnFilterOptions;
2113
+ var allowColumnChangeMode = enableColumnFilterChangeMode && columnDef.enableColumnFilterChangeMode !== false;
2107
2114
  return React.createElement(React.Fragment, null, React.createElement(TextField, Object.assign({
2108
2115
  fullWidth: true,
2109
2116
  id: filterId,
@@ -2115,7 +2122,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
2115
2122
  },
2116
2123
  title: filterPlaceholder
2117
2124
  },
2118
- helperText: !inputIndex && (allowedColumnFilterOptions === undefined || ((_allowedColumnFilterO = allowedColumnFilterOptions == null ? void 0 : allowedColumnFilterOptions.length) != null ? _allowedColumnFilterO : 0) > 0) ? React.createElement("label", {
2125
+ helperText: allowColumnChangeMode && !inputIndex && (allowedColumnFilterOptions === undefined || ((_allowedColumnFilterO = allowedColumnFilterOptions == null ? void 0 : allowedColumnFilterOptions.length) != null ? _allowedColumnFilterO : 0) > 0) ? React.createElement("label", {
2119
2126
  htmlFor: filterId
2120
2127
  }, filterFn instanceof Function ? (_localization$filterM = localization.filterMode.replace('{filterType}', // @ts-ignore
2121
2128
  (_localization$ = localization["filter" + (filterFn.name.charAt(0).toUpperCase() + filterFn.name.slice(1))]) != null ? _localization$ : '')) != null ? _localization$filterM : '' : localization.filterMode.replace('{filterType}', // @ts-ignore
@@ -2127,7 +2134,6 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
2127
2134
  whiteSpace: 'nowrap'
2128
2135
  }
2129
2136
  },
2130
- label: isSelectFilter && !filterValue ? filterPlaceholder : undefined,
2131
2137
  margin: "none",
2132
2138
  placeholder: filterChipLabel || isSelectFilter ? undefined : filterPlaceholder,
2133
2139
  onChange: handleChange,
@@ -2138,7 +2144,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
2138
2144
  value: filterValue != null ? filterValue : '',
2139
2145
  variant: "standard",
2140
2146
  InputProps: {
2141
- startAdornment: !isSelectFilter && !inputIndex && (allowedColumnFilterOptions === undefined || ((_allowedColumnFilterO2 = allowedColumnFilterOptions == null ? void 0 : allowedColumnFilterOptions.length) != null ? _allowedColumnFilterO2 : 0) > 0) && React.createElement(InputAdornment, {
2147
+ startAdornment: allowColumnChangeMode && !isSelectFilter && !inputIndex && (allowedColumnFilterOptions === undefined || !!(allowedColumnFilterOptions != null && allowedColumnFilterOptions.length)) ? React.createElement(InputAdornment, {
2142
2148
  position: "start"
2143
2149
  }, React.createElement(Tooltip, {
2144
2150
  arrow: true,
@@ -2154,7 +2160,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
2154
2160
  }, React.createElement(FilterListIcon, null)))), filterChipLabel && React.createElement(Chip, {
2155
2161
  onDelete: handleClearFilterChip,
2156
2162
  label: filterChipLabel
2157
- })),
2163
+ })) : React.createElement(FilterListIcon, null),
2158
2164
  endAdornment: !filterChipLabel && React.createElement(InputAdornment, {
2159
2165
  position: "end"
2160
2166
  }, React.createElement(Tooltip, {
@@ -2179,7 +2185,6 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
2179
2185
  p: 0,
2180
2186
  minWidth: !filterChipLabel ? '8rem' : 'auto',
2181
2187
  width: 'calc(100% + 0.5rem)',
2182
- mt: isSelectFilter && !filterValue ? '-1rem' : undefined,
2183
2188
  '& .MuiSelect-icon': {
2184
2189
  mr: '1.5rem'
2185
2190
  }
@@ -2262,27 +2267,28 @@ var MRT_TableHeadCellFilterContainer = function MRT_TableHeadCellFilterContainer
2262
2267
  };
2263
2268
 
2264
2269
  var MRT_TableHeadCellFilterLabel = function MRT_TableHeadCellFilterLabel(_ref) {
2265
- var _getState2, _getState2$currentFil;
2270
+ var _column$getFilterValu, _column$getFilterValu2;
2266
2271
 
2267
2272
  var header = _ref.header,
2268
2273
  instance = _ref.instance;
2269
2274
  var getState = instance.getState,
2270
2275
  _instance$options = instance.options,
2271
- _instance$options$ico = _instance$options.icons,
2272
- FilterAltIcon = _instance$options$ico.FilterAltIcon,
2273
- FilterAltOffIcon = _instance$options$ico.FilterAltOffIcon,
2274
- localization = _instance$options.localization,
2275
- setShowFilters = instance.setShowFilters;
2276
+ FilterAltIcon = _instance$options.icons.FilterAltIcon,
2277
+ localization = _instance$options.localization;
2276
2278
 
2277
2279
  var _getState = getState(),
2278
- showFilters = _getState.showFilters;
2280
+ currentFilterFns = _getState.currentFilterFns;
2279
2281
 
2280
2282
  var column = header.column;
2281
2283
  var columnDef = column.columnDef;
2282
- var filterFn = (_getState2 = getState()) == null ? void 0 : (_getState2$currentFil = _getState2.currentFilterFns) == null ? void 0 : _getState2$currentFil[header.id];
2283
- var filterTooltip = !!column.getFilterValue() ? localization.filteringByColumn.replace('{column}', String(columnDef.header)).replace('{filterType}', filterFn instanceof Function ? '' : // @ts-ignore
2284
- localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))]).replace('{filterValue}', "\"" + (Array.isArray(column.getFilterValue()) ? column.getFilterValue().join("\" " + localization.and + " \"") : column.getFilterValue()) + "\"").replace('" "', '') : localization.showHideFilters;
2285
- return React.createElement(Tooltip, {
2284
+ var filterFn = currentFilterFns == null ? void 0 : currentFilterFns[header.id];
2285
+ var filterTooltip = localization.filteringByColumn.replace('{column}', String(columnDef.header)).replace('{filterType}', filterFn instanceof Function ? '' : // @ts-ignore
2286
+ localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))]).replace('{filterValue}', "\"" + (Array.isArray(column.getFilterValue()) ? column.getFilterValue().join("\" " + localization.and + " \"") : column.getFilterValue()) + "\"").replace('" "', '');
2287
+ return React.createElement(Grow, {
2288
+ unmountOnExit: true,
2289
+ "in": !!column.getFilterValue() && filterFn !== 'between' || filterFn === 'between' && ( // @ts-ignore
2290
+ !!((_column$getFilterValu = column.getFilterValue()) != null && _column$getFilterValu[0]) || !!((_column$getFilterValu2 = column.getFilterValue()) != null && _column$getFilterValu2[1]))
2291
+ }, React.createElement("span", null, React.createElement(Tooltip, {
2286
2292
  arrow: true,
2287
2293
  placement: "top",
2288
2294
  title: filterTooltip
@@ -2290,22 +2296,16 @@ var MRT_TableHeadCellFilterLabel = function MRT_TableHeadCellFilterLabel(_ref) {
2290
2296
  disableRipple: true,
2291
2297
  onClick: function onClick(event) {
2292
2298
  event.stopPropagation();
2293
- setShowFilters(!showFilters);
2294
2299
  },
2295
2300
  size: "small",
2296
2301
  sx: {
2297
2302
  m: 0,
2298
- opacity: !!column.getFilterValue() || showFilters ? 0.8 : 0,
2303
+ opacity: 0.8,
2299
2304
  p: '2px',
2300
- transition: 'all 0.2s ease-in-out',
2301
2305
  transform: 'scale(0.66)',
2302
- '&:hover': {
2303
- backgroundColor: 'transparent',
2304
- opacity: 0.8
2305
- },
2306
2306
  width: '1.5ch'
2307
2307
  }
2308
- }, showFilters && !column.getFilterValue() ? React.createElement(FilterAltOffIcon, null) : React.createElement(FilterAltIcon, null)));
2308
+ }, React.createElement(FilterAltIcon, null)))));
2309
2309
  };
2310
2310
 
2311
2311
  var MRT_TableHeadCellResizeHandle = function MRT_TableHeadCellResizeHandle(_ref) {
@@ -2440,20 +2440,21 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2440
2440
  var dragRef = _ref.dragRef,
2441
2441
  dropRef = _ref.dropRef,
2442
2442
  header = _ref.header,
2443
+ instance = _ref.instance,
2443
2444
  isDragging = _ref.isDragging,
2444
- previewRef = _ref.previewRef,
2445
- instance = _ref.instance;
2445
+ previewRef = _ref.previewRef;
2446
2446
  var getState = instance.getState,
2447
2447
  _instance$options = instance.options,
2448
2448
  enableColumnActions = _instance$options.enableColumnActions,
2449
- enableColumnFilters = _instance$options.enableColumnFilters,
2450
2449
  enableColumnOrdering = _instance$options.enableColumnOrdering,
2451
2450
  enableColumnResizing = _instance$options.enableColumnResizing,
2452
2451
  enableGrouping = _instance$options.enableGrouping,
2452
+ enableMultiSort = _instance$options.enableMultiSort,
2453
2453
  muiTableHeadCellProps = _instance$options.muiTableHeadCellProps;
2454
2454
 
2455
2455
  var _getState = getState(),
2456
- density = _getState.density;
2456
+ density = _getState.density,
2457
+ showFilters = _getState.showFilters;
2457
2458
 
2458
2459
  var column = header.column;
2459
2460
  var columnDef = column.columnDef,
@@ -2508,7 +2509,8 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2508
2509
  pt: columnDefType !== 'data' ? 0 : density === 'compact' ? '0.25' : density === 'comfortable' ? '.75rem' : '1.25rem',
2509
2510
  right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
2510
2511
  transition: "all " + (enableColumnResizing ? 0 : '0.2s') + " ease-in-out",
2511
- verticalAlign: 'text-top',
2512
+ userSelect: enableMultiSort ? 'none' : undefined,
2513
+ verticalAlign: columnDefType === 'display' && showFilters ? 'center' : 'text-top',
2512
2514
  zIndex: column.getIsResizing() ? 3 : column.getIsPinned() && columnDefType !== 'group' ? 2 : 1
2513
2515
  }, tableCellProps == null ? void 0 : tableCellProps.sx, {
2514
2516
  maxWidth: "min(" + column.getSize() + "px, fit-content)",
@@ -2527,9 +2529,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2527
2529
  width: '100%'
2528
2530
  }
2529
2531
  }, React.createElement(Box, {
2530
- onClick: function onClick() {
2531
- return column.toggleSorting();
2532
- },
2532
+ onClick: column.getToggleSortingHandler(),
2533
2533
  sx: {
2534
2534
  alignItems: 'center',
2535
2535
  cursor: column.getCanSort() && columnDefType !== 'group' ? 'pointer' : undefined,
@@ -2540,7 +2540,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2540
2540
  }, headerElement, columnDefType === 'data' && column.getCanSort() && React.createElement(MRT_TableHeadCellSortLabel, {
2541
2541
  header: header,
2542
2542
  instance: instance
2543
- }), columnDefType === 'data' && enableColumnFilters && column.getCanFilter() && React.createElement(MRT_TableHeadCellFilterLabel, {
2543
+ }), columnDefType === 'data' && column.getCanFilter() && React.createElement(MRT_TableHeadCellFilterLabel, {
2544
2544
  header: header,
2545
2545
  instance: instance
2546
2546
  })), React.createElement(Box, {
@@ -3306,6 +3306,21 @@ var MRT_TablePaper = function MRT_TablePaper(_ref) {
3306
3306
  })));
3307
3307
  };
3308
3308
 
3309
+ var fuzzy$1 = function fuzzy(rowA, rowB, columnId) {
3310
+ var dir = 0;
3311
+
3312
+ if (rowA.columnFiltersMeta[columnId]) {
3313
+ dir = compareItems(rowA.columnFiltersMeta[columnId], rowB.columnFiltersMeta[columnId]);
3314
+ } // Provide a fallback for when the item ranks are equal
3315
+
3316
+
3317
+ return dir === 0 ? sortingFns.alphanumeric(rowA, rowB, columnId) : dir;
3318
+ };
3319
+
3320
+ var MRT_SortingFns = {
3321
+ fuzzy: fuzzy$1
3322
+ };
3323
+
3309
3324
  var MRT_TableRoot = function MRT_TableRoot(props) {
3310
3325
  var _initialState$columnO, _initialState$current, _initialState$current2, _initialState$density, _initialState$isFullS, _initialState$showFil, _initialState$showGlo, _props$globalFilterFn, _props$state3, _props$state4, _props$onCurrentEditi, _props$onCurrentEditi2, _props$onCurrentFilte, _props$onCurrentGloba, _props$onDensityChang, _props$onIsFullScreen, _props$onShowFiltersC, _props$onShowGlobalFi;
3311
3326
 
@@ -3394,8 +3409,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3394
3409
  var table = useMemo(function () {
3395
3410
  return (// @ts-ignore
3396
3411
  createTable().setOptions({
3397
- //@ts-ignore
3398
- filterFns: defaultFilterFNs,
3412
+ filterFns: _extends({}, filterFns, MRT_FilterFns, props.filterFns),
3399
3413
  getCoreRowModel: getCoreRowModel(),
3400
3414
  getExpandedRowModel: getExpandedRowModel(),
3401
3415
  getFacetedRowModel: getFacetedRowModel(),
@@ -3403,10 +3417,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3403
3417
  getGroupedRowModel: getGroupedRowModel(),
3404
3418
  getPaginationRowModel: getPaginationRowModel(),
3405
3419
  getSortedRowModel: getSortedRowModel(),
3406
- getSubRows: function getSubRows(row) {
3407
- return row == null ? void 0 : row.subRows;
3408
- },
3409
- tableId: tableId
3420
+ sortingFns: _extends({}, sortingFns, MRT_SortingFns, props.sortingFns)
3410
3421
  })
3411
3422
  );
3412
3423
  }, []);
@@ -3503,6 +3514,9 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3503
3514
  //@ts-ignore
3504
3515
  columns: columns,
3505
3516
  data: data,
3517
+ getSubRows: function getSubRows(row) {
3518
+ return row == null ? void 0 : row.subRows;
3519
+ },
3506
3520
  //@ts-ignore
3507
3521
  globalFilterFn: currentGlobalFilterFn,
3508
3522
  initialState: initialState,
@@ -3516,7 +3530,8 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3516
3530
  isFullScreen: isFullScreen,
3517
3531
  showFilters: showFilters,
3518
3532
  showGlobalFilter: showGlobalFilter
3519
- }, props.state)
3533
+ }, props.state),
3534
+ tableId: tableId
3520
3535
  })), {
3521
3536
  setCurrentEditingCell: (_props$onCurrentEditi = props.onCurrentEditingCellChange) != null ? _props$onCurrentEditi : setCurrentEditingCell,
3522
3537
  setCurrentEditingRow: (_props$onCurrentEditi2 = props.onCurrentEditingRowChange) != null ? _props$onCurrentEditi2 : setCurrentEditingRow,
@@ -3568,7 +3583,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3568
3583
  }));
3569
3584
  };
3570
3585
 
3571
- var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "rowNumberMode", "selectAllMode"];
3586
+ var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilterChangeMode", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterChangeMode", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "rowNumberMode", "selectAllMode"];
3572
3587
  var MaterialReactTable = (function (_ref) {
3573
3588
  var _ref$autoResetExpande = _ref.autoResetExpanded,
3574
3589
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
@@ -3584,8 +3599,10 @@ var MaterialReactTable = (function (_ref) {
3584
3599
  editingMode = _ref$editingMode === void 0 ? 'row' : _ref$editingMode,
3585
3600
  _ref$enableColumnActi = _ref.enableColumnActions,
3586
3601
  enableColumnActions = _ref$enableColumnActi === void 0 ? true : _ref$enableColumnActi,
3587
- _ref$enableColumnFilt = _ref.enableColumnFilters,
3588
- enableColumnFilters = _ref$enableColumnFilt === void 0 ? true : _ref$enableColumnFilt,
3602
+ _ref$enableColumnFilt = _ref.enableColumnFilterChangeMode,
3603
+ enableColumnFilterChangeMode = _ref$enableColumnFilt === void 0 ? true : _ref$enableColumnFilt,
3604
+ _ref$enableColumnFilt2 = _ref.enableColumnFilters,
3605
+ enableColumnFilters = _ref$enableColumnFilt2 === void 0 ? true : _ref$enableColumnFilt2,
3589
3606
  _ref$enableColumnOrde = _ref.enableColumnOrdering,
3590
3607
  enableColumnOrdering = _ref$enableColumnOrde === void 0 ? false : _ref$enableColumnOrde,
3591
3608
  _ref$enableColumnResi = _ref.enableColumnResizing,
@@ -3600,6 +3617,8 @@ var MaterialReactTable = (function (_ref) {
3600
3617
  enableFullScreenToggle = _ref$enableFullScreen === void 0 ? true : _ref$enableFullScreen,
3601
3618
  _ref$enableGlobalFilt = _ref.enableGlobalFilter,
3602
3619
  enableGlobalFilter = _ref$enableGlobalFilt === void 0 ? true : _ref$enableGlobalFilt,
3620
+ _ref$enableGlobalFilt2 = _ref.enableGlobalFilterChangeMode,
3621
+ enableGlobalFilterChangeMode = _ref$enableGlobalFilt2 === void 0 ? true : _ref$enableGlobalFilt2,
3603
3622
  _ref$enableGrouping = _ref.enableGrouping,
3604
3623
  enableGrouping = _ref$enableGrouping === void 0 ? false : _ref$enableGrouping,
3605
3624
  _ref$enableHiding = _ref.enableHiding,
@@ -3652,6 +3671,7 @@ var MaterialReactTable = (function (_ref) {
3652
3671
  defaultColumn: defaultColumn,
3653
3672
  editingMode: editingMode,
3654
3673
  enableColumnActions: enableColumnActions,
3674
+ enableColumnFilterChangeMode: enableColumnFilterChangeMode,
3655
3675
  enableColumnFilters: enableColumnFilters,
3656
3676
  enableColumnOrdering: enableColumnOrdering,
3657
3677
  enableColumnResizing: enableColumnResizing,
@@ -3660,6 +3680,7 @@ var MaterialReactTable = (function (_ref) {
3660
3680
  enableFilters: enableFilters,
3661
3681
  enableFullScreenToggle: enableFullScreenToggle,
3662
3682
  enableGlobalFilter: enableGlobalFilter,
3683
+ enableGlobalFilterChangeMode: enableGlobalFilterChangeMode,
3663
3684
  enableGrouping: enableGrouping,
3664
3685
  enableHiding: enableHiding,
3665
3686
  enableMultiRowSelection: enableMultiRowSelection,