material-react-table 0.14.3 → 0.14.4

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,7 +1,7 @@
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
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';
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
5
  import { rankItem, rankings } from '@tanstack/match-sorter-utils';
6
6
  import { useDrop, useDrag, DndProvider } from 'react-dnd';
7
7
  import { HTML5Backend } from 'react-dnd-html5-backend';
@@ -2262,27 +2262,28 @@ var MRT_TableHeadCellFilterContainer = function MRT_TableHeadCellFilterContainer
2262
2262
  };
2263
2263
 
2264
2264
  var MRT_TableHeadCellFilterLabel = function MRT_TableHeadCellFilterLabel(_ref) {
2265
- var _getState2, _getState2$currentFil;
2265
+ var _column$getFilterValu, _column$getFilterValu2;
2266
2266
 
2267
2267
  var header = _ref.header,
2268
2268
  instance = _ref.instance;
2269
2269
  var getState = instance.getState,
2270
2270
  _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;
2271
+ FilterAltIcon = _instance$options.icons.FilterAltIcon,
2272
+ localization = _instance$options.localization;
2276
2273
 
2277
2274
  var _getState = getState(),
2278
- showFilters = _getState.showFilters;
2275
+ currentFilterFns = _getState.currentFilterFns;
2279
2276
 
2280
2277
  var column = header.column;
2281
2278
  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, {
2279
+ var filterFn = currentFilterFns == null ? void 0 : currentFilterFns[header.id];
2280
+ var filterTooltip = localization.filteringByColumn.replace('{column}', String(columnDef.header)).replace('{filterType}', filterFn instanceof Function ? '' : // @ts-ignore
2281
+ localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))]).replace('{filterValue}', "\"" + (Array.isArray(column.getFilterValue()) ? column.getFilterValue().join("\" " + localization.and + " \"") : column.getFilterValue()) + "\"").replace('" "', '');
2282
+ return React.createElement(Grow, {
2283
+ unmountOnExit: true,
2284
+ "in": !!column.getFilterValue() && filterFn !== 'between' || filterFn === 'between' && ( // @ts-ignore
2285
+ !!((_column$getFilterValu = column.getFilterValue()) != null && _column$getFilterValu[0]) || !!((_column$getFilterValu2 = column.getFilterValue()) != null && _column$getFilterValu2[1]))
2286
+ }, React.createElement("span", null, React.createElement(Tooltip, {
2286
2287
  arrow: true,
2287
2288
  placement: "top",
2288
2289
  title: filterTooltip
@@ -2290,22 +2291,16 @@ var MRT_TableHeadCellFilterLabel = function MRT_TableHeadCellFilterLabel(_ref) {
2290
2291
  disableRipple: true,
2291
2292
  onClick: function onClick(event) {
2292
2293
  event.stopPropagation();
2293
- setShowFilters(!showFilters);
2294
2294
  },
2295
2295
  size: "small",
2296
2296
  sx: {
2297
2297
  m: 0,
2298
- opacity: !!column.getFilterValue() || showFilters ? 0.8 : 0,
2298
+ opacity: 0.8,
2299
2299
  p: '2px',
2300
- transition: 'all 0.2s ease-in-out',
2301
2300
  transform: 'scale(0.66)',
2302
- '&:hover': {
2303
- backgroundColor: 'transparent',
2304
- opacity: 0.8
2305
- },
2306
2301
  width: '1.5ch'
2307
2302
  }
2308
- }, showFilters && !column.getFilterValue() ? React.createElement(FilterAltOffIcon, null) : React.createElement(FilterAltIcon, null)));
2303
+ }, React.createElement(FilterAltIcon, null)))));
2309
2304
  };
2310
2305
 
2311
2306
  var MRT_TableHeadCellResizeHandle = function MRT_TableHeadCellResizeHandle(_ref) {
@@ -2440,20 +2435,21 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2440
2435
  var dragRef = _ref.dragRef,
2441
2436
  dropRef = _ref.dropRef,
2442
2437
  header = _ref.header,
2438
+ instance = _ref.instance,
2443
2439
  isDragging = _ref.isDragging,
2444
- previewRef = _ref.previewRef,
2445
- instance = _ref.instance;
2440
+ previewRef = _ref.previewRef;
2446
2441
  var getState = instance.getState,
2447
2442
  _instance$options = instance.options,
2448
2443
  enableColumnActions = _instance$options.enableColumnActions,
2449
- enableColumnFilters = _instance$options.enableColumnFilters,
2450
2444
  enableColumnOrdering = _instance$options.enableColumnOrdering,
2451
2445
  enableColumnResizing = _instance$options.enableColumnResizing,
2452
2446
  enableGrouping = _instance$options.enableGrouping,
2447
+ enableMultiSort = _instance$options.enableMultiSort,
2453
2448
  muiTableHeadCellProps = _instance$options.muiTableHeadCellProps;
2454
2449
 
2455
2450
  var _getState = getState(),
2456
- density = _getState.density;
2451
+ density = _getState.density,
2452
+ showFilters = _getState.showFilters;
2457
2453
 
2458
2454
  var column = header.column;
2459
2455
  var columnDef = column.columnDef,
@@ -2508,7 +2504,8 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2508
2504
  pt: columnDefType !== 'data' ? 0 : density === 'compact' ? '0.25' : density === 'comfortable' ? '.75rem' : '1.25rem',
2509
2505
  right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
2510
2506
  transition: "all " + (enableColumnResizing ? 0 : '0.2s') + " ease-in-out",
2511
- verticalAlign: 'text-top',
2507
+ userSelect: enableMultiSort ? 'none' : undefined,
2508
+ verticalAlign: columnDefType === 'display' && showFilters ? 'center' : 'text-top',
2512
2509
  zIndex: column.getIsResizing() ? 3 : column.getIsPinned() && columnDefType !== 'group' ? 2 : 1
2513
2510
  }, tableCellProps == null ? void 0 : tableCellProps.sx, {
2514
2511
  maxWidth: "min(" + column.getSize() + "px, fit-content)",
@@ -2527,9 +2524,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2527
2524
  width: '100%'
2528
2525
  }
2529
2526
  }, React.createElement(Box, {
2530
- onClick: function onClick() {
2531
- return column.toggleSorting();
2532
- },
2527
+ onClick: column.getToggleSortingHandler(),
2533
2528
  sx: {
2534
2529
  alignItems: 'center',
2535
2530
  cursor: column.getCanSort() && columnDefType !== 'group' ? 'pointer' : undefined,
@@ -2540,7 +2535,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2540
2535
  }, headerElement, columnDefType === 'data' && column.getCanSort() && React.createElement(MRT_TableHeadCellSortLabel, {
2541
2536
  header: header,
2542
2537
  instance: instance
2543
- }), columnDefType === 'data' && enableColumnFilters && column.getCanFilter() && React.createElement(MRT_TableHeadCellFilterLabel, {
2538
+ }), columnDefType === 'data' && column.getCanFilter() && React.createElement(MRT_TableHeadCellFilterLabel, {
2544
2539
  header: header,
2545
2540
  instance: instance
2546
2541
  })), React.createElement(Box, {