@snack-uikit/table 0.20.11-preview-1d8237d6.0 → 0.20.11
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 +12 -0
- package/README.md +0 -2
- package/dist/components/Table/Table.d.ts +1 -1
- package/dist/components/Table/Table.js +3 -13
- package/dist/components/Table/utils.d.ts +0 -12
- package/dist/components/Table/utils.js +0 -14
- package/dist/components/types.d.ts +0 -5
- package/package.json +6 -6
- package/src/components/Table/Table.tsx +2 -22
- package/src/components/Table/utils.ts +0 -31
- package/src/components/types.ts +0 -6
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
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.20.11 (2024-08-13)
|
|
7
|
+
|
|
8
|
+
### Only dependencies have been changed
|
|
9
|
+
* [@snack-uikit/chips@0.14.19](https://github.com/cloud-ru-tech/snack-uikit/blob/master/packages/chips/CHANGELOG.md)
|
|
10
|
+
* [@snack-uikit/list@0.15.2](https://github.com/cloud-ru-tech/snack-uikit/blob/master/packages/list/CHANGELOG.md)
|
|
11
|
+
* [@snack-uikit/toggles@0.10.3](https://github.com/cloud-ru-tech/snack-uikit/blob/master/packages/toggles/CHANGELOG.md)
|
|
12
|
+
* [@snack-uikit/toolbar@0.7.53](https://github.com/cloud-ru-tech/snack-uikit/blob/master/packages/toolbar/CHANGELOG.md)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
6
18
|
## 0.20.10 (2024-08-07)
|
|
7
19
|
|
|
8
20
|
### Only dependencies have been changed
|
package/README.md
CHANGED
|
@@ -147,7 +147,6 @@ const columnDefinitions: ColumnDefinition<TableData>[] = [
|
|
|
147
147
|
| scrollRef | `RefObject<HTMLElement>` | - | Ссылка на элемент, обозначающий самый конец прокручиваемого списка |
|
|
148
148
|
| scrollContainerRef | `RefObject<HTMLElement>` | - | Ссылка на контейнер, который скроллится |
|
|
149
149
|
| rowPinning | `Pick<RowPinningState, "top">` | { top: [], } | Определение какие строки должны быть закреплены в таблице |
|
|
150
|
-
| savedState | `{ id: string; resize?: boolean; }` | - | Конфиг для сохранения состояния в localStorage |
|
|
151
150
|
## Table.getStatusColumnDef
|
|
152
151
|
Вспомогательная функция для создания ячейки со статусом
|
|
153
152
|
### Props
|
|
@@ -207,7 +206,6 @@ const columnDefinitions: ColumnDefinition<TableData>[] = [
|
|
|
207
206
|
| scrollRef | `RefObject<HTMLElement>` | - | Ссылка на элемент, обозначающий самый конец прокручиваемого списка |
|
|
208
207
|
| scrollContainerRef | `RefObject<HTMLElement>` | - | Ссылка на контейнер, который скроллится |
|
|
209
208
|
| rowPinning | `Pick<RowPinningState, "top">` | - | Определение какие строки должны быть закреплены в таблице |
|
|
210
|
-
| savedState | `{ id: string; resize?: boolean; }` | - | Конфиг для сохранения состояния в localStorage |
|
|
211
209
|
| items | `TData[]` | - | Данные для отрисовки |
|
|
212
210
|
| total | `number` | 10 | Общее кол-во строк |
|
|
213
211
|
| limit | `number` | 10 | Кол-во строк на страницу |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TableProps } from '../types';
|
|
2
2
|
/** Компонент таблицы */
|
|
3
|
-
export declare function Table<TData extends object>({ data, rowPinning, columnDefinitions, keepPinnedRows, copyPinnedRows, enableSelectPinned, rowSelection: rowSelectionProp, search, sorting: sortingProp, columnFilters, pagination: paginationProp, className, onRowClick, onRefresh, onDelete, pageSize, pageCount, loading, outline, moreActions, exportSettings, dataFiltered, dataError, noDataState, noResultsState, errorDataState, suppressToolbar, toolbarBefore, toolbarAfter, suppressPagination, manualSorting, manualPagination, manualFiltering, autoResetPageIndex, scrollRef, scrollContainerRef, getRowId, enableFuzzySearch,
|
|
3
|
+
export declare function Table<TData extends object>({ data, rowPinning, columnDefinitions, keepPinnedRows, copyPinnedRows, enableSelectPinned, rowSelection: rowSelectionProp, search, sorting: sortingProp, columnFilters, pagination: paginationProp, className, onRowClick, onRefresh, onDelete, pageSize, pageCount, loading, outline, moreActions, exportSettings, dataFiltered, dataError, noDataState, noResultsState, errorDataState, suppressToolbar, toolbarBefore, toolbarAfter, suppressPagination, manualSorting, manualPagination, manualFiltering, autoResetPageIndex, scrollRef, scrollContainerRef, getRowId, enableFuzzySearch, ...rest }: TableProps<TData>): import("react/jsx-runtime").JSX.Element;
|
|
4
4
|
export declare namespace Table {
|
|
5
5
|
var getStatusColumnDef: typeof import("../../helperComponents").getStatusColumnDef;
|
|
6
6
|
var statusAppearances: Record<string, string>;
|
|
@@ -25,12 +25,12 @@ import { fuzzyFilter } from '../../utils';
|
|
|
25
25
|
import { useLoadingTable, useStateControl } from './hooks';
|
|
26
26
|
import { usePageReset } from './hooks/usePageReset';
|
|
27
27
|
import styles from './styles.module.css';
|
|
28
|
-
import { getColumnStyleVars, getCurrentlyConfiguredHeaderWidth
|
|
28
|
+
import { getColumnStyleVars, getCurrentlyConfiguredHeaderWidth } from './utils';
|
|
29
29
|
/** Компонент таблицы */
|
|
30
30
|
export function Table(_a) {
|
|
31
31
|
var { data, rowPinning = {
|
|
32
32
|
top: [],
|
|
33
|
-
}, columnDefinitions, keepPinnedRows = false, copyPinnedRows = false, enableSelectPinned = false, rowSelection: rowSelectionProp, search, sorting: sortingProp, columnFilters, pagination: paginationProp, className, onRowClick, onRefresh, onDelete, pageSize = DEFAULT_PAGE_SIZE, pageCount, loading = false, outline = false, moreActions, exportSettings, dataFiltered, dataError, noDataState, noResultsState, errorDataState, suppressToolbar = false, toolbarBefore, toolbarAfter, suppressPagination = false, manualSorting = false, manualPagination = false, manualFiltering = false, autoResetPageIndex = false, scrollRef, scrollContainerRef, getRowId, enableFuzzySearch
|
|
33
|
+
}, columnDefinitions, keepPinnedRows = false, copyPinnedRows = false, enableSelectPinned = false, rowSelection: rowSelectionProp, search, sorting: sortingProp, columnFilters, pagination: paginationProp, className, onRowClick, onRefresh, onDelete, pageSize = DEFAULT_PAGE_SIZE, pageCount, loading = false, outline = false, moreActions, exportSettings, dataFiltered, dataError, noDataState, noResultsState, errorDataState, suppressToolbar = false, toolbarBefore, toolbarAfter, suppressPagination = false, manualSorting = false, manualPagination = false, manualFiltering = false, autoResetPageIndex = false, scrollRef, scrollContainerRef, getRowId, enableFuzzySearch } = _a, rest = __rest(_a, ["data", "rowPinning", "columnDefinitions", "keepPinnedRows", "copyPinnedRows", "enableSelectPinned", "rowSelection", "search", "sorting", "columnFilters", "pagination", "className", "onRowClick", "onRefresh", "onDelete", "pageSize", "pageCount", "loading", "outline", "moreActions", "exportSettings", "dataFiltered", "dataError", "noDataState", "noResultsState", "errorDataState", "suppressToolbar", "toolbarBefore", "toolbarAfter", "suppressPagination", "manualSorting", "manualPagination", "manualFiltering", "autoResetPageIndex", "scrollRef", "scrollContainerRef", "getRowId", "enableFuzzySearch"]);
|
|
34
34
|
const { state: globalFilter, onStateChange: onGlobalFilterChange } = useStateControl(search, '');
|
|
35
35
|
const { state: rowSelection, onStateChange: onRowSelectionChange } = useStateControl(rowSelectionProp, {});
|
|
36
36
|
const defaultPaginationState = useMemo(() => ({
|
|
@@ -150,15 +150,8 @@ export function Table(_a) {
|
|
|
150
150
|
}
|
|
151
151
|
else {
|
|
152
152
|
const originalColumnDefSize = originalColDef === null || originalColDef === void 0 ? void 0 : originalColDef.size;
|
|
153
|
-
|
|
153
|
+
const initSize = originalColumnDefSize ? `${originalColumnDefSize}px` : '100%';
|
|
154
154
|
const prevSize = (_a = columnSizeVarsRef.current) === null || _a === void 0 ? void 0 : _a[sizeKey];
|
|
155
|
-
const withSaveResizeToStore = (originalColDef === null || originalColDef === void 0 ? void 0 : originalColDef.enableResizing) && (savedState === null || savedState === void 0 ? void 0 : savedState.resize);
|
|
156
|
-
if (withSaveResizeToStore) {
|
|
157
|
-
const savedSize = getInitColumnSizeFromLocalStorage({ id: savedState.id, columnId: header.id });
|
|
158
|
-
if (savedSize) {
|
|
159
|
-
initSize = savedSize;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
155
|
let size = initSize;
|
|
163
156
|
if (header.column.getCanResize()) {
|
|
164
157
|
const currentSize = header.getSize();
|
|
@@ -170,9 +163,6 @@ export function Table(_a) {
|
|
|
170
163
|
size = `${realSize}px`;
|
|
171
164
|
}
|
|
172
165
|
}
|
|
173
|
-
if (withSaveResizeToStore) {
|
|
174
|
-
saveStateToLocalStorage({ id: savedState.id, columnId: header.id, size });
|
|
175
|
-
}
|
|
176
166
|
colSizes[sizeKey] = size;
|
|
177
167
|
colSizes[flexKey] = size === '100%' ? 'unset' : '0';
|
|
178
168
|
}
|
|
@@ -3,15 +3,3 @@ export declare function getColumnStyleVars(id: string): {
|
|
|
3
3
|
sizeKey: string;
|
|
4
4
|
flexKey: string;
|
|
5
5
|
};
|
|
6
|
-
type GetSavedStateFromLocalStorageProps = {
|
|
7
|
-
id: string;
|
|
8
|
-
columnId: string;
|
|
9
|
-
};
|
|
10
|
-
export declare function getInitColumnSizeFromLocalStorage({ id, columnId }: GetSavedStateFromLocalStorageProps): string | undefined;
|
|
11
|
-
type SaveStateToLocalStorageProps = {
|
|
12
|
-
id: string;
|
|
13
|
-
columnId: string;
|
|
14
|
-
size: string;
|
|
15
|
-
};
|
|
16
|
-
export declare function saveStateToLocalStorage({ id, columnId, size }: SaveStateToLocalStorageProps): void;
|
|
17
|
-
export {};
|
|
@@ -14,17 +14,3 @@ export function getColumnStyleVars(id) {
|
|
|
14
14
|
flexKey: `--table-column-${id}-flex`,
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
-
const RESIZED_KEY = 'RESIZED_COLUMN_KEY';
|
|
18
|
-
export function getInitColumnSizeFromLocalStorage({ id, columnId }) {
|
|
19
|
-
const savedStateFromStorage = JSON.parse(localStorage.getItem(id || '') || 'null');
|
|
20
|
-
if (savedStateFromStorage) {
|
|
21
|
-
const currentSize = savedStateFromStorage[`${RESIZED_KEY}-${columnId}`];
|
|
22
|
-
return currentSize;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
export function saveStateToLocalStorage({ id, columnId, size }) {
|
|
26
|
-
const savedStateFromStorage = JSON.parse(localStorage.getItem(id) || 'null');
|
|
27
|
-
const newItem = savedStateFromStorage || {};
|
|
28
|
-
newItem[`${RESIZED_KEY}-${columnId}`] = size;
|
|
29
|
-
localStorage.setItem(id, JSON.stringify(newItem));
|
|
30
|
-
}
|
|
@@ -121,11 +121,6 @@ export type TableProps<TData extends object> = WithSupportProps<{
|
|
|
121
121
|
scrollContainerRef?: RefObject<HTMLElement>;
|
|
122
122
|
/** Определение какие строки должны быть закреплены в таблице */
|
|
123
123
|
rowPinning?: Pick<RowPinningState, 'top'>;
|
|
124
|
-
/** Конфиг для сохранения состояния в localStorage */
|
|
125
|
-
savedState?: {
|
|
126
|
-
id: string;
|
|
127
|
-
resize?: boolean;
|
|
128
|
-
};
|
|
129
124
|
}>;
|
|
130
125
|
export type ServerTableProps<TData extends object> = Omit<TableProps<TData>, 'pageSize' | 'pageCount' | 'pagination' | 'search' | 'data'> & {
|
|
131
126
|
/** Данные для отрисовки */
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"title": "Table",
|
|
7
|
-
"version": "0.20.11
|
|
7
|
+
"version": "0.20.11",
|
|
8
8
|
"sideEffects": [
|
|
9
9
|
"*.css",
|
|
10
10
|
"*.woff",
|
|
@@ -33,16 +33,16 @@
|
|
|
33
33
|
"scripts": {},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@snack-uikit/button": "0.17.3",
|
|
36
|
-
"@snack-uikit/chips": "0.14.
|
|
36
|
+
"@snack-uikit/chips": "0.14.19",
|
|
37
37
|
"@snack-uikit/icon-predefined": "0.5.1",
|
|
38
38
|
"@snack-uikit/icons": "0.22.0",
|
|
39
39
|
"@snack-uikit/info-block": "0.4.5",
|
|
40
|
-
"@snack-uikit/list": "0.15.
|
|
40
|
+
"@snack-uikit/list": "0.15.2",
|
|
41
41
|
"@snack-uikit/pagination": "0.6.11",
|
|
42
42
|
"@snack-uikit/scroll": "0.6.0",
|
|
43
43
|
"@snack-uikit/skeleton": "0.3.4",
|
|
44
|
-
"@snack-uikit/toggles": "0.10.
|
|
45
|
-
"@snack-uikit/toolbar": "0.7.
|
|
44
|
+
"@snack-uikit/toggles": "0.10.3",
|
|
45
|
+
"@snack-uikit/toolbar": "0.7.53",
|
|
46
46
|
"@snack-uikit/truncate-string": "0.4.20",
|
|
47
47
|
"@snack-uikit/typography": "0.6.2",
|
|
48
48
|
"@snack-uikit/utils": "3.3.0",
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
"peerDependencies": {
|
|
58
58
|
"@snack-uikit/locale": "*"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "85e564a411e0e9c0d841c5d589e32b0c2b351028"
|
|
61
61
|
}
|
|
@@ -41,12 +41,7 @@ import { TableProps } from '../types';
|
|
|
41
41
|
import { useLoadingTable, useStateControl } from './hooks';
|
|
42
42
|
import { usePageReset } from './hooks/usePageReset';
|
|
43
43
|
import styles from './styles.module.scss';
|
|
44
|
-
import {
|
|
45
|
-
getColumnStyleVars,
|
|
46
|
-
getCurrentlyConfiguredHeaderWidth,
|
|
47
|
-
getInitColumnSizeFromLocalStorage,
|
|
48
|
-
saveStateToLocalStorage,
|
|
49
|
-
} from './utils';
|
|
44
|
+
import { getColumnStyleVars, getCurrentlyConfiguredHeaderWidth } from './utils';
|
|
50
45
|
|
|
51
46
|
/** Компонент таблицы */
|
|
52
47
|
export function Table<TData extends object>({
|
|
@@ -90,7 +85,6 @@ export function Table<TData extends object>({
|
|
|
90
85
|
scrollContainerRef,
|
|
91
86
|
getRowId,
|
|
92
87
|
enableFuzzySearch,
|
|
93
|
-
savedState,
|
|
94
88
|
|
|
95
89
|
...rest
|
|
96
90
|
}: TableProps<TData>) {
|
|
@@ -241,18 +235,9 @@ export function Table<TData extends object>({
|
|
|
241
235
|
colSizes[flexKey] = '100%';
|
|
242
236
|
} else {
|
|
243
237
|
const originalColumnDefSize = originalColDef?.size;
|
|
244
|
-
|
|
238
|
+
const initSize = originalColumnDefSize ? `${originalColumnDefSize}px` : '100%';
|
|
245
239
|
const prevSize = columnSizeVarsRef.current?.[sizeKey];
|
|
246
240
|
|
|
247
|
-
const withSaveResizeToStore = originalColDef?.enableResizing && savedState?.resize;
|
|
248
|
-
|
|
249
|
-
if (withSaveResizeToStore) {
|
|
250
|
-
const savedSize = getInitColumnSizeFromLocalStorage({ id: savedState.id, columnId: header.id });
|
|
251
|
-
if (savedSize) {
|
|
252
|
-
initSize = savedSize;
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
|
|
256
241
|
let size = initSize;
|
|
257
242
|
|
|
258
243
|
if (header.column.getCanResize()) {
|
|
@@ -269,11 +254,6 @@ export function Table<TData extends object>({
|
|
|
269
254
|
}
|
|
270
255
|
}
|
|
271
256
|
|
|
272
|
-
if (withSaveResizeToStore) {
|
|
273
|
-
saveStateToLocalStorage({ id: savedState.id, columnId: header.id, size });
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
|
|
277
257
|
colSizes[sizeKey] = size;
|
|
278
258
|
colSizes[flexKey] = size === '100%' ? 'unset' : '0';
|
|
279
259
|
}
|
|
@@ -19,34 +19,3 @@ export function getColumnStyleVars(id: string) {
|
|
|
19
19
|
flexKey: `--table-column-${id}-flex`,
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
|
-
|
|
23
|
-
const RESIZED_KEY = 'RESIZED_COLUMN_KEY';
|
|
24
|
-
|
|
25
|
-
type GetSavedStateFromLocalStorageProps = {
|
|
26
|
-
id: string;
|
|
27
|
-
columnId: string;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export function getInitColumnSizeFromLocalStorage({ id, columnId }: GetSavedStateFromLocalStorageProps) {
|
|
31
|
-
const savedStateFromStorage = JSON.parse(localStorage.getItem(id || '') || 'null');
|
|
32
|
-
|
|
33
|
-
if (savedStateFromStorage) {
|
|
34
|
-
const currentSize = savedStateFromStorage[`${RESIZED_KEY}-${columnId}`] as string | undefined;
|
|
35
|
-
return currentSize;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
type SaveStateToLocalStorageProps = {
|
|
40
|
-
id: string;
|
|
41
|
-
columnId: string;
|
|
42
|
-
size: string;
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
export function saveStateToLocalStorage({ id, columnId, size }: SaveStateToLocalStorageProps) {
|
|
46
|
-
const savedStateFromStorage = JSON.parse(localStorage.getItem(id) || 'null');
|
|
47
|
-
|
|
48
|
-
const newItem: Record<string, string> = savedStateFromStorage || {};
|
|
49
|
-
newItem[`${RESIZED_KEY}-${columnId}`] = size;
|
|
50
|
-
|
|
51
|
-
localStorage.setItem(id, JSON.stringify(newItem));
|
|
52
|
-
}
|
package/src/components/types.ts
CHANGED
|
@@ -152,12 +152,6 @@ export type TableProps<TData extends object> = WithSupportProps<{
|
|
|
152
152
|
scrollContainerRef?: RefObject<HTMLElement>;
|
|
153
153
|
/** Определение какие строки должны быть закреплены в таблице */
|
|
154
154
|
rowPinning?: Pick<RowPinningState, 'top'>;
|
|
155
|
-
|
|
156
|
-
/** Конфиг для сохранения состояния в localStorage */
|
|
157
|
-
savedState?: {
|
|
158
|
-
id: string;
|
|
159
|
-
resize?: boolean;
|
|
160
|
-
};
|
|
161
155
|
}>;
|
|
162
156
|
|
|
163
157
|
export type ServerTableProps<TData extends object> = Omit<
|