material-react-table 1.5.0 → 1.5.2

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.
Files changed (41) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/index.js +29 -17
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/types/MaterialReactTable.d.ts +3 -0
  5. package/dist/cjs/types/_locales/zh-Hans.d.ts +2 -0
  6. package/dist/cjs/types/_locales/zh-Hant.d.ts +2 -0
  7. package/dist/cjs/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +6 -6
  8. package/dist/cjs/types/index.d.ts +2 -1
  9. package/dist/cjs/types/table/MRT_TableRoot.d.ts +1 -0
  10. package/dist/esm/material-react-table.esm.js +29 -18
  11. package/dist/esm/material-react-table.esm.js.map +1 -1
  12. package/dist/esm/types/MaterialReactTable.d.ts +3 -0
  13. package/dist/esm/types/_locales/zh-Hans.d.ts +2 -0
  14. package/dist/esm/types/_locales/zh-Hant.d.ts +2 -0
  15. package/dist/esm/types/buttons/MRT_ToggleRowActionMenuButton.d.ts +6 -6
  16. package/dist/esm/types/index.d.ts +2 -1
  17. package/dist/esm/types/table/MRT_TableRoot.d.ts +1 -0
  18. package/dist/index.d.ts +31 -21
  19. package/locales/zh-Hans.d.ts +2 -0
  20. package/locales/zh-Hans.esm.d.ts +2 -0
  21. package/locales/zh-Hans.esm.js +94 -0
  22. package/locales/zh-Hans.esm.js.map +1 -0
  23. package/locales/zh-Hans.js +98 -0
  24. package/locales/zh-Hans.js.map +1 -0
  25. package/locales/zh-Hant.d.ts +2 -0
  26. package/locales/zh-Hant.esm.d.ts +2 -0
  27. package/locales/zh-Hant.esm.js +94 -0
  28. package/locales/zh-Hant.esm.js.map +1 -0
  29. package/locales/zh-Hant.js +98 -0
  30. package/locales/zh-Hant.js.map +1 -0
  31. package/package.json +11 -11
  32. package/src/MaterialReactTable.tsx +10 -0
  33. package/src/_locales/zh-Hans.ts +94 -0
  34. package/src/_locales/zh-Hant.ts +94 -0
  35. package/src/body/MRT_TableBody.tsx +1 -4
  36. package/src/buttons/MRT_ShowHideColumnsButton.tsx +7 -5
  37. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +11 -9
  38. package/src/footer/MRT_TableFooter.tsx +1 -0
  39. package/src/index.tsx +2 -0
  40. package/src/table/MRT_TableRoot.tsx +5 -0
  41. package/src/toolbar/MRT_ToolbarDropZone.tsx +16 -11
package/README.md CHANGED
@@ -57,7 +57,7 @@ _All features can easily be enabled/disabled_
57
57
 
58
58
  _**Fully Fleshed out [Docs](https://www.material-react-table.com/docs/guides#guides) are available for all features**_
59
59
 
60
- - [x] < 40kb gzipped - [Bundlephobia](https://bundlephobia.com/package/material-react-table)
60
+ - [x] < 41kb gzipped - [Bundlephobia](https://bundlephobia.com/package/material-react-table)
61
61
  - [x] Advanced TypeScript Generics Support (TypeScript Optional)
62
62
  - [x] Aggregation and Grouping (Sum, Average, Count, etc.)
63
63
  - [x] Click To Copy Cell Values
package/dist/cjs/index.js CHANGED
@@ -1321,7 +1321,7 @@ const MRT_ShowHideColumnsButton = (_a) => {
1321
1321
  React__default["default"].createElement(Tooltip__default["default"], { arrow: true, title: (_b = rest === null || rest === void 0 ? void 0 : rest.title) !== null && _b !== void 0 ? _b : localization.showHideColumns },
1322
1322
  React__default["default"].createElement(IconButton__default["default"], Object.assign({ "aria-label": localization.showHideColumns, onClick: handleClick }, rest, { title: undefined }),
1323
1323
  React__default["default"].createElement(ViewColumnIcon, null))),
1324
- React__default["default"].createElement(MRT_ShowHideColumnsMenu, { anchorEl: anchorEl, setAnchorEl: setAnchorEl, table: table })));
1324
+ anchorEl && (React__default["default"].createElement(MRT_ShowHideColumnsMenu, { anchorEl: anchorEl, setAnchorEl: setAnchorEl, table: table }))));
1325
1325
  };
