@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mailstep/design-system",
3
- "version": "0.7.10",
3
+ "version": "0.7.11-beta.1",
4
4
  "license": "ISC",
5
5
  "type": "module",
6
6
  "main": "./ui/index.js",
@@ -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 _b = useSelectPreset({
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
- }), gridPresets = _b.gridPresets, setGridPresets = _b.setGridPresets, handleSelectPreset = _b.handleSelectPreset;
20
- var _c = useCreatePreset({ gridName: gridName, setGridPresets: setGridPresets, onClosePresetsModal: onClosePresetsModal, setSelectedPresetName: setSelectedPresetName, filters: gridSelectors.filter }), isCreatePresetModalOpen = _c.isCreatePresetModalOpen, handleCloseCreatePresetModal = _c.handleCloseCreatePresetModal, onOpenCreatePresetModal = _c.onOpenCreatePresetModal, handleCreatePreset = _c.handleCreatePreset, presetName = _c.presetName, handleChangePresetName = _c.handleChangePresetName;
21
- var _d = useDeletePreset({ gridName: gridName, selectedPresetName: selectedPresetName, setGridPresets: setGridPresets, setSelectedPresetName: setSelectedPresetName }), handleOpenDeletePresetModal = _d.handleOpenDeletePresetModal, handleDeletePreset = _d.handleDeletePreset, onCloseDeletePresetModal = _d.onCloseDeletePresetModal, presetNameToDelete = _d.presetNameToDelete, isDeletePresetModalOpen = _d.isDeletePresetModalOpen;
22
- var _e = usePresetFileHandlers({
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
- setGridPresets: setGridPresets
25
- }), fileInputRef = _e.fileInputRef, handleImportPresets = _e.handleImportPresets, handleExportPresets = _e.handleExportPresets, handleImportButtonClick = _e.handleImportButtonClick;
26
- 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: gridPresets, 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, "\" ?"] }) })] }));
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: Record<string, Record<string, any>>;
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
- setGridPresets: (data: Record<string, Filtering>) => void;
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, setGridPresets = _a.setGridPresets;
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
- var presetsAsString = localStorage.getItem(presetsLocalStorageKey);
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 { Filtering } from '../types';
2
+ import { GridActionsType } from '../types';
3
3
  type Props = {
4
4
  gridName?: string;
5
5
  selectedPresetName: string;
6
- setGridPresets: (data: Record<string, Filtering>) => void;
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, setGridPresets = _a.setGridPresets, setSelectedPresetName = _a.setSelectedPresetName;
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
- var presetsAsString = localStorage.getItem(presetsLocalStorageKey);
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
- setGridPresets: (data: Record<string, any>) => void;
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, setGridPresets = _a.setGridPresets;
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 presetsAsString = localStorage.getItem(presetsLocalStorageKey);
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((_b = e.target) === null || _b === void 0 ? void 0 : _b.result);
46
- var presetsAsString = localStorage.getItem(presetsLocalStorageKey);
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, useState } from 'react';
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 _b = useState(getInitialPresets(gridName)), gridPresets = _b[0], setGridPresets = _b[1];
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 { gridPresets: gridPresets, setGridPresets: setGridPresets, handleSelectPreset: handleSelectPreset };
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 _c, _d, _e, _f, _g;
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 = ((_c = draft[gridName].sorting) === null || _c === void 0 ? void 0 : _c.length) ? draft[gridName].sorting : defaultSorting;
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 (((_f = (_e = (_d = draft[gridName]) === null || _d === void 0 ? void 0 : _d.defaultSorting) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.column) === sortingColumn && direction === null) {
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 = ((_g = draft[gridName]) === null || _g === void 0 ? void 0 : _g.defaultSorting) || [];
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 {};
@@ -1,4 +1,3 @@
1
- export declare const presetsLocalStorageKey = "commonGridPresets";
2
1
  export declare const rowsPerPageOptions: {
3
2
  value: number;
4
3
  label: number;
@@ -1,4 +1,3 @@
1
- export var presetsLocalStorageKey = 'commonGridPresets';
2
1
  export var rowsPerPageOptions = [
3
2
  { value: 10, label: 10 },
4
3
  { value: 20, label: 20 },