@webitel/ui-sdk 24.10.84 → 24.10.85
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/CHANGELOG.md +6 -0
- package/package.json +2 -1
- package/src/modules/CSVExport/XLSExport.js +20 -16
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
+
## [v24.10.84] - 2024-11-19
|
|
4
|
+
### :bug: Bug Fixes
|
|
5
|
+
- [`062e676`](https://github.com/webitel/webitel-ui-sdk/commit/062e6764e47c42c7a3de4ec6e3c39ad9632536f7) - update color for --primary-light-color variable in light and dark theme [WTEL-5557](https://webitel.atlassian.net/browse/WTEL-5557)
|
|
6
|
+
|
|
7
|
+
|
|
3
8
|
## [v24.10.83] - 2024-11-18
|
|
4
9
|
### :bug: Bug Fixes
|
|
5
10
|
- [`e89907d`](https://github.com/webitel/webitel-ui-sdk/commit/e89907d8b732630b534dcf72208202bf5851b417) - sortFilterMixin.js restore sort [WTEL-5520](https://webitel.atlassian.net/browse/WTEL-5520) *(commit by [@dlohvinov](https://github.com/dlohvinov))*
|
|
@@ -264,3 +269,4 @@
|
|
|
264
269
|
[v24.10.81]: https://github.com/webitel/webitel-ui-sdk/compare/v24.10.80...v24.10.81
|
|
265
270
|
[v24.10.82]: https://github.com/webitel/webitel-ui-sdk/compare/v24.10.81...v24.10.82
|
|
266
271
|
[v24.10.83]: https://github.com/webitel/webitel-ui-sdk/compare/v24.10.82...v24.10.83
|
|
272
|
+
[v24.10.84]: https://github.com/webitel/webitel-ui-sdk/compare/v24.10.83...v24.10.84
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webitel/ui-sdk",
|
|
3
|
-
"version": "24.10.
|
|
3
|
+
"version": "24.10.85",
|
|
4
4
|
"private": false,
|
|
5
5
|
"scripts": {
|
|
6
6
|
"dev": "vite",
|
|
@@ -118,6 +118,7 @@
|
|
|
118
118
|
"deep-equal": "^2.0.3",
|
|
119
119
|
"deepmerge": "^4.3.1",
|
|
120
120
|
"file-saver-es": "^2.0.5",
|
|
121
|
+
"flat": "^6.0.1",
|
|
121
122
|
"is-valid-domain": "^0.1.6",
|
|
122
123
|
"jszip": "^3.5.0",
|
|
123
124
|
"jszip-utils": "^0.1.0",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { saveAs } from 'file-saver-es';
|
|
2
|
+
import { flatten } from 'flat';
|
|
2
3
|
import * as XLSX from 'xlsx';
|
|
3
4
|
import { objSnakeToCamel } from '../../scripts/caseConverters.js';
|
|
4
5
|
|
|
@@ -27,18 +28,6 @@ export default class XLSExport {
|
|
|
27
28
|
return value;
|
|
28
29
|
}
|
|
29
30
|
|
|
30
|
-
// NOTE: creates a new object that only includes the properties specified in the columns array
|
|
31
|
-
filterDataByColumns(data, columns) {
|
|
32
|
-
return data.map((item) => {
|
|
33
|
-
const filteredItem = {};
|
|
34
|
-
columns.forEach((column) => {
|
|
35
|
-
const value = item.hasOwnProperty(column) ? this.extractNameFromObject(item[column]) : ''; // '' needed to display column that has no data
|
|
36
|
-
filteredItem[column] = value;
|
|
37
|
-
});
|
|
38
|
-
return filteredItem;
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
|
|
42
31
|
// NOTE: calculates the width of the columns based on the data to display it in the EXEL file
|
|
43
32
|
calculateColumnWidths(data, columns) {
|
|
44
33
|
return columns.map((column) => {
|
|
@@ -51,9 +40,23 @@ export default class XLSExport {
|
|
|
51
40
|
}
|
|
52
41
|
|
|
53
42
|
save(data, columns) {
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
43
|
+
const transformedData = data.map(({
|
|
44
|
+
variables,
|
|
45
|
+
...item
|
|
46
|
+
}) => {
|
|
47
|
+
const flatVariables = flatten({ variables });
|
|
48
|
+
|
|
49
|
+
return columns.reduce((acc, column) => {
|
|
50
|
+
return {
|
|
51
|
+
...acc,
|
|
52
|
+
[column]: this.extractNameFromObject(item[column]) || flatVariables[column] || '',
|
|
53
|
+
};
|
|
54
|
+
}, {});
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
const ws = XLSX.utils.json_to_sheet(transformedData);
|
|
59
|
+
const columnWidths = this.calculateColumnWidths(transformedData, columns);
|
|
57
60
|
ws['!cols'] = columnWidths;
|
|
58
61
|
const wb = XLSX.utils.book_new();
|
|
59
62
|
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
|
|
@@ -66,7 +69,8 @@ export default class XLSExport {
|
|
|
66
69
|
let data = [];
|
|
67
70
|
let isNext = false;
|
|
68
71
|
let page = 1;
|
|
69
|
-
const columns = params._columns ||
|
|
72
|
+
const columns = params._columns ||
|
|
73
|
+
(params?.fields ? objSnakeToCamel(params?.fields) : []);
|
|
70
74
|
|
|
71
75
|
do {
|
|
72
76
|
const { items, next } = await this.fetchMethod({
|