@mailstep/design-system 0.7.10 → 0.7.11-beta.1
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/package.json +1 -1
- package/ui/Blocks/CommonGrid/HoC/withReduxActions.js +2 -1
- package/ui/Blocks/CommonGrid/components/GridModals/index.js +9 -8
- package/ui/Blocks/CommonGrid/components/PresetsModalBody/index.d.ts +2 -2
- package/ui/Blocks/CommonGrid/hooks/useCreatePreset.d.ts +2 -2
- package/ui/Blocks/CommonGrid/hooks/useCreatePreset.js +2 -20
- package/ui/Blocks/CommonGrid/hooks/useDeletePreset.d.ts +2 -2
- package/ui/Blocks/CommonGrid/hooks/useDeletePreset.js +3 -19
- package/ui/Blocks/CommonGrid/hooks/usePresetFileHandlers.d.ts +3 -1
- package/ui/Blocks/CommonGrid/hooks/usePresetFileHandlers.js +5 -24
- package/ui/Blocks/CommonGrid/hooks/useSelectPreset.d.ts +2 -3
- package/ui/Blocks/CommonGrid/hooks/useSelectPreset.js +4 -18
- package/ui/Blocks/CommonGrid/store/index.d.ts +7 -1
- package/ui/Blocks/CommonGrid/store/index.js +27 -5
- package/ui/Blocks/CommonGrid/types.d.ts +6 -0
- package/ui/Blocks/CommonGrid/utils/constants.d.ts +0 -1
- package/ui/Blocks/CommonGrid/utils/constants.js +0 -1
- package/ui/index.es.js +12976 -13502
- package/ui/index.umd.js +580 -580
package/package.json
CHANGED
|
@@ -21,6 +21,7 @@ var withReduxActions = function (gridName, prefix) {
|
|
|
21
21
|
closeConfigForm: actions.closeConfigForm,
|
|
22
22
|
setColumnConfig: actions.setColumnConfig,
|
|
23
23
|
setPage: actions.setPage,
|
|
24
|
+
setPresets: actions.setPresets,
|
|
24
25
|
setRowsPerPage: actions.setRowsPerPage,
|
|
25
26
|
addFilter: actions.addFilter,
|
|
26
27
|
setFilters: actions.setFilters,
|
|
@@ -29,7 +30,7 @@ var withReduxActions = function (gridName, prefix) {
|
|
|
29
30
|
clearSettings: actions.clearSettings,
|
|
30
31
|
setColumnWidth: actions.setColumnWidth,
|
|
31
32
|
resetGrid: actions.resetGrid,
|
|
32
|
-
setColumnsOrder: actions.setColumnsOrder
|
|
33
|
+
setColumnsOrder: actions.setColumnsOrder,
|
|
33
34
|
}, dispatch),
|
|
34
35
|
_a);
|
|
35
36
|
});
|
|
@@ -10,18 +10,19 @@ import { PresetsModalBody } from '../PresetsModalBody';
|
|
|
10
10
|
import { Trans } from '@lingui/react';
|
|
11
11
|
export var GridModals = function (_a) {
|
|
12
12
|
var manageColumnFormVisible = _a.manageColumnFormVisible, onCloseForm = _a.onCloseForm, resetColumnConfig = _a.resetColumnConfig, onConfirmForm = _a.onConfirmForm, manageColumnsFormDefinitions = _a.manageColumnsFormDefinitions, columnsConfigValues = _a.columnsConfigValues, setColumnsConfigOptions = _a.setColumnsConfigOptions, handleDragEnd = _a.handleDragEnd, gridName = _a.gridName, gridSelectors = _a.gridSelectors, gridActions = _a.gridActions, isPresetsModalOpen = _a.isPresetsModalOpen, onClosePresetsModal = _a.onClosePresetsModal, selectedPresetName = _a.selectedPresetName, setSelectedPresetName = _a.setSelectedPresetName;
|
|
13
|
-
var
|
|
13
|
+
var handleSelectPreset = useSelectPreset({
|
|
14
14
|
gridName: gridName,
|
|
15
15
|
gridActions: gridActions,
|
|
16
16
|
setSelectedPresetName: setSelectedPresetName,
|
|
17
17
|
onClosePresetsModal: onClosePresetsModal,
|
|
18
18
|
filters: gridSelectors.filter
|
|
19
|
-
})
|
|
20
|
-
var
|
|
21
|
-
var
|
|
22
|
-
var
|
|
19
|
+
}).handleSelectPreset;
|
|
20
|
+
var _b = useCreatePreset({ gridName: gridName, gridActions: gridActions, onClosePresetsModal: onClosePresetsModal, setSelectedPresetName: setSelectedPresetName, filters: gridSelectors.filter }), isCreatePresetModalOpen = _b.isCreatePresetModalOpen, handleCloseCreatePresetModal = _b.handleCloseCreatePresetModal, onOpenCreatePresetModal = _b.onOpenCreatePresetModal, handleCreatePreset = _b.handleCreatePreset, presetName = _b.presetName, handleChangePresetName = _b.handleChangePresetName;
|
|
21
|
+
var _c = useDeletePreset({ gridName: gridName, selectedPresetName: selectedPresetName, gridActions: gridActions, setSelectedPresetName: setSelectedPresetName }), handleOpenDeletePresetModal = _c.handleOpenDeletePresetModal, handleDeletePreset = _c.handleDeletePreset, onCloseDeletePresetModal = _c.onCloseDeletePresetModal, presetNameToDelete = _c.presetNameToDelete, isDeletePresetModalOpen = _c.isDeletePresetModalOpen;
|
|
22
|
+
var _d = usePresetFileHandlers({
|
|
23
23
|
gridName: gridName,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
gridActions: gridActions,
|
|
25
|
+
gridSelectors: gridSelectors,
|
|
26
|
+
}), fileInputRef = _d.fileInputRef, handleImportPresets = _d.handleImportPresets, handleExportPresets = _d.handleExportPresets, handleImportButtonClick = _d.handleImportButtonClick;
|
|
27
|
+
return (_jsxs(_Fragment, { children: [_jsx(Modal, { title: _jsx(Trans, { id: "manageColumn.title", message: "Manage columns" }), onClose: onCloseForm, onCancel: onCloseForm, onExtraAction: resetColumnConfig, onConfirm: onConfirmForm, isShown: manageColumnFormVisible, width: "auto", minWidth: "350px", hasFooter: true, extraActionLabel: _jsx(Trans, { id: "dataGrid.buttonClearConfig", message: "Reset config" }), cancelLabel: _jsx(Trans, { id: "form.buttonCancel", message: "Cancel" }), confirmLabel: _jsx(Trans, { id: "form.buttonConfirm", message: "Confirm" }), children: _jsx(ManageColumnForm, { columns: manageColumnsFormDefinitions, columnsConfigValues: columnsConfigValues, setColumnsConfigOptions: setColumnsConfigOptions, handleDragEnd: handleDragEnd }) }), _jsx(Modal, { isShown: isPresetsModalOpen, title: _jsx(Trans, { id: "dataGrid.presets.title", message: "Presets" }), onClose: onClosePresetsModal, width: "narrow", children: _jsx(PresetsModalBody, { onOpenCreatePresetModal: onOpenCreatePresetModal, gridPresets: gridSelectors.presets, handleSelectPreset: handleSelectPreset, handleOpenDeletePresetModal: handleOpenDeletePresetModal, selectedPresetName: selectedPresetName, handleExportPresets: handleExportPresets, handleImportPresets: handleImportPresets, handleImportButtonClick: handleImportButtonClick, fileInputRef: fileInputRef, filters: gridSelectors.filter }) }), _jsx(Modal, { isShown: isCreatePresetModalOpen, title: _jsx(Trans, { id: "dataGrid.createNewPreset.title", message: "Create new preset" }), onCancel: handleCloseCreatePresetModal, onConfirm: handleCreatePreset, isConfirmDisabled: !presetName, width: "narrow", children: _jsx(Input, { type: "text", onChange: handleChangePresetName, value: presetName, label: _jsx(Trans, { id: "dataGrid.presetName.title", message: "Preset name" }) }) }), _jsx(Modal, { isShown: isDeletePresetModalOpen, title: _jsx(Trans, { id: "dataGrid.deletePreset.title", message: "Delete preset" }), onCancel: onCloseDeletePresetModal, onConfirm: handleDeletePreset, isConfirmDisabled: !presetNameToDelete, width: "narrow", children: _jsxs(_Fragment, { children: [_jsx(Trans, { id: "dataGrid.deletePreset.confirm", message: "Are you sure you want to delete preset" }), " \"", presetNameToDelete, "\" ?"] }) })] }));
|
|
27
28
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ChangeEvent, type FC, MouseEvent, RefObject } from 'react';
|
|
2
|
-
import { Filtering } from '../../types';
|
|
2
|
+
import { Filtering, GridPresets } from '../../types';
|
|
3
3
|
type PresetsModalBodyProps = {
|
|
4
4
|
onOpenCreatePresetModal: () => void;
|
|
5
|
-
gridPresets
|
|
5
|
+
gridPresets?: GridPresets;
|
|
6
6
|
handleSelectPreset: (presetName: string, filters: Filtering) => () => void;
|
|
7
7
|
handleOpenDeletePresetModal: (presetName: string) => (e: MouseEvent) => void;
|
|
8
8
|
selectedPresetName: string;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ChangeEvent } from 'react';
|
|
2
|
-
import { Filtering } from '../types';
|
|
2
|
+
import { Filtering, GridActionsType } from '../types';
|
|
3
3
|
type Props = {
|
|
4
4
|
gridName?: string;
|
|
5
5
|
filters?: Filtering;
|
|
6
6
|
onClosePresetsModal: () => void;
|
|
7
7
|
setSelectedPresetName: (value: string) => void;
|
|
8
|
-
|
|
8
|
+
gridActions: GridActionsType;
|
|
9
9
|
};
|
|
10
10
|
type HookType = (props: Props) => {
|
|
11
11
|
isCreatePresetModalOpen: boolean;
|
|
@@ -1,21 +1,9 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
1
|
import { useCallback, useState } from 'react';
|
|
13
2
|
import { useModal } from '../../Modal/hooks/useModal';
|
|
14
|
-
import { presetsLocalStorageKey } from '../utils/constants';
|
|
15
3
|
import isEmpty from 'lodash/isEmpty';
|
|
16
4
|
import { useEvent } from './useEvent';
|
|
17
5
|
export var useCreatePreset = function (_a) {
|
|
18
|
-
var gridName = _a.gridName, filters = _a.filters, onClosePresetsModal = _a.onClosePresetsModal, setSelectedPresetName = _a.setSelectedPresetName,
|
|
6
|
+
var gridName = _a.gridName, filters = _a.filters, onClosePresetsModal = _a.onClosePresetsModal, setSelectedPresetName = _a.setSelectedPresetName, gridActions = _a.gridActions;
|
|
19
7
|
var _b = useModal(), isCreatePresetModalOpen = _b.isOpen, onOpenCreatePresetModal = _b.onOpen, onCloseCreatePresetModal = _b.onClose;
|
|
20
8
|
var _c = useState(''), presetName = _c[0], setPresetName = _c[1];
|
|
21
9
|
var handleChangePresetName = useCallback(function (event) {
|
|
@@ -27,19 +15,13 @@ export var useCreatePreset = function (_a) {
|
|
|
27
15
|
}, []);
|
|
28
16
|
var handleCreatePreset = useEvent(function () {
|
|
29
17
|
var _a;
|
|
30
|
-
var _b;
|
|
31
18
|
setPresetName('');
|
|
32
19
|
onCloseCreatePresetModal();
|
|
33
20
|
onClosePresetsModal();
|
|
34
21
|
if (isEmpty(filters) || !gridName)
|
|
35
22
|
return;
|
|
36
|
-
|
|
37
|
-
var presets = presetsAsString ? JSON.parse(presetsAsString) : {};
|
|
38
|
-
var updatedPresets = __assign({}, presets);
|
|
39
|
-
updatedPresets[gridName] = __assign(__assign({}, ((_b = updatedPresets[gridName]) !== null && _b !== void 0 ? _b : {})), (_a = {}, _a[presetName] = filters, _a));
|
|
40
|
-
setGridPresets(updatedPresets[gridName]);
|
|
23
|
+
(_a = gridActions.createPreset) === null || _a === void 0 ? void 0 : _a.call(gridActions, presetName, filters);
|
|
41
24
|
setSelectedPresetName(presetName);
|
|
42
|
-
localStorage.setItem(presetsLocalStorageKey, JSON.stringify(updatedPresets));
|
|
43
25
|
});
|
|
44
26
|
return {
|
|
45
27
|
isCreatePresetModalOpen: isCreatePresetModalOpen,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { MouseEvent } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { GridActionsType } from '../types';
|
|
3
3
|
type Props = {
|
|
4
4
|
gridName?: string;
|
|
5
5
|
selectedPresetName: string;
|
|
6
|
-
|
|
6
|
+
gridActions: GridActionsType;
|
|
7
7
|
setSelectedPresetName: (value: string) => void;
|
|
8
8
|
};
|
|
9
9
|
type HookType = (props: Props) => {
|
|
@@ -1,19 +1,7 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
1
|
import { useCallback } from 'react';
|
|
13
2
|
import { useModal } from '../../Modal/hooks/useModal';
|
|
14
|
-
import { presetsLocalStorageKey } from '../utils/constants';
|
|
15
3
|
export var useDeletePreset = function (_a) {
|
|
16
|
-
var selectedPresetName = _a.selectedPresetName, gridName = _a.gridName,
|
|
4
|
+
var selectedPresetName = _a.selectedPresetName, gridName = _a.gridName, gridActions = _a.gridActions, setSelectedPresetName = _a.setSelectedPresetName;
|
|
17
5
|
var _b = useModal(), isDeletePresetModalOpen = _b.isOpen, onOpenDeletePresetModal = _b.onOpen, onCloseDeletePresetModal = _b.onClose, presetNameToDelete = _b.data;
|
|
18
6
|
var handleOpenDeletePresetModal = useCallback(function (presetName) { return function (e) {
|
|
19
7
|
if (!presetName)
|
|
@@ -22,14 +10,10 @@ export var useDeletePreset = function (_a) {
|
|
|
22
10
|
onOpenDeletePresetModal(presetName);
|
|
23
11
|
}; }, [selectedPresetName]);
|
|
24
12
|
var handleDeletePreset = useCallback(function () {
|
|
13
|
+
var _a;
|
|
25
14
|
if (!gridName || !presetNameToDelete)
|
|
26
15
|
return;
|
|
27
|
-
|
|
28
|
-
var presets = presetsAsString ? JSON.parse(presetsAsString) : {};
|
|
29
|
-
var updatedPresets = __assign({}, presets);
|
|
30
|
-
delete updatedPresets[gridName][presetNameToDelete];
|
|
31
|
-
setGridPresets(updatedPresets[gridName]);
|
|
32
|
-
localStorage.setItem(presetsLocalStorageKey, JSON.stringify(updatedPresets));
|
|
16
|
+
(_a = gridActions.deletePreset) === null || _a === void 0 ? void 0 : _a.call(gridActions, presetNameToDelete);
|
|
33
17
|
if (selectedPresetName === presetNameToDelete) {
|
|
34
18
|
setSelectedPresetName('');
|
|
35
19
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { ChangeEvent, RefObject } from 'react';
|
|
2
|
+
import { GridActionsType, GridSelectorsType } from '../types';
|
|
2
3
|
type FileHandlersProps = {
|
|
3
4
|
gridName?: string;
|
|
4
|
-
|
|
5
|
+
gridActions: GridActionsType;
|
|
6
|
+
gridSelectors: GridSelectorsType;
|
|
5
7
|
};
|
|
6
8
|
type HookType = (props: FileHandlersProps) => {
|
|
7
9
|
handleExportPresets: () => void;
|
|
@@ -1,25 +1,11 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
1
|
import { useRef, useCallback } from 'react';
|
|
13
|
-
import { presetsLocalStorageKey } from '../utils/constants';
|
|
14
2
|
export var usePresetFileHandlers = function (_a) {
|
|
15
|
-
var gridName = _a.gridName,
|
|
3
|
+
var gridName = _a.gridName, gridActions = _a.gridActions, gridSelectors = _a.gridSelectors;
|
|
16
4
|
var fileInputRef = useRef(null);
|
|
17
5
|
var handleExportPresets = useCallback(function () {
|
|
18
6
|
if (!gridName)
|
|
19
7
|
return;
|
|
20
|
-
var
|
|
21
|
-
var presets = presetsAsString ? JSON.parse(presetsAsString) : {};
|
|
22
|
-
var blob = new Blob([JSON.stringify(presets[gridName], null, 2)], {
|
|
8
|
+
var blob = new Blob([JSON.stringify(gridSelectors.presets, null, 2)], {
|
|
23
9
|
type: 'application/json'
|
|
24
10
|
});
|
|
25
11
|
var link = document.createElement('a');
|
|
@@ -39,15 +25,10 @@ export var usePresetFileHandlers = function (_a) {
|
|
|
39
25
|
var reader = new FileReader();
|
|
40
26
|
reader.readAsText(file);
|
|
41
27
|
reader.onload = function (e) {
|
|
42
|
-
var _a;
|
|
43
|
-
var _b;
|
|
28
|
+
var _a, _b;
|
|
44
29
|
try {
|
|
45
|
-
var fileContent = JSON.parse((
|
|
46
|
-
|
|
47
|
-
var presets = presetsAsString ? JSON.parse(presetsAsString) : {};
|
|
48
|
-
var newPresets = JSON.stringify(__assign(__assign({}, presets), (_a = {}, _a[gridName] = fileContent, _a)));
|
|
49
|
-
localStorage.setItem(presetsLocalStorageKey, newPresets);
|
|
50
|
-
setGridPresets(fileContent);
|
|
30
|
+
var fileContent = JSON.parse((_a = e.target) === null || _a === void 0 ? void 0 : _a.result);
|
|
31
|
+
(_b = gridActions.setPresets) === null || _b === void 0 ? void 0 : _b.call(gridActions, fileContent);
|
|
51
32
|
}
|
|
52
33
|
catch (error) {
|
|
53
34
|
console.warn('Error parsing JSON file:', error);
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import { Filtering, GridActionsType } from '../types';
|
|
1
|
+
import { Filtering, GridActionsType, GridSelectorsType } from '../types';
|
|
2
2
|
type Props = {
|
|
3
3
|
gridName?: string;
|
|
4
4
|
gridActions: GridActionsType;
|
|
5
|
+
gridSelectors?: GridSelectorsType;
|
|
5
6
|
setSelectedPresetName: (value: string) => void;
|
|
6
7
|
onClosePresetsModal: () => void;
|
|
7
8
|
filters?: Filtering;
|
|
8
9
|
};
|
|
9
10
|
type HookType = (props: Props) => {
|
|
10
|
-
gridPresets: Record<string, Filtering>;
|
|
11
11
|
handleSelectPreset: (presetName: string, filters: Filtering) => () => void;
|
|
12
|
-
setGridPresets: (data: Record<string, Filtering>) => void;
|
|
13
12
|
};
|
|
14
13
|
export declare const useSelectPreset: HookType;
|
|
15
14
|
export {};
|
|
@@ -1,22 +1,8 @@
|
|
|
1
|
-
import { useCallback, useEffect
|
|
2
|
-
import { presetsLocalStorageKey } from '../utils/constants';
|
|
1
|
+
import { useCallback, useEffect } from 'react';
|
|
3
2
|
import isEqual from 'lodash/isEqual';
|
|
4
|
-
var getInitialPresets = function (gridName) {
|
|
5
|
-
var _a;
|
|
6
|
-
if (!gridName)
|
|
7
|
-
return {};
|
|
8
|
-
try {
|
|
9
|
-
var presetsAsString = localStorage.getItem(presetsLocalStorageKey);
|
|
10
|
-
var presets = presetsAsString ? JSON.parse(presetsAsString) : {};
|
|
11
|
-
return gridName ? (_a = presets[gridName]) !== null && _a !== void 0 ? _a : {} : {};
|
|
12
|
-
}
|
|
13
|
-
catch (error) {
|
|
14
|
-
console.error('Error parsing JSON file:', error);
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
3
|
export var useSelectPreset = function (_a) {
|
|
18
|
-
var gridName = _a.gridName, gridActions = _a.gridActions, setSelectedPresetName = _a.setSelectedPresetName, onClosePresetsModal = _a.onClosePresetsModal, filters = _a.filters;
|
|
19
|
-
var
|
|
4
|
+
var gridName = _a.gridName, gridActions = _a.gridActions, gridSelectors = _a.gridSelectors, setSelectedPresetName = _a.setSelectedPresetName, onClosePresetsModal = _a.onClosePresetsModal, filters = _a.filters;
|
|
5
|
+
var gridPresets = gridSelectors === null || gridSelectors === void 0 ? void 0 : gridSelectors.presets;
|
|
20
6
|
var handleSelectPreset = useCallback(function (presetName, filters) { return function () {
|
|
21
7
|
var _a;
|
|
22
8
|
setSelectedPresetName(presetName);
|
|
@@ -33,5 +19,5 @@ export var useSelectPreset = function (_a) {
|
|
|
33
19
|
});
|
|
34
20
|
activePreset ? setSelectedPresetName(activePreset[0]) : setSelectedPresetName('');
|
|
35
21
|
}, [filters]);
|
|
36
|
-
return {
|
|
22
|
+
return { handleSelectPreset: handleSelectPreset };
|
|
37
23
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FilterProps, SortingValueType, InitProps, GridState, GridSelectorsType, ColumnConfig, Filtering } from '../types';
|
|
1
|
+
import { FilterProps, SortingValueType, InitProps, GridState, GridSelectorsType, ColumnConfig, Filtering, GridPresets } from '../types';
|
|
2
2
|
type DefaultRootState = {};
|
|
3
3
|
export type MultiState = {
|
|
4
4
|
[key: string]: GridState;
|
|
@@ -13,6 +13,9 @@ export declare const actionTypes: {
|
|
|
13
13
|
closeConfigForm: string;
|
|
14
14
|
setColumnConfig: string;
|
|
15
15
|
setPage: string;
|
|
16
|
+
setPresets: string;
|
|
17
|
+
createPreset: string;
|
|
18
|
+
deletePreset: string;
|
|
16
19
|
setRowsPerPage: string;
|
|
17
20
|
resetFilters: string;
|
|
18
21
|
addFilter: string;
|
|
@@ -33,6 +36,9 @@ export declare const createActions: (gridName: string) => {
|
|
|
33
36
|
closeConfigForm: () => Action;
|
|
34
37
|
setColumnConfig: (columnConfig: ColumnConfig) => Action;
|
|
35
38
|
setPage: (page: number) => Action;
|
|
39
|
+
setPresets: (presets: GridPresets) => Action;
|
|
40
|
+
createPreset: (presetName: string, filters: Filtering) => Action;
|
|
41
|
+
deletePreset: (presetName: string) => Action;
|
|
36
42
|
setColumnWidth: (columnsWidth: {
|
|
37
43
|
[anyKey: string]: number;
|
|
38
44
|
} | null, columnLayout: 'normal' | 'no-scroll' | 'sticky') => Action;
|
|
@@ -12,9 +12,11 @@ var __assign = (this && this.__assign) || function () {
|
|
|
12
12
|
import produce from 'immer';
|
|
13
13
|
import { createSelector } from 'reselect';
|
|
14
14
|
import getOr from 'lodash/fp/getOr';
|
|
15
|
+
import omit from 'lodash/omit';
|
|
15
16
|
import migrateState from './migrateState';
|
|
16
17
|
export var initialState = {
|
|
17
18
|
page: 1,
|
|
19
|
+
presets: {},
|
|
18
20
|
sorting: [],
|
|
19
21
|
isConfigFormOpen: false,
|
|
20
22
|
uxState: {
|
|
@@ -36,6 +38,9 @@ export var actionTypes = {
|
|
|
36
38
|
closeConfigForm: "".concat(actionPrefix, "/closeConfigForm"),
|
|
37
39
|
setColumnConfig: "".concat(actionPrefix, "/setColumnConfig"),
|
|
38
40
|
setPage: "".concat(actionPrefix, "/setPage"),
|
|
41
|
+
setPresets: "".concat(actionPrefix, "/setPresets"),
|
|
42
|
+
createPreset: "".concat(actionPrefix, "/createPreset"),
|
|
43
|
+
deletePreset: "".concat(actionPrefix, "/deletePreset"),
|
|
39
44
|
setRowsPerPage: "".concat(actionPrefix, "/setRowsPerPage"),
|
|
40
45
|
resetFilters: "".concat(actionPrefix, "/resetFilters"),
|
|
41
46
|
addFilter: "".concat(actionPrefix, "/addFilter"),
|
|
@@ -50,8 +55,8 @@ var migrationChecked = false;
|
|
|
50
55
|
export default (function (state, action) {
|
|
51
56
|
if (state === void 0) { state = {}; }
|
|
52
57
|
return produce(state, function (draft) {
|
|
53
|
-
var _a, _b;
|
|
54
|
-
var
|
|
58
|
+
var _a, _b, _c;
|
|
59
|
+
var _d, _e, _f, _g, _h;
|
|
55
60
|
// version migrations
|
|
56
61
|
if (!migrationChecked && state && Object.keys(state).length > 0) {
|
|
57
62
|
draft = migrateState(draft);
|
|
@@ -70,7 +75,7 @@ export default (function (state, action) {
|
|
|
70
75
|
draft[gridName].page = 1;
|
|
71
76
|
if (defaultSorting) {
|
|
72
77
|
draft[gridName].defaultSorting = defaultSorting;
|
|
73
|
-
draft[gridName].sorting = ((
|
|
78
|
+
draft[gridName].sorting = ((_d = draft[gridName].sorting) === null || _d === void 0 ? void 0 : _d.length) ? draft[gridName].sorting : defaultSorting;
|
|
74
79
|
}
|
|
75
80
|
break;
|
|
76
81
|
case actionTypes.clearUxState:
|
|
@@ -104,12 +109,12 @@ export default (function (state, action) {
|
|
|
104
109
|
case actionTypes.addSorting:
|
|
105
110
|
var direction = action.direction;
|
|
106
111
|
var sortingColumn = action.column;
|
|
107
|
-
if (((
|
|
112
|
+
if (((_g = (_f = (_e = draft[gridName]) === null || _e === void 0 ? void 0 : _e.defaultSorting) === null || _f === void 0 ? void 0 : _f[0]) === null || _g === void 0 ? void 0 : _g.column) === sortingColumn && direction === null) {
|
|
108
113
|
direction = 'asc';
|
|
109
114
|
}
|
|
110
115
|
var sorting = [{ column: sortingColumn, direction: direction }];
|
|
111
116
|
if (direction === null) {
|
|
112
|
-
sorting = ((
|
|
117
|
+
sorting = ((_h = draft[gridName]) === null || _h === void 0 ? void 0 : _h.defaultSorting) || [];
|
|
113
118
|
}
|
|
114
119
|
draft[gridName].sorting = sorting;
|
|
115
120
|
break;
|
|
@@ -121,6 +126,15 @@ export default (function (state, action) {
|
|
|
121
126
|
case actionTypes.setPage:
|
|
122
127
|
draft[gridName].page = action.page;
|
|
123
128
|
break;
|
|
129
|
+
case actionTypes.setPresets:
|
|
130
|
+
draft[gridName].presets = action.presets;
|
|
131
|
+
break;
|
|
132
|
+
case actionTypes.createPreset:
|
|
133
|
+
draft[gridName].presets = __assign(__assign({}, (draft[gridName].presets || {})), (_c = {}, _c[action.presetName] = action.filters, _c));
|
|
134
|
+
break;
|
|
135
|
+
case actionTypes.deletePreset:
|
|
136
|
+
draft[gridName].presets = omit(draft[gridName].presets, action.presetName);
|
|
137
|
+
break;
|
|
124
138
|
case actionTypes.setRowsPerPage:
|
|
125
139
|
draft[gridName].rowsPerPage = action.rowsPerPage;
|
|
126
140
|
break;
|
|
@@ -156,6 +170,14 @@ export var createActions = function (gridName) { return ({
|
|
|
156
170
|
closeConfigForm: function () { return ({ gridName: gridName, type: actionTypes.closeConfigForm }); },
|
|
157
171
|
setColumnConfig: function (columnConfig) { return ({ gridName: gridName, type: actionTypes.setColumnConfig, columnConfig: columnConfig }); },
|
|
158
172
|
setPage: function (page) { return ({ gridName: gridName, type: actionTypes.setPage, page: page }); },
|
|
173
|
+
setPresets: function (presets) { return ({ gridName: gridName, type: actionTypes.setPresets, presets: presets }); },
|
|
174
|
+
createPreset: function (presetName, filters) { return ({
|
|
175
|
+
gridName: gridName,
|
|
176
|
+
type: actionTypes.createPreset,
|
|
177
|
+
presetName: presetName,
|
|
178
|
+
filters: filters
|
|
179
|
+
}); },
|
|
180
|
+
deletePreset: function (presetName) { return ({ gridName: gridName, type: actionTypes.deletePreset, presetName: presetName }); },
|
|
159
181
|
setColumnWidth: function (columnsWidth, columnLayout) { return ({
|
|
160
182
|
gridName: gridName,
|
|
161
183
|
type: actionTypes.setColumnWidth,
|
|
@@ -189,6 +189,7 @@ export type UxState = {
|
|
|
189
189
|
export type ColumnLayout = 'normal' | 'no-scroll' | 'sticky';
|
|
190
190
|
export type GridState = {
|
|
191
191
|
page: number;
|
|
192
|
+
presets: GridPresets;
|
|
192
193
|
rowsPerPage?: number;
|
|
193
194
|
filter: Settings['filter'];
|
|
194
195
|
sorting: Settings['sorting'];
|
|
@@ -206,6 +207,7 @@ export type GridSelectorsType = {
|
|
|
206
207
|
uxState?: UxState;
|
|
207
208
|
columnConfig?: ColumnConfig;
|
|
208
209
|
page?: number;
|
|
210
|
+
presets?: GridPresets;
|
|
209
211
|
rowsPerPage?: number;
|
|
210
212
|
filter?: Settings['filter'];
|
|
211
213
|
sorting?: Settings['sorting'];
|
|
@@ -227,6 +229,9 @@ export type GridActionsType = {
|
|
|
227
229
|
handleUxChange?: (uxKey: keyof UxState, uxValue: any) => void;
|
|
228
230
|
setColumnConfig?: (columnConfig: ColumnConfig) => void | Promise<any>;
|
|
229
231
|
setPage?: (number: number) => void;
|
|
232
|
+
setPresets?: (presets: Filtering) => void;
|
|
233
|
+
createPreset?: (presetName: string, filters: Filtering) => void;
|
|
234
|
+
deletePreset?: (presetName: string) => void;
|
|
230
235
|
setRowsPerPage?: (number: number) => RowsPerPageType | null;
|
|
231
236
|
addFilter?: (column: string, value: any, filterProps: FilterProps) => void;
|
|
232
237
|
setFilters?: (filters: Filtering) => void;
|
|
@@ -330,4 +335,5 @@ export type Comparator = {
|
|
|
330
335
|
value: string;
|
|
331
336
|
icon?: string;
|
|
332
337
|
};
|
|
338
|
+
export type GridPresets = Record<string, Filtering>;
|
|
333
339
|
export {};
|