material-react-table 1.0.0-beta.8 → 1.0.0-beta.9

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.
@@ -467,6 +467,9 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
467
467
  positionPagination?: 'bottom' | 'top' | 'both';
468
468
  positionToolbarAlertBanner?: 'bottom' | 'top' | 'none';
469
469
  positionToolbarDropZone?: 'bottom' | 'top' | 'none' | 'both';
470
+ renderBottomToolbar?: ({ table, }: {
471
+ table: MRT_TableInstance<TData>;
472
+ }) => ReactNode | ReactNode[];
470
473
  renderBottomToolbarCustomActions?: ({ table, }: {
471
474
  table: MRT_TableInstance<TData>;
472
475
  }) => ReactNode;
@@ -503,6 +506,9 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
503
506
  renderToolbarInternalActions?: ({ table, }: {
504
507
  table: MRT_TableInstance<TData>;
505
508
  }) => ReactNode;
509
+ renderTopToolbar?: ({ table, }: {
510
+ table: MRT_TableInstance<TData>;
511
+ }) => ReactNode | ReactNode[];
506
512
  renderTopToolbarCustomActions?: ({ table, }: {
507
513
  table: MRT_TableInstance<TData>;
508
514
  }) => ReactNode;
package/dist/cjs/index.js CHANGED
@@ -393,7 +393,7 @@ const mrtFilterOptions = (localization) => [
393
393
  divider: false,
394
394
  },
395
395
  ];
396
- const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, table, }) => {
396
+ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, setFilterValue, table, }) => {
397
397
  var _a, _b, _c, _d;
398
398
  const { getState, options: { columnFilterModeOptions, globalFilterModeOptions, localization, renderColumnFilterModeMenuItems, renderGlobalFilterModeMenuItems, }, setColumnFilterFns, setGlobalFilterFn, } = table;
399
399
  const { globalFilterFn, density } = getState();
@@ -412,11 +412,19 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, table,
412
412
  if (['empty', 'notEmpty'].includes(option)) {
413
413
  column.setFilterValue(' ');
414
414
  }
415
- else if (option === 'between') {
415
+ else if ((columnDef === null || columnDef === void 0 ? void 0 : columnDef.filterVariant) === 'multi-select' ||
416
+ ['arrIncludesSome', 'arrIncludesAll', 'arrIncludes'].includes(option)) {
417
+ column.setFilterValue([]);
418
+ setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue([]);
419
+ }
420
+ else if ((columnDef === null || columnDef === void 0 ? void 0 : columnDef.filterVariant) === 'range' ||
421
+ ['between', 'betweenInclusive', 'inNumberRange'].includes(option)) {
416
422
  column.setFilterValue(['', '']);
423
+ setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue('');
417
424
  }
418
425
  else {
419
426
  column.setFilterValue('');
427
+ setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue('');
420
428
  }
421
429
  }
422
430
  else {
@@ -1080,7 +1088,7 @@ const MRT_GlobalFilterTextField = ({ table, }) => {
1080
1088
  textFieldProps.inputRef = inputRef;
1081
1089
  }
1082
1090
  } })),
1083
- React__default["default"].createElement(MRT_FilterOptionMenu, { anchorEl: anchorEl, setAnchorEl: setAnchorEl, table: table })));
1091
+ React__default["default"].createElement(MRT_FilterOptionMenu, { anchorEl: anchorEl, setAnchorEl: setAnchorEl, table: table, onSelect: handleClear })));
1084
1092
  };
1085
1093
 
1086
1094
  const MRT_LinearProgressBar = ({ isTopToolbar, table }) => {
@@ -1217,13 +1225,13 @@ const MRT_ToggleGlobalFilterButton = (_a) => {
1217
1225
  var _b;
1218
1226
  var { table } = _a, rest = __rest(_a, ["table"]);
1219
1227
  const { getState, options: { icons: { SearchIcon, SearchOffIcon }, localization, }, refs: { searchInputRef }, setShowGlobalFilter, } = table;
1220
- const { showGlobalFilter } = getState();
1228
+ const { globalFilter, showGlobalFilter } = getState();
1221
1229
  const handleToggleSearch = () => {
1222
1230
  setShowGlobalFilter(!showGlobalFilter);
1223
1231
  queueMicrotask(() => { var _a; return (_a = searchInputRef.current) === null || _a === void 0 ? void 0 : _a.focus(); });
1224
1232
  };
1225
1233
  return (React__default["default"].createElement(material.Tooltip, { arrow: true, title: (_b = rest === null || rest === void 0 ? void 0 : rest.title) !== null && _b !== void 0 ? _b : localization.showHideSearch },
1226
- React__default["default"].createElement(material.IconButton, Object.assign({ onClick: handleToggleSearch }, rest, { title: undefined }), showGlobalFilter ? React__default["default"].createElement(SearchOffIcon, null) : React__default["default"].createElement(SearchIcon, null))));
1234
+ React__default["default"].createElement(material.IconButton, Object.assign({ disabled: !!globalFilter, onClick: handleToggleSearch }, rest, { title: undefined }), showGlobalFilter ? React__default["default"].createElement(SearchOffIcon, null) : React__default["default"].createElement(SearchIcon, null))));
1227
1235
  };
