@cloud-ru/uikit-product-mobile-table 0.16.3 → 1.0.1-preview-b95fca4e.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 +22 -11
- 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/{styles.module.scss → MobileTable/styles.module.scss} +1 -1
- 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/helperComponents/RowActionsCell/styles.module.scss +1 -1
- package/src/helperComponents/TableCard/styles.module.scss +1 -1
- package/src/helperComponents/TableEmptyState/styles.module.scss +1 -1
- package/src/helperComponents/TablePagination/styles.module.scss +1 -1
- package/src/helperComponents/TableSorting/styles.module.scss +1 -1
- 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/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
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
|
+
|
|
6
17
|
## 0.16.3 (2025-12-17)
|
|
7
18
|
|
|
8
19
|
### Only dependencies have been changed
|
|
@@ -1248,7 +1259,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
1248
1259
|
|
|
1249
1260
|
### Features
|
|
1250
1261
|
|
|
1251
|
-
* **
|
|
1262
|
+
* **FF-5836:** support cjs syntax ([d44abd0](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/d44abd0ddbbea0cd2bf0e1b99442cdb83b87df48))
|
|
1252
1263
|
|
|
1253
1264
|
|
|
1254
1265
|
|
|
@@ -1270,7 +1281,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
1270
1281
|
|
|
1271
1282
|
### Features
|
|
1272
1283
|
|
|
1273
|
-
* **
|
|
1284
|
+
* **FF-5782:** dart v3 use/forward approach ([eb0c4b3](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/eb0c4b30a008aa82ad7555ecc9d8420c21b1c7a4))
|
|
1274
1285
|
|
|
1275
1286
|
|
|
1276
1287
|
|
|
@@ -1357,7 +1368,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
1357
1368
|
|
|
1358
1369
|
### Dependencies
|
|
1359
1370
|
|
|
1360
|
-
* **
|
|
1371
|
+
* **PDS-611:** up deps ([c30ac4c](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/c30ac4c2adb7c00e84fbe557d85314add6b6977a))
|
|
1361
1372
|
|
|
1362
1373
|
|
|
1363
1374
|
|
|
@@ -1368,7 +1379,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
1368
1379
|
|
|
1369
1380
|
### Features
|
|
1370
1381
|
|
|
1371
|
-
* **
|
|
1382
|
+
* **FF-5361:** add adaptive component versions ([0e1ddce](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/0e1ddceda6085479ea8365f2b034b326da366fbb))
|
|
1372
1383
|
|
|
1373
1384
|
|
|
1374
1385
|
|
|
@@ -1424,7 +1435,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
1424
1435
|
|
|
1425
1436
|
### Features
|
|
1426
1437
|
|
|
1427
|
-
* **
|
|
1438
|
+
* **FF-5189:** add sorting to table ([9d6980c](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/9d6980cd8adc49494c52b1f14ae38e96f9f425d9))
|
|
1428
1439
|
|
|
1429
1440
|
|
|
1430
1441
|
|
|
@@ -1476,12 +1487,12 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
1476
1487
|
|
|
1477
1488
|
### Bug Fixes
|
|
1478
1489
|
|
|
1479
|
-
* **
|
|
1490
|
+
* **FF-5186:** decrease number of items in pagination ([04a36a3](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/04a36a3bbb065dcce7f5939f507bb946e1dcbaf0))
|
|
1480
1491
|
|
|
1481
1492
|
|
|
1482
1493
|
### Dependencies
|
|
1483
1494
|
|
|
1484
|
-
* **
|
|
1495
|
+
* **FF-5186:** up snack deps ([de10652](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/de10652ca4f8ac2a5f11dc2c0f9bb01e17f30c3c))
|
|
1485
1496
|
|
|
1486
1497
|
|
|
1487
1498
|
|
|
@@ -1492,8 +1503,8 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
1492
1503
|
|
|
1493
1504
|
### Bug Fixes
|
|
1494
1505
|
|
|
1495
|
-
* **
|
|
1496
|
-
* **
|
|
1506
|
+
* **FF-5186:** add more contrast between label and value ([8ec261d](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/8ec261db0368370310a94e13dfc045e0bb30503d))
|
|
1507
|
+
* **FF-5186:** add word-break for text content ([75512af](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/75512af978d4c5248bf564cab9e7463527048fb0))
|
|
1497
1508
|
|
|
1498
1509
|
|
|
1499
1510
|
|
|
@@ -1504,12 +1515,12 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
1504
1515
|
|
|
1505
1516
|
### Dependencies
|
|
1506
1517
|
|
|
1507
|
-
* **
|
|
1518
|
+
* **PDS-559:** up snack deps ([e0a0fbd](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/e0a0fbd952420dd0031e3e4f8adef8c50375f31d))
|
|
1508
1519
|
|
|
1509
1520
|
|
|
1510
1521
|
### Features
|
|
1511
1522
|
|
|
1512
|
-
* **
|
|
1523
|
+
* **PDS-559:** add mobile-table package ([5b2f39b](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/5b2f39b4c817e6e39ad4e0a9612789d6bf12a9ce))
|
|
1513
1524
|
|
|
1514
1525
|
|
|
1515
1526
|
|
|
@@ -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>;
|