@igo2/utils 1.8.2 → 1.9.0
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/README.md +1 -1
- package/bundles/igo2-utils.umd.js +1043 -1010
- package/bundles/igo2-utils.umd.js.map +1 -1
- package/esm2015/igo2-utils.js +5 -5
- package/esm2015/lib/base64.js +85 -85
- package/esm2015/lib/change.interface.js +7 -7
- package/esm2015/lib/change.js +87 -87
- package/esm2015/lib/clipboard.js +52 -52
- package/esm2015/lib/file.js +28 -28
- package/esm2015/lib/index.js +12 -12
- package/esm2015/lib/object-utils.js +248 -248
- package/esm2015/lib/strenum.js +8 -8
- package/esm2015/lib/string-utils.js +105 -105
- package/esm2015/lib/user-agent.js +3 -3
- package/esm2015/lib/uuid.js +9 -9
- package/esm2015/lib/watcher.js +41 -41
- package/esm2015/public_api.js +5 -5
- package/fesm2015/igo2-utils.js +651 -651
- package/fesm2015/igo2-utils.js.map +1 -1
- package/igo2-utils.d.ts +5 -5
- package/lib/base64.d.ts +8 -8
- package/lib/change.d.ts +5 -5
- package/lib/change.interface.d.ts +24 -24
- package/lib/clipboard.d.ts +7 -7
- package/lib/file.d.ts +16 -16
- package/lib/index.d.ts +11 -11
- package/lib/object-utils.d.ts +26 -26
- package/lib/strenum.d.ts +4 -4
- package/lib/string-utils.d.ts +6 -6
- package/lib/user-agent.d.ts +5 -5
- package/lib/uuid.d.ts +2 -2
- package/lib/watcher.d.ts +19 -19
- package/package.json +4 -4
- package/public_api.d.ts +1 -1
- package/bundles/igo2-utils.umd.min.js +0 -2
- package/bundles/igo2-utils.umd.min.js.map +0 -1
package/esm2015/lib/change.js
CHANGED
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
import { StringUtils } from './string-utils';
|
|
2
|
-
import { ChangeType } from './change.interface';
|
|
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,
|
|
1
|
+
import { StringUtils } from './string-utils';
|
|
2
|
+
import { ChangeType } from './change.interface';
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvdXRpbHMvc3JjL2xpYi9jaGFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBbUIsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakUsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsSUFBVyxFQUNYLElBQVcsRUFDWCxhQUF1QixFQUFFO1FBRXpCLE1BQU0sS0FBSyxHQUFvQjtZQUM3QixLQUFLLEVBQUUsRUFBRTtZQUNULE9BQU8sRUFBRSxFQUFFO1lBQ1gsUUFBUSxFQUFFLEVBQUU7U0FDYixDQUFDO1FBRUYsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNsQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsTUFBTSxTQUFTLEdBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sU0FBUyxHQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUVqQyxLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRTtZQUNoQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFN0QsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ2hCLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO29CQUNqQixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRTtvQkFDcEMsS0FBSyxFQUFFLFFBQVE7aUJBQ2hCLENBQUMsQ0FBQztnQkFDSCxTQUFTO2FBQ1Y7WUFFRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFB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LFdBQVcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQzFELENBQUM7YUFDSDtpQkFBTTtnQkFDTCxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ2pDLFdBQVcsQ0FBQyxJQUFJLENBQUM7d0JBQ2YsR0FBRyxFQUFFLFNBQVM7d0JBQ2QsUUFBUSxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUM7d0JBQzVCLFFBQVEsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDO3FCQUMzQixDQUFDLENBQUM7b0JBQ0gsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUM5RDthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdHJpbmdVdGlscyB9IGZyb20gJy4vc3RyaW5nLXV0aWxzJztcclxuaW1wb3J0IHsgR3JvdXBpbmdDaGFuZ2VzLCBDaGFuZ2VUeXBlIH0gZnJvbSAnLi9jaGFuZ2UuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBDaGFuZ2VVdGlscyB7XHJcbiAgc3RhdGljIGZpbmRDaGFuZ2VzKFxyXG4gICAgb2JqMTogYW55W10sXHJcbiAgICBvYmoyOiBhbnlbXSxcclxuICAgIGlnbm9yZUtleXM6IHN0cmluZ1tdID0gW11cclxuICApOiBHcm91cGluZ0NoYW5nZXMge1xyXG4gICAgY29uc3QgaXRlbXM6IEdyb3VwaW5nQ2hhbmdlcyA9IHtcclxuICAgICAgYWRkZWQ6IFtdLFxyXG4gICAgICBkZWxldGVkOiBbXSxcclxuICAgICAgbW9kaWZpZWQ6IFtdXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICghb2JqMSB8fCAhb2JqMikge1xyXG4gICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb2JqMUNsb25lOiBhbnkgPSBbLi4ub2JqMV07XHJcbiAgICBjb25zdCBvYmoyQ2xvbmU6IGFueSA9IFsuLi5vYmoyXTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGZyb21JdGVtIG9mIG9iajFDbG9uZSkge1xyXG4gICAgICBjb25zdCBpbmRleCA9IG9iajJDbG9uZS5maW5kSW5kZXgocyA9PiBzLmlkID09PSBmcm9tSXRlbS5pZCk7XHJcblxyXG4gICAgICBpZiAoaW5kZXggPT09IC0xKSB7XHJcbiAgICAgICAgaXRlbXMuZGVsZXRlZC5wdXNoKHtcclxuICAgICAgICAgIGNoYW5nZTogeyB0eXBlOiBDaGFuZ2VUeXBlLkRFTEVURUQgfSxcclxuICAgICAgICAgIHZhbHVlOiBmcm9tSXRlbVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB0b0l0ZW0gPSBvYmoyQ2xvbmUuc3BsaWNlKGluZGV4LCAxKVswXTtcclxuICAgICAgY29uc3QgZnJvbUl0ZW1DbG9uZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZnJvbUl0ZW0pKTtcclxuICAgICAgY29uc3QgdG9JdGVtQ2xvbmUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRvSXRlbSkpO1xyXG5cclxuICAgICAgY29uc3Qga2V5c0NoYW5nZWQgPSBDaGFuZ2VVdGlscy5jb21wYXJlT2JqZWN0KFxyXG4gICAgICAgIGZyb21JdGVtQ2xvbmUsXHJcbiAgICAgICAgdG9JdGVtQ2xvbmUsXHJcbiAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgIGlnbm9yZUtleXNcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGlmIChrZXlzQ2hhbmdlZC5sZW5ndGgpIHtcclxuICAgICAgICBpdGVtcy5tb2RpZmllZC5wdXNoKHtcclxuICAgICAgICAgIGNoYW5nZToge1xyXG4gICAgICAgICAgICB0eXBlOiBDaGFuZ2VUeXBlLk1PRElGSUVELFxyXG4gICAgICAgICAgICBrZXlzQ2hhbmdlZFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHZhbHVlOiBmcm9tSXRlbUNsb25lLFxyXG4gICAgICAgICAgb2xkVmFsdWU6IGZyb21JdGVtLFxyXG4gICAgICAgICAgbmV3VmFsdWU6IHRvSXRlbVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaXRlbXMuYWRkZWQgPSBvYmoyQ2xvbmUubWFwKGl0ZW1BZGRlZCA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgY2hhbmdlOiB7IHR5cGU6IENoYW5nZVR5cGUuQURERUQgfSxcclxuICAgICAgICB2YWx1ZTogaXRlbUFkZGVkXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gaXRlbXM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBjb21wYXJlT2JqZWN0KGZyb21JdGVtLCB0b0l0ZW0sIGJhc2VLZXk/LCBpZ25vcmVLZXlzID0gW10pIHtcclxuICAgIGNvbnN0IGZyb21JdGVtQ2xvbmUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGZyb21JdGVtKSk7XHJcbiAgICBjb25zdCB0b0l0ZW1DbG9uZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodG9JdGVtKSk7XHJcblxyXG4gICAgY29uc3Qga2V5czogYW55ID0gbmV3IFNldChbXHJcbiAgICAgIC4uLk9iamVjdC5rZXlzKGZyb21JdGVtKSxcclxuICAgICAgLi4uT2JqZWN0LmtleXModG9JdGVtKVxyXG4gICAgXSk7XHJcbiAgICBsZXQga2V5c0NoYW5nZWQgPSBbXTtcclxuICAgIGtleXMuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICBjb25zdCBrZXlTdHJpbmcgPSBiYXNlS2V5ID8gYCR7YmFzZUtleX0uJHtrZXl9YCA6IGtleTtcclxuICAgICAgaWYgKGlnbm9yZUtleXMuaW5kZXhPZihrZXlTdHJpbmcpICE9PSAtMSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZnJvbUl0ZW1ba2V5XSkpIHtcclxuICAgICAgICBmcm9tSXRlbVtrZXldID0gZnJvbUl0ZW1ba2V5XS5qb2luKCcsPGJyPicpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHRvSXRlbVtrZXldKSkge1xyXG4gICAgICAgIHRvSXRlbVtrZXldID0gdG9JdGVtW2tleV0uam9pbignLDxicj4nKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKFxyXG4gICAgICAgIHR5cGVvZiBmcm9tSXRlbVtrZXldID09PSAnb2JqZWN0JyAmJlxyXG4gICAgICAgIHR5cGVvZiB0b0l0ZW1ba2V5XSA9PT0gJ29iamVjdCcgJiZcclxuICAgICAgICBmcm9tSXRlbVtrZXldICE9PSBudWxsICYmXHJcbiAgICAgICAgdG9JdGVtW2tleV0gIT09IG51bGxcclxuICAgICAgKSB7XHJcbiAgICAgICAga2V5c0NoYW5nZWQgPSBrZXlzQ2hhbmdlZC5jb25jYXQoXHJcbiAgICAgICAgICB0aGlzLmNvbXBhcmVPYmplY3QoZnJvbUl0ZW1ba2V5XSwgdG9JdGVtW2tleV0sIGtleVN0cmluZylcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChmcm9tSXRlbVtrZXldICE9PSB0b0l0ZW1ba2V5XSkge1xyXG4gICAgICAgICAga2V5c0NoYW5nZWQucHVzaCh7XHJcbiAgICAgICAgICAgIGtleToga2V5U3RyaW5nLFxyXG4gICAgICAgICAgICBvbGRWYWx1ZTogZnJvbUl0ZW1DbG9uZVtrZXldLFxyXG4gICAgICAgICAgICBuZXdWYWx1ZTogdG9JdGVtQ2xvbmVba2V5XVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBmcm9tSXRlbVtrZXldID0gU3RyaW5nVXRpbHMuZGlmZihmcm9tSXRlbVtrZXldLCB0b0l0ZW1ba2V5XSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4ga2V5c0NoYW5nZWQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
package/esm2015/lib/clipboard.js
CHANGED
|
@@ -1,52 +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,
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvdXRpbHMvc3JjL2xpYi9jbGlwYm9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxNQUFNLE9BQU8sU0FBUztJQUNwQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQXFDO1FBQy9DLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRTtZQUMvQixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25ELFNBQVMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0IsVUFBVSxHQUFHLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdDLFNBQVMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDckM7YUFBTTtZQUNMLFNBQVMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUIsVUFBVSxHQUFHLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1NBQzlDO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBWTtRQUN4QyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBd0IsQ0FBQztRQUMzRSxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUN0QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQyxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU8sTUFBTSxDQUFDLGVBQWUsQ0FBQyxRQUFRO1FBQ3JDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVE7UUFDaEMsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFLEtBQUssS0FBSyxFQUFFO1lBQ25DLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQztZQUNwRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ3RDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFeEMsUUFBUSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDaEMsUUFBUSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDMUIsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25DLFNBQVMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUM1QixTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFCLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDdEMsUUFBUSxDQUFDLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQztZQUM5QyxRQUFRLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQztTQUNqQzthQUFNO1lBQ0wsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxtQkFBbUI7UUFDaEMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxLQUFLLEtBQUssSUFBSSxTQUFTLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDekUsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3JDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VyQWdlbnQgfSBmcm9tICcuL3VzZXItYWdlbnQnO1xyXG5cclxuZXhwb3J0IGNsYXNzIENsaXBib2FyZCB7XHJcbiAgc3RhdGljIGNvcHkoZWxlbWVudDogSFRNTFRleHRBcmVhRWxlbWVudCB8IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHN1Y2Nlc3NmdWwgPSBmYWxzZTtcclxuICAgIGlmICh0eXBlb2YgZWxlbWVudCA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgY29uc3QgdGV4dEFyZWEgPSBDbGlwYm9hcmQuY3JlYXRlVGV4dEFyZWEoZWxlbWVudCk7XHJcbiAgICAgIENsaXBib2FyZC5zZWxlY3RUZXh0KHRleHRBcmVhKTtcclxuICAgICAgc3VjY2Vzc2Z1bCA9IENsaXBib2FyZC5jb3B5VGV4dFRvQ2xpcGJvYXJkKCk7XHJcbiAgICAgIENsaXBib2FyZC5kZXN0cm95VGV4dEFyZWEodGV4dEFyZWEpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgQ2xpcGJvYXJkLnNlbGVjdFRleHQoZWxlbWVudCk7XHJcbiAgICAgIHN1Y2Nlc3NmdWwgPSBDbGlwYm9hcmQuY29weVRleHRUb0NsaXBib2FyZCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN1Y2Nlc3NmdWw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVUZXh0QXJlYSh0ZXh0OiBzdHJpbmcpOiBIVE1MVGV4dEFyZWFFbGVtZW50IHtcclxuICAgIGNvbnN0IHRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dEFyZWEnKSBhcyBIVE1MVGV4dEFyZWFFbGVtZW50O1xyXG4gICAgdGV4dEFyZWEudmFsdWUgPSB0ZXh0O1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZXh0QXJlYSk7XHJcbiAgICByZXR1cm4gdGV4dEFyZWE7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBkZXN0cm95VGV4dEFyZWEodGV4dEFyZWEpIHtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGV4dEFyZWEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgc2VsZWN0VGV4dCh0ZXh0QXJlYSkge1xyXG4gICAgaWYgKHVzZXJBZ2VudC5nZXRPU05hbWUoKSA9PT0gJ2lPUycpIHtcclxuICAgICAgY29uc3Qgb2xkQ29udGVudEVkaXRhYmxlID0gdGV4dEFyZWEuY29udGVudEVkaXRhYmxlO1xyXG4gICAgICBjb25zdCBvbGRSZWFkT25seSA9IHRleHRBcmVhLnJlYWRPbmx5O1xyXG4gICAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcclxuXHJcbiAgICAgIHRleHRBcmVhLmNvbnRlbnRlZGl0YWJsZSA9IHRydWU7XHJcbiAgICAgIHRleHRBcmVhLnJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgICAgIHJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyh0ZXh0QXJlYSk7XHJcbiAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcclxuICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKTtcclxuICAgICAgdGV4dEFyZWEuc2V0U2VsZWN0aW9uUmFuZ2UoMCwgOTk5OTk5KTtcclxuICAgICAgdGV4dEFyZWEuY29udGVudEVkaXRhYmxlID0gb2xkQ29udGVudEVkaXRhYmxlO1xyXG4gICAgICB0ZXh0QXJlYS5yZWFkT25seSA9IG9sZFJlYWRPbmx5O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGV4dEFyZWEuc2VsZWN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBjb3B5VGV4dFRvQ2xpcGJvYXJkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCEodXNlckFnZW50LmdldE9TTmFtZSgpID09PSAnaU9TJyAmJiB1c2VyQWdlbnQuY29tcGFyZVZlcnNpb24oJzwxMCcpKSkge1xyXG4gICAgICByZXR1cm4gZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIl19
|
package/esm2015/lib/file.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
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
|
-
/**
|
|
13
|
-
* Trigger download of a file
|
|
14
|
-
*
|
|
15
|
-
* @param content File content
|
|
16
|
-
* @param mimeType File mime type
|
|
17
|
-
* @param fileName File name
|
|
18
|
-
*/
|
|
19
|
-
export function downloadFromUri(uri, fileName) {
|
|
20
|
-
const element = document.createElement('a');
|
|
21
|
-
element.setAttribute('href', uri);
|
|
22
|
-
element.setAttribute('download', fileName);
|
|
23
|
-
element.style.display = 'none';
|
|
24
|
-
document.body.appendChild(element);
|
|
25
|
-
element.click();
|
|
26
|
-
document.body.removeChild(element);
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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
|
+
/**
|
|
13
|
+
* Trigger download of a file
|
|
14
|
+
*
|
|
15
|
+
* @param content File content
|
|
16
|
+
* @param mimeType File mime type
|
|
17
|
+
* @param fileName File name
|
|
18
|
+
*/
|
|
19
|
+
export function downloadFromUri(uri, fileName) {
|
|
20
|
+
const element = document.createElement('a');
|
|
21
|
+
element.setAttribute('href', uri);
|
|
22
|
+
element.setAttribute('download', fileName);
|
|
23
|
+
element.style.display = 'none';
|
|
24
|
+
document.body.appendChild(element);
|
|
25
|
+
element.click();
|
|
26
|
+
document.body.removeChild(element);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWxzL3NyYy9saWIvZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQWUsRUFBRSxRQUFnQixFQUFFLFFBQWdCO0lBQ2pGLE1BQU0sR0FBRyxHQUFHLFFBQVEsUUFBUSxJQUFJLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFDOUQsZUFBZSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUFXLEVBQUUsUUFBZ0I7SUFDM0QsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNsQyxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDL0IsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFbkMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRWhCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogVHJpZ2dlciBkb3dubG9hZCBvZiBhIGZpbGVcclxuICpcclxuICogQHBhcmFtIGNvbnRlbnQgRmlsZSBjb250ZW50XHJcbiAqIEBwYXJhbSBtaW1lVHlwZSBGaWxlIG1pbWUgdHlwZVxyXG4gKiBAcGFyYW0gZmlsZU5hbWUgRmlsZSBuYW1lXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZG93bmxvYWRDb250ZW50KGNvbnRlbnQ6IHN0cmluZywgbWltZVR5cGU6IHN0cmluZywgZmlsZU5hbWU6IHN0cmluZykge1xyXG4gIGNvbnN0IHVyaSA9IGBkYXRhOiR7bWltZVR5cGV9LCR7ZW5jb2RlVVJJQ29tcG9uZW50KGNvbnRlbnQpfWA7XHJcbiAgZG93bmxvYWRGcm9tVXJpKHVyaSwgZmlsZU5hbWUpO1xyXG59XHJcblxyXG4vKipcclxuICogVHJpZ2dlciBkb3dubG9hZCBvZiBhIGZpbGVcclxuICpcclxuICogQHBhcmFtIGNvbnRlbnQgRmlsZSBjb250ZW50XHJcbiAqIEBwYXJhbSBtaW1lVHlwZSBGaWxlIG1pbWUgdHlwZVxyXG4gKiBAcGFyYW0gZmlsZU5hbWUgRmlsZSBuYW1lXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGcm9tVXJpKHVyaTogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nKSB7XHJcbiAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaHJlZicsIHVyaSk7XHJcbiAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZU5hbWUpO1xyXG4gIGVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xyXG5cclxuICBlbGVtZW50LmNsaWNrKCk7XHJcblxyXG4gIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XHJcbn1cclxuIl19
|
package/esm2015/lib/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export * from './base64';
|
|
2
|
-
export * from './clipboard';
|
|
3
|
-
export * from './change';
|
|
4
|
-
export * from './change.interface';
|
|
5
|
-
export * from './file';
|
|
6
|
-
export * from './object-utils';
|
|
7
|
-
export * from './strenum';
|
|
8
|
-
export * from './string-utils';
|
|
9
|
-
export * from './user-agent';
|
|
10
|
-
export * from './uuid';
|
|
11
|
-
export * from './watcher';
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export * from './base64';
|
|
2
|
+
export * from './clipboard';
|
|
3
|
+
export * from './change';
|
|
4
|
+
export * from './change.interface';
|
|
5
|
+
export * from './file';
|
|
6
|
+
export * from './object-utils';
|
|
7
|
+
export * from './strenum';
|
|
8
|
+
export * from './string-utils';
|
|
9
|
+
export * from './user-agent';
|
|
10
|
+
export * from './uuid';
|
|
11
|
+
export * from './watcher';
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy91dGlscy9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9iYXNlNjQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NsaXBib2FyZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2hhbmdlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jaGFuZ2UuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9maWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9vYmplY3QtdXRpbHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3N0cmVudW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL3N0cmluZy11dGlscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1hZ2VudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdXVpZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vd2F0Y2hlcic7XHJcbiJdfQ==
|