@stemy/ngx-utils 10.2.44 → 10.3.3
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 +27 -27
- package/bundles/stemy-ngx-utils.umd.js +5654 -5640
- package/bundles/stemy-ngx-utils.umd.js.map +1 -1
- package/bundles/stemy-ngx-utils.umd.min.js +1 -1
- package/bundles/stemy-ngx-utils.umd.min.js.map +1 -1
- package/esm2015/ngx-utils/common-types.js +111 -111
- package/esm2015/ngx-utils/components/dynamic-table/dynamic-table.component.js +139 -139
- package/esm2015/ngx-utils/components/pagination-menu/pagination-menu.component.js +96 -96
- package/esm2015/ngx-utils/components/unordered-list/unordered-list.component.js +51 -51
- package/esm2015/ngx-utils/directives/async-method.directive.js +58 -58
- package/esm2015/ngx-utils/directives/background.directive.js +51 -51
- package/esm2015/ngx-utils/directives/dynamic-table-template.directive.js +19 -19
- package/esm2015/ngx-utils/directives/global-template.directive.js +27 -27
- package/esm2015/ngx-utils/directives/icon.directive.js +59 -59
- package/esm2015/ngx-utils/directives/ngx-template-outlet.directive.js +88 -88
- package/esm2015/ngx-utils/directives/pagination-item.directive.js +33 -33
- package/esm2015/ngx-utils/directives/pagination.directive.js +76 -71
- package/esm2015/ngx-utils/directives/resource-if.directive.js +51 -51
- package/esm2015/ngx-utils/directives/sticky-class.directive.js +35 -35
- package/esm2015/ngx-utils/directives/sticky.directive.js +48 -48
- package/esm2015/ngx-utils/directives/unordered-list-item.directive.js +70 -70
- package/esm2015/ngx-utils/directives/unordered-list-template.directive.js +26 -26
- package/esm2015/ngx-utils/ngx-utils.module.js +232 -232
- package/esm2015/ngx-utils/pipes/chunk.pipe.js +21 -21
- package/esm2015/ngx-utils/pipes/entries.pipe.js +24 -24
- package/esm2015/ngx-utils/pipes/extra-item-properties.pipe.js +27 -27
- package/esm2015/ngx-utils/pipes/filter.pipe.js +38 -38
- package/esm2015/ngx-utils/pipes/find.pipe.js +25 -25
- package/esm2015/ngx-utils/pipes/format-number.pipe.js +19 -19
- package/esm2015/ngx-utils/pipes/get-offset.pipe.js +13 -13
- package/esm2015/ngx-utils/pipes/get-type.pipe.js +12 -12
- package/esm2015/ngx-utils/pipes/global-template.pipe.js +35 -35
- package/esm2015/ngx-utils/pipes/group-by.pipe.js +23 -23
- package/esm2015/ngx-utils/pipes/is-type.pipe.js +12 -12
- package/esm2015/ngx-utils/pipes/join.pipe.js +15 -15
- package/esm2015/ngx-utils/pipes/keys.pipe.js +18 -18
- package/esm2015/ngx-utils/pipes/map.pipe.js +25 -25
- package/esm2015/ngx-utils/pipes/max.pipe.js +22 -22
- package/esm2015/ngx-utils/pipes/min.pipe.js +22 -22
- package/esm2015/ngx-utils/pipes/reduce.pipe.js +26 -26
- package/esm2015/ngx-utils/pipes/remap.pipe.js +28 -28
- package/esm2015/ngx-utils/pipes/replace.pipe.js +12 -12
- package/esm2015/ngx-utils/pipes/reverse.pipe.js +20 -20
- package/esm2015/ngx-utils/pipes/round.pipe.js +19 -19
- package/esm2015/ngx-utils/pipes/safe-html.pipe.js +32 -32
- package/esm2015/ngx-utils/pipes/translate.pipe.js +81 -81
- package/esm2015/ngx-utils/pipes/values.pipe.js +18 -18
- package/esm2015/ngx-utils/plugins/resize-event.plugin.js +59 -59
- package/esm2015/ngx-utils/plugins/scroll-event.plugin.js +52 -52
- package/esm2015/ngx-utils/services/acl.service.js +78 -78
- package/esm2015/ngx-utils/services/api.service.js +35 -35
- package/esm2015/ngx-utils/services/auth.service.js +14 -14
- package/esm2015/ngx-utils/services/base-http.client.js +46 -46
- package/esm2015/ngx-utils/services/base-http.service.js +274 -274
- package/esm2015/ngx-utils/services/config.service.js +95 -95
- package/esm2015/ngx-utils/services/error-handler.service.js +49 -49
- package/esm2015/ngx-utils/services/events.service.js +24 -24
- package/esm2015/ngx-utils/services/formatter.service.js +44 -44
- package/esm2015/ngx-utils/services/global-template.service.js +35 -35
- package/esm2015/ngx-utils/services/icon.service.js +24 -24
- package/esm2015/ngx-utils/services/language.service.js +117 -117
- package/esm2015/ngx-utils/services/open-api.service.js +41 -41
- package/esm2015/ngx-utils/services/promise.service.js +49 -49
- package/esm2015/ngx-utils/services/state.service.js +143 -143
- package/esm2015/ngx-utils/services/static-language.service.js +144 -144
- package/esm2015/ngx-utils/services/storage.service.js +48 -48
- package/esm2015/ngx-utils/services/toaster.service.js +29 -29
- package/esm2015/ngx-utils/services/translated-url.serializer.js +70 -70
- package/esm2015/ngx-utils/services/universal.service.js +73 -73
- package/esm2015/ngx-utils/utils/ajax-request-handler.js +40 -40
- package/esm2015/ngx-utils/utils/array.utils.js +100 -90
- package/esm2015/ngx-utils/utils/auth.guard.js +153 -153
- package/esm2015/ngx-utils/utils/canvas.utils.js +388 -388
- package/esm2015/ngx-utils/utils/date.utils.js +28 -28
- package/esm2015/ngx-utils/utils/file.utils.js +90 -90
- package/esm2015/ngx-utils/utils/generic-value.js +20 -20
- package/esm2015/ngx-utils/utils/geometry.js +132 -132
- package/esm2015/ngx-utils/utils/initializer.js +17 -17
- package/esm2015/ngx-utils/utils/loader.utils.js +55 -55
- package/esm2015/ngx-utils/utils/math.utils.js +15 -15
- package/esm2015/ngx-utils/utils/object.utils.js +248 -248
- package/esm2015/ngx-utils/utils/observable.utils.js +63 -63
- package/esm2015/ngx-utils/utils/reflect.utils.js +33 -33
- package/esm2015/ngx-utils/utils/set.utils.js +20 -20
- package/esm2015/ngx-utils/utils/string.utils.js +28 -28
- package/esm2015/ngx-utils/utils/timer.utils.js +52 -52
- package/esm2015/ngx-utils/utils/unique.utils.js +24 -24
- package/esm2015/ngx-utils/utils/vector.js +77 -77
- package/esm2015/public_api.js +83 -83
- package/esm2015/stemy-ngx-utils.js +7 -7
- package/fesm2015/stemy-ngx-utils.js +4552 -4537
- package/fesm2015/stemy-ngx-utils.js.map +1 -1
- package/ngx-utils/common-types.d.ts +284 -284
- package/ngx-utils/components/dynamic-table/dynamic-table.component.d.ts +43 -43
- package/ngx-utils/components/pagination-menu/pagination-menu.component.d.ts +28 -28
- package/ngx-utils/components/unordered-list/unordered-list.component.d.ts +22 -22
- package/ngx-utils/directives/async-method.directive.d.ts +16 -16
- package/ngx-utils/directives/background.directive.d.ts +14 -14
- package/ngx-utils/directives/dynamic-table-template.directive.d.ts +8 -8
- package/ngx-utils/directives/global-template.directive.d.ts +10 -10
- package/ngx-utils/directives/icon.directive.d.ts +20 -20
- package/ngx-utils/directives/ngx-template-outlet.directive.d.ts +14 -14
- package/ngx-utils/directives/pagination-item.directive.d.ts +12 -12
- package/ngx-utils/directives/pagination.directive.d.ts +22 -21
- package/ngx-utils/directives/resource-if.directive.d.ts +16 -16
- package/ngx-utils/directives/sticky-class.directive.d.ts +12 -12
- package/ngx-utils/directives/sticky.directive.d.ts +16 -16
- package/ngx-utils/directives/unordered-list-item.directive.d.ts +25 -25
- package/ngx-utils/directives/unordered-list-template.directive.d.ts +10 -10
- package/ngx-utils/ngx-utils.module.d.ts +76 -76
- package/ngx-utils/pipes/chunk.pipe.d.ts +4 -4
- package/ngx-utils/pipes/entries.pipe.d.ts +9 -9
- package/ngx-utils/pipes/extra-item-properties.pipe.d.ts +5 -5
- package/ngx-utils/pipes/filter.pipe.d.ts +5 -5
- package/ngx-utils/pipes/find.pipe.d.ts +5 -5
- package/ngx-utils/pipes/format-number.pipe.d.ts +7 -7
- package/ngx-utils/pipes/get-offset.pipe.d.ts +4 -4
- package/ngx-utils/pipes/get-type.pipe.d.ts +4 -4
- package/ngx-utils/pipes/global-template.pipe.d.ts +13 -13
- package/ngx-utils/pipes/group-by.pipe.d.ts +5 -5
- package/ngx-utils/pipes/is-type.pipe.d.ts +4 -4
- package/ngx-utils/pipes/join.pipe.d.ts +4 -4
- package/ngx-utils/pipes/keys.pipe.d.ts +4 -4
- package/ngx-utils/pipes/map.pipe.d.ts +5 -5
- package/ngx-utils/pipes/max.pipe.d.ts +4 -4
- package/ngx-utils/pipes/min.pipe.d.ts +4 -4
- package/ngx-utils/pipes/reduce.pipe.d.ts +5 -5
- package/ngx-utils/pipes/remap.pipe.d.ts +4 -4
- package/ngx-utils/pipes/replace.pipe.d.ts +4 -4
- package/ngx-utils/pipes/reverse.pipe.d.ts +4 -4
- package/ngx-utils/pipes/round.pipe.d.ts +7 -7
- package/ngx-utils/pipes/safe-html.pipe.d.ts +7 -7
- package/ngx-utils/pipes/translate.pipe.d.ts +15 -15
- package/ngx-utils/pipes/values.pipe.d.ts +4 -4
- package/ngx-utils/plugins/resize-event.plugin.d.ts +10 -10
- package/ngx-utils/plugins/scroll-event.plugin.d.ts +11 -11
- package/ngx-utils/services/acl.service.d.ts +12 -12
- package/ngx-utils/services/api.service.d.ts +14 -14
- package/ngx-utils/services/auth.service.d.ts +8 -8
- package/ngx-utils/services/base-http.client.d.ts +12 -12
- package/ngx-utils/services/base-http.service.d.ts +42 -42
- package/ngx-utils/services/config.service.d.ts +21 -21
- package/ngx-utils/services/error-handler.service.d.ts +10 -10
- package/ngx-utils/services/events.service.d.ts +11 -11
- package/ngx-utils/services/formatter.service.d.ts +12 -12
- package/ngx-utils/services/global-template.service.d.ts +16 -16
- package/ngx-utils/services/icon.service.d.ts +10 -10
- package/ngx-utils/services/language.service.d.ts +18 -18
- package/ngx-utils/services/open-api.service.d.ts +8 -8
- package/ngx-utils/services/promise.service.d.ts +15 -15
- package/ngx-utils/services/state.service.d.ts +41 -41
- package/ngx-utils/services/static-language.service.d.ts +41 -41
- package/ngx-utils/services/storage.service.d.ts +12 -12
- package/ngx-utils/services/toaster.service.d.ts +10 -10
- package/ngx-utils/services/translated-url.serializer.d.ts +16 -16
- package/ngx-utils/services/universal.service.d.ts +24 -24
- package/ngx-utils/utils/ajax-request-handler.d.ts +11 -11
- package/ngx-utils/utils/array.utils.d.ts +10 -9
- package/ngx-utils/utils/auth.guard.d.ts +26 -26
- package/ngx-utils/utils/canvas.utils.d.ts +13 -13
- package/ngx-utils/utils/date.utils.d.ts +8 -8
- package/ngx-utils/utils/file.utils.d.ts +14 -14
- package/ngx-utils/utils/generic-value.d.ts +8 -8
- package/ngx-utils/utils/geometry.d.ts +50 -50
- package/ngx-utils/utils/initializer.d.ts +11 -11
- package/ngx-utils/utils/loader.utils.d.ts +7 -7
- package/ngx-utils/utils/math.utils.d.ts +5 -5
- package/ngx-utils/utils/object.utils.d.ts +31 -31
- package/ngx-utils/utils/observable.utils.d.ts +12 -12
- package/ngx-utils/utils/reflect.utils.d.ts +9 -9
- package/ngx-utils/utils/set.utils.d.ts +4 -4
- package/ngx-utils/utils/string.utils.d.ts +7 -7
- package/ngx-utils/utils/timer.utils.d.ts +6 -6
- package/ngx-utils/utils/unique.utils.d.ts +5 -5
- package/ngx-utils/utils/vector.d.ts +23 -23
- package/package.json +1 -1
- package/public_api.d.ts +82 -82
- package/stemy-ngx-utils.d.ts +6 -6
- package/stemy-ngx-utils.metadata.json +1 -1
- package/tools/circular.js +116 -116
- package/tools/config.js +78 -78
- package/tools/icons.js +13 -13
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
import { Inject, Injectable } from "@angular/core";
|
|
2
|
-
import { DefaultUrlSerializer, UrlSegment, UrlSegmentGroup, UrlTree } from "@angular/router";
|
|
3
|
-
import { LANGUAGE_SERVICE } from "../common-types";
|
|
4
|
-
export class TranslatedUrlSerializer extends DefaultUrlSerializer {
|
|
5
|
-
constructor(language) {
|
|
6
|
-
super();
|
|
7
|
-
this.language = language;
|
|
8
|
-
this.cache = {};
|
|
9
|
-
}
|
|
10
|
-
serialize(tree) {
|
|
11
|
-
const copy = new UrlTree();
|
|
12
|
-
const dictionary = this.getDictionary(true);
|
|
13
|
-
copy.root = this.modifyTreeRecursive(tree.root, segment => {
|
|
14
|
-
segment.path = dictionary[segment.path] || segment.path;
|
|
15
|
-
});
|
|
16
|
-
copy.queryParams = tree.queryParams;
|
|
17
|
-
return super.serialize(copy);
|
|
18
|
-
}
|
|
19
|
-
parse(url) {
|
|
20
|
-
const tree = super.parse(url);
|
|
21
|
-
const dictionary = this.getDictionary(false);
|
|
22
|
-
tree.root = this.modifyTreeRecursive(tree.root, segment => {
|
|
23
|
-
segment.path = dictionary[segment.path] || segment.path;
|
|
24
|
-
});
|
|
25
|
-
return tree;
|
|
26
|
-
}
|
|
27
|
-
getDictionary(serialize) {
|
|
28
|
-
const method = serialize ? `serialize` : `parse`;
|
|
29
|
-
const key = `${this.language.currentLanguage}-${method}`;
|
|
30
|
-
if (!this.cache[key]) {
|
|
31
|
-
const dict = this.language.dictionary;
|
|
32
|
-
this.cache[key] = Object.keys(dict).reduce((res, key) => {
|
|
33
|
-
if (!key.startsWith("route."))
|
|
34
|
-
return res;
|
|
35
|
-
const value = dict[key];
|
|
36
|
-
key = key.replace("route.", "");
|
|
37
|
-
res[serialize ? key : value] = serialize ? value : key;
|
|
38
|
-
return res;
|
|
39
|
-
}, {});
|
|
40
|
-
}
|
|
41
|
-
return this.cache[key];
|
|
42
|
-
}
|
|
43
|
-
modifyTreeRecursive(segmentGroup, cb) {
|
|
44
|
-
if (!segmentGroup)
|
|
45
|
-
return null;
|
|
46
|
-
const childrenArr = [];
|
|
47
|
-
const children = Object.keys(segmentGroup.children || {}).reduce((res, key) => {
|
|
48
|
-
const child = this.modifyTreeRecursive(segmentGroup.children[key], cb);
|
|
49
|
-
childrenArr.push(child);
|
|
50
|
-
res[key] = child;
|
|
51
|
-
return res;
|
|
52
|
-
}, {});
|
|
53
|
-
const newGroup = new UrlSegmentGroup(segmentGroup.segments.map(s => {
|
|
54
|
-
s = new UrlSegment(s.path, Object.assign({}, s.parameters));
|
|
55
|
-
cb(s);
|
|
56
|
-
return s;
|
|
57
|
-
}), children);
|
|
58
|
-
childrenArr.forEach(c => {
|
|
59
|
-
c.parent = newGroup;
|
|
60
|
-
});
|
|
61
|
-
return newGroup;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
TranslatedUrlSerializer.decorators = [
|
|
65
|
-
{ type: Injectable }
|
|
66
|
-
];
|
|
67
|
-
TranslatedUrlSerializer.ctorParameters = () => [
|
|
68
|
-
{ type: undefined, decorators: [{ type: Inject, args: [LANGUAGE_SERVICE,] }] }
|
|
69
|
-
];
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Inject, Injectable } from "@angular/core";
|
|
2
|
+
import { DefaultUrlSerializer, UrlSegment, UrlSegmentGroup, UrlTree } from "@angular/router";
|
|
3
|
+
import { LANGUAGE_SERVICE } from "../common-types";
|
|
4
|
+
export class TranslatedUrlSerializer extends DefaultUrlSerializer {
|
|
5
|
+
constructor(language) {
|
|
6
|
+
super();
|
|
7
|
+
this.language = language;
|
|
8
|
+
this.cache = {};
|
|
9
|
+
}
|
|
10
|
+
serialize(tree) {
|
|
11
|
+
const copy = new UrlTree();
|
|
12
|
+
const dictionary = this.getDictionary(true);
|
|
13
|
+
copy.root = this.modifyTreeRecursive(tree.root, segment => {
|
|
14
|
+
segment.path = dictionary[segment.path] || segment.path;
|
|
15
|
+
});
|
|
16
|
+
copy.queryParams = tree.queryParams;
|
|
17
|
+
return super.serialize(copy);
|
|
18
|
+
}
|
|
19
|
+
parse(url) {
|
|
20
|
+
const tree = super.parse(url);
|
|
21
|
+
const dictionary = this.getDictionary(false);
|
|
22
|
+
tree.root = this.modifyTreeRecursive(tree.root, segment => {
|
|
23
|
+
segment.path = dictionary[segment.path] || segment.path;
|
|
24
|
+
});
|
|
25
|
+
return tree;
|
|
26
|
+
}
|
|
27
|
+
getDictionary(serialize) {
|
|
28
|
+
const method = serialize ? `serialize` : `parse`;
|
|
29
|
+
const key = `${this.language.currentLanguage}-${method}`;
|
|
30
|
+
if (!this.cache[key]) {
|
|
31
|
+
const dict = this.language.dictionary;
|
|
32
|
+
this.cache[key] = Object.keys(dict).reduce((res, key) => {
|
|
33
|
+
if (!key.startsWith("route."))
|
|
34
|
+
return res;
|
|
35
|
+
const value = dict[key];
|
|
36
|
+
key = key.replace("route.", "");
|
|
37
|
+
res[serialize ? key : value] = serialize ? value : key;
|
|
38
|
+
return res;
|
|
39
|
+
}, {});
|
|
40
|
+
}
|
|
41
|
+
return this.cache[key];
|
|
42
|
+
}
|
|
43
|
+
modifyTreeRecursive(segmentGroup, cb) {
|
|
44
|
+
if (!segmentGroup)
|
|
45
|
+
return null;
|
|
46
|
+
const childrenArr = [];
|
|
47
|
+
const children = Object.keys(segmentGroup.children || {}).reduce((res, key) => {
|
|
48
|
+
const child = this.modifyTreeRecursive(segmentGroup.children[key], cb);
|
|
49
|
+
childrenArr.push(child);
|
|
50
|
+
res[key] = child;
|
|
51
|
+
return res;
|
|
52
|
+
}, {});
|
|
53
|
+
const newGroup = new UrlSegmentGroup(segmentGroup.segments.map(s => {
|
|
54
|
+
s = new UrlSegment(s.path, Object.assign({}, s.parameters));
|
|
55
|
+
cb(s);
|
|
56
|
+
return s;
|
|
57
|
+
}), children);
|
|
58
|
+
childrenArr.forEach(c => {
|
|
59
|
+
c.parent = newGroup;
|
|
60
|
+
});
|
|
61
|
+
return newGroup;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
TranslatedUrlSerializer.decorators = [
|
|
65
|
+
{ type: Injectable }
|
|
66
|
+
];
|
|
67
|
+
TranslatedUrlSerializer.ctorParameters = () => [
|
|
68
|
+
{ type: undefined, decorators: [{ type: Inject, args: [LANGUAGE_SERVICE,] }] }
|
|
69
|
+
];
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlZC11cmwuc2VyaWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3JrL25neC11dGlscy9zcmMvIiwic291cmNlcyI6WyJuZ3gtdXRpbHMvc2VydmljZXMvdHJhbnNsYXRlZC11cmwuc2VyaWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRixPQUFPLEVBQW1CLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFPbkUsTUFBTSxPQUFPLHVCQUF3QixTQUFRLG9CQUFvQjtJQUk3RCxZQUErQyxRQUEwQjtRQUNyRSxLQUFLLEVBQUUsQ0FBQztRQURtQyxhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUVyRSxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsU0FBUyxDQUFDLElBQWE7UUFDbkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMzQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDdEQsT0FBTyxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEMsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFF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QyxDQUFDO1lBQ04sT0FBTyxDQUFDLENBQUM7UUFDYixDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNkLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDcEIsQ0FBQyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDOzs7WUEvREosVUFBVTs7OzRDQUtNLE1BQU0sU0FBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtEZWZhdWx0VXJsU2VyaWFsaXplciwgVXJsU2VnbWVudCwgVXJsU2VnbWVudEdyb3VwLCBVcmxUcmVlfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7SUxhbmd1YWdlU2VydmljZSwgTEFOR1VBR0VfU0VSVklDRX0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJVXJsRGljdGlvbmFyeSB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmdcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlZFVybFNlcmlhbGl6ZXIgZXh0ZW5kcyBEZWZhdWx0VXJsU2VyaWFsaXplciB7XHJcblxyXG4gICAgcHJvdGVjdGVkIGNhY2hlOiB7W2xhbmc6IHN0cmluZ106IElVcmxEaWN0aW9uYXJ5fTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KExBTkdVQUdFX1NFUlZJQ0UpIHJlYWRvbmx5IGxhbmd1YWdlOiBJTGFuZ3VhZ2VTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmNhY2hlID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgc2VyaWFsaXplKHRyZWU6IFVybFRyZWUpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGNvcHkgPSBuZXcgVXJsVHJlZSgpO1xyXG4gICAgICAgIGNvbnN0IGRpY3Rpb25hcnkgPSB0aGlzLmdldERpY3Rpb25hcnkodHJ1ZSk7XHJcbiAgICAgICAgY29weS5yb290ID0gdGhpcy5tb2RpZnlUcmVlUmVjdXJzaXZlKHRyZWUucm9vdCwgc2VnbWVudCA9PiB7XHJcbiAgICAgICAgICAgIHNlZ21lbnQucGF0aCA9IGRpY3Rpb25hcnlbc2VnbWVudC5wYXRoXSB8fCBzZWdtZW50LnBhdGg7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29weS5xdWVyeVBhcmFtcyA9IHRyZWUucXVlcnlQYXJhbXM7XHJcbiAgICAgICAgcmV0dXJuIHN1cGVyLnNlcmlhbGl6ZShjb3B5KTtcclxuICAgIH1cclxuXHJcbiAgICBwYXJzZSh1cmw6IHN0cmluZyk6IFVybFRyZWUge1xyXG4gICAgICAgIGNvbnN0IHRyZWUgPSBzdXBlci5wYXJzZSh1cmwpO1xyXG4gICAgICAgIGNvbnN0IGRpY3Rpb25hcnkgPSB0aGlzLmdldERpY3Rpb25hcnkoZmFsc2UpO1xyXG4gICAgICAgIHRyZWUucm9vdCA9IHRoaXMubW9kaWZ5VHJlZVJlY3Vyc2l2ZSh0cmVlLnJvb3QsIHNlZ21lbnQgPT4ge1xyXG4gICAgICAgICAgICBzZWdtZW50LnBhdGggPSBkaWN0aW9uYXJ5W3NlZ21lbnQucGF0aF0gfHwgc2VnbWVudC5wYXRoO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0cmVlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldERpY3Rpb25hcnkoc2VyaWFsaXplOiBib29sZWFuKTogSVVybERpY3Rpb25hcnkge1xyXG4gICAgICAgIGNvbnN0IG1ldGhvZCA9IHNlcmlhbGl6ZSA/IGBzZXJpYWxpemVgIDogYHBhcnNlYDtcclxuICAgICAgICBjb25zdCBrZXkgPSBgJHt0aGlzLmxhbmd1YWdlLmN1cnJlbnRMYW5ndWFnZX0tJHttZXRob2R9YDtcclxuICAgICAgICBpZiAoIXRoaXMuY2FjaGVba2V5XSkge1xyXG4gICAgICAgICAgICBjb25zdCBkaWN0ID0gdGhpcy5sYW5ndWFnZS5kaWN0aW9uYXJ5O1xyXG4gICAgICAgICAgICB0aGlzLmNhY2hlW2tleV0gPSBPYmplY3Qua2V5cyhkaWN0KS5yZWR1Y2UoKHJlcywga2V5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWtleS5zdGFydHNXaXRoKFwicm91dGUuXCIpKSByZXR1cm4gcmVzO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkaWN0W2tleV07XHJcbiAgICAgICAgICAgICAgICBrZXkgPSBrZXkucmVwbGFjZShcInJvdXRlLlwiLCBcIlwiKTtcclxuICAgICAgICAgICAgICAgIHJlc1tzZXJpYWxpemUgPyBrZXkgOiB2YWx1ZV0gPSBzZXJpYWxpemUgPyB2YWx1ZSA6IGtleTtcclxuICAgICAgICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgICAgIH0sIHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FjaGVba2V5XTtcclxuICAgIH1cclxuXHJcbiAgICBtb2RpZnlUcmVlUmVjdXJzaXZlKHNlZ21lbnRHcm91cDogVXJsU2VnbWVudEdyb3VwLCBjYjogKHNlZ21lbnQ6IFVybFNlZ21lbnQpID0+IHZvaWQpOiBVcmxTZWdtZW50R3JvdXAge1xyXG4gICAgICAgIGlmICghc2VnbWVudEdyb3VwKSByZXR1cm4gbnVsbDtcclxuICAgICAgICBjb25zdCBjaGlsZHJlbkFyciA9IFtdO1xyXG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gT2JqZWN0LmtleXMoc2VnbWVudEdyb3VwLmNoaWxkcmVuIHx8IHt9KS5yZWR1Y2UoKHJlcywga2V5KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkID0gdGhpcy5tb2RpZnlUcmVlUmVjdXJzaXZlKHNlZ21lbnRHcm91cC5jaGlsZHJlbltrZXldLCBjYik7XHJcbiAgICAgICAgICAgIGNoaWxkcmVuQXJyLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICByZXNba2V5XSA9IGNoaWxkO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgIH0sIHt9KTtcclxuICAgICAgICBjb25zdCBuZXdHcm91cCA9IG5ldyBVcmxTZWdtZW50R3JvdXAoc2VnbWVudEdyb3VwLnNlZ21lbnRzLm1hcChzID0+IHtcclxuICAgICAgICAgICAgcyA9IG5ldyBVcmxTZWdtZW50KHMucGF0aCwgT2JqZWN0LmFzc2lnbih7fSwgcy5wYXJhbWV0ZXJzKSk7XHJcbiAgICAgICAgICAgIGNiKHMpO1xyXG4gICAgICAgICAgICByZXR1cm4gcztcclxuICAgICAgICB9KSwgY2hpbGRyZW4pO1xyXG4gICAgICAgIGNoaWxkcmVuQXJyLmZvckVhY2goYyA9PiB7XHJcbiAgICAgICAgICAgIGMucGFyZW50ID0gbmV3R3JvdXA7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIG5ld0dyb3VwO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
import { Inject, Injectable, PLATFORM_ID } from "@angular/core";
|
|
2
|
-
import { isPlatformBrowser, isPlatformServer } from "@angular/common";
|
|
3
|
-
import { DeviceDetectorService } from "ngx-device-detector";
|
|
4
|
-
/**
|
|
5
|
-
* Use this service to determine which is the current environment
|
|
6
|
-
*/
|
|
7
|
-
export class UniversalService {
|
|
8
|
-
constructor(platformId, dds) {
|
|
9
|
-
this.platformId = platformId;
|
|
10
|
-
this.dds = dds;
|
|
11
|
-
const info = this.dds.getDeviceInfo();
|
|
12
|
-
this.crawler = /(bot|google|baidu|bing|msn|duckduckbot|teoma|slurp|yandex|lighthouse|angular-universal|PTST)/gi.test(info.userAgent);
|
|
13
|
-
}
|
|
14
|
-
get isBrowser() {
|
|
15
|
-
return isPlatformBrowser(this.platformId);
|
|
16
|
-
}
|
|
17
|
-
get isServer() {
|
|
18
|
-
return isPlatformServer(this.platformId);
|
|
19
|
-
}
|
|
20
|
-
get deviceInfo() {
|
|
21
|
-
return this.isServer
|
|
22
|
-
? {
|
|
23
|
-
userAgent: "angular-universal",
|
|
24
|
-
os: "unknown",
|
|
25
|
-
browser: "node",
|
|
26
|
-
device: "node",
|
|
27
|
-
os_version: "unknown",
|
|
28
|
-
browser_version: "unknown"
|
|
29
|
-
}
|
|
30
|
-
: this.dds.getDeviceInfo();
|
|
31
|
-
}
|
|
32
|
-
get browserName() {
|
|
33
|
-
return this.dds.browser;
|
|
34
|
-
}
|
|
35
|
-
get browserVersion() {
|
|
36
|
-
return this.dds.browser_version;
|
|
37
|
-
}
|
|
38
|
-
get isExplorer() {
|
|
39
|
-
return this.dds.browser == "ie";
|
|
40
|
-
}
|
|
41
|
-
get isEdge() {
|
|
42
|
-
return this.dds.browser == "ms-edge";
|
|
43
|
-
}
|
|
44
|
-
get isChrome() {
|
|
45
|
-
return this.dds.browser == "chrome";
|
|
46
|
-
}
|
|
47
|
-
get isFirefox() {
|
|
48
|
-
return this.dds.browser == "firefox";
|
|
49
|
-
}
|
|
50
|
-
get isSafari() {
|
|
51
|
-
return this.dds.browser == "safari";
|
|
52
|
-
}
|
|
53
|
-
get isTablet() {
|
|
54
|
-
return this.dds.isTablet();
|
|
55
|
-
}
|
|
56
|
-
get isMobile() {
|
|
57
|
-
return this.dds.isMobile();
|
|
58
|
-
}
|
|
59
|
-
get isDesktop() {
|
|
60
|
-
return this.dds.isDesktop();
|
|
61
|
-
}
|
|
62
|
-
get isCrawler() {
|
|
63
|
-
return this.crawler;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
UniversalService.decorators = [
|
|
67
|
-
{ type: Injectable }
|
|
68
|
-
];
|
|
69
|
-
UniversalService.ctorParameters = () => [
|
|
70
|
-
{ type: String, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },
|
|
71
|
-
{ type: DeviceDetectorService }
|
|
72
|
-
];
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Inject, Injectable, PLATFORM_ID } from "@angular/core";
|
|
2
|
+
import { isPlatformBrowser, isPlatformServer } from "@angular/common";
|
|
3
|
+
import { DeviceDetectorService } from "ngx-device-detector";
|
|
4
|
+
/**
|
|
5
|
+
* Use this service to determine which is the current environment
|
|
6
|
+
*/
|
|
7
|
+
export class UniversalService {
|
|
8
|
+
constructor(platformId, dds) {
|
|
9
|
+
this.platformId = platformId;
|
|
10
|
+
this.dds = dds;
|
|
11
|
+
const info = this.dds.getDeviceInfo();
|
|
12
|
+
this.crawler = /(bot|google|baidu|bing|msn|duckduckbot|teoma|slurp|yandex|lighthouse|angular-universal|PTST)/gi.test(info.userAgent);
|
|
13
|
+
}
|
|
14
|
+
get isBrowser() {
|
|
15
|
+
return isPlatformBrowser(this.platformId);
|
|
16
|
+
}
|
|
17
|
+
get isServer() {
|
|
18
|
+
return isPlatformServer(this.platformId);
|
|
19
|
+
}
|
|
20
|
+
get deviceInfo() {
|
|
21
|
+
return this.isServer
|
|
22
|
+
? {
|
|
23
|
+
userAgent: "angular-universal",
|
|
24
|
+
os: "unknown",
|
|
25
|
+
browser: "node",
|
|
26
|
+
device: "node",
|
|
27
|
+
os_version: "unknown",
|
|
28
|
+
browser_version: "unknown"
|
|
29
|
+
}
|
|
30
|
+
: this.dds.getDeviceInfo();
|
|
31
|
+
}
|
|
32
|
+
get browserName() {
|
|
33
|
+
return this.dds.browser;
|
|
34
|
+
}
|
|
35
|
+
get browserVersion() {
|
|
36
|
+
return this.dds.browser_version;
|
|
37
|
+
}
|
|
38
|
+
get isExplorer() {
|
|
39
|
+
return this.dds.browser == "ie";
|
|
40
|
+
}
|
|
41
|
+
get isEdge() {
|
|
42
|
+
return this.dds.browser == "ms-edge";
|
|
43
|
+
}
|
|
44
|
+
get isChrome() {
|
|
45
|
+
return this.dds.browser == "chrome";
|
|
46
|
+
}
|
|
47
|
+
get isFirefox() {
|
|
48
|
+
return this.dds.browser == "firefox";
|
|
49
|
+
}
|
|
50
|
+
get isSafari() {
|
|
51
|
+
return this.dds.browser == "safari";
|
|
52
|
+
}
|
|
53
|
+
get isTablet() {
|
|
54
|
+
return this.dds.isTablet();
|
|
55
|
+
}
|
|
56
|
+
get isMobile() {
|
|
57
|
+
return this.dds.isMobile();
|
|
58
|
+
}
|
|
59
|
+
get isDesktop() {
|
|
60
|
+
return this.dds.isDesktop();
|
|
61
|
+
}
|
|
62
|
+
get isCrawler() {
|
|
63
|
+
return this.crawler;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
UniversalService.decorators = [
|
|
67
|
+
{ type: Injectable }
|
|
68
|
+
];
|
|
69
|
+
UniversalService.ctorParameters = () => [
|
|
70
|
+
{ type: String, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },
|
|
71
|
+
{ type: DeviceDetectorService }
|
|
72
|
+
];
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdmVyc2FsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiRDovV29yay9uZ3gtdXRpbHMvc3JjLyIsInNvdXJjZXMiOlsibmd4LXV0aWxzL3NlcnZpY2VzL3VuaXZlcnNhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRSxPQUFPLEVBQUMscUJBQXFCLEVBQWEsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RTs7R0FFRztBQUVILE1BQU0sT0FBTyxnQkFBZ0I7SUFxRXpCLFlBQXlDLFVBQWtCLEVBQVUsR0FBMEI7UUFBdEQsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQXVCO1FBQzNGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxnR0FBZ0csQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pJLENBQUM7SUF0RUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRO1lBQ2hCLENBQUMsQ0FBQztnQkFDRSxTQUFTLEVBQUUsbUJBQW1CO2dCQUM5QixFQUFFLEVBQUUsU0FBUztnQkFDYixPQUFPLEVBQUUsTUFBTTtnQkFDZixNQUFNLEVBQUUsTUFBTTtnQkFDZCxVQUFVLEVBQUUsU0FBUztnQkFDckIsZUFBZSxFQUFFLFNBQVM7YUFDN0I7WUFDRCxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksU0FBUyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQzs7O1lBbEVKLFVBQVU7Ozt5Q0FzRU0sTUFBTSxTQUFDLFdBQVc7WUEzRTNCLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtpc1BsYXRmb3JtQnJvd3NlciwgaXNQbGF0Zm9ybVNlcnZlcn0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge0RldmljZURldGVjdG9yU2VydmljZSwgRGV2aWNlSW5mb30gZnJvbSBcIm5neC1kZXZpY2UtZGV0ZWN0b3JcIjtcclxuXHJcbi8qKlxyXG4gKiBVc2UgdGhpcyBzZXJ2aWNlIHRvIGRldGVybWluZSB3aGljaCBpcyB0aGUgY3VycmVudCBlbnZpcm9ubWVudFxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVW5pdmVyc2FsU2VydmljZSB7XHJcblxyXG4gICAgZ2V0IGlzQnJvd3NlcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNTZXJ2ZXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGlzUGxhdGZvcm1TZXJ2ZXIodGhpcy5wbGF0Zm9ybUlkKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGV2aWNlSW5mbygpOiBEZXZpY2VJbmZvIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1NlcnZlclxyXG4gICAgICAgICAgICA/IHtcclxuICAgICAgICAgICAgICAgIHVzZXJBZ2VudDogXCJhbmd1bGFyLXVuaXZlcnNhbFwiLFxyXG4gICAgICAgICAgICAgICAgb3M6IFwidW5rbm93blwiLFxyXG4gICAgICAgICAgICAgICAgYnJvd3NlcjogXCJub2RlXCIsXHJcbiAgICAgICAgICAgICAgICBkZXZpY2U6IFwibm9kZVwiLFxyXG4gICAgICAgICAgICAgICAgb3NfdmVyc2lvbjogXCJ1bmtub3duXCIsXHJcbiAgICAgICAgICAgICAgICBicm93c2VyX3ZlcnNpb246IFwidW5rbm93blwiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgOiB0aGlzLmRkcy5nZXREZXZpY2VJbmZvKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGJyb3dzZXJOYW1lKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGRzLmJyb3dzZXI7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGJyb3dzZXJWZXJzaW9uKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGRzLmJyb3dzZXJfdmVyc2lvbjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNFeHBsb3JlcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZHMuYnJvd3NlciA9PSBcImllXCI7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzRWRnZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZHMuYnJvd3NlciA9PSBcIm1zLWVkZ2VcIjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNDaHJvbWUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGRzLmJyb3dzZXIgPT0gXCJjaHJvbWVcIjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNGaXJlZm94KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRkcy5icm93c2VyID09IFwiZmlyZWZveFwiO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc1NhZmFyaSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZHMuYnJvd3NlciA9PSBcInNhZmFyaVwiO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc1RhYmxldCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZHMuaXNUYWJsZXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNNb2JpbGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGRzLmlzTW9iaWxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzRGVza3RvcCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZHMuaXNEZXNrdG9wKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzQ3Jhd2xlcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmF3bGVyO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3Jhd2xlcjogYm9vbGVhbjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IHN0cmluZywgcHJpdmF0ZSBkZHM6IERldmljZURldGVjdG9yU2VydmljZSkge1xyXG4gICAgICAgIGNvbnN0IGluZm8gPSB0aGlzLmRkcy5nZXREZXZpY2VJbmZvKCk7XHJcbiAgICAgICAgdGhpcy5jcmF3bGVyID0gLyhib3R8Z29vZ2xlfGJhaWR1fGJpbmd8bXNufGR1Y2tkdWNrYm90fHRlb21hfHNsdXJwfHlhbmRleHxsaWdodGhvdXNlfGFuZ3VsYXItdW5pdmVyc2FsfFBUU1QpL2dpLnRlc3QoaW5mby51c2VyQWdlbnQpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
export class AjaxRequestHandler {
|
|
2
|
-
constructor(pattern, callback) {
|
|
3
|
-
this.pattern = pattern;
|
|
4
|
-
this.callback = callback;
|
|
5
|
-
this.listener = (event) => {
|
|
6
|
-
const details = event.detail;
|
|
7
|
-
if (this.pattern.test(details.url))
|
|
8
|
-
this.callback(details, this.params);
|
|
9
|
-
};
|
|
10
|
-
this.params = {};
|
|
11
|
-
if (typeof XMLHttpRequest !== "undefined" && !AjaxRequestHandler.isOverridden) {
|
|
12
|
-
AjaxRequestHandler.isOverridden = true;
|
|
13
|
-
const originalOpen = XMLHttpRequest.prototype.open;
|
|
14
|
-
XMLHttpRequest.prototype.open = function (method, url, async, user, password) {
|
|
15
|
-
originalOpen.apply(this, arguments);
|
|
16
|
-
window.dispatchEvent(new CustomEvent("ajaxRequest", {
|
|
17
|
-
detail: {
|
|
18
|
-
request: this,
|
|
19
|
-
method: method,
|
|
20
|
-
url: url
|
|
21
|
-
}
|
|
22
|
-
}));
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
listen() {
|
|
27
|
-
if (typeof window === "undefined")
|
|
28
|
-
return this;
|
|
29
|
-
window.addEventListener("ajaxRequest", this.listener);
|
|
30
|
-
return this;
|
|
31
|
-
}
|
|
32
|
-
forget() {
|
|
33
|
-
if (typeof window === "undefined")
|
|
34
|
-
return;
|
|
35
|
-
window.removeEventListener("ajaxRequest", this.listener);
|
|
36
|
-
return this;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
AjaxRequestHandler.isOverridden = false;
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export class AjaxRequestHandler {
|
|
2
|
+
constructor(pattern, callback) {
|
|
3
|
+
this.pattern = pattern;
|
|
4
|
+
this.callback = callback;
|
|
5
|
+
this.listener = (event) => {
|
|
6
|
+
const details = event.detail;
|
|
7
|
+
if (this.pattern.test(details.url))
|
|
8
|
+
this.callback(details, this.params);
|
|
9
|
+
};
|
|
10
|
+
this.params = {};
|
|
11
|
+
if (typeof XMLHttpRequest !== "undefined" && !AjaxRequestHandler.isOverridden) {
|
|
12
|
+
AjaxRequestHandler.isOverridden = true;
|
|
13
|
+
const originalOpen = XMLHttpRequest.prototype.open;
|
|
14
|
+
XMLHttpRequest.prototype.open = function (method, url, async, user, password) {
|
|
15
|
+
originalOpen.apply(this, arguments);
|
|
16
|
+
window.dispatchEvent(new CustomEvent("ajaxRequest", {
|
|
17
|
+
detail: {
|
|
18
|
+
request: this,
|
|
19
|
+
method: method,
|
|
20
|
+
url: url
|
|
21
|
+
}
|
|
22
|
+
}));
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
listen() {
|
|
27
|
+
if (typeof window === "undefined")
|
|
28
|
+
return this;
|
|
29
|
+
window.addEventListener("ajaxRequest", this.listener);
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
32
|
+
forget() {
|
|
33
|
+
if (typeof window === "undefined")
|
|
34
|
+
return;
|
|
35
|
+
window.removeEventListener("ajaxRequest", this.listener);
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
AjaxRequestHandler.isOverridden = false;
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWpheC1yZXF1ZXN0LWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiRDovV29yay9uZ3gtdXRpbHMvc3JjLyIsInNvdXJjZXMiOlsibmd4LXV0aWxzL3V0aWxzL2FqYXgtcmVxdWVzdC1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxrQkFBa0I7SUFNM0IsWUFBb0IsT0FBZSxFQUFVLFFBQTZCO1FBQXRELFlBQU8sR0FBUCxPQUFPLENBQVE7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFxQjtRQThCbEUsYUFBUSxHQUFHLENBQUMsS0FBa0IsRUFBUSxFQUFFO1lBQzVDLE1BQU0sT0FBTyxHQUF3QixLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2xELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUUsQ0FBQyxDQUFDO1FBaENFLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksT0FBTyxjQUFjLEtBQUssV0FBVyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFO1lBQzNFLGtCQUFrQixDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDdkMsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDbkQsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsVUFBVSxNQUFjLEVBQUUsR0FBWSxFQUFFLEtBQWUsRUFBRSxJQUFhLEVBQUUsUUFBaUI7Z0JBQ3JILFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNwQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksV0FBVyxDQUFDLGFBQWEsRUFBRTtvQkFDaEQsTUFBTSxFQUFFO3dCQUNKLE9BQU8sRUFBRSxJQUFJO3dCQUNiLE1BQU0sRUFBRSxNQUFNO3dCQUNkLEdBQUcsRUFBRSxHQUFHO3FCQUNYO2lCQUNKLENBQUMsQ0FBQyxDQUFBO1lBQ1AsQ0FBQyxDQUFDO1NBQ0w7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQy9DLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXO1lBQUUsT0FBTztRQUMxQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOztBQWhDYywrQkFBWSxHQUFZLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWpheFJlcXVlc3RDYWxsYmFjaywgSUFqYXhSZXF1ZXN0RGV0YWlsc30gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFqYXhSZXF1ZXN0SGFuZGxlciB7XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgaXNPdmVycmlkZGVuOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHVibGljIHBhcmFtczogYW55O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcGF0dGVybjogUmVnRXhwLCBwcml2YXRlIGNhbGxiYWNrOiBBamF4UmVxdWVzdENhbGxiYWNrKSB7XHJcbiAgICAgICAgdGhpcy5wYXJhbXMgPSB7fTtcclxuICAgICAgICBpZiAodHlwZW9mIFhNTEh0dHBSZXF1ZXN0ICE9PSBcInVuZGVmaW5lZFwiICYmICFBamF4UmVxdWVzdEhhbmRsZXIuaXNPdmVycmlkZGVuKSB7XHJcbiAgICAgICAgICAgIEFqYXhSZXF1ZXN0SGFuZGxlci5pc092ZXJyaWRkZW4gPSB0cnVlO1xyXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbE9wZW4gPSBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUub3BlbjtcclxuICAgICAgICAgICAgWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLm9wZW4gPSBmdW5jdGlvbiAobWV0aG9kOiBzdHJpbmcsIHVybD86IHN0cmluZywgYXN5bmM/OiBib29sZWFuLCB1c2VyPzogc3RyaW5nLCBwYXNzd29yZD86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxPcGVuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XHJcbiAgICAgICAgICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoXCJhamF4UmVxdWVzdFwiLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q6IHRoaXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogbWV0aG9kLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IHVybFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pKVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsaXN0ZW4oKTogQWpheFJlcXVlc3RIYW5kbGVyIHtcclxuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJhamF4UmVxdWVzdFwiLCB0aGlzLmxpc3RlbmVyKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBmb3JnZXQoKTogQWpheFJlcXVlc3RIYW5kbGVyIHtcclxuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuO1xyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiYWpheFJlcXVlc3RcIiwgdGhpcy5saXN0ZW5lcik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBsaXN0ZW5lciA9IChldmVudDogQ3VzdG9tRXZlbnQpOiB2b2lkID0+IHtcclxuICAgICAgICBjb25zdCBkZXRhaWxzOiBJQWpheFJlcXVlc3REZXRhaWxzID0gZXZlbnQuZGV0YWlsO1xyXG4gICAgICAgIGlmICh0aGlzLnBhdHRlcm4udGVzdChkZXRhaWxzLnVybCkpIHRoaXMuY2FsbGJhY2soZGV0YWlscywgdGhpcy5wYXJhbXMpO1xyXG4gICAgfTtcclxufVxyXG4iXX0=
|