@webitel/ui-datalist 1.0.78 → 1.0.80
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 +28 -18
- package/src/modules/table/createTableStore.store.ts +16 -1
- package/types/modules/filter-presets/stores/createFilterPresetsStore.d.ts +2 -0
- package/types/modules/headers/createTableHeadersStore.d.ts +2 -0
- package/types/modules/table/createTableStore.store.d.ts +2 -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.80",
|
|
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",
|
|
@@ -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 } from 'vue';
|
|
4
|
+
import { computed, ref, nextTick } from 'vue';
|
|
5
5
|
|
|
6
6
|
import { createDatalistStore } from '../_shared/createDatalistStore';
|
|
7
7
|
import { PersistedStorageType } from '../persist/PersistedStorage.types';
|
|
@@ -18,6 +18,7 @@ export const tableHeadersStoreBody = ({
|
|
|
18
18
|
id,
|
|
19
19
|
}: TableHeadersStoreBodyParams) => {
|
|
20
20
|
const headers = ref<WtTableHeader[]>(rawHeaders);
|
|
21
|
+
const isReorderingColumn = ref(false);
|
|
21
22
|
|
|
22
23
|
const shownHeaders = computed(() => {
|
|
23
24
|
return headers.value.filter((header) => header.show);
|
|
@@ -55,23 +56,33 @@ export const tableHeadersStoreBody = ({
|
|
|
55
56
|
headers.value = value;
|
|
56
57
|
};
|
|
57
58
|
|
|
59
|
+
const setHeaderOrder = (orderedFields: string[]) => {
|
|
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]);
|
|
66
|
+
};
|
|
67
|
+
|
|
58
68
|
const updateFields = (fields: string[]) => {
|
|
59
|
-
const newHeaders = headers.value.map((header: WtTableHeader) => {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
};
|
|
64
|
-
});
|
|
69
|
+
const newHeaders = headers.value.map((header: WtTableHeader) => ({
|
|
70
|
+
...header,
|
|
71
|
+
show: fields.includes(header.field),
|
|
72
|
+
}));
|
|
65
73
|
|
|
66
74
|
const customFields = fields.filter((field) => !headers.value.some((header) => header.field === field));
|
|
67
|
-
// debugger
|
|
68
75
|
const customFieldHeaders = customFields.map((field) => ({
|
|
69
76
|
show: true,
|
|
70
77
|
field,
|
|
71
78
|
shouldBeInitialized: true,
|
|
72
79
|
}));
|
|
73
|
-
|
|
74
|
-
|
|
80
|
+
|
|
81
|
+
const mergedHeaders = [...newHeaders, ...customFieldHeaders];
|
|
82
|
+
const orderedFields = fields.filter(field => mergedHeaders.some(header => header.field === field));
|
|
83
|
+
const reordered = setHeaderOrder(orderedFields);
|
|
84
|
+
|
|
85
|
+
updateShownHeaders(reordered);
|
|
75
86
|
};
|
|
76
87
|
|
|
77
88
|
const updateSort = (column) => {
|
|
@@ -175,16 +186,14 @@ export const tableHeadersStoreBody = ({
|
|
|
175
186
|
};
|
|
176
187
|
|
|
177
188
|
const columnReorder = (orderedFields: string[]) => {
|
|
178
|
-
|
|
189
|
+
isReorderingColumn.value = true;
|
|
179
190
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
if (header) {
|
|
183
|
-
reorderedHeaders.push(header);
|
|
184
|
-
}
|
|
185
|
-
});
|
|
191
|
+
const reordered = setHeaderOrder(orderedFields);
|
|
192
|
+
updateShownHeaders(reordered);
|
|
186
193
|
|
|
187
|
-
|
|
194
|
+
nextTick(() => {
|
|
195
|
+
isReorderingColumn.value = false;
|
|
196
|
+
});
|
|
188
197
|
};
|
|
189
198
|
|
|
190
199
|
return {
|
|
@@ -193,6 +202,7 @@ export const tableHeadersStoreBody = ({
|
|
|
193
202
|
fields,
|
|
194
203
|
sort,
|
|
195
204
|
columnWidths,
|
|
205
|
+
isReorderingColumn,
|
|
196
206
|
|
|
197
207
|
updateShownHeaders,
|
|
198
208
|
updateSort,
|
|
@@ -46,7 +46,7 @@ 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, columnWidths } = makeThisToRefs<
|
|
49
|
+
const { headers, shownHeaders, fields, sort, columnWidths, isReorderingColumn } = makeThisToRefs<
|
|
50
50
|
typeof headersStore
|
|
51
51
|
>(headersStore, storeType);
|
|
52
52
|
const {
|
|
@@ -202,6 +202,13 @@ export const tableStoreBody = <Entity extends { id: string; etag?: string }>(
|
|
|
202
202
|
watch(
|
|
203
203
|
[() => filtersManager.value.getAllValues(), sort, fields, size],
|
|
204
204
|
async () => {
|
|
205
|
+
/*
|
|
206
|
+
* @author @Lera24
|
|
207
|
+
* https://webitel.atlassian.net/browse/WTEL-7597?focusedCommentId=697115
|
|
208
|
+
* */
|
|
209
|
+
if (isReorderingColumn.value) {
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
205
212
|
loadingAfterFiltersChange = true;
|
|
206
213
|
updatePage(1);
|
|
207
214
|
await loadDataList();
|
|
@@ -232,6 +239,12 @@ export const tableStoreBody = <Entity extends { id: string; etag?: string }>(
|
|
|
232
239
|
return loadDataList();
|
|
233
240
|
};
|
|
234
241
|
|
|
242
|
+
const resetInfiniteScrollTableParamsToDefaults = () => {
|
|
243
|
+
paginationStore.$reset();
|
|
244
|
+
filtersManager.value.reset();
|
|
245
|
+
headersStore.$reset();
|
|
246
|
+
};
|
|
247
|
+
|
|
235
248
|
return {
|
|
236
249
|
isStoreSetUp, // internal export for pinia devtools
|
|
237
250
|
|
|
@@ -264,6 +277,8 @@ export const tableStoreBody = <Entity extends { id: string; etag?: string }>(
|
|
|
264
277
|
patchItemProperty,
|
|
265
278
|
deleteEls,
|
|
266
279
|
|
|
280
|
+
resetInfiniteScrollTableParamsToDefaults,
|
|
281
|
+
|
|
267
282
|
updateSearchMode,
|
|
268
283
|
|
|
269
284
|
updatePage,
|
|
@@ -87,6 +87,7 @@ export declare const filterPresetsStoreBody: (namespace?: string) => {
|
|
|
87
87
|
updateSelected: (value: EnginePresetQuery[]) => void;
|
|
88
88
|
patchItemProperty: ({ index, path, value, }: import("../../types/tableStore.types").PatchItemPropertyParams) => Promise<void>;
|
|
89
89
|
deleteEls: (_els: EnginePresetQuery[]) => Promise<void>;
|
|
90
|
+
resetInfiniteScrollTableParamsToDefaults: () => void;
|
|
90
91
|
updateSearchMode: (newSearch: string) => void;
|
|
91
92
|
updatePage: (newPage: number) => void;
|
|
92
93
|
updateSize: (newSize: number) => void;
|
|
@@ -191,6 +192,7 @@ export declare const createFilterPresetsStore: (namespace: string) => () => {
|
|
|
191
192
|
updateSelected: (value: EnginePresetQuery[]) => void;
|
|
192
193
|
patchItemProperty: ({ index, path, value, }: import("../../types/tableStore.types").PatchItemPropertyParams) => Promise<void>;
|
|
193
194
|
deleteEls: (_els: EnginePresetQuery[]) => Promise<void>;
|
|
195
|
+
resetInfiniteScrollTableParamsToDefaults: () => void;
|
|
194
196
|
updateSearchMode: (newSearch: string) => void;
|
|
195
197
|
updatePage: (newPage: number) => void;
|
|
196
198
|
updateSize: (newSize: number) => void;
|
|
@@ -10,6 +10,7 @@ export declare const tableHeadersStoreBody: ({ rawHeaders, id, }: TableHeadersSt
|
|
|
10
10
|
fields: import("vue").ComputedRef<any>;
|
|
11
11
|
sort: import("vue").ComputedRef<string>;
|
|
12
12
|
columnWidths: import("vue").ComputedRef<any>;
|
|
13
|
+
isReorderingColumn: import("vue").Ref<boolean, boolean>;
|
|
13
14
|
updateShownHeaders: (value: any) => void;
|
|
14
15
|
updateSort: (column: any) => void;
|
|
15
16
|
columnResize: ({ columnName, columnWidth }: {
|
|
@@ -28,6 +29,7 @@ export declare const createTableHeadersStore: <Entity>(namespace: string, config
|
|
|
28
29
|
fields: import("vue").ComputedRef<any>;
|
|
29
30
|
sort: import("vue").ComputedRef<string>;
|
|
30
31
|
columnWidths: import("vue").ComputedRef<any>;
|
|
32
|
+
isReorderingColumn: import("vue").Ref<boolean, boolean>;
|
|
31
33
|
updateShownHeaders: (value: any) => void;
|
|
32
34
|
updateSort: (column: any) => void;
|
|
33
35
|
columnResize: ({ columnName, columnWidth }: {
|
|
@@ -89,6 +89,7 @@ export declare const tableStoreBody: <Entity extends {
|
|
|
89
89
|
updateSelected: (value: Entity[]) => void;
|
|
90
90
|
patchItemProperty: ({ index, path, value, }: PatchItemPropertyParams) => Promise<void>;
|
|
91
91
|
deleteEls: (_els: Entity[]) => Promise<void>;
|
|
92
|
+
resetInfiniteScrollTableParamsToDefaults: () => void;
|
|
92
93
|
updateSearchMode: (newSearch: string) => void;
|
|
93
94
|
updatePage: (newPage: number) => void;
|
|
94
95
|
updateSize: (newSize: number) => void;
|
|
@@ -193,6 +194,7 @@ export declare const createTableStore: <Entity extends {
|
|
|
193
194
|
updateSelected: (value: Entity[]) => void;
|
|
194
195
|
patchItemProperty: ({ index, path, value, }: PatchItemPropertyParams) => Promise<void>;
|
|
195
196
|
deleteEls: (_els: Entity[]) => Promise<void>;
|
|
197
|
+
resetInfiniteScrollTableParamsToDefaults: () => void;
|
|
196
198
|
updateSearchMode: (newSearch: string) => void;
|
|
197
199
|
updatePage: (newPage: number) => void;
|
|
198
200
|
updateSize: (newSize: number) => void;
|