@igo2/utils 18.0.1-next.2 → 18.0.2
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/esm2022/igo2-utils.mjs +5 -0
- package/esm2022/lib/base64.mjs +85 -0
- package/esm2022/lib/cache.utils.mjs +10 -0
- package/esm2022/lib/change.interface.mjs +7 -0
- package/esm2022/lib/change.mjs +87 -0
- package/esm2022/lib/clipboard.mjs +52 -0
- package/esm2022/lib/compression/compressedData.interface.mjs +2 -0
- package/esm2022/lib/compression/compression.utils.mjs +124 -0
- package/esm2022/lib/compression/index.mjs +3 -0
- package/esm2022/lib/date.utils.mjs +10 -0
- package/esm2022/lib/dom.utils.mjs +16 -0
- package/esm2022/lib/files/excel.mjs +37 -0
- package/esm2022/lib/files/file.mjs +45 -0
- package/esm2022/lib/files/index.mjs +3 -0
- package/esm2022/lib/index.mjs +19 -0
- package/esm2022/lib/number-utils.mjs +7 -0
- package/esm2022/lib/object-utils.mjs +249 -0
- package/esm2022/lib/strenum.mjs +8 -0
- package/esm2022/lib/string-utils.mjs +115 -0
- package/esm2022/lib/theme.utils.mjs +23 -0
- package/esm2022/lib/tree/index.mjs +2 -0
- package/esm2022/lib/tree/tree.mjs +208 -0
- package/esm2022/lib/user-agent.mjs +3 -0
- package/esm2022/lib/uuid.mjs +8 -0
- package/esm2022/lib/watcher.mjs +37 -0
- package/esm2022/public_api.mjs +5 -0
- package/fesm2022/igo2-utils.mjs.map +1 -1
- package/package.json +6 -4
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdvMi11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3V0aWxzL3NyYy9pZ28yLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
const ALPHA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
3
|
+
export class Base64 {
|
|
4
|
+
static PADCHAR = '=';
|
|
5
|
+
static ALPHA = ALPHA;
|
|
6
|
+
static getByte(s, i) {
|
|
7
|
+
const x = s.charCodeAt(i);
|
|
8
|
+
return x;
|
|
9
|
+
}
|
|
10
|
+
static getByte64(s, i) {
|
|
11
|
+
const idx = this.ALPHA.indexOf(s.charAt(i));
|
|
12
|
+
return idx;
|
|
13
|
+
}
|
|
14
|
+
static decode(s) {
|
|
15
|
+
let pads = 0, i, b10, imax = s.length, x = [];
|
|
16
|
+
s = String(s);
|
|
17
|
+
if (imax === 0) {
|
|
18
|
+
return s;
|
|
19
|
+
}
|
|
20
|
+
if (s.charAt(imax - 1) === this.PADCHAR) {
|
|
21
|
+
pads = 1;
|
|
22
|
+
if (s.charAt(imax - 2) === this.PADCHAR) {
|
|
23
|
+
pads = 2;
|
|
24
|
+
}
|
|
25
|
+
imax -= 4;
|
|
26
|
+
}
|
|
27
|
+
for (i = 0; i < imax; i += 4) {
|
|
28
|
+
b10 =
|
|
29
|
+
(this.getByte64(s, i) << 18) |
|
|
30
|
+
(this.getByte64(s, i + 1) << 12) |
|
|
31
|
+
(this.getByte64(s, i + 2) << 6) |
|
|
32
|
+
this.getByte64(s, i + 3);
|
|
33
|
+
x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 255, b10 & 255));
|
|
34
|
+
}
|
|
35
|
+
switch (pads) {
|
|
36
|
+
case 1:
|
|
37
|
+
b10 =
|
|
38
|
+
(this.getByte64(s, i) << 18) |
|
|
39
|
+
(this.getByte64(s, i + 1) << 12) |
|
|
40
|
+
(this.getByte64(s, i + 2) << 6);
|
|
41
|
+
x.push(String.fromCharCode(b10 >> 16, (b10 >> 8) & 255));
|
|
42
|
+
break;
|
|
43
|
+
case 2:
|
|
44
|
+
b10 = (this.getByte64(s, i) << 18) | (this.getByte64(s, i + 1) << 12);
|
|
45
|
+
x.push(String.fromCharCode(b10 >> 16));
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
return x.join('');
|
|
49
|
+
}
|
|
50
|
+
static encode(s) {
|
|
51
|
+
s = String(s);
|
|
52
|
+
let i, b10, x = [], imax = s.length - (s.length % 3);
|
|
53
|
+
if (s.length === 0) {
|
|
54
|
+
return s;
|
|
55
|
+
}
|
|
56
|
+
for (i = 0; i < imax; i += 3) {
|
|
57
|
+
b10 =
|
|
58
|
+
(this.getByte(s, i) << 16) |
|
|
59
|
+
(this.getByte(s, i + 1) << 8) |
|
|
60
|
+
this.getByte(s, i + 2);
|
|
61
|
+
x.push(this.ALPHA.charAt(b10 >> 18));
|
|
62
|
+
x.push(this.ALPHA.charAt((b10 >> 12) & 63));
|
|
63
|
+
x.push(this.ALPHA.charAt((b10 >> 6) & 63));
|
|
64
|
+
x.push(this.ALPHA.charAt(b10 & 63));
|
|
65
|
+
}
|
|
66
|
+
switch (s.length - imax) {
|
|
67
|
+
case 1:
|
|
68
|
+
b10 = this.getByte(s, i) << 16;
|
|
69
|
+
x.push(this.ALPHA.charAt(b10 >> 18) +
|
|
70
|
+
this.ALPHA.charAt((b10 >> 12) & 63) +
|
|
71
|
+
this.PADCHAR +
|
|
72
|
+
this.PADCHAR);
|
|
73
|
+
break;
|
|
74
|
+
case 2:
|
|
75
|
+
b10 = (this.getByte(s, i) << 16) | (this.getByte(s, i + 1) << 8);
|
|
76
|
+
x.push(this.ALPHA.charAt(b10 >> 18) +
|
|
77
|
+
this.ALPHA.charAt((b10 >> 12) & 63) +
|
|
78
|
+
this.ALPHA.charAt((b10 >> 6) & 63) +
|
|
79
|
+
this.PADCHAR);
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
return x.join('');
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZTY0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvdXRpbHMvc3JjL2xpYi9iYXNlNjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBRXBCLE1BQU0sS0FBSyxHQUNULGtFQUFrRSxDQUFDO0FBRXJFLE1BQU0sT0FBTyxNQUFNO0lBQ1QsTUFBTSxDQUFDLE9BQU8sR0FBVyxHQUFHLENBQUM7SUFDN0IsTUFBTSxDQUFDLEtBQUssR0FBVyxLQUFLLENBQUM7SUFFN0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFTLEVBQUUsQ0FBUztRQUN6QyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBUyxFQUFFLENBQVM7UUFDM0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBUztRQUM1QixJQUFJLElBQUksR0FBRyxDQUFDLEVBQ1YsQ0FBQyxFQUNELEdBQUcsRUFDSCxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFDZixDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRVQsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVkLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDeEMsSUFBSSxHQUFHLENBQUMsQ0FBQztZ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O1lBQ1IsS0FBSyxDQUFDO2dCQUNKLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNqRSxDQUFDLENBQUMsSUFBSSxDQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7b0JBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUNsQyxJQUFJLENBQUMsT0FBTyxDQUNmLENBQUM7Z0JBQ0YsTUFBTTtRQUNWLENBQUM7UUFFRCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG5cbmNvbnN0IEFMUEhBID1cbiAgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nO1xuXG5leHBvcnQgY2xhc3MgQmFzZTY0IHtcbiAgcHJpdmF0ZSBzdGF0aWMgUEFEQ0hBUjogc3RyaW5nID0gJz0nO1xuICBwcml2YXRlIHN0YXRpYyBBTFBIQTogc3RyaW5nID0gQUxQSEE7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0Qnl0ZShzOiBzdHJpbmcsIGk6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgeCA9IHMuY2hhckNvZGVBdChpKTtcbiAgICByZXR1cm4geDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldEJ5dGU2NChzOiBzdHJpbmcsIGk6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgaWR4ID0gdGhpcy5BTFBIQS5pbmRleE9mKHMuY2hhckF0KGkpKTtcbiAgICByZXR1cm4gaWR4O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBkZWNvZGUoczogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgcGFkcyA9IDAsXG4gICAgICBpLFxuICAgICAgYjEwLFxuICAgICAgaW1heCA9IHMubGVuZ3RoLFxuICAgICAgeCA9IFtdO1xuXG4gICAgcyA9IFN0cmluZyhzKTtcblxuICAgIGlmIChpbWF4ID09PSAwKSB7XG4gICAgICByZXR1cm4gcztcbiAgICB9XG5cbiAgICBpZiAocy5jaGFyQXQoaW1heCAtIDEpID09PSB0aGlzLlBBRENIQVIpIHtcbiAgICAgIHBhZHMgPSAxO1xuICAgICAgaWYgKHMuY2hhckF0KGltYXggLSAyKSA9PT0gdGhpcy5QQURDSEFSKSB7XG4gICAgICAgIHBhZHMgPSAyO1xuICAgICAgfVxuICAgICAgaW1heCAtPSA0O1xuICAgIH1cblxuICAgIGZvciAoaSA9IDA7IGkgPCBpbWF4OyBpICs9IDQpIHtcbiAgICAgIGIxMCA9XG4gICAgICAgICh0aGlzLmdldEJ5dGU2NChzLCBpKSA8PCAxOCkgfFxuICAgICAgICAodGhpcy5nZXRCeXRlNjQocywgaSArIDEpIDw8IDEyKSB8XG4gICAgICAgICh0aGlzLmdldEJ5dGU2NChzLCBpICsgMikgPDwgNikgfFxuICAgICAgICB0aGlzLmdldEJ5dGU2NChzLCBpICsgMyk7XG4gICAgICB4LnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShiMTAgPj4gMTYsIChiMTAgPj4gOCkgJiAyNTUsIGIxMCAmIDI1NSkpO1xuICAgIH1cblxuICAgIHN3aXRjaCAocGFkcykge1xuICAgICAgY2FzZSAxOlxuICAgICAgICBiMTAgPVxuICAgICAgICAgICh0aGlzLmdldEJ5dGU2NChzLCBpKSA8PCAxOCkgfFxuICAgICAgICAgICh0aGlzLmdldEJ5dGU2NChzLCBpICsgMSkgPDwgMTIpIHxcbiAgICAgICAgICAodGhpcy5nZXRCeXRlNjQocywgaSArIDIpIDw8IDYpO1xuICAgICAgICB4LnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShiMTAgPj4gMTYsIChiMTAgPj4gOCkgJiAyNTUpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIGIxMCA9ICh0aGlzLmdldEJ5dGU2NChzLCBpKSA8PCAxOCkgfCAodGhpcy5nZXRCeXRlNjQocywgaSArIDEpIDw8IDEyKTtcbiAgICAgICAgeC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYjEwID4+IDE2KSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiB4LmpvaW4oJycpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBlbmNvZGUoczogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBzID0gU3RyaW5nKHMpO1xuXG4gICAgbGV0IGksXG4gICAgICBiMTAsXG4gICAgICB4ID0gW10sXG4gICAgICBpbWF4ID0gcy5sZW5ndGggLSAocy5sZW5ndGggJSAzKTtcblxuICAgIGlmIChzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHM7XG4gICAgfVxuXG4gICAgZm9yIChpID0gMDsgaSA8IGltYXg7IGkgKz0gMykge1xuICAgICAgYjEwID1cbiAgICAgICAgKHRoaXMuZ2V0Qnl0ZShzLCBpKSA8PCAxNikgfFxuICAgICAgICAodGhpcy5nZXRCeXRlKHMsIGkgKyAxKSA8PCA4KSB8XG4gICAgICAgIHRoaXMuZ2V0Qnl0ZShzLCBpICsgMik7XG4gICAgICB4LnB1c2godGhpcy5BTFBIQS5jaGFyQXQoYjEwID4+IDE4KSk7XG4gICAgICB4LnB1c2godGhpcy5BTFBIQS5jaGFyQXQoKGIxMCA+PiAxMikgJiA2MykpO1xuICAgICAgeC5wdXNoKHRoaXMuQUxQSEEuY2hhckF0KChiMTAgPj4gNikgJiA2MykpO1xuICAgICAgeC5wdXNoKHRoaXMuQUxQSEEuY2hhckF0KGIxMCAmIDYzKSk7XG4gICAgfVxuXG4gICAgc3dpdGNoIChzLmxlbmd0aCAtIGltYXgpIHtcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgYjEwID0gdGhpcy5nZXRCeXRlKHMsIGkpIDw8IDE2O1xuICAgICAgICB4LnB1c2goXG4gICAgICAgICAgdGhpcy5BTFBIQS5jaGFyQXQoYjEwID4+IDE4KSArXG4gICAgICAgICAgICB0aGlzLkFMUEhBLmNoYXJBdCgoYjEwID4+IDEyKSAmIDYzKSArXG4gICAgICAgICAgICB0aGlzLlBBRENIQVIgK1xuICAgICAgICAgICAgdGhpcy5QQURDSEFSXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyOlxuICAgICAgICBiMTAgPSAodGhpcy5nZXRCeXRlKHMsIGkpIDw8IDE2KSB8ICh0aGlzLmdldEJ5dGUocywgaSArIDEpIDw8IDgpO1xuICAgICAgICB4LnB1c2goXG4gICAgICAgICAgdGhpcy5BTFBIQS5jaGFyQXQoYjEwID4+IDE4KSArXG4gICAgICAgICAgICB0aGlzLkFMUEhBLmNoYXJBdCgoYjEwID4+IDEyKSAmIDYzKSArXG4gICAgICAgICAgICB0aGlzLkFMUEhBLmNoYXJBdCgoYjEwID4+IDYpICYgNjMpICtcbiAgICAgICAgICAgIHRoaXMuUEFEQ0hBUlxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4geC5qb2luKCcnKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { HttpParams } from '@angular/common/http';
|
|
2
|
+
export function customCacheHasher(parameters) {
|
|
3
|
+
return parameters.map((param) => {
|
|
4
|
+
if (param instanceof HttpParams) {
|
|
5
|
+
return param.toString();
|
|
6
|
+
}
|
|
7
|
+
return param !== undefined ? JSON.parse(JSON.stringify(param)) : param;
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy91dGlscy9zcmMvbGliL2NhY2hlLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsVUFBcUI7SUFDckQsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDOUIsSUFBSSxLQUFLLFlBQVksVUFBVSxFQUFFLENBQUM7WUFDaEMsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN6RSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3VzdG9tQ2FjaGVIYXNoZXIocGFyYW1ldGVyczogdW5rbm93bltdKTogdW5rbm93bltdIHtcbiAgcmV0dXJuIHBhcmFtZXRlcnMubWFwKChwYXJhbSkgPT4ge1xuICAgIGlmIChwYXJhbSBpbnN0YW5jZW9mIEh0dHBQYXJhbXMpIHtcbiAgICAgIHJldHVybiBwYXJhbS50b1N0cmluZygpO1xuICAgIH1cbiAgICByZXR1cm4gcGFyYW0gIT09IHVuZGVmaW5lZCA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocGFyYW0pKSA6IHBhcmFtO1xuICB9KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export var ChangeType;
|
|
2
|
+
(function (ChangeType) {
|
|
3
|
+
ChangeType["ADDED"] = "added";
|
|
4
|
+
ChangeType["DELETED"] = "deleted";
|
|
5
|
+
ChangeType["MODIFIED"] = "modified";
|
|
6
|
+
})(ChangeType || (ChangeType = {}));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWxzL3NyYy9saWIvY2hhbmdlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxVQUlYO0FBSkQsV0FBWSxVQUFVO0lBQ3BCLDZCQUFlLENBQUE7SUFDZixpQ0FBbUIsQ0FBQTtJQUNuQixtQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSlcsVUFBVSxLQUFWLFVBQVUsUUFJckIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBDaGFuZ2VUeXBlIHtcbiAgQURERUQgPSAnYWRkZWQnLFxuICBERUxFVEVEID0gJ2RlbGV0ZWQnLFxuICBNT0RJRklFRCA9ICdtb2RpZmllZCdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2Uge1xuICB0eXBlOiBDaGFuZ2VUeXBlO1xuICBrZXlzQ2hhbmdlZD86IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBuZXdWYWx1ZTogYW55O1xuICAgIG9sZFZhbHVlOiBhbnk7XG4gIH1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcm91cGluZ0NoYW5nZXMge1xuICBhZGRlZDogQ2hhbmdlSXRlbVtdO1xuICBkZWxldGVkOiBDaGFuZ2VJdGVtW107XG4gIG1vZGlmaWVkOiBDaGFuZ2VJdGVtW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlSXRlbSB7XG4gIGNoYW5nZTogQ2hhbmdlO1xuICB2YWx1ZTogYW55O1xuICBvbGRWYWx1ZT86IGFueTtcbiAgbmV3VmFsdWU/OiBhbnk7XG59XG4iXX0=
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { ChangeType } from './change.interface';
|
|
2
|
+
import { StringUtils } from './string-utils';
|
|
3
|
+
export class ChangeUtils {
|
|
4
|
+
static findChanges(obj1, obj2, ignoreKeys = []) {
|
|
5
|
+
const items = {
|
|
6
|
+
added: [],
|
|
7
|
+
deleted: [],
|
|
8
|
+
modified: []
|
|
9
|
+
};
|
|
10
|
+
if (!obj1 || !obj2) {
|
|
11
|
+
return items;
|
|
12
|
+
}
|
|
13
|
+
const obj1Clone = [...obj1];
|
|
14
|
+
const obj2Clone = [...obj2];
|
|
15
|
+
for (const fromItem of obj1Clone) {
|
|
16
|
+
const index = obj2Clone.findIndex((s) => s.id === fromItem.id);
|
|
17
|
+
if (index === -1) {
|
|
18
|
+
items.deleted.push({
|
|
19
|
+
change: { type: ChangeType.DELETED },
|
|
20
|
+
value: fromItem
|
|
21
|
+
});
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
const toItem = obj2Clone.splice(index, 1)[0];
|
|
25
|
+
const fromItemClone = JSON.parse(JSON.stringify(fromItem));
|
|
26
|
+
const toItemClone = JSON.parse(JSON.stringify(toItem));
|
|
27
|
+
const keysChanged = ChangeUtils.compareObject(fromItemClone, toItemClone, undefined, ignoreKeys);
|
|
28
|
+
if (keysChanged.length) {
|
|
29
|
+
items.modified.push({
|
|
30
|
+
change: {
|
|
31
|
+
type: ChangeType.MODIFIED,
|
|
32
|
+
keysChanged
|
|
33
|
+
},
|
|
34
|
+
value: fromItemClone,
|
|
35
|
+
oldValue: fromItem,
|
|
36
|
+
newValue: toItem
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
items.added = obj2Clone.map((itemAdded) => {
|
|
41
|
+
return {
|
|
42
|
+
change: { type: ChangeType.ADDED },
|
|
43
|
+
value: itemAdded
|
|
44
|
+
};
|
|
45
|
+
});
|
|
46
|
+
return items;
|
|
47
|
+
}
|
|
48
|
+
static compareObject(fromItem, toItem, baseKey, ignoreKeys = []) {
|
|
49
|
+
const fromItemClone = JSON.parse(JSON.stringify(fromItem));
|
|
50
|
+
const toItemClone = JSON.parse(JSON.stringify(toItem));
|
|
51
|
+
const keys = new Set([
|
|
52
|
+
...Object.keys(fromItem),
|
|
53
|
+
...Object.keys(toItem)
|
|
54
|
+
]);
|
|
55
|
+
let keysChanged = [];
|
|
56
|
+
keys.forEach((key) => {
|
|
57
|
+
const keyString = baseKey ? `${baseKey}.${key}` : key;
|
|
58
|
+
if (ignoreKeys.indexOf(keyString) !== -1) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (Array.isArray(fromItem[key])) {
|
|
62
|
+
fromItem[key] = fromItem[key].join(',<br>');
|
|
63
|
+
}
|
|
64
|
+
if (Array.isArray(toItem[key])) {
|
|
65
|
+
toItem[key] = toItem[key].join(',<br>');
|
|
66
|
+
}
|
|
67
|
+
if (typeof fromItem[key] === 'object' &&
|
|
68
|
+
typeof toItem[key] === 'object' &&
|
|
69
|
+
fromItem[key] !== null &&
|
|
70
|
+
toItem[key] !== null) {
|
|
71
|
+
keysChanged = keysChanged.concat(this.compareObject(fromItem[key], toItem[key], keyString));
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
if (fromItem[key] !== toItem[key]) {
|
|
75
|
+
keysChanged.push({
|
|
76
|
+
key: keyString,
|
|
77
|
+
oldValue: fromItemClone[key],
|
|
78
|
+
newValue: toItemClone[key]
|
|
79
|
+
});
|
|
80
|
+
fromItem[key] = StringUtils.diff(fromItem[key], toItem[key]);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
return keysChanged;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvdXRpbHMvc3JjL2xpYi9jaGFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBbUIsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsSUFBVyxFQUNYLElBQVcsRUFDWCxhQUF1QixFQUFFO1FBRXpCLE1BQU0sS0FBSyxHQUFvQjtZQUM3QixLQUFLLEVBQUUsRUFBRTtZQUNULE9BQU8sRUFBRSxFQUFFO1lBQ1gsUUFBUSxFQUFFLEVBQUU7U0FDYixDQUFDO1FBRUYsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25CLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNqQyxNQUFNLFNBQVMsR0FBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFakMsS0FBSyxNQUFNLFFBQVEsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNqQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUUvRCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNqQixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztvQkFDakIsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxPQUFPLEVBQUU7b0JBQ3BDLEtBQUssRUFBRSxRQUFRO2lCQUNoQixDQUFDLENBQUM7Z0JBQ0gsU0FBUztZQUNYLENBQUM7WUFFRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUMzRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUV2RCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUMzQyxhQUFhLEVBQ2IsV0FBVyxFQUNYLFNBQVMsRUFDVCxVQUFVLENBQ1gsQ0FBQztZQUVGLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN2QixLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztvQkFDbEIsTUFBTSxFQUFFO3dCQUNOLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUTt3QkFDekIsV0FBVztxQkFDWjtvQkFDRCxLQUFLLEVBQUUsYUFBYTtvQkFDcEIsUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFFBQVEsRUFBRSxNQUFNO2lCQUNqQixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztRQUVELEtBQUssQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3hDLE9BQU87Z0JBQ0wsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxLQUFLLEVBQUU7Z0JBQ2xDLEtBQUssRUFBRSxTQUFTO2FBQ2pCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFRLEVBQUUsVUFBVSxHQUFHLEVBQUU7UUFDdEUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDM0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFdkQsTUFBTSxJQUFJLEdBQVEsSUFBSSxHQUFHLENBQUM7WUFDeEIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUN4QixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3ZCLENBQUMsQ0FBQztRQUNILElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbkIsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ3RELElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN6QyxPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5QyxDQUFDO1lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQy9CLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFDLENBQUM7WUFFRCxJQUNFLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVE7Z0JBQ2pDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVE7Z0JBQy9CLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJO2dCQUN0QixNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUNwQixDQUFDO2dCQUNELFdBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQzFELENBQUM7WUFDSixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ2xDLFdBQVcsQ0FBQyxJQUFJLENBQUM7d0JBQ2YsR0FBRyxFQUFFLFNBQVM7d0JBQ2QsUUFBUSxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUM7d0JBQzVCLFFBQVEsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDO3FCQUMzQixDQUFDLENBQUM7b0JBQ0gsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUMvRCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlVHlwZSwgR3JvdXBpbmdDaGFuZ2VzIH0gZnJvbSAnLi9jaGFuZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFN0cmluZ1V0aWxzIH0gZnJvbSAnLi9zdHJpbmctdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgQ2hhbmdlVXRpbHMge1xuICBzdGF0aWMgZmluZENoYW5nZXMoXG4gICAgb2JqMTogYW55W10sXG4gICAgb2JqMjogYW55W10sXG4gICAgaWdub3JlS2V5czogc3RyaW5nW10gPSBbXVxuICApOiBHcm91cGluZ0NoYW5nZXMge1xuICAgIGNvbnN0IGl0ZW1zOiBHcm91cGluZ0NoYW5nZXMgPSB7XG4gICAgICBhZGRlZDogW10sXG4gICAgICBkZWxldGVkOiBbXSxcbiAgICAgIG1vZGlmaWVkOiBbXVxuICAgIH07XG5cbiAgICBpZiAoIW9iajEgfHwgIW9iajIpIHtcbiAgICAgIHJldHVybiBpdGVtcztcbiAgICB9XG5cbiAgICBjb25zdCBvYmoxQ2xvbmU6IGFueSA9IFsuLi5vYmoxXTtcbiAgICBjb25zdCBvYmoyQ2xvbmU6IGFueSA9IFsuLi5vYmoyXTtcblxuICAgIGZvciAoY29uc3QgZnJvbUl0ZW0gb2Ygb2JqMUNsb25lKSB7XG4gICAgICBjb25zdCBpbmRleCA9IG9iajJDbG9uZS5maW5kSW5kZXgoKHMpID0+IHMuaWQgPT09IGZyb21JdGVtLmlkKTtcblxuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgICBpdGVtcy5kZWxldGVkLnB1c2goe1xuICAgICAgICAgIGNoYW5nZTogeyB0eXBlOiBDaGFuZ2VUeXBlLkRFTEVURUQgfSxcbiAgICAgICAgICB2YWx1ZTogZnJvbUl0ZW1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0b0l0ZW0gPSBvYmoyQ2xvbmUuc3BsaWNlKGluZGV4LCAxKVswXTtcbiAgICAgIGNvbnN0IGZyb21JdGVtQ2xvbmUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGZyb21JdGVtKSk7XG4gICAgICBjb25zdCB0b0l0ZW1DbG9uZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodG9JdGVtKSk7XG5cbiAgICAgIGNvbnN0IGtleXNDaGFuZ2VkID0gQ2hhbmdlVXRpbHMuY29tcGFyZU9iamVjdChcbiAgICAgICAgZnJvbUl0ZW1DbG9uZSxcbiAgICAgICAgdG9JdGVtQ2xvbmUsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgaWdub3JlS2V5c1xuICAgICAgKTtcblxuICAgICAgaWYgKGtleXNDaGFuZ2VkLmxlbmd0aCkge1xuICAgICAgICBpdGVtcy5tb2RpZmllZC5wdXNoKHtcbiAgICAgICAgICBjaGFuZ2U6IHtcbiAgICAgICAgICAgIHR5cGU6IENoYW5nZVR5cGUuTU9ESUZJRUQsXG4gICAgICAgICAgICBrZXlzQ2hhbmdlZFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdmFsdWU6IGZyb21JdGVtQ2xvbmUsXG4gICAgICAgICAgb2xkVmFsdWU6IGZyb21JdGVtLFxuICAgICAgICAgIG5ld1ZhbHVlOiB0b0l0ZW1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaXRlbXMuYWRkZWQgPSBvYmoyQ2xvbmUubWFwKChpdGVtQWRkZWQpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNoYW5nZTogeyB0eXBlOiBDaGFuZ2VUeXBlLkFEREVEIH0sXG4gICAgICAgIHZhbHVlOiBpdGVtQWRkZWRcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjb21wYXJlT2JqZWN0KGZyb21JdGVtLCB0b0l0ZW0sIGJhc2VLZXk/LCBpZ25vcmVLZXlzID0gW10pIHtcbiAgICBjb25zdCBmcm9tSXRlbUNsb25lID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShmcm9tSXRlbSkpO1xuICAgIGNvbnN0IHRvSXRlbUNsb25lID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0b0l0ZW0pKTtcblxuICAgIGNvbnN0IGtleXM6IGFueSA9IG5ldyBTZXQoW1xuICAgICAgLi4uT2JqZWN0LmtleXMoZnJvbUl0ZW0pLFxuICAgICAgLi4uT2JqZWN0LmtleXModG9JdGVtKVxuICAgIF0pO1xuICAgIGxldCBrZXlzQ2hhbmdlZCA9IFtdO1xuICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBjb25zdCBrZXlTdHJpbmcgPSBiYXNlS2V5ID8gYCR7YmFzZUtleX0uJHtrZXl9YCA6IGtleTtcbiAgICAgIGlmIChpZ25vcmVLZXlzLmluZGV4T2Yoa2V5U3RyaW5nKSAhPT0gLTEpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShmcm9tSXRlbVtrZXldKSkge1xuICAgICAgICBmcm9tSXRlbVtrZXldID0gZnJvbUl0ZW1ba2V5XS5qb2luKCcsPGJyPicpO1xuICAgICAgfVxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodG9JdGVtW2tleV0pKSB7XG4gICAgICAgIHRvSXRlbVtrZXldID0gdG9JdGVtW2tleV0uam9pbignLDxicj4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICB0eXBlb2YgZnJvbUl0ZW1ba2V5XSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgdHlwZW9mIHRvSXRlbVtrZXldID09PSAnb2JqZWN0JyAmJlxuICAgICAgICBmcm9tSXRlbVtrZXldICE9PSBudWxsICYmXG4gICAgICAgIHRvSXRlbVtrZXldICE9PSBudWxsXG4gICAgICApIHtcbiAgICAgICAga2V5c0NoYW5nZWQgPSBrZXlzQ2hhbmdlZC5jb25jYXQoXG4gICAgICAgICAgdGhpcy5jb21wYXJlT2JqZWN0KGZyb21JdGVtW2tleV0sIHRvSXRlbVtrZXldLCBrZXlTdHJpbmcpXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZnJvbUl0ZW1ba2V5XSAhPT0gdG9JdGVtW2tleV0pIHtcbiAgICAgICAgICBrZXlzQ2hhbmdlZC5wdXNoKHtcbiAgICAgICAgICAgIGtleToga2V5U3RyaW5nLFxuICAgICAgICAgICAgb2xkVmFsdWU6IGZyb21JdGVtQ2xvbmVba2V5XSxcbiAgICAgICAgICAgIG5ld1ZhbHVlOiB0b0l0ZW1DbG9uZVtrZXldXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZnJvbUl0ZW1ba2V5XSA9IFN0cmluZ1V0aWxzLmRpZmYoZnJvbUl0ZW1ba2V5XSwgdG9JdGVtW2tleV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4ga2V5c0NoYW5nZWQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { userAgent } from './user-agent';
|
|
2
|
+
export class Clipboard {
|
|
3
|
+
static copy(element) {
|
|
4
|
+
let successful = false;
|
|
5
|
+
if (typeof element === 'string') {
|
|
6
|
+
const textArea = Clipboard.createTextArea(element);
|
|
7
|
+
Clipboard.selectText(textArea);
|
|
8
|
+
successful = Clipboard.copyTextToClipboard();
|
|
9
|
+
Clipboard.destroyTextArea(textArea);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
Clipboard.selectText(element);
|
|
13
|
+
successful = Clipboard.copyTextToClipboard();
|
|
14
|
+
}
|
|
15
|
+
return successful;
|
|
16
|
+
}
|
|
17
|
+
static createTextArea(text) {
|
|
18
|
+
const textArea = document.createElement('textArea');
|
|
19
|
+
textArea.value = text;
|
|
20
|
+
document.body.appendChild(textArea);
|
|
21
|
+
return textArea;
|
|
22
|
+
}
|
|
23
|
+
static destroyTextArea(textArea) {
|
|
24
|
+
document.body.removeChild(textArea);
|
|
25
|
+
}
|
|
26
|
+
static selectText(textArea) {
|
|
27
|
+
if (userAgent.getOSName() === 'iOS') {
|
|
28
|
+
const oldContentEditable = textArea.contentEditable;
|
|
29
|
+
const oldReadOnly = textArea.readOnly;
|
|
30
|
+
const range = document.createRange();
|
|
31
|
+
const selection = window.getSelection();
|
|
32
|
+
textArea.contenteditable = true;
|
|
33
|
+
textArea.readonly = false;
|
|
34
|
+
range.selectNodeContents(textArea);
|
|
35
|
+
selection.removeAllRanges();
|
|
36
|
+
selection.addRange(range);
|
|
37
|
+
textArea.setSelectionRange(0, 999999);
|
|
38
|
+
textArea.contentEditable = oldContentEditable;
|
|
39
|
+
textArea.readOnly = oldReadOnly;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
textArea.select();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
static copyTextToClipboard() {
|
|
46
|
+
if (!(userAgent.getOSName() === 'iOS' && userAgent.compareVersion('<10'))) {
|
|
47
|
+
return document.execCommand('copy');
|
|
48
|
+
}
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvdXRpbHMvc3JjL2xpYi9jbGlwYm9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxNQUFNLE9BQU8sU0FBUztJQUNwQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQXFDO1FBQy9DLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkQsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvQixVQUFVLEdBQUcsU0FBUyxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDN0MsU0FBUyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxDQUFDO2FBQU0sQ0FBQztZQUNOLFNBQVMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUIsVUFBVSxHQUFHLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQy9DLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFZO1FBQ3hDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUF3QixDQUFDO1FBQzNFLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxNQUFNLENBQUMsZUFBZSxDQUFDLFFBQVE7UUFDckMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVPLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUTtRQUNoQyxJQUFJLFNBQVMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNwQyxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUM7WUFDcEQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUN0QyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXhDLFFBQVEsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1lBQ2hDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQzFCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuQyxTQUFTLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDNUIsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3RDLFFBQVEsQ0FBQyxlQUFlLEdBQUcsa0JBQWtCLENBQUM7WUFDOUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7UUFDbEMsQ0FBQzthQUFNLENBQUM7WUFDTixRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFFTyxNQUFNLENBQUMsbUJBQW1CO1FBQ2hDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxLQUFLLElBQUksU0FBUyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDMUUsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZXJBZ2VudCB9IGZyb20gJy4vdXNlci1hZ2VudCc7XG5cbmV4cG9ydCBjbGFzcyBDbGlwYm9hcmQge1xuICBzdGF0aWMgY29weShlbGVtZW50OiBIVE1MVGV4dEFyZWFFbGVtZW50IHwgc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbGV0IHN1Y2Nlc3NmdWwgPSBmYWxzZTtcbiAgICBpZiAodHlwZW9mIGVsZW1lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCB0ZXh0QXJlYSA9IENsaXBib2FyZC5jcmVhdGVUZXh0QXJlYShlbGVtZW50KTtcbiAgICAgIENsaXBib2FyZC5zZWxlY3RUZXh0KHRleHRBcmVhKTtcbiAgICAgIHN1Y2Nlc3NmdWwgPSBDbGlwYm9hcmQuY29weVRleHRUb0NsaXBib2FyZCgpO1xuICAgICAgQ2xpcGJvYXJkLmRlc3Ryb3lUZXh0QXJlYSh0ZXh0QXJlYSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIENsaXBib2FyZC5zZWxlY3RUZXh0KGVsZW1lbnQpO1xuICAgICAgc3VjY2Vzc2Z1bCA9IENsaXBib2FyZC5jb3B5VGV4dFRvQ2xpcGJvYXJkKCk7XG4gICAgfVxuICAgIHJldHVybiBzdWNjZXNzZnVsO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlVGV4dEFyZWEodGV4dDogc3RyaW5nKTogSFRNTFRleHRBcmVhRWxlbWVudCB7XG4gICAgY29uc3QgdGV4dEFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0QXJlYScpIGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gICAgdGV4dEFyZWEudmFsdWUgPSB0ZXh0O1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGV4dEFyZWEpO1xuICAgIHJldHVybiB0ZXh0QXJlYTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGRlc3Ryb3lUZXh0QXJlYSh0ZXh0QXJlYSkge1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGV4dEFyZWEpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgc2VsZWN0VGV4dCh0ZXh0QXJlYSkge1xuICAgIGlmICh1c2VyQWdlbnQuZ2V0T1NOYW1lKCkgPT09ICdpT1MnKSB7XG4gICAgICBjb25zdCBvbGRDb250ZW50RWRpdGFibGUgPSB0ZXh0QXJlYS5jb250ZW50RWRpdGFibGU7XG4gICAgICBjb25zdCBvbGRSZWFkT25seSA9IHRleHRBcmVhLnJlYWRPbmx5O1xuICAgICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuXG4gICAgICB0ZXh0QXJlYS5jb250ZW50ZWRpdGFibGUgPSB0cnVlO1xuICAgICAgdGV4dEFyZWEucmVhZG9ubHkgPSBmYWxzZTtcbiAgICAgIHJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyh0ZXh0QXJlYSk7XG4gICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpO1xuICAgICAgdGV4dEFyZWEuc2V0U2VsZWN0aW9uUmFuZ2UoMCwgOTk5OTk5KTtcbiAgICAgIHRleHRBcmVhLmNvbnRlbnRFZGl0YWJsZSA9IG9sZENvbnRlbnRFZGl0YWJsZTtcbiAgICAgIHRleHRBcmVhLnJlYWRPbmx5ID0gb2xkUmVhZE9ubHk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRleHRBcmVhLnNlbGVjdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNvcHlUZXh0VG9DbGlwYm9hcmQoKTogYm9vbGVhbiB7XG4gICAgaWYgKCEodXNlckFnZW50LmdldE9TTmFtZSgpID09PSAnaU9TJyAmJiB1c2VyQWdlbnQuY29tcGFyZVZlcnNpb24oJzwxMCcpKSkge1xuICAgICAgcmV0dXJuIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHJlc3NlZERhdGEuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdXRpbHMvc3JjL2xpYi9jb21wcmVzc2lvbi9jb21wcmVzc2VkRGF0YS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ29tcHJlc3NlZERhdGEge1xuICBsZW5ndGg6IG51bWJlcjtcbiAgdHlwZTogc3RyaW5nO1xuICBvYmplY3Q6IGFueTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
function getNumber(v, endposition, length) {
|
|
3
|
+
const mask = (1 << length) - 1;
|
|
4
|
+
return (v >> endposition) & mask;
|
|
5
|
+
}
|
|
6
|
+
export class Compression {
|
|
7
|
+
base64Index = new Map();
|
|
8
|
+
indexBase64 = new Map();
|
|
9
|
+
constructor() {
|
|
10
|
+
this.generateBase64Index();
|
|
11
|
+
}
|
|
12
|
+
generateBase64Index() {
|
|
13
|
+
// https://fr.wikipedia.org/wiki/Base64
|
|
14
|
+
// A-Z => [0, 25]
|
|
15
|
+
for (let i = 0; i < 26; i++) {
|
|
16
|
+
this.base64Index.set(String.fromCharCode('A'.charCodeAt(0) + i), i);
|
|
17
|
+
this.indexBase64.set(i, String.fromCharCode('A'.charCodeAt(0) + i));
|
|
18
|
+
}
|
|
19
|
+
// a-z => [26, 51]
|
|
20
|
+
for (let i = 0; i < 26; i++) {
|
|
21
|
+
this.base64Index.set(String.fromCharCode('a'.charCodeAt(0) + i), i + 26);
|
|
22
|
+
this.indexBase64.set(i + 26, String.fromCharCode('a'.charCodeAt(0) + i));
|
|
23
|
+
}
|
|
24
|
+
// 0-9 => [52, 61]
|
|
25
|
+
for (let i = 0; i < 10; i++) {
|
|
26
|
+
this.base64Index.set(String.fromCharCode('0'.charCodeAt(0) + i), i + 52);
|
|
27
|
+
this.indexBase64.set(i + 52, String.fromCharCode('0'.charCodeAt(0) + i));
|
|
28
|
+
}
|
|
29
|
+
// + / => [62, 63]
|
|
30
|
+
this.base64Index.set('+', 62);
|
|
31
|
+
this.base64Index.set('/', 63);
|
|
32
|
+
this.indexBase64.set(62, '+');
|
|
33
|
+
this.indexBase64.set(63, '/');
|
|
34
|
+
}
|
|
35
|
+
compressBlob(blob) {
|
|
36
|
+
if (!blob) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const observable = new Observable((observer) => {
|
|
40
|
+
const reader = new FileReader();
|
|
41
|
+
reader.readAsDataURL(blob);
|
|
42
|
+
reader.onload = () => {
|
|
43
|
+
const base64 = reader.result.valueOf();
|
|
44
|
+
const text64 = base64.substr(base64.indexOf(',') + 1);
|
|
45
|
+
const compressed = this.compressStringBase64(text64);
|
|
46
|
+
const compressedData = {
|
|
47
|
+
length: text64.length,
|
|
48
|
+
type: blob.type,
|
|
49
|
+
object: compressed
|
|
50
|
+
};
|
|
51
|
+
observer.next(compressedData);
|
|
52
|
+
};
|
|
53
|
+
});
|
|
54
|
+
return observable;
|
|
55
|
+
}
|
|
56
|
+
decompressBlob(compressedData) {
|
|
57
|
+
const object = compressedData.object;
|
|
58
|
+
const length = compressedData.length;
|
|
59
|
+
const decompressed = this.decompressStringBase64(object, length);
|
|
60
|
+
const byteCharacters = atob(decompressed);
|
|
61
|
+
const byteNumbers = new Array(byteCharacters.length);
|
|
62
|
+
for (let i = 0; i < byteCharacters.length; i++) {
|
|
63
|
+
byteNumbers[i] = byteCharacters.charCodeAt(i);
|
|
64
|
+
}
|
|
65
|
+
const byteArray = new Uint8Array(byteNumbers);
|
|
66
|
+
const blob = new Blob([byteArray], { type: compressedData.type });
|
|
67
|
+
return blob;
|
|
68
|
+
}
|
|
69
|
+
compressStringBase64(s) {
|
|
70
|
+
let out = '';
|
|
71
|
+
let bits = 16;
|
|
72
|
+
let chr = 0;
|
|
73
|
+
let rem = 0;
|
|
74
|
+
for (const c of s) {
|
|
75
|
+
const value = this.base64Index.get(c);
|
|
76
|
+
if (bits > 6) {
|
|
77
|
+
bits -= 6;
|
|
78
|
+
chr += value << bits;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
rem = 6 - bits;
|
|
82
|
+
chr += value >> rem;
|
|
83
|
+
out += String.fromCharCode(chr);
|
|
84
|
+
chr = value << (16 - rem);
|
|
85
|
+
bits = 16 - rem;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (s.length % 8 !== 0) {
|
|
89
|
+
out += String.fromCharCode(chr);
|
|
90
|
+
}
|
|
91
|
+
return String.fromCharCode(9731) + out;
|
|
92
|
+
}
|
|
93
|
+
decompressStringBase64(c, length) {
|
|
94
|
+
if (!c) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (c.charCodeAt(0) !== 9731) {
|
|
98
|
+
return c;
|
|
99
|
+
}
|
|
100
|
+
let chr = 0;
|
|
101
|
+
let rem = 0;
|
|
102
|
+
let bits = 16;
|
|
103
|
+
let out = '';
|
|
104
|
+
let j = 1;
|
|
105
|
+
let value = c.charCodeAt(j);
|
|
106
|
+
for (let i = 0; i < length; i++) {
|
|
107
|
+
if (bits > 6) {
|
|
108
|
+
bits -= 6;
|
|
109
|
+
chr = getNumber(value, bits, 6);
|
|
110
|
+
out += this.indexBase64.get(chr);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
rem = 6 - bits;
|
|
114
|
+
chr = getNumber(value, 0, bits) << rem;
|
|
115
|
+
value = c.charCodeAt(++j);
|
|
116
|
+
chr += getNumber(value, 16 - rem, rem);
|
|
117
|
+
out += this.indexBase64.get(chr);
|
|
118
|
+
bits = 16 - rem;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return out;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHJlc3Npb24udXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91dGlscy9zcmMvbGliL2NvbXByZXNzaW9uL2NvbXByZXNzaW9uLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxNQUFNLENBQUM7QUFJNUMsU0FBUyxTQUFTLENBQUMsQ0FBUyxFQUFFLFdBQW1CLEVBQUUsTUFBYztJQUMvRCxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsT0FBTyxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDbkMsQ0FBQztBQUVELE1BQU0sT0FBTyxXQUFXO0lBQ2QsV0FBVyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO0lBQ3hDLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUVoRDtRQUNFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsdUNBQXVDO1FBQ3ZDLGlCQUFpQjtRQUNqQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBQ0Qsa0JBQWtCO1FB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QUcsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hDLEdBQUcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ2YsR0FBRyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQztnQkFDdkMsS0FBSyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDMUIsR0FBRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDdkMsR0FBRyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQztZQUNsQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ29tcHJlc3NlZERhdGEgfSBmcm9tICcuL2NvbXByZXNzZWREYXRhLmludGVyZmFjZSc7XG5cbmZ1bmN0aW9uIGdldE51bWJlcih2OiBudW1iZXIsIGVuZHBvc2l0aW9uOiBudW1iZXIsIGxlbmd0aDogbnVtYmVyKSB7XG4gIGNvbnN0IG1hc2sgPSAoMSA8PCBsZW5ndGgpIC0gMTtcbiAgcmV0dXJuICh2ID4+IGVuZHBvc2l0aW9uKSAmIG1hc2s7XG59XG5cbmV4cG9ydCBjbGFzcyBDb21wcmVzc2lvbiB7XG4gIHByaXZhdGUgYmFzZTY0SW5kZXggPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuICBwcml2YXRlIGluZGV4QmFzZTY0ID0gbmV3IE1hcDxudW1iZXIsIHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmdlbmVyYXRlQmFzZTY0SW5kZXgoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVCYXNlNjRJbmRleCgpIHtcbiAgICAvLyBodHRwczovL2ZyLndpa2lwZWRpYS5vcmcvd2lraS9CYXNlNjRcbiAgICAvLyBBLVogPT4gWzAsIDI1XVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMjY7IGkrKykge1xuICAgICAgdGhpcy5iYXNlNjRJbmRleC5zZXQoU3RyaW5nLmZyb21DaGFyQ29kZSgnQScuY2hhckNvZGVBdCgwKSArIGkpLCBpKTtcbiAgICAgIHRoaXMuaW5kZXhCYXNlNjQuc2V0KGksIFN0cmluZy5mcm9tQ2hhckNvZGUoJ0EnLmNoYXJDb2RlQXQoMCkgKyBpKSk7XG4gICAgfVxuICAgIC8vIGEteiA9PiBbMjYsIDUxXVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMjY7IGkrKykge1xuICAgICAgdGhpcy5iYXNlNjRJbmRleC5zZXQoU3RyaW5nLmZyb21DaGFyQ29kZSgnYScuY2hhckNvZGVBdCgwKSArIGkpLCBpICsgMjYpO1xuICAgICAgdGhpcy5pbmRleEJhc2U2NC5zZXQoaSArIDI2LCBTdHJpbmcuZnJvbUNoYXJDb2RlKCdhJy5jaGFyQ29kZUF0KDApICsgaSkpO1xuICAgIH1cbiAgICAvLyAwLTkgPT4gWzUyLCA2MV1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwOyBpKyspIHtcbiAgICAgIHRoaXMuYmFzZTY0SW5kZXguc2V0KFN0cmluZy5mcm9tQ2hhckNvZGUoJzAnLmNoYXJDb2RlQXQoMCkgKyBpKSwgaSArIDUyKTtcbiAgICAgIHRoaXMuaW5kZXhCYXNlNjQuc2V0KGkgKyA1MiwgU3RyaW5nLmZyb21DaGFyQ29kZSgnMCcuY2hhckNvZGVBdCgwKSArIGkpKTtcbiAgICB9XG4gICAgLy8gKyAvID0+IFs2MiwgNjNdXG4gICAgdGhpcy5iYXNlNjRJbmRleC5zZXQoJysnLCA2Mik7XG4gICAgdGhpcy5iYXNlNjRJbmRleC5zZXQoJy8nLCA2Myk7XG4gICAgdGhpcy5pbmRleEJhc2U2NC5zZXQoNjIsICcrJyk7XG4gICAgdGhpcy5pbmRleEJhc2U2NC5zZXQoNjMsICcvJyk7XG4gIH1cblxuICBjb21wcmVzc0Jsb2IoYmxvYjogQmxvYik6IE9ic2VydmFibGU8Q29tcHJlc3NlZERhdGE+IHtcbiAgICBpZiAoIWJsb2IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBvYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyOiBPYnNlcnZlcjxDb21wcmVzc2VkRGF0YT4pID0+IHtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChibG9iKTtcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGJhc2U2NCA9IHJlYWRlci5yZXN1bHQudmFsdWVPZigpIGFzIHN0cmluZztcbiAgICAgICAgY29uc3QgdGV4dDY0ID0gYmFzZTY0LnN1YnN0cihiYXNlNjQuaW5kZXhPZignLCcpICsgMSk7XG4gICAgICAgIGNvbnN0IGNvbXByZXNzZWQgPSB0aGlzLmNvbXByZXNzU3RyaW5nQmFzZTY0KHRleHQ2NCk7XG4gICAgICAgIGNvbnN0IGNvbXByZXNzZWREYXRhOiBDb21wcmVzc2VkRGF0YSA9IHtcbiAgICAgICAgICBsZW5ndGg6IHRleHQ2NC5sZW5ndGgsXG4gICAgICAgICAgdHlwZTogYmxvYi50eXBlLFxuICAgICAgICAgIG9iamVjdDogY29tcHJlc3NlZFxuICAgICAgICB9O1xuICAgICAgICBvYnNlcnZlci5uZXh0KGNvbXByZXNzZWREYXRhKTtcbiAgICAgIH07XG4gICAgfSk7XG4gICAgcmV0dXJuIG9ic2VydmFibGU7XG4gIH1cblxuICBkZWNvbXByZXNzQmxvYihjb21wcmVzc2VkRGF0YTogQ29tcHJlc3NlZERhdGEpOiBCbG9iIHtcbiAgICBjb25zdCBvYmplY3QgPSBjb21wcmVzc2VkRGF0YS5vYmplY3Q7XG4gICAgY29uc3QgbGVuZ3RoID0gY29tcHJlc3NlZERhdGEubGVuZ3RoO1xuICAgIGNvbnN0IGRlY29tcHJlc3NlZDogc3RyaW5nID0gdGhpcy5kZWNvbXByZXNzU3RyaW5nQmFzZTY0KG9iamVjdCwgbGVuZ3RoKTtcbiAgICBjb25zdCBieXRlQ2hhcmFjdGVycyA9IGF0b2IoZGVjb21wcmVzc2VkKTtcbiAgICBjb25zdCBieXRlTnVtYmVycyA9IG5ldyBBcnJheShieXRlQ2hhcmFjdGVycy5sZW5ndGgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZUNoYXJhY3RlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGJ5dGVOdW1iZXJzW2ldID0gYnl0ZUNoYXJhY3RlcnMuY2hhckNvZGVBdChpKTtcbiAgICB9XG4gICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZU51bWJlcnMpO1xuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnl0ZUFycmF5XSwgeyB0eXBlOiBjb21wcmVzc2VkRGF0YS50eXBlIH0pO1xuICAgIHJldHVybiBibG9iO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wcmVzc1N0cmluZ0Jhc2U2NChzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBvdXQgPSAnJztcbiAgICBsZXQgYml0cyA9IDE2O1xuICAgIGxldCBjaHIgPSAwO1xuICAgIGxldCByZW0gPSAwO1xuICAgIGZvciAoY29uc3QgYyBvZiBzKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuYmFzZTY0SW5kZXguZ2V0KGMpO1xuICAgICAgaWYgKGJpdHMgPiA2KSB7XG4gICAgICAgIGJpdHMgLT0gNjtcbiAgICAgICAgY2hyICs9IHZhbHVlIDw8IGJpdHM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZW0gPSA2IC0gYml0cztcbiAgICAgICAgY2hyICs9IHZhbHVlID4+IHJlbTtcbiAgICAgICAgb3V0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoY2hyKTtcbiAgICAgICAgY2hyID0gdmFsdWUgPDwgKDE2IC0gcmVtKTtcbiAgICAgICAgYml0cyA9IDE2IC0gcmVtO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocy5sZW5ndGggJSA4ICE9PSAwKSB7XG4gICAgICBvdXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjaHIpO1xuICAgIH1cbiAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSg5NzMxKSArIG91dDtcbiAgfVxuXG4gIHByaXZhdGUgZGVjb21wcmVzc1N0cmluZ0Jhc2U2NChjOiBzdHJpbmcsIGxlbmd0aDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAoIWMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoYy5jaGFyQ29kZUF0KDApICE9PSA5NzMxKSB7XG4gICAgICByZXR1cm4gYztcbiAgICB9XG5cbiAgICBsZXQgY2hyID0gMDtcbiAgICBsZXQgcmVtID0gMDtcbiAgICBsZXQgYml0cyA9IDE2O1xuICAgIGxldCBvdXQgPSAnJztcbiAgICBsZXQgaiA9IDE7XG4gICAgbGV0IHZhbHVlID0gYy5jaGFyQ29kZUF0KGopO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChiaXRzID4gNikge1xuICAgICAgICBiaXRzIC09IDY7XG4gICAgICAgIGNociA9IGdldE51bWJlcih2YWx1ZSwgYml0cywgNik7XG4gICAgICAgIG91dCArPSB0aGlzLmluZGV4QmFzZTY0LmdldChjaHIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVtID0gNiAtIGJpdHM7XG4gICAgICAgIGNociA9IGdldE51bWJlcih2YWx1ZSwgMCwgYml0cykgPDwgcmVtO1xuICAgICAgICB2YWx1ZSA9IGMuY2hhckNvZGVBdCgrK2opO1xuICAgICAgICBjaHIgKz0gZ2V0TnVtYmVyKHZhbHVlLCAxNiAtIHJlbSwgcmVtKTtcbiAgICAgICAgb3V0ICs9IHRoaXMuaW5kZXhCYXNlNjQuZ2V0KGNocik7XG4gICAgICAgIGJpdHMgPSAxNiAtIHJlbTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG91dDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './compressedData.interface';
|
|
2
|
+
export * from './compression.utils';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91dGlscy9zcmMvbGliL2NvbXByZXNzaW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tcHJlc3NlZERhdGEuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcHJlc3Npb24udXRpbHMnO1xuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
const ISO8601_REGEX = new RegExp('(d{4}-[01]d-[0-3]dT[0-2]d:[0-5]d:[0-5]d.d+)|(d{4}-[01]d-[0-3]dT[0-2]d:[0-5]d:[0-5]d)|(d{4}-[01]d-[0-3]dT[0-2]d:[0-5]d)');
|
|
2
|
+
const ISO8601_UTCTIME_REGEX = new RegExp('(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\.[0-9]+)?(Z)?');
|
|
3
|
+
export function isIsoDate(value) {
|
|
4
|
+
if (!ISO8601_REGEX.test(value) && !ISO8601_UTCTIME_REGEX.test(value)) {
|
|
5
|
+
return false;
|
|
6
|
+
}
|
|
7
|
+
const d = new Date(value);
|
|
8
|
+
return d instanceof Date && !isNaN(d.getTime());
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWxzL3NyYy9saWIvZGF0ZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLGFBQWEsR0FBRyxJQUFJLE1BQU0sQ0FDOUIsd0hBQXdILENBQ3pILENBQUM7QUFDRixNQUFNLHFCQUFxQixHQUFHLElBQUksTUFBTSxDQUN0QyxvSUFBb0ksQ0FDckksQ0FBQztBQUVGLE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBYTtJQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3JFLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLE9BQU8sQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgSVNPODYwMV9SRUdFWCA9IG5ldyBSZWdFeHAoXG4gICcoZHs0fS1bMDFdZC1bMC0zXWRUWzAtMl1kOlswLTVdZDpbMC01XWQuZCspfChkezR9LVswMV1kLVswLTNdZFRbMC0yXWQ6WzAtNV1kOlswLTVdZCl8KGR7NH0tWzAxXWQtWzAtM11kVFswLTJdZDpbMC01XWQpJ1xuKTtcbmNvbnN0IElTTzg2MDFfVVRDVElNRV9SRUdFWCA9IG5ldyBSZWdFeHAoXG4gICcoLT8oPzpbMS05XVswLTldKik/WzAtOV17NH0pLSgxWzAtMl18MFsxLTldKS0oM1swMV18MFsxLTldfFsxMl1bMC05XSlUKDJbMC0zXXxbMDFdWzAtOV0pOihbMC01XVswLTldKTooWzAtNV1bMC05XSkoXFxcXC5bMC05XSspPyhaKT8nXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNJc29EYXRlKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKCFJU084NjAxX1JFR0VYLnRlc3QodmFsdWUpICYmICFJU084NjAxX1VUQ1RJTUVfUkVHRVgudGVzdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgY29uc3QgZCA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgcmV0dXJuIGQgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTihkLmdldFRpbWUoKSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export class DomUtils {
|
|
2
|
+
static create(doc, tagName, options) {
|
|
3
|
+
const el = doc.createElement(tagName);
|
|
4
|
+
for (const key in options) {
|
|
5
|
+
el[key] = options[key];
|
|
6
|
+
}
|
|
7
|
+
return el;
|
|
8
|
+
}
|
|
9
|
+
static remove(node) {
|
|
10
|
+
if (!node.parentNode) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
node.parentNode.removeChild(node);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvdXRpbHMvc3JjL2xpYi9kb20udXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFFBQVE7SUFDbkIsTUFBTSxDQUFDLE1BQU0sQ0FDWCxHQUFhLEVBQ2IsT0FBVSxFQUNWLE9BQTJDO1FBRTNDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUMxQixFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQThCO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRG9tVXRpbHMge1xuICBzdGF0aWMgY3JlYXRlPEsgZXh0ZW5kcyBrZXlvZiBIVE1MRWxlbWVudFRhZ05hbWVNYXA+KFxuICAgIGRvYzogRG9jdW1lbnQsXG4gICAgdGFnTmFtZTogSyxcbiAgICBvcHRpb25zPzogUGFydGlhbDxIVE1MRWxlbWVudFRhZ05hbWVNYXBbS10+XG4gICk6IEhUTUxFbGVtZW50VGFnTmFtZU1hcFtLXSB7XG4gICAgY29uc3QgZWwgPSBkb2MuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTtcblxuICAgIGZvciAoY29uc3Qga2V5IGluIG9wdGlvbnMpIHtcbiAgICAgIGVsW2tleV0gPSBvcHRpb25zW2tleV07XG4gICAgfVxuXG4gICAgcmV0dXJuIGVsO1xuICB9XG5cbiAgc3RhdGljIHJlbW92ZShub2RlOiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAoIW5vZGUucGFyZW50Tm9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBub2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobm9kZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export async function createExcelWorkBook(workSheet, workSheetName) {
|
|
2
|
+
const { utils } = await import('xlsx');
|
|
3
|
+
return utils.book_new(workSheet, workSheetName);
|
|
4
|
+
}
|
|
5
|
+
export async function addExcelSheetToWorkBook(title, rows, workBook, opts) {
|
|
6
|
+
const { utils } = await import('xlsx');
|
|
7
|
+
const worksheet = utils.json_to_sheet(rows, opts?.json2SheetOpts);
|
|
8
|
+
/* calculate column width */
|
|
9
|
+
if (rows?.length) {
|
|
10
|
+
worksheet['!cols'] = getColumnsInfo(rows);
|
|
11
|
+
}
|
|
12
|
+
const SHEET_NAME_MAX_LENGTH = 31;
|
|
13
|
+
let sheetName = title.length >= SHEET_NAME_MAX_LENGTH
|
|
14
|
+
? title.substring(0, SHEET_NAME_MAX_LENGTH)
|
|
15
|
+
: title;
|
|
16
|
+
if (workBook.SheetNames.includes(sheetName)) {
|
|
17
|
+
sheetName = `${sheetName.substring(0, SHEET_NAME_MAX_LENGTH - 3)}_${workBook.SheetNames.length}`;
|
|
18
|
+
}
|
|
19
|
+
utils.book_append_sheet(workBook, worksheet, sheetName, opts?.bookAppendSheetOpts?.roll);
|
|
20
|
+
}
|
|
21
|
+
export async function writeExcelFile(workBook, filename, opts) {
|
|
22
|
+
const cleanedFileName = filename.toLowerCase().endsWith('.xlsx')
|
|
23
|
+
? filename.slice(0, -5)
|
|
24
|
+
: filename;
|
|
25
|
+
const { writeFile } = await import('xlsx');
|
|
26
|
+
writeFile(workBook, `${cleanedFileName}.xlsx`, opts);
|
|
27
|
+
}
|
|
28
|
+
function getColumnsInfo(rows) {
|
|
29
|
+
const columns = Object.keys(rows[0]);
|
|
30
|
+
return columns.map((column) => ({
|
|
31
|
+
wch: getColumnMaxWidth(column, rows)
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
function getColumnMaxWidth(column, rows) {
|
|
35
|
+
return rows.reduce((width, row) => Math.max(width, row[column]?.toString().length ?? 0), column.length);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91dGlscy9zcmMvbGliL2ZpbGVzL2V4Y2VsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE1BQU0sQ0FBQyxLQUFLLFVBQVUsbUJBQW1CLENBQ3ZDLFNBQXFCLEVBQ3JCLGFBQXNCO0lBRXRCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV2QyxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFDRCxNQUFNLENBQUMsS0FBSyxVQUFVLHVCQUF1QixDQUMzQyxLQUFhLEVBQ2IsSUFBUyxFQUNULFFBQWtCLEVBQ2xCLElBR0M7SUFFRCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFdkMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBRWxFLDRCQUE0QjtJQUM1QixJQUFJLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUNqQixTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztJQUNqQyxJQUFJLFNBQVMsR0FDWCxLQUFLLENBQUMsTUFBTSxJQUFJLHFCQUFxQjtRQUNuQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUscUJBQXFCLENBQUM7UUFDM0MsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUVaLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUM1QyxTQUFTLEdBQUcsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxxQkFBcUIsR0FBRyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ25HLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQ3JCLFFBQVEsRUFDUixTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksRUFBRSxtQkFBbUIsRUFBRSxJQUFJLENBQ2hDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2xDLFFBQWtCLEVBQ2xCLFFBQWdCLEVBQ2hCLElBQXFCO0lBRXJCLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzlELENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ2IsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxlQUFlLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQThCLElBQVM7SUFDNUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUIsR0FBRyxFQUFFLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7S0FDckMsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FDeEIsTUFBYyxFQUNkLElBQVM7SUFFVCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQ2hCLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFDcEUsTUFBTSxDQUFDLE1BQU0sQ0FDZCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQ29sSW5mbyxcbiAgSlNPTjJTaGVldE9wdHMsXG4gIFdvcmtCb29rLFxuICBXb3JrU2hlZXQsXG4gIFdyaXRpbmdPcHRpb25zXG59IGZyb20gJ3hsc3gnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlRXhjZWxXb3JrQm9vayhcbiAgd29ya1NoZWV0PzogV29ya1NoZWV0LFxuICB3b3JrU2hlZXROYW1lPzogc3RyaW5nXG4pOiBQcm9taXNlPFdvcmtCb29rPiB7XG4gIGNvbnN0IHsgdXRpbHMgfSA9IGF3YWl0IGltcG9ydCgneGxzeCcpO1xuXG4gIHJldHVybiB1dGlscy5ib29rX25ldyh3b3JrU2hlZXQsIHdvcmtTaGVldE5hbWUpO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFkZEV4Y2VsU2hlZXRUb1dvcmtCb29rPFQgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oXG4gIHRpdGxlOiBzdHJpbmcsXG4gIHJvd3M6IFRbXSxcbiAgd29ya0Jvb2s6IFdvcmtCb29rLFxuICBvcHRzPzoge1xuICAgIGpzb24yU2hlZXRPcHRzPzogSlNPTjJTaGVldE9wdHM7XG4gICAgYm9va0FwcGVuZFNoZWV0T3B0cz86IHsgcm9sbD86IGJvb2xlYW4gfTtcbiAgfVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgdXRpbHMgfSA9IGF3YWl0IGltcG9ydCgneGxzeCcpO1xuXG4gIGNvbnN0IHdvcmtzaGVldCA9IHV0aWxzLmpzb25fdG9fc2hlZXQocm93cywgb3B0cz8uanNvbjJTaGVldE9wdHMpO1xuXG4gIC8qIGNhbGN1bGF0ZSBjb2x1bW4gd2lkdGggKi9cbiAgaWYgKHJvd3M/Lmxlbmd0aCkge1xuICAgIHdvcmtzaGVldFsnIWNvbHMnXSA9IGdldENvbHVtbnNJbmZvKHJvd3MpO1xuICB9XG5cbiAgY29uc3QgU0hFRVRfTkFNRV9NQVhfTEVOR1RIID0gMzE7XG4gIGxldCBzaGVldE5hbWUgPVxuICAgIHRpdGxlLmxlbmd0aCA+PSBTSEVFVF9OQU1FX01BWF9MRU5HVEhcbiAgICAgID8gdGl0bGUuc3Vic3RyaW5nKDAsIFNIRUVUX05BTUVfTUFYX0xFTkdUSClcbiAgICAgIDogdGl0bGU7XG5cbiAgaWYgKHdvcmtCb29rLlNoZWV0TmFtZXMuaW5jbHVkZXMoc2hlZXROYW1lKSkge1xuICAgIHNoZWV0TmFtZSA9IGAke3NoZWV0TmFtZS5zdWJzdHJpbmcoMCwgU0hFRVRfTkFNRV9NQVhfTEVOR1RIIC0gMyl9XyR7d29ya0Jvb2suU2hlZXROYW1lcy5sZW5ndGh9YDtcbiAgfVxuXG4gIHV0aWxzLmJvb2tfYXBwZW5kX3NoZWV0KFxuICAgIHdvcmtCb29rLFxuICAgIHdvcmtzaGVldCxcbiAgICBzaGVldE5hbWUsXG4gICAgb3B0cz8uYm9va0FwcGVuZFNoZWV0T3B0cz8ucm9sbFxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVFeGNlbEZpbGUoXG4gIHdvcmtCb29rOiBXb3JrQm9vayxcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgb3B0cz86IFdyaXRpbmdPcHRpb25zXG4pIHtcbiAgY29uc3QgY2xlYW5lZEZpbGVOYW1lID0gZmlsZW5hbWUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgnLnhsc3gnKVxuICAgID8gZmlsZW5hbWUuc2xpY2UoMCwgLTUpXG4gICAgOiBmaWxlbmFtZTtcbiAgY29uc3QgeyB3cml0ZUZpbGUgfSA9IGF3YWl0IGltcG9ydCgneGxzeCcpO1xuICB3cml0ZUZpbGUod29ya0Jvb2ssIGAke2NsZWFuZWRGaWxlTmFtZX0ueGxzeGAsIG9wdHMpO1xufVxuXG5mdW5jdGlvbiBnZXRDb2x1bW5zSW5mbzxUID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KHJvd3M6IFRbXSk6IENvbEluZm9bXSB7XG4gIGNvbnN0IGNvbHVtbnMgPSBPYmplY3Qua2V5cyhyb3dzWzBdKTtcbiAgcmV0dXJuIGNvbHVtbnMubWFwKChjb2x1bW4pID0+ICh7XG4gICAgd2NoOiBnZXRDb2x1bW5NYXhXaWR0aChjb2x1bW4sIHJvd3MpXG4gIH0pKTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29sdW1uTWF4V2lkdGg8VCA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PihcbiAgY29sdW1uOiBzdHJpbmcsXG4gIHJvd3M6IFRbXVxuKTogbnVtYmVyIHtcbiAgcmV0dXJuIHJvd3MucmVkdWNlKFxuICAgICh3aWR0aCwgcm93KSA9PiBNYXRoLm1heCh3aWR0aCwgcm93W2NvbHVtbl0/LnRvU3RyaW5nKCkubGVuZ3RoID8/IDApLFxuICAgIGNvbHVtbi5sZW5ndGhcbiAgKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trigger download of a file
|
|
3
|
+
*
|
|
4
|
+
* @param content File content
|
|
5
|
+
* @param mimeType File mime type
|
|
6
|
+
* @param fileName File name
|
|
7
|
+
*/
|
|
8
|
+
export function downloadContent(content, mimeType, fileName) {
|
|
9
|
+
const uri = `data:${mimeType},${encodeURIComponent(content)}`;
|
|
10
|
+
downloadFromUri(uri, fileName);
|
|
11
|
+
}
|
|
12
|
+
export function downloadBlob(blob, fileName) {
|
|
13
|
+
const url = window.URL.createObjectURL(blob);
|
|
14
|
+
downloadFromUri(url, fileName);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Trigger download of a file
|
|
18
|
+
*
|
|
19
|
+
* @param content File content
|
|
20
|
+
* @param mimeType File mime type
|
|
21
|
+
* @param fileName File name
|
|
22
|
+
*/
|
|
23
|
+
export function downloadFromUri(uri, fileName) {
|
|
24
|
+
const element = document.createElement('a');
|
|
25
|
+
element.setAttribute('href', uri);
|
|
26
|
+
element.setAttribute('download', fileName);
|
|
27
|
+
element.style.display = 'none';
|
|
28
|
+
document.body.appendChild(element);
|
|
29
|
+
element.click();
|
|
30
|
+
document.body.removeChild(element);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Validate if string is valid json object
|
|
34
|
+
* @param jsonString
|
|
35
|
+
* @return boolean
|
|
36
|
+
*/
|
|
37
|
+
export function isValidJSON(jsonString) {
|
|
38
|
+
try {
|
|
39
|
+
return JSON.parse(jsonString) && !!jsonString;
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWxzL3NyYy9saWIvZmlsZXMvZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUM3QixPQUFlLEVBQ2YsUUFBZ0IsRUFDaEIsUUFBZ0I7SUFFaEIsTUFBTSxHQUFHLEdBQUcsUUFBUSxRQUFRLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUM5RCxlQUFlLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLElBQVUsRUFBRSxRQUFnQjtJQUN2RCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QyxlQUFlLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLEdBQVcsRUFBRSxRQUFnQjtJQUMzRCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUMvQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVuQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFaEIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDckMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLFVBQWtCO0lBQzVDLElBQUksQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQ2hELENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUcmlnZ2VyIGRvd25sb2FkIG9mIGEgZmlsZVxuICpcbiAqIEBwYXJhbSBjb250ZW50IEZpbGUgY29udGVudFxuICogQHBhcmFtIG1pbWVUeXBlIEZpbGUgbWltZSB0eXBlXG4gKiBAcGFyYW0gZmlsZU5hbWUgRmlsZSBuYW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZENvbnRlbnQoXG4gIGNvbnRlbnQ6IHN0cmluZyxcbiAgbWltZVR5cGU6IHN0cmluZyxcbiAgZmlsZU5hbWU6IHN0cmluZ1xuKSB7XG4gIGNvbnN0IHVyaSA9IGBkYXRhOiR7bWltZVR5cGV9LCR7ZW5jb2RlVVJJQ29tcG9uZW50KGNvbnRlbnQpfWA7XG4gIGRvd25sb2FkRnJvbVVyaSh1cmksIGZpbGVOYW1lKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkQmxvYihibG9iOiBCbG9iLCBmaWxlTmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICBkb3dubG9hZEZyb21VcmkodXJsLCBmaWxlTmFtZSk7XG59XG5cbi8qKlxuICogVHJpZ2dlciBkb3dubG9hZCBvZiBhIGZpbGVcbiAqXG4gKiBAcGFyYW0gY29udGVudCBGaWxlIGNvbnRlbnRcbiAqIEBwYXJhbSBtaW1lVHlwZSBGaWxlIG1pbWUgdHlwZVxuICogQHBhcmFtIGZpbGVOYW1lIEZpbGUgbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGcm9tVXJpKHVyaTogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdocmVmJywgdXJpKTtcbiAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZU5hbWUpO1xuICBlbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XG5cbiAgZWxlbWVudC5jbGljaygpO1xuXG4gIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG59XG5cbi8qKlxuICogVmFsaWRhdGUgaWYgc3RyaW5nIGlzIHZhbGlkIGpzb24gb2JqZWN0XG4gKiBAcGFyYW0ganNvblN0cmluZ1xuICogQHJldHVybiBib29sZWFuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkSlNPTihqc29uU3RyaW5nOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShqc29uU3RyaW5nKSAmJiAhIWpzb25TdHJpbmc7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './excel';
|
|
2
|
+
export * from './file';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91dGlscy9zcmMvbGliL2ZpbGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9leGNlbCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGUnO1xuIl19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export * from './base64';
|
|
2
|
+
export * from './cache.utils';
|
|
3
|
+
export * from './clipboard';
|
|
4
|
+
export * from './compression';
|
|
5
|
+
export * from './change';
|
|
6
|
+
export * from './change.interface';
|
|
7
|
+
export * from './date.utils';
|
|
8
|
+
export * from './dom.utils';
|
|
9
|
+
export * from './files';
|
|
10
|
+
export * from './object-utils';
|
|
11
|
+
export * from './number-utils';
|
|
12
|
+
export * from './strenum';
|
|
13
|
+
export * from './string-utils';
|
|
14
|
+
export * from './theme.utils';
|
|
15
|
+
export * from './tree';
|
|
16
|
+
export * from './user-agent';
|
|
17
|
+
export * from './uuid';
|
|
18
|
+
export * from './watcher';
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy91dGlscy9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jhc2U2NCc7XG5leHBvcnQgKiBmcm9tICcuL2NhY2hlLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vY2xpcGJvYXJkJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcHJlc3Npb24nO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFuZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGFuZ2UuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZS51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2RvbS51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGVzJztcbmV4cG9ydCAqIGZyb20gJy4vb2JqZWN0LXV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbnVtYmVyLXV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3RyZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL3N0cmluZy11dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3RoZW1lLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vdHJlZSc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXItYWdlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi91dWlkJztcbmV4cG9ydCAqIGZyb20gJy4vd2F0Y2hlcic7XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export class NumberUtils {
|
|
2
|
+
static roundToNDecimal(num, decimal = 3) {
|
|
3
|
+
const roundFactor = Math.pow(10, decimal);
|
|
4
|
+
return Math.round(num * roundFactor) / roundFactor;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvdXRpbHMvc3JjL2xpYi9udW1iZXItdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFXLEVBQUUsT0FBTyxHQUFHLENBQUM7UUFDN0MsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUMsR0FBRyxXQUFXLENBQUM7SUFDckQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIE51bWJlclV0aWxzIHtcbiAgc3RhdGljIHJvdW5kVG9ORGVjaW1hbChudW06IG51bWJlciwgZGVjaW1hbCA9IDMpOiBudW1iZXIge1xuICAgIGNvbnN0IHJvdW5kRmFjdG9yID0gTWF0aC5wb3coMTAsIGRlY2ltYWwpO1xuICAgIHJldHVybiBNYXRoLnJvdW5kKG51bSAqIHJvdW5kRmFjdG9yKSAvIHJvdW5kRmFjdG9yO1xuICB9XG59XG4iXX0=
|