@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.84",
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.73",
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, ref, nextTick } from 'vue';
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) => arrayFieldOrder.set(header.field, idx));
62
-
63
- const newOrder = orderedFields.map(field => arrayFieldOrder.get(field));
64
-
65
- return newOrder.map(idx => headers.value[idx]);
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((field) => !headers.value.some((header) => header.field === field));
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 => mergedHeaders.some(header => header.field === field));
103
+ const orderedFields = fields.filter((field) =>
104
+ mergedHeaders.some((header) => header.field === field),
105
+ );
83
106
  const reordered = setHeaderOrder(orderedFields);
84
107
 
85
- updateShownHeaders(reordered);
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([restoreFields(), restoreSort(), restoreColumnWidths()]);
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) {