@cloud-ru/uikit-product-mobile-table 0.16.2 → 0.17.0
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/CHANGELOG.md +24 -0
- package/dist/cjs/components/AdaptiveServerTable/AdaptiveServerTable.js +7 -6
- package/dist/{esm/components → cjs/components/AdaptiveServerTable}/constants.d.ts +0 -1
- package/dist/cjs/components/{constants.js → AdaptiveServerTable/constants.js} +1 -2
- package/dist/cjs/components/{utils.d.ts → AdaptiveServerTable/utils.d.ts} +0 -2
- package/dist/cjs/components/{utils.js → AdaptiveServerTable/utils.js} +1 -11
- package/dist/cjs/components/MobileTable/MobileTable.d.ts +7 -0
- package/dist/cjs/components/{MobileTable.js → MobileTable/MobileTable.js} +33 -10
- package/dist/cjs/components/MobileTable/hooks/index.d.ts +2 -0
- package/dist/cjs/components/MobileTable/hooks/index.js +18 -0
- package/dist/cjs/components/MobileTable/hooks/useFilters/index.d.ts +1 -0
- package/dist/cjs/components/MobileTable/hooks/useFilters/index.js +17 -0
- package/dist/cjs/components/MobileTable/hooks/useFilters/useFilters.d.ts +78 -0
- package/dist/cjs/components/MobileTable/hooks/useFilters/useFilters.js +31 -0
- package/dist/cjs/components/MobileTable/hooks/useFilters/utils/getInitialColumnsFiltersOpenValue.d.ts +2 -0
- package/dist/cjs/components/MobileTable/hooks/useFilters/utils/getInitialColumnsFiltersOpenValue.js +11 -0
- package/dist/cjs/components/MobileTable/hooks/useFilters/utils/index.d.ts +1 -0
- package/dist/cjs/components/MobileTable/hooks/useFilters/utils/index.js +17 -0
- package/dist/cjs/components/{hooks.d.ts → MobileTable/hooks/useLoadingTable.d.ts} +0 -8
- package/dist/cjs/components/{hooks.js → MobileTable/hooks/useLoadingTable.js} +1 -15
- package/dist/cjs/components/MobileTable/index.d.ts +3 -0
- package/dist/cjs/components/MobileTable/index.js +21 -0
- package/dist/cjs/components/MobileTable/types.d.ts +11 -0
- package/dist/cjs/components/MobileTable/types.js +2 -0
- package/dist/cjs/components/MobileTable/utils/fuzzyFilter.d.ts +2 -0
- package/dist/cjs/components/MobileTable/utils/fuzzyFilter.js +13 -0
- package/dist/cjs/components/MobileTable/utils/index.d.ts +2 -0
- package/dist/cjs/components/MobileTable/utils/index.js +18 -0
- package/dist/cjs/components/MobileTable/utils/saveTableState/getPersistedStateValidator.d.ts +4 -0
- package/dist/cjs/components/MobileTable/utils/saveTableState/getPersistedStateValidator.js +13 -0
- package/dist/cjs/components/MobileTable/utils/saveTableState/index.d.ts +3 -0
- package/dist/cjs/components/MobileTable/utils/saveTableState/index.js +19 -0
- package/dist/cjs/components/MobileTable/utils/saveTableState/mappers.d.ts +18 -0
- package/dist/cjs/components/MobileTable/utils/saveTableState/mappers.js +45 -0
- package/dist/cjs/components/MobileTable/utils/saveTableState/validators.d.ts +5 -0
- package/dist/cjs/components/MobileTable/utils/saveTableState/validators.js +13 -0
- package/dist/cjs/constants.d.ts +1 -0
- package/dist/cjs/constants.js +2 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/esm/components/AdaptiveServerTable/AdaptiveServerTable.js +5 -4
- package/dist/{cjs/components → esm/components/AdaptiveServerTable}/constants.d.ts +0 -1
- package/dist/esm/components/{constants.js → AdaptiveServerTable/constants.js} +0 -1
- package/dist/esm/components/{utils.d.ts → AdaptiveServerTable/utils.d.ts} +0 -2
- package/dist/esm/components/AdaptiveServerTable/utils.js +5 -0
- package/dist/esm/components/MobileTable/MobileTable.d.ts +7 -0
- package/dist/esm/components/{MobileTable.js → MobileTable/MobileTable.js} +33 -10
- package/dist/esm/components/MobileTable/hooks/index.d.ts +2 -0
- package/dist/esm/components/MobileTable/hooks/index.js +2 -0
- package/dist/esm/components/MobileTable/hooks/useFilters/index.d.ts +1 -0
- package/dist/esm/components/MobileTable/hooks/useFilters/index.js +1 -0
- package/dist/esm/components/MobileTable/hooks/useFilters/useFilters.d.ts +78 -0
- package/dist/esm/components/MobileTable/hooks/useFilters/useFilters.js +28 -0
- package/dist/esm/components/MobileTable/hooks/useFilters/utils/getInitialColumnsFiltersOpenValue.d.ts +2 -0
- package/dist/esm/components/MobileTable/hooks/useFilters/utils/getInitialColumnsFiltersOpenValue.js +8 -0
- package/dist/esm/components/MobileTable/hooks/useFilters/utils/index.d.ts +1 -0
- package/dist/esm/components/MobileTable/hooks/useFilters/utils/index.js +1 -0
- package/dist/esm/components/{hooks.d.ts → MobileTable/hooks/useLoadingTable.d.ts} +0 -8
- package/dist/esm/components/MobileTable/hooks/useLoadingTable.js +17 -0
- package/dist/esm/components/MobileTable/index.d.ts +3 -0
- package/dist/esm/components/MobileTable/index.js +3 -0
- package/dist/esm/components/MobileTable/types.d.ts +11 -0
- package/dist/esm/components/MobileTable/types.js +1 -0
- package/dist/esm/components/MobileTable/utils/fuzzyFilter.d.ts +2 -0
- package/dist/esm/components/{utils.js → MobileTable/utils/fuzzyFilter.js} +0 -5
- package/dist/esm/components/MobileTable/utils/index.d.ts +2 -0
- package/dist/esm/components/MobileTable/utils/index.js +2 -0
- package/dist/esm/components/MobileTable/utils/saveTableState/getPersistedStateValidator.d.ts +4 -0
- package/dist/esm/components/MobileTable/utils/saveTableState/getPersistedStateValidator.js +9 -0
- package/dist/esm/components/MobileTable/utils/saveTableState/index.d.ts +3 -0
- package/dist/esm/components/MobileTable/utils/saveTableState/index.js +3 -0
- package/dist/esm/components/MobileTable/utils/saveTableState/mappers.d.ts +18 -0
- package/dist/esm/components/MobileTable/utils/saveTableState/mappers.js +37 -0
- package/dist/esm/components/MobileTable/utils/saveTableState/validators.d.ts +5 -0
- package/dist/esm/components/MobileTable/utils/saveTableState/validators.js +7 -0
- package/dist/esm/constants.d.ts +1 -0
- package/dist/esm/constants.js +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/package.json +12 -9
- package/src/components/AdaptiveServerTable/AdaptiveServerTable.tsx +5 -4
- package/src/components/{constants.ts → AdaptiveServerTable/constants.ts} +0 -1
- package/src/components/AdaptiveServerTable/utils.ts +12 -0
- package/src/components/{MobileTable.tsx → MobileTable/MobileTable.tsx} +50 -55
- package/src/components/MobileTable/hooks/index.ts +2 -0
- package/src/components/MobileTable/hooks/useFilters/index.ts +1 -0
- package/src/components/MobileTable/hooks/useFilters/useFilters.ts +57 -0
- package/src/components/MobileTable/hooks/useFilters/utils/getInitialColumnsFiltersOpenValue.ts +13 -0
- package/src/components/MobileTable/hooks/useFilters/utils/index.ts +1 -0
- package/src/components/{hooks.tsx → MobileTable/hooks/useLoadingTable.tsx} +1 -22
- package/src/components/MobileTable/index.ts +3 -0
- package/src/components/MobileTable/types.ts +44 -0
- package/src/components/{utils.ts → MobileTable/utils/fuzzyFilter.ts} +0 -12
- package/src/components/MobileTable/utils/index.ts +2 -0
- package/src/components/MobileTable/utils/saveTableState/getPersistedStateValidator.ts +21 -0
- package/src/components/MobileTable/utils/saveTableState/index.ts +3 -0
- package/src/components/MobileTable/utils/saveTableState/mappers.ts +62 -0
- package/src/components/MobileTable/utils/saveTableState/validators.ts +21 -0
- package/src/constants.ts +2 -0
- package/src/helperComponents/ColumnsSettings/ColumnsSettings.tsx +1 -0
- package/src/index.ts +1 -0
- package/dist/cjs/components/MobileTable.d.ts +0 -13
- package/dist/esm/components/MobileTable.d.ts +0 -13
- package/dist/esm/components/hooks.js +0 -30
- /package/dist/cjs/components/{styles.module.css → MobileTable/styles.module.css} +0 -0
- /package/dist/esm/components/{styles.module.css → MobileTable/styles.module.css} +0 -0
- /package/src/components/{styles.module.scss → MobileTable/styles.module.scss} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,30 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# 0.17.0 (2026-01-21)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **FF-7319:** mobile table persistent filters state and structure refactoring ([80e26a3](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/80e26a317a9b25eb8af327329a4b14d47e6b8b60))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## 0.16.3 (2025-12-17)
|
|
18
|
+
|
|
19
|
+
### Only dependencies have been changed
|
|
20
|
+
* [@cloud-ru/uikit-product-icons@16.1.1](https://gitverse.ru/cloud-ru-tech/uikit-product/-/blob/master/packages/icons/CHANGELOG.md)
|
|
21
|
+
* [@cloud-ru/uikit-product-mobile-chips@0.8.47](https://gitverse.ru/cloud-ru-tech/uikit-product/-/blob/master/packages/mobile-chips/CHANGELOG.md)
|
|
22
|
+
* [@cloud-ru/uikit-product-mobile-dropdown@0.9.31](https://gitverse.ru/cloud-ru-tech/uikit-product/-/blob/master/packages/mobile-dropdown/CHANGELOG.md)
|
|
23
|
+
* [@cloud-ru/uikit-product-mobile-toolbar@0.4.14](https://gitverse.ru/cloud-ru-tech/uikit-product/-/blob/master/packages/mobile-toolbar/CHANGELOG.md)
|
|
24
|
+
* [@cloud-ru/uikit-product-utils@8.1.0](https://gitverse.ru/cloud-ru-tech/uikit-product/-/blob/master/packages/utils/CHANGELOG.md)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
6
30
|
## 0.16.2 (2025-12-12)
|
|
7
31
|
|
|
8
32
|
### Only dependencies have been changed
|
|
@@ -15,15 +15,16 @@ exports.AdaptiveServerTable = AdaptiveServerTable;
|
|
|
15
15
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
16
|
const react_1 = require("react");
|
|
17
17
|
const table_1 = require("@snack-uikit/table");
|
|
18
|
-
const
|
|
19
|
-
const
|
|
18
|
+
const utils_1 = require("@snack-uikit/utils");
|
|
19
|
+
const constants_1 = require("../../constants");
|
|
20
20
|
const MobileTable_1 = require("../MobileTable");
|
|
21
|
-
const
|
|
21
|
+
const constants_2 = require("./constants");
|
|
22
|
+
const utils_2 = require("./utils");
|
|
22
23
|
function AdaptiveServerTable(_a) {
|
|
23
24
|
var { layoutType } = _a, props = __rest(_a, ["layoutType"]);
|
|
24
25
|
const isMobile = layoutType === 'mobile';
|
|
25
|
-
const { onChangePage, search: searchProp, pagination, items, total =
|
|
26
|
-
const
|
|
26
|
+
const { onChangePage, search: searchProp, pagination, items, total = constants_2.DEFAULT_PAGINATION_LIMIT, limit = constants_2.DEFAULT_PAGINATION_LIMIT, offset = 0 } = props, rest = __rest(props, ["onChangePage", "search", "pagination", "items", "total", "limit", "offset"]);
|
|
27
|
+
const [search, setSearch] = (0, utils_1.useValueControl)(searchProp !== null && searchProp !== void 0 ? searchProp : { defaultValue: '' });
|
|
27
28
|
const [tempSearch, setTempSearch] = (0, react_1.useState)(search || '');
|
|
28
29
|
(0, react_1.useEffect)(() => {
|
|
29
30
|
var _a;
|
|
@@ -35,7 +36,7 @@ function AdaptiveServerTable(_a) {
|
|
|
35
36
|
}, [searchProp === null || searchProp === void 0 ? void 0 : searchProp.state]);
|
|
36
37
|
const handleSearch = (0, react_1.useCallback)((newValue) => {
|
|
37
38
|
setTempSearch(newValue);
|
|
38
|
-
(0,
|
|
39
|
+
(0, utils_2.onSearchDebounced)(newValue.trim(), setSearch);
|
|
39
40
|
}, [setSearch]);
|
|
40
41
|
const handlePageChange = (0, react_1.useCallback)(({ pageSize, pageIndex }) => onChangePage(pageIndex * pageSize, pageSize), [onChangePage]);
|
|
41
42
|
const pageIndex = (0, react_1.useMemo)(() => Math.floor(offset / limit), [limit, offset]);
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_PAGINATION_LIMIT = exports.SEARCH_DELAY =
|
|
4
|
-
exports.DEFAULT_PAGE_SIZE = 5;
|
|
3
|
+
exports.DEFAULT_PAGINATION_LIMIT = exports.SEARCH_DELAY = void 0;
|
|
5
4
|
exports.SEARCH_DELAY = 500;
|
|
6
5
|
exports.DEFAULT_PAGINATION_LIMIT = 10;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { FilterFn } from '@tanstack/react-table';
|
|
2
|
-
export declare const fuzzyFilter: FilterFn<any>;
|
|
3
1
|
type OnSearchDebouncedType = (newValue: string, onChange: (newValue: string) => void) => void;
|
|
4
2
|
export declare const onSearchDebounced: OnSearchDebouncedType;
|
|
5
3
|
export {};
|
|
@@ -3,19 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.onSearchDebounced =
|
|
7
|
-
const match_sorter_utils_1 = require("@tanstack/match-sorter-utils");
|
|
6
|
+
exports.onSearchDebounced = void 0;
|
|
8
7
|
const lodash_debounce_1 = __importDefault(require("lodash.debounce"));
|
|
9
8
|
const constants_1 = require("./constants");
|
|
10
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
|
-
const fuzzyFilter = (row, columnId, value, addMeta) => {
|
|
12
|
-
const itemRank = (0, match_sorter_utils_1.rankItem)(row.getValue(columnId), value);
|
|
13
|
-
addMeta({
|
|
14
|
-
itemRank,
|
|
15
|
-
});
|
|
16
|
-
return itemRank.passed;
|
|
17
|
-
};
|
|
18
|
-
exports.fuzzyFilter = fuzzyFilter;
|
|
19
9
|
exports.onSearchDebounced = (0, lodash_debounce_1.default)((newValue, onChange) => {
|
|
20
10
|
onChange(newValue);
|
|
21
11
|
}, constants_1.SEARCH_DELAY);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FiltersState } from '@cloud-ru/uikit-product-mobile-chips';
|
|
2
|
+
import { MobileTableProps } from './types';
|
|
3
|
+
export declare function MobileTable<TData extends object, TFilters extends FiltersState = Record<string, unknown>>({ data, columnDefinitions, headlineId, suppressPagination, suppressToolbar, suppressSearch, enableFuzzySearch, search, onRefresh, toolbarAfter, moreActions, columnFilters, className, headerBackground, noDataState, noResultsState, errorDataState, loading, dataError, dataFiltered, pagination: paginationProp, pageCount, sorting: sortingProp, manualSorting, manualPagination, manualFiltering, autoResetPageIndex, getRowId, rowSelection: rowSelectionProp, bulkActions: bulkActionsProp, columnsSettings: columnsSettingsProp, savedState, ...rest }: MobileTableProps<TData, TFilters>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export declare namespace MobileTable {
|
|
5
|
+
var getRowActionsColumnDef: typeof import("../../helperComponents").getRowActionsColumnDef;
|
|
6
|
+
var getStatusColumnDef: typeof import("../../helperComponents").getStatusColumnDef;
|
|
7
|
+
}
|
|
@@ -24,19 +24,19 @@ const uikit_product_mobile_toolbar_1 = require("@cloud-ru/uikit-product-mobile-t
|
|
|
24
24
|
const uikit_product_utils_1 = require("@cloud-ru/uikit-product-utils");
|
|
25
25
|
const skeleton_1 = require("@snack-uikit/skeleton");
|
|
26
26
|
const table_1 = require("@snack-uikit/table");
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
const
|
|
27
|
+
const utils_1 = require("@snack-uikit/utils");
|
|
28
|
+
const constants_1 = require("../../constants");
|
|
29
|
+
const helperComponents_1 = require("../../helperComponents");
|
|
30
30
|
const hooks_1 = require("./hooks");
|
|
31
31
|
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
32
|
-
const
|
|
32
|
+
const utils_2 = require("./utils");
|
|
33
33
|
function MobileTable(_a) {
|
|
34
34
|
var { data, columnDefinitions, headlineId, suppressPagination = false, suppressToolbar = false, suppressSearch = false, enableFuzzySearch = false, search, onRefresh, toolbarAfter, moreActions, columnFilters, className, headerBackground = 'default', noDataState, noResultsState, errorDataState, loading, dataError, dataFiltered, pagination: paginationProp, pageCount, sorting: sortingProp, manualSorting = false, manualPagination = false, manualFiltering = false, autoResetPageIndex = false, getRowId, rowSelection: rowSelectionProp, bulkActions: bulkActionsProp, columnsSettings: columnsSettingsProp, savedState } = _a, rest = __rest(_a, ["data", "columnDefinitions", "headlineId", "suppressPagination", "suppressToolbar", "suppressSearch", "enableFuzzySearch", "search", "onRefresh", "toolbarAfter", "moreActions", "columnFilters", "className", "headerBackground", "noDataState", "noResultsState", "errorDataState", "loading", "dataError", "dataFiltered", "pagination", "pageCount", "sorting", "manualSorting", "manualPagination", "manualFiltering", "autoResetPageIndex", "getRowId", "rowSelection", "bulkActions", "columnsSettings", "savedState"]);
|
|
35
35
|
const defaultPaginationState = (0, react_1.useMemo)(() => ({ pageIndex: 0, pageSize: constants_1.DEFAULT_PAGE_SIZE }), []);
|
|
36
|
-
const
|
|
37
|
-
const
|
|
38
|
-
const
|
|
39
|
-
const
|
|
36
|
+
const [sorting = [], onSortingChange] = (0, utils_1.useValueControl)(sortingProp !== null && sortingProp !== void 0 ? sortingProp : { defaultValue: [] });
|
|
37
|
+
const [globalFilter = '', onGlobalFilterChange] = (0, utils_1.useValueControl)(search !== null && search !== void 0 ? search : { defaultValue: '' });
|
|
38
|
+
const [pagination = defaultPaginationState, onPaginationChange] = (0, utils_1.useValueControl)(paginationProp !== null && paginationProp !== void 0 ? paginationProp : { defaultValue: defaultPaginationState });
|
|
39
|
+
const [rowSelection = {}, onRowSelectionChange] = (0, utils_1.useValueControl)(rowSelectionProp !== null && rowSelectionProp !== void 0 ? rowSelectionProp : { defaultValue: {} });
|
|
40
40
|
const enableRowSelection = (0, react_1.useCallback)((row) => {
|
|
41
41
|
const parent = row.getParentRow();
|
|
42
42
|
const isParentSelected = parent ? parent.getCanSelect() : true;
|
|
@@ -122,7 +122,7 @@ function MobileTable(_a) {
|
|
|
122
122
|
onPaginationChange,
|
|
123
123
|
onSortingChange,
|
|
124
124
|
onColumnOrderChange: enableColumnsOrderSortByDrag ? setColumnOrder : undefined,
|
|
125
|
-
globalFilterFn: enableFuzzySearch ?
|
|
125
|
+
globalFilterFn: enableFuzzySearch ? utils_2.fuzzyFilter : 'includesString',
|
|
126
126
|
enableFilters: true,
|
|
127
127
|
manualSorting,
|
|
128
128
|
manualPagination,
|
|
@@ -173,6 +173,8 @@ function MobileTable(_a) {
|
|
|
173
173
|
const hasSortableColumns = (0, react_1.useMemo)(() => columnDefinitions.some(column => column.enableSorting !== false), [columnDefinitions]);
|
|
174
174
|
const shouldShowSorting = (0, react_1.useMemo)(() => Boolean(sortingProp) || hasSortableColumns, [sortingProp, hasSortableColumns]);
|
|
175
175
|
const tableFilteredRows = table.getFilteredRowModel().rows;
|
|
176
|
+
const { filter, patchedFilter, setFilter, setFilterVisibility } = (0, hooks_1.useFilters)({ columnFilters });
|
|
177
|
+
const validatePersistedState = (0, react_1.useMemo)(() => (0, utils_2.getPersistedStateValidator)(columnFilters), [columnFilters]);
|
|
176
178
|
(0, table_1.usePageReset)({
|
|
177
179
|
manualPagination,
|
|
178
180
|
maximumAvailablePage: pageCount || tableFilteredRows.length / pagination.pageSize,
|
|
@@ -187,7 +189,28 @@ function MobileTable(_a) {
|
|
|
187
189
|
onChange: onGlobalFilterChange,
|
|
188
190
|
loading: search === null || search === void 0 ? void 0 : search.loading,
|
|
189
191
|
placeholder: (search === null || search === void 0 ? void 0 : search.placeholder) || t('searchPlaceholder'),
|
|
190
|
-
}, onRefresh: onRefresh ? handleOnRefresh : undefined, outline: true, filterRow:
|
|
192
|
+
}, onRefresh: onRefresh ? handleOnRefresh : undefined, outline: true, filterRow: patchedFilter, after: toolbarAfter || shouldShowSorting || (areColumnsSettingsEnabled && columnsSettings) ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [toolbarAfter, shouldShowSorting && ((0, jsx_runtime_1.jsx)(helperComponents_1.TableSorting, { table: table, columnDefinitions: columnDefinitions, enabledColumns: areColumnsSettingsEnabled ? enabledColumns : undefined, areColumnsSettingsEnabled: areColumnsSettingsEnabled })), areColumnsSettingsEnabled && columnsSettings && ((0, jsx_runtime_1.jsx)(helperComponents_1.ColumnsSettings, { columnsSettings: columnsSettings, enabledColumns: enabledColumns, setEnabledColumns: setEnabledColumns }))] })) : undefined, moreActions: moreActions, bulkActions: bulkActions, selectedCount: table.getSelectedRowModel().rows.length, selectionMode: selectionMode, onCheck: enableSelection ? handleOnToolbarCheck : undefined, checked: table.getIsAllPageRowsSelected(), indeterminate: table.getIsSomePageRowsSelected(), persist: (savedState === null || savedState === void 0 ? void 0 : savedState.id) && (savedState === null || savedState === void 0 ? void 0 : savedState.filterQueryKey)
|
|
193
|
+
? {
|
|
194
|
+
id: savedState.id,
|
|
195
|
+
filterQueryKey: savedState.filterQueryKey,
|
|
196
|
+
validateData: data => validatePersistedState(data),
|
|
197
|
+
state: {
|
|
198
|
+
pagination: (0, utils_2.mapPaginationToRequestPayload)(pagination),
|
|
199
|
+
ordering: (0, utils_2.mapSortToRequestPayload)(sorting),
|
|
200
|
+
filter,
|
|
201
|
+
search: globalFilter || '',
|
|
202
|
+
},
|
|
203
|
+
onLoad: state => {
|
|
204
|
+
state.pagination && onPaginationChange((0, utils_2.mapPaginationToTableState)(state.pagination));
|
|
205
|
+
state.search && onGlobalFilterChange(state.search);
|
|
206
|
+
state.ordering && onSortingChange((0, utils_2.mapSortToTableState)(state.ordering));
|
|
207
|
+
if (state.filter) {
|
|
208
|
+
setFilter(state.filter);
|
|
209
|
+
setFilterVisibility(Object.keys(state.filter));
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
}
|
|
213
|
+
: undefined }) })), (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.table, children: loading ? ((0, jsx_runtime_1.jsx)(skeleton_1.SkeletonContextProvider, { loading: true, children: loadingTableRows.map((row, index) => ((0, jsx_runtime_1.jsx)(helperComponents_1.TableCard, { headlineId: headlineId, row: row, table: loadingTable, selection: 'none' }, index))) })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [tableRows.map((row, index) => ((0, jsx_runtime_1.jsx)(helperComponents_1.TableCard, { headlineId: headlineId, row: row, table: table, selectionAppearance: rowSelectionProp === null || rowSelectionProp === void 0 ? void 0 : rowSelectionProp.appearance, selection: enableSelection ? selectionMode : 'none' }, index))), (0, jsx_runtime_1.jsx)(helperComponents_1.TableEmptyState, { emptyStates: emptyStates, dataError: dataError, dataFiltered: dataFiltered || Boolean(table.getState().globalFilter), tableRowsLength: tableRows.length })] })) }), !suppressPagination && (0, jsx_runtime_1.jsx)(helperComponents_1.TablePagination, { table: table })] })));
|
|
191
214
|
}
|
|
192
215
|
MobileTable.getRowActionsColumnDef = helperComponents_1.getRowActionsColumnDef;
|
|
193
216
|
MobileTable.getStatusColumnDef = helperComponents_1.getStatusColumnDef;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./useLoadingTable"), exports);
|
|
18
|
+
__exportStar(require("./useFilters"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useFilters';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./useFilters"), exports);
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { FiltersState } from '@cloud-ru/uikit-product-mobile-chips';
|
|
2
|
+
import { MobileTableProps } from '../../types';
|
|
3
|
+
type useFiltersProps<TData extends object, TFilters extends FiltersState = Record<string, unknown>> = Pick<MobileTableProps<TData, TFilters>, 'columnFilters'>;
|
|
4
|
+
export declare function useFilters<TData extends object, TFilters extends FiltersState = Record<string, unknown>>({ columnFilters, }: useFiltersProps<TData, TFilters>): {
|
|
5
|
+
filter: TFilters | undefined;
|
|
6
|
+
setFilter: (value: any, ...args: any[]) => any;
|
|
7
|
+
patchedFilter: {
|
|
8
|
+
value: TFilters | undefined;
|
|
9
|
+
onChange: (filter: TFilters) => void;
|
|
10
|
+
visibleFilters: string[];
|
|
11
|
+
onVisibleFiltersChange: (value: any, ...args: any[]) => any;
|
|
12
|
+
'data-test-id'?: string;
|
|
13
|
+
"aria-activedescendant"?: string | undefined;
|
|
14
|
+
"aria-atomic"?: (boolean | "true" | "false") | undefined;
|
|
15
|
+
"aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined;
|
|
16
|
+
"aria-braillelabel"?: string | undefined;
|
|
17
|
+
"aria-brailleroledescription"?: string | undefined;
|
|
18
|
+
"aria-busy"?: (boolean | "true" | "false") | undefined;
|
|
19
|
+
"aria-checked"?: boolean | "false" | "mixed" | "true" | undefined;
|
|
20
|
+
"aria-colcount"?: number | undefined;
|
|
21
|
+
"aria-colindex"?: number | undefined;
|
|
22
|
+
"aria-colindextext"?: string | undefined;
|
|
23
|
+
"aria-colspan"?: number | undefined;
|
|
24
|
+
"aria-controls"?: string | undefined;
|
|
25
|
+
"aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined;
|
|
26
|
+
"aria-describedby"?: string | undefined;
|
|
27
|
+
"aria-description"?: string | undefined;
|
|
28
|
+
"aria-details"?: string | undefined;
|
|
29
|
+
"aria-disabled"?: (boolean | "true" | "false") | undefined;
|
|
30
|
+
"aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
|
|
31
|
+
"aria-errormessage"?: string | undefined;
|
|
32
|
+
"aria-expanded"?: (boolean | "true" | "false") | undefined;
|
|
33
|
+
"aria-flowto"?: string | undefined;
|
|
34
|
+
"aria-grabbed"?: (boolean | "true" | "false") | undefined;
|
|
35
|
+
"aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
|
|
36
|
+
"aria-hidden"?: (boolean | "true" | "false") | undefined;
|
|
37
|
+
"aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
|
|
38
|
+
"aria-keyshortcuts"?: string | undefined;
|
|
39
|
+
"aria-label"?: string | undefined;
|
|
40
|
+
"aria-labelledby"?: string | undefined;
|
|
41
|
+
"aria-level"?: number | undefined;
|
|
42
|
+
"aria-live"?: "off" | "assertive" | "polite" | undefined;
|
|
43
|
+
"aria-modal"?: (boolean | "true" | "false") | undefined;
|
|
44
|
+
"aria-multiline"?: (boolean | "true" | "false") | undefined;
|
|
45
|
+
"aria-multiselectable"?: (boolean | "true" | "false") | undefined;
|
|
46
|
+
"aria-orientation"?: "horizontal" | "vertical" | undefined;
|
|
47
|
+
"aria-owns"?: string | undefined;
|
|
48
|
+
"aria-placeholder"?: string | undefined;
|
|
49
|
+
"aria-posinset"?: number | undefined;
|
|
50
|
+
"aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined;
|
|
51
|
+
"aria-readonly"?: (boolean | "true" | "false") | undefined;
|
|
52
|
+
"aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined;
|
|
53
|
+
"aria-required"?: (boolean | "true" | "false") | undefined;
|
|
54
|
+
"aria-roledescription"?: string | undefined;
|
|
55
|
+
"aria-rowcount"?: number | undefined;
|
|
56
|
+
"aria-rowindex"?: number | undefined;
|
|
57
|
+
"aria-rowindextext"?: string | undefined;
|
|
58
|
+
"aria-rowspan"?: number | undefined;
|
|
59
|
+
"aria-selected"?: (boolean | "true" | "false") | undefined;
|
|
60
|
+
"aria-setsize"?: number | undefined;
|
|
61
|
+
"aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
|
|
62
|
+
"aria-valuemax"?: number | undefined;
|
|
63
|
+
"aria-valuemin"?: number | undefined;
|
|
64
|
+
"aria-valuenow"?: number | undefined;
|
|
65
|
+
"aria-valuetext"?: string | undefined;
|
|
66
|
+
defaultValue?: Partial<TFilters> | undefined;
|
|
67
|
+
filters: import("@cloud-ru/uikit-product-mobile-chips").MobileChipChoiceRowFilter[];
|
|
68
|
+
size?: import("@cloud-ru/uikit-product-mobile-chips/dist/esm/components/MobileChipChoiceRow/types").ChipChoiceRowSize;
|
|
69
|
+
className?: string;
|
|
70
|
+
showClearButton?: boolean;
|
|
71
|
+
showAddButton?: boolean;
|
|
72
|
+
initialOpen?: boolean;
|
|
73
|
+
open: boolean;
|
|
74
|
+
onOpenChange: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
75
|
+
} | undefined;
|
|
76
|
+
setFilterVisibility: (value: any, ...args: any[]) => any;
|
|
77
|
+
};
|
|
78
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useFilters = useFilters;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const utils_1 = require("@snack-uikit/utils");
|
|
6
|
+
const utils_2 = require("./utils");
|
|
7
|
+
function useFilters({ columnFilters, }) {
|
|
8
|
+
const [areColumnFiltersOpen, setAreColumnFiltersOpen] = (0, react_1.useState)(() => (0, utils_2.getInitialColumnsFiltersOpenValue)(columnFilters));
|
|
9
|
+
const [filter, setFilter] = (0, utils_1.useValueControl)({
|
|
10
|
+
value: columnFilters === null || columnFilters === void 0 ? void 0 : columnFilters.value,
|
|
11
|
+
defaultValue: columnFilters === null || columnFilters === void 0 ? void 0 : columnFilters.defaultValue,
|
|
12
|
+
onChange: columnFilters === null || columnFilters === void 0 ? void 0 : columnFilters.onChange,
|
|
13
|
+
});
|
|
14
|
+
const [filterVisibility = [], setFilterVisibility] = (0, utils_1.useValueControl)({
|
|
15
|
+
value: columnFilters === null || columnFilters === void 0 ? void 0 : columnFilters.visibleFilters,
|
|
16
|
+
defaultValue: [],
|
|
17
|
+
onChange: columnFilters === null || columnFilters === void 0 ? void 0 : columnFilters.onVisibleFiltersChange,
|
|
18
|
+
});
|
|
19
|
+
const patchedFilter = (0, react_1.useMemo)(() => {
|
|
20
|
+
if (!columnFilters) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
return Object.assign(Object.assign({ open: areColumnFiltersOpen, onOpenChange: setAreColumnFiltersOpen }, columnFilters), { value: filter, onChange: setFilter, visibleFilters: filterVisibility, onVisibleFiltersChange: setFilterVisibility });
|
|
24
|
+
}, [columnFilters, areColumnFiltersOpen, filter, setFilter, filterVisibility, setFilterVisibility]);
|
|
25
|
+
return {
|
|
26
|
+
filter,
|
|
27
|
+
setFilter,
|
|
28
|
+
patchedFilter,
|
|
29
|
+
setFilterVisibility,
|
|
30
|
+
};
|
|
31
|
+
}
|
package/dist/cjs/components/MobileTable/hooks/useFilters/utils/getInitialColumnsFiltersOpenValue.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getInitialColumnsFiltersOpenValue = getInitialColumnsFiltersOpenValue;
|
|
4
|
+
function getInitialColumnsFiltersOpenValue(columnFilters) {
|
|
5
|
+
if (!columnFilters) {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
return 'initialOpen' in columnFilters && typeof columnFilters.initialOpen === 'boolean'
|
|
9
|
+
? columnFilters.initialOpen
|
|
10
|
+
: true;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './getInitialColumnsFiltersOpenValue';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./getInitialColumnsFiltersOpenValue"), exports);
|
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
import { FiltersState } from '@cloud-ru/uikit-product-mobile-chips';
|
|
2
2
|
import { TableProps } from '@snack-uikit/table';
|
|
3
|
-
export declare function useStateControl<TState>(control: {
|
|
4
|
-
initialState?: TState;
|
|
5
|
-
state?: TState;
|
|
6
|
-
onChange?(state: TState): void;
|
|
7
|
-
} | undefined, defaultState: TState): {
|
|
8
|
-
state: TState;
|
|
9
|
-
onStateChange: import("uncontrollable").Handler;
|
|
10
|
-
};
|
|
11
3
|
type UseLoadingTableProps<TData extends object, TFilters extends FiltersState> = {
|
|
12
4
|
columnDefinitions: TableProps<TData, TFilters>['columnDefinitions'];
|
|
13
5
|
pageSize: number;
|
|
@@ -1,25 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useStateControl = useStateControl;
|
|
4
3
|
exports.useLoadingTable = useLoadingTable;
|
|
5
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
5
|
const react_table_1 = require("@tanstack/react-table");
|
|
7
6
|
const react_1 = require("react");
|
|
8
|
-
const uncontrollable_1 = require("uncontrollable");
|
|
9
7
|
const skeleton_1 = require("@snack-uikit/skeleton");
|
|
10
|
-
const constants_1 = require("
|
|
11
|
-
function useStateControl(control, defaultState) {
|
|
12
|
-
var _a, _b;
|
|
13
|
-
const [state, onStateChange] = (0, uncontrollable_1.useUncontrolledProp)(control === null || control === void 0 ? void 0 : control.state, (_b = (_a = control === null || control === void 0 ? void 0 : control.state) !== null && _a !== void 0 ? _a : control === null || control === void 0 ? void 0 : control.initialState) !== null && _b !== void 0 ? _b : defaultState, (controlState) => {
|
|
14
|
-
var _a;
|
|
15
|
-
const newState = typeof controlState === 'function' ? controlState(state) : controlState;
|
|
16
|
-
(_a = control === null || control === void 0 ? void 0 : control.onChange) === null || _a === void 0 ? void 0 : _a.call(control, newState);
|
|
17
|
-
});
|
|
18
|
-
return {
|
|
19
|
-
state,
|
|
20
|
-
onStateChange,
|
|
21
|
-
};
|
|
22
|
-
}
|
|
8
|
+
const constants_1 = require("../../../constants");
|
|
23
9
|
function useLoadingTable({ pageSize, columnDefinitions, }) {
|
|
24
10
|
const data = (0, react_1.useMemo)(() => (Array.from({ length: pageSize }).map(() => ({})) || []), [pageSize]);
|
|
25
11
|
const columns = (0, react_1.useMemo)(() => columnDefinitions
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.formatTableStateToRequestPayload = void 0;
|
|
18
|
+
__exportStar(require("./MobileTable"), exports);
|
|
19
|
+
__exportStar(require("./types"), exports);
|
|
20
|
+
var mappers_1 = require("./utils/saveTableState/mappers");
|
|
21
|
+
Object.defineProperty(exports, "formatTableStateToRequestPayload", { enumerable: true, get: function () { return mappers_1.formatTableStateToRequestPayload; } });
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FiltersState, MobileChipChoiceRowProps } from '@cloud-ru/uikit-product-mobile-chips';
|
|
2
|
+
import { WithSupportProps } from '@cloud-ru/uikit-product-utils';
|
|
3
|
+
import { TableProps } from '@snack-uikit/table';
|
|
4
|
+
export type MobileTableProps<TData extends object, TFilters extends FiltersState = Record<string, unknown>> = Pick<TableProps<TData, TFilters>, 'data' | 'columnDefinitions' | 'suppressPagination' | 'suppressToolbar' | 'suppressSearch' | 'search' | 'onRefresh' | 'moreActions' | 'className' | 'enableFuzzySearch' | 'loading' | 'dataError' | 'dataFiltered' | 'noDataState' | 'noResultsState' | 'errorDataState' | 'sorting' | 'pagination' | 'pageCount' | 'manualFiltering' | 'manualPagination' | 'manualSorting' | 'getRowId' | 'rowSelection' | 'bulkActions' | 'columnsSettings' | 'savedState' | 'autoResetPageIndex' | 'toolbarAfter'> & WithSupportProps<{
|
|
5
|
+
headlineId?: string;
|
|
6
|
+
headerBackground?: 'default' | '1-level' | '2-level';
|
|
7
|
+
/** Фильтры */
|
|
8
|
+
columnFilters?: MobileChipChoiceRowProps<TFilters> & {
|
|
9
|
+
initialOpen?: boolean;
|
|
10
|
+
};
|
|
11
|
+
}>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fuzzyFilter = void 0;
|
|
4
|
+
const match_sorter_utils_1 = require("@tanstack/match-sorter-utils");
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6
|
+
const fuzzyFilter = (row, columnId, value, addMeta) => {
|
|
7
|
+
const itemRank = (0, match_sorter_utils_1.rankItem)(row.getValue(columnId), value);
|
|
8
|
+
addMeta({
|
|
9
|
+
itemRank,
|
|
10
|
+
});
|
|
11
|
+
return itemRank.passed;
|
|
12
|
+
};
|
|
13
|
+
exports.fuzzyFilter = fuzzyFilter;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./fuzzyFilter"), exports);
|
|
18
|
+
__exportStar(require("./saveTableState"), exports);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { FiltersState } from '@snack-uikit/chips';
|
|
2
|
+
import { PersistedFilterState } from '@snack-uikit/toolbar';
|
|
3
|
+
import { MobileTableProps } from '../../types';
|
|
4
|
+
export declare const getPersistedStateValidator: <TData extends object, TFilters extends FiltersState = Record<string, unknown>>(columnFilters: MobileTableProps<TData, TFilters>["columnFilters"]) => (data: unknown) => data is PersistedFilterState<TFilters>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPersistedStateValidator = void 0;
|
|
4
|
+
const validators_1 = require("./validators");
|
|
5
|
+
const getPersistedStateValidator = (columnFilters) => (data) => {
|
|
6
|
+
const dataAsSettings = data;
|
|
7
|
+
const isPaginationValid = (0, validators_1.validatePaging)(dataAsSettings === null || dataAsSettings === void 0 ? void 0 : dataAsSettings.pagination);
|
|
8
|
+
const isSortingValid = (0, validators_1.validateSorting)(dataAsSettings === null || dataAsSettings === void 0 ? void 0 : dataAsSettings.ordering);
|
|
9
|
+
const isSearchValid = !(dataAsSettings === null || dataAsSettings === void 0 ? void 0 : dataAsSettings.search) || typeof (dataAsSettings === null || dataAsSettings === void 0 ? void 0 : dataAsSettings.search) === 'string';
|
|
10
|
+
const isFilterValid = Boolean((columnFilters === null || columnFilters === void 0 ? void 0 : columnFilters.filters) && (0, validators_1.validateFilter)(dataAsSettings.filter, columnFilters.filters));
|
|
11
|
+
return isPaginationValid && isSortingValid && isSearchValid && isFilterValid;
|
|
12
|
+
};
|
|
13
|
+
exports.getPersistedStateValidator = getPersistedStateValidator;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./validators"), exports);
|
|
18
|
+
__exportStar(require("./mappers"), exports);
|
|
19
|
+
__exportStar(require("./getPersistedStateValidator"), exports);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { RequestPayloadParams } from '@cloud-ru/ft-request-payload-transform';
|
|
2
|
+
import { PaginationState, SortingState } from '@tanstack/react-table';
|
|
3
|
+
import { FiltersState } from '@snack-uikit/chips';
|
|
4
|
+
import { PersistedFilterState } from '@snack-uikit/toolbar';
|
|
5
|
+
export declare const mapPaginationToTableState: (value?: RequestPayloadParams["pagination"]) => PaginationState;
|
|
6
|
+
export declare const mapSortToTableState: (value?: RequestPayloadParams["ordering"]) => SortingState;
|
|
7
|
+
export declare const mapPaginationToRequestPayload: (value?: PaginationState | RequestPayloadParams["pagination"]) => RequestPayloadParams["pagination"];
|
|
8
|
+
export declare const mapSortToRequestPayload: (value?: SortingState) => RequestPayloadParams["ordering"];
|
|
9
|
+
/** Вспомогательная функция для преобразования состояния таблицы к формату RequestPayloadParams */
|
|
10
|
+
export declare const formatTableStateToRequestPayload: <T extends FiltersState>({ pagination, sorting, search, filter, }: Omit<PersistedFilterState<T>, "pagination" | "sorting"> & {
|
|
11
|
+
pagination?: PaginationState | RequestPayloadParams["pagination"];
|
|
12
|
+
sorting?: SortingState;
|
|
13
|
+
}) => {
|
|
14
|
+
toObject(): Partial<RequestPayloadParams>;
|
|
15
|
+
toString(params?: {
|
|
16
|
+
encode?: boolean;
|
|
17
|
+
}): string;
|
|
18
|
+
};
|