material-react-table 0.7.3 → 0.7.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.
- package/dist/MaterialReactTable.d.ts +3 -1
- package/dist/material-react-table.cjs.development.js +66 -16
- package/dist/material-react-table.cjs.development.js.map +1 -1
- package/dist/material-react-table.cjs.production.min.js +1 -1
- package/dist/material-react-table.cjs.production.min.js.map +1 -1
- package/dist/material-react-table.esm.js +66 -16
- package/dist/material-react-table.esm.js.map +1 -1
- package/package.json +5 -5
- package/src/MaterialReactTable.tsx +4 -0
- package/src/table/MRT_TableRoot.tsx +67 -13
|
@@ -169,6 +169,7 @@ export declare type MaterialReactTableProps<D extends Record<string, any> = {}>
|
|
|
169
169
|
enableExpandAll?: boolean;
|
|
170
170
|
enableFullScreenToggle?: boolean;
|
|
171
171
|
enablePagination?: boolean;
|
|
172
|
+
enablePersistentState?: boolean;
|
|
172
173
|
enableRowActions?: boolean;
|
|
173
174
|
enableRowNumbers?: boolean;
|
|
174
175
|
enableSelectAll?: boolean;
|
|
@@ -355,6 +356,7 @@ export declare type MaterialReactTableProps<D extends Record<string, any> = {}>
|
|
|
355
356
|
showGlobalFilter: boolean;
|
|
356
357
|
tableInstance: MRT_TableInstance<D>;
|
|
357
358
|
}) => void;
|
|
359
|
+
persistentStateMode?: 'localStorage' | 'sessionStorage';
|
|
358
360
|
positionActionsColumn?: 'first' | 'last';
|
|
359
361
|
positionPagination?: 'bottom' | 'top' | 'both';
|
|
360
362
|
positionToolbarActions?: 'bottom' | 'top';
|
|
@@ -394,5 +396,5 @@ export declare type MaterialReactTableProps<D extends Record<string, any> = {}>
|
|
|
394
396
|
}>;
|
|
395
397
|
}) => ReactNode;
|
|
396
398
|
};
|
|
397
|
-
declare const _default: <D extends Record<string, any> = {}>({ autoResetExpanded, columnResizeMode, editingMode, enableColumnActions, enableColumnFilters, enableColumnResizing, enableDensePaddingToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableHiding, enableMultiRowSelection, enablePagination, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarBottom, enableToolbarInternalActions, enableToolbarTop, icons, localization, positionActionsColumn, positionPagination, positionToolbarActions, positionToolbarAlertBanner, ...rest }: MaterialReactTableProps<D>) => JSX.Element;
|
|
399
|
+
declare const _default: <D extends Record<string, any> = {}>({ autoResetExpanded, columnResizeMode, editingMode, enableColumnActions, enableColumnFilters, enableColumnResizing, enableDensePaddingToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableHiding, enableMultiRowSelection, enablePagination, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarBottom, enableToolbarInternalActions, enableToolbarTop, icons, localization, persistentStateMode, positionActionsColumn, positionPagination, positionToolbarActions, positionToolbarAlertBanner, ...rest }: MaterialReactTableProps<D>) => JSX.Element;
|
|
398
400
|
export default _default;
|
|
@@ -2879,7 +2879,7 @@ var createDisplayColumn = function createDisplayColumn(table, column) {
|
|
|
2879
2879
|
};
|
|
2880
2880
|
|
|
2881
2881
|
var MRT_TableRoot = function MRT_TableRoot(props) {
|
|
2882
|
-
var
|
|
2882
|
+
var _initialState$current, _initialState$current2, _initialState$isDense, _initialState$isFullS, _initialState$showFil, _initialState$showGlo, _initialState$paginat, _initialState$paginat2, _initialState$paginat3, _initialState$paginat4, _initialState$paginat5, _initialState$paginat6, _props$globalFilterTy;
|
|
2883
2883
|
|
|
2884
2884
|
var _useState = React.useState(props.idPrefix),
|
|
2885
2885
|
idPrefix = _useState[0],
|
|
@@ -2890,46 +2890,69 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
|
|
|
2890
2890
|
|
|
2891
2891
|
return setIdPrefix((_props$idPrefix = props.idPrefix) != null ? _props$idPrefix : Math.random().toString(36).substring(2, 9));
|
|
2892
2892
|
}, [props.idPrefix]);
|
|
2893
|
+
var initialState = React.useMemo(function () {
|
|
2894
|
+
if (!props.enablePersistentState || !props.idPrefix) {
|
|
2895
|
+
return props.initialState;
|
|
2896
|
+
}
|
|
2897
|
+
|
|
2898
|
+
if (typeof window === 'undefined') {
|
|
2899
|
+
{
|
|
2900
|
+
console.error('The MRT Persistent Table State feature is not supported if using SSR, but you can wrap your <MaterialReactTable /> in a MUI <NoSsr> tags to let it work');
|
|
2901
|
+
}
|
|
2902
|
+
|
|
2903
|
+
return props.initialState;
|
|
2904
|
+
}
|
|
2905
|
+
|
|
2906
|
+
var storedState = props.persistentStateMode === 'localStorage' ? localStorage.getItem("mrt-" + idPrefix + "-table-state") : props.persistentStateMode === 'sessionStorage' ? sessionStorage.getItem("mrt-" + idPrefix + "-table-state") : '{}';
|
|
2907
|
+
|
|
2908
|
+
if (storedState) {
|
|
2909
|
+
var parsedState = JSON.parse(storedState);
|
|
2910
|
+
|
|
2911
|
+
if (parsedState) {
|
|
2912
|
+
return _extends({}, props.initialState, parsedState);
|
|
2913
|
+
}
|
|
2914
|
+
}
|
|
2915
|
+
|
|
2916
|
+
return props.initialState;
|
|
2917
|
+
}, []);
|
|
2893
2918
|
|
|
2894
|
-
var _useState2 = React.useState((
|
|
2919
|
+
var _useState2 = React.useState((_initialState$current = initialState == null ? void 0 : initialState.currentEditingCell) != null ? _initialState$current : null),
|
|
2895
2920
|
currentEditingCell = _useState2[0],
|
|
2896
2921
|
setCurrentEditingCell = _useState2[1];
|
|
2897
2922
|
|
|
2898
|
-
var _useState3 = React.useState((
|
|
2923
|
+
var _useState3 = React.useState((_initialState$current2 = initialState == null ? void 0 : initialState.currentEditingRow) != null ? _initialState$current2 : null),
|
|
2899
2924
|
currentEditingRow = _useState3[0],
|
|
2900
2925
|
setCurrentEditingRow = _useState3[1];
|
|
2901
2926
|
|
|
2902
|
-
var _useState4 = React.useState((
|
|
2927
|
+
var _useState4 = React.useState((_initialState$isDense = initialState == null ? void 0 : initialState.isDensePadding) != null ? _initialState$isDense : false),
|
|
2903
2928
|
isDensePadding = _useState4[0],
|
|
2904
2929
|
setIsDensePadding = _useState4[1];
|
|
2905
2930
|
|
|
2906
|
-
var _useState5 = React.useState((
|
|
2931
|
+
var _useState5 = React.useState((_initialState$isFullS = initialState == null ? void 0 : initialState.isFullScreen) != null ? _initialState$isFullS : false),
|
|
2907
2932
|
isFullScreen = _useState5[0],
|
|
2908
2933
|
setIsFullScreen = _useState5[1];
|
|
2909
2934
|
|
|
2910
|
-
var _useState6 = React.useState((
|
|
2935
|
+
var _useState6 = React.useState((_initialState$showFil = initialState == null ? void 0 : initialState.showFilters) != null ? _initialState$showFil : false),
|
|
2911
2936
|
showFilters = _useState6[0],
|
|
2912
2937
|
setShowFilters = _useState6[1];
|
|
2913
2938
|
|
|
2914
|
-
var _useState7 = React.useState((
|
|
2939
|
+
var _useState7 = React.useState((_initialState$showGlo = initialState == null ? void 0 : initialState.showGlobalFilter) != null ? _initialState$showGlo : false),
|
|
2915
2940
|
showGlobalFilter = _useState7[0],
|
|
2916
2941
|
setShowGlobalFilter = _useState7[1];
|
|
2917
2942
|
|
|
2918
2943
|
var _useState8 = React.useState({
|
|
2919
|
-
pageIndex: (
|
|
2920
|
-
pageSize: (
|
|
2921
|
-
pageCount: (
|
|
2944
|
+
pageIndex: (_initialState$paginat = initialState == null ? void 0 : (_initialState$paginat2 = initialState.pagination) == null ? void 0 : _initialState$paginat2.pageIndex) != null ? _initialState$paginat : 0,
|
|
2945
|
+
pageSize: (_initialState$paginat3 = initialState == null ? void 0 : (_initialState$paginat4 = initialState.pagination) == null ? void 0 : _initialState$paginat4.pageSize) != null ? _initialState$paginat3 : 10,
|
|
2946
|
+
pageCount: (_initialState$paginat5 = initialState == null ? void 0 : (_initialState$paginat6 = initialState.pagination) == null ? void 0 : _initialState$paginat6.pageCount) != null ? _initialState$paginat5 : -1
|
|
2922
2947
|
}),
|
|
2923
2948
|
pagination = _useState8[0],
|
|
2924
2949
|
setPagination = _useState8[1];
|
|
2925
2950
|
|
|
2926
2951
|
var _useState9 = React.useState(function () {
|
|
2927
2952
|
return Object.assign.apply(Object, [{}].concat(getAllLeafColumnDefs(props.columns).map(function (c) {
|
|
2928
|
-
var _ref, _c$filter,
|
|
2953
|
+
var _ref, _c$filter, _initialState$current3, _c$filterSelectOption, _ref2;
|
|
2929
2954
|
|
|
2930
|
-
return _ref2 = {}, _ref2[c.id] = (_ref = (_c$filter = c.filter) != null ? _c$filter :
|
|
2931
|
-
return cf.id === c.id;
|
|
2932
|
-
})) != null ? _ref : !!((_c$filterSelectOption = c.filterSelectOptions) != null && _c$filterSelectOption.length) ? MRT_FILTER_TYPE.EQUALS : MRT_FILTER_TYPE.BEST_MATCH, _ref2;
|
|
2955
|
+
return _ref2 = {}, _ref2[c.id] = (_ref = (_c$filter = c.filter) != null ? _c$filter : initialState == null ? void 0 : (_initialState$current3 = initialState.currentFilterTypes) == null ? void 0 : _initialState$current3[c.id]) != null ? _ref : !!((_c$filterSelectOption = c.filterSelectOptions) != null && _c$filterSelectOption.length) ? MRT_FILTER_TYPE.EQUALS : MRT_FILTER_TYPE.BEST_MATCH, _ref2;
|
|
2933
2956
|
})));
|
|
2934
2957
|
}),
|
|
2935
2958
|
currentFilterTypes = _useState9[0],
|
|
@@ -3038,7 +3061,6 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
|
|
|
3038
3061
|
return originalRow.subRows;
|
|
3039
3062
|
},
|
|
3040
3063
|
globalFilterType: currentGlobalFilterType,
|
|
3041
|
-
idPrefix: idPrefix,
|
|
3042
3064
|
onPaginationChange: function onPaginationChange(updater) {
|
|
3043
3065
|
return setPagination(function (old) {
|
|
3044
3066
|
return reactTable.functionalUpdate(updater, old);
|
|
@@ -3047,6 +3069,9 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
|
|
|
3047
3069
|
}, props, {
|
|
3048
3070
|
columns: columns,
|
|
3049
3071
|
data: data,
|
|
3072
|
+
idPrefix: idPrefix,
|
|
3073
|
+
//@ts-ignore
|
|
3074
|
+
initialState: initialState,
|
|
3050
3075
|
state: _extends({
|
|
3051
3076
|
currentEditingCell: currentEditingCell,
|
|
3052
3077
|
currentEditingRow: currentEditingRow,
|
|
@@ -3072,6 +3097,28 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
|
|
|
3072
3097
|
setShowGlobalFilter: setShowGlobalFilter
|
|
3073
3098
|
});
|
|
3074
3099
|
|
|
3100
|
+
React.useEffect(function () {
|
|
3101
|
+
if (typeof window === 'undefined' || !props.enablePersistentState) {
|
|
3102
|
+
return;
|
|
3103
|
+
}
|
|
3104
|
+
|
|
3105
|
+
if (!props.idPrefix && "development" !== 'production') {
|
|
3106
|
+
console.warn('a unique idPrefix prop is required for persistent table state to work');
|
|
3107
|
+
return;
|
|
3108
|
+
}
|
|
3109
|
+
|
|
3110
|
+
var itemArgs = ["mrt-" + idPrefix + "-table-state", JSON.stringify(tableInstance.getState())];
|
|
3111
|
+
|
|
3112
|
+
if (props.persistentStateMode === 'localStorage') {
|
|
3113
|
+
var _localStorage;
|
|
3114
|
+
|
|
3115
|
+
(_localStorage = localStorage).setItem.apply(_localStorage, itemArgs);
|
|
3116
|
+
} else if (props.persistentStateMode === 'sessionStorage') {
|
|
3117
|
+
var _sessionStorage;
|
|
3118
|
+
|
|
3119
|
+
(_sessionStorage = sessionStorage).setItem.apply(_sessionStorage, itemArgs);
|
|
3120
|
+
}
|
|
3121
|
+
}, [props.enablePersistentState, props.idPrefix, props.persistentStateMode, tableInstance]);
|
|
3075
3122
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.Dialog, {
|
|
3076
3123
|
TransitionComponent: material.Grow,
|
|
3077
3124
|
PaperComponent: material.Box,
|
|
@@ -3090,7 +3137,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
|
|
|
3090
3137
|
}));
|
|
3091
3138
|
};
|
|
3092
3139
|
|
|
3093
|
-
var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "editingMode", "enableColumnActions", "enableColumnFilters", "enableColumnResizing", "enableDensePaddingToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableHiding", "enableMultiRowSelection", "enablePagination", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
|
|
3140
|
+
var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "editingMode", "enableColumnActions", "enableColumnFilters", "enableColumnResizing", "enableDensePaddingToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableHiding", "enableMultiRowSelection", "enablePagination", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
|
|
3094
3141
|
var MaterialReactTable = (function (_ref) {
|
|
3095
3142
|
var _ref$autoResetExpande = _ref.autoResetExpanded,
|
|
3096
3143
|
autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
|
|
@@ -3138,6 +3185,8 @@ var MaterialReactTable = (function (_ref) {
|
|
|
3138
3185
|
enableToolbarTop = _ref$enableToolbarTop === void 0 ? true : _ref$enableToolbarTop,
|
|
3139
3186
|
icons = _ref.icons,
|
|
3140
3187
|
localization = _ref.localization,
|
|
3188
|
+
_ref$persistentStateM = _ref.persistentStateMode,
|
|
3189
|
+
persistentStateMode = _ref$persistentStateM === void 0 ? 'sessionStorage' : _ref$persistentStateM,
|
|
3141
3190
|
_ref$positionActionsC = _ref.positionActionsColumn,
|
|
3142
3191
|
positionActionsColumn = _ref$positionActionsC === void 0 ? 'first' : _ref$positionActionsC,
|
|
3143
3192
|
_ref$positionPaginati = _ref.positionPagination,
|
|
@@ -3173,6 +3222,7 @@ var MaterialReactTable = (function (_ref) {
|
|
|
3173
3222
|
enableToolbarTop: enableToolbarTop,
|
|
3174
3223
|
icons: _extends({}, MRT_Default_Icons, icons),
|
|
3175
3224
|
localization: _extends({}, MRT_DefaultLocalization_EN, localization),
|
|
3225
|
+
persistentStateMode: persistentStateMode,
|
|
3176
3226
|
positionActionsColumn: positionActionsColumn,
|
|
3177
3227
|
positionPagination: positionPagination,
|
|
3178
3228
|
positionToolbarActions: positionToolbarActions,
|