@webitel/ui-datalist 1.0.77 → 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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webitel/ui-datalist",
3
- "version": "1.0.77",
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
- return Promise.allSettled([restoreFields(), restoreSort()]);
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,
@@ -37,6 +37,7 @@ export interface TableStore<Entity> {
37
37
  shownHeaders: Ref<[]>;
38
38
  fields: Ref<[]>;
39
39
  sort: Ref<string>;
40
+ columnWidths: Ref<[]>;
40
41
 
41
42
  // filtersStore
42
43
  filtersManager: Ref<IFiltersManager>;
@@ -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
- setupPersistence: () => Promise<[PromiseSettledResult<void>, PromiseSettledResult<void>]>;
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
- setupPersistence: () => Promise<[PromiseSettledResult<void>, PromiseSettledResult<void>]>;
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;
@@ -27,6 +27,7 @@ export interface TableStore<Entity> {
27
27
  shownHeaders: Ref<[]>;
28
28
  fields: Ref<[]>;
29
29
  sort: Ref<string>;
30
+ columnWidths: Ref<[]>;
30
31
  filtersManager: Ref<IFiltersManager>;
31
32
  isFiltersRestoring: Ref<boolean>;
32
33
  initialize: () => Promise<void>;