@webitel/ui-datalist 1.0.84 → 1.0.86
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
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webitel/ui-datalist",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.86",
|
|
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",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@vuelidate/core": "^2.0.3",
|
|
37
37
|
"@vuelidate/validators": "^2.0.4",
|
|
38
38
|
"@vueuse/core": "^13.3.0",
|
|
39
|
-
"@webitel/api-services": "^0.0.
|
|
39
|
+
"@webitel/api-services": "^0.0.74",
|
|
40
40
|
"@webitel/styleguide": "^24.12.61",
|
|
41
41
|
"@webitel/ui-sdk": "^25.8.62",
|
|
42
42
|
"zod": "^3.25.55"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { WtTableHeader } from '@webitel/ui-sdk/components/wt-table/types/WtTable';
|
|
2
2
|
import { sortToQueryAdapter } from '@webitel/ui-sdk/scripts';
|
|
3
3
|
import { SortSymbols } from '@webitel/ui-sdk/scripts/sortQueryAdapters';
|
|
4
|
-
import { computed,
|
|
4
|
+
import { computed, nextTick, ref } from 'vue';
|
|
5
5
|
|
|
6
6
|
import { createDatalistStore } from '../_shared/createDatalistStore';
|
|
7
7
|
import { PersistedStorageType } from '../persist/PersistedStorage.types';
|
|
@@ -58,11 +58,30 @@ export const tableHeadersStoreBody = ({
|
|
|
58
58
|
|
|
59
59
|
const setHeaderOrder = (orderedFields: string[]) => {
|
|
60
60
|
const arrayFieldOrder = new Map<string, number>();
|
|
61
|
-
headers.value.forEach((header, idx) =>
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
61
|
+
headers.value.forEach((header, idx) =>
|
|
62
|
+
arrayFieldOrder.set(header.field, idx),
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
const newOrder = orderedFields.map((field) => arrayFieldOrder.get(field));
|
|
66
|
+
|
|
67
|
+
const newOrderFiltered = newOrder
|
|
68
|
+
.map((idx) => headers.value[idx])
|
|
69
|
+
.filter((header) => header);
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* @author @Oleksandr Palonnyi
|
|
73
|
+
*
|
|
74
|
+
* [WTEL-8038](https://webitel.atlassian.net/browse/WTEL-8038)
|
|
75
|
+
*
|
|
76
|
+
* Additionally, we append the `show: true` property to each item
|
|
77
|
+
* to ensure that all newly processed elements are visible by default.
|
|
78
|
+
* */
|
|
79
|
+
return newOrderFiltered.map((item) => {
|
|
80
|
+
return {
|
|
81
|
+
...item,
|
|
82
|
+
show: true,
|
|
83
|
+
};
|
|
84
|
+
});
|
|
66
85
|
};
|
|
67
86
|
|
|
68
87
|
const updateFields = (fields: string[]) => {
|
|
@@ -71,7 +90,9 @@ export const tableHeadersStoreBody = ({
|
|
|
71
90
|
show: fields.includes(header.field),
|
|
72
91
|
}));
|
|
73
92
|
|
|
74
|
-
const customFields = fields.filter(
|
|
93
|
+
const customFields = fields.filter(
|
|
94
|
+
(field) => !headers.value.some((header) => header.field === field),
|
|
95
|
+
);
|
|
75
96
|
const customFieldHeaders = customFields.map((field) => ({
|
|
76
97
|
show: true,
|
|
77
98
|
field,
|
|
@@ -79,10 +100,16 @@ export const tableHeadersStoreBody = ({
|
|
|
79
100
|
}));
|
|
80
101
|
|
|
81
102
|
const mergedHeaders = [...newHeaders, ...customFieldHeaders];
|
|
82
|
-
const orderedFields = fields.filter(field =>
|
|
103
|
+
const orderedFields = fields.filter((field) =>
|
|
104
|
+
mergedHeaders.some((header) => header.field === field),
|
|
105
|
+
);
|
|
83
106
|
const reordered = setHeaderOrder(orderedFields);
|
|
84
107
|
|
|
85
|
-
|
|
108
|
+
const uniqueMerged = mergedHeaders.filter(
|
|
109
|
+
(merged) => !reordered.some((r) => r.field === merged.field),
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
updateShownHeaders([...reordered, ...uniqueMerged]);
|
|
86
113
|
};
|
|
87
114
|
|
|
88
115
|
const updateSort = (column) => {
|
|
@@ -170,14 +197,18 @@ export const tableHeadersStoreBody = ({
|
|
|
170
197
|
},
|
|
171
198
|
});
|
|
172
199
|
|
|
173
|
-
return Promise.allSettled([
|
|
200
|
+
return Promise.allSettled([
|
|
201
|
+
restoreFields(),
|
|
202
|
+
restoreSort(),
|
|
203
|
+
restoreColumnWidths(),
|
|
204
|
+
]);
|
|
174
205
|
};
|
|
175
206
|
|
|
176
207
|
const getHeaderByField = (field: string) => {
|
|
177
208
|
return headers.value.find((header) => header.field === field);
|
|
178
209
|
};
|
|
179
210
|
|
|
180
|
-
const columnResize = ({columnName, columnWidth}) => {
|
|
211
|
+
const columnResize = ({ columnName, columnWidth }) => {
|
|
181
212
|
const column = getHeaderByField(columnName);
|
|
182
213
|
|
|
183
214
|
if (column) {
|