@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.
Files changed (112) hide show
  1. package/CHANGELOG.md +22 -11
  2. package/dist/cjs/components/AdaptiveServerTable/AdaptiveServerTable.js +7 -6
  3. package/dist/{esm/components → cjs/components/AdaptiveServerTable}/constants.d.ts +0 -1
  4. package/dist/cjs/components/{constants.js → AdaptiveServerTable/constants.js} +1 -2
  5. package/dist/cjs/components/{utils.d.ts → AdaptiveServerTable/utils.d.ts} +0 -2
  6. package/dist/cjs/components/{utils.js → AdaptiveServerTable/utils.js} +1 -11
  7. package/dist/cjs/components/MobileTable/MobileTable.d.ts +7 -0
  8. package/dist/cjs/components/{MobileTable.js → MobileTable/MobileTable.js} +33 -10
  9. package/dist/cjs/components/MobileTable/hooks/index.d.ts +2 -0
  10. package/dist/cjs/components/MobileTable/hooks/index.js +18 -0
  11. package/dist/cjs/components/MobileTable/hooks/useFilters/index.d.ts +1 -0
  12. package/dist/cjs/components/MobileTable/hooks/useFilters/index.js +17 -0
  13. package/dist/cjs/components/MobileTable/hooks/useFilters/useFilters.d.ts +78 -0
  14. package/dist/cjs/components/MobileTable/hooks/useFilters/useFilters.js +31 -0
  15. package/dist/cjs/components/MobileTable/hooks/useFilters/utils/getInitialColumnsFiltersOpenValue.d.ts +2 -0
  16. package/dist/cjs/components/MobileTable/hooks/useFilters/utils/getInitialColumnsFiltersOpenValue.js +11 -0
  17. package/dist/cjs/components/MobileTable/hooks/useFilters/utils/index.d.ts +1 -0
  18. package/dist/cjs/components/MobileTable/hooks/useFilters/utils/index.js +17 -0
  19. package/dist/cjs/components/{hooks.d.ts → MobileTable/hooks/useLoadingTable.d.ts} +0 -8
  20. package/dist/cjs/components/{hooks.js → MobileTable/hooks/useLoadingTable.js} +1 -15
  21. package/dist/cjs/components/MobileTable/index.d.ts +3 -0
  22. package/dist/cjs/components/MobileTable/index.js +21 -0
  23. package/dist/cjs/components/MobileTable/types.d.ts +11 -0
  24. package/dist/cjs/components/MobileTable/types.js +2 -0
  25. package/dist/cjs/components/MobileTable/utils/fuzzyFilter.d.ts +2 -0
  26. package/dist/cjs/components/MobileTable/utils/fuzzyFilter.js +13 -0
  27. package/dist/cjs/components/MobileTable/utils/index.d.ts +2 -0
  28. package/dist/cjs/components/MobileTable/utils/index.js +18 -0
  29. package/dist/cjs/components/MobileTable/utils/saveTableState/getPersistedStateValidator.d.ts +4 -0
  30. package/dist/cjs/components/MobileTable/utils/saveTableState/getPersistedStateValidator.js +13 -0
  31. package/dist/cjs/components/MobileTable/utils/saveTableState/index.d.ts +3 -0
  32. package/dist/cjs/components/MobileTable/utils/saveTableState/index.js +19 -0
  33. package/dist/cjs/components/MobileTable/utils/saveTableState/mappers.d.ts +18 -0
  34. package/dist/cjs/components/MobileTable/utils/saveTableState/mappers.js +45 -0
  35. package/dist/cjs/components/MobileTable/utils/saveTableState/validators.d.ts +5 -0
  36. package/dist/cjs/components/MobileTable/utils/saveTableState/validators.js +13 -0
  37. package/dist/cjs/constants.d.ts +1 -0
  38. package/dist/cjs/constants.js +2 -1
  39. package/dist/cjs/index.d.ts +1 -0
  40. package/dist/cjs/index.js +1 -0
  41. package/dist/esm/components/AdaptiveServerTable/AdaptiveServerTable.js +5 -4
  42. package/dist/{cjs/components → esm/components/AdaptiveServerTable}/constants.d.ts +0 -1
  43. package/dist/esm/components/{constants.js → AdaptiveServerTable/constants.js} +0 -1
  44. package/dist/esm/components/{utils.d.ts → AdaptiveServerTable/utils.d.ts} +0 -2
  45. package/dist/esm/components/AdaptiveServerTable/utils.js +5 -0
  46. package/dist/esm/components/MobileTable/MobileTable.d.ts +7 -0
  47. package/dist/esm/components/{MobileTable.js → MobileTable/MobileTable.js} +33 -10
  48. package/dist/esm/components/MobileTable/hooks/index.d.ts +2 -0
  49. package/dist/esm/components/MobileTable/hooks/index.js +2 -0
  50. package/dist/esm/components/MobileTable/hooks/useFilters/index.d.ts +1 -0
  51. package/dist/esm/components/MobileTable/hooks/useFilters/index.js +1 -0
  52. package/dist/esm/components/MobileTable/hooks/useFilters/useFilters.d.ts +78 -0
  53. package/dist/esm/components/MobileTable/hooks/useFilters/useFilters.js +28 -0
  54. package/dist/esm/components/MobileTable/hooks/useFilters/utils/getInitialColumnsFiltersOpenValue.d.ts +2 -0
  55. package/dist/esm/components/MobileTable/hooks/useFilters/utils/getInitialColumnsFiltersOpenValue.js +8 -0
  56. package/dist/esm/components/MobileTable/hooks/useFilters/utils/index.d.ts +1 -0
  57. package/dist/esm/components/MobileTable/hooks/useFilters/utils/index.js +1 -0
  58. package/dist/esm/components/{hooks.d.ts → MobileTable/hooks/useLoadingTable.d.ts} +0 -8
  59. package/dist/esm/components/MobileTable/hooks/useLoadingTable.js +17 -0
  60. package/dist/esm/components/MobileTable/index.d.ts +3 -0
  61. package/dist/esm/components/MobileTable/index.js +3 -0
  62. package/dist/esm/components/MobileTable/types.d.ts +11 -0
  63. package/dist/esm/components/MobileTable/types.js +1 -0
  64. package/dist/esm/components/MobileTable/utils/fuzzyFilter.d.ts +2 -0
  65. package/dist/esm/components/{utils.js → MobileTable/utils/fuzzyFilter.js} +0 -5
  66. package/dist/esm/components/MobileTable/utils/index.d.ts +2 -0
  67. package/dist/esm/components/MobileTable/utils/index.js +2 -0
  68. package/dist/esm/components/MobileTable/utils/saveTableState/getPersistedStateValidator.d.ts +4 -0
  69. package/dist/esm/components/MobileTable/utils/saveTableState/getPersistedStateValidator.js +9 -0
  70. package/dist/esm/components/MobileTable/utils/saveTableState/index.d.ts +3 -0
  71. package/dist/esm/components/MobileTable/utils/saveTableState/index.js +3 -0
  72. package/dist/esm/components/MobileTable/utils/saveTableState/mappers.d.ts +18 -0
  73. package/dist/esm/components/MobileTable/utils/saveTableState/mappers.js +37 -0
  74. package/dist/esm/components/MobileTable/utils/saveTableState/validators.d.ts +5 -0
  75. package/dist/esm/components/MobileTable/utils/saveTableState/validators.js +7 -0
  76. package/dist/esm/constants.d.ts +1 -0
  77. package/dist/esm/constants.js +1 -0
  78. package/dist/esm/index.d.ts +1 -0
  79. package/dist/esm/index.js +1 -0
  80. package/package.json +12 -9
  81. package/src/components/AdaptiveServerTable/AdaptiveServerTable.tsx +5 -4
  82. package/src/components/{constants.ts → AdaptiveServerTable/constants.ts} +0 -1
  83. package/src/components/AdaptiveServerTable/utils.ts +12 -0
  84. package/src/components/{MobileTable.tsx → MobileTable/MobileTable.tsx} +50 -55
  85. package/src/components/MobileTable/hooks/index.ts +2 -0
  86. package/src/components/MobileTable/hooks/useFilters/index.ts +1 -0
  87. package/src/components/MobileTable/hooks/useFilters/useFilters.ts +57 -0
  88. package/src/components/MobileTable/hooks/useFilters/utils/getInitialColumnsFiltersOpenValue.ts +13 -0
  89. package/src/components/MobileTable/hooks/useFilters/utils/index.ts +1 -0
  90. package/src/components/{hooks.tsx → MobileTable/hooks/useLoadingTable.tsx} +1 -22
  91. package/src/components/MobileTable/index.ts +3 -0
  92. package/src/components/{styles.module.scss → MobileTable/styles.module.scss} +1 -1
  93. package/src/components/MobileTable/types.ts +44 -0
  94. package/src/components/{utils.ts → MobileTable/utils/fuzzyFilter.ts} +0 -12
  95. package/src/components/MobileTable/utils/index.ts +2 -0
  96. package/src/components/MobileTable/utils/saveTableState/getPersistedStateValidator.ts +21 -0
  97. package/src/components/MobileTable/utils/saveTableState/index.ts +3 -0
  98. package/src/components/MobileTable/utils/saveTableState/mappers.ts +62 -0
  99. package/src/components/MobileTable/utils/saveTableState/validators.ts +21 -0
  100. package/src/constants.ts +2 -0
  101. package/src/helperComponents/ColumnsSettings/ColumnsSettings.tsx +1 -0
  102. package/src/helperComponents/RowActionsCell/styles.module.scss +1 -1
  103. package/src/helperComponents/TableCard/styles.module.scss +1 -1
  104. package/src/helperComponents/TableEmptyState/styles.module.scss +1 -1
  105. package/src/helperComponents/TablePagination/styles.module.scss +1 -1
  106. package/src/helperComponents/TableSorting/styles.module.scss +1 -1
  107. package/src/index.ts +1 -0
  108. package/dist/cjs/components/MobileTable.d.ts +0 -13
  109. package/dist/esm/components/MobileTable.d.ts +0 -13
  110. package/dist/esm/components/hooks.js +0 -30
  111. /package/dist/cjs/components/{styles.module.css → MobileTable/styles.module.css} +0 -0
  112. /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
- * **[FF-5836](https://jira.sbercloud.tech/browse/FF-5836):** support cjs syntax ([d44abd0](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/d44abd0ddbbea0cd2bf0e1b99442cdb83b87df48))
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
- * **[FF-5782](https://jira.sbercloud.tech/browse/FF-5782):** dart v3 use/forward approach ([eb0c4b3](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/eb0c4b30a008aa82ad7555ecc9d8420c21b1c7a4))
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
- * **[PDS-611](https://jira.sbercloud.tech/browse/PDS-611):** up deps ([c30ac4c](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/c30ac4c2adb7c00e84fbe557d85314add6b6977a))
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
- * **[FF-5361](https://jira.sbercloud.tech/browse/FF-5361):** add adaptive component versions ([0e1ddce](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/0e1ddceda6085479ea8365f2b034b326da366fbb))
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
- * **[FF-5189](https://jira.sbercloud.tech/browse/FF-5189):** add sorting to table ([9d6980c](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/9d6980cd8adc49494c52b1f14ae38e96f9f425d9))
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
- * **[FF-5186](https://jira.sbercloud.tech/browse/FF-5186):** decrease number of items in pagination ([04a36a3](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/04a36a3bbb065dcce7f5939f507bb946e1dcbaf0))
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
- * **[FF-5186](https://jira.sbercloud.tech/browse/FF-5186):** up snack deps ([de10652](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/de10652ca4f8ac2a5f11dc2c0f9bb01e17f30c3c))
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
- * **[FF-5186](https://jira.sbercloud.tech/browse/FF-5186):** add more contrast between label and value ([8ec261d](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/8ec261db0368370310a94e13dfc045e0bb30503d))
1496
- * **[FF-5186](https://jira.sbercloud.tech/browse/FF-5186):** add word-break for text content ([75512af](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/75512af978d4c5248bf564cab9e7463527048fb0))
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
- * **[PDS-559](https://jira.sbercloud.tech/browse/PDS-559):** up snack deps ([e0a0fbd](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/e0a0fbd952420dd0031e3e4f8adef8c50375f31d))
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
- * **[PDS-559](https://jira.sbercloud.tech/browse/PDS-559):** add mobile-table package ([5b2f39b](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/5b2f39b4c817e6e39ad4e0a9612789d6bf12a9ce))
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 constants_1 = require("../constants");
19
- const hooks_1 = require("../hooks");
18
+ const utils_1 = require("@snack-uikit/utils");
19
+ const constants_1 = require("../../constants");
20
20
  const MobileTable_1 = require("../MobileTable");
21
- const utils_1 = require("../utils");
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 = constants_1.DEFAULT_PAGINATION_LIMIT, limit = constants_1.DEFAULT_PAGINATION_LIMIT, offset = 0 } = props, rest = __rest(props, ["onChangePage", "search", "pagination", "items", "total", "limit", "offset"]);
26
- const { state: search, onStateChange: setSearch } = (0, hooks_1.useStateControl)(searchProp, '');
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, utils_1.onSearchDebounced)(newValue.trim(), setSearch);
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,3 +1,2 @@
1
- export declare const DEFAULT_PAGE_SIZE = 5;
2
1
  export declare const SEARCH_DELAY = 500;
3
2
  export declare const DEFAULT_PAGINATION_LIMIT = 10;
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_PAGINATION_LIMIT = exports.SEARCH_DELAY = exports.DEFAULT_PAGE_SIZE = void 0;
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 = exports.fuzzyFilter = void 0;
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 helperComponents_1 = require("../helperComponents");
28
- const ColumnsSettings_1 = require("../helperComponents/ColumnsSettings");
29
- const constants_1 = require("./constants");
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 utils_1 = require("./utils");
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 { state: sorting, onStateChange: onSortingChange } = (0, hooks_1.useStateControl)(sortingProp, []);
37
- const { state: globalFilter, onStateChange: onGlobalFilterChange } = (0, hooks_1.useStateControl)(search, '');
38
- const { state: pagination, onStateChange: onPaginationChange } = (0, hooks_1.useStateControl)(paginationProp, defaultPaginationState);
39
- const { state: rowSelection, onStateChange: onRowSelectionChange } = (0, hooks_1.useStateControl)(rowSelectionProp, {});
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 ? utils_1.fuzzyFilter : 'includesString',
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: columnFilters, 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)(ColumnsSettings_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() }) })), (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 })] })));
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,2 @@
1
+ export * from './useLoadingTable';
2
+ export * from './useFilters';
@@ -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
+ }
@@ -0,0 +1,2 @@
1
+ import { MobileTableProps } from '../../../types';
2
+ export declare function getInitialColumnsFiltersOpenValue<TData extends object>(columnFilters: MobileTableProps<TData>['columnFilters']): boolean;
@@ -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("../constants");
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,3 @@
1
+ export * from './MobileTable';
2
+ export * from './types';
3
+ export { formatTableStateToRequestPayload } from './utils/saveTableState/mappers';
@@ -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,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ import { FilterFn } from '@tanstack/react-table';
2
+ export declare const fuzzyFilter: FilterFn<any>;
@@ -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,2 @@
1
+ export * from './fuzzyFilter';
2
+ export * from './saveTableState';
@@ -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>;