@ts-core/angular 11.0.85 → 11.0.89

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.
@@ -0,0 +1,98 @@
1
+ import { __awaiter } from "tslib";
2
+ import { TransportLocal } from '@ts-core/common/transport/local';
3
+ import * as _ from 'lodash';
4
+ import { TransportLazyModuleLoadedEvent } from './TransportLazyModuleLoadedEvent';
5
+ export class TransportLazy extends TransportLocal {
6
+ // --------------------------------------------------------------------------
7
+ //
8
+ // Constructor
9
+ //
10
+ // --------------------------------------------------------------------------
11
+ constructor(logger, loader, settings) {
12
+ super(logger, settings, null);
13
+ this.loader = loader;
14
+ this.getDispatcher(TransportLazyModuleLoadedEvent.NAME).subscribe(event => this.moduleLoadedHandler(event.data));
15
+ }
16
+ // --------------------------------------------------------------------------
17
+ //
18
+ // Event Handlers
19
+ //
20
+ // --------------------------------------------------------------------------
21
+ moduleLoadedHandler(module) {
22
+ let item = this.loader.modules.get(module.id);
23
+ if (_.isNil(item)) {
24
+ item = this.loader.modules.add(module);
25
+ }
26
+ if (_.isNil(item.reference)) {
27
+ item.reference = module.reference;
28
+ }
29
+ }
30
+ // --------------------------------------------------------------------------
31
+ //
32
+ // Protected Methods
33
+ //
34
+ // --------------------------------------------------------------------------
35
+ dispatchCommand(command, options, isNeedReply) {
36
+ const _super = Object.create(null, {
37
+ dispatchCommand: { get: () => super.dispatchCommand }
38
+ });
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ let item = this.getModuleByCommand(command.name);
41
+ console.log(command.name, item);
42
+ if (!_.isNil(item)) {
43
+ yield this.loader.loadIfNeed(item.id);
44
+ }
45
+ _super.dispatchCommand.call(this, command, options, isNeedReply);
46
+ });
47
+ }
48
+ getModuleByCommand(name) {
49
+ if (this.loader.modules.length === 0) {
50
+ return null;
51
+ }
52
+ for (let item of this.loader.modules.collection) {
53
+ if (_.isEmpty(item.commands)) {
54
+ continue;
55
+ }
56
+ if (_.includes(item.commands, name)) {
57
+ return item;
58
+ }
59
+ }
60
+ return null;
61
+ }
62
+ getModuleByEvent(name) {
63
+ if (_.isNil(this.loader) || this.loader.modules.length === 0) {
64
+ return null;
65
+ }
66
+ for (let item of this.loader.modules.collection) {
67
+ if (_.isEmpty(item.events)) {
68
+ continue;
69
+ }
70
+ if (_.includes(item.events, name)) {
71
+ return item;
72
+ }
73
+ }
74
+ return null;
75
+ }
76
+ // --------------------------------------------------------------------------
77
+ //
78
+ // Public Methods
79
+ //
80
+ // --------------------------------------------------------------------------
81
+ dispatch(event) {
82
+ let item = this.getModuleByEvent(event.name);
83
+ if (!_.isNil(this.loader) && !_.isNil(item)) {
84
+ this.loader.loadIfNeed(item.id).then(() => super.dispatch(event));
85
+ }
86
+ else {
87
+ super.dispatch(event);
88
+ }
89
+ }
90
+ destroy() {
91
+ if (this.isDestroyed) {
92
+ return;
93
+ }
94
+ super.destroy();
95
+ this.loader = null;
96
+ }
97
+ }
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNwb3J0TGF6eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc3BvcnQvVHJhbnNwb3J0TGF6eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBSTVCLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRWxGLE1BQU0sT0FBTyxhQUFjLFNBQVEsY0FBYztJQUM3Qyw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGVBQWU7SUFDZixFQUFFO0lBQ0YsNkVBQTZFO0lBQzdFLFlBQVksTUFBZSxFQUFZLE1BQWtELEVBQUUsUUFBNkI7UUFDcEgsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFESyxXQUFNLEdBQU4sTUFBTSxDQUE0QztRQUdyRixJQUFJLENBQUMsYUFBYSxDQUEyRCw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDaEksSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FDdkMsQ0FBQztJQUNOLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGtCQUFrQjtJQUNsQixFQUFFO0lBQ0YsNkVBQTZFO0lBRW5FLG1CQUFtQixDQUFDLE1BQWdDO1FBQzFELElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2YsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQztRQUNE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Q0FBQyxXQUFXLEVBQUU7WUFDbEIsT0FBTztTQUNWO1FBQ0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElUcmFuc3BvcnRDb21tYW5kLCBJVHJhbnNwb3J0Q29tbWFuZE9wdGlvbnMsIElUcmFuc3BvcnRFdmVudCwgSVRyYW5zcG9ydFNldHRpbmdzIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uL3RyYW5zcG9ydCc7XG5pbXBvcnQgeyBUcmFuc3BvcnRMb2NhbCB9IGZyb20gJ0B0cy1jb3JlL2NvbW1vbi90cmFuc3BvcnQvbG9jYWwnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgTGF6eU1vZHVsZUxvYWRlciB9IGZyb20gJy4uL21vZHVsZS9MYXp5TW9kdWxlTG9hZGVyJztcbmltcG9ydCB7IElMb2dnZXIgfSBmcm9tICdAdHMtY29yZS9jb21tb24vbG9nZ2VyJztcbmltcG9ydCB7IElUcmFuc3BvcnRMYXp5TW9kdWxlRGF0YSB9IGZyb20gJy4vVHJhbnNwb3J0TGF6eU1vZHVsZSc7XG5pbXBvcnQgeyBUcmFuc3BvcnRMYXp5TW9kdWxlTG9hZGVkRXZlbnQgfSBmcm9tICcuL1RyYW5zcG9ydExhenlNb2R1bGVMb2FkZWRFdmVudCc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc3BvcnRMYXp5IGV4dGVuZHMgVHJhbnNwb3J0TG9jYWwge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgQ29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgY29uc3RydWN0b3IobG9nZ2VyOiBJTG9nZ2VyLCBwcm90ZWN0ZWQgbG9hZGVyOiBMYXp5TW9kdWxlTG9hZGVyPElUcmFuc3BvcnRMYXp5TW9kdWxlRGF0YT4sIHNldHRpbmdzPzogSVRyYW5zcG9ydFNldHRpbmdzKSB7XG4gICAgICAgIHN1cGVyKGxvZ2dlciwgc2V0dGluZ3MsIG51bGwpO1xuXG4gICAgICAgIHRoaXMuZ2V0RGlzcGF0Y2hlcjxUcmFuc3BvcnRMYXp5TW9kdWxlTG9hZGVkRXZlbnQ8SVRyYW5zcG9ydExhenlNb2R1bGVEYXRhPj4oVHJhbnNwb3J0TGF6eU1vZHVsZUxvYWRlZEV2ZW50Lk5BTUUpLnN1YnNjcmliZShldmVudCA9PlxuICAgICAgICAgICAgdGhpcy5tb2R1bGVMb2FkZWRIYW5kbGVyKGV2ZW50LmRhdGEpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBFdmVudCBIYW5kbGVyc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBtb2R1bGVMb2FkZWRIYW5kbGVyKG1vZHVsZTogSVRyYW5zcG9ydExhenlNb2R1bGVEYXRhKTogdm9pZCB7XG4gICAgICAgIGxldCBpdGVtID0gdGhpcy5sb2FkZXIubW9kdWxlcy5nZXQobW9kdWxlLmlkKTtcbiAgICAgICAgaWYgKF8uaXNOaWwoaXRlbSkpIHtcbiAgICAgICAgICAgIGl0ZW0gPSB0aGlzLmxvYWRlci5tb2R1bGVzLmFkZChtb2R1bGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChfLmlzTmlsKGl0ZW0ucmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgaXRlbS5yZWZlcmVuY2UgPSBtb2R1bGUucmVmZXJlbmNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQcm90ZWN0ZWQgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCBhc3luYyBkaXNwYXRjaENvbW1hbmQ8VT4oY29tbWFuZDogSVRyYW5zcG9ydENvbW1hbmQ8VT4sIG9wdGlvbnM6IElUcmFuc3BvcnRDb21tYW5kT3B0aW9ucywgaXNOZWVkUmVwbHk6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgbGV0IGl0ZW0gPSB0aGlzLmdldE1vZHVsZUJ5Q29tbWFuZChjb21tYW5kLm5hbWUpO1xuICAgICAgICBjb25zb2xlLmxvZyhjb21tYW5kLm5hbWUsIGl0ZW0pO1xuICAgICAgICBpZiAoIV8uaXNOaWwoaXRlbSkpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZGVyLmxvYWRJZk5lZWQoaXRlbS5pZCk7XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIuZGlzcGF0Y2hDb21tYW5kKGNvbW1hbmQsIG9wdGlvbnMsIGlzTmVlZFJlcGx5KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0TW9kdWxlQnlDb21tYW5kKG5hbWU6IHN0cmluZyk6IElUcmFuc3BvcnRMYXp5TW9kdWxlRGF0YSB7XG4gICAgICAgIGlmICh0aGlzLmxvYWRlci5tb2R1bGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaXRlbSBvZiB0aGlzLmxvYWRlci5tb2R1bGVzLmNvbGxlY3Rpb24pIHtcbiAgICAgICAgICAgIGlmIChfLmlzRW1wdHkoaXRlbS5jb21tYW5kcykpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChfLmluY2x1ZGVzKGl0ZW0uY29tbWFuZHMsIG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldE1vZHVsZUJ5RXZlbnQobmFtZTogc3RyaW5nKTogSVRyYW5zcG9ydExhenlNb2R1bGVEYXRhIHtcbiAgICAgICAgaWYgKF8uaXNOaWwodGhpcy5sb2FkZXIpIHx8IHRoaXMubG9hZGVyLm1vZHVsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMubG9hZGVyLm1vZHVsZXMuY29sbGVjdGlvbikge1xuICAgICAgICAgICAgaWYgKF8uaXNFbXB0eShpdGVtLmV2ZW50cykpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChfLmluY2x1ZGVzKGl0ZW0uZXZlbnRzLCBuYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHVibGljIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgZGlzcGF0Y2g8VD4oZXZlbnQ6IElUcmFuc3BvcnRFdmVudDxUPik6IHZvaWQge1xuICAgICAgICBsZXQgaXRlbSA9IHRoaXMuZ2V0TW9kdWxlQnlFdmVudChldmVudC5uYW1lKTtcbiAgICAgICAgaWYgKCFfLmlzTmlsKHRoaXMubG9hZGVyKSAmJiAhXy5pc05pbChpdGVtKSkge1xuICAgICAgICAgICAgdGhpcy5sb2FkZXIubG9hZElmTmVlZChpdGVtLmlkKS50aGVuKCgpID0+IHN1cGVyLmRpc3BhdGNoKGV2ZW50KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5kaXNwYXRjaChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMubG9hZGVyID0gbnVsbDtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,28 @@
1
+ import { TransportLazyModuleLoadedEvent } from './TransportLazyModuleLoadedEvent';
2
+ export class TransportLazyModule {
3
+ //--------------------------------------------------------------------------
4
+ //
5
+ // Constructor
6
+ //
7
+ //--------------------------------------------------------------------------
8
+ constructor(reference, transport) {
9
+ this.reference = reference;
10
+ this.transport = transport;
11
+ this.moduleLoadedDispatch();
12
+ }
13
+ //--------------------------------------------------------------------------
14
+ //
15
+ // Protected Methods
16
+ //
17
+ //--------------------------------------------------------------------------
18
+ moduleLoadedDispatch() {
19
+ this.transport.dispatch(new TransportLazyModuleLoadedEvent(this));
20
+ }
21
+ get events() {
22
+ return new Array();
23
+ }
24
+ get commands() {
25
+ return new Array();
26
+ }
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNwb3J0TGF6eU1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc3BvcnQvVHJhbnNwb3J0TGF6eU1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVsRixNQUFNLE9BQWdCLG1CQUFtQjtJQUNyQyw0RUFBNEU7SUFDNUUsRUFBRTtJQUNGLGVBQWU7SUFDZixFQUFFO0lBQ0YsNEVBQTRFO0lBRTVFLFlBQW1CLFNBQXlCLEVBQVksU0FBb0I7UUFBekQsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFBWSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3hFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCw0RUFBNEU7SUFDNUUsRUFBRTtJQUNGLHFCQUFxQjtJQUNyQixFQUFFO0lBQ0YsNEVBQTRFO0lBRWxFLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLDhCQUE4QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQVVELElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2YsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc3BvcnQgfSBmcm9tICdAdHMtY29yZS9jb21tb24vdHJhbnNwb3J0JztcbmltcG9ydCB7IElMYXp5TW9kdWxlRGF0YSB9IGZyb20gJy4uL21vZHVsZS9MYXp5TW9kdWxlTG9hZGVyJztcbmltcG9ydCB7IFRyYW5zcG9ydExhenlNb2R1bGVMb2FkZWRFdmVudCB9IGZyb20gJy4vVHJhbnNwb3J0TGF6eU1vZHVsZUxvYWRlZEV2ZW50JztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRyYW5zcG9ydExhenlNb2R1bGU8VD4gaW1wbGVtZW50cyBJVHJhbnNwb3J0TGF6eU1vZHVsZURhdGE8VD4ge1xuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBDb25zdHJ1Y3RvclxuICAgIC8vXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgY29uc3RydWN0b3IocHVibGljIHJlZmVyZW5jZTogTmdNb2R1bGVSZWY8VD4sIHByb3RlY3RlZCB0cmFuc3BvcnQ6IFRyYW5zcG9ydCkge1xuICAgICAgICB0aGlzLm1vZHVsZUxvYWRlZERpc3BhdGNoKCk7XG4gICAgfVxuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIFByb3RlY3RlZCBNZXRob2RzXG4gICAgLy9cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgbW9kdWxlTG9hZGVkRGlzcGF0Y2goKTogdm9pZCB7XG4gICAgICAgIHRoaXMudHJhbnNwb3J0LmRpc3BhdGNoKG5ldyBUcmFuc3BvcnRMYXp5TW9kdWxlTG9hZGVkRXZlbnQodGhpcykpO1xuICAgIH1cblxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vICBQdWJsaWMgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBpZCgpOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgZ2V0IGV2ZW50cygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBBcnJheSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29tbWFuZHMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBuZXcgQXJyYXkoKTtcbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zcG9ydExhenlNb2R1bGVEYXRhPFQgPSBhbnk+IGV4dGVuZHMgSUxhenlNb2R1bGVEYXRhPFQ+IHtcbiAgICBldmVudHM/OiBBcnJheTxzdHJpbmc+O1xuICAgIGNvbW1hbmRzPzogQXJyYXk8c3RyaW5nPjtcbn1cbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { TransportEvent } from '@ts-core/common/transport';
2
+ export class TransportLazyModuleLoadedEvent extends TransportEvent {
3
+ // --------------------------------------------------------------------------
4
+ //
5
+ // Constructor
6
+ //
7
+ // --------------------------------------------------------------------------
8
+ constructor(request) {
9
+ super(TransportLazyModuleLoadedEvent.NAME, request);
10
+ }
11
+ }
12
+ // --------------------------------------------------------------------------
13
+ //
14
+ // Public Static Properties
15
+ //
16
+ // --------------------------------------------------------------------------
17
+ TransportLazyModuleLoadedEvent.NAME = 'TransportLazyModuleLoadedEvent';
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNwb3J0TGF6eU1vZHVsZUxvYWRlZEV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyYW5zcG9ydC9UcmFuc3BvcnRMYXp5TW9kdWxlTG9hZGVkRXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzNELE1BQU0sT0FBTyw4QkFBOEYsU0FBUSxjQUFpQjtJQVNoSSw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGVBQWU7SUFDZixFQUFFO0lBQ0YsNkVBQTZFO0lBRTdFLFlBQVksT0FBVTtRQUNsQixLQUFLLENBQUMsOEJBQThCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELENBQUM7O0FBaEJELDZFQUE2RTtBQUM3RSxFQUFFO0FBQ0YsNEJBQTRCO0FBQzVCLEVBQUU7QUFDRiw2RUFBNkU7QUFFdEQsbUNBQUksR0FBRyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zcG9ydEV2ZW50IH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uL3RyYW5zcG9ydCc7XG5pbXBvcnQgeyBJVHJhbnNwb3J0TGF6eU1vZHVsZURhdGEgfSBmcm9tICcuL1RyYW5zcG9ydExhenlNb2R1bGUnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNwb3J0TGF6eU1vZHVsZUxvYWRlZEV2ZW50PFQgZXh0ZW5kcyBJVHJhbnNwb3J0TGF6eU1vZHVsZURhdGEgPSBJVHJhbnNwb3J0TGF6eU1vZHVsZURhdGE+IGV4dGVuZHMgVHJhbnNwb3J0RXZlbnQ8VD4ge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyAgUHVibGljIFN0YXRpYyBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBOQU1FID0gJ1RyYW5zcG9ydExhenlNb2R1bGVMb2FkZWRFdmVudCc7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gIENvbnN0cnVjdG9yXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgY29uc3RydWN0b3IocmVxdWVzdDogVCkge1xuICAgICAgICBzdXBlcihUcmFuc3BvcnRMYXp5TW9kdWxlTG9hZGVkRXZlbnQuTkFNRSwgcmVxdWVzdCk7XG4gICAgfVxufVxuIl19
@@ -51,13 +51,13 @@ export class UserBaseService {
51
51
  //
52
52
  // --------------------------------------------------------------------------
53
53
  isUser(value) {
54
- if (!value || !this.user) {
54
+ if (_.isNil(value) || _.isNil(this.user)) {
55
55
  return false;
56
56
  }
57
- if (value.hasOwnProperty('id')) {
58
- return this.user.id === value.id;
57
+ if (_.isString(value) || _.isNumber(value)) {
58
+ return value === this.user.id;
59
59
  }
60
- return this.user.id === value;
60
+ return value.id === this.user.id;
61
61
  }
62
62
  userUpdate(data) {
63
63
  if (!this.hasUser) {
@@ -102,4 +102,4 @@ export var UserBaseServiceEvent;
102
102
  UserBaseServiceEvent["CHANGED"] = "CHANGED";
103
103
  UserBaseServiceEvent["LOGOUTED"] = "LOGOUTED";
104
104
  })(UserBaseServiceEvent || (UserBaseServiceEvent = {}));
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlckJhc2VTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VzZXIvVXNlckJhc2VTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFvQixxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3BGLE1BQU0sT0FBZ0IsZUFBZTtJQVVqQyw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGVBQWU7SUFDZixFQUFFO0lBQ0YsNkVBQTZFO0lBRTdFLFlBQXNCLEtBQXVCO1FBQXZCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixxQkFBcUI7SUFDckIsRUFBRTtJQUNGLDZFQUE2RTtJQUVuRSxVQUFVO1FBQ2hCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9CLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUN6QjtpQkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUsscUJBQXFCLENBQUMsZUFBZSxFQUFFO2dCQUM1RCxJQUFJLENBQUMsZUFB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O1FBQ2QsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQVcsRUFBRTtRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM5QyxDQUFDO0NBQ0o7QUFFRCxNQUFNLENBQU4sSUFBWSxvQkFJWDtBQUpELFdBQVksb0JBQW9CO0lBQzVCLDJDQUFtQixDQUFBO0lBQ25CLDJDQUFtQixDQUFBO0lBQ25CLDZDQUFxQixDQUFBO0FBQ3pCLENBQUMsRUFKVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBSS9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZURhdGEgfSBmcm9tICdAdHMtY29yZS9jb21tb24vb2JzZXJ2ZXInO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMb2dpbkJhc2VTZXJ2aWNlLCBMb2dpbkJhc2VTZXJ2aWNlRXZlbnQgfSBmcm9tICcuLi9sb2dpbi9Mb2dpbkJhc2VTZXJ2aWNlJztcbmltcG9ydCB7IElVc2VyLCBVc2VyVWlkIH0gZnJvbSAnLi9JVXNlcic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBVc2VyQmFzZVNlcnZpY2U8VSBleHRlbmRzIElVc2VyID0gYW55LCBWID0gdm9pZD4ge1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFByb3BlcnRpZXNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgX3VzZXI6IFU7XG4gICAgcHJvdGVjdGVkIG9ic2VydmVyOiBTdWJqZWN0PE9ic2VydmFibGVEYXRhPFYgfCBVc2VyQmFzZVNlcnZpY2VFdmVudCwgVT4+O1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0Q29uc3RydWN0b3JcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbG9naW46IExvZ2luQmFzZVNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBTdWJqZWN0KCk7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHJvdGVjdGVkIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubG9naW4uaXNMb2dnZWRJbikge1xuICAgICAgICAgICAgdGhpcy5sb2dpbmVkSGFuZGxlcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sb2dpbi5ldmVudHMuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgICAgaWYgKGRhdGEudHlwZSA9PT0gTG9naW5CYXNlU2VydmljZUV2ZW50LkxPR0lOX0NPTVBMRVRFKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dpbmVkSGFuZGxlcigpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhLnR5cGUgPT09IExvZ2luQmFzZVNlcnZpY2VFdmVudC5MT0dPVVRfRklOSVNIRUQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ291dGVkSGFuZGxlcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZVVzZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3VzZXIgPSB0aGlzLmNyZWF0ZVVzZXIodGhpcy5sb2dpbi5sb2dpbkRhdGEpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBkZWluaXRpYWxpemVVc2VyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91c2VyID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbG9naW5lZEhhbmRsZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVVzZXIoKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShVc2VyQmFzZVNlcnZpY2VFdmVudC5MT0dJTkVELCB0aGlzLnVzZXIpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbG9nb3V0ZWRIYW5kbGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlaW5pdGlhbGl6ZVVzZXIoKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlci5uZXh0KG5ldyBPYnNlcnZhYmxlRGF0YShVc2VyQmFzZVNlcnZpY2VFdmVudC5MT0dPVVRFRCkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGVVc2VyKGRhdGE6IGFueSk6IFU7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQdWJsaWMgTWV0aG9kc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBpc1VzZXIodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXZhbHVlIHx8ICF0aGlzLnVzZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUuaGFzT3duUHJvcGVydHkoJ2lkJykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVzZXIuaWQgPT09IHZhbHVlLmlkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnVzZXIuaWQgPT09IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyB1c2VyVXBkYXRlKGRhdGE6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaGFzVXNlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXNlci51cGRhdGUoZGF0YSk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoVXNlckJhc2VTZXJ2aWNlRXZlbnQuQ0hBTkdFRCwgZGF0YSkpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFB1YmxpYyBQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIGdldCBldmVudHMoKTogT2JzZXJ2YWJsZTxPYnNlcnZhYmxlRGF0YTxWIHwgVXNlckJhc2VTZXJ2aWNlRXZlbnQsIFU+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9ic2VydmVyLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbG9naW5lZCgpOiBPYnNlcnZhYmxlPFU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXZlbnRzLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoaXRlbSA9PiBpdGVtLnR5cGUgPT09IFVzZXJCYXNlU2VydmljZUV2ZW50LkxPR0lORUQpLFxuICAgICAgICAgICAgbWFwKGl0ZW0gPT4gaXRlbS5kYXRhKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2hhbmdlZCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ldmVudHMucGlwZShcbiAgICAgICAgICAgIGZpbHRlcihpdGVtID0+IGl0ZW0udHlwZSA9PT0gVXNlckJhc2VTZXJ2aWNlRXZlbnQuQ0hBTkdFRCksXG4gICAgICAgICAgICBtYXAoaXRlbSA9PiBpdGVtLmRhdGEpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBsb2dvdXRlZCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXZlbnRzLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoaXRlbSA9PiBpdGVtLnR5cGUgPT09IFVzZXJCYXNlU2VydmljZUV2ZW50LkxPR09VVEVEKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiBudWxsKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzVXNlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICFfLmlzTmlsKHRoaXMuX3VzZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNMb2dpbmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNVc2VyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdXNlcigpOiBVIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpZCgpOiBVc2VyVWlkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzVXNlciA/IHRoaXMudXNlci5pZCA6IG51bGw7XG4gICAgfVxufVxuXG5leHBvcnQgZW51bSBVc2VyQmFzZVNlcnZpY2VFdmVudCB7XG4gICAgTE9HSU5FRCA9ICdMT0dJTkVEJyxcbiAgICBDSEFOR0VEID0gJ0NIQU5HRUQnLFxuICAgIExPR09VVEVEID0gJ0xPR09VVEVEJ1xufVxuIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlckJhc2VTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VzZXIvVXNlckJhc2VTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFvQixxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3BGLE1BQU0sT0FBZ0IsZUFBZTtJQVVqQyw2RUFBNkU7SUFDN0UsRUFBRTtJQUNGLGVBQWU7SUFDZixFQUFFO0lBQ0YsNkVBQTZFO0lBRTdFLFlBQXNCLEtBQXVCO1FBQXZCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsNkVBQTZFO0lBQzdFLEVBQUU7SUFDRixxQkFBcUI7SUFDckIsRUFBRTtJQUNGLDZFQUE2RTtJQUVuRSxVQUFVO1FBQ2hCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9CLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUN6QjtpQkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUsscUJBQXFCLENBQUMsZUFBZSxFQUFFO2dCQUM1RCxJQUFJLENBQUMsZUFB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RUFDM0QsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUNsQixDQUFDO0lBQ04sQ0FBQztJQUVELElBQVcsT0FBTztRQUNkLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFXLEVBQUU7UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDOUMsQ0FBQztDQUNKO0FBRUQsTUFBTSxDQUFOLElBQVksb0JBSVg7QUFKRCxXQUFZLG9CQUFvQjtJQUM1QiwyQ0FBbUIsQ0FBQTtJQUNuQiwyQ0FBbUIsQ0FBQTtJQUNuQiw2Q0FBcUIsQ0FBQTtBQUN6QixDQUFDLEVBSlcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUkvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGVEYXRhIH0gZnJvbSAnQHRzLWNvcmUvY29tbW9uL29ic2VydmVyJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTG9naW5CYXNlU2VydmljZSwgTG9naW5CYXNlU2VydmljZUV2ZW50IH0gZnJvbSAnLi4vbG9naW4vTG9naW5CYXNlU2VydmljZSc7XG5pbXBvcnQgeyBJVXNlciwgVXNlclVpZCB9IGZyb20gJy4vSVVzZXInO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVXNlckJhc2VTZXJ2aWNlPFUgZXh0ZW5kcyBJVXNlciA9IGFueSwgViA9IHZvaWQ+IHtcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQcm9wZXJ0aWVzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIF91c2VyOiBVO1xuICAgIHByb3RlY3RlZCBvYnNlcnZlcjogU3ViamVjdDxPYnNlcnZhYmxlRGF0YTxWIHwgVXNlckJhc2VTZXJ2aWNlRXZlbnQsIFU+PjtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdENvbnN0cnVjdG9yXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGxvZ2luOiBMb2dpbkJhc2VTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgU3ViamVjdCgpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy9cbiAgICAvLyBcdFByb3RlY3RlZCBNZXRob2RzXG4gICAgLy9cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmxvZ2luLmlzTG9nZ2VkSW4pIHtcbiAgICAgICAgICAgIHRoaXMubG9naW5lZEhhbmRsZXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubG9naW4uZXZlbnRzLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICAgIGlmIChkYXRhLnR5cGUgPT09IExvZ2luQmFzZVNlcnZpY2VFdmVudC5MT0dJTl9DT01QTEVURSkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9naW5lZEhhbmRsZXIoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09PSBMb2dpbkJhc2VTZXJ2aWNlRXZlbnQuTE9HT1VUX0ZJTklTSEVEKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dvdXRlZEhhbmRsZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVVc2VyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91c2VyID0gdGhpcy5jcmVhdGVVc2VyKHRoaXMubG9naW4ubG9naW5EYXRhKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVpbml0aWFsaXplVXNlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdXNlciA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxvZ2luZWRIYW5kbGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVVc2VyKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoVXNlckJhc2VTZXJ2aWNlRXZlbnQuTE9HSU5FRCwgdGhpcy51c2VyKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxvZ291dGVkSGFuZGxlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZWluaXRpYWxpemVVc2VyKCk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIubmV4dChuZXcgT2JzZXJ2YWJsZURhdGEoVXNlckJhc2VTZXJ2aWNlRXZlbnQuTE9HT1VURUQpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlVXNlcihkYXRhOiBhbnkpOiBVO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvL1xuICAgIC8vIFx0UHVibGljIE1ldGhvZHNcbiAgICAvL1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwdWJsaWMgaXNVc2VyKHZhbHVlOiBQYXJ0aWFsPFU+IHwgVXNlclVpZCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoXy5pc05pbCh2YWx1ZSkgfHwgXy5pc05pbCh0aGlzLnVzZXIpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKF8uaXNTdHJpbmcodmFsdWUpIHx8IF8uaXNOdW1iZXIodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IHRoaXMudXNlci5pZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWUuaWQgPT09IHRoaXMudXNlci5pZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXNlclVwZGF0ZShkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc1VzZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVzZXIudXBkYXRlKGRhdGEpO1xuICAgICAgICB0aGlzLm9ic2VydmVyLm5leHQobmV3IE9ic2VydmFibGVEYXRhKFVzZXJCYXNlU2VydmljZUV2ZW50LkNIQU5HRUQsIGRhdGEpKTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vXG4gICAgLy8gXHRQdWJsaWMgUHJvcGVydGllc1xuICAgIC8vXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXQgZXZlbnRzKCk6IE9ic2VydmFibGU8T2JzZXJ2YWJsZURhdGE8ViB8IFVzZXJCYXNlU2VydmljZUV2ZW50LCBVPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vYnNlcnZlci5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxvZ2luZWQoKTogT2JzZXJ2YWJsZTxVPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV2ZW50cy5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKGl0ZW0gPT4gaXRlbS50eXBlID09PSBVc2VyQmFzZVNlcnZpY2VFdmVudC5MT0dJTkVEKSxcbiAgICAgICAgICAgIG1hcChpdGVtID0+IGl0ZW0uZGF0YSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNoYW5nZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXZlbnRzLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoaXRlbSA9PiBpdGVtLnR5cGUgPT09IFVzZXJCYXNlU2VydmljZUV2ZW50LkNIQU5HRUQpLFxuICAgICAgICAgICAgbWFwKGl0ZW0gPT4gaXRlbS5kYXRhKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbG9nb3V0ZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV2ZW50cy5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKGl0ZW0gPT4gaXRlbS50eXBlID09PSBVc2VyQmFzZVNlcnZpY2VFdmVudC5MT0dPVVRFRCksXG4gICAgICAgICAgICBtYXAoKCkgPT4gbnVsbClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc1VzZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhXy5pc05pbCh0aGlzLl91c2VyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzTG9naW5lZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzVXNlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHVzZXIoKTogVSB7XG4gICAgICAgIHJldHVybiB0aGlzLl91c2VyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaWQoKTogVXNlclVpZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc1VzZXIgPyB0aGlzLnVzZXIuaWQgOiBudWxsO1xuICAgIH1cbn1cblxuZXhwb3J0IGVudW0gVXNlckJhc2VTZXJ2aWNlRXZlbnQge1xuICAgIExPR0lORUQgPSAnTE9HSU5FRCcsXG4gICAgQ0hBTkdFRCA9ICdDSEFOR0VEJyxcbiAgICBMT0dPVVRFRCA9ICdMT0dPVVRFRCdcbn1cbiJdfQ==