@firestitch/form 18.0.8 → 18.0.10
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/app/components/confirm-unsaved/confirm-unsaved.component.d.ts +1 -1
- package/app/directives/button.directive.d.ts +9 -14
- package/app/directives/form/form.directive.d.ts +12 -22
- package/app/directives/form-base/form-base.directive.d.ts +32 -0
- package/app/directives/form-base/index.d.ts +1 -0
- package/app/directives/form-group/form-group.directive.d.ts +12 -0
- package/app/directives/form-group/index.d.ts +1 -0
- package/app/directives/index.d.ts +3 -2
- package/app/fs-form.module.d.ts +2 -2
- package/app/interfaces/submit-event.d.ts +2 -2
- package/app/interfaces/submitted-event.d.ts +2 -5
- package/app/services/fsform.service.d.ts +3 -8
- package/esm2022/app/components/confirm-unsaved/confirm-unsaved.component.mjs +11 -6
- package/esm2022/app/components/form-dialog-actions/form-dialog-actions.component.mjs +1 -1
- package/esm2022/app/components/form-template/form-template.component.mjs +1 -1
- package/esm2022/app/components/form-template/index.mjs +1 -1
- package/esm2022/app/components/form-template-outlet/form-template-outlet.component.mjs +1 -1
- package/esm2022/app/components/form-template-outlet/index.mjs +1 -1
- package/esm2022/app/directives/button.directive.mjs +24 -52
- package/esm2022/app/directives/form/form.directive.mjs +94 -160
- package/esm2022/app/directives/form-base/form-base.directive.mjs +104 -0
- package/esm2022/app/directives/form-base/index.mjs +2 -0
- package/esm2022/app/directives/form-group/form-group.directive.mjs +32 -0
- package/esm2022/app/directives/form-group/index.mjs +2 -0
- package/esm2022/app/directives/index.mjs +4 -3
- package/esm2022/app/fs-form.module.mjs +8 -5
- package/esm2022/app/guards/form-deactivate.guard.mjs +2 -2
- package/esm2022/app/interfaces/submit-event.mjs +1 -1
- package/esm2022/app/interfaces/submitted-event.mjs +1 -1
- package/esm2022/app/services/fsform.service.mjs +12 -30
- package/esm2022/public_api.mjs +2 -1
- package/fesm2022/firestitch-form.mjs +301 -281
- package/fesm2022/firestitch-form.mjs.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +1 -0
- package/styles.scss +36 -32
|
@@ -1,48 +1,35 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Directive, ElementRef,
|
|
1
|
+
import { ChangeDetectorRef, Directive, ElementRef, HostBinding, inject, Input, } from '@angular/core';
|
|
2
2
|
import { MatButton } from '@angular/material/button';
|
|
3
3
|
import { fromEvent, Subject } from 'rxjs';
|
|
4
4
|
import { takeUntil } from 'rxjs/operators';
|
|
5
|
-
import { FsFormDirective } from './form
|
|
5
|
+
import { FsFormDirective } from './form';
|
|
6
|
+
import { FsFormGroupDirective } from './form-group';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/material/button";
|
|
8
|
-
import * as i2 from "./form/form.directive";
|
|
9
8
|
export class FsButtonDirective {
|
|
10
|
-
_matButton;
|
|
11
|
-
_form;
|
|
12
|
-
_elementRef;
|
|
13
|
-
_cdRef;
|
|
14
9
|
name;
|
|
15
10
|
dirtySubmit = true;
|
|
16
|
-
form;
|
|
17
11
|
transitionStyle = null;
|
|
18
|
-
active = false;
|
|
19
12
|
submit = false;
|
|
20
13
|
_previousDisabled = false;
|
|
21
14
|
_destroy$ = new Subject();
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
15
|
+
_formGroup = inject(FsFormGroupDirective, { optional: true });
|
|
16
|
+
_form = inject(FsFormDirective, { optional: true });
|
|
17
|
+
_matButton = inject(MatButton, { optional: true, host: true });
|
|
18
|
+
_elementRef = inject(ElementRef);
|
|
19
|
+
_cdRef = inject(ChangeDetectorRef);
|
|
20
|
+
_formBase;
|
|
28
21
|
ngOnInit() {
|
|
29
22
|
this.submit = this._elementRef.nativeElement.getAttribute('type') === 'submit';
|
|
30
|
-
this.
|
|
31
|
-
if (this.
|
|
32
|
-
this.
|
|
23
|
+
this._formBase = this._form || this._formGroup;
|
|
24
|
+
if (this._formBase) {
|
|
25
|
+
this._formBase.addButton(this);
|
|
33
26
|
if (this.submit) {
|
|
34
27
|
fromEvent(this.element, 'click')
|
|
35
28
|
.pipe(takeUntil(this._destroy$))
|
|
36
29
|
.subscribe(() => {
|
|
37
|
-
this.
|
|
30
|
+
this._formBase.activeSubmitButton = this;
|
|
31
|
+
this._formBase.triggerSubmit();
|
|
38
32
|
});
|
|
39
|
-
if (this.dirtySubmit) {
|
|
40
|
-
if (this.form.dirtySubmitButton) {
|
|
41
|
-
if (!this.form.ngForm.dirty) {
|
|
42
|
-
this.disable();
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
33
|
this.transitionStyle = 'none';
|
|
47
34
|
setTimeout(() => {
|
|
48
35
|
this.transitionStyle = null;
|
|
@@ -51,7 +38,7 @@ export class FsButtonDirective {
|
|
|
51
38
|
}
|
|
52
39
|
}
|
|
53
40
|
disable() {
|
|
54
|
-
if (this._matButton && !this.
|
|
41
|
+
if (this._matButton && !this._formBase.activeSubmitButton) {
|
|
55
42
|
this._previousDisabled = this._matButton.disabled;
|
|
56
43
|
this._matButton.disabled = true;
|
|
57
44
|
this._matButton.disableRipple = true;
|
|
@@ -86,16 +73,12 @@ export class FsButtonDirective {
|
|
|
86
73
|
setClass(cls) {
|
|
87
74
|
const svg = this._getSvg(cls);
|
|
88
75
|
this._resetClass();
|
|
89
|
-
this.
|
|
90
|
-
this.element.classList.add(`submit-${cls}`);
|
|
76
|
+
this.element.classList.add(`fs-form-submit-button-${cls}`);
|
|
91
77
|
this.element.append(svg);
|
|
92
78
|
}
|
|
93
79
|
get element() {
|
|
94
80
|
return this._elementRef.nativeElement;
|
|
95
81
|
}
|
|
96
|
-
resetActive() {
|
|
97
|
-
this.active = false;
|
|
98
|
-
}
|
|
99
82
|
reset() {
|
|
100
83
|
if (!this._previousDisabled) {
|
|
101
84
|
this.enable();
|
|
@@ -112,14 +95,11 @@ export class FsButtonDirective {
|
|
|
112
95
|
ngOnDestroy() {
|
|
113
96
|
this._destroy$.next(null);
|
|
114
97
|
this._destroy$.complete();
|
|
115
|
-
this.
|
|
116
|
-
}
|
|
117
|
-
_disableShadowAnimation() {
|
|
118
|
-
// .mat-elevation-z2 removes the click shadow animation
|
|
119
|
-
//this.element.classList.add('mat-elevation-z2');
|
|
98
|
+
this._formBase?.removeButton(this);
|
|
120
99
|
}
|
|
121
100
|
_resetClass() {
|
|
122
|
-
this.element.classList
|
|
101
|
+
this.element.classList
|
|
102
|
+
.remove('fs-form-submit-button-success', 'fs-form-submit-button-error', 'fs-form-submit-button-process');
|
|
123
103
|
}
|
|
124
104
|
_getSvg(type) {
|
|
125
105
|
if (type === 'success') {
|
|
@@ -146,28 +126,20 @@ export class FsButtonDirective {
|
|
|
146
126
|
return new DOMParser().parseFromString('<svg class="svg-icon svg-icon-error" xmlns="http://www.w3.org/2000/svg" width="38px" height="38px" viewBox="0 0 16 16"><g><path d="M8 1c3.9 0 7 3.1 7 7s-3.1 7-7 7-7-3.1-7-7 3.1-7 7-7zM8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8v0z" data-original="#444444" data-old_color="#444444"/><path d="M12.2 10.8l-2.8-2.8 2.8-2.8-1.4-1.4-2.8 2.8-2.8-2.8-1.4 1.4 2.8 2.8-2.8 2.8 1.4 1.4 2.8-2.8 2.8 2.8z"/></g> </svg>', 'text/xml').firstChild;
|
|
147
127
|
}
|
|
148
128
|
}
|
|
149
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsButtonDirective, deps: [
|
|
150
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: FsButtonDirective, selector: "[mat-raised-button]
|
|
129
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
130
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: FsButtonDirective, selector: "[mat-raised-button],[mat-button],[mat-flat-button],[mat-stroked-button]", inputs: { name: "name", dirtySubmit: "dirtySubmit" }, host: { properties: { "style.transition": "this.transitionStyle" } }, ngImport: i0 });
|
|
151
131
|
}
|
|
152
132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsButtonDirective, decorators: [{
|
|
153
133
|
type: Directive,
|
|
154
134
|
args: [{
|
|
155
|
-
selector: '[mat-raised-button]
|
|
135
|
+
selector: '[mat-raised-button],[mat-button],[mat-flat-button],[mat-stroked-button]',
|
|
156
136
|
}]
|
|
157
|
-
}],
|
|
158
|
-
type: Optional
|
|
159
|
-
}, {
|
|
160
|
-
type: Host
|
|
161
|
-
}] }, { type: i2.FsFormDirective, decorators: [{
|
|
162
|
-
type: Optional
|
|
163
|
-
}] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { name: [{
|
|
137
|
+
}], propDecorators: { name: [{
|
|
164
138
|
type: Input
|
|
165
139
|
}], dirtySubmit: [{
|
|
166
140
|
type: Input
|
|
167
|
-
}], form: [{
|
|
168
|
-
type: Input
|
|
169
141
|
}], transitionStyle: [{
|
|
170
142
|
type: HostBinding,
|
|
171
143
|
args: ['style.transition']
|
|
172
144
|
}] } });
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvZGlyZWN0aXZlcy9idXR0b24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixRQUFRLEdBQ2hHLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUdyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBTXhELE1BQU0sT0FBTyxpQkFBaUI7SUFxQkU7SUFDUjtJQUNaO0lBQ0E7SUFyQkgsSUFBSSxDQUFDO0lBR0wsV0FBVyxHQUFHLElBQUksQ0FBQztJQUduQixJQUFJLENBQWtCO0lBR3RCLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFFdkIsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNmLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFFZCxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDMUIsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFFbEMsWUFDOEIsVUFBcUIsRUFDN0IsS0FBc0IsRUFDbEMsV0FBdUIsRUFDdkIsTUFBeUI7UUFITCxlQUFVLEdBQVYsVUFBVSxDQUFXO1FBQzdCLFVBQUssR0FBTCxLQUFLLENBQWlCO1FBQ2xDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQW1CO0lBQ2hDLENBQUM7SUFFRyxRQUFRO1FBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFD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O0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVPLE9BQU8sQ0FBQyxJQUFJO1FBQ2xCLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7Ozs7Ozs7O2FBUWhDLEVBQUUsVUFBVSxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ2xDLENBQUM7UUFFRCxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2QixPQUFPLElBQUksU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDOzs7Ozs7YUFNaEMsRUFBRSxVQUFVLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDbEMsQ0FBQztRQUVELElBQUksSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUMsOFpBQThaLEVBQUUsVUFBVSxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ2hlLENBQUM7SUFDSCxDQUFDO3VHQTFLVSxpQkFBaUI7MkZBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFIN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaU1BQWlNO2lCQUM1TTs7MEJBc0JJLFFBQVE7OzBCQUFJLElBQUk7OzBCQUNoQixRQUFRO2tHQW5CSixJQUFJO3NCQURWLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxJQUFJO3NCQURWLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsV0FBVzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0LCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdEJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cblxuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZzRm9ybURpcmVjdGl2ZSB9IGZyb20gJy4vZm9ybS9mb3JtLmRpcmVjdGl2ZSc7XG5cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW21hdC1yYWlzZWQtYnV0dG9uXTpub3QoW2ZzRm9ybUJ1dHRvblN0YW5kYWxvbmVdKSxbbWF0LWJ1dHRvbl06bm90KFtmc0Zvcm1CdXR0b25TdGFuZGFsb25lXSksW21hdC1mbGF0LWJ1dHRvbl06bm90KFtmc0Zvcm1CdXR0b25TdGFuZGFsb25lXSksW21hdC1zdHJva2VkLWJ1dHRvbl06bm90KFtmc0Zvcm1CdXR0b25TdGFuZGFsb25lXSknLFxufSlcbmV4cG9ydCBjbGFzcyBGc0J1dHRvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbmFtZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGlydHlTdWJtaXQgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb3JtOiBGc0Zvcm1EaXJlY3RpdmU7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS50cmFuc2l0aW9uJylcbiAgcHVibGljIHRyYW5zaXRpb25TdHlsZSA9IG51bGw7XG5cbiAgcHVibGljIGFjdGl2ZSA9IGZhbHNlO1xuICBwdWJsaWMgc3VibWl0ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfcHJldmlvdXNEaXNhYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEhvc3QoKSBwcml2YXRlIF9tYXRCdXR0b246IE1hdEJ1dHRvbixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9mb3JtOiBGc0Zvcm1EaXJlY3RpdmUsXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zdWJtaXQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCd0eXBlJykgPT09ICdzdWJtaXQnO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybSB8fCB0aGlzLl9mb3JtO1xuXG4gICAgaWYgKHRoaXMuZm9ybSkge1xuICAgICAgdGhpcy5mb3JtLmFkZEJ1dHRvbih0aGlzKTtcblxuICAgICAgaWYodGhpcy5zdWJtaXQpIHtcbiAgICAgICAgZnJvbUV2ZW50KHRoaXMuZWxlbWVudCwgJ2NsaWNrJylcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmRpcnR5U3VibWl0KSB7XG4gICAgICAgICAgaWYgKHRoaXMuZm9ybS5kaXJ0eVN1Ym1pdEJ1dHRvbikge1xuICAgICAgICAgICAgaWYoIXRoaXMuZm9ybS5uZ0Zvcm0uZGlydHkpIHtcbiAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50cmFuc2l0aW9uU3R5bGUgPSAnbm9uZSc7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMudHJhbnNpdGlvblN0eWxlID0gbnVsbDtcbiAgICAgICAgfSwgNTAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGlzYWJsZSgpIHsgICAgXG4gICAgaWYgKHRoaXMuX21hdEJ1dHRvbiAmJiAhdGhpcy5hY3RpdmUpIHtcbiAgICAgIHRoaXMuX3ByZXZpb3VzRGlzYWJsZWQgPSB0aGlzLl9tYXRCdXR0b24uZGlzYWJsZWQ7XG4gICAgICB0aGlzLl9tYXRCdXR0b24uZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgdGhpcy5fbWF0QnV0dG9uLmRpc2FibGVSaXBwbGUgPSB0cnVlO1xuICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7IFxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbmFibGUoKSB7XG4gICAgaWYgKHRoaXMuX21hdEJ1dHRvbikge1xuICAgICAgdGhpcy5fbWF0QnV0dG9uLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICB0aGlzLl9tYXRCdXR0b24uZGlzYWJsZVJpcHBsZSA9IHRydWU7XG4gICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcHJvY2VzcygpIHtcbiAgICB0aGlzLnNldENsYXNzKCdwcm9jZXNzJyk7XG4gICAgaWYgKHRoaXMuX21hdEJ1dHRvbikge1xuICAgICAgdGhpcy5fbWF0QnV0dG9uLmRpc2FibGVSaXBwbGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdWNjZXNzKCkge1xuICAgIHRoaXMuc2V0Q2xhc3MoJ3N1Y2Nlc3MnKTtcbiAgICBpZiAodGhpcy5fbWF0QnV0dG9uKSB7XG4gICAgICB0aGlzLl9tYXRCdXR0b24uZGlzYWJsZVJpcHBsZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlcnJvcigpIHtcbiAgICB0aGlzLnNldENsYXNzKCdlcnJvcicpO1xuICAgIGlmICh0aGlzLl9tYXRCdXR0b24pIHtcbiAgICAgIHRoaXMuX21hdEJ1dHRvbi5kaXNhYmxlUmlwcGxlID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldENsYXNzKGNscykge1xuICAgIGNvbnN0IHN2ZyA9IHRoaXMuX2dldFN2ZyhjbHMpO1xuICAgIHRoaXMuX3Jlc2V0Q2xhc3MoKTtcbiAgICB0aGlzLl9kaXNhYmxlU2hhZG93QW5pbWF0aW9uKCk7XG4gICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoYHN1Ym1pdC0ke2Nsc31gKTtcbiAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKHN2Zyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVsZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyByZXNldEFjdGl2ZSgpIHtcbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCkge1xuICAgIGlmKCF0aGlzLl9wcmV2aW91c0Rpc2FibGVkKSB7XG4gICAgICB0aGlzLmVuYWJsZSgpO1xuICAgIH1cblxuICAgIHRoaXMuZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuc3ZnLWljb24nKVxuICAgICAgLmZvckVhY2goKGVsKSA9PiB7XG4gICAgICAgIGVsLnJlbW92ZSgpO1xuICAgICAgfSk7XG5cbiAgICBpZiAodGhpcy5fbWF0QnV0dG9uKSB7XG4gICAgICB0aGlzLl9tYXRCdXR0b24uZGlzYWJsZVJpcHBsZSA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLl9yZXNldENsYXNzKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dChudWxsKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuZm9ybT8ucmVtb3ZlQnV0dG9uKHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZVNoYWRvd0FuaW1hdGlvbigpIHtcbiAgICAvLyAubWF0LWVsZXZhdGlvbi16MiByZW1vdmVzIHRoZSBjbGljayBzaGFkb3cgYW5pbWF0aW9uXG4gICAgLy90aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnbWF0LWVsZXZhdGlvbi16MicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXRDbGFzcygpIHtcbiAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnc3VibWl0LXN1Y2Nlc3MnLCAnc3VibWl0LWVycm9yJywgJ3N1Ym1pdC1wcm9jZXNzJywgJ21hdC1lbGV2YXRpb24tejInKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFN2Zyh0eXBlKSB7XG4gICAgaWYgKHR5cGUgPT09ICdzdWNjZXNzJykge1xuICAgICAgcmV0dXJuIG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoYDxzdmcgY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi1zdWNjZXNzXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiIHZlcnNpb249XCIxLjFcIiB4PVwiMHB4XCIgeT1cIjBweFwiIHZpZXdCb3g9XCIwIDAgMzggMzhcIiBzdHlsZT1cImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzggMzg7XCIgeG1sOnNwYWNlPVwicHJlc2VydmVcIiB3aWR0aD1cIjM4cHhcIiBoZWlnaHQ9XCIzOHB4XCI+XG4gICAgICA8Zz5cbiAgICAgICAgPGcgY2xhc3M9XCJjaGVja1wiPlxuICAgICAgICAgIDxnPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0yOS42LDExLjljLTAuNS0wLjUtMS4zLTAuNS0xLjgsMEwxNi4zLDIzLjRsLTYuMS02LjFjLTAuNS0wLjUtMS4zLTAuNS0xLjgsMHMtMC41LDEuMywwLDEuOGw3LDdjMC4zLDAuMywwLjYsMC40LDAuOSwwLjRzMC43LTAuMSwwLjktMC40bDEyLjQtMTIuNEMzMC4xLDEzLjIsMzAuMSwxMi40LDI5LjYsMTEuOXpcIi8+XG4gICAgICAgICAgPC9nPlxuICAgICAgICA8L2c+XG4gICAgICA8L2c+XG4gICAgICA8L3N2Zz5gLCAndGV4dC94bWwnKS5maXJzdENoaWxkO1xuICAgIH1cblxuICAgIGlmICh0eXBlID09PSAncHJvY2VzcycpIHtcbiAgICAgIHJldHVybiBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGA8c3ZnIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tcHJvY2Vzc1wiIHdpZHRoPVwiMzhcIiBoZWlnaHQ9XCIzOFwiIHZpZXdCb3g9XCIwIDAgMzggMzhcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICA8ZyBmaWxsPVwibm9uZVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIj5cbiAgICAgICAgPGcgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDEgMSlcIiBzdHJva2Utd2lkdGg9XCIyXCI+PGNpcmNsZSBzdHJva2Utb3BhY2l0eT1cIi41XCIgY3g9XCIxOFwiIGN5PVwiMThcIiByPVwiMThcIi8+XG4gICAgICAgICAgPHBhdGggZD1cIk0zNiAxOGMwLTkuOTQtOC4wNi0xOC0xOC0xOFwiPjxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9XCJ0cmFuc2Zvcm1cIiB0eXBlPVwicm90YXRlXCIgZnJvbT1cIjAgMTggMThcIiB0bz1cIjM2MCAxOCAxOFwiIGR1cj1cIi43c1wiIHJlcGVhdENvdW50PVwiaW5kZWZpbml0ZVwiLz48L3BhdGg+XG4gICAgICAgIDwvZz5cbiAgICAgIDwvZz5cbiAgICAgIDwvc3ZnPmAsICd0ZXh0L3htbCcpLmZpcnN0Q2hpbGQ7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09ICdlcnJvcicpIHtcbiAgICAgIHJldHVybiBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKCc8c3ZnIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tZXJyb3JcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzOHB4XCIgaGVpZ2h0PVwiMzhweFwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIj48Zz48cGF0aCBkPVwiTTggMWMzLjkgMCA3IDMuMSA3IDdzLTMuMSA3LTcgNy03LTMuMS03LTcgMy4xLTcgNy03ek04IDBjLTQuNCAwLTggMy42LTggOHMzLjYgOCA4IDggOC0zLjYgOC04LTMuNi04LTgtOHYwelwiIGRhdGEtb3JpZ2luYWw9XCIjNDQ0NDQ0XCIgZGF0YS1vbGRfY29sb3I9XCIjNDQ0NDQ0XCIvPjxwYXRoIGQ9XCJNMTIuMiAxMC44bC0yLjgtMi44IDIuOC0yLjgtMS40LTEuNC0yLjggMi44LTIuOC0yLjgtMS40IDEuNCAyLjggMi44LTIuOCAyLjggMS40IDEuNCAyLjgtMi44IDIuOCAyLjh6XCIvPjwvZz4gPC9zdmc+JywgJ3RleHQveG1sJykuZmlyc3RDaGlsZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvZGlyZWN0aXZlcy9idXR0b24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUN4QyxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssR0FDM0IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLGlCQUFpQjtJQUdyQixJQUFJLENBQUM7SUFHTCxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBR25CLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFFdkIsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUVkLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUMxQixTQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUUxQixVQUFVLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUQsS0FBSyxHQUFHLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNwRCxVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0QsV0FBVyxHQUFHLE1BQU0sQ0FB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SyxTQUFTLEVBQUUsQ0FBQztZQUN2QixPQUFPLElBQUksU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDOzs7Ozs7OzthQVFoQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUNsQyxDQUFDO1FBRUQsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkIsT0FBTyxJQUFJLFNBQVMsRUFBRSxDQUFDLGVBQWUsQ0FBQzs7Ozs7O2FBTWhDLEVBQUUsVUFBVSxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ2xDLENBQUM7UUFFRCxJQUFJLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUNyQixPQUFPLElBQUksU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDLDhaQUE4WixFQUFFLFVBQVUsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUNoZSxDQUFDO0lBQ0gsQ0FBQzt1R0ExSlUsaUJBQWlCOzJGQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBSDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlFQUF5RTtpQkFDcEY7OEJBSVEsSUFBSTtzQkFEVixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsV0FBVzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZywgaW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNYXRCdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuXG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRnNGb3JtRGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtJztcbmltcG9ydCB7IEZzRm9ybUJhc2VEaXJlY3RpdmUgfSBmcm9tICcuL2Zvcm0tYmFzZSc7XG5pbXBvcnQgeyBGc0Zvcm1Hcm91cERpcmVjdGl2ZSB9IGZyb20gJy4vZm9ybS1ncm91cCc7XG5cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW21hdC1yYWlzZWQtYnV0dG9uXSxbbWF0LWJ1dHRvbl0sW21hdC1mbGF0LWJ1dHRvbl0sW21hdC1zdHJva2VkLWJ1dHRvbl0nLFxufSlcbmV4cG9ydCBjbGFzcyBGc0J1dHRvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbmFtZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGlydHlTdWJtaXQgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUudHJhbnNpdGlvbicpXG4gIHB1YmxpYyB0cmFuc2l0aW9uU3R5bGUgPSBudWxsO1xuXG4gIHB1YmxpYyBzdWJtaXQgPSBmYWxzZTtcblxuICBwcml2YXRlIF9wcmV2aW91c0Rpc2FibGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIF9mb3JtR3JvdXAgPSBpbmplY3QoRnNGb3JtR3JvdXBEaXJlY3RpdmUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgX2Zvcm0gPSBpbmplY3QoRnNGb3JtRGlyZWN0aXZlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIF9tYXRCdXR0b24gPSBpbmplY3QoTWF0QnV0dG9uLCB7IG9wdGlvbmFsOiB0cnVlLCBob3N0OiB0cnVlIH0pO1xuICBwcml2YXRlIF9lbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIF9jZFJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgX2Zvcm1CYXNlOiBGc0Zvcm1CYXNlRGlyZWN0aXZlO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnN1Ym1pdCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSA9PT0gJ3N1Ym1pdCc7XG4gICAgdGhpcy5fZm9ybUJhc2UgPSB0aGlzLl9mb3JtIHx8IHRoaXMuX2Zvcm1Hcm91cDtcblxuICAgIGlmICh0aGlzLl9mb3JtQmFzZSkge1xuICAgICAgdGhpcy5fZm9ybUJhc2UuYWRkQnV0dG9uKHRoaXMpO1xuXG4gICAgICBpZih0aGlzLnN1Ym1pdCkge1xuICAgICAgICBmcm9tRXZlbnQodGhpcy5lbGVtZW50LCAnY2xpY2snKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9mb3JtQmFzZS5hY3RpdmVTdWJtaXRCdXR0b24gPSB0aGlzO1xuICAgICAgICAgICAgdGhpcy5fZm9ybUJhc2UudHJpZ2dlclN1Ym1pdCgpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudHJhbnNpdGlvblN0eWxlID0gJ25vbmUnO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnRyYW5zaXRpb25TdHlsZSA9IG51bGw7XG4gICAgICAgIH0sIDUwMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRpc2FibGUoKSB7ICAgIFxuICAgIGlmICh0aGlzLl9tYXRCdXR0b24gJiYgIXRoaXMuX2Zvcm1CYXNlLmFjdGl2ZVN1Ym1pdEJ1dHRvbikge1xuICAgICAgdGhpcy5fcHJldmlvdXNEaXNhYmxlZCA9IHRoaXMuX21hdEJ1dHRvbi5kaXNhYmxlZDtcbiAgICAgIHRoaXMuX21hdEJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLl9tYXRCdXR0b24uZGlzYWJsZVJpcHBsZSA9IHRydWU7XG4gICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTsgXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGVuYWJsZSgpIHtcbiAgICBpZiAodGhpcy5fbWF0QnV0dG9uKSB7XG4gICAgICB0aGlzLl9tYXRCdXR0b24uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuX21hdEJ1dHRvbi5kaXNhYmxlUmlwcGxlID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwcm9jZXNzKCkge1xuICAgIHRoaXMuc2V0Q2xhc3MoJ3Byb2Nlc3MnKTtcbiAgICBpZiAodGhpcy5fbWF0QnV0dG9uKSB7XG4gICAgICB0aGlzLl9tYXRCdXR0b24uZGlzYWJsZVJpcHBsZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN1Y2Nlc3MoKSB7XG4gICAgdGhpcy5zZXRDbGFzcygnc3VjY2VzcycpO1xuICAgIGlmICh0aGlzLl9tYXRCdXR0b24pIHtcbiAgICAgIHRoaXMuX21hdEJ1dHRvbi5kaXNhYmxlUmlwcGxlID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGVycm9yKCkge1xuICAgIHRoaXMuc2V0Q2xhc3MoJ2Vycm9yJyk7XG4gICAgaWYgKHRoaXMuX21hdEJ1dHRvbikge1xuICAgICAgdGhpcy5fbWF0QnV0dG9uLmRpc2FibGVSaXBwbGUgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0Q2xhc3MoY2xzKSB7XG4gICAgY29uc3Qgc3ZnID0gdGhpcy5fZ2V0U3ZnKGNscyk7XG4gICAgdGhpcy5fcmVzZXRDbGFzcygpO1xuICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKGBmcy1mb3JtLXN1Ym1pdC1idXR0b24tJHtjbHN9YCk7XG4gICAgdGhpcy5lbGVtZW50LmFwcGVuZChzdmcpO1xuICB9XG5cbiAgcHVibGljIGdldCBlbGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKSB7XG4gICAgaWYoIXRoaXMuX3ByZXZpb3VzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuZW5hYmxlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5zdmctaWNvbicpXG4gICAgICAuZm9yRWFjaCgoZWwpID0+IHtcbiAgICAgICAgZWwucmVtb3ZlKCk7XG4gICAgICB9KTtcblxuICAgIGlmICh0aGlzLl9tYXRCdXR0b24pIHtcbiAgICAgIHRoaXMuX21hdEJ1dHRvbi5kaXNhYmxlUmlwcGxlID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuX3Jlc2V0Q2xhc3MoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KG51bGwpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fZm9ybUJhc2U/LnJlbW92ZUJ1dHRvbih0aGlzKTtcbiAgfVxuXG4gIHByaXZhdGUgX3Jlc2V0Q2xhc3MoKSB7XG4gICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdFxuICAgICAgLnJlbW92ZShcbiAgICAgICAgJ2ZzLWZvcm0tc3VibWl0LWJ1dHRvbi1zdWNjZXNzJywgXG4gICAgICAgICdmcy1mb3JtLXN1Ym1pdC1idXR0b24tZXJyb3InLCBcbiAgICAgICAgJ2ZzLWZvcm0tc3VibWl0LWJ1dHRvbi1wcm9jZXNzJyxcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRTdmcodHlwZSkge1xuICAgIGlmICh0eXBlID09PSAnc3VjY2VzcycpIHtcbiAgICAgIHJldHVybiBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGA8c3ZnIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tc3VjY2Vzc1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB2ZXJzaW9uPVwiMS4xXCIgeD1cIjBweFwiIHk9XCIwcHhcIiB2aWV3Qm94PVwiMCAwIDM4IDM4XCIgc3R5bGU9XCJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDM4IDM4O1wiIHhtbDpzcGFjZT1cInByZXNlcnZlXCIgd2lkdGg9XCIzOHB4XCIgaGVpZ2h0PVwiMzhweFwiPlxuICAgICAgPGc+XG4gICAgICAgIDxnIGNsYXNzPVwiY2hlY2tcIj5cbiAgICAgICAgICA8Zz5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjkuNiwxMS45Yy0wLjUtMC41LTEuMy0wLjUtMS44LDBMMTYuMywyMy40bC02LjEtNi4xYy0wLjUtMC41LTEuMy0wLjUtMS44LDBzLTAuNSwxLjMsMCwxLjhsNyw3YzAuMywwLjMsMC42LDAuNCwwLjksMC40czAuNy0wLjEsMC45LTAuNGwxMi40LTEyLjRDMzAuMSwxMy4yLDMwLjEsMTIuNCwyOS42LDExLjl6XCIvPlxuICAgICAgICAgIDwvZz5cbiAgICAgICAgPC9nPlxuICAgICAgPC9nPlxuICAgICAgPC9zdmc+YCwgJ3RleHQveG1sJykuZmlyc3RDaGlsZDtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ3Byb2Nlc3MnKSB7XG4gICAgICByZXR1cm4gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhgPHN2ZyBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLXByb2Nlc3NcIiB3aWR0aD1cIjM4XCIgaGVpZ2h0PVwiMzhcIiB2aWV3Qm94PVwiMCAwIDM4IDM4XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgPGcgZmlsbD1cIm5vbmVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCI+XG4gICAgICAgIDxnIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgxIDEpXCIgc3Ryb2tlLXdpZHRoPVwiMlwiPjxjaXJjbGUgc3Ryb2tlLW9wYWNpdHk9XCIuNVwiIGN4PVwiMThcIiBjeT1cIjE4XCIgcj1cIjE4XCIvPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNMzYgMThjMC05Ljk0LTguMDYtMTgtMTgtMThcIj48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPVwidHJhbnNmb3JtXCIgdHlwZT1cInJvdGF0ZVwiIGZyb209XCIwIDE4IDE4XCIgdG89XCIzNjAgMTggMThcIiBkdXI9XCIuN3NcIiByZXBlYXRDb3VudD1cImluZGVmaW5pdGVcIi8+PC9wYXRoPlxuICAgICAgICA8L2c+XG4gICAgICA8L2c+XG4gICAgICA8L3N2Zz5gLCAndGV4dC94bWwnKS5maXJzdENoaWxkO1xuICAgIH1cblxuICAgIGlmICh0eXBlID09PSAnZXJyb3InKSB7XG4gICAgICByZXR1cm4gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZygnPHN2ZyBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLWVycm9yXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzhweFwiIGhlaWdodD1cIjM4cHhcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+PGc+PHBhdGggZD1cIk04IDFjMy45IDAgNyAzLjEgNyA3cy0zLjEgNy03IDctNy0zLjEtNy03IDMuMS03IDctN3pNOCAwYy00LjQgMC04IDMuNi04IDhzMy42IDggOCA4IDgtMy42IDgtOC0zLjYtOC04LTh2MHpcIiBkYXRhLW9yaWdpbmFsPVwiIzQ0NDQ0NFwiIGRhdGEtb2xkX2NvbG9yPVwiIzQ0NDQ0NFwiLz48cGF0aCBkPVwiTTEyLjIgMTAuOGwtMi44LTIuOCAyLjgtMi44LTEuNC0xLjQtMi44IDIuOC0yLjgtMi44LTEuNCAxLjQgMi44IDIuOC0yLjggMi44IDEuNCAxLjQgMi44LTIuOCAyLjggMi44elwiLz48L2c+IDwvc3ZnPicsICd0ZXh0L3htbCcpLmZpcnN0Q2hpbGQ7XG4gICAgfVxuICB9XG59XG4iXX0=
|