1326
1326
 
1327
1327
  const MRT_ToggleDensePaddingButton = (_a) => {
@@ -1387,15 +1387,21 @@ const MRT_ToolbarInternalButtons = ({ table, }) => {
1387
1387
 
1388
1388
  const MRT_ToolbarDropZone = ({ table, }) => {
1389
1389
  var _a, _b;
1390
- const { getState, options: { enableGrouping, localization }, setHoveredColumn, } = table;
1391
- const { draggingColumn, hoveredColumn, grouping } = getState();
1390
+ const { getState, options: { enableGrouping, localization }, setHoveredColumn, setShowToolbarDropZone, } = table;
1391
+ const { draggingColumn, hoveredColumn, grouping, showToolbarDropZone } = getState();
1392
1392
  const handleDragEnter = (_event) => {
1393
1393
  setHoveredColumn({ id: 'drop-zone' });
1394
1394
  };
1395
- return (React__default["default"].createElement(Fade__default["default"], { unmountOnExit: true, mountOnEnter: true, in: !!enableGrouping &&
1396
- !!draggingColumn &&
1397
- !grouping.includes(draggingColumn.id) },
1398
- React__default["default"].createElement(Box__default["default"], { sx: (theme) => ({
1395
+ React.useEffect(() => {
1396
+ var _a;
1397
+ if (((_a = table.options.state) === null || _a === void 0 ? void 0 : _a.showToolbarDropZone) !== undefined) {
1398
+ setShowToolbarDropZone(!!enableGrouping &&
1399
+ !!draggingColumn &&
1400
+ !grouping.includes(draggingColumn.id));
1401
+ }
1402
+ }, [enableGrouping, draggingColumn, grouping]);
1403
+ return (React__default["default"].createElement(Fade__default["default"], { in: showToolbarDropZone },
1404
+ React__default["default"].createElement(Box__default["default"], { className: "Mui-ToolbarDropZone", sx: (theme) => ({
1399
1405
  alignItems: 'center',
1400
1406
  backgroundColor: styles.alpha(theme.palette.info.main, (hoveredColumn === null || hoveredColumn === void 0 ? void 0 : hoveredColumn.id) === 'drop-zone' ? 0.2 : 0.1),
1401
1407
  border: `dashed ${theme.palette.info.main} 2px`,
@@ -2464,9 +2470,7 @@ const MRT_TableBody = ({ columnVirtualizer, table, virtualColumns, virtualPaddin
2464
2470
  }
2465
2471
  return rankedRows;
2466
2472
  }
2467
- return enablePagination
2468
- ? getRowModel().rows
2469
- : getPrePaginationRowModel().rows;
2473
+ return getRowModel().rows;
2470
2474
  }, [
2471
2475
  enableGlobalFilterRankedResults,
2472
2476
  (enableGlobalFilterRankedResults && globalFilter) || !enablePagination
@@ -2598,7 +2602,7 @@ const MRT_TableFooter = ({ table, virtualColumns, virtualPaddingLeft, virtualPad
2598
2602
  ? theme.palette.mode === 'light'
2599
2603
  ? `1px solid ${theme.palette.grey[300]}`
2600
2604
  : `1px solid ${theme.palette.grey[700]}`
2601
- : undefined, position: stickFooter ? 'sticky' : undefined }, ((tableFooterProps === null || tableFooterProps === void 0 ? void 0 : tableFooterProps.sx) instanceof Function
2605
+ : undefined, position: stickFooter ? 'sticky' : undefined, zIndex: stickFooter ? 1 : undefined }, ((tableFooterProps === null || tableFooterProps === void 0 ? void 0 : tableFooterProps.sx) instanceof Function
2602
2606
  ? tableFooterProps === null || tableFooterProps === void 0 ? void 0 : tableFooterProps.sx(theme)
2603
2607
  : tableFooterProps === null || tableFooterProps === void 0 ? void 0 : tableFooterProps.sx))) }), getFooterGroups().map((footerGroup) => (React__default["default"].createElement(MRT_TableFooterRow, { footerGroup: footerGroup, key: footerGroup.id, table: table, virtualColumns: virtualColumns, virtualPaddingLeft: virtualPaddingLeft, virtualPaddingRight: virtualPaddingRight })))));
2604
2608
  };
@@ -2759,7 +2763,7 @@ const MRT_EditRowModal = ({ open, row, table, }) => {
2759
2763
  };
2760
2764
 
2761
2765
  const MRT_TableRoot = (props) => {
2762
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9;
2766
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11;
2763
2767
  const bottomToolbarRef = React.useRef(null);
2764
2768
  const editInputRefs = React.useRef({});
2765
2769
  const filterInputRefs = React.useRef({});
@@ -2798,6 +2802,7 @@ const MRT_TableRoot = (props) => {
2798
2802
  const [showAlertBanner, setShowAlertBanner] = React.useState((_o = (_m = props.initialState) === null || _m === void 0 ? void 0 : _m.showAlertBanner) !== null && _o !== void 0 ? _o : false);
2799
2803
  const [showColumnFilters, setShowFilters] = React.useState((_p = initialState === null || initialState === void 0 ? void 0 : initialState.showColumnFilters) !== null && _p !== void 0 ? _p : false);
2800
2804
  const [showGlobalFilter, setShowGlobalFilter] = React.useState((_q = initialState === null || initialState === void 0 ? void 0 : initialState.showGlobalFilter) !== null && _q !== void 0 ? _q : false);
2805
+ const [showToolbarDropZone, setShowToolbarDropZone] = React.useState((_r = initialState === null || initialState === void 0 ? void 0 : initialState.showToolbarDropZone) !== null && _r !== void 0 ? _r : false);
2801
2806
  const displayColumns = React.useMemo(() => {
2802
2807
  var _a, _b, _c, _d, _e;
2803
2808
  return [
@@ -2848,7 +2853,7 @@ const MRT_TableRoot = (props) => {
2848
2853
  columnFilterFns,
2849
2854
  displayColumns,
2850
2855
  props.columns,
2851
- (_r = props.state) === null || _r === void 0 ? void 0 : _r.columnFilterFns,
2856
+ (_s = props.state) === null || _s === void 0 ? void 0 : _s.columnFilterFns,
2852
2857
  ]);
2853
2858
  const data = React.useMemo(() => {
2854
2859
  var _a, _b, _c, _d, _e;
@@ -2862,11 +2867,11 @@ const MRT_TableRoot = (props) => {
2862
2867
  [getColumnId(col)]: null,
2863
2868
  }))))
2864
2869
  : props.data;
2865
- }, [props.data, (_s = props.state) === null || _s === void 0 ? void 0 : _s.isLoading, (_t = props.state) === null || _t === void 0 ? void 0 : _t.showSkeletons]);
2870
+ }, [props.data, (_t = props.state) === null || _t === void 0 ? void 0 : _t.isLoading, (_u = props.state) === null || _u === void 0 ? void 0 : _u.showSkeletons]);
2866
2871
  //@ts-ignore
2867
2872
  const table = Object.assign(Object.assign({}, reactTable.useReactTable(Object.assign(Object.assign({ getCoreRowModel: reactTable.getCoreRowModel(), getExpandedRowModel: reactTable.getExpandedRowModel(), getFacetedRowModel: reactTable.getFacetedRowModel(), getFilteredRowModel: reactTable.getFilteredRowModel(), getGroupedRowModel: reactTable.getGroupedRowModel(), getPaginationRowModel: reactTable.getPaginationRowModel(), getSortedRowModel: reactTable.getSortedRowModel(), onColumnOrderChange: setColumnOrder, onGroupingChange: setGrouping, getSubRows: (row) => row === null || row === void 0 ? void 0 : row.subRows }, props), {
2868
2873
  //@ts-ignore
2869
- columns: columnDefs, data, globalFilterFn: (_v = (_u = props.filterFns) === null || _u === void 0 ? void 0 : _u[globalFilterFn]) !== null && _v !== void 0 ? _v : (_w = props.filterFns) === null || _w === void 0 ? void 0 : _w.fuzzy, initialState, state: Object.assign({ columnFilterFns,
2874
+ columns: columnDefs, data, globalFilterFn: (_w = (_v = props.filterFns) === null || _v === void 0 ? void 0 : _v[globalFilterFn]) !== null && _w !== void 0 ? _w : (_x = props.filterFns) === null || _x === void 0 ? void 0 : _x.fuzzy, initialState, state: Object.assign({ columnFilterFns,
2870
2875
  columnOrder,
2871
2876
  density,
2872
2877
  draggingColumn,
@@ -2880,7 +2885,8 @@ const MRT_TableRoot = (props) => {
2880
2885
  isFullScreen,
2881
2886
  showAlertBanner,
2882
2887
  showColumnFilters,
2883
- showGlobalFilter }, props.state) }))), { refs: {
2888
+ showGlobalFilter,
2889
+ showToolbarDropZone }, props.state) }))), { refs: {
2884
2890
  bottomToolbarRef,
2885
2891
  editInputRefs,
2886
2892
  filterInputRefs,
@@ -2889,7 +2895,7 @@ const MRT_TableRoot = (props) => {
2889
2895
  tableHeadCellRefs,
2890
2896
  tablePaperRef,
2891
2897
  topToolbarRef,
2892
- }, setColumnFilterFns: (_x = props.onColumnFilterFnsChange) !== null && _x !== void 0 ? _x : setColumnFilterFns, setDensity: (_y = props.onDensityChange) !== null && _y !== void 0 ? _y : setDensity, setDraggingColumn: (_z = props.onDraggingColumnChange) !== null && _z !== void 0 ? _z : setDraggingColumn, setDraggingRow: (_0 = props.onDraggingRowChange) !== null && _0 !== void 0 ? _0 : setDraggingRow, setEditingCell: (_1 = props.onEditingCellChange) !== null && _1 !== void 0 ? _1 : setEditingCell, setEditingRow: (_2 = props.onEditingRowChange) !== null && _2 !== void 0 ? _2 : setEditingRow, setGlobalFilterFn: (_3 = props.onGlobalFilterFnChange) !== null && _3 !== void 0 ? _3 : setGlobalFilterFn, setHoveredColumn: (_4 = props.onHoveredColumnChange) !== null && _4 !== void 0 ? _4 : setHoveredColumn, setHoveredRow: (_5 = props.onHoveredRowChange) !== null && _5 !== void 0 ? _5 : setHoveredRow, setIsFullScreen: (_6 = props.onIsFullScreenChange) !== null && _6 !== void 0 ? _6 : setIsFullScreen, setShowAlertBanner: (_7 = props.onShowAlertBannerChange) !== null && _7 !== void 0 ? _7 : setShowAlertBanner, setShowFilters: (_8 = props.onShowFiltersChange) !== null && _8 !== void 0 ? _8 : setShowFilters, setShowGlobalFilter: (_9 = props.onShowGlobalFilterChange) !== null && _9 !== void 0 ? _9 : setShowGlobalFilter });
2898
+ }, setColumnFilterFns: (_y = props.onColumnFilterFnsChange) !== null && _y !== void 0 ? _y : setColumnFilterFns, setDensity: (_z = props.onDensityChange) !== null && _z !== void 0 ? _z : setDensity, setDraggingColumn: (_0 = props.onDraggingColumnChange) !== null && _0 !== void 0 ? _0 : setDraggingColumn, setDraggingRow: (_1 = props.onDraggingRowChange) !== null && _1 !== void 0 ? _1 : setDraggingRow, setEditingCell: (_2 = props.onEditingCellChange) !== null && _2 !== void 0 ? _2 : setEditingCell, setEditingRow: (_3 = props.onEditingRowChange) !== null && _3 !== void 0 ? _3 : setEditingRow, setGlobalFilterFn: (_4 = props.onGlobalFilterFnChange) !== null && _4 !== void 0 ? _4 : setGlobalFilterFn, setHoveredColumn: (_5 = props.onHoveredColumnChange) !== null && _5 !== void 0 ? _5 : setHoveredColumn, setHoveredRow: (_6 = props.onHoveredRowChange) !== null && _6 !== void 0 ? _6 : setHoveredRow, setIsFullScreen: (_7 = props.onIsFullScreenChange) !== null && _7 !== void 0 ? _7 : setIsFullScreen, setShowAlertBanner: (_8 = props.onShowAlertBannerChange) !== null && _8 !== void 0 ? _8 : setShowAlertBanner, setShowFilters: (_9 = props.onShowFiltersChange) !== null && _9 !== void 0 ? _9 : setShowFilters, setShowGlobalFilter: (_10 = props.onShowGlobalFilterChange) !== null && _10 !== void 0 ? _10 : setShowGlobalFilter, setShowToolbarDropZone: (_11 = props.onShowToolbarDropZoneChange) !== null && _11 !== void 0 ? _11 : setShowToolbarDropZone });
2893
2899
  if (props.tableInstanceRef) {
2894
2900
  props.tableInstanceRef.current = table;
2895
2901
  }
@@ -3020,8 +3026,13 @@ const MaterialReactTable = (_a) => {
3020
3026
  const _defaultDisplayColumn = React.useMemo(() => (Object.assign(Object.assign({}, MRT_DefaultDisplayColumn), defaultDisplayColumn)), [defaultDisplayColumn]);
3021
3027
  if (rest.enableRowVirtualization || rest.enableColumnVirtualization) {
3022
3028
  layoutMode = 'grid';
3029
+ }
3030
+ if (rest.enableRowVirtualization) {
3023
3031
  enableStickyHeader = true;
3024
3032
  }
3033
+ if (enablePagination === false && manualPagination === undefined) {
3034
+ manualPagination = true;
3035
+ }
3025
3036
  if (!((_b = rest.data) === null || _b === void 0 ? void 0 : _b.length)) {
3026
3037
  manualFiltering = true;
3027
3038
  manualGrouping = true;
@@ -3040,6 +3051,7 @@ exports.MRT_TablePagination = MRT_TablePagination;
3040
3051
  exports.MRT_ToggleDensePaddingButton = MRT_ToggleDensePaddingButton;
3041
3052
  exports.MRT_ToggleFiltersButton = MRT_ToggleFiltersButton;
3042
3053
  exports.MRT_ToggleGlobalFilterButton = MRT_ToggleGlobalFilterButton;
3054
+ exports.MRT_ToggleRowActionMenuButton = MRT_ToggleRowActionMenuButton;
3043
3055
  exports.MRT_ToolbarAlertBanner = MRT_ToolbarAlertBanner;
3044
3056
  exports.MRT_ToolbarDropZone = MRT_ToolbarDropZone;
3045
3057
  exports.MRT_ToolbarInternalButtons = MRT_ToolbarInternalButtons;