@webitel/ui-datalist 1.0.76 → 1.0.78
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/package.json +1 -1
- package/src/modules/headers/createTableHeadersStore.ts +59 -1
- package/src/modules/table/createTableStore.store.ts +6 -1
- package/src/modules/types/tableStore.types.ts +1 -0
- package/types/modules/filter-presets/stores/createFilterPresetsStore.d.ts +12 -0
- package/types/modules/headers/createTableHeadersStore.d.ts +14 -2
- package/types/modules/table/createTableStore.store.d.ts +12 -0
- package/types/modules/types/tableStore.types.d.ts +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webitel/ui-datalist",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.78",
|
|
4
4
|
"description": "Toolkit for building data lists in webitel ui system",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"make-all": "npm version patch --git-tag-version false && ( npm run lint:fix || true) && (npm run build:types || true) && npm run utils:publish",
|
|
@@ -38,6 +38,15 @@ export const tableHeadersStoreBody = ({
|
|
|
38
38
|
: null;
|
|
39
39
|
});
|
|
40
40
|
|
|
41
|
+
const columnWidths = computed(() => {
|
|
42
|
+
return headers.value.reduce((acc, header) => {
|
|
43
|
+
if (header.width) {
|
|
44
|
+
acc[header.field] = header.width;
|
|
45
|
+
}
|
|
46
|
+
return acc;
|
|
47
|
+
}, {});
|
|
48
|
+
});
|
|
49
|
+
|
|
41
50
|
const $reset = () => {
|
|
42
51
|
headers.value = rawHeaders;
|
|
43
52
|
};
|
|
@@ -129,7 +138,53 @@ export const tableHeadersStoreBody = ({
|
|
|
129
138
|
value: sort,
|
|
130
139
|
});
|
|
131
140
|
|
|
132
|
-
|
|
141
|
+
const { restore: restoreColumnWidths } = usePersistedStorage({
|
|
142
|
+
name: 'columnWidths',
|
|
143
|
+
value: columnWidths,
|
|
144
|
+
storages: [PersistedStorageType.LocalStorage],
|
|
145
|
+
storagePath: id,
|
|
146
|
+
onStore: (save, { name }) => {
|
|
147
|
+
const value = JSON.stringify(columnWidths.value);
|
|
148
|
+
return save({ name, value });
|
|
149
|
+
},
|
|
150
|
+
onRestore: async (restore, name) => {
|
|
151
|
+
const value = (await restore(name)) as string;
|
|
152
|
+
if (value) {
|
|
153
|
+
const parsedWidths = JSON.parse(value);
|
|
154
|
+
headers.value = headers.value.map((header) => ({
|
|
155
|
+
...header,
|
|
156
|
+
width: parsedWidths[header.field] || header.width,
|
|
157
|
+
}));
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
return Promise.allSettled([restoreFields(), restoreSort(), restoreColumnWidths()]);
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
const getHeaderByField = (field: string) => {
|
|
166
|
+
return headers.value.find((header) => header.field === field);
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
const columnResize = ({columnName, columnWidth}) => {
|
|
170
|
+
const column = getHeaderByField(columnName);
|
|
171
|
+
|
|
172
|
+
if (column) {
|
|
173
|
+
column.width = columnWidth;
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
const columnReorder = (orderedFields: string[]) => {
|
|
178
|
+
const reorderedHeaders = [];
|
|
179
|
+
|
|
180
|
+
orderedFields.forEach(field => {
|
|
181
|
+
const header = getHeaderByField(field);
|
|
182
|
+
if (header) {
|
|
183
|
+
reorderedHeaders.push(header);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
updateShownHeaders(reorderedHeaders);
|
|
133
188
|
};
|
|
134
189
|
|
|
135
190
|
return {
|
|
@@ -137,9 +192,12 @@ export const tableHeadersStoreBody = ({
|
|
|
137
192
|
shownHeaders,
|
|
138
193
|
fields,
|
|
139
194
|
sort,
|
|
195
|
+
columnWidths,
|
|
140
196
|
|
|
141
197
|
updateShownHeaders,
|
|
142
198
|
updateSort,
|
|
199
|
+
columnResize,
|
|
200
|
+
columnReorder,
|
|
143
201
|
|
|
144
202
|
setupPersistence,
|
|
145
203
|
$reset,
|
|
@@ -46,11 +46,13 @@ export const tableStoreBody = <Entity extends { id: string; etag?: string }>(
|
|
|
46
46
|
} = paginationStore;
|
|
47
47
|
|
|
48
48
|
const headersStore = useHeadersStore();
|
|
49
|
-
const { headers, shownHeaders, fields, sort } = makeThisToRefs<
|
|
49
|
+
const { headers, shownHeaders, fields, sort, columnWidths } = makeThisToRefs<
|
|
50
50
|
typeof headersStore
|
|
51
51
|
>(headersStore, storeType);
|
|
52
52
|
const {
|
|
53
53
|
updateSort,
|
|
54
|
+
columnResize,
|
|
55
|
+
columnReorder,
|
|
54
56
|
updateShownHeaders,
|
|
55
57
|
setupPersistence: setupHeadersPersistence,
|
|
56
58
|
} = headersStore;
|
|
@@ -246,6 +248,7 @@ export const tableStoreBody = <Entity extends { id: string; etag?: string }>(
|
|
|
246
248
|
shownHeaders,
|
|
247
249
|
fields,
|
|
248
250
|
sort,
|
|
251
|
+
columnWidths,
|
|
249
252
|
searchMode,
|
|
250
253
|
|
|
251
254
|
filtersManager,
|
|
@@ -267,6 +270,8 @@ export const tableStoreBody = <Entity extends { id: string; etag?: string }>(
|
|
|
267
270
|
updateSize,
|
|
268
271
|
|
|
269
272
|
updateSort,
|
|
273
|
+
columnResize,
|
|
274
|
+
columnReorder,
|
|
270
275
|
updateShownHeaders,
|
|
271
276
|
|
|
272
277
|
hasFilter,
|
|
@@ -14,6 +14,7 @@ export declare const filterPresetsStoreBody: (namespace?: string) => {
|
|
|
14
14
|
shownHeaders: import("vue").ComputedRef<any>;
|
|
15
15
|
fields: import("vue").ComputedRef<any>;
|
|
16
16
|
sort: import("vue").ComputedRef<string>;
|
|
17
|
+
columnWidths: import("vue").ComputedRef<any>;
|
|
17
18
|
searchMode: import("vue").Ref<string, string>;
|
|
18
19
|
filtersManager: import("vue").Ref<{
|
|
19
20
|
filters: Map<string, {
|
|
@@ -90,6 +91,11 @@ export declare const filterPresetsStoreBody: (namespace?: string) => {
|
|
|
90
91
|
updatePage: (newPage: number) => void;
|
|
91
92
|
updateSize: (newSize: number) => void;
|
|
92
93
|
updateSort: (column: any) => void;
|
|
94
|
+
columnResize: ({ columnName, columnWidth }: {
|
|
95
|
+
columnName: any;
|
|
96
|
+
columnWidth: any;
|
|
97
|
+
}) => void;
|
|
98
|
+
columnReorder: (orderedFields: string[]) => void;
|
|
93
99
|
updateShownHeaders: (value: any) => void;
|
|
94
100
|
hasFilter: any;
|
|
95
101
|
addFilter: any;
|
|
@@ -112,6 +118,7 @@ export declare const createFilterPresetsStore: (namespace: string) => () => {
|
|
|
112
118
|
shownHeaders: import("vue").ComputedRef<any>;
|
|
113
119
|
fields: import("vue").ComputedRef<any>;
|
|
114
120
|
sort: import("vue").ComputedRef<string>;
|
|
121
|
+
columnWidths: import("vue").ComputedRef<any>;
|
|
115
122
|
searchMode: import("vue").Ref<string, string>;
|
|
116
123
|
filtersManager: import("vue").Ref<{
|
|
117
124
|
filters: Map<string, {
|
|
@@ -188,6 +195,11 @@ export declare const createFilterPresetsStore: (namespace: string) => () => {
|
|
|
188
195
|
updatePage: (newPage: number) => void;
|
|
189
196
|
updateSize: (newSize: number) => void;
|
|
190
197
|
updateSort: (column: any) => void;
|
|
198
|
+
columnResize: ({ columnName, columnWidth }: {
|
|
199
|
+
columnName: any;
|
|
200
|
+
columnWidth: any;
|
|
201
|
+
}) => void;
|
|
202
|
+
columnReorder: (orderedFields: string[]) => void;
|
|
191
203
|
updateShownHeaders: (value: any) => void;
|
|
192
204
|
hasFilter: any;
|
|
193
205
|
addFilter: any;
|
|
@@ -9,9 +9,15 @@ export declare const tableHeadersStoreBody: ({ rawHeaders, id, }: TableHeadersSt
|
|
|
9
9
|
shownHeaders: import("vue").ComputedRef<any>;
|
|
10
10
|
fields: import("vue").ComputedRef<any>;
|
|
11
11
|
sort: import("vue").ComputedRef<string>;
|
|
12
|
+
columnWidths: import("vue").ComputedRef<any>;
|
|
12
13
|
updateShownHeaders: (value: any) => void;
|
|
13
14
|
updateSort: (column: any) => void;
|
|
14
|
-
|
|
15
|
+
columnResize: ({ columnName, columnWidth }: {
|
|
16
|
+
columnName: any;
|
|
17
|
+
columnWidth: any;
|
|
18
|
+
}) => void;
|
|
19
|
+
columnReorder: (orderedFields: string[]) => void;
|
|
20
|
+
setupPersistence: () => Promise<[PromiseSettledResult<void>, PromiseSettledResult<void>, PromiseSettledResult<void>]>;
|
|
15
21
|
$reset: () => void;
|
|
16
22
|
};
|
|
17
23
|
export declare const createTableHeadersStore: <Entity>(namespace: string, config: useTableStoreConfig<Entity>, { headers: rawHeaders }: {
|
|
@@ -21,9 +27,15 @@ export declare const createTableHeadersStore: <Entity>(namespace: string, config
|
|
|
21
27
|
shownHeaders: import("vue").ComputedRef<any>;
|
|
22
28
|
fields: import("vue").ComputedRef<any>;
|
|
23
29
|
sort: import("vue").ComputedRef<string>;
|
|
30
|
+
columnWidths: import("vue").ComputedRef<any>;
|
|
24
31
|
updateShownHeaders: (value: any) => void;
|
|
25
32
|
updateSort: (column: any) => void;
|
|
26
|
-
|
|
33
|
+
columnResize: ({ columnName, columnWidth }: {
|
|
34
|
+
columnName: any;
|
|
35
|
+
columnWidth: any;
|
|
36
|
+
}) => void;
|
|
37
|
+
columnReorder: (orderedFields: string[]) => void;
|
|
38
|
+
setupPersistence: () => Promise<[PromiseSettledResult<void>, PromiseSettledResult<void>, PromiseSettledResult<void>]>;
|
|
27
39
|
$reset: () => void;
|
|
28
40
|
}>;
|
|
29
41
|
export {};
|
|
@@ -16,6 +16,7 @@ export declare const tableStoreBody: <Entity extends {
|
|
|
16
16
|
shownHeaders: import("vue").ComputedRef<any>;
|
|
17
17
|
fields: import("vue").ComputedRef<any>;
|
|
18
18
|
sort: import("vue").ComputedRef<string>;
|
|
19
|
+
columnWidths: import("vue").ComputedRef<any>;
|
|
19
20
|
searchMode: Ref<string, string>;
|
|
20
21
|
filtersManager: Ref<{
|
|
21
22
|
filters: Map<string, {
|
|
@@ -92,6 +93,11 @@ export declare const tableStoreBody: <Entity extends {
|
|
|
92
93
|
updatePage: (newPage: number) => void;
|
|
93
94
|
updateSize: (newSize: number) => void;
|
|
94
95
|
updateSort: (column: any) => void;
|
|
96
|
+
columnResize: ({ columnName, columnWidth }: {
|
|
97
|
+
columnName: any;
|
|
98
|
+
columnWidth: any;
|
|
99
|
+
}) => void;
|
|
100
|
+
columnReorder: (orderedFields: string[]) => void;
|
|
95
101
|
updateShownHeaders: (value: any) => void;
|
|
96
102
|
hasFilter: any;
|
|
97
103
|
addFilter: any;
|
|
@@ -114,6 +120,7 @@ export declare const createTableStore: <Entity extends {
|
|
|
114
120
|
shownHeaders: import("vue").ComputedRef<any>;
|
|
115
121
|
fields: import("vue").ComputedRef<any>;
|
|
116
122
|
sort: import("vue").ComputedRef<string>;
|
|
123
|
+
columnWidths: import("vue").ComputedRef<any>;
|
|
117
124
|
searchMode: Ref<string, string>;
|
|
118
125
|
filtersManager: Ref<{
|
|
119
126
|
filters: Map<string, {
|
|
@@ -190,6 +197,11 @@ export declare const createTableStore: <Entity extends {
|
|
|
190
197
|
updatePage: (newPage: number) => void;
|
|
191
198
|
updateSize: (newSize: number) => void;
|
|
192
199
|
updateSort: (column: any) => void;
|
|
200
|
+
columnResize: ({ columnName, columnWidth }: {
|
|
201
|
+
columnName: any;
|
|
202
|
+
columnWidth: any;
|
|
203
|
+
}) => void;
|
|
204
|
+
columnReorder: (orderedFields: string[]) => void;
|
|
193
205
|
updateShownHeaders: (value: any) => void;
|
|
194
206
|
hasFilter: any;
|
|
195
207
|
addFilter: any;
|