1228
1236
 
1229
1237
  const MRT_ToolbarInternalButtons = ({ table }) => {
@@ -1494,9 +1502,6 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
1494
1502
  const handleFilterMenuOpen = (event) => {
1495
1503
  setAnchorEl(event.currentTarget);
1496
1504
  };
1497
- React.useEffect(() => {
1498
- handleClear();
1499
- }, [columnDef._filterFn]);
1500
1505
  if (columnDef.Filter) {
1501
1506
  return React__default["default"].createElement(React__default["default"].Fragment, null, (_e = columnDef.Filter) === null || _e === void 0 ? void 0 : _e.call(columnDef, { column, header, table }));
1502
1507
  }
@@ -1586,7 +1591,7 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
1586
1591
  isMultiSelectFilter && (React__default["default"].createElement(material.Checkbox, { checked: ((_a = column.getFilterValue()) !== null && _a !== void 0 ? _a : []).includes(value), sx: { mr: '0.5rem' } })),
1587
1592
  text));
1588
1593
  })),
1589
- React__default["default"].createElement(MRT_FilterOptionMenu, { anchorEl: anchorEl, header: header, setAnchorEl: setAnchorEl, table: table })));
1594
+ React__default["default"].createElement(MRT_FilterOptionMenu, { anchorEl: anchorEl, header: header, setAnchorEl: setAnchorEl, table: table, setFilterValue: setFilterValue })));
1590
1595
  };
1591
1596
 
1592
1597
  const MRT_FilterRangeFields = ({ header, table }) => {
@@ -2364,7 +2369,8 @@ const MRT_TableContainer = ({ table }) => {
2364
2369
  };
2365
2370
 
2366
2371
  const MRT_TablePaper = ({ table }) => {
2367
- const { getState, options: { enableBottomToolbar, enableTopToolbar, muiTablePaperProps }, refs: { tablePaperRef }, } = table;
2372
+ var _a, _b;
2373
+ const { getState, options: { enableBottomToolbar, enableTopToolbar, muiTablePaperProps, renderBottomToolbar, renderTopToolbar, }, refs: { tablePaperRef }, } = table;
2368
2374
  const { isFullScreen } = getState();
2369
2375
  const tablePaperProps = muiTablePaperProps instanceof Function
2370
2376
  ? muiTablePaperProps({ table })
@@ -2386,10 +2392,8 @@ const MRT_TablePaper = ({ table }) => {
2386
2392
  padding: 0,
2387
2393
  width: '100vw',
2388
2394
  }
2389
- : {})) }),
2390
- enableTopToolbar && React__default["default"].createElement(MRT_TopToolbar, { table: table }),
2391
- React__default["default"].createElement(MRT_TableContainer, { table: table }),
2392
- enableBottomToolbar && React__default["default"].createElement(MRT_BottomToolbar, { table: table })));
2395
+ : {})) }), (_a = (enableTopToolbar && (renderTopToolbar === null || renderTopToolbar === void 0 ? void 0 : renderTopToolbar({ table })))) !== null && _a !== void 0 ? _a : (React__default["default"].createElement(MRT_TopToolbar, { table: table })),
2396
+ React__default["default"].createElement(MRT_TableContainer, { table: table }), (_b = (enableBottomToolbar && (renderBottomToolbar === null || renderBottomToolbar === void 0 ? void 0 : renderBottomToolbar({ table })))) !== null && _b !== void 0 ? _b : (React__default["default"].createElement(MRT_BottomToolbar, { table: table }))));
2393
2397
  };
2394
2398
 
2395
2399
  const MRT_EditRowModal = ({ open, row, table, }) => {