urfu-ui-kit-react 1.10.1 → 1.10.3

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 (52) hide show
  1. package/dist/components/InputTime/InputTime.d.ts.map +1 -1
  2. package/dist/components/InputTime/inputTimeKeyDown.d.ts +3 -0
  3. package/dist/components/InputTime/inputTimeKeyDown.d.ts.map +1 -0
  4. package/dist/components/InputTime/useInputTimeWheel.d.ts +2 -0
  5. package/dist/components/InputTime/useInputTimeWheel.d.ts.map +1 -0
  6. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  7. package/dist/components/Pagination/Pagination.types.d.ts +2 -2
  8. package/dist/components/Table/Filter/Filter.d.ts.map +1 -1
  9. package/dist/components/Table/Filter/FilterBooleanBox.d.ts +2 -0
  10. package/dist/components/Table/Filter/FilterBooleanBox.d.ts.map +1 -0
  11. package/dist/components/Table/Filter/FilterDateBox.d.ts +2 -0
  12. package/dist/components/Table/Filter/FilterDateBox.d.ts.map +1 -0
  13. package/dist/components/Table/Filter/FilterNumberBox.d.ts +2 -0
  14. package/dist/components/Table/Filter/FilterNumberBox.d.ts.map +1 -0
  15. package/dist/components/Table/Filter/FilterSortIndicator.d.ts +4 -0
  16. package/dist/components/Table/Filter/FilterSortIndicator.d.ts.map +1 -0
  17. package/dist/components/Table/Filter/FilterStringBox.d.ts +2 -0
  18. package/dist/components/Table/Filter/FilterStringBox.d.ts.map +1 -0
  19. package/dist/components/Table/Table.d.ts +1 -1
  20. package/dist/components/Table/Table.d.ts.map +1 -1
  21. package/dist/components/Table/Table.dataPipeline.d.ts +21 -0
  22. package/dist/components/Table/Table.dataPipeline.d.ts.map +1 -0
  23. package/dist/components/Table/Table.helpers.d.ts +4 -0
  24. package/dist/components/Table/Table.helpers.d.ts.map +1 -0
  25. package/dist/components/Table/Table.types.d.ts +135 -0
  26. package/dist/components/Table/Table.types.d.ts.map +1 -1
  27. package/dist/components/Table/TableHead.d.ts +39 -0
  28. package/dist/components/Table/TableHead.d.ts.map +1 -0
  29. package/dist/components/Table/TableMobileCard.d.ts +39 -0
  30. package/dist/components/Table/TableMobileCard.d.ts.map +1 -0
  31. package/dist/components/Table/TableMobileView.d.ts +30 -0
  32. package/dist/components/Table/TableMobileView.d.ts.map +1 -0
  33. package/dist/components/Table/TableRow.d.ts +30 -0
  34. package/dist/components/Table/TableRow.d.ts.map +1 -0
  35. package/dist/components/Table/useColumnResize.d.ts +9 -0
  36. package/dist/components/Table/useColumnResize.d.ts.map +1 -0
  37. package/dist/components/Table/useTableSortState.d.ts +34 -0
  38. package/dist/components/Table/useTableSortState.d.ts.map +1 -0
  39. package/dist/components/Table/useTableVirtualization.d.ts +30 -0
  40. package/dist/components/Table/useTableVirtualization.d.ts.map +1 -0
  41. package/dist/hooks/usePagination.d.ts +36 -0
  42. package/dist/hooks/usePagination.d.ts.map +1 -0
  43. package/dist/hooks/useTableSort.d.ts +30 -0
  44. package/dist/hooks/useTableSort.d.ts.map +1 -0
  45. package/dist/index.d.ts +7 -1
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/shared/sortRows.d.ts +29 -0
  48. package/dist/shared/sortRows.d.ts.map +1 -0
  49. package/dist/style-no-fonts.css +1 -1
  50. package/dist/style.css +1 -1
  51. package/dist/urfu-ui-kit-react.js +6477 -5478
  52. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"InputTime.d.ts","sourceRoot":"","sources":["../../../src/components/InputTime/InputTime.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kBAAkB,CAAC;AAK1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,eAAO,MAAM,SAAS;0TA0BnB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;CAulBrB,CAAC"}
1
+ {"version":3,"file":"InputTime.d.ts","sourceRoot":"","sources":["../../../src/components/InputTime/InputTime.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,kBAAkB,CAAC;AAK1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAI7D,eAAO,MAAM,SAAS;0TA0BnB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;CAibrB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { KeyboardEvent } from 'react';
2
+ export declare const handleTimeKeyDown: (event: KeyboardEvent<HTMLInputElement>, ctx: any) => void;
3
+ //# sourceMappingURL=inputTimeKeyDown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputTimeKeyDown.d.ts","sourceRoot":"","sources":["../../../src/components/InputTime/inputTimeKeyDown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAK3C,eAAO,MAAM,iBAAiB,GAC5B,OAAO,aAAa,CAAC,gBAAgB,CAAC,EACtC,KAAK,GAAG,SAsHT,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const useInputTimeWheel: (ctx: any) => void;
2
+ //# sourceMappingURL=useInputTimeWheel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInputTimeWheel.d.ts","sourceRoot":"","sources":["../../../src/components/InputTime/useInputTimeWheel.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,GAAI,KAAK,GAAG,SAmGzC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/Pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,oBAAoB,CAAC;AA4D5B,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,UAAc,EACd,UAAc,EACd,eAAe,EACf,eAAe,EACf,WAAmB,EACnB,SAAc,EACd,KAAK,EACL,SAAS,GACV,EAAE,eAAe,2CA+GjB"}
1
+ {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/Pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,oBAAoB,CAAC;AA4D5B,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,UAAc,EACd,eAAe,EACf,eAAe,EACf,WAAmB,EACnB,SAAc,EACd,KAAK,EACL,SAAS,GACV,EAAE,eAAe,2CAoHjB"}
@@ -11,8 +11,8 @@ export type PaginationProps = {
11
11
  onPageChange: (page: number) => void;
12
12
  onPageSizeChange: (size: number) => void;
13
13
  /**
14
- * Ради совместимости с текущими экранами.
15
- * Если `dataLength === 0`, пагинация скрывается.
14
+ * Кол-во строк на текущей странице — гард: при `0` пагинация скрывается.
15
+ * Необязателен: если не передан, выводится из `totalItems`/`currentPage`/`pageSize`.
16
16
  */
17
17
  dataLength?: number;
18
18
  /** Окно видимых страниц (по умолчанию как в meetings). */
@@ -1 +1 @@
1
- {"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/Filter/Filter.tsx"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAC;AAE1C,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAKlD,OAAO,eAAe,CAAC;AAuBvB,eAAO,MAAM,MAAM;0TAyBhB,gBAAgB;;;;;;;;;;;;;;;;CAq2BlB,CAAC"}
1
+ {"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/Filter/Filter.tsx"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAC;AAE1C,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,eAAe,CAAC;AA2BvB,eAAO,MAAM,MAAM;0TAyBhB,gBAAgB;;;;;;;;;;;;;;;;CAqZlB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const FilterBooleanBox: ({ column, thLeft, tableRight, columnWidths, heightVisibleBlock, typeFilterSearch, setTypeFilterSearch, handleSort, sort, }: any) => import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=FilterBooleanBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterBooleanBox.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/Filter/FilterBooleanBox.tsx"],"names":[],"mappings":"AAKA,eAAO,MAAM,gBAAgB,GAAI,4HAU9B,GAAG,4CAiEL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const FilterDateBox: ({ column, thLeft, tableRight, columnWidths, heightVisibleBlock, typeFilterSearch, setTypeFilterSearch, handleSort, sort, date, setDate, dateEnd, setDateEnd, }: any) => import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=FilterDateBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterDateBox.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/Filter/FilterDateBox.tsx"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa,GAAI,gKAc3B,GAAG,4CAiGL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const FilterNumberBox: ({ column, thLeft, tableRight, columnWidths, heightVisibleBlock, typeFilterSearch, setTypeFilterSearch, handleSort, sort, textSearch, setTextSearch, searched, uncheckedValues, selectAll, checkBox, chooseAllFoundedChecker, filterEmptyLabel, }: any) => import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=FilterNumberBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterNumberBox.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/Filter/FilterNumberBox.tsx"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe,GAAI,kPAkB7B,GAAG,4CAgKL,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const FilterSortIndicator: ({ active }: {
2
+ active: boolean;
3
+ }) => import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=FilterSortIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterSortIndicator.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/Filter/FilterSortIndicator.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,GAAI,YAAY;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,4CAgBlE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const FilterStringBox: ({ column, thLeft, tableRight, columnWidths, heightVisibleBlock, typeFilterSearch, setTypeFilterSearch, handleSort, sort, textSearch, setTextSearch, searched, uncheckedValues, selectAll, checkBox, chooseAllFoundedChecker, }: any) => import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=FilterStringBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterStringBox.d.ts","sourceRoot":"","sources":["../../../../src/components/Table/Filter/FilterStringBox.tsx"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe,GAAI,gOAiB7B,GAAG,4CA0JL,CAAC"}
@@ -3,7 +3,7 @@ import "urfu-ui-kit-vanilla/src/main.css";
3
3
  import { TableProperties } from "./Table.types";
4
4
  import "./Table.less";
5
5
  export declare const Table: {
6
- ({ data, columns, borders, striped, linesNotActive, fixedHeader, headerBorders, tdStyle, thStyle, cellStyle, tdContentStyle, thContentStyle, cellContentStyle, contentForEmptyTable, messageForEmptyTable, className, allTdStyleFunction, allTdContentStyleFunction, id, draggable, resize, onDrop, maxHeight, minHeight, whereFindChecked, filterEmptyLabel, virtualizationOn, parentDataField, rowHeight, visibleRows, setFilteredTableData, withoutHeader, filterResetParam, pagination, isLoading, isLoadingPreloader, initialSkeletonRows, initialSkeletonRowHeight, preloaderHeight, }: TableProperties): import("react/jsx-runtime").JSX.Element;
6
+ ({ data, columns, borders, striped, linesNotActive, fixedHeader, headerBorders, tdStyle, thStyle, cellStyle, tdContentStyle, thContentStyle, cellContentStyle, contentForEmptyTable, messageForEmptyTable, className, allTdStyleFunction, allTdContentStyleFunction, id, draggable, resize, onDrop, maxHeight, minHeight, whereFindChecked, filterEmptyLabel, virtualizationOn, parentDataField, rowHeight, visibleRows, setFilteredTableData, withoutHeader, filterResetParam, pagination, isLoading, isLoadingPreloader, initialSkeletonRows, initialSkeletonRowHeight, preloaderHeight, sort: controlledSort, sortDir: controlledSortDir, onSortChange, managedSort, defaultSort, page, pageSize, mobileView, mobileCardCollapsible, mobileCardLabels, mobileMaxVisible, mobileCardColumns, mobileCardGap, mobileCardDivider, mobileBreakpoint, renderMobileCard, renderMobileToolbar, mobileSortBar, mobileSortLabel, mobileSortStyle, mobileCardFlat, }: TableProperties): import("react/jsx-runtime").JSX.Element;
7
7
  propTypes: {
8
8
  data: PropTypes.Requireable<any[]>;
9
9
  columns: PropTypes.Requireable<any[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../src/components/Table/Table.tsx"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAmB,MAAM,eAAe,CAAC;AAEjE,OAAO,cAAc,CAAC;AAYtB,eAAO,MAAM,KAAK;kkBAwCf,eAAe;;;;;;;;;;;;;;;;CAizBjB,CAAC"}
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../src/components/Table/Table.tsx"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,cAAc,CAAC;AAatB,eAAO,MAAM,KAAK;k6BA6Df,eAAe;;;;;;;;;;;;;;;;CAgVjB,CAAC"}
@@ -0,0 +1,21 @@
1
+ interface ComputeFilteredSortedDataParams {
2
+ data: any[];
3
+ columns: any[];
4
+ sort: {
5
+ asc: boolean | undefined;
6
+ column: string | undefined;
7
+ };
8
+ uncheckedValues: Record<string, unknown[]>;
9
+ filterDates: Array<{
10
+ id: string;
11
+ type: string;
12
+ begin: unknown;
13
+ end: unknown;
14
+ }>;
15
+ whereFindChecked: string;
16
+ filterEmptyLabel: string;
17
+ parentDataField?: string;
18
+ }
19
+ export declare const computeFilteredSortedData: ({ data, columns, sort, uncheckedValues, filterDates, whereFindChecked, filterEmptyLabel, parentDataField, }: ComputeFilteredSortedDataParams) => any[];
20
+ export {};
21
+ //# sourceMappingURL=Table.dataPipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Table.dataPipeline.d.ts","sourceRoot":"","sources":["../../../src/components/Table/Table.dataPipeline.ts"],"names":[],"mappings":"AAMA,UAAU,+BAA+B;IACvC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,IAAI,EAAE;QAAE,GAAG,EAAE,OAAO,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAC/D,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3C,WAAW,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC/E,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,yBAAyB,GAAI,6GASvC,+BAA+B,UAqKjC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const pxAdd: (value: number) => string;
2
+ export declare const toAdaptiveSizeValue: (value: unknown) => unknown;
3
+ export declare const adaptTypographyStyle: (style: Record<string, unknown> | null | undefined) => Record<string, unknown>;
4
+ //# sourceMappingURL=Table.helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Table.helpers.d.ts","sourceRoot":"","sources":["../../../src/components/Table/Table.helpers.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,WAElC,CAAC;AAGF,eAAO,MAAM,mBAAmB,GAAI,OAAO,OAAO,YAYjD,CAAC;AAGF,eAAO,MAAM,oBAAoB,GAC/B,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,4BAWlD,CAAC"}
@@ -30,6 +30,58 @@ export type TableColumnsProperties = Partial<{
30
30
  roundUpTo: number;
31
31
  resizeOff: boolean;
32
32
  bitDepth: boolean;
33
+ /**
34
+ * Ключ сортировки для UNCONTROLLED-режима, если значение колонки —
35
+ * не примитив (напр. "Подразделение, должность" или числовой рейтинг).
36
+ * Если не задан — берётся row[field].
37
+ */
38
+ sortValue: (row: any) => string | number;
39
+ /** Полный кастомный компаратор колонки (важнее sortValue). */
40
+ sortComparator: (a: any, b: any) => number;
41
+ /** Эта колонка — «шапка» карточки в мобильном виде (заголовок сверху). */
42
+ mobilePrimary: boolean;
43
+ /** Не показывать колонку в карточке мобильного вида. */
44
+ mobileHidden: boolean;
45
+ /** Переопределить подпись поля в карточке (по умолчанию — title). */
46
+ mobileLabel: string;
47
+ /**
48
+ * Значение поля в карточке сворачивается (по умолчанию свёрнуто, обрезано
49
+ * в одну строку + шеврон). Тап по подписи/значению раскрывает на полный
50
+ * текст и сворачивает обратно.
51
+ */
52
+ mobileCollapsible: boolean;
53
+ /**
54
+ * Колонка «неважная» — в режиме списка (`mobileCardCollapsible`) её значение
55
+ * прячется в свёрнутые детали и показывается по тапу. Важные (не secondary,
56
+ * не primary) колонки остаются видимыми в строке.
57
+ */
58
+ mobileSecondary: boolean;
59
+ /**
60
+ * Колонка показывается компактно В СТРОКУ с заголовком (только значение, без
61
+ * подписи) — для статусов/бейджей. По умолчанию колонки (не primary/secondary/
62
+ * hidden) идут в видимую зону как «подпись: значение».
63
+ */
64
+ mobileInline: boolean;
65
+ /**
66
+ * Колонка-ПОДЗАГОЛОВОК — рендерится второй строкой прямо под заголовком
67
+ * (mobilePrimary), приглушённо и без подписи. Напр. ФИО + должность.
68
+ */
69
+ mobileSubtitle: boolean;
70
+ /**
71
+ * Скрыть ПОДПИСЬ (заголовок колонки) у этого поля в карточке. Подписи показаны
72
+ * по умолчанию у ВСЕХ полей (заголовок, главная строка, видимая/скрытая зона);
73
+ * этот флаг — точечный опт-аут. Глобально подписи гасит mobileCardLabels=false.
74
+ */
75
+ mobileHideLabel: boolean;
76
+ /**
77
+ * Статичный цвет ЗНАЧЕНИЯ этой колонки в мобильной карточке (без render).
78
+ * Напр. `{ field: 'status', mobileValueColor: '#147246' }`. Применяется к
79
+ * значению в любой зоне (главная строка / видимая / скрытая) и к заголовку,
80
+ * если это primary-колонка. Без значения — цвет из CSS-переменных.
81
+ */
82
+ mobileValueColor: string;
83
+ /** Статичный цвет ПОДПИСИ этой колонки в мобильной карточке. */
84
+ mobileLabelColor: string;
33
85
  }>;
34
86
  export type TableProperties = Partial<{
35
87
  data: any;
@@ -77,6 +129,89 @@ export type TableProperties = Partial<{
77
129
  * Если не передан — сохраняется прежнее поведение.
78
130
  */
79
131
  pagination?: PaginationProps;
132
+ /**
133
+ * Режим определяется наличием `onSortChange`:
134
+ * передан → CONTROLLED (кит только рисует иконки и эмитит событие,
135
+ * данные НЕ пересортировывает); не передан, но есть `sortOn`-колонки →
136
+ * UNCONTROLLED (кит держит своё состояние и сортирует data сам).
137
+ */
138
+ sort: string;
139
+ sortDir: "asc" | "desc";
140
+ onSortChange: (field?: string, dir?: "asc" | "desc") => void;
141
+ /**
142
+ * Таблица сама хранит состояние сортировки и сортирует `data` (self-managed).
143
+ * `onSortChange` при этом становится уведомлением (например, для сброса страницы).
144
+ * По умолчанию false — поведение прежнее (controlled, если передан onSortChange).
145
+ */
146
+ managedSort: boolean;
147
+ /**
148
+ * Начальная сортировка для managed/uncontrolled режима: поле и направление.
149
+ * С старта активирует колонку (в т.ч. активный сегмент мобильного sort-bar),
150
+ * чтобы контрол не выглядел «пустым». По умолчанию сортировки нет.
151
+ */
152
+ defaultSort: {
153
+ field?: string;
154
+ dir?: "asc" | "desc";
155
+ };
156
+ /** Текущая страница (1-based). Если заданы page и pageSize — таблица показывает только срез. */
157
+ page: number;
158
+ /** Размер страницы. Без page/pageSize таблица рендерит все строки (как раньше). */
159
+ pageSize: number;
160
+ /** 'off' (по умолчанию) — полная обратная совместимость. */
161
+ mobileView: "cards" | "off";
162
+ /**
163
+ * Режим списка: карточка сворачивается в одну строку — заголовок (mobilePrimary)
164
+ * + важные колонки, а «неважные» (`mobileSecondary`) прячутся в детали под тап.
165
+ * По умолчанию false (карточка показывает все поля).
166
+ */
167
+ mobileCardCollapsible: boolean;
168
+ /**
169
+ * Показывать подпись строки карточки = заголовок колонки таблицы (по умолчанию
170
+ * true). Применяется к строкам тела и к сворачиваемым деталям. Можно отключить
171
+ * глобально (например, когда значения самоочевидны) — тогда выводится только
172
+ * значение. Точечно подпись задаёт `mobileLabel` у колонки.
173
+ */
174
+ mobileCardLabels: boolean;
175
+ /**
176
+ * Сколько полей видимой зоны (подпись:значение) показывать до сворачивания.
177
+ * Остальные уходят в скрытую зону под тап. Без значения — показываются все.
178
+ */
179
+ mobileMaxVisible: number;
180
+ /** Раскладка полей видимой/скрытой зоны: 1 (стопкой, по умолчанию) или 2 (сетка пар). */
181
+ mobileCardColumns: 1 | 2;
182
+ /** Зазор между карточками (px-число или CSS-строка). Без значения — дефолт 8px. */
183
+ mobileCardGap: number | string;
184
+ /** Порог переключения по ШИРИНЕ КОНТЕЙНЕРА (ResizeObserver), px. По умолчанию 576. */
185
+ mobileBreakpoint: number;
186
+ /** Полностью своя вёрстка карточки. Если задан — важнее авто/хинтов. */
187
+ renderMobileCard: (row: any, index: number) => any;
188
+ /** Свой контрол сортировки/фильтра на мобайле вместо встроенного sort-bar. */
189
+ renderMobileToolbar: () => any;
190
+ /**
191
+ * Показывать встроенный sort-bar (Select по sortOn-колонкам + ↑/↓).
192
+ * По умолчанию true, если mobileView='cards' и есть sortOn-колонки.
193
+ */
194
+ mobileSortBar: boolean;
195
+ /** Подпись sort-bar. По умолчанию "Сортировка". */
196
+ mobileSortLabel: string;
197
+ /**
198
+ * Вид sort-bar в мобильном виде: 'select' (по умолчанию, выпадающий список) или
199
+ * 'segments' — сегментированный переключатель (блок на каждое sortOn-поле, активный
200
+ * подсвечен; повторный тап по активному меняет направление ↑↓). Обратная
201
+ * совместимость: по умолчанию 'select'.
202
+ */
203
+ mobileSortStyle: "select" | "segments" | "menu";
204
+ /**
205
+ * «Плоские» мобильные карточки: без рамки, радиуса и фона. Для вложения в уже
206
+ * обрамлённый контейнер (карточку), чтобы не было «границы в границе». Голоса/строки
207
+ * разделяет тонкая линия снизу. По умолчанию false (карточка в рамке, как раньше).
208
+ */
209
+ mobileCardFlat: boolean;
210
+ /**
211
+ * Тонкая линия-разделитель между карточками (для flat-варианта). По умолчанию
212
+ * false — карточки разделяет только зазор списка (без «чёрточек»).
213
+ */
214
+ mobileCardDivider: boolean;
80
215
  }>;
81
216
  export type SkeletonTdStyle = {
82
217
  padding?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Table.types.d.ts","sourceRoot":"","sources":["../../../src/components/Table/Table.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Table.types.d.ts","sourceRoot":"","sources":["../../../src/components/Table/Table.types.ts"],"names":[],"mappings":"AACA;;;GAGG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,GAAG,CAAC;IACb,OAAO,EAAE,GAAG,CAAC;IACb,SAAS,EAAE,GAAG,CAAC;IACf,cAAc,EAAE,GAAG,CAAC;IACpB,cAAc,EAAE,GAAG,CAAC;IACpB,gBAAgB,EAAE,GAAG,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,MAAM,EAAE,GAAG,CAAC;IACZ,YAAY,EAAE,GAAG,CAAC;IAClB,eAAe,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IACjD,sBAAsB,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IACxD,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,GAAG,MAAM,CAAC;IACzC,8DAA8D;IAC9D,cAAc,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;IAC3C,0EAA0E;IAC1E,aAAa,EAAE,OAAO,CAAC;IACvB,wDAAwD;IACxD,YAAY,EAAE,OAAO,CAAC;IACtB,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;;;;OAKG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,gBAAgB,EAAE,MAAM,CAAC;CAC5B,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC;IAClC,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,GAAG,CAAC;IACb,OAAO,EAAE,GAAG,CAAC;IACb,SAAS,EAAE,GAAG,CAAC;IACf,cAAc,EAAE,GAAG,CAAC;IACpB,cAAc,EAAE,GAAG,CAAC;IACpB,gBAAgB,EAAE,GAAG,CAAC;IACtB,oBAAoB,EAAE,GAAG,CAAC,OAAO,CAAC;IAClC,oBAAoB,EAAE,GAAG,CAAC,OAAO,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IACpD,yBAAyB,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IAC3D,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,eAAe,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IACjD,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IACtD,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,GAAG,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;IAG7B;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,YAAY,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;IAC7D;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,WAAW,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;IAGtD,gGAAgG;IAChG,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;IAGjB,4DAA4D;IAC5D,UAAU,EAAE,OAAO,GAAG,KAAK,CAAC;IAC5B;;;;OAIG;IACH,qBAAqB,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,yFAAyF;IACzF,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC;IACzB,mFAAmF;IACnF,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,sFAAsF;IACtF,gBAAgB,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC;IACnD,8EAA8E;IAC9E,mBAAmB,EAAE,MAAM,GAAG,CAAC;IAC/B;;;OAGG;IACH,aAAa,EAAE,OAAO,CAAC;IACvB,mDAAmD;IACnD,eAAe,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,eAAe,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IAChD;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,iBAAiB,EAAE,OAAO,CAAC;CAC9B,CAAC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import React from "react";
2
+ interface TableHeadProps {
3
+ filteredColumns: any[];
4
+ id: string;
5
+ data: any;
6
+ selected: any;
7
+ setSelected: any;
8
+ setFilteredData: any;
9
+ filteredData: any[];
10
+ uncheckedValues: Record<string, unknown[]>;
11
+ setUncheckedValues: any;
12
+ setFilterDates: any;
13
+ filterDates: any;
14
+ filterEmptyLabel: string;
15
+ sort: any;
16
+ setSort: any;
17
+ resize?: boolean;
18
+ handleMouseDown: (e: any, id: any) => void;
19
+ setLookColumnWidths: any;
20
+ lookColumnWidths: Record<string, number>;
21
+ rootRef: React.MutableRefObject<HTMLDivElement | null>;
22
+ parentDataField?: string;
23
+ filterResetParam?: any;
24
+ thRefs: any;
25
+ columnWidths: Record<string, number>;
26
+ calcLeftValues: (index: number) => number;
27
+ cellStyle?: any;
28
+ thStyle?: any;
29
+ cellContentStyle?: any;
30
+ thContentStyle?: any;
31
+ effectiveSortField?: string;
32
+ effectiveSortDir?: "asc" | "desc";
33
+ hoveredSortCol: string | null;
34
+ setHoveredSortCol: (v: string | null) => void;
35
+ handleSortToggle: (field: string) => void;
36
+ }
37
+ export declare const TableHead: ({ filteredColumns, id, data, selected, setSelected, setFilteredData, filteredData, uncheckedValues, setUncheckedValues, setFilterDates, filterDates, filterEmptyLabel, sort, setSort, resize, handleMouseDown, setLookColumnWidths, lookColumnWidths, rootRef, parentDataField, filterResetParam, thRefs, columnWidths, calcLeftValues, cellStyle, thStyle, cellContentStyle, thContentStyle, effectiveSortField, effectiveSortDir, hoveredSortCol, setHoveredSortCol, handleSortToggle, }: TableHeadProps) => import("react/jsx-runtime").JSX.Element;
38
+ export {};
39
+ //# sourceMappingURL=TableHead.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableHead.d.ts","sourceRoot":"","sources":["../../../src/components/Table/TableHead.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,UAAU,cAAc;IACtB,eAAe,EAAE,GAAG,EAAE,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,EAAE,GAAG,CAAC;IACd,WAAW,EAAE,GAAG,CAAC;IACjB,eAAe,EAAE,GAAG,CAAC;IACrB,YAAY,EAAE,GAAG,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3C,kBAAkB,EAAE,GAAG,CAAC;IACxB,cAAc,EAAE,GAAG,CAAC;IACpB,WAAW,EAAE,GAAG,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3C,mBAAmB,EAAE,GAAG,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,MAAM,EAAE,GAAG,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAClC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9C,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAKD,eAAO,MAAM,SAAS,GAAI,4dAkCvB,cAAc,4CAsLhB,CAAC"}
@@ -0,0 +1,39 @@
1
+ export declare const MobileCollapsibleField: ({ label, children, }: {
2
+ label: any;
3
+ children: any;
4
+ }) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const MobileCard: ({ title, titleLabel, titleHideLabel, titleColor, titleLabelColor, subtitle, subtitleColor, inline, body, details, flat, divider, showLabels, columns, }: {
6
+ title: any;
7
+ titleLabel?: any;
8
+ titleHideLabel?: boolean;
9
+ titleColor?: string;
10
+ titleLabelColor?: string;
11
+ subtitle?: any;
12
+ subtitleColor?: string;
13
+ inline: Array<{
14
+ label: any;
15
+ value: any;
16
+ hideLabel?: boolean;
17
+ valueColor?: string;
18
+ labelColor?: string;
19
+ }>;
20
+ body: Array<{
21
+ label: any;
22
+ value: any;
23
+ hideLabel?: boolean;
24
+ valueColor?: string;
25
+ labelColor?: string;
26
+ }>;
27
+ details: Array<{
28
+ label: any;
29
+ value: any;
30
+ hideLabel?: boolean;
31
+ valueColor?: string;
32
+ labelColor?: string;
33
+ }>;
34
+ flat?: boolean;
35
+ divider?: boolean;
36
+ showLabels?: boolean;
37
+ columns?: 1 | 2;
38
+ }) => import("react/jsx-runtime").JSX.Element;
39
+ //# sourceMappingURL=TableMobileCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableMobileCard.d.ts","sourceRoot":"","sources":["../../../src/components/Table/TableMobileCard.tsx"],"names":[],"mappings":"AAKA,eAAO,MAAM,sBAAsB,GAAI,sBAGpC;IAGD,KAAK,EAAE,GAAG,CAAC;IAEX,QAAQ,EAAE,GAAG,CAAC;CACf,4CA2BA,CAAC;AAIF,eAAO,MAAM,UAAU,GAAI,yJAexB;IAED,KAAK,EAAE,GAAG,CAAC;IAEX,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,GAAG,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEzG,IAAI,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,GAAG,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEvG,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,GAAG,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1G,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CACjB,4CA+HA,CAAC"}
@@ -0,0 +1,30 @@
1
+ interface TableMobileViewProps {
2
+ filteredColumns: any[];
3
+ pagedData: any[];
4
+ filteredDataLength: number;
5
+ dataLength?: number;
6
+ isCardMode: boolean;
7
+ isLoading?: boolean;
8
+ isLoadingPreloader?: boolean;
9
+ messageForEmptyTable?: any;
10
+ effectiveSortField?: string;
11
+ effectiveSortDir?: "asc" | "desc";
12
+ applySort: (field?: string, dir?: "asc" | "desc") => void;
13
+ setSortField: (field: string) => void;
14
+ toggleSortDir: () => void;
15
+ mobileSortBar?: boolean;
16
+ mobileSortLabel?: string;
17
+ mobileSortStyle?: "select" | "segments" | "menu";
18
+ renderMobileToolbar?: () => any;
19
+ renderMobileCard?: (row: any, index: number) => any;
20
+ mobileCardCollapsible?: boolean;
21
+ mobileCardLabels?: boolean;
22
+ mobileMaxVisible?: number;
23
+ mobileCardColumns?: 1 | 2;
24
+ mobileCardGap?: number | string;
25
+ mobileCardDivider?: boolean;
26
+ mobileCardFlat?: boolean;
27
+ }
28
+ export declare const TableMobileView: ({ filteredColumns, pagedData, filteredDataLength, dataLength, isCardMode, isLoading, isLoadingPreloader, messageForEmptyTable, effectiveSortField, effectiveSortDir, applySort, setSortField, toggleSortDir, mobileSortBar, mobileSortLabel, mobileSortStyle, renderMobileToolbar, renderMobileCard, mobileCardCollapsible, mobileCardLabels, mobileMaxVisible, mobileCardColumns, mobileCardGap, mobileCardDivider, mobileCardFlat, }: TableMobileViewProps) => import("react/jsx-runtime").JSX.Element;
29
+ export {};
30
+ //# sourceMappingURL=TableMobileView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableMobileView.d.ts","sourceRoot":"","sources":["../../../src/components/Table/TableMobileView.tsx"],"names":[],"mappings":"AAMA,UAAU,oBAAoB;IAE5B,eAAe,EAAE,GAAG,EAAE,CAAC;IAEvB,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,oBAAoB,CAAC,EAAE,GAAG,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAClC,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;IAC1D,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IAEjD,mBAAmB,CAAC,EAAE,MAAM,GAAG,CAAC;IAEhC,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC;IACpD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAID,eAAO,MAAM,eAAe,GAAI,waA0B7B,oBAAoB,4CA+TtB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import React from "react";
2
+ interface TableRowProps {
3
+ item: any;
4
+ i: number;
5
+ level?: any;
6
+ rowKey?: any;
7
+ absoluteIndex?: number;
8
+ filteredColumns: any[];
9
+ id: string;
10
+ virtualizationOn?: boolean;
11
+ start: number;
12
+ draggable?: boolean;
13
+ rowRefs: React.MutableRefObject<Record<number, HTMLTableRowElement | null>>;
14
+ resize?: boolean;
15
+ columnWidths: Record<string, number>;
16
+ parentDataField?: string;
17
+ calcLeftValues: (index: number) => number;
18
+ handleDrop: (e: React.DragEvent, i: number) => void;
19
+ insertChildRows: (startIndex: number) => void;
20
+ removeChildRows: (startIndex: number) => void;
21
+ cellStyle?: any;
22
+ tdStyle?: any;
23
+ allTdStyleFunction?: (...args: unknown[]) => unknown;
24
+ cellContentStyle?: any;
25
+ tdContentStyle?: any;
26
+ allTdContentStyleFunction?: (...args: unknown[]) => unknown;
27
+ }
28
+ export declare const TableRow: ({ item, i, level, rowKey, absoluteIndex, filteredColumns, id, virtualizationOn, start, draggable, rowRefs, resize, columnWidths, parentDataField, calcLeftValues, handleDrop, insertChildRows, removeChildRows, cellStyle, tdStyle, allTdStyleFunction, cellContentStyle, tdContentStyle, allTdContentStyleFunction, }: TableRowProps) => import("react/jsx-runtime").JSX.Element;
29
+ export {};
30
+ //# sourceMappingURL=TableRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableRow.d.ts","sourceRoot":"","sources":["../../../src/components/Table/TableRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,UAAU,aAAa;IACrB,IAAI,EAAE,GAAG,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,GAAG,EAAE,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC,CAAC,CAAC;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,UAAU,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,eAAe,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,kBAAkB,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IACrD,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,yBAAyB,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;CAC7D;AAMD,eAAO,MAAM,QAAQ,GAAI,wTAyBtB,aAAa,4CAqHf,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { TableColumnsProperties } from "./Table.types";
2
+ export declare const useColumnResize: (columns: TableColumnsProperties[], resize?: boolean) => {
3
+ columnWidths: Record<string, number>;
4
+ lookColumnWidths: Record<string, number>;
5
+ setLookColumnWidths: import("react").Dispatch<import("react").SetStateAction<Record<string, number>>>;
6
+ handleMouseDown: (e: any, id: any) => void;
7
+ thRefs: import("react").MutableRefObject<{}>;
8
+ };
9
+ //# sourceMappingURL=useColumnResize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useColumnResize.d.ts","sourceRoot":"","sources":["../../../src/components/Table/useColumnResize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAK5D,eAAO,MAAM,eAAe,GAC1B,SAAS,sBAAsB,EAAE,EACjC,SAAS,OAAO;;;;;;CA4EjB,CAAC"}
@@ -0,0 +1,34 @@
1
+ export interface TableSortState {
2
+ asc: boolean | undefined;
3
+ column: string | undefined;
4
+ }
5
+ export interface UseTableSortStateParams {
6
+ defaultSort?: {
7
+ field?: string;
8
+ dir?: "asc" | "desc";
9
+ };
10
+ controlledSort?: string;
11
+ controlledSortDir?: "asc" | "desc";
12
+ onSortChange?: (field?: string, dir?: "asc" | "desc") => void;
13
+ managedSort?: boolean;
14
+ }
15
+ export declare const useTableSortState: ({ defaultSort, controlledSort, controlledSortDir, onSortChange, managedSort, }: UseTableSortStateParams) => {
16
+ sort: {
17
+ asc: boolean | undefined;
18
+ column: string | undefined;
19
+ };
20
+ setSort: import("react").Dispatch<import("react").SetStateAction<{
21
+ asc: boolean | undefined;
22
+ column: string | undefined;
23
+ }>>;
24
+ hoveredSortCol: string;
25
+ setHoveredSortCol: import("react").Dispatch<import("react").SetStateAction<string>>;
26
+ isSortControlled: boolean;
27
+ effectiveSortField: string;
28
+ effectiveSortDir: "asc" | "desc";
29
+ applySort: (field?: string, dir?: "asc" | "desc") => void;
30
+ handleSortToggle: (field: string) => void;
31
+ setSortField: (field: string) => void;
32
+ toggleSortDir: () => void;
33
+ };
34
+ //# sourceMappingURL=useTableSortState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableSortState.d.ts","sourceRoot":"","sources":["../../../src/components/Table/useTableSortState.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,OAAO,GAAG,SAAS,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACnC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,iBAAiB,GAAI,gFAM/B,uBAAuB;;aAEjB,OAAO,GAAG,SAAS;gBAChB,MAAM,GAAG,SAAS;;;aADrB,OAAO,GAAG,SAAS;gBAChB,MAAM,GAAG,SAAS;;;;;;;wBAwBD,MAAM,QAAQ,KAAK,GAAG,MAAM;8BAYtB,MAAM;0BAIV,MAAM;;CAoBpC,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { SkeletonTdStyle } from "./Table.types";
2
+ interface UseTableVirtualizationParams {
3
+ filteredData: any[];
4
+ virtualizationOn?: boolean;
5
+ visibleRows: number;
6
+ rowHeight: number;
7
+ isLoading?: boolean;
8
+ isLoadingPreloader?: boolean;
9
+ id: string;
10
+ page?: number;
11
+ pageSize?: number;
12
+ }
13
+ export declare const useTableVirtualization: ({ filteredData, virtualizationOn, visibleRows, rowHeight, isLoading, isLoadingPreloader, id, page, pageSize, }: UseTableVirtualizationParams) => {
14
+ rootRef: import("react").MutableRefObject<HTMLDivElement>;
15
+ start: number;
16
+ visibleCount: number;
17
+ pagedData: any[];
18
+ hasOverflow: boolean;
19
+ topPadding: any;
20
+ bottomPadding: number;
21
+ rowRefs: import("react").MutableRefObject<Record<number, HTMLTableRowElement>>;
22
+ rowHeightsRef: import("react").MutableRefObject<number[]>;
23
+ tdHeightsRef: import("react").MutableRefObject<number[][]>;
24
+ tdContentHeightsRef: import("react").MutableRefObject<number[][]>;
25
+ tdContentWidthsRef: import("react").MutableRefObject<number[][]>;
26
+ tdStylesRef: import("react").MutableRefObject<SkeletonTdStyle[][]>;
27
+ preloaderRealHeight: number;
28
+ };
29
+ export {};
30
+ //# sourceMappingURL=useTableVirtualization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableVirtualization.d.ts","sourceRoot":"","sources":["../../../src/components/Table/useTableVirtualization.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGrD,UAAU,4BAA4B;IACpC,YAAY,EAAE,GAAG,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,eAAO,MAAM,sBAAsB,GAAI,gHAUpC,4BAA4B;;;;;;;;;;;;;;;CA0M9B,CAAC"}
@@ -0,0 +1,36 @@
1
+ export interface UsePaginationOptions {
2
+ /** Всего элементов (для расчёта числа страниц и клампа). */
3
+ totalItems: number;
4
+ /** Начальная страница (1-based). По умолчанию 1. */
5
+ defaultPage?: number;
6
+ /** Начальный размер страницы. По умолчанию 10. */
7
+ defaultPageSize?: number;
8
+ }
9
+ export interface UsePaginationResult {
10
+ page: number;
11
+ pageSize: number;
12
+ totalPages: number;
13
+ /** Установить страницу. */
14
+ setPage: (page: number) => void;
15
+ /** Сменить размер страницы (сбрасывает на 1-ю). */
16
+ setPageSize: (size: number) => void;
17
+ /** Сбросить на 1-ю страницу (например, при смене сортировки/фильтра). */
18
+ resetPage: () => void;
19
+ /** Вернуть срез массива для текущей страницы. */
20
+ slice: <U>(items: U[]) => U[];
21
+ /** Готовый набор пропсов для компонента Pagination. */
22
+ paginationProps: {
23
+ totalItems: number;
24
+ currentPage: number;
25
+ pageSize: number;
26
+ onPageChange: (page: number) => void;
27
+ onPageSizeChange: (size: number) => void;
28
+ };
29
+ }
30
+ /**
31
+ * Состояние пагинации (страница + размер) с типовой обвязкой: сброс на 1-ю при
32
+ * смене размера/сортировки, расчёт числа страниц, срез данных и готовые пропсы
33
+ * для компонента `Pagination`. Виджет `Pagination` остаётся отдельным.
34
+ */
35
+ export declare function usePagination({ totalItems, defaultPage, defaultPageSize, }: UsePaginationOptions): UsePaginationResult;
36
+ //# sourceMappingURL=usePagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePagination.d.ts","sourceRoot":"","sources":["../../src/hooks/usePagination.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,mDAAmD;IACnD,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,yEAAyE;IACzE,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,iDAAiD;IACjD,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;IAC9B,uDAAuD;IACvD,eAAe,EAAE;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QACrC,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;KAC1C,CAAC;CACH;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,UAAU,EACV,WAAe,EACf,eAAoB,GACrB,EAAE,oBAAoB,GAAG,mBAAmB,CAqC5C"}