@sumaris-net/ngx-components 1.8.1 → 1.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sumaris-net.ngx-components.umd.js +208 -197
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/doc/changelog.md +5 -1
- package/esm2015/public_api.js +2 -1
- package/esm2015/src/app/admin/users/list/users.js +5 -22
- package/esm2015/src/app/core/home/home.js +3 -3
- package/esm2015/src/app/core/register/confirm/confirm.js +1 -1
- package/esm2015/src/app/core/services/account.service.js +38 -27
- package/esm2015/src/app/core/services/local-settings.service.js +18 -14
- package/esm2015/src/app/core/services/model/settings.model.js +1 -1
- package/esm2015/src/app/core/services/platform.service.js +35 -31
- package/esm2015/src/app/core/table/memory-table.class.js +2 -7
- package/esm2015/src/app/core/table/table.class.js +21 -24
- package/esm2015/src/app/shared/directives/autofocus.directive.js +15 -24
- package/esm2015/src/app/shared/platforms.js +36 -0
- package/esm2015/src/app/shared/services/progress-bar.service.js +1 -1
- package/esm2015/src/app/social/list/user-events.table.js +3 -8
- package/fesm2015/sumaris-net.ngx-components.js +162 -136
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +1 -0
- package/src/app/admin/users/list/users.d.ts +1 -12
- package/src/app/core/services/account.service.d.ts +2 -0
- package/src/app/core/services/local-settings.service.d.ts +0 -2
- package/src/app/core/services/model/settings.model.d.ts +0 -1
- package/src/app/core/services/platform.service.d.ts +8 -5
- package/src/app/core/table/memory-table.class.d.ts +0 -1
- package/src/app/core/table/table.class.d.ts +8 -10
- package/src/app/shared/directives/autofocus.directive.d.ts +4 -5
- package/src/app/shared/platforms.d.ts +13 -0
- package/src/app/social/list/user-events.table.d.ts +0 -1
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -1,26 +1,21 @@
|
|
|
1
1
|
// Import the core angular services.
|
|
2
2
|
import { Directive, ElementRef, Optional } from '@angular/core';
|
|
3
|
-
import { Platform } from '@ionic/angular';
|
|
4
3
|
import { Keyboard } from '@ionic-native/keyboard/ngx';
|
|
4
|
+
import { isMobile } from '../platforms';
|
|
5
5
|
// ----------------------------------------------------------------------------------- //
|
|
6
6
|
// ----------------------------------------------------------------------------------- //
|
|
7
7
|
const BASE_TIMER_DELAY = 100;
|
|
8
8
|
export class AutofocusDirective {
|
|
9
9
|
// I initialize the autofocus directive.
|
|
10
|
-
constructor(elementRef,
|
|
10
|
+
constructor(elementRef, keyboard) {
|
|
11
11
|
this.keyboard = keyboard;
|
|
12
|
-
this.
|
|
13
|
-
this.
|
|
12
|
+
this._timer = null;
|
|
13
|
+
this._elementRef = elementRef;
|
|
14
14
|
this.shouldFocusElement = '';
|
|
15
|
-
this.
|
|
15
|
+
this._timer = null;
|
|
16
16
|
this.timerDelay = BASE_TIMER_DELAY;
|
|
17
|
-
|
|
18
|
-
this.touchUi = platform.is('mobile') || platform.is('tablet');
|
|
19
|
-
});
|
|
17
|
+
this._mobile = isMobile(window);
|
|
20
18
|
}
|
|
21
|
-
// ---
|
|
22
|
-
// PUBLIC METHODS.
|
|
23
|
-
// ---
|
|
24
19
|
// I get called once after the contents have been fully initialized.
|
|
25
20
|
ngAfterContentInit() {
|
|
26
21
|
// Because this directive can act on the stand-only "autofocus" attribute or
|
|
@@ -55,29 +50,26 @@ export class AutofocusDirective {
|
|
|
55
50
|
ngOnDestroy() {
|
|
56
51
|
this.stopFocusWorkflow();
|
|
57
52
|
}
|
|
58
|
-
|
|
59
|
-
// PRIVATE METHODS.
|
|
60
|
-
// ---
|
|
53
|
+
/* --- private functions -- */
|
|
61
54
|
// I start the timer-based workflow that will focus the current element.
|
|
62
55
|
startFocusWorkflow() {
|
|
63
56
|
// if touch UI: do NOT focus when keyboard hide
|
|
64
|
-
if (this.
|
|
57
|
+
if (this._mobile && this.keyboard && this.keyboard.isVisible === false)
|
|
65
58
|
return;
|
|
66
59
|
// If there is already a timer running for this element, just let it play out -
|
|
67
60
|
// resetting it at this point will only push-out the time at which the focus is
|
|
68
61
|
// applied to the element.
|
|
69
|
-
if (this.
|
|
62
|
+
if (this._timer)
|
|
70
63
|
return;
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
this.
|
|
74
|
-
this.elementRef.nativeElement.focus();
|
|
64
|
+
this._timer = setTimeout(() => {
|
|
65
|
+
this._timer = null;
|
|
66
|
+
this._elementRef.nativeElement.focus();
|
|
75
67
|
}, this.timerDelay);
|
|
76
68
|
}
|
|
77
69
|
// I stop the timer-based workflow, preventing focus from taking place.
|
|
78
70
|
stopFocusWorkflow() {
|
|
79
|
-
clearTimeout(this.
|
|
80
|
-
this.
|
|
71
|
+
clearTimeout(this._timer);
|
|
72
|
+
this._timer = null;
|
|
81
73
|
}
|
|
82
74
|
}
|
|
83
75
|
AutofocusDirective.decorators = [
|
|
@@ -91,7 +83,6 @@ AutofocusDirective.decorators = [
|
|
|
91
83
|
];
|
|
92
84
|
AutofocusDirective.ctorParameters = () => [
|
|
93
85
|
{ type: ElementRef },
|
|
94
|
-
{ type: Platform },
|
|
95
86
|
{ type: Keyboard, decorators: [{ type: Optional }] }
|
|
96
87
|
];
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvYXV0b2ZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFDcEMsT0FBTyxFQUFtQixTQUFTLEVBQUUsVUFBVSxFQUF3QixRQUFRLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBRXJILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUVwRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRXRDLHlGQUF5RjtBQUN6Rix5RkFBeUY7QUFFekYsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7QUFTN0IsTUFBTSxPQUFPLGtCQUFrQjtJQVM3Qix3Q0FBd0M7SUFDeEMsWUFDRSxVQUFzQixFQUNBLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFMbEMsV0FBTSxHQUFZLElBQUksQ0FBQztRQU83QixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUU5QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELG9FQUFvRTtJQUNwRSxrQkFBa0I7UUFFaEIsNEVBQTRFO1FBQzVFLCtFQUErRTtRQUMvRSw2RUFBNkU7UUFDN0UsaUZBQWlGO1FBQ2pGLElBQUssSUFBSSxDQUFDLGtCQUFrQixLQUFLLEVBQUUsRUFBRztZQUNwQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCwwREFBMEQ7SUFDMUQsV0FBVyxDQUFFLE9BQXNCO1FBRWpDLDBFQUEwRTtRQUMxRSx5RUFBeUU7UUFDekUsNEVBQTRFO1FBQzVFLElBQUssT0FBTyxDQUFDLFVBQVUsSUFBSSxDQUFFLE9BQU0sQ0FBRSxJQUFJLENBQUMsVUFBVSxDQUFFLEtBQUssUUFBUSxDQUFFLEVBQUc7WUFFdEUseURBQXlEO1lBQ3pELElBQUssS0FBSyxDQUFFLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFFLEVBQUc7Z0JBQ2pELElBQUksQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUM7YUFDcEM7U0FDRjtRQUVELDRFQUE0RTtRQUM1RSxnRkFBZ0Y7UUFDaEYsNkVBQTZFO1FBQzdFLElBQUssT0FBTyxDQUFDLGtCQUFrQixFQUFHO1lBRWhDLENBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFFO2dCQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQzNCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsMkRBQTJEO0lBQzNELFdBQVc7UUFDVCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsOEJBQThCO0lBRTlCLHdFQUF3RTtJQUNoRSxrQkFBa0I7UUFFeEIsK0NBQStDO1FBQy9DLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxLQUFLLEtBQUs7WUFBRSxPQUFPO1FBRS9FLCtFQUErRTtRQUMvRSwrRUFBK0U7UUFDL0UsMEJBQTBCO1FBQzFCLElBQUssSUFBSSxDQUFDLE1BQU07WUFBSSxPQUFPO1FBRTNCLElBQUksQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUN0QixHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QyxDQUFDLEVBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FDaEIsQ0FBQztJQUVKLENBQUM7SUFFRCx1RUFBdUU7SUFDL0QsaUJBQWlCO1FBQ3ZCLFlBQVksQ0FBRSxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQzs7O1lBbkdGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsa0NBQWtDO2dCQUM1QyxNQUFNLEVBQUU7b0JBQ04sa0NBQWtDO29CQUNsQyw0QkFBNEI7aUJBQzdCO2FBQ0Y7OztZQWpCb0MsVUFBVTtZQUV2QyxRQUFRLHVCQTRCWCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0IHRoZSBjb3JlIGFuZ3VsYXIgc2VydmljZXMuXG5pbXBvcnQge0FmdGVyQ29udGVudEluaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGxhdGZvcm19IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7S2V5Ym9hcmR9IGZyb20gJ0Bpb25pYy1uYXRpdmUva2V5Ym9hcmQvbmd4JztcbmltcG9ydCBUaW1lb3V0ID0gTm9kZUpTLlRpbWVvdXQ7XG5pbXBvcnQge2lzTW9iaWxlfSBmcm9tICcuLi9wbGF0Zm9ybXMnO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAvL1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLy9cblxuY29uc3QgQkFTRV9USU1FUl9ERUxBWSA9IDEwMDtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F1dG9mb2N1c10sIGlucHV0W2FwcEF1dG9mb2N1c10nLFxuICBpbnB1dHM6IFtcbiAgICAnc2hvdWxkRm9jdXNFbGVtZW50OiBhcHBBdXRvZm9jdXMnLFxuICAgICd0aW1lckRlbGF5OiBhdXRvZm9jdXNEZWxheSdcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBdXRvZm9jdXNEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIHNob3VsZEZvY3VzRWxlbWVudDogYW55O1xuICBwdWJsaWMgdGltZXJEZWxheTogbnVtYmVyO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21vYmlsZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfdGltZXI6IFRpbWVvdXQgPSBudWxsO1xuXG4gIC8vIEkgaW5pdGlhbGl6ZSB0aGUgYXV0b2ZvY3VzIGRpcmVjdGl2ZS5cbiAgY29uc3RydWN0b3IoXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQga2V5Ym9hcmQ6IEtleWJvYXJkICkge1xuXG4gICAgdGhpcy5fZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG5cbiAgICB0aGlzLnNob3VsZEZvY3VzRWxlbWVudCA9ICcnO1xuICAgIHRoaXMuX3RpbWVyID0gbnVsbDtcbiAgICB0aGlzLnRpbWVyRGVsYXkgPSBCQVNFX1RJTUVSX0RFTEFZO1xuICAgIHRoaXMuX21vYmlsZSA9IGlzTW9iaWxlKHdpbmRvdyk7XG4gIH1cblxuICAvLyBJIGdldCBjYWxsZWQgb25jZSBhZnRlciB0aGUgY29udGVudHMgaGF2ZSBiZWVuIGZ1bGx5IGluaXRpYWxpemVkLlxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG5cbiAgICAvLyBCZWNhdXNlIHRoaXMgZGlyZWN0aXZlIGNhbiBhY3Qgb24gdGhlIHN0YW5kLW9ubHkgXCJhdXRvZm9jdXNcIiBhdHRyaWJ1dGUgb3JcbiAgICAvLyB0aGUgbW9yZSBzcGVjaWFsaXplZCBcImFwcEF1dG9mb2N1c1wiIHByb3BlcnR5LCB3ZSBuZWVkIHRvIGNoZWNrIHRvIHNlZSBpZiB0aGVcbiAgICAvLyBcInNob3VsZEZvY3VzRWxlbWVudFwiIGlucHV0IHByb3BlcnR5IGlzIHRoZSBlbXB0eSBzdHJpbmcuIFRoaXMgd2lsbCBzaWduaWZ5XG4gICAgLy8gdGhhdCB0aGUgZm9jdXMgaXQgbm90IGJlaW5nIGRhdGEtZHJpdmVuIGFuZCBzaG91bGQgYmUgcGVyZm9ybWVkIGF1dG9tYXRpY2FsbHkuXG4gICAgaWYgKCB0aGlzLnNob3VsZEZvY3VzRWxlbWVudCA9PT0gJycgKSB7XG4gICAgICB0aGlzLnN0YXJ0Rm9jdXNXb3JrZmxvdygpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEkgZ2V0IGNhbGxlZCBldmVyeSB0aW1lIHRoZSBpbnB1dCBiaW5kaW5ncyBhcmUgdXBkYXRlZC5cbiAgbmdPbkNoYW5nZXMoIGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMgKSB7XG5cbiAgICAvLyBJZiB0aGUgdGltZXIgZGVsYXkgaXMgYmVpbmcgcGFzc2VkLWluIGFzIGEgc3RyaW5nIChpZSwgc29tZW9uZSBpcyB1c2luZ1xuICAgIC8vIGF0dHJpYnV0ZS1pbnB1dCBzeW50YXgsIG5vdCBwcm9wZXJ0eS1pbnB1dCBzeW50YXgpLCBsZXQncyBjb2FsZXNjZSB0aGVcbiAgICAvLyBhdHRyaWJ1dGUgdG8gYSBudW1lcmljIHZhbHVlIHNvIHRoYXQgb3VyIHR5cGUtYW5ub3RhdGlvbnMgYXJlIGNvbnNpc3RlbnQuXG4gICAgaWYgKCBjaGFuZ2VzLnRpbWVyRGVsYXkgJiYgKCB0eXBlb2YoIHRoaXMudGltZXJEZWxheSApICE9PSAnbnVtYmVyJyApICkge1xuXG4gICAgICAvLyBJZiB0aGUgY29hbGVzY2UgZmFpbHMsIGp1c3QgZmFsbC1iYWNrIHRvIGEgc2FuZSB2YWx1ZS5cbiAgICAgIGlmICggaXNOYU4oIHRoaXMudGltZXJEZWxheSA9ICt0aGlzLnRpbWVyRGVsYXkgKSApIHtcbiAgICAgICAgdGhpcy50aW1lckRlbGF5ID0gQkFTRV9USU1FUl9ERUxBWTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgZm9jdXMgaW5wdXQgaXMgYmVpbmcgZGF0YS1kcml2ZW4sIHRoZW4gd2UgZWl0aGVyIG5lZWQgdG8gc3RhcnQgdGhlXG4gICAgLy8gZm9jdXMgd29ya2Zsb3cgaWYgZm9jdXMgaXMgcmVxdWlyZWQ7IG9yLCBjbGVhciBhbnkgZXhpc3Rpbmcgd29ya2Zsb3cgaWYgZm9jdXNcbiAgICAvLyBpcyBubyBsb25nZXIgcmVxdWlyZWQgKHNvIHRoYXQgd2UgZG9uJ3Qgc3RlYWwgZm9jdXMgZnJvbSBhbm90aGVyIGVsZW1lbnQpLlxuICAgIGlmICggY2hhbmdlcy5zaG91bGRGb2N1c0VsZW1lbnQgKSB7XG5cbiAgICAgICggdGhpcy5zaG91bGRGb2N1c0VsZW1lbnQgKVxuICAgICAgICA/IHRoaXMuc3RhcnRGb2N1c1dvcmtmbG93KClcbiAgICAgICAgOiB0aGlzLnN0b3BGb2N1c1dvcmtmbG93KClcbiAgICAgIDtcbiAgICB9XG4gIH1cblxuICAvLyBJIGdldCBjYWxsZWQgb25jZSB3aGVuIHRoZSBkaXJlY3RpdmUgaXMgYmVpbmcgdW5tb3VudGVkLlxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN0b3BGb2N1c1dvcmtmbG93KCk7XG4gIH1cblxuICAvKiAtLS0gcHJpdmF0ZSBmdW5jdGlvbnMgLS0gKi9cblxuICAvLyBJIHN0YXJ0IHRoZSB0aW1lci1iYXNlZCB3b3JrZmxvdyB0aGF0IHdpbGwgZm9jdXMgdGhlIGN1cnJlbnQgZWxlbWVudC5cbiAgcHJpdmF0ZSBzdGFydEZvY3VzV29ya2Zsb3coKSB7XG5cbiAgICAvLyBpZiB0b3VjaCBVSTogZG8gTk9UIGZvY3VzIHdoZW4ga2V5Ym9hcmQgaGlkZVxuICAgIGlmICh0aGlzLl9tb2JpbGUgJiYgdGhpcy5rZXlib2FyZCAmJiB0aGlzLmtleWJvYXJkLmlzVmlzaWJsZSA9PT0gZmFsc2UpIHJldHVybjtcblxuICAgIC8vIElmIHRoZXJlIGlzIGFscmVhZHkgYSB0aW1lciBydW5uaW5nIGZvciB0aGlzIGVsZW1lbnQsIGp1c3QgbGV0IGl0IHBsYXkgb3V0IC1cbiAgICAvLyByZXNldHRpbmcgaXQgYXQgdGhpcyBwb2ludCB3aWxsIG9ubHkgcHVzaC1vdXQgdGhlIHRpbWUgYXQgd2hpY2ggdGhlIGZvY3VzIGlzXG4gICAgLy8gYXBwbGllZCB0byB0aGUgZWxlbWVudC5cbiAgICBpZiAoIHRoaXMuX3RpbWVyICkgIHJldHVybjtcblxuICAgIHRoaXMuX3RpbWVyID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5fdGltZXIgPSBudWxsO1xuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH0sXG4gICAgICB0aGlzLnRpbWVyRGVsYXlcbiAgICApO1xuXG4gIH1cblxuICAvLyBJIHN0b3AgdGhlIHRpbWVyLWJhc2VkIHdvcmtmbG93LCBwcmV2ZW50aW5nIGZvY3VzIGZyb20gdGFraW5nIHBsYWNlLlxuICBwcml2YXRlIHN0b3BGb2N1c1dvcmtmbG93KCkge1xuICAgIGNsZWFyVGltZW91dCggdGhpcy5fdGltZXIgKTtcbiAgICB0aGlzLl90aW1lciA9IG51bGw7XG4gIH1cblxufVxuIl19
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/* ---
|
|
2
|
+
* Source: https://github.com/ionic-team/ionic-framework/blob/b0d53ca73619585671d8cf4dc24e47f826495a0a/core/src/utils/platform.ts
|
|
3
|
+
* --- */
|
|
4
|
+
export const matchMedia = (win, query) => win.matchMedia(query).matches;
|
|
5
|
+
export const testUserAgent = (win, expr) => {
|
|
6
|
+
const userAgent = win.navigator.userAgent || win.navigator.vendor || window.opera;
|
|
7
|
+
return expr.test(userAgent);
|
|
8
|
+
};
|
|
9
|
+
export const isWindow = (win) => {
|
|
10
|
+
const userAgent = win.navigator.userAgent || win.navigator.vendor || window.opera;
|
|
11
|
+
return /windows/i.test(userAgent);
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Detect desktop, by fine cursor. See https://github.com/ionic-team/ionic-framework/issues/19942
|
|
15
|
+
* @param win
|
|
16
|
+
*/
|
|
17
|
+
export const isDesktop = (win) => matchMedia(win, '(any-pointer:fine)');
|
|
18
|
+
export const isTouchUi = (win) => matchMedia(win, '(any-pointer:coarse)');
|
|
19
|
+
export const isMobile = (win) => isTouchUi(win) && !isDesktop(win);
|
|
20
|
+
const isIpad = (win) => {
|
|
21
|
+
// iOS 12 and below
|
|
22
|
+
if (testUserAgent(win, /iPad/i)) {
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
// iOS 13+
|
|
26
|
+
if (testUserAgent(win, /Macintosh/i) && isMobile(win)) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
return false;
|
|
30
|
+
};
|
|
31
|
+
const ɵ0 = isIpad;
|
|
32
|
+
export const isIOS = (win) => testUserAgent(win, /iPhone|iPod/i) || isIpad(win);
|
|
33
|
+
export const isAndroid = (win) => testUserAgent(win, /android|sink/i);
|
|
34
|
+
export const isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
|
|
35
|
+
export { ɵ0 };
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcGxhdGZvcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztTQUVTO0FBRVQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBVyxFQUFFLENBQ2hFLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDO0FBRWhDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQVcsRUFBRSxJQUFZLEVBQUUsRUFBRTtJQUN6RCxNQUFNLFNBQVMsR0FBVyxHQUFHLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSyxNQUFjLENBQUMsS0FBSyxDQUFDO0lBQ25HLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM5QixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFZLEVBQUUsRUFBRTtJQUN2QyxNQUFNLFNBQVMsR0FBVyxHQUFHLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSyxNQUFjLENBQUMsS0FBSyxDQUFDO0lBQ25HLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNwQyxDQUFDLENBQUE7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFZLEVBQUUsRUFBRSxDQUN4QyxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBWSxFQUFFLEVBQUUsQ0FDeEMsVUFBVSxDQUFDLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQ3RDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUVwQyxNQUFNLE1BQU0sR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO0lBQzdCLG1CQUFtQjtJQUNuQixJQUFJLGFBQWEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEVBQUU7UUFDL0IsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELFVBQVU7SUFDVixJQUFJLGFBQWEsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3JELE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQzs7QUFFRixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUNuQyxhQUFhLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUVwRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUN2QyxhQUFhLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBRXRDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEdBQVEsRUFBVyxFQUFFLENBQzdDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAtLS1cbiAqIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2lvbmljLXRlYW0vaW9uaWMtZnJhbWV3b3JrL2Jsb2IvYjBkNTNjYTczNjE5NTg1NjcxZDhjZjRkYzI0ZTQ3ZjgyNjQ5NWEwYS9jb3JlL3NyYy91dGlscy9wbGF0Zm9ybS50c1xuICogLS0tICovXG5cbmV4cG9ydCBjb25zdCBtYXRjaE1lZGlhID0gKHdpbjogV2luZG93LCBxdWVyeTogc3RyaW5nKTogYm9vbGVhbiA9PlxuICB3aW4ubWF0Y2hNZWRpYShxdWVyeSkubWF0Y2hlcztcblxuZXhwb3J0IGNvbnN0IHRlc3RVc2VyQWdlbnQgPSAod2luOiBXaW5kb3csIGV4cHI6IFJlZ0V4cCkgPT4ge1xuICBjb25zdCB1c2VyQWdlbnQ6IHN0cmluZyA9IHdpbi5uYXZpZ2F0b3IudXNlckFnZW50IHx8IHdpbi5uYXZpZ2F0b3IudmVuZG9yIHx8ICh3aW5kb3cgYXMgYW55KS5vcGVyYTtcbiAgcmV0dXJuIGV4cHIudGVzdCh1c2VyQWdlbnQpO1xufVxuXG5leHBvcnQgY29uc3QgaXNXaW5kb3cgPSAod2luPzogV2luZG93KSA9PiB7XG4gIGNvbnN0IHVzZXJBZ2VudDogc3RyaW5nID0gd2luLm5hdmlnYXRvci51c2VyQWdlbnQgfHwgd2luLm5hdmlnYXRvci52ZW5kb3IgfHwgKHdpbmRvdyBhcyBhbnkpLm9wZXJhO1xuICByZXR1cm4gL3dpbmRvd3MvaS50ZXN0KHVzZXJBZ2VudCk7XG59XG5cbi8qKlxuICogRGV0ZWN0IGRlc2t0b3AsIGJ5IGZpbmUgY3Vyc29yLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2lvbmljLXRlYW0vaW9uaWMtZnJhbWV3b3JrL2lzc3Vlcy8xOTk0MlxuICogQHBhcmFtIHdpblxuICovXG5leHBvcnQgY29uc3QgaXNEZXNrdG9wID0gKHdpbj86IFdpbmRvdykgPT5cbiAgbWF0Y2hNZWRpYSh3aW4sICcoYW55LXBvaW50ZXI6ZmluZSknKTtcblxuZXhwb3J0IGNvbnN0IGlzVG91Y2hVaSA9ICh3aW4/OiBXaW5kb3cpID0+XG4gIG1hdGNoTWVkaWEod2luLCAnKGFueS1wb2ludGVyOmNvYXJzZSknKTtcblxuZXhwb3J0IGNvbnN0IGlzTW9iaWxlID0gKHdpbjogV2luZG93KSA9PlxuICBpc1RvdWNoVWkod2luKSAmJiAhaXNEZXNrdG9wKHdpbik7XG5cbmNvbnN0IGlzSXBhZCA9ICh3aW46IFdpbmRvdykgPT4ge1xuICAvLyBpT1MgMTIgYW5kIGJlbG93XG4gIGlmICh0ZXN0VXNlckFnZW50KHdpbiwgL2lQYWQvaSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIGlPUyAxMytcbiAgaWYgKHRlc3RVc2VyQWdlbnQod2luLCAvTWFjaW50b3NoL2kpICYmIGlzTW9iaWxlKHdpbikpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0lPUyA9ICh3aW46IFdpbmRvdykgPT5cbiAgdGVzdFVzZXJBZ2VudCh3aW4sIC9pUGhvbmV8aVBvZC9pKSB8fCBpc0lwYWQod2luKTtcblxuZXhwb3J0IGNvbnN0IGlzQW5kcm9pZCA9ICh3aW46IFdpbmRvdykgPT5cbiAgdGVzdFVzZXJBZ2VudCh3aW4sIC9hbmRyb2lkfHNpbmsvaSk7XG5cbmV4cG9ydCBjb25zdCBpc0NvcmRvdmEgPSAod2luOiBhbnkpOiBib29sZWFuID0+XG4gICEhKHdpblsnY29yZG92YSddIHx8IHdpblsncGhvbmVnYXAnXSB8fCB3aW5bJ1Bob25lR2FwJ10pO1xuIl19
|
|
@@ -27,4 +27,4 @@ ProgressBarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function Progress
|
|
|
27
27
|
ProgressBarService.decorators = [
|
|
28
28
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
29
29
|
];
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9wcm9ncmVzcy1iYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFLdkQsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUVVLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQUU3QixzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztLQXVCdEQ7SUFyQkMsSUFBSTtRQUNBLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUMzQjtRQUNELElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQzs7OztZQXhCRixVQUFVLFNBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudEVtaXR0ZXIsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgZGVjbGFyZSB0eXBlIFByb2dyZXNzTW9kZSA9ICdkZXRlcm1pbmF0ZScgfCAnaW5kZXRlcm1pbmF0ZScgfCAnYnVmZmVyJyB8ICdxdWVyeScgfCAnbm9uZSc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzQmFyU2VydmljZSB7XG4gIHByaXZhdGUgX3JlcXVlc3RzUnVubmluZyA9IDA7XG5cbiAgb25Qcm9ncmVzc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFByb2dyZXNzTW9kZT4oKTtcblxuICBsaXN0KCk6IG51bWJlciB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVxdWVzdHNSdW5uaW5nO1xuICB9XG5cbiAgaW5jcmVhc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVxdWVzdHNSdW5uaW5nKys7XG4gICAgaWYgKHRoaXMuX3JlcXVlc3RzUnVubmluZyA9PT0gMSkge1xuICAgICAgICB0aGlzLm9uUHJvZ3Jlc3NDaGFuZ2VkLmVtaXQoJ3F1ZXJ5Jyk7XG4gICAgfVxuICB9XG5cbiAgZGVjcmVhc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3JlcXVlc3RzUnVubmluZyA+IDApIHtcbiAgICAgICAgdGhpcy5fcmVxdWVzdHNSdW5uaW5nLS07XG4gICAgfVxuICAgIGlmICh0aGlzLl9yZXF1ZXN0c1J1bm5pbmcgPT09IDApIHtcbiAgICAgIHRoaXMub25Qcm9ncmVzc0NoYW5nZWQuZW1pdCgnbm9uZScpO1xuICAgIH1cbiAgfVxuXG5cbn1cbiJdfQ==
|
|
@@ -3,12 +3,8 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Injector
|
|
|
3
3
|
import { UserEventFilter, UserEventService } from '../services/user-event.service';
|
|
4
4
|
import { AccountService } from '../../core/services/account.service';
|
|
5
5
|
import { UserEvent, UserEventTypes } from '../services/model/user-event.model';
|
|
6
|
-
import { LocalSettingsService } from '../../core/services/local-settings.service';
|
|
7
6
|
import { toBoolean } from '../../shared/functions';
|
|
8
7
|
import { AppTable, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS } from '../../core/table/table.class';
|
|
9
|
-
import { ActivatedRoute, Router } from '@angular/router';
|
|
10
|
-
import { ModalController, Platform } from '@ionic/angular';
|
|
11
|
-
import { Location } from '@angular/common';
|
|
12
8
|
import { EntitiesTableDataSource } from '../../core/table/entities-table-datasource.class';
|
|
13
9
|
import { EntitiesStorage } from '../../core/services/storage/entities-storage.service';
|
|
14
10
|
import { ENVIRONMENT } from '../../../environments/environment.class';
|
|
@@ -41,7 +37,7 @@ const ICONS_MAP = {
|
|
|
41
37
|
}*/
|
|
42
38
|
export class UserEventsTable extends AppTable {
|
|
43
39
|
constructor(injector, accountService, service, entities, cd, environment) {
|
|
44
|
-
super(injector
|
|
40
|
+
super(injector,
|
|
45
41
|
// columns
|
|
46
42
|
RESERVED_START_COLUMNS
|
|
47
43
|
.concat([
|
|
@@ -50,8 +46,7 @@ export class UserEventsTable extends AppTable {
|
|
|
50
46
|
'eventType',
|
|
51
47
|
'message'
|
|
52
48
|
])
|
|
53
|
-
.concat(RESERVED_END_COLUMNS), null, null
|
|
54
|
-
this.injector = injector;
|
|
49
|
+
.concat(RESERVED_END_COLUMNS), null, null);
|
|
55
50
|
this.accountService = accountService;
|
|
56
51
|
this.service = service;
|
|
57
52
|
this.entities = entities;
|
|
@@ -156,4 +151,4 @@ UserEventsTable.propDecorators = {
|
|
|
156
151
|
defaultSortBy: [{ type: Input }],
|
|
157
152
|
defaultSortDirection: [{ type: Input }]
|
|
158
153
|
};
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudHMudGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9saXN0L3VzZXItZXZlbnRzLnRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXZILE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBbUIsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDaEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRTNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUd2RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUErQnRFLE1BQU0sU0FBUyxHQUFvQztJQUNqRCxVQUFVLEVBQUUsRUFBQyxPQUFPLEVBQUUsWUFBWSxFQUFD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QU0sU0FBQyxXQUFXOzs7d0JBWnBCLEtBQUs7MEJBRUwsS0FBSzs0QkFDTCxLQUFLO21DQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5qZWN0LCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFibGVFbGVtZW50IH0gZnJvbSAnQGUtaXMvbmd4LW1hdGVyaWFsLXRhYmxlJztcbmltcG9ydCB7IFVzZXJFdmVudEZpbHRlciwgVXNlckV2ZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VzZXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvYWNjb3VudC5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJFdmVudCwgVXNlckV2ZW50QWN0aW9uLCBVc2VyRXZlbnRUeXBlcyB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL3VzZXItZXZlbnQubW9kZWwnO1xuaW1wb3J0IHsgTG9jYWxTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2xvY2FsLXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgdG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgQXBwVGFibGUsIFJFU0VSVkVEX0VORF9DT0xVTU5TLCBSRVNFUlZFRF9TVEFSVF9DT0xVTU5TIH0gZnJvbSAnLi4vLi4vY29yZS90YWJsZS90YWJsZS5jbGFzcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1vZGFsQ29udHJvbGxlciwgUGxhdGZvcm0gfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBFbnRpdGllc1RhYmxlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2NvcmUvdGFibGUvZW50aXRpZXMtdGFibGUtZGF0YXNvdXJjZS5jbGFzcyc7XG5pbXBvcnQgeyBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBFbnRpdGllc1N0b3JhZ2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL3N0b3JhZ2UvZW50aXRpZXMtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFByZWRlZmluZWRDb2xvcnMgfSBmcm9tICdAaW9uaWMvY29yZSc7XG5pbXBvcnQgeyBJRW50aXR5IH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgRU5WSVJPTk1FTlQgfSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQuY2xhc3MnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckV2ZW50RGV0YWlsPFQgZXh0ZW5kcyBJRW50aXR5PFQ+PiB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuXG4gIGFjdGlvbj86IHN0cmluZyB8IGFueTtcbiAgYWN0aW9uVGl0bGU/OiBzdHJpbmc7XG4gIGFjdGlvbkNvbG9yPzogUHJlZGVmaW5lZENvbG9ycztcblxuICBpY29uPzogc3RyaW5nO1xuICBtYXRJY29uPzogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG4gIHRpbWU/OiBNb21lbnQ7XG5cbiAgLy8gQSBjb25maWcgcHJvcGVydHksIHRvIG92ZXJyaWRlIHRoZSB0aXRsZVxuICB0aXRsZVByb3BlcnR5Pzogc3RyaW5nO1xuICB0aXRsZUFyZ3M/OiB7W2tleTogc3RyaW5nXTogc3RyaW5nfTtcblxuICAvLyBjb252ZXJzaW9uXG4gIGZyb21PYmplY3Q/OiAoc291cmNlOiBhbnkpID0+IFQ7XG4gIGNoaWxkcmVuRmllbGRzPzogc3RyaW5nW107XG59XG5leHBvcnQgaW50ZXJmYWNlIFVzZXJFdmVudEljb257XG4gIGljb24/OiBzdHJpbmc7XG4gIG1hdEljb24/OiBzdHJpbmc7XG4gIGNvbG9yPzogUHJlZGVmaW5lZENvbG9ycztcbn1cbmNvbnN0IElDT05TX01BUDoge1trZXk6IHN0cmluZ106IFVzZXJFdmVudEljb24gfSA9IHtcbiAgREVCVUdfREFUQToge21hdEljb246ICdidWdfcmVwb3J0J30sXG4gIElOQk9YX01FU1NBR0U6IHttYXRJY29uOiAnbWFpbCd9LFxufTtcblxuLy8gVE9ETzogcmVmYWN0b3Igd2l0aCBhIHJlZ2lzdHJhdGlvbiBkb25lIGJ5IGRhdGEgc2VydmljZTpcbi8vIC0gdXNlckV2ZW50U2VydmljZS5yZWdpc3RlckV2ZW50QWN0aW9uKHtfX3R5cGVuYW1lOiAnVHJpcFZPJywgLi4ufSlcbi8vIC0gdXNlckV2ZW50U2VydmljZS5nZXRBY3Rpb25zRm9yKF9fdHlwZW5hbWUpOiBVc2VyRXZlbnREZXRhaWxBY3Rpb25cbi8qY29uc3QgREVUQUlMU19NQVA6IHtba2V5OiBzdHJpbmddOiBVc2VyRXZlbnRBY3Rpb248Um9vdERhdGFFbnRpdHk8YW55Pj59ID0ge1xuICBcIlRyaXBWT1wiOiB7XG4gICAgaWNvbjogbnVsbCxcbiAgICBtYXRJY29uOiBcImNvbnRlbnRfY29weVwiLFxuICAgIGFjdGlvbjogJ2NvcHlUb0xvY2FsJyxcbiAgICBhY3Rpb25UaXRsZTogJ1NPQ0lBTC5VU0VSX0VWRU5ULkJUTl9DT1BZX1RPX0xPQ0FMJyxcbiAgICBhY3Rpb25Db2xvcjogJ3ByaW1hcnknLFxuICAgIGZyb21PYmplY3Q6IFRyaXAuZnJvbU9iamVjdCxcbiAgICBjaGlsZHJlbkZpZWxkczogWydvcGVyYXRpb24nLCAnbGFuZGluZyddXG4gIH0sXG4gIFwiT2JzZXJ2ZWRMb2NhdGlvblZPXCI6IHtcbiAgICBpY29uOiBudWxsLFxuICAgIG1hdEljb246IFwiY29udGVudF9jb3B5XCIsXG4gICAgYWN0aW9uOiAnY29weVRvTG9jYWwnLFxuICAgIGFjdGlvblRpdGxlOiAnU09DSUFMLlVTRVJfRVZFTlQuQlROX0NPUFlfVE9fTE9DQUwnLFxuICAgIGFjdGlvbkNvbG9yOiAncHJpbWFyeScsXG4gICAgZnJvbU9iamVjdDogT2JzZXJ2ZWRMb2NhdGlvbi5mcm9tT2JqZWN0LFxuICAgIGNoaWxkcmVuRmllbGRzOiBbJ2xhbmRpbmdzJ11cbiAgfVxufSovXG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXVzZXItZXZlbnRzLXRhYmxlJyxcbiAgc3R5bGVVcmxzOiBbJ3VzZXItZXZlbnRzLnRhYmxlLnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItZXZlbnRzLnRhYmxlLmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxuICB9KVxuZXhwb3J0IGNsYXNzIFVzZXJFdmVudHNUYWJsZSBleHRlbmRzIEFwcFRhYmxlPFVzZXJFdmVudCwgVXNlckV2ZW50RmlsdGVyPlxuICBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgZGF0ZVRpbWVQYXR0ZXJuOiBzdHJpbmc7XG4gIGNhbkVkaXQ6IGJvb2xlYW47XG4gIGNhbkRlbGV0ZTogYm9vbGVhbjtcbiAgaXNBZG1pbjogYm9vbGVhbjtcblxuICBASW5wdXQoKSByZWNpcGllbnQ6IHN0cmluZztcblxuICBASW5wdXQoKSB3aXRoQ29udGVudDogYm9vbGVhbjtcbiAgQElucHV0KCkgZGVmYXVsdFNvcnRCeTogc3RyaW5nO1xuICBASW5wdXQoKSBkZWZhdWx0U29ydERpcmVjdGlvbjogU29ydERpcmVjdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByb3RlY3RlZCBhY2NvdW50U2VydmljZTogQWNjb3VudFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHNlcnZpY2U6IFVzZXJFdmVudFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGVudGl0aWVzOiBFbnRpdGllc1N0b3JhZ2UsXG4gICAgcHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KEVOVklST05NRU5UKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnRcbiAgKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IuZ2V0KEFjdGl2YXRlZFJvdXRlKSxcbiAgICAgIGluamVjdG9yLmdldChSb3V0ZXIpLFxuICAgICAgaW5qZWN0b3IuZ2V0KFBsYXRmb3JtKSxcbiAgICAgIGluamVjdG9yLmdldChMb2NhdGlvbiksXG4gICAgICBpbmplY3Rvci5nZXQoTW9kYWxDb250cm9sbGVyKSxcbiAgICAgIGluamVjdG9yLmdldChMb2NhbFNldHRpbmdzU2VydmljZSksXG4gICAgICAvLyBjb2x1bW5zXG4gICAgICBSRVNFUlZFRF9TVEFSVF9DT0xVTU5TXG4gICAgICAgIC5jb25jYXQoW1xuICAgICAgICAgICdjcmVhdGlvbkRhdGUnLFxuICAgICAgICAgICdpY29uJyxcbiAgICAgICAgICAnZXZlbnRUeXBlJyxcbiAgICAgICAgICAnbWVzc2FnZSdcbiAgICAgICAgXSlcbiAgICAgICAgLmNvbmNhdChSRVNFUlZFRF9FTkRfQ09MVU1OUyksXG4gICAgICBudWxsLFxuICAgICAgbnVsbCxcbiAgICAgIGluamVjdG9yKTtcblxuICAgIHRoaXMuaTE4bkNvbHVtblByZWZpeCA9ICdTT0NJQUwuVVNFUl9FVkVOVC4nO1xuICAgIHRoaXMuYXV0b0xvYWQgPSBmYWxzZTsgLy8gdGhpcy5zdGFydCgpXG4gICAgdGhpcy5pbmxpbmVFZGl0aW9uID0gZmFsc2U7XG4gICAgdGhpcy5kZWZhdWx0U29ydEJ5ID0gJ2NyZWF0aW9uRGF0ZSc7XG4gICAgdGhpcy5kZWZhdWx0U29ydERpcmVjdGlvbiA9ICdkZXNjJztcblxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIC8vIExvYWQgZGF0ZS90aW1lIHBhdHRlcm5cbiAgICB0aGlzLmRhdGVUaW1lUGF0dGVybiA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0NPTU1PTi5EQVRFX1RJTUVfUEFUVEVSTicpO1xuICAgIHRoaXMud2l0aENvbnRlbnQgPSB0b0Jvb2xlYW4odGhpcy53aXRoQ29udGVudCwgZmFsc2UpO1xuXG4gICAgY29uc3QgYWNjb3VudCA9IHRoaXMuYWNjb3VudFNlcnZpY2UuYWNjb3VudDtcbiAgICBjb25zdCBwdWJrZXkgPSBhY2NvdW50ICYmIGFjY291bnQucHVia2V5O1xuICAgIHRoaXMuaXNBZG1pbiA9IHRoaXMuYWNjb3VudFNlcnZpY2UuaXNBZG1pbigpO1xuICAgIHRoaXMuY2FuRWRpdCA9IHRoaXMuaXNBZG1pbiB8fCBwdWJrZXkgPT09IHRoaXMucmVjaXBpZW50O1xuICAgIHRoaXMuY2FuRGVsZXRlID0gdGhpcy5jYW5FZGl0O1xuXG4gICAgdGhpcy5zZXREYXRhc291cmNlKG5ldyBFbnRpdGllc1RhYmxlRGF0YVNvdXJjZShVc2VyRXZlbnQsXG4gICAgICB0aGlzLnNlcnZpY2UsXG4gICAgICBudWxsLFxuICAgICAge1xuICAgICAgICBwcmVwZW5kTmV3RWxlbWVudHM6IGZhbHNlLFxuICAgICAgICBzdXBwcmVzc0Vycm9yczogdHJ1ZSxcbiAgICAgICAgZGF0YVNlcnZpY2VPcHRpb25zOiB7XG4gICAgICAgICAgd2l0aENvbnRlbnQ6IHRoaXMud2l0aENvbnRlbnRcbiAgICAgICAgfVxuICAgICAgfSkpO1xuXG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5maWx0ZXIgfHwgbmV3IFVzZXJFdmVudEZpbHRlcigpO1xuICAgIGZpbHRlci5yZWNpcGllbnQgPSB0aGlzLnJlY2lwaWVudDtcbiAgICB0aGlzLnNldEZpbHRlcihmaWx0ZXIsIHtlbWl0RXZlbnQ6IHRydWV9KTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0KCkge1xuICAgIGNvbnNvbGUuZGVidWcoJ1t1c2VyLWV2ZW50XSBTdGFydGluZy4uLicpO1xuXG4gICAgLy8gV2FpdGluZyBhY2NvdW50IHRvIGJlIHJlYWR5XG4gICAgYXdhaXQgdGhpcy5hY2NvdW50U2VydmljZS5yZWFkeSgpO1xuXG4gICAgLy8gTG9hZCBkYXRhXG4gICAgdGhpcy5vblJlZnJlc2guZW1pdCgpO1xuICB9XG5cbiAgZ2V0SWNvbihzb3VyY2U6IFVzZXJFdmVudCk6IFVzZXJFdmVudEljb24ge1xuICAgIHJldHVybiBJQ09OU19NQVBbc291cmNlLmV2ZW50VHlwZV07XG4gIH1cblxuICBnZXREZXRhaWwoc291cmNlOiBVc2VyRXZlbnQpOiBQYXJ0aWFsPFVzZXJFdmVudERldGFpbDxJRW50aXR5PGFueT4+ICYge2FjdGlvbnM6IFVzZXJFdmVudEFjdGlvbjxhbnk+W119PiB7XG4gICAgaWYgKCFzb3VyY2UpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICBpZiAoc291cmNlLmNvbnRlbnQgJiYgc291cmNlLmV2ZW50VHlwZSA9PT0gVXNlckV2ZW50VHlwZXMuREVCVUdfREFUQSkge1xuICAgICAgY29uc3QgY29udGV4dCA9IHNvdXJjZS5jb250ZW50LmNvbnRleHQ7XG4gICAgICBpZiAoY29udGV4dCAmJiBjb250ZXh0Ll9fdHlwZW5hbWUpIHtcbiAgICAgICAgY29uc3QgYWN0aW9ucyA9IHRoaXMuc2VydmljZS5nZXRBY3Rpb25zQnlUeXBlbmFtZShjb250ZXh0Ll9fdHlwZW5hbWUpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGFjdGlvbnMsXG4gICAgICAgICAgdGl0bGU6IHNvdXJjZS5jb250ZW50LmVycm9yICYmIHNvdXJjZS5jb250ZW50LmVycm9yLm1lc3NhZ2UgfHwgc291cmNlLmNvbnRlbnQubWVzc2FnZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogc291cmNlLmNvbnRlbnQuZXJyb3IgJiYgc291cmNlLmNvbnRlbnQuZXJyb3IuZGV0YWlscyB8fCB1bmRlZmluZWRcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zb2xlLmRlYnVnKCdUT0RPOiBpbXBsZW1lbnQgZ2V0RGV0YWlsKCkgZm9yIGV2ZW50OiAnLCBzb3VyY2UpO1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG5cbiAgYXN5bmMgZG9BY3Rpb24oYWN0aW9uOiBVc2VyRXZlbnRBY3Rpb248YW55Piwgcm93OiBUYWJsZUVsZW1lbnQ8VXNlckV2ZW50Pikge1xuXG4gICAgY29uc3QgZXZlbnQgPSByb3cuY3VycmVudERhdGE7XG4gICAgY29uc3QgY29udGV4dCA9IGV2ZW50LmNvbnRlbnQgJiYgZXZlbnQuY29udGVudC5jb250ZXh0O1xuXG4gICAgdGhpcy5tYXJrQXNMb2FkaW5nKCk7XG5cbiAgICBpZiAoYWN0aW9uICYmIHR5cGVvZiBhY3Rpb24uZXhlY3V0ZUFjdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgbGV0IHJlcyA9IGFjdGlvbi5leGVjdXRlQWN0aW9uKGV2ZW50LCBjb250ZXh0KTtcbiAgICAgICAgcmVzID0gKHJlcyBpbnN0YW5jZW9mIFByb21pc2UpID8gYXdhaXQgcmVzIDogcmVzO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHRoaXMuc2V0RXJyb3IoZXJyICYmIGVyci5tZXNzYWdlIHx8IGVycik7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFt1c2VyLWV2ZW50XSBGYWlsZWQgdG8gZXhlY3V0ZSBhY3Rpb24gJHthY3Rpb24ubmFtZX06ICR7ZXJyICYmIGVyci5tZXNzYWdlIHx8IGVycn1gLCBlcnIpO1xuICAgICAgfVxuICAgICAgZmluYWxseSB7XG4gICAgICAgIHRoaXMubWFya0FzTG9hZGVkKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudHMudGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9saXN0L3VzZXItZXZlbnRzLnRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXZILE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBbUIsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFaEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUl0RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUUzRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFHdkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBK0J0RSxNQUFNLFNBQVMsR0FBb0M7SUFDakQsVUFBVSxFQUFFLEVBQUMsT0FBTyxFQUFFLFlBQVksRUFBQztJQUNuQyxhQUFhLEVBQUUsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFDO0NBQ2pDLENBQUM7QUFFRiwyREFBMkQ7QUFDM0Qsc0VBQXNFO0FBQ3RFLHNFQUFzRTtBQUN0RTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQVNILE1BQU0sT0FBTyxlQUFnQixTQUFRLFFBQW9DO0lBY3ZFLFlBQ0UsUUFBa0IsRUFDUixjQUE4QixFQUM5QixPQUF5QixF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QUFHLENBQUM7aUJBQ2xEO2dCQUFDLE9BQU8sR0FBRyxFQUFFO29CQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLENBQUM7b0JBQ3pDLE9BQU8sQ0FBQyxLQUFLLENBQUMseUNBQXlDLE1BQU0sQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQzFHO3dCQUNPO29CQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztpQkFDckI7YUFDRjtRQUNILENBQUM7S0FBQTs7O1lBbklGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2dCQUVqQywyMUxBQXVDO2dCQUN2QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDOUM7OztZQW5GcUUsUUFBUTtZQUd2RSxjQUFjO1lBREcsZ0JBQWdCO1lBWWpDLGVBQWU7WUFkVSxpQkFBaUI7NENBd0c5QyxNQUFNLFNBQUMsV0FBVzs7O3dCQVpwQixLQUFLOzBCQUVMLEtBQUs7NEJBQ0wsS0FBSzttQ0FDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYmxlRWxlbWVudCB9IGZyb20gJ0BlLWlzL25neC1tYXRlcmlhbC10YWJsZSc7XG5pbXBvcnQgeyBVc2VyRXZlbnRGaWx0ZXIsIFVzZXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91c2VyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2FjY291bnQuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyRXZlbnQsIFVzZXJFdmVudEFjdGlvbiwgVXNlckV2ZW50VHlwZXMgfSBmcm9tICcuLi9zZXJ2aWNlcy9tb2RlbC91c2VyLWV2ZW50Lm1vZGVsJztcbmltcG9ydCB7IExvY2FsU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9sb2NhbC1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IHRvQm9vbGVhbiB9IGZyb20gJy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IEFwcFRhYmxlLCBSRVNFUlZFRF9FTkRfQ09MVU1OUywgUkVTRVJWRURfU1RBUlRfQ09MVU1OUyB9IGZyb20gJy4uLy4uL2NvcmUvdGFibGUvdGFibGUuY2xhc3MnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNb2RhbENvbnRyb2xsZXIsIFBsYXRmb3JtIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRW50aXRpZXNUYWJsZURhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi9jb3JlL3RhYmxlL2VudGl0aWVzLXRhYmxlLWRhdGFzb3VyY2UuY2xhc3MnO1xuaW1wb3J0IHsgU29ydERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgRW50aXRpZXNTdG9yYWdlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9zdG9yYWdlL2VudGl0aWVzLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBQcmVkZWZpbmVkQ29sb3JzIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IEVOVklST05NRU5UIH0gZnJvbSAnLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LmNsYXNzJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJFdmVudERldGFpbDxUIGV4dGVuZHMgSUVudGl0eTxUPj4ge1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcblxuICBhY3Rpb24/OiBzdHJpbmcgfCBhbnk7XG4gIGFjdGlvblRpdGxlPzogc3RyaW5nO1xuICBhY3Rpb25Db2xvcj86IFByZWRlZmluZWRDb2xvcnM7XG5cbiAgaWNvbj86IHN0cmluZztcbiAgbWF0SWNvbj86IHN0cmluZztcbiAgY29sb3I/OiBzdHJpbmc7XG4gIGNzc0NsYXNzPzogc3RyaW5nO1xuICB0aW1lPzogTW9tZW50O1xuXG4gIC8vIEEgY29uZmlnIHByb3BlcnR5LCB0byBvdmVycmlkZSB0aGUgdGl0bGVcbiAgdGl0bGVQcm9wZXJ0eT86IHN0cmluZztcbiAgdGl0bGVBcmdzPzoge1trZXk6IHN0cmluZ106IHN0cmluZ307XG5cbiAgLy8gY29udmVyc2lvblxuICBmcm9tT2JqZWN0PzogKHNvdXJjZTogYW55KSA9PiBUO1xuICBjaGlsZHJlbkZpZWxkcz86IHN0cmluZ1tdO1xufVxuZXhwb3J0IGludGVyZmFjZSBVc2VyRXZlbnRJY29ue1xuICBpY29uPzogc3RyaW5nO1xuICBtYXRJY29uPzogc3RyaW5nO1xuICBjb2xvcj86IFByZWRlZmluZWRDb2xvcnM7XG59XG5jb25zdCBJQ09OU19NQVA6IHtba2V5OiBzdHJpbmddOiBVc2VyRXZlbnRJY29uIH0gPSB7XG4gIERFQlVHX0RBVEE6IHttYXRJY29uOiAnYnVnX3JlcG9ydCd9LFxuICBJTkJPWF9NRVNTQUdFOiB7bWF0SWNvbjogJ21haWwnfSxcbn07XG5cbi8vIFRPRE86IHJlZmFjdG9yIHdpdGggYSByZWdpc3RyYXRpb24gZG9uZSBieSBkYXRhIHNlcnZpY2U6XG4vLyAtIHVzZXJFdmVudFNlcnZpY2UucmVnaXN0ZXJFdmVudEFjdGlvbih7X190eXBlbmFtZTogJ1RyaXBWTycsIC4uLn0pXG4vLyAtIHVzZXJFdmVudFNlcnZpY2UuZ2V0QWN0aW9uc0ZvcihfX3R5cGVuYW1lKTogVXNlckV2ZW50RGV0YWlsQWN0aW9uXG4vKmNvbnN0IERFVEFJTFNfTUFQOiB7W2tleTogc3RyaW5nXTogVXNlckV2ZW50QWN0aW9uPFJvb3REYXRhRW50aXR5PGFueT4+fSA9IHtcbiAgXCJUcmlwVk9cIjoge1xuICAgIGljb246IG51bGwsXG4gICAgbWF0SWNvbjogXCJjb250ZW50X2NvcHlcIixcbiAgICBhY3Rpb246ICdjb3B5VG9Mb2NhbCcsXG4gICAgYWN0aW9uVGl0bGU6ICdTT0NJQUwuVVNFUl9FVkVOVC5CVE5fQ09QWV9UT19MT0NBTCcsXG4gICAgYWN0aW9uQ29sb3I6ICdwcmltYXJ5JyxcbiAgICBmcm9tT2JqZWN0OiBUcmlwLmZyb21PYmplY3QsXG4gICAgY2hpbGRyZW5GaWVsZHM6IFsnb3BlcmF0aW9uJywgJ2xhbmRpbmcnXVxuICB9LFxuICBcIk9ic2VydmVkTG9jYXRpb25WT1wiOiB7XG4gICAgaWNvbjogbnVsbCxcbiAgICBtYXRJY29uOiBcImNvbnRlbnRfY29weVwiLFxuICAgIGFjdGlvbjogJ2NvcHlUb0xvY2FsJyxcbiAgICBhY3Rpb25UaXRsZTogJ1NPQ0lBTC5VU0VSX0VWRU5ULkJUTl9DT1BZX1RPX0xPQ0FMJyxcbiAgICBhY3Rpb25Db2xvcjogJ3ByaW1hcnknLFxuICAgIGZyb21PYmplY3Q6IE9ic2VydmVkTG9jYXRpb24uZnJvbU9iamVjdCxcbiAgICBjaGlsZHJlbkZpZWxkczogWydsYW5kaW5ncyddXG4gIH1cbn0qL1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC11c2VyLWV2ZW50cy10YWJsZScsXG4gIHN0eWxlVXJsczogWyd1c2VyLWV2ZW50cy50YWJsZS5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWV2ZW50cy50YWJsZS5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbiAgfSlcbmV4cG9ydCBjbGFzcyBVc2VyRXZlbnRzVGFibGUgZXh0ZW5kcyBBcHBUYWJsZTxVc2VyRXZlbnQsIFVzZXJFdmVudEZpbHRlcj5cbiAgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGRhdGVUaW1lUGF0dGVybjogc3RyaW5nO1xuICBjYW5FZGl0OiBib29sZWFuO1xuICBjYW5EZWxldGU6IGJvb2xlYW47XG4gIGlzQWRtaW46IGJvb2xlYW47XG5cbiAgQElucHV0KCkgcmVjaXBpZW50OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgd2l0aENvbnRlbnQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRlZmF1bHRTb3J0Qnk6IHN0cmluZztcbiAgQElucHV0KCkgZGVmYXVsdFNvcnREaXJlY3Rpb246IFNvcnREaXJlY3Rpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByb3RlY3RlZCBhY2NvdW50U2VydmljZTogQWNjb3VudFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHNlcnZpY2U6IFVzZXJFdmVudFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGVudGl0aWVzOiBFbnRpdGllc1N0b3JhZ2UsXG4gICAgcHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KEVOVklST05NRU5UKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnRcbiAgKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IsXG4gICAgICAvLyBjb2x1bW5zXG4gICAgICBSRVNFUlZFRF9TVEFSVF9DT0xVTU5TXG4gICAgICAgIC5jb25jYXQoW1xuICAgICAgICAgICdjcmVhdGlvbkRhdGUnLFxuICAgICAgICAgICdpY29uJyxcbiAgICAgICAgICAnZXZlbnRUeXBlJyxcbiAgICAgICAgICAnbWVzc2FnZSdcbiAgICAgICAgXSlcbiAgICAgICAgLmNvbmNhdChSRVNFUlZFRF9FTkRfQ09MVU1OUyksXG4gICAgICBudWxsLFxuICAgICAgbnVsbCk7XG5cbiAgICB0aGlzLmkxOG5Db2x1bW5QcmVmaXggPSAnU09DSUFMLlVTRVJfRVZFTlQuJztcbiAgICB0aGlzLmF1dG9Mb2FkID0gZmFsc2U7IC8vIHRoaXMuc3RhcnQoKVxuICAgIHRoaXMuaW5saW5lRWRpdGlvbiA9IGZhbHNlO1xuICAgIHRoaXMuZGVmYXVsdFNvcnRCeSA9ICdjcmVhdGlvbkRhdGUnO1xuICAgIHRoaXMuZGVmYXVsdFNvcnREaXJlY3Rpb24gPSAnZGVzYyc7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAvLyBMb2FkIGRhdGUvdGltZSBwYXR0ZXJuXG4gICAgdGhpcy5kYXRlVGltZVBhdHRlcm4gPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdDT01NT04uREFURV9USU1FX1BBVFRFUk4nKTtcbiAgICB0aGlzLndpdGhDb250ZW50ID0gdG9Cb29sZWFuKHRoaXMud2l0aENvbnRlbnQsIGZhbHNlKTtcblxuICAgIGNvbnN0IGFjY291bnQgPSB0aGlzLmFjY291bnRTZXJ2aWNlLmFjY291bnQ7XG4gICAgY29uc3QgcHVia2V5ID0gYWNjb3VudCAmJiBhY2NvdW50LnB1YmtleTtcbiAgICB0aGlzLmlzQWRtaW4gPSB0aGlzLmFjY291bnRTZXJ2aWNlLmlzQWRtaW4oKTtcbiAgICB0aGlzLmNhbkVkaXQgPSB0aGlzLmlzQWRtaW4gfHwgcHVia2V5ID09PSB0aGlzLnJlY2lwaWVudDtcbiAgICB0aGlzLmNhbkRlbGV0ZSA9IHRoaXMuY2FuRWRpdDtcblxuICAgIHRoaXMuc2V0RGF0YXNvdXJjZShuZXcgRW50aXRpZXNUYWJsZURhdGFTb3VyY2UoVXNlckV2ZW50LFxuICAgICAgdGhpcy5zZXJ2aWNlLFxuICAgICAgbnVsbCxcbiAgICAgIHtcbiAgICAgICAgcHJlcGVuZE5ld0VsZW1lbnRzOiBmYWxzZSxcbiAgICAgICAgc3VwcHJlc3NFcnJvcnM6IHRydWUsXG4gICAgICAgIGRhdGFTZXJ2aWNlT3B0aW9uczoge1xuICAgICAgICAgIHdpdGhDb250ZW50OiB0aGlzLndpdGhDb250ZW50XG4gICAgICAgIH1cbiAgICAgIH0pKTtcblxuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZmlsdGVyIHx8IG5ldyBVc2VyRXZlbnRGaWx0ZXIoKTtcbiAgICBmaWx0ZXIucmVjaXBpZW50ID0gdGhpcy5yZWNpcGllbnQ7XG4gICAgdGhpcy5zZXRGaWx0ZXIoZmlsdGVyLCB7ZW1pdEV2ZW50OiB0cnVlfSk7XG4gIH1cblxuICBhc3luYyBzdGFydCgpIHtcbiAgICBjb25zb2xlLmRlYnVnKCdbdXNlci1ldmVudF0gU3RhcnRpbmcuLi4nKTtcblxuICAgIC8vIFdhaXRpbmcgYWNjb3VudCB0byBiZSByZWFkeVxuICAgIGF3YWl0IHRoaXMuYWNjb3VudFNlcnZpY2UucmVhZHkoKTtcblxuICAgIC8vIExvYWQgZGF0YVxuICAgIHRoaXMub25SZWZyZXNoLmVtaXQoKTtcbiAgfVxuXG4gIGdldEljb24oc291cmNlOiBVc2VyRXZlbnQpOiBVc2VyRXZlbnRJY29uIHtcbiAgICByZXR1cm4gSUNPTlNfTUFQW3NvdXJjZS5ldmVudFR5cGVdO1xuICB9XG5cbiAgZ2V0RGV0YWlsKHNvdXJjZTogVXNlckV2ZW50KTogUGFydGlhbDxVc2VyRXZlbnREZXRhaWw8SUVudGl0eTxhbnk+PiAmIHthY3Rpb25zOiBVc2VyRXZlbnRBY3Rpb248YW55PltdfT4ge1xuICAgIGlmICghc291cmNlKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgaWYgKHNvdXJjZS5jb250ZW50ICYmIHNvdXJjZS5ldmVudFR5cGUgPT09IFVzZXJFdmVudFR5cGVzLkRFQlVHX0RBVEEpIHtcbiAgICAgIGNvbnN0IGNvbnRleHQgPSBzb3VyY2UuY29udGVudC5jb250ZXh0O1xuICAgICAgaWYgKGNvbnRleHQgJiYgY29udGV4dC5fX3R5cGVuYW1lKSB7XG4gICAgICAgIGNvbnN0IGFjdGlvbnMgPSB0aGlzLnNlcnZpY2UuZ2V0QWN0aW9uc0J5VHlwZW5hbWUoY29udGV4dC5fX3R5cGVuYW1lKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBhY3Rpb25zLFxuICAgICAgICAgIHRpdGxlOiBzb3VyY2UuY29udGVudC5lcnJvciAmJiBzb3VyY2UuY29udGVudC5lcnJvci5tZXNzYWdlIHx8IHNvdXJjZS5jb250ZW50Lm1lc3NhZ2UsXG4gICAgICAgICAgZGVzY3JpcHRpb246IHNvdXJjZS5jb250ZW50LmVycm9yICYmIHNvdXJjZS5jb250ZW50LmVycm9yLmRldGFpbHMgfHwgdW5kZWZpbmVkXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc29sZS5kZWJ1ZygnVE9ETzogaW1wbGVtZW50IGdldERldGFpbCgpIGZvciBldmVudDogJywgc291cmNlKTtcbiAgICByZXR1cm4ge307XG4gIH1cblxuXG4gIGFzeW5jIGRvQWN0aW9uKGFjdGlvbjogVXNlckV2ZW50QWN0aW9uPGFueT4sIHJvdzogVGFibGVFbGVtZW50PFVzZXJFdmVudD4pIHtcblxuICAgIGNvbnN0IGV2ZW50ID0gcm93LmN1cnJlbnREYXRhO1xuICAgIGNvbnN0IGNvbnRleHQgPSBldmVudC5jb250ZW50ICYmIGV2ZW50LmNvbnRlbnQuY29udGV4dDtcblxuICAgIHRoaXMubWFya0FzTG9hZGluZygpO1xuXG4gICAgaWYgKGFjdGlvbiAmJiB0eXBlb2YgYWN0aW9uLmV4ZWN1dGVBY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGxldCByZXMgPSBhY3Rpb24uZXhlY3V0ZUFjdGlvbihldmVudCwgY29udGV4dCk7XG4gICAgICAgIHJlcyA9IChyZXMgaW5zdGFuY2VvZiBQcm9taXNlKSA/IGF3YWl0IHJlcyA6IHJlcztcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aGlzLnNldEVycm9yKGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnIpO1xuICAgICAgICBjb25zb2xlLmVycm9yKGBbdXNlci1ldmVudF0gRmFpbGVkIHRvIGV4ZWN1dGUgYWN0aW9uICR7YWN0aW9uLm5hbWV9OiAke2VyciAmJiBlcnIubWVzc2FnZSB8fCBlcnJ9YCwgZXJyKTtcbiAgICAgIH1cbiAgICAgIGZpbmFsbHkge1xuICAgICAgICB0aGlzLm1hcmtBc0xvYWRlZCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iXX0=
|