@acorex/core 3.0.1 → 5.0.1
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 +23 -2
- package/acorex-core.d.ts +1 -0
- package/bundles/acorex-core.umd.js +609 -2248
- package/bundles/acorex-core.umd.js.map +1 -1
- package/esm2015/acorex-core.js +1 -1
- package/esm2015/lib/config/configs.js +29 -0
- package/esm2015/lib/core.module.js +18 -24
- package/esm2015/lib/dateTime/datetime.class.js +236 -0
- package/esm2015/lib/dateTime/datetime.module.js +18 -0
- package/esm2015/lib/dateTime/datetime.pipe.js +25 -0
- package/esm2015/lib/dateTime/georgian.calendar.js +145 -0
- package/esm2015/lib/dateTime/index.js +5 -0
- package/esm2015/lib/platform/index.js +2 -0
- package/esm2015/lib/platform/platform.service.js +119 -0
- package/esm2015/lib/translation/index.js +4 -0
- package/esm2015/lib/translation/translation.module.js +18 -0
- package/esm2015/lib/translation/translator.js +26 -0
- package/esm2015/lib/translation/translator.pipe.js +15 -0
- package/esm2015/lib/utils/index.js +3 -0
- package/esm2015/lib/utils/object-util.js +83 -0
- package/esm2015/lib/utils/safe.pipe.js +30 -0
- package/esm2015/public-api.js +10 -35
- package/fesm2015/acorex-core.js +533 -1839
- package/fesm2015/acorex-core.js.map +1 -1
- package/lib/{services/config.d.ts → config/configs.d.ts} +1 -1
- package/lib/core.module.d.ts +5 -0
- package/lib/dateTime/datetime.class.d.ts +96 -0
- package/lib/dateTime/datetime.module.d.ts +7 -0
- package/lib/dateTime/datetime.pipe.d.ts +8 -0
- package/lib/dateTime/georgian.calendar.d.ts +17 -0
- package/lib/dateTime/index.d.ts +4 -0
- package/lib/platform/index.d.ts +1 -0
- package/lib/platform/platform.service.d.ts +22 -0
- package/lib/translation/index.d.ts +3 -0
- package/lib/translation/translation.module.d.ts +7 -0
- package/lib/{translator → translation}/translator.d.ts +0 -0
- package/lib/translation/translator.pipe.d.ts +7 -0
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/object-util.d.ts +7 -0
- package/lib/utils/safe.pipe.d.ts +10 -0
- package/package.json +7 -11
- package/public-api.d.ts +9 -41
- package/acorex-core.metadata.json +0 -1
- package/bundles/acorex-core.umd.min.js +0 -17
- package/bundles/acorex-core.umd.min.js.map +0 -1
- package/esm2015/lib/classes/base-page.class.js +0 -21
- package/esm2015/lib/classes/color.class.js +0 -49
- package/esm2015/lib/classes/datetime.class.js +0 -314
- package/esm2015/lib/classes/menu.class.js +0 -27
- package/esm2015/lib/classes/navigator.class.js +0 -1
- package/esm2015/lib/classes/popup.class.js +0 -1
- package/esm2015/lib/classes/promise.class.js +0 -19
- package/esm2015/lib/classes/sectionlist.class.js +0 -1
- package/esm2015/lib/classes/select.class.js +0 -3
- package/esm2015/lib/error/error.class.js +0 -1
- package/esm2015/lib/error/error.module.js +0 -16
- package/esm2015/lib/error/error.service.js +0 -25
- package/esm2015/lib/events/keyboard.js +0 -1
- package/esm2015/lib/http/http-error.class.js +0 -1
- package/esm2015/lib/http/http-events.interceptor.js +0 -3
- package/esm2015/lib/http/http-request.class.js +0 -1
- package/esm2015/lib/http/http-result.class.js +0 -21
- package/esm2015/lib/http/http.module.js +0 -29
- package/esm2015/lib/http/http.service.js +0 -149
- package/esm2015/lib/locale/en.json +0 -249
- package/esm2015/lib/locale/fa.json +0 -238
- package/esm2015/lib/pipe/datetime.pipe.js +0 -24
- package/esm2015/lib/pipe/htmlToText.pipe.js +0 -23
- package/esm2015/lib/services/config.js +0 -29
- package/esm2015/lib/services/event.service.js +0 -36
- package/esm2015/lib/services/navigator.service.js +0 -9
- package/esm2015/lib/services/storage.service.js +0 -15
- package/esm2015/lib/translator/translator.js +0 -26
- package/esm2015/lib/translator/translator.module.js +0 -23
- package/esm2015/lib/translator/translator.pipe.js +0 -23
- package/esm2015/lib/translator/translator.service.js +0 -21
- package/esm2015/lib/utils/array/array-util.js +0 -133
- package/esm2015/lib/utils/html/html-util.js +0 -192
- package/esm2015/lib/utils/html/html.module.js +0 -16
- package/esm2015/lib/utils/math/math-util.js +0 -6
- package/esm2015/lib/utils/object/object-util.js +0 -83
- package/esm2015/lib/utils/render/on-demand-preload-strategy.service.js +0 -21
- package/esm2015/lib/utils/render/render.service.js +0 -112
- package/esm2015/lib/utils/render/rendering.module.js +0 -26
- package/esm2015/lib/utils/scroll/scroll.directive.js +0 -66
- package/esm2015/lib/utils/scroll/scroll.module.js +0 -16
- package/esm2015/lib/utils/separator/separator.module.js +0 -16
- package/esm2015/lib/utils/separator/separator.pipe.js +0 -22
- package/esm5/acorex-core.js +0 -5
- package/esm5/lib/classes/base-page.class.js +0 -23
- package/esm5/lib/classes/color.class.js +0 -54
- package/esm5/lib/classes/datetime.class.js +0 -390
- package/esm5/lib/classes/menu.class.js +0 -42
- package/esm5/lib/classes/navigator.class.js +0 -1
- package/esm5/lib/classes/popup.class.js +0 -1
- package/esm5/lib/classes/promise.class.js +0 -22
- package/esm5/lib/classes/sectionlist.class.js +0 -1
- package/esm5/lib/classes/select.class.js +0 -7
- package/esm5/lib/core.module.js +0 -27
- package/esm5/lib/error/error.class.js +0 -1
- package/esm5/lib/error/error.module.js +0 -19
- package/esm5/lib/error/error.service.js +0 -26
- package/esm5/lib/events/keyboard.js +0 -1
- package/esm5/lib/http/http-error.class.js +0 -1
- package/esm5/lib/http/http-events.interceptor.js +0 -3
- package/esm5/lib/http/http-request.class.js +0 -1
- package/esm5/lib/http/http-result.class.js +0 -24
- package/esm5/lib/http/http.module.js +0 -33
- package/esm5/lib/http/http.service.js +0 -157
- package/esm5/lib/locale/en.json +0 -249
- package/esm5/lib/locale/fa.json +0 -238
- package/esm5/lib/pipe/datetime.pipe.js +0 -26
- package/esm5/lib/pipe/htmlToText.pipe.js +0 -26
- package/esm5/lib/services/config.js +0 -37
- package/esm5/lib/services/event.service.js +0 -37
- package/esm5/lib/services/navigator.service.js +0 -12
- package/esm5/lib/services/storage.service.js +0 -18
- package/esm5/lib/translator/translator.js +0 -34
- package/esm5/lib/translator/translator.module.js +0 -24
- package/esm5/lib/translator/translator.pipe.js +0 -25
- package/esm5/lib/translator/translator.service.js +0 -24
- package/esm5/lib/utils/array/array-util.js +0 -147
- package/esm5/lib/utils/html/html-util.js +0 -224
- package/esm5/lib/utils/html/html.module.js +0 -19
- package/esm5/lib/utils/math/math-util.js +0 -10
- package/esm5/lib/utils/object/object-util.js +0 -88
- package/esm5/lib/utils/render/on-demand-preload-strategy.service.js +0 -22
- package/esm5/lib/utils/render/render.service.js +0 -117
- package/esm5/lib/utils/render/rendering.module.js +0 -29
- package/esm5/lib/utils/scroll/scroll.directive.js +0 -68
- package/esm5/lib/utils/scroll/scroll.module.js +0 -19
- package/esm5/lib/utils/separator/separator.module.js +0 -19
- package/esm5/lib/utils/separator/separator.pipe.js +0 -25
- package/esm5/public-api.js +0 -36
- package/fesm5/acorex-core.js +0 -2274
- package/fesm5/acorex-core.js.map +0 -1
- package/lib/classes/base-page.class.d.ts +0 -10
- package/lib/classes/color.class.d.ts +0 -17
- package/lib/classes/datetime.class.d.ts +0 -63
- package/lib/classes/menu.class.d.ts +0 -33
- package/lib/classes/navigator.class.d.ts +0 -5
- package/lib/classes/popup.class.d.ts +0 -12
- package/lib/classes/promise.class.d.ts +0 -7
- package/lib/classes/sectionlist.class.d.ts +0 -8
- package/lib/classes/select.class.d.ts +0 -7
- package/lib/error/error.class.d.ts +0 -4
- package/lib/error/error.module.d.ts +0 -2
- package/lib/error/error.service.d.ts +0 -10
- package/lib/events/keyboard.d.ts +0 -2
- package/lib/http/http-error.class.d.ts +0 -7
- package/lib/http/http-events.interceptor.d.ts +0 -10
- package/lib/http/http-request.class.d.ts +0 -14
- package/lib/http/http-result.class.d.ts +0 -11
- package/lib/http/http.module.d.ts +0 -4
- package/lib/http/http.service.d.ts +0 -20
- package/lib/pipe/datetime.pipe.d.ts +0 -5
- package/lib/pipe/htmlToText.pipe.d.ts +0 -4
- package/lib/services/event.service.d.ts +0 -6
- package/lib/services/navigator.service.d.ts +0 -5
- package/lib/services/storage.service.d.ts +0 -4
- package/lib/translator/translator.module.d.ts +0 -3
- package/lib/translator/translator.pipe.d.ts +0 -5
- package/lib/translator/translator.service.d.ts +0 -5
- package/lib/utils/array/array-util.d.ts +0 -6
- package/lib/utils/html/html-util.d.ts +0 -62
- package/lib/utils/html/html.module.d.ts +0 -2
- package/lib/utils/math/math-util.d.ts +0 -3
- package/lib/utils/object/object-util.d.ts +0 -7
- package/lib/utils/render/on-demand-preload-strategy.service.d.ts +0 -7
- package/lib/utils/render/render.service.d.ts +0 -14
- package/lib/utils/render/rendering.module.d.ts +0 -4
- package/lib/utils/scroll/scroll.directive.d.ts +0 -13
- package/lib/utils/scroll/scroll.module.d.ts +0 -2
- package/lib/utils/separator/separator.module.d.ts +0 -2
- package/lib/utils/separator/separator.pipe.d.ts +0 -4
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { AXFetchProp } from '../object/object-util';
|
|
2
|
-
// @dynamic
|
|
3
|
-
export class AXArrayUtil {
|
|
4
|
-
static pickRandom(array) {
|
|
5
|
-
return array[Math.floor(Math.random() * array.length)];
|
|
6
|
-
}
|
|
7
|
-
static insert(array, index, ...rest) {
|
|
8
|
-
array.splice.apply(array, [index, 0].concat(Array.prototype.slice.call(rest, 1)));
|
|
9
|
-
return array;
|
|
10
|
-
}
|
|
11
|
-
static range(min, max) {
|
|
12
|
-
return new Array(max - min).fill(1).map((d, i) => i);
|
|
13
|
-
}
|
|
14
|
-
static filter(array, filters) {
|
|
15
|
-
if (filters == null || filters.length === 0) {
|
|
16
|
-
return array;
|
|
17
|
-
}
|
|
18
|
-
const lamda = (item) => {
|
|
19
|
-
let result = true;
|
|
20
|
-
for (const key in filters) {
|
|
21
|
-
if (filters.hasOwnProperty(key)) {
|
|
22
|
-
const f = filters[key];
|
|
23
|
-
if (f !== 'AND') {
|
|
24
|
-
const vals = [];
|
|
25
|
-
const mt = f.field.match(/\[\:(.*?)\]/);
|
|
26
|
-
if (mt && mt.length > 1) {
|
|
27
|
-
const p1 = f.field.replace(mt[0], '');
|
|
28
|
-
const p2 = mt[1];
|
|
29
|
-
const prop = AXFetchProp(item, p1);
|
|
30
|
-
if (prop instanceof Array && prop.length) {
|
|
31
|
-
vals.push(...prop.map(m => (AXFetchProp(m, p2))));
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
result = false;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
vals.push(AXFetchProp(item, f.field));
|
|
39
|
-
}
|
|
40
|
-
for (const j in vals) {
|
|
41
|
-
if (vals.hasOwnProperty(j)) {
|
|
42
|
-
let v1 = vals[j];
|
|
43
|
-
const v2 = f.value;
|
|
44
|
-
if (f.dataType === 'string') {
|
|
45
|
-
v1 = v1.toString();
|
|
46
|
-
switch (f.condition) {
|
|
47
|
-
case 'equal':
|
|
48
|
-
result = (v1 && v2) && v1.toLowerCase() === v2.toLowerCase();
|
|
49
|
-
break;
|
|
50
|
-
case 'not-equal':
|
|
51
|
-
result = !((v1 && v2) && v1.toLowerCase() === v2.toLowerCase());
|
|
52
|
-
break;
|
|
53
|
-
case 'contains':
|
|
54
|
-
result = ((v1 && v2) && (v1.toLowerCase().includes(v2.toLowerCase())));
|
|
55
|
-
break;
|
|
56
|
-
case 'not-contains':
|
|
57
|
-
result = !((v1 && v2) && (v1.toLowerCase().includes(v2.toLowerCase())));
|
|
58
|
-
break;
|
|
59
|
-
case 'start-with':
|
|
60
|
-
result = ((v1 && v2) && (v1.toLowerCase().startsWith(v2.toLowerCase())));
|
|
61
|
-
break;
|
|
62
|
-
case 'end-with':
|
|
63
|
-
result = ((v1 && v2) && (v1.toLowerCase().endsWith(v2.toLowerCase())));
|
|
64
|
-
break;
|
|
65
|
-
case 'is-empty':
|
|
66
|
-
result = v1 == null || v1 === undefined;
|
|
67
|
-
break;
|
|
68
|
-
case 'is-not-empty':
|
|
69
|
-
result = !(v1 == null || v1 === undefined);
|
|
70
|
-
break;
|
|
71
|
-
default:
|
|
72
|
-
console.error('The condition is not defined');
|
|
73
|
-
result = false;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
else if (f.dataType === 'date') {
|
|
77
|
-
}
|
|
78
|
-
else if (f.dataType === 'number') {
|
|
79
|
-
v1 = Number(v1);
|
|
80
|
-
switch (f.condition) {
|
|
81
|
-
case 'equal':
|
|
82
|
-
result = v1 === v2;
|
|
83
|
-
break;
|
|
84
|
-
case 'not-equal':
|
|
85
|
-
result = v1 !== v2;
|
|
86
|
-
break;
|
|
87
|
-
case 'contains':
|
|
88
|
-
result = v2 && v2 instanceof Array && v2.includes(v1);
|
|
89
|
-
break;
|
|
90
|
-
case 'less-than':
|
|
91
|
-
result = v1 < v2;
|
|
92
|
-
break;
|
|
93
|
-
case 'less-than-equal':
|
|
94
|
-
result = v1 <= v2;
|
|
95
|
-
break;
|
|
96
|
-
case 'greater-than':
|
|
97
|
-
result = v1 > v2;
|
|
98
|
-
break;
|
|
99
|
-
case 'greater-than-equal':
|
|
100
|
-
result = v1 >= v2;
|
|
101
|
-
break;
|
|
102
|
-
case 'is-empty':
|
|
103
|
-
result = v1 == null || v1 === undefined;
|
|
104
|
-
break;
|
|
105
|
-
case 'is-not-empty':
|
|
106
|
-
result = !(v1 == null || v1 === undefined);
|
|
107
|
-
break;
|
|
108
|
-
default:
|
|
109
|
-
console.error('The condition is not defined');
|
|
110
|
-
result = false;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
console.error('The datatype is not supported');
|
|
115
|
-
result = false;
|
|
116
|
-
}
|
|
117
|
-
if (result) {
|
|
118
|
-
break;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
if (!result) {
|
|
124
|
-
return false;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
return true;
|
|
129
|
-
};
|
|
130
|
-
return array.filter(lamda);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktdXRpbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29yZS8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9hcnJheS9hcnJheS11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxXQUFXO0FBQ1gsTUFBTSxPQUFPLFdBQVc7SUFHcEIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFZO1FBQzFCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFHRCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQVksRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJO1FBQ3RDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEYsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBVyxFQUFFLEdBQVc7UUFDakMsT0FBTyxJQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQVksRUFBRSxPQUFjO1FBQ3RDLElBQUksT0FBTyxJQUFJLElBQUksSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN6QyxPQUFPLEtBQUss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LENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRmV0Y2hQcm9wIH0gZnJvbSAnLi4vb2JqZWN0L29iamVjdC11dGlsJztcclxuXHJcbi8vIEBkeW5hbWljXHJcbmV4cG9ydCBjbGFzcyBBWEFycmF5VXRpbCB7XHJcblxyXG5cclxuICAgIHN0YXRpYyBwaWNrUmFuZG9tKGFycmF5OiBhbnlbXSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIGFycmF5W01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGFycmF5Lmxlbmd0aCldO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBzdGF0aWMgaW5zZXJ0KGFycmF5OiBhbnlbXSwgaW5kZXgsIC4uLnJlc3QpIHtcclxuICAgICAgICBhcnJheS5zcGxpY2UuYXBwbHkoYXJyYXksIFtpbmRleCwgMF0uY29uY2F0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHJlc3QsIDEpKSk7XHJcbiAgICAgICAgcmV0dXJuIGFycmF5O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyByYW5nZShtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXJbXSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBcnJheShtYXggLSBtaW4pLmZpbGwoMSkubWFwKChkLCBpKSA9PiBpKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZmlsdGVyKGFycmF5OiBhbnlbXSwgZmlsdGVyczogYW55W10pOiBhbnlbXSB7XHJcbiAgICAgICAgaWYgKGZpbHRlcnMgPT0gbnVsbCB8fCBmaWx0ZXJzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gYXJyYXk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGxhbWRhID0gKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHRydWU7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGZpbHRlcnMpIHtcclxuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJzLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmID0gZmlsdGVyc1trZXldO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChmICE9PSAnQU5EJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWxzID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG10ID0gZi5maWVsZC5tYXRjaCgvXFxbXFw6KC4qPylcXF0vKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG10ICYmIG10Lmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHAxID0gZi5maWVsZC5yZXBsYWNlKG10WzBdLCAnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwMiA9IG10WzFdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvcCA9IEFYRmV0Y2hQcm9wKGl0ZW0sIHAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wIGluc3RhbmNlb2YgQXJyYXkgJiYgcHJvcC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxzLnB1c2goLi4ucHJvcC5tYXAobSA9PiAoQVhGZXRjaFByb3AobSwgcDIpKSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHMucHVzaChBWEZldGNoUHJvcChpdGVtLCBmLmZpZWxkKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBqIGluIHZhbHMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWxzLmhhc093blByb3BlcnR5KGopKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYxID0gdmFsc1tqXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2MiA9IGYudmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGYuZGF0YVR5cGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxID0gdjEudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChmLmNvbmRpdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZXF1YWwnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9ICh2MSAmJiB2MikgJiYgdjEudG9Mb3dlckNhc2UoKSA9PT0gdjIudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ25vdC1lcXVhbCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gISgodjEgJiYgdjIpICYmIHYxLnRvTG93ZXJDYXNlKCkgPT09IHYyLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29udGFpbnMnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9ICgodjEgJiYgdjIpICYmICh2MS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHYyLnRvTG93ZXJDYXNlKCkpKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdub3QtY29udGFpbnMnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9ICEoKHYxICYmIHYyKSAmJiAodjEudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh2Mi50b0xvd2VyQ2FzZSgpKSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3RhcnQtd2l0aCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKCh2MSAmJiB2MikgJiYgKHYxLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCh2Mi50b0xvd2VyQ2FzZSgpKSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZW5kLXdpdGgnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9ICgodjEgJiYgdjIpICYmICh2MS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKHYyLnRvTG93ZXJDYXNlKCkpKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdpcy1lbXB0eSc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdjEgPT0gbnVsbCB8fCB2MSA9PT0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnaXMtbm90LWVtcHR5JzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAhKHYxID09IG51bGwgfHwgdjEgPT09IHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1RoZSBjb25kaXRpb24gaXMgbm90IGRlZmluZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZi5kYXRhVHlwZSA9PT0gJ2RhdGUnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmLmRhdGFUeXBlID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MSA9IE51bWJlcih2MSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZi5jb25kaXRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2VxdWFsJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB2MSA9PT0gdjI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdub3QtZXF1YWwnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHYxICE9PSB2MjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvbnRhaW5zJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB2MiAmJiB2MiBpbnN0YW5jZW9mIEFycmF5ICYmIHYyLmluY2x1ZGVzKHYxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2xlc3MtdGhhbic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdjEgPCB2MjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2xlc3MtdGhhbi1lcXVhbCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdjEgPD0gdjI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdncmVhdGVyLXRoYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHYxID4gdjI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdncmVhdGVyLXRoYW4tZXF1YWwnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHYxID49IHYyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnaXMtZW1wdHknOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHYxID09IG51bGwgfHwgdjEgPT09IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2lzLW5vdC1lbXB0eSc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gISh2MSA9PSBudWxsIHx8IHYxID09PSB1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdUaGUgY29uZGl0aW9uIGlzIG5vdCBkZWZpbmVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdUaGUgZGF0YXR5cGUgaXMgbm90IHN1cHBvcnRlZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBhcnJheS5maWx0ZXIobGFtZGEpO1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
import { AXMathUtil } from '../math/math-util';
|
|
2
|
-
export class AXPoint {
|
|
3
|
-
constructor(x, y) {
|
|
4
|
-
this.x = x;
|
|
5
|
-
this.y = y;
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
export class AXClientRec {
|
|
9
|
-
constructor(rec) {
|
|
10
|
-
this._left = rec.left;
|
|
11
|
-
this._top = rec.top;
|
|
12
|
-
this._width = rec.width;
|
|
13
|
-
this._height = rec.height;
|
|
14
|
-
this._right = this._left + this._width;
|
|
15
|
-
this._bottom = this._top + this._height;
|
|
16
|
-
}
|
|
17
|
-
get left() {
|
|
18
|
-
return this._left;
|
|
19
|
-
}
|
|
20
|
-
set left(v) {
|
|
21
|
-
this._left = v;
|
|
22
|
-
}
|
|
23
|
-
get top() {
|
|
24
|
-
return this._top;
|
|
25
|
-
}
|
|
26
|
-
set top(v) {
|
|
27
|
-
this._top = v;
|
|
28
|
-
}
|
|
29
|
-
get right() {
|
|
30
|
-
return this._right;
|
|
31
|
-
}
|
|
32
|
-
set right(v) {
|
|
33
|
-
this._right = v;
|
|
34
|
-
}
|
|
35
|
-
get bottom() {
|
|
36
|
-
return this._bottom;
|
|
37
|
-
}
|
|
38
|
-
set bottom(v) {
|
|
39
|
-
this._bottom = v;
|
|
40
|
-
}
|
|
41
|
-
get width() {
|
|
42
|
-
return this._width;
|
|
43
|
-
}
|
|
44
|
-
set width(v) {
|
|
45
|
-
this._width = v;
|
|
46
|
-
}
|
|
47
|
-
get height() {
|
|
48
|
-
return this._height;
|
|
49
|
-
}
|
|
50
|
-
set height(v) {
|
|
51
|
-
this._height = v;
|
|
52
|
-
}
|
|
53
|
-
intersect(rec) {
|
|
54
|
-
return (this.left < rec.left + rec.width &&
|
|
55
|
-
this.left + this.width > rec.left &&
|
|
56
|
-
this.top < rec.top + rec.height &&
|
|
57
|
-
this.top + this.height > rec.top);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
// @dynamic
|
|
61
|
-
export class AXHtmlUtil {
|
|
62
|
-
static getBoundingRectPoint(el, placement) {
|
|
63
|
-
const rec = el.getBoundingClientRect();
|
|
64
|
-
const width = el.offsetWidth;
|
|
65
|
-
const height = el.offsetHeight;
|
|
66
|
-
switch (placement) {
|
|
67
|
-
case 'top-start':
|
|
68
|
-
return new AXPoint(rec.left, rec.top);
|
|
69
|
-
case 'top-middle':
|
|
70
|
-
return new AXPoint(rec.left + (width / 2), rec.top);
|
|
71
|
-
case 'top-end':
|
|
72
|
-
return new AXPoint(rec.left + (width), rec.top);
|
|
73
|
-
case 'center-end':
|
|
74
|
-
return new AXPoint(rec.left + (width), rec.top + (height / 2));
|
|
75
|
-
case 'bottom-end':
|
|
76
|
-
return new AXPoint(rec.left + (width), rec.top + (height));
|
|
77
|
-
case 'bottom-middle':
|
|
78
|
-
return new AXPoint(rec.left + (width / 2), rec.top + (height));
|
|
79
|
-
case 'bottom-start':
|
|
80
|
-
return new AXPoint(rec.left, rec.top + (height));
|
|
81
|
-
case 'center-start':
|
|
82
|
-
return new AXPoint(rec.left, rec.top + (height / 2));
|
|
83
|
-
default:
|
|
84
|
-
return new AXPoint(rec.left + (width / 2), rec.top + (height));
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
static isInRecPoint(pos, rec) {
|
|
88
|
-
return pos.x >= rec.left && pos.x <= (rec.left + rec.width) && pos.y >= rec.top && (pos.y <= (rec.top + rec.height));
|
|
89
|
-
}
|
|
90
|
-
// static isOverLap(rec1: AXClientRecCtor, rec2: AXClientRecCtor): boolean {
|
|
91
|
-
// const r1: AXClientRec = new AXClientRec(rec1);
|
|
92
|
-
// const r2: AXClientRec = new AXClientRec(rec2);
|
|
93
|
-
// return ;
|
|
94
|
-
// }
|
|
95
|
-
static isInElementBound(pos, element) {
|
|
96
|
-
const elBound = element.getBoundingClientRect();
|
|
97
|
-
return AXHtmlUtil.isInRecPoint(pos, {
|
|
98
|
-
left: elBound.left,
|
|
99
|
-
width: elBound.width,
|
|
100
|
-
top: elBound.top,
|
|
101
|
-
height: elBound.height
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
static getDimensions() {
|
|
105
|
-
let winW = 630;
|
|
106
|
-
let winH = 460;
|
|
107
|
-
if (document.body && document.body.offsetWidth) {
|
|
108
|
-
winW = document.body.offsetWidth;
|
|
109
|
-
winH = document.body.offsetHeight;
|
|
110
|
-
}
|
|
111
|
-
if (document.compatMode === 'CSS1Compat' && document.documentElement && document.documentElement.offsetWidth) {
|
|
112
|
-
winW = document.documentElement.offsetWidth;
|
|
113
|
-
winH = document.documentElement.offsetHeight;
|
|
114
|
-
}
|
|
115
|
-
if (window.innerWidth && window.innerHeight) {
|
|
116
|
-
winW = window.innerWidth;
|
|
117
|
-
winH = window.innerHeight;
|
|
118
|
-
}
|
|
119
|
-
return { width: winW, height: winH };
|
|
120
|
-
}
|
|
121
|
-
static getOffsetRight(elem) {
|
|
122
|
-
let element = elem;
|
|
123
|
-
const width = element.offsetWidth;
|
|
124
|
-
let right = 0;
|
|
125
|
-
while (element.offsetParent) {
|
|
126
|
-
right += element.offsetLeft;
|
|
127
|
-
element = element.offsetParent;
|
|
128
|
-
}
|
|
129
|
-
right += element.offsetLeft;
|
|
130
|
-
right = AXHtmlUtil.getDimensions().width - right;
|
|
131
|
-
right -= width;
|
|
132
|
-
return right;
|
|
133
|
-
}
|
|
134
|
-
static getUID() {
|
|
135
|
-
return 'el-' + AXMathUtil.randomRange(1000000000, 9999999999).toString();
|
|
136
|
-
}
|
|
137
|
-
static getRelatedPosition(source, placement, target, alignment) {
|
|
138
|
-
const result = { x: 0, y: 0 };
|
|
139
|
-
const sourcePos = AXHtmlUtil.getBoundingRectPoint(source, placement);
|
|
140
|
-
let top = 0;
|
|
141
|
-
let left = 0;
|
|
142
|
-
switch (alignment) {
|
|
143
|
-
case 'top-start':
|
|
144
|
-
top = sourcePos.y;
|
|
145
|
-
left = sourcePos.x;
|
|
146
|
-
break;
|
|
147
|
-
case 'top-middle':
|
|
148
|
-
top = sourcePos.y;
|
|
149
|
-
left = sourcePos.x - target.offsetWidth / 2;
|
|
150
|
-
break;
|
|
151
|
-
case 'top-end':
|
|
152
|
-
top = sourcePos.y;
|
|
153
|
-
left = sourcePos.x - target.offsetWidth;
|
|
154
|
-
break;
|
|
155
|
-
case 'center-end':
|
|
156
|
-
top = sourcePos.y - target.offsetHeight / 2;
|
|
157
|
-
left = sourcePos.x - target.offsetWidth;
|
|
158
|
-
break;
|
|
159
|
-
case 'bottom-end':
|
|
160
|
-
top = sourcePos.y - target.offsetHeight;
|
|
161
|
-
left = sourcePos.x - target.offsetWidth;
|
|
162
|
-
break;
|
|
163
|
-
case 'bottom-middle':
|
|
164
|
-
top = sourcePos.y - target.offsetHeight;
|
|
165
|
-
left = sourcePos.x - target.offsetWidth / 2;
|
|
166
|
-
break;
|
|
167
|
-
case 'bottom-start':
|
|
168
|
-
top = sourcePos.y - target.offsetHeight;
|
|
169
|
-
left = sourcePos.x;
|
|
170
|
-
break;
|
|
171
|
-
case 'center-start':
|
|
172
|
-
top = sourcePos.y - target.offsetHeight / 2;
|
|
173
|
-
left = sourcePos.x;
|
|
174
|
-
break;
|
|
175
|
-
}
|
|
176
|
-
result.y = top;
|
|
177
|
-
result.x = left;
|
|
178
|
-
return result;
|
|
179
|
-
}
|
|
180
|
-
static collision(a, b) {
|
|
181
|
-
const ac = a.getBoundingClientRect();
|
|
182
|
-
const bc = b.getBoundingClientRect();
|
|
183
|
-
if (ac.left < bc.left + bc.width && ac.left + ac.width > bc.left &&
|
|
184
|
-
ac.top < bc.top + bc.height && ac.top + ac.height > bc.top) {
|
|
185
|
-
return true;
|
|
186
|
-
}
|
|
187
|
-
else {
|
|
188
|
-
return false;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC11dGlsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9jb3JlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL2h0bWwvaHRtbC11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQTJCL0MsTUFBTSxPQUFPLE9BQU87SUFDbEIsWUFBbUIsQ0FBUyxFQUFTLENBQVM7UUFBM0IsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUFTLE1BQUMsR0FBRCxDQUFDLENBQVE7SUFDOUMsQ0FBQztDQUNGO0FBVUQsTUFBTSxPQUFPLFdBQVc7SUEwRHRCLFlBQVksR0FBb0I7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzFDLENBQUM7SUE3REQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFXLElBQUksQ0FBQyxDQUFTO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFJRCxJQUFXLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQVcsR0FBRyxDQUFDLENBQVM7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUlELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBVyxLQUFLLENBQUMsQ0FBUztRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSUQsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFXLE1BQU0sQ0FBQyxDQUFTO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFLRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQVcsS0FBSyxDQUFDLENBQVM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBVyxNQUFNLENBQUMsQ0FBUztRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBWU0sU0FBUyxDQUFDLEdBQW9CO1FBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUs7WUFDdEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJO1lBQ2pDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTTtZQUMvQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Q0FHRjtBQUNELFdBQVc7QUFDWCxNQUFNLE9BQU8sVUFBVTtJQUNyQixNQUFNLENBQUMsb0JBQW9CLENBQUMsRUFBZSxFQUFFLFNBQXNCO1FBQ2pFLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7UUFDN0IsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQztRQUMvQixRQUFRLFNBQVMsRUFBRTtZQUNqQixLQUFLLFdBQVc7Z0JBQ2QsT0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QyxLQUFLLFlBQVk7Z0JBQ2YsT0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0RCxLQUFLLFNBQVM7Z0JBQ1osT0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xELEtBQUssWUFBWTtnQkFDZixPQUFPLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakUsS0FBSyxZQUFZO2dCQUNmLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzdELEtBQUssZUFBZTtnQkFDbEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLEtBQUssY0FBYztnQkFDakIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ25ELEtBQUssY0FBYztnQkFDakIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RDtnQkFDRSxPQUFPLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDbEU7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFhLEVBQUUsR0FBb0I7UUFDckQsT0FBTyxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3ZILENBQUM7SUFFRCw0RUFBNEU7SUFDNUUsbURBQW1EO0lBQ25ELG1EQUFtRDtJQUVuRCxhQUFhO0lBQ2IsSUFBSTtJQUVKLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFhLEVBQUUsT0FBb0I7UUFDekQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDaEQsT0FBTyxVQUFVLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRTtZQUNsQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztZQUNoQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhO1FBQ2xCLElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksUUFBUSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUM5QyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDakMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxRQUFRLENBQUMsVUFBVSxLQUFLLFlBQVksSUFBSSxRQUFRLENBQUMsZUFBZSxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFO1lBQzVHLElBQUksR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQztZQUM1QyxJQUFJLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUM7U0FDOUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRTtZQUMzQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUN6QixJQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztTQUMzQjtRQUNELE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFpQjtRQUNyQyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDbkIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUNsQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxPQUFPLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDM0IsS0FBSyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUM7WUFDNUIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxZQUEyQixDQUFDO1NBQy9DO1FBQ0QsS0FBSyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDNUIsS0FBSyxHQUFHLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2pELEtBQUssSUFBSSxLQUFLLENBQUM7UUFDZixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTTtRQUNYLE9BQU8sS0FBSyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNFLENBQUM7SUFHRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsTUFBbUIsRUFBRSxTQUFzQixFQUFFLE1BQW1CLEVBQUUsU0FBc0I7UUFDaEgsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUV4QyxNQUFNLFNBQVMsR0FBWSxVQUFVLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRzlFLElBQUksR0FBRyxHQUFXLENBQUMsQ0FBQztRQUNwQixJQUFJLElBQUksR0FBVyxDQUFDLENBQUM7UUFDckIsUUFBUSxTQUFTLEVBQUU7WUFDakIsS0FBSyxXQUFXO2dCQUNkLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUNsQixJQUFJLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDbkIsTUFBTTtZQUNSLEtBQUssWUFBWTtnQkFDZixHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDbEIsSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7Z0JBQzVDLE1BQU07WUFDUixLQUFLLFNBQVM7Z0JBQ1osR0FBRyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xCLElBQUksR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7Z0JBQ3hDLE1BQU07WUFDUixLQUFLLFlBQVk7Z0JBQ2YsR0FBRyxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7Z0JBQzVDLElBQUksR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7Z0JBQ3hDLE1BQU07WUFDUixLQUFLLFlBQVk7Z0JBQ2YsR0FBRyxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztnQkFDeEMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztnQkFDeEMsTUFBTTtZQUNSLEtBQUssZUFBZTtnQkFDbEIsR0FBRyxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztnQkFDeEMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7Z0JBQzVDLE1BQU07WUFDUixLQUFLLGNBQWM7Z0JBQ2pCLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7Z0JBQ3hDLElBQUksR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixNQUFNO1lBQ1IsS0FBSyxjQUFjO2dCQUNqQixHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25CLE1BQU07U0FDVDtRQUNELE1BQU0sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ2YsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDaEIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUdELE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBYyxFQUFFLENBQWM7UUFDN0MsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDckMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFFckMsSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUk7WUFDOUQsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUU7WUFDNUQsT0FBTyxJQUFJLENBQUM7U0FDYjthQUNJO1lBQ0gsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYTWF0aFV0aWwgfSBmcm9tICcuLi9tYXRoL21hdGgtdXRpbCc7XHJcblxyXG5leHBvcnQgdHlwZSBBWFBsYWNlbWVudCA9XHJcbiAgfCAndG9wLXN0YXJ0J1xyXG4gIHwgJ3RvcC1taWRkbGUnXHJcbiAgfCAndG9wLWVuZCdcclxuICB8ICdjZW50ZXItc3RhcnQnXHJcbiAgfCAnY2VudGVyLWVuZCdcclxuICB8ICdib3R0b20tc3RhcnQnXHJcbiAgfCAnYm90dG9tLW1pZGRsZSdcclxuICB8ICdib3R0b20tZW5kJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhJUG9pbnQge1xyXG4gIHg6IG51bWJlcjtcclxuICB5OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhDb25uZWN0ZWRQb3NpdGlvbiB7XHJcbiAgb3JpZ2luWDogJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCc7XHJcbiAgb3JpZ2luWTogJ3RvcCcgfCAnY2VudGVyJyB8ICdib3R0b20nO1xyXG4gIG92ZXJsYXlYOiAnc3RhcnQnIHwgJ2NlbnRlcicgfCAnZW5kJztcclxuICBvdmVybGF5WTogJ3RvcCcgfCAnY2VudGVyJyB8ICdib3R0b20nO1xyXG4gIHdlaWdodD86IG51bWJlcjtcclxuICBvZmZzZXRYPzogbnVtYmVyO1xyXG4gIG9mZnNldFk/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBWFBvaW50IGltcGxlbWVudHMgQVhJUG9pbnQge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB4OiBudW1iZXIsIHB1YmxpYyB5OiBudW1iZXIpIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhDbGllbnRSZWNDdG9yIHtcclxuICBsZWZ0PzogbnVtYmVyO1xyXG4gIHRvcD86IG51bWJlcjtcclxuICB3aWR0aD86IG51bWJlcjtcclxuICBoZWlnaHQ/OiBudW1iZXI7XHJcbiAgYm90dG9tPzogbnVtYmVyO1xyXG4gIHJpZ2h0PzogbnVtYmVyO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBBWENsaWVudFJlYyBpbXBsZW1lbnRzIEFYQ2xpZW50UmVjQ3RvciB7XHJcblxyXG5cclxuICBwcml2YXRlIF9sZWZ0OiBudW1iZXI7XHJcbiAgcHVibGljIGdldCBsZWZ0KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGVmdDtcclxuICB9XHJcbiAgcHVibGljIHNldCBsZWZ0KHY6IG51bWJlcikge1xyXG4gICAgdGhpcy5fbGVmdCA9IHY7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJpdmF0ZSBfdG9wOiBudW1iZXI7XHJcbiAgcHVibGljIGdldCB0b3AoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl90b3A7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgdG9wKHY6IG51bWJlcikge1xyXG4gICAgdGhpcy5fdG9wID0gdjtcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIF9yaWdodDogbnVtYmVyO1xyXG4gIHB1YmxpYyBnZXQgcmlnaHQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9yaWdodDtcclxuICB9XHJcbiAgcHVibGljIHNldCByaWdodCh2OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3JpZ2h0ID0gdjtcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIF9ib3R0b206IG51bWJlcjtcclxuICBwdWJsaWMgZ2V0IGJvdHRvbSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2JvdHRvbTtcclxuICB9XHJcbiAgcHVibGljIHNldCBib3R0b20odjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9ib3R0b20gPSB2O1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBwcml2YXRlIF93aWR0aDogbnVtYmVyO1xyXG4gIHB1YmxpYyBnZXQgd2lkdGgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl93aWR0aDtcclxuICB9XHJcbiAgcHVibGljIHNldCB3aWR0aCh2OiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3dpZHRoID0gdjtcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIF9oZWlnaHQ6IG51bWJlcjtcclxuICBwdWJsaWMgZ2V0IGhlaWdodCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2hlaWdodDtcclxuICB9XHJcbiAgcHVibGljIHNldCBoZWlnaHQodjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9oZWlnaHQgPSB2O1xyXG4gIH1cclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHJlYzogQVhDbGllbnRSZWNDdG9yKSB7XHJcbiAgICB0aGlzLl9sZWZ0ID0gcmVjLmxlZnQ7XHJcbiAgICB0aGlzLl90b3AgPSByZWMudG9wO1xyXG4gICAgdGhpcy5fd2lkdGggPSByZWMud2lkdGg7XHJcbiAgICB0aGlzLl9oZWlnaHQgPSByZWMuaGVpZ2h0O1xyXG4gICAgdGhpcy5fcmlnaHQgPSB0aGlzLl9sZWZ0ICsgdGhpcy5fd2lkdGg7XHJcbiAgICB0aGlzLl9ib3R0b20gPSB0aGlzLl90b3AgKyB0aGlzLl9oZWlnaHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW50ZXJzZWN0KHJlYzogQVhDbGllbnRSZWNDdG9yKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKHRoaXMubGVmdCA8IHJlYy5sZWZ0ICsgcmVjLndpZHRoICYmXHJcbiAgICAgIHRoaXMubGVmdCArIHRoaXMud2lkdGggPiByZWMubGVmdCAmJlxyXG4gICAgICB0aGlzLnRvcCA8IHJlYy50b3AgKyByZWMuaGVpZ2h0ICYmXHJcbiAgICAgIHRoaXMudG9wICsgdGhpcy5oZWlnaHQgPiByZWMudG9wKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4vLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgQVhIdG1sVXRpbCB7XHJcbiAgc3RhdGljIGdldEJvdW5kaW5nUmVjdFBvaW50KGVsOiBIVE1MRWxlbWVudCwgcGxhY2VtZW50OiBBWFBsYWNlbWVudCk6IEFYUG9pbnQge1xyXG4gICAgY29uc3QgcmVjID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCB3aWR0aCA9IGVsLm9mZnNldFdpZHRoO1xyXG4gICAgY29uc3QgaGVpZ2h0ID0gZWwub2Zmc2V0SGVpZ2h0O1xyXG4gICAgc3dpdGNoIChwbGFjZW1lbnQpIHtcclxuICAgICAgY2FzZSAndG9wLXN0YXJ0JzpcclxuICAgICAgICByZXR1cm4gbmV3IEFYUG9pbnQocmVjLmxlZnQsIHJlYy50b3ApO1xyXG4gICAgICBjYXNlICd0b3AtbWlkZGxlJzpcclxuICAgICAgICByZXR1cm4gbmV3IEFYUG9pbnQocmVjLmxlZnQgKyAod2lkdGggLyAyKSwgcmVjLnRvcCk7XHJcbiAgICAgIGNhc2UgJ3RvcC1lbmQnOlxyXG4gICAgICAgIHJldHVybiBuZXcgQVhQb2ludChyZWMubGVmdCArICh3aWR0aCksIHJlYy50b3ApO1xyXG4gICAgICBjYXNlICdjZW50ZXItZW5kJzpcclxuICAgICAgICByZXR1cm4gbmV3IEFYUG9pbnQocmVjLmxlZnQgKyAod2lkdGgpLCByZWMudG9wICsgKGhlaWdodCAvIDIpKTtcclxuICAgICAgY2FzZSAnYm90dG9tLWVuZCc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBWFBvaW50KHJlYy5sZWZ0ICsgKHdpZHRoKSwgcmVjLnRvcCArIChoZWlnaHQpKTtcclxuICAgICAgY2FzZSAnYm90dG9tLW1pZGRsZSc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBWFBvaW50KHJlYy5sZWZ0ICsgKHdpZHRoIC8gMiksIHJlYy50b3AgKyAoaGVpZ2h0KSk7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbS1zdGFydCc6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBWFBvaW50KHJlYy5sZWZ0LCByZWMudG9wICsgKGhlaWdodCkpO1xyXG4gICAgICBjYXNlICdjZW50ZXItc3RhcnQnOlxyXG4gICAgICAgIHJldHVybiBuZXcgQVhQb2ludChyZWMubGVmdCwgcmVjLnRvcCArIChoZWlnaHQgLyAyKSk7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBWFBvaW50KHJlYy5sZWZ0ICsgKHdpZHRoIC8gMiksIHJlYy50b3AgKyAoaGVpZ2h0KSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgaXNJblJlY1BvaW50KHBvczogQVhJUG9pbnQsIHJlYzogQVhDbGllbnRSZWNDdG9yKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gcG9zLnggPj0gcmVjLmxlZnQgJiYgcG9zLnggPD0gKHJlYy5sZWZ0ICsgcmVjLndpZHRoKSAmJiBwb3MueSA+PSByZWMudG9wICYmIChwb3MueSA8PSAocmVjLnRvcCArIHJlYy5oZWlnaHQpKTtcclxuICB9XHJcblxyXG4gIC8vIHN0YXRpYyBpc092ZXJMYXAocmVjMTogQVhDbGllbnRSZWNDdG9yLCByZWMyOiBBWENsaWVudFJlY0N0b3IpOiBib29sZWFuIHtcclxuICAvLyAgIGNvbnN0IHIxOiBBWENsaWVudFJlYyA9IG5ldyBBWENsaWVudFJlYyhyZWMxKTtcclxuICAvLyAgIGNvbnN0IHIyOiBBWENsaWVudFJlYyA9IG5ldyBBWENsaWVudFJlYyhyZWMyKTtcclxuXHJcbiAgLy8gICByZXR1cm4gO1xyXG4gIC8vIH1cclxuXHJcbiAgc3RhdGljIGlzSW5FbGVtZW50Qm91bmQocG9zOiBBWElQb2ludCwgZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGVsQm91bmQgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgcmV0dXJuIEFYSHRtbFV0aWwuaXNJblJlY1BvaW50KHBvcywge1xyXG4gICAgICBsZWZ0OiBlbEJvdW5kLmxlZnQsXHJcbiAgICAgIHdpZHRoOiBlbEJvdW5kLndpZHRoLFxyXG4gICAgICB0b3A6IGVsQm91bmQudG9wLFxyXG4gICAgICBoZWlnaHQ6IGVsQm91bmQuaGVpZ2h0XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXREaW1lbnNpb25zKCk6IHsgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIgfSB7XHJcbiAgICBsZXQgd2luVyA9IDYzMDtcclxuICAgIGxldCB3aW5IID0gNDYwO1xyXG4gICAgaWYgKGRvY3VtZW50LmJvZHkgJiYgZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aCkge1xyXG4gICAgICB3aW5XID0gZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aDtcclxuICAgICAgd2luSCA9IGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgaWYgKGRvY3VtZW50LmNvbXBhdE1vZGUgPT09ICdDU1MxQ29tcGF0JyAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldFdpZHRoKSB7XHJcbiAgICAgIHdpblcgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0V2lkdGg7XHJcbiAgICAgIHdpbkggPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoICYmIHdpbmRvdy5pbm5lckhlaWdodCkge1xyXG4gICAgICB3aW5XID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICAgIHdpbkggPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4geyB3aWR0aDogd2luVywgaGVpZ2h0OiB3aW5IIH07XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0T2Zmc2V0UmlnaHQoZWxlbTogSFRNTEVsZW1lbnQpOiBudW1iZXIge1xyXG4gICAgbGV0IGVsZW1lbnQgPSBlbGVtO1xyXG4gICAgY29uc3Qgd2lkdGggPSBlbGVtZW50Lm9mZnNldFdpZHRoO1xyXG4gICAgbGV0IHJpZ2h0ID0gMDtcclxuICAgIHdoaWxlIChlbGVtZW50Lm9mZnNldFBhcmVudCkge1xyXG4gICAgICByaWdodCArPSBlbGVtZW50Lm9mZnNldExlZnQ7XHJcbiAgICAgIGVsZW1lbnQgPSBlbGVtZW50Lm9mZnNldFBhcmVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgIH1cclxuICAgIHJpZ2h0ICs9IGVsZW1lbnQub2Zmc2V0TGVmdDtcclxuICAgIHJpZ2h0ID0gQVhIdG1sVXRpbC5nZXREaW1lbnNpb25zKCkud2lkdGggLSByaWdodDtcclxuICAgIHJpZ2h0IC09IHdpZHRoO1xyXG4gICAgcmV0dXJuIHJpZ2h0O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldFVJRCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICdlbC0nICsgQVhNYXRoVXRpbC5yYW5kb21SYW5nZSgxMDAwMDAwMDAwLCA5OTk5OTk5OTk5KS50b1N0cmluZygpO1xyXG4gIH1cclxuXHJcblxyXG4gIHN0YXRpYyBnZXRSZWxhdGVkUG9zaXRpb24oc291cmNlOiBIVE1MRWxlbWVudCwgcGxhY2VtZW50OiBBWFBsYWNlbWVudCwgdGFyZ2V0OiBIVE1MRWxlbWVudCwgYWxpZ25tZW50OiBBWFBsYWNlbWVudCk6IEFYSVBvaW50IHtcclxuICAgIGNvbnN0IHJlc3VsdDogQVhJUG9pbnQgPSB7IHg6IDAsIHk6IDAgfTtcclxuXHJcbiAgICBjb25zdCBzb3VyY2VQb3M6IEFYUG9pbnQgPSBBWEh0bWxVdGlsLmdldEJvdW5kaW5nUmVjdFBvaW50KHNvdXJjZSwgcGxhY2VtZW50KTtcclxuXHJcblxyXG4gICAgbGV0IHRvcDogbnVtYmVyID0gMDtcclxuICAgIGxldCBsZWZ0OiBudW1iZXIgPSAwO1xyXG4gICAgc3dpdGNoIChhbGlnbm1lbnQpIHtcclxuICAgICAgY2FzZSAndG9wLXN0YXJ0JzpcclxuICAgICAgICB0b3AgPSBzb3VyY2VQb3MueTtcclxuICAgICAgICBsZWZ0ID0gc291cmNlUG9zLng7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RvcC1taWRkbGUnOlxyXG4gICAgICAgIHRvcCA9IHNvdXJjZVBvcy55O1xyXG4gICAgICAgIGxlZnQgPSBzb3VyY2VQb3MueCAtIHRhcmdldC5vZmZzZXRXaWR0aCAvIDI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RvcC1lbmQnOlxyXG4gICAgICAgIHRvcCA9IHNvdXJjZVBvcy55O1xyXG4gICAgICAgIGxlZnQgPSBzb3VyY2VQb3MueCAtIHRhcmdldC5vZmZzZXRXaWR0aDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnY2VudGVyLWVuZCc6XHJcbiAgICAgICAgdG9wID0gc291cmNlUG9zLnkgLSB0YXJnZXQub2Zmc2V0SGVpZ2h0IC8gMjtcclxuICAgICAgICBsZWZ0ID0gc291cmNlUG9zLnggLSB0YXJnZXQub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbS1lbmQnOlxyXG4gICAgICAgIHRvcCA9IHNvdXJjZVBvcy55IC0gdGFyZ2V0Lm9mZnNldEhlaWdodDtcclxuICAgICAgICBsZWZ0ID0gc291cmNlUG9zLnggLSB0YXJnZXQub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbS1taWRkbGUnOlxyXG4gICAgICAgIHRvcCA9IHNvdXJjZVBvcy55IC0gdGFyZ2V0Lm9mZnNldEhlaWdodDtcclxuICAgICAgICBsZWZ0ID0gc291cmNlUG9zLnggLSB0YXJnZXQub2Zmc2V0V2lkdGggLyAyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20tc3RhcnQnOlxyXG4gICAgICAgIHRvcCA9IHNvdXJjZVBvcy55IC0gdGFyZ2V0Lm9mZnNldEhlaWdodDtcclxuICAgICAgICBsZWZ0ID0gc291cmNlUG9zLng7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2NlbnRlci1zdGFydCc6XHJcbiAgICAgICAgdG9wID0gc291cmNlUG9zLnkgLSB0YXJnZXQub2Zmc2V0SGVpZ2h0IC8gMjtcclxuICAgICAgICBsZWZ0ID0gc291cmNlUG9zLng7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXN1bHQueSA9IHRvcDtcclxuICAgIHJlc3VsdC54ID0gbGVmdDtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuXHJcbiAgc3RhdGljIGNvbGxpc2lvbihhOiBIVE1MRWxlbWVudCwgYjogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGFjID0gYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IGJjID0gYi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHJcbiAgICBpZiAoYWMubGVmdCA8IGJjLmxlZnQgKyBiYy53aWR0aCAmJiBhYy5sZWZ0ICsgYWMud2lkdGggPiBiYy5sZWZ0ICYmXHJcbiAgICAgIGFjLnRvcCA8IGJjLnRvcCArIGJjLmhlaWdodCAmJiBhYy50b3AgKyBhYy5oZWlnaHQgPiBiYy50b3ApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { AXHtmlToTextPipe } from '../../pipe/htmlToText.pipe';
|
|
5
|
-
let AXHtmlModule = class AXHtmlModule {
|
|
6
|
-
};
|
|
7
|
-
AXHtmlModule = __decorate([
|
|
8
|
-
NgModule({
|
|
9
|
-
declarations: [AXHtmlToTextPipe],
|
|
10
|
-
imports: [CommonModule],
|
|
11
|
-
exports: [AXHtmlToTextPipe],
|
|
12
|
-
providers: []
|
|
13
|
-
})
|
|
14
|
-
], AXHtmlModule);
|
|
15
|
-
export { AXHtmlModule };
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNvcmV4L2NvcmUvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvaHRtbC9odG1sLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFROUQsSUFBYSxZQUFZLEdBQXpCLE1BQWEsWUFBWTtDQUFJLENBQUE7QUFBaEIsWUFBWTtJQU54QixRQUFRLENBQUM7UUFDUixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7UUFDdkIsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7UUFDM0IsU0FBUyxFQUFFLEVBQUU7S0FDZCxDQUFDO0dBQ1csWUFBWSxDQUFJO1NBQWhCLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBWEh0bWxUb1RleHRQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZS9odG1sVG9UZXh0LnBpcGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtBWEh0bWxUb1RleHRQaXBlXSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICBleHBvcnRzOiBbQVhIdG1sVG9UZXh0UGlwZV0sXHJcbiAgcHJvdmlkZXJzOiBbXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhIdG1sTW9kdWxlIHsgfVxyXG4iXX0=
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export class AXMathUtil {
|
|
2
|
-
static randomRange(min, max) {
|
|
3
|
-
return Math.floor(Math.random() * (max - min + 1) + min);
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC11dGlsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9jb3JlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL21hdGgvbWF0aC11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxVQUFVO0lBQ25CLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBVyxFQUFFLEdBQVc7UUFDdkMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEFYTWF0aFV0aWwge1xyXG4gICAgc3RhdGljIHJhbmRvbVJhbmdlKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4gKyAxKSArIG1pbik7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
// @dynamic
|
|
2
|
-
export class AXObjectUtil {
|
|
3
|
-
static deepJSONClone(obj) {
|
|
4
|
-
return obj ? JSON.parse(JSON.stringify(obj)) : null;
|
|
5
|
-
}
|
|
6
|
-
static deepCopy(obj) {
|
|
7
|
-
let copy;
|
|
8
|
-
// Handle the 3 simple types, and null or undefined
|
|
9
|
-
if (null == obj || 'object' !== typeof obj) {
|
|
10
|
-
return obj;
|
|
11
|
-
}
|
|
12
|
-
// Handle Date
|
|
13
|
-
if (obj instanceof Date) {
|
|
14
|
-
copy = new Date();
|
|
15
|
-
copy.setTime(obj.getTime());
|
|
16
|
-
return copy;
|
|
17
|
-
}
|
|
18
|
-
// Handle Array
|
|
19
|
-
if (obj instanceof Array) {
|
|
20
|
-
copy = [];
|
|
21
|
-
for (let i = 0, len = obj.length; i < len; i++) {
|
|
22
|
-
copy[i] = AXObjectUtil.deepCopy(obj[i]);
|
|
23
|
-
}
|
|
24
|
-
return copy;
|
|
25
|
-
}
|
|
26
|
-
// Handle Object
|
|
27
|
-
if (obj instanceof Object) {
|
|
28
|
-
copy = {};
|
|
29
|
-
for (const attr in obj) {
|
|
30
|
-
if (obj.hasOwnProperty(attr)) {
|
|
31
|
-
copy[attr] = AXObjectUtil.deepCopy(obj[attr]);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return copy;
|
|
35
|
-
}
|
|
36
|
-
throw new Error('Unable to copy obj! Its type isn\'t supported.');
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
export function AXFetchProp(obj, prop) {
|
|
40
|
-
if (typeof obj === 'undefined') {
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
const index = prop.indexOf('.');
|
|
44
|
-
if (index > -1) {
|
|
45
|
-
return AXFetchProp(obj[prop.substring(0, index)], prop.substr(index + 1));
|
|
46
|
-
}
|
|
47
|
-
return obj[prop];
|
|
48
|
-
}
|
|
49
|
-
export function getPropByPath(obj, path, defaultVal) {
|
|
50
|
-
path = path
|
|
51
|
-
.replace(/\[/g, '.')
|
|
52
|
-
.replace(/]/g, '')
|
|
53
|
-
.split('.');
|
|
54
|
-
path.forEach((level) => {
|
|
55
|
-
if (obj) {
|
|
56
|
-
obj = obj[level];
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
if (obj === undefined) {
|
|
60
|
-
return defaultVal;
|
|
61
|
-
}
|
|
62
|
-
return obj;
|
|
63
|
-
}
|
|
64
|
-
export function setPropByPath(obj, path, value) {
|
|
65
|
-
if (Object(obj) !== obj) {
|
|
66
|
-
return obj;
|
|
67
|
-
} // When obj is not an object
|
|
68
|
-
// If not yet an array, get the keys from the string-path
|
|
69
|
-
if (!Array.isArray(path)) {
|
|
70
|
-
path = path.toString().match(/[^.[\]]+/g) || [];
|
|
71
|
-
}
|
|
72
|
-
path.slice(0, -1).reduce((a, c, i) => // Iterate all of them except the last one
|
|
73
|
-
Object(a[c]) === a[c] // Does the key exist and is its value an object?
|
|
74
|
-
// Yes: then follow that path
|
|
75
|
-
? a[c]
|
|
76
|
-
// No: create the key. Is the next key a potential array-index?
|
|
77
|
-
: a[c] = Math.abs(path[i + 1]) >> 0 === +path[i + 1]
|
|
78
|
-
? [] // Yes: assign a new array object
|
|
79
|
-
: {}, // No: assign a new plain object
|
|
80
|
-
obj)[path[path.length - 1]] = value; // Finally assign the value to the last key
|
|
81
|
-
return obj; // Return the top-level object to allow chaining
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNvcmV4L2NvcmUvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvb2JqZWN0L29iamVjdC11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFdBQVc7QUFDWCxNQUFNLE9BQU8sWUFBWTtJQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLEdBQVE7UUFDekIsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDeEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRztRQUNmLElBQUksSUFBSSxDQUFDO1FBQ1QsbURBQW1EO1FBQ25ELElBQUksSUFBSSxJQUFJLEdBQUcsSUFBSSxRQUFRLEtBQUssT0FBTyxHQUFHLEVBQUU7WUFBRSxPQUFPLEdBQUcsQ0FBQztTQUFFO1FBQzNELGNBQWM7UUFDZCxJQUFJLEdBQUcsWUFBWSxJQUFJLEVBQUU7WUFDckIsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsZUFBZTtRQUNmLElBQUksR0FBRyxZQUFZLEtBQUssRUFBRTtZQUN0QixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDNUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDM0M7WUFDRCxPQUFPLElBQUksQ0FBQztT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LENBQUMsaUNBQWlDO1lBQ3RDLENBQUMsQ0FBQyxFQUFFLEVBQUUsZ0NBQWdDO0lBQzlDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsMkNBQTJDO0lBQ3BGLE9BQU8sR0FBRyxDQUFDLENBQUMsZ0RBQWdEO0FBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgQVhPYmplY3RVdGlsIHtcclxuICAgIHN0YXRpYyBkZWVwSlNPTkNsb25lKG9iajogYW55KTogYW55IHtcclxuICAgICAgICByZXR1cm4gb2JqID8gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvYmopKSA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGRlZXBDb3B5KG9iaikge1xyXG4gICAgICAgIGxldCBjb3B5O1xyXG4gICAgICAgIC8vIEhhbmRsZSB0aGUgMyBzaW1wbGUgdHlwZXMsIGFuZCBudWxsIG9yIHVuZGVmaW5lZFxyXG4gICAgICAgIGlmIChudWxsID09IG9iaiB8fCAnb2JqZWN0JyAhPT0gdHlwZW9mIG9iaikgeyByZXR1cm4gb2JqOyB9XHJcbiAgICAgICAgLy8gSGFuZGxlIERhdGVcclxuICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICAgICAgICBjb3B5ID0gbmV3IERhdGUoKTtcclxuICAgICAgICAgICAgY29weS5zZXRUaW1lKG9iai5nZXRUaW1lKCkpO1xyXG4gICAgICAgICAgICByZXR1cm4gY29weTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gSGFuZGxlIEFycmF5XHJcbiAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgICAgIGNvcHkgPSBbXTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IG9iai5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29weVtpXSA9IEFYT2JqZWN0VXRpbC5kZWVwQ29weShvYmpbaV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBjb3B5O1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBIYW5kbGUgT2JqZWN0XHJcbiAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICAgICAgICBjb3B5ID0ge307XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgYXR0ciBpbiBvYmopIHtcclxuICAgICAgICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoYXR0cikpIHsgY29weVthdHRyXSA9IEFYT2JqZWN0VXRpbC5kZWVwQ29weShvYmpbYXR0cl0pOyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGNvcHk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIGNvcHkgb2JqISBJdHMgdHlwZSBpc25cXCd0IHN1cHBvcnRlZC4nKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIEFYRmV0Y2hQcm9wKG9iaiwgcHJvcDogc3RyaW5nKSB7XHJcbiAgICBpZiAodHlwZW9mIG9iaiA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpbmRleCA9IHByb3AuaW5kZXhPZignLicpO1xyXG5cclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgcmV0dXJuIEFYRmV0Y2hQcm9wKG9ialtwcm9wLnN1YnN0cmluZygwLCBpbmRleCldLCBwcm9wLnN1YnN0cihpbmRleCArIDEpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb2JqW3Byb3BdO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvcEJ5UGF0aChvYmosIHBhdGgsIGRlZmF1bHRWYWw/KSB7XHJcbiAgICBwYXRoID0gcGF0aFxyXG4gICAgICAgIC5yZXBsYWNlKC9cXFsvZywgJy4nKVxyXG4gICAgICAgIC5yZXBsYWNlKC9dL2csICcnKVxyXG4gICAgICAgIC5zcGxpdCgnLicpO1xyXG5cclxuICAgIHBhdGguZm9yRWFjaCgobGV2ZWwpID0+IHtcclxuICAgICAgICBpZiAob2JqKSB7XHJcbiAgICAgICAgICAgIG9iaiA9IG9ialtsZXZlbF07XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2JqO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0UHJvcEJ5UGF0aChvYmosIHBhdGgsIHZhbHVlKSB7XHJcbiAgICBpZiAoT2JqZWN0KG9iaikgIT09IG9iaikgeyByZXR1cm4gb2JqOyB9IC8vIFdoZW4gb2JqIGlzIG5vdCBhbiBvYmplY3RcclxuICAgIC8vIElmIG5vdCB5ZXQgYW4gYXJyYXksIGdldCB0aGUga2V5cyBmcm9tIHRoZSBzdHJpbmctcGF0aFxyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHBhdGgpKSB7IHBhdGggPSBwYXRoLnRvU3RyaW5nKCkubWF0Y2goL1teLltcXF1dKy9nKSB8fCBbXTsgfVxyXG4gICAgcGF0aC5zbGljZSgwLCAtMSkucmVkdWNlKChhLCBjLCBpKSA9PiAvLyBJdGVyYXRlIGFsbCBvZiB0aGVtIGV4Y2VwdCB0aGUgbGFzdCBvbmVcclxuICAgICAgICBPYmplY3QoYVtjXSkgPT09IGFbY10gLy8gRG9lcyB0aGUga2V5IGV4aXN0IGFuZCBpcyBpdHMgdmFsdWUgYW4gb2JqZWN0P1xyXG4gICAgICAgICAgICAvLyBZZXM6IHRoZW4gZm9sbG93IHRoYXQgcGF0aFxyXG4gICAgICAgICAgICA/IGFbY11cclxuICAgICAgICAgICAgLy8gTm86IGNyZWF0ZSB0aGUga2V5LiBJcyB0aGUgbmV4dCBrZXkgYSBwb3RlbnRpYWwgYXJyYXktaW5kZXg/XHJcbiAgICAgICAgICAgIDogYVtjXSA9IE1hdGguYWJzKHBhdGhbaSArIDFdKSA+PiAwID09PSArcGF0aFtpICsgMV1cclxuICAgICAgICAgICAgICAgID8gW10gLy8gWWVzOiBhc3NpZ24gYSBuZXcgYXJyYXkgb2JqZWN0XHJcbiAgICAgICAgICAgICAgICA6IHt9LCAvLyBObzogYXNzaWduIGEgbmV3IHBsYWluIG9iamVjdFxyXG4gICAgICAgIG9iailbcGF0aFtwYXRoLmxlbmd0aCAtIDFdXSA9IHZhbHVlOyAvLyBGaW5hbGx5IGFzc2lnbiB0aGUgdmFsdWUgdG8gdGhlIGxhc3Qga2V5XHJcbiAgICByZXR1cm4gb2JqOyAvLyBSZXR1cm4gdGhlIHRvcC1sZXZlbCBvYmplY3QgdG8gYWxsb3cgY2hhaW5pbmdcclxufVxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
4
|
-
import { AXHtmlUtil } from '../html/html-util';
|
|
5
|
-
let AXOnDemandPreloadService = class AXOnDemandPreloadService {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.subject = new Subject();
|
|
8
|
-
this.tmp = AXHtmlUtil.getUID();
|
|
9
|
-
}
|
|
10
|
-
startPreload(routePath) {
|
|
11
|
-
const slices = [];
|
|
12
|
-
this.subject.next(routePath);
|
|
13
|
-
//console.log('ss', this.tmp);
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
AXOnDemandPreloadService = __decorate([
|
|
17
|
-
Injectable(),
|
|
18
|
-
__metadata("design:paramtypes", [])
|
|
19
|
-
], AXOnDemandPreloadService);
|
|
20
|
-
export { AXOnDemandPreloadService };
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib24tZGVtYW5kLXByZWxvYWQtc3RyYXRlZ3kuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29yZS8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9yZW5kZXIvb24tZGVtYW5kLXByZWxvYWQtc3RyYXRlZ3kuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFrQixNQUFNLE1BQU0sQ0FBQztBQUUvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFNL0MsSUFBYSx3QkFBd0IsR0FBckMsTUFBYSx3QkFBd0I7SUFJbkM7UUFIQSxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUk5QixJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQWlCO1FBQzVCLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUc1QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3Qiw4QkFBOEI7SUFDaEMsQ0FBQztDQUNGLENBQUE7QUFmWSx3QkFBd0I7SUFEcEMsVUFBVSxFQUFFOztHQUNBLHdCQUF3QixDQWVwQztTQWZZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByZWxvYWRpbmdTdHJhdGVneSwgUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBWEh0bWxVdGlsIH0gZnJvbSAnLi4vaHRtbC9odG1sLXV0aWwnO1xyXG5cclxuXHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQVhPbkRlbWFuZFByZWxvYWRTZXJ2aWNlIHtcclxuICBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG4gIHRtcDogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMudG1wID0gQVhIdG1sVXRpbC5nZXRVSUQoKTtcclxuICB9XHJcblxyXG4gIHN0YXJ0UHJlbG9hZChyb3V0ZVBhdGg6IHN0cmluZykge1xyXG4gICAgY29uc3Qgc2xpY2VzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICBcclxuXHJcbiAgICB0aGlzLnN1YmplY3QubmV4dChyb3V0ZVBhdGgpO1xyXG4gICAgLy9jb25zb2xlLmxvZygnc3MnLCB0aGlzLnRtcCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|