trm-tmpl 3.2.1 → 3.2.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/esm2022/lib/app/i18n/i18n-key.enum.mjs +2 -1
- package/esm2022/lib/app/i18n/keys.mjs +3 -2
- package/esm2022/lib/app/models/constants.mjs +4 -2
- package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-date/constructor-field-date.component.mjs +24 -38
- package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-iframe/card-sdk.service.mjs +41 -0
- package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component.mjs +102 -118
- package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-iframe/iframe-validator-directive.directive.mjs +88 -0
- package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-select/constructor-field-select.component.mjs +15 -37
- package/esm2022/lib/app/pages/components/constructor-form/components/constructor-field-text/constructor-field-text.component.mjs +10 -4
- package/esm2022/lib/app/pages/components/constructor-form/components/index.mjs +3 -1
- package/esm2022/lib/app/pages/components/constructor-form/components/ps-select/ps-select.component.mjs +20 -24
- package/esm2022/lib/app/pages/components/constructor-form/constructor-form.component.mjs +89 -66
- package/esm2022/lib/app/pages/components/constructor-form/models/field-template.mjs +2 -1
- package/esm2022/lib/app/pages/components/constructor-form/models/index.mjs +1 -2
- package/esm2022/lib/app/pages/components/constructor-form/models/payment-field.mjs +1 -1
- package/esm2022/lib/app/pages/components/constructor-form/services/constructor-form.service.mjs +39 -24
- package/esm2022/lib/app/pages/components/terminal-layout/terminal-layout.component.mjs +11 -9
- package/esm2022/lib/app/services/api-errors.service.mjs +16 -34
- package/esm2022/lib/app/services/csrf.resolver.mjs +6 -18
- package/esm2022/lib/app/services/error.interceptior.mjs +2 -2
- package/esm2022/lib/app/services/local-storage.mjs +70 -0
- package/esm2022/lib/app/services/script-loader.mjs +4 -7
- package/esm2022/lib/app/services/session.data-source.mjs +8 -8
- package/esm2022/lib/app/services/translation/translate-lang-storage.service.mjs +95 -79
- package/esm2022/lib/app/shared/components/terminal-lang-switcher/terminal-lang-switcher.component.mjs +10 -8
- package/esm2022/lib/app/shared/components/terminal-layout-tpl/terminal-layout-tpl.component.mjs +6 -6
- package/esm2022/lib/app/shared/components/trm-select/trm-select.component.mjs +1 -1
- package/esm2022/lib/app/terminal-tpl.component.mjs +5 -12
- package/fesm2022/trm-tmpl.mjs +738 -587
- package/fesm2022/trm-tmpl.mjs.map +1 -1
- package/lib/app/i18n/i18n-key.enum.d.ts +1 -0
- package/lib/app/models/constants.d.ts +3 -1
- package/lib/app/pages/components/constructor-form/components/constructor-field-date/constructor-field-date.component.d.ts +7 -10
- package/lib/app/pages/components/constructor-form/components/constructor-field-iframe/card-sdk.service.d.ts +18 -0
- package/lib/app/pages/components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component.d.ts +25 -27
- package/lib/app/pages/components/constructor-form/components/constructor-field-iframe/iframe-validator-directive.directive.d.ts +16 -0
- package/lib/app/pages/components/constructor-form/components/constructor-field-select/constructor-field-select.component.d.ts +6 -10
- package/lib/app/pages/components/constructor-form/components/constructor-field-text/constructor-field-text.component.d.ts +3 -3
- package/lib/app/pages/components/constructor-form/components/index.d.ts +2 -0
- package/lib/app/pages/components/constructor-form/components/ps-select/ps-select.component.d.ts +4 -6
- package/lib/app/pages/components/constructor-form/constructor-form.component.d.ts +5 -8
- package/lib/app/pages/components/constructor-form/models/index.d.ts +0 -1
- package/lib/app/pages/components/constructor-form/models/payment-field.d.ts +1 -1
- package/lib/app/pages/components/constructor-form/services/constructor-form.service.d.ts +8 -5
- package/lib/app/pages/components/terminal-layout/terminal-layout.component.d.ts +1 -0
- package/lib/app/services/api-errors.service.d.ts +4 -10
- package/lib/app/services/csrf.resolver.d.ts +1 -4
- package/lib/app/services/local-storage.d.ts +24 -0
- package/lib/app/services/script-loader.d.ts +1 -2
- package/lib/app/services/session.data-source.d.ts +1 -1
- package/lib/app/services/translation/translate-lang-storage.service.d.ts +22 -23
- package/lib/app/shared/components/terminal-lang-switcher/terminal-lang-switcher.component.d.ts +4 -34
- package/lib/app/shared/components/terminal-layout-tpl/terminal-layout-tpl.component.d.ts +1 -2
- package/lib/app/shared/components/trm-select/trm-select.component.d.ts +1 -2
- package/package.json +1 -1
- package/esm2022/lib/app/pages/components/constructor-form/models/constants.mjs +0 -4
- package/lib/app/pages/components/constructor-form/models/constants.d.ts +0 -3
|
@@ -1,141 +1,125 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { SessionDataSource } from
|
|
7
|
-
import { ScriptLoader } from '../../../../../services';
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, forwardRef, inject, Injector, Input, } from '@angular/core';
|
|
2
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { NG_VALUE_ACCESSOR, NgControl, } from '@angular/forms';
|
|
4
|
+
import { I18N_KEY } from '../../../../../i18n';
|
|
5
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
6
|
+
import { SessionDataSource } from '../../../../../services/session.data-source';
|
|
8
7
|
import { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key.pipe';
|
|
9
|
-
import {
|
|
8
|
+
import { CardSdkService } from './card-sdk.service';
|
|
9
|
+
import { IframeValidatorDirectiveDirective } from './iframe-validator-directive.directive';
|
|
10
|
+
import { insertRemoveTrigger } from "../../../../../helpers";
|
|
11
|
+
import { GmSkeletonComponent } from "@gmmoney/gm-ui-kit";
|
|
10
12
|
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "./iframe-validator-directive.directive";
|
|
14
|
+
const ID_CDE_CONTAINER = 'cde-container';
|
|
11
15
|
export class ConstructorFieldIframeComponent {
|
|
12
|
-
get finished() {
|
|
13
|
-
return this._finished;
|
|
14
|
-
}
|
|
15
16
|
constructor() {
|
|
16
|
-
this.
|
|
17
|
-
this.
|
|
18
|
-
this.
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
17
|
+
this._translateSrv = inject(TranslateService);
|
|
18
|
+
this._sessionSrv = inject(SessionDataSource);
|
|
19
|
+
this._cd = inject(ChangeDetectorRef);
|
|
20
|
+
this._injector = inject(Injector);
|
|
21
|
+
this._destroyRef = inject(DestroyRef);
|
|
22
|
+
this.viewReady = false;
|
|
23
|
+
this.validator = inject(IframeValidatorDirectiveDirective);
|
|
24
|
+
this.cardSdkSrv = inject(CardSdkService);
|
|
25
|
+
this._loading = true;
|
|
23
26
|
this.I18N_KEY = I18N_KEY;
|
|
24
|
-
this.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
this._ready = false;
|
|
32
|
-
this._finished = false;
|
|
33
|
-
this.submitted = false;
|
|
27
|
+
this.ID_CDE_CONTAINER = ID_CDE_CONTAINER;
|
|
28
|
+
}
|
|
29
|
+
registerOnTouched(fn) { }
|
|
30
|
+
registerOnChange(fn) { }
|
|
31
|
+
writeValue() { }
|
|
32
|
+
get loading() {
|
|
33
|
+
return this._loading;
|
|
34
34
|
}
|
|
35
35
|
ngAfterViewInit() {
|
|
36
|
-
this.
|
|
37
|
-
|
|
38
|
-
.
|
|
36
|
+
this._control = this._injector.get(NgControl).control;
|
|
37
|
+
this.cardSdkSrv
|
|
38
|
+
.createCardTerminalSdk$(this._translateSrv.currentLang, this.ID_CDE_CONTAINER, this.tabIndex)
|
|
39
|
+
.pipe(takeUntilDestroyed(this._destroyRef))
|
|
40
|
+
.subscribe({
|
|
41
|
+
next: (sdk) => {
|
|
42
|
+
this._sdk = sdk;
|
|
43
|
+
this._destroyRef.onDestroy(() => this._sdk?.unsubscribe());
|
|
44
|
+
this.validator.registerSDK(sdk);
|
|
45
|
+
this._init();
|
|
46
|
+
},
|
|
47
|
+
error: () => {
|
|
48
|
+
this.validator.registerSDK();
|
|
49
|
+
this._updateValueAndValidity();
|
|
50
|
+
},
|
|
51
|
+
});
|
|
39
52
|
}
|
|
40
|
-
|
|
41
|
-
|
|
53
|
+
_updateValueAndValidity() {
|
|
54
|
+
this.cardSdkSrv.markAsReady();
|
|
55
|
+
this._control?.updateValueAndValidity({ onlySelf: true });
|
|
56
|
+
this._cd.detectChanges();
|
|
57
|
+
this.refreshHeight();
|
|
42
58
|
}
|
|
43
|
-
|
|
44
|
-
|
|
59
|
+
refreshHeight() {
|
|
60
|
+
setTimeout(() => {
|
|
61
|
+
this._sdk?.refreshHeight();
|
|
62
|
+
this.viewReady = true;
|
|
63
|
+
this._cd.detectChanges();
|
|
64
|
+
}, 100);
|
|
45
65
|
}
|
|
46
66
|
_init() {
|
|
47
|
-
this._sdk = this.sessionSrv.createCardTerminalSdk(this.lang, this.ID_CDE_CONTAINER, this.tabIndex);
|
|
48
|
-
if (!this.iframe) {
|
|
49
|
-
this._onError();
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
this.iframe
|
|
53
|
-
.addEventListener('load', this._iframeOnLoadHandler);
|
|
54
|
-
this._sdk
|
|
55
|
-
.onError((code) => this._onError(code));
|
|
56
67
|
this._sdk.onInputPending(() => {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
});
|
|
60
|
-
this._ready = false;
|
|
68
|
+
this._loading = false;
|
|
69
|
+
this._updateValueAndValidity();
|
|
61
70
|
});
|
|
62
|
-
this._sdk.onInputReady(() =>
|
|
63
|
-
|
|
64
|
-
.onInputSubmitted(() => {
|
|
65
|
-
this._finished = true;
|
|
66
|
-
if (this.submitted) {
|
|
67
|
-
this.status = I18N_KEY.CDE_CARD_PAID;
|
|
68
|
-
this.paid.emit();
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
this.status = I18N_KEY.CDE_CARD_ERROR_ALREADY_PAID;
|
|
72
|
-
}
|
|
73
|
-
this.cd.detectChanges();
|
|
71
|
+
this._sdk.onInputReady(() => {
|
|
72
|
+
this._updateValueAndValidity();
|
|
74
73
|
});
|
|
75
|
-
this._sdk
|
|
76
|
-
.
|
|
77
|
-
|
|
78
|
-
.
|
|
79
|
-
.
|
|
80
|
-
.subscribe((options) => {
|
|
81
|
-
if (!options.lang) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
this._sdk.useLang(options.lang);
|
|
74
|
+
this._sdk.onInputSubmitted(() => {
|
|
75
|
+
this._loading = false;
|
|
76
|
+
this.cardSdkSrv.markAsSubmitted();
|
|
77
|
+
this.status = I18N_KEY.CDE_CARD_ERROR_ALREADY_PAID;
|
|
78
|
+
this._updateValueAndValidity();
|
|
85
79
|
});
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
subscriptions.map(s => s.unsubscribe());
|
|
103
|
-
return result;
|
|
80
|
+
this._sdk.onTimeout(() => {
|
|
81
|
+
this._updateValueAndValidity();
|
|
82
|
+
});
|
|
83
|
+
this._sdk.onError(() => {
|
|
84
|
+
this._loading = false;
|
|
85
|
+
this._updateValueAndValidity();
|
|
86
|
+
});
|
|
87
|
+
this._translateSrv.onLangChange
|
|
88
|
+
.pipe(takeUntilDestroyed(this._destroyRef))
|
|
89
|
+
.subscribe({
|
|
90
|
+
next: (options) => {
|
|
91
|
+
if (!options.lang) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
this._sdk.useLang(options.lang);
|
|
95
|
+
},
|
|
104
96
|
});
|
|
105
|
-
}
|
|
106
|
-
_onError(code) {
|
|
107
|
-
let codeError = I18N_KEY.ERROR_OCCUR;
|
|
108
|
-
if (code === 501) {
|
|
109
|
-
codeError = I18N_KEY.CDE_CARD_ERROR_501;
|
|
110
|
-
}
|
|
111
|
-
else if (code === 500) {
|
|
112
|
-
codeError = I18N_KEY.CDE_CARD_ERROR_500;
|
|
113
|
-
}
|
|
114
|
-
else if (code === 504) {
|
|
115
|
-
codeError = I18N_KEY.CDE_CARD_ERROR_504;
|
|
116
|
-
}
|
|
117
|
-
this.loading = false;
|
|
118
|
-
this.error.emit(codeError);
|
|
119
|
-
}
|
|
120
|
-
ngOnDestroy() {
|
|
121
|
-
this.iframe?.removeEventListener('load', this._iframeOnLoadHandler);
|
|
122
|
-
this.unSubscriber.next();
|
|
123
|
-
this.unSubscriber.unsubscribe();
|
|
124
|
-
this._sdk?.unsubscribe();
|
|
125
97
|
}
|
|
126
98
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ConstructorFieldIframeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
127
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: ConstructorFieldIframeComponent, isStandalone: true, selector: "app-constructor-field-iframe", inputs: { tabIndex: "tabIndex" },
|
|
99
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: ConstructorFieldIframeComponent, isStandalone: true, selector: "app-constructor-field-iframe", inputs: { tabIndex: "tabIndex" }, providers: [
|
|
100
|
+
{
|
|
101
|
+
provide: NG_VALUE_ACCESSOR,
|
|
102
|
+
useExisting: forwardRef(() => ConstructorFieldIframeComponent),
|
|
103
|
+
multi: true,
|
|
104
|
+
},
|
|
105
|
+
CardSdkService,
|
|
106
|
+
], hostDirectives: [{ directive: i1.IframeValidatorDirectiveDirective }], ngImport: i0, template: "@if (!status) {\r\n <div\r\n class=\"iframe-container\"\r\n [id]=\"ID_CDE_CONTAINER\"\r\n [hidden]=\"loading\"\r\n [class.iframe-container--ready]=\"viewReady\"\r\n ></div>\r\n} @else if (!loading) {\r\n <p class=\"iframe-warning text--warn\">{{ status | trans }}</p>\r\n}\r\n\r\n@if (loading) {\r\n <div class=\"trm-skeleton-fields\">\r\n @for (i of [1,2]; track i) {\r\n <div class=\"trm-skeleton-field\">\r\n <gm-skeleton [count]=\"1\" [shape]=\"'rect-md'\" [size]=\"18\"></gm-skeleton>\r\n <gm-skeleton [count]=\"1\" [size]=\"50\"></gm-skeleton>\r\n </div>\r\n }\r\n </div>\r\n}\r\n", styles: [":host{position:relative}.iframe-container{position:absolute;width:100%;visibility:hidden}.iframe-container--ready{position:relative;visibility:visible}.iframe-warning{font-weight:400;font-size:14px;line-height:22px;color:var(--color-base-350);margin-top:8px}\n"], dependencies: [{ kind: "pipe", type: TranslateByKeyPipe, name: "trans" }, { kind: "component", type: GmSkeletonComponent, selector: "gm-skeleton", inputs: ["shape", "orientation", "count", "size", "gap"] }], animations: [insertRemoveTrigger], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
128
107
|
}
|
|
129
108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ConstructorFieldIframeComponent, decorators: [{
|
|
130
109
|
type: Component,
|
|
131
|
-
args: [{ selector: 'app-constructor-field-iframe', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true,
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
110
|
+
args: [{ selector: 'app-constructor-field-iframe', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, animations: [insertRemoveTrigger], providers: [
|
|
111
|
+
{
|
|
112
|
+
provide: NG_VALUE_ACCESSOR,
|
|
113
|
+
useExisting: forwardRef(() => ConstructorFieldIframeComponent),
|
|
114
|
+
multi: true,
|
|
115
|
+
},
|
|
116
|
+
CardSdkService,
|
|
117
|
+
], imports: [TranslateByKeyPipe, GmSkeletonComponent], hostDirectives: [
|
|
118
|
+
{
|
|
119
|
+
directive: IframeValidatorDirectiveDirective,
|
|
120
|
+
},
|
|
121
|
+
], template: "@if (!status) {\r\n <div\r\n class=\"iframe-container\"\r\n [id]=\"ID_CDE_CONTAINER\"\r\n [hidden]=\"loading\"\r\n [class.iframe-container--ready]=\"viewReady\"\r\n ></div>\r\n} @else if (!loading) {\r\n <p class=\"iframe-warning text--warn\">{{ status | trans }}</p>\r\n}\r\n\r\n@if (loading) {\r\n <div class=\"trm-skeleton-fields\">\r\n @for (i of [1,2]; track i) {\r\n <div class=\"trm-skeleton-field\">\r\n <gm-skeleton [count]=\"1\" [shape]=\"'rect-md'\" [size]=\"18\"></gm-skeleton>\r\n <gm-skeleton [count]=\"1\" [size]=\"50\"></gm-skeleton>\r\n </div>\r\n }\r\n </div>\r\n}\r\n", styles: [":host{position:relative}.iframe-container{position:absolute;width:100%;visibility:hidden}.iframe-container--ready{position:relative;visibility:visible}.iframe-warning{font-weight:400;font-size:14px;line-height:22px;color:var(--color-base-350);margin-top:8px}\n"] }]
|
|
122
|
+
}], propDecorators: { tabIndex: [{
|
|
139
123
|
type: Input
|
|
140
124
|
}] } });
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3ItZmllbGQtaWZyYW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlcm1pbmFsLXRlbXBsYXRlL3NyYy9saWIvYXBwL3BhZ2VzL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZm9ybS9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZpZWxkLWlmcmFtZS9jb25zdHJ1Y3Rvci1maWVsZC1pZnJhbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZmllbGQtaWZyYW1lL2NvbnN0cnVjdG9yLWZpZWxkLWlmcmFtZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQW1CLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxt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QUM7SUFDL0IsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUM3QixDQUFDOzhHQWpJUSwrQkFBK0I7a0dBQS9CLCtCQUErQixxTEM5QjVDLCtnQkFrQkEsa0tEVVksa0JBQWtCLDhDQUFFLG1CQUFtQjs7MkZBRXRDLCtCQUErQjtrQkFSM0MsU0FBUzsrQkFDSSw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNULENBQUMsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUM7d0RBY3RDLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBpbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE91dHB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJMThOX0tFWSB9IGZyb20gJy4vLi4vLi4vLi4vLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IExhbmdDaGFuZ2VFdmVudCwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgU2Vzc2lvbkRhdGFTb3VyY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvc2Vzc2lvbi5kYXRhLXNvdXJjZVwiO1xyXG5pbXBvcnQgeyBDZGVUZXJtaW5hbFNkayB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IFNjcmlwdExvYWRlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbGF0ZUJ5S2V5UGlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9waXBlcy90cmFuc2xhdGUtYnkta2V5LnBpcGUnO1xyXG5pbXBvcnQgeyBHbVNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnQGdtbW9uZXkvZ20tdWkta2l0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtY29uc3RydWN0b3ItZmllbGQtaWZyYW1lJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb25zdHJ1Y3Rvci1maWVsZC1pZnJhbWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY29uc3RydWN0b3ItZmllbGQtaWZyYW1lLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1RyYW5zbGF0ZUJ5S2V5UGlwZSwgR21Ta2VsZXRvbkNvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnN0cnVjdG9yRmllbGRJZnJhbWVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTcnYgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XHJcbiAgICBwcml2YXRlIHNlc3Npb25TcnYgPSBpbmplY3QoU2Vzc2lvbkRhdGFTb3VyY2UpO1xyXG4gICAgcHJpdmF0ZSBjZCA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICBwcml2YXRlIHNjcmlwdExvYWRlclNydiA9IGluamVjdChTY3JpcHRMb2FkZXIpO1xyXG5cclxuICAgIHJlYWRvbmx5IElEX0NERV9DT05UQUlORVIgPSAnY2RlLWNvbnRhaW5lcic7XHJcbiAgICBwcml2YXRlIF9zZGs6IENkZVRlcm1pbmFsU2RrO1xyXG4gICAgcHJpdmF0ZSB1blN1YnNjcmliZXIgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgbG9hZGluZyA9IHRydWU7XHJcbiAgICBzdGF0dXM6IEkxOE5fS0VZO1xyXG4gICAgSTE4Tl9LRVkgPSBJMThOX0tFWTtcclxuICAgIEBPdXRwdXQoKSBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8STE4Tl9LRVk+KCk7XHJcbiAgICBAT3V0cHV0KCkgcGFpZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICAgIEBPdXRwdXQoKSByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICAgIEBJbnB1dCgpIHRhYkluZGV4O1xyXG4gICAgcHJpdmF0ZSBfaWZyYW1lT25Mb2FkSGFuZGxlcjogKCkgPT4gdm9pZCA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX3JlYWR5ID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBfZmluaXNoZWQgPSBmYWxzZTtcclxuICAgIGdldCBmaW5pc2hlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZmluaXNoZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICB0aGlzLnNjcmlwdExvYWRlclNydlxyXG4gICAgICAgIC5mZXRjaFNjcmlwdCgnY2RlX3NkaycpXHJcbiAgICAgICAgLnRoZW4oXHJcbiAgICAgICAgICAoKSA9PiB0aGlzLl9pbml0KCksXHJcbiAgICAgICAgICAoKSA9PiB0aGlzLl9vbkVycm9yKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBsYW5nKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNydi5jdXJyZW50TGFuZztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldCBpZnJhbWUoKTogSFRNTElGcmFtZUVsZW1lbnQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zZGs/LmlmcmFtZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9pbml0KCkge1xyXG4gICAgICAgIHRoaXMuX3NkayA9IHRoaXMuc2Vzc2lvblNydi5jcmVhdGVDYXJkVGVybWluYWxTZGsodGhpcy5sYW5nLCB0aGlzLklEX0NERV9DT05UQUlORVIsIHRoaXMudGFiSW5kZXgpO1xyXG4gICAgICAgIGlmICghdGhpcy5pZnJhbWUpIHtcclxuICAgICAgICAgIHRoaXMuX29uRXJyb3IoKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pZnJhbWVcclxuICAgICAgICAgICAgLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCB0aGlzLl9pZnJhbWVPbkxvYWRIYW5kbGVyKTtcclxuICAgICAgICB0aGlzLl9zZGtcclxuICAgICAgICAgICAgLm9uRXJyb3IoKGNvZGUpID0+IHRoaXMuX29uRXJyb3IoY29kZSkpO1xyXG4gICAgICAgIHRoaXMuX3Nkay5vbklucHV0UGVuZGluZygoKSA9PiB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fc2RrLnJlZnJlc2hIZWlnaHQoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5fcmVhZHkgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9zZGsub25JbnB1dFJlYWR5KCgpID0+IHRoaXMuX3JlYWR5ID0gdHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5fc2RrXHJcbiAgICAgICAgICAgIC5vbklucHV0U3VibWl0dGVkKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ZpbmlzaGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN1Ym1pdHRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzID0gSTE4Tl9LRVkuQ0RFX0NBUkRfUEFJRDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhaWQuZW1pdCgpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXR1cyA9IEkxOE5fS0VZLkNERV9DQVJEX0VSUk9SX0FMUkVBRFlfUEFJRDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9zZGtcclxuICAgICAgICAgICAgLm9uVGltZW91dCgoKSA9PiB0aGlzLmVycm9yLmVtaXQoSTE4Tl9LRVkuQ0RFX0NBUkRfRVJST1JfNTA0KSk7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTcnZcclxuICAgICAgICAgICAgLm9uTGFuZ0NoYW5nZVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLnVuU3Vic2NyaWJlcilcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChvcHRpb25zOiBMYW5nQ2hhbmdlRXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucy5sYW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fc2RrLnVzZUxhbmcob3B0aW9ucy5sYW5nKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdWJtaXR0ZWQgPSBmYWxzZTtcclxuXHJcbiAgICBzdWJtaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbnM6IHt1bnN1YnNjcmliZTogKCkgPT4gdm9pZH1bXSA9IFtdO1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLl9yZWFkeSkge1xyXG4gICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLl9zZGsub25JbnB1dFBlbmRpbmcoKCkgPT4gcmVzb2x2ZShmYWxzZSkpKTtcclxuICAgICAgICAgICAgc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuX3Nkay5vbkVycm9yKCgpID0+IHJlc29sdmUoZmFsc2UpKSk7XHJcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLl9zZGsub25JbnB1dFN1Ym1pdHRlZCgoKSA9PiByZXNvbHZlKHRydWUpKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLl9zZGsuc3VibWl0KCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgc3Vic2NyaXB0aW9ucy5tYXAocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfb25FcnJvcihjb2RlPzogNTAwIHwgNTAxIHwgNTA0KSB7XHJcbiAgICAgICAgbGV0IGNvZGVFcnJvciA9IEkxOE5fS0VZLkVSUk9SX09DQ1VSO1xyXG4gICAgICAgIGlmIChjb2RlID09PSA1MDEpIHtcclxuICAgICAgICAgIGNvZGVFcnJvciA9IEkxOE5fS0VZLkNERV9DQVJEX0VSUk9SXzUwMTtcclxuICAgICAgICB9IGVsc2UgaWYgKGNvZGUgPT09IDUwMCkge1xyXG4gICAgICAgICAgY29kZUVycm9yID0gSTE4Tl9LRVkuQ0RFX0NBUkRfRVJST1JfNTAwO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gNTA0KSB7XHJcbiAgICAgICAgICBjb2RlRXJyb3IgPSBJMThOX0tFWS5DREVfQ0FSRF9FUlJPUl81MDQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZXJyb3IuZW1pdChjb2RlRXJyb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuaWZyYW1lPy5yZW1vdmVFdmVudExpc3RlbmVyKCdsb2FkJywgdGhpcy5faWZyYW1lT25Mb2FkSGFuZGxlcik7XHJcbiAgICAgICAgdGhpcy51blN1YnNjcmliZXIubmV4dCgpO1xyXG4gICAgICAgIHRoaXMudW5TdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fc2RrPy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG59XHJcbiIsIkBpZiAoIXN0YXR1cykge1xyXG4gIDxkaXYgW2lkXT1cIklEX0NERV9DT05UQUlORVJcIlxyXG4gICAgW2hpZGRlbl09XCJsb2FkaW5nXCJcclxuICA+PC9kaXY+XHJcbn0gQGVsc2Uge1xyXG4gIDxwIGNsYXNzPVwiaWZyYW1lLXdhcm5pbmcgdGV4dC0td2FyblwiPiB7eyBzdGF0dXMgfCB0cmFuc319PC9wPlxyXG59XHJcblxyXG5AaWYgKGxvYWRpbmcpIHtcclxuICA8ZGl2IGNsYXNzPVwidHJtLXNrZWxldG9uLWZpZWxkc1wiPlxyXG4gICAgQGZvciAoaSBvZiBbMSwyXTsgdHJhY2sgaSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwidHJtLXNrZWxldG9uLWZpZWxkXCI+XHJcbiAgICAgICAgPGdtLXNrZWxldG9uIFtjb3VudF09XCIxXCIgW3NoYXBlXT1cIidyZWN0LW1kJ1wiIFtzaXplXT1cIjE4XCI+PC9nbS1za2VsZXRvbj5cclxuICAgICAgICA8Z20tc2tlbGV0b24gW2NvdW50XT1cIjFcIiBbc2l6ZV09XCI1MFwiPjwvZ20tc2tlbGV0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG59XHJcbiJdfQ==
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3ItZmllbGQtaWZyYW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlcm1pbmFsLXRlbXBsYXRlL3NyYy9saWIvYXBwL3BhZ2VzL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZm9ybS9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZpZWxkLWlmcmFtZS9jb25zdHJ1Y3Rvci1maWVsZC1pZnJhbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZmllbGQtaWZyYW1lL2NvbnN0cnVjdG9yLWZpZWxkLWlmcmFtZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUFFLEtBQUssR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUdMLGlCQUFpQixFQUNqQixTQUFTLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFtQixnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxv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TyxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNsQixPQUFPO2dCQUNULENBQUM7Z0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDOzhHQTNHVSwrQkFBK0I7a0dBQS9CLCtCQUErQiw2R0FmL0I7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLCtCQUErQixDQUFDO2dCQUM5RCxLQUFLLEVBQUUsSUFBSTthQUNaO1lBQ0QsY0FBYztTQUNmLGlHQzNDSCwybkJBcUJBLHlURHVCWSxrQkFBa0IsOENBQUUsbUJBQW1CLG9HQVRyQyxDQUFDLG1CQUFtQixDQUFDOzsyRkFnQnRCLCtCQUErQjtrQkF0QjNDLFNBQVM7K0JBQ0UsOEJBQThCLG1CQUd2Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksY0FDSixDQUFDLG1CQUFtQixDQUFDLGFBQ3RCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdDQUFnQyxDQUFDOzRCQUM5RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRCxjQUFjO3FCQUNmLFdBQ1EsQ0FBQyxrQkFBa0IsRUFBRSxtQkFBbUIsQ0FBQyxrQkFDbEM7d0JBQ2Q7NEJBQ0UsU0FBUyxFQUFFLGlDQUFpQzt5QkFDN0M7cUJBQ0Y7OEJBYVEsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRGVzdHJveVJlZixcclxuICBmb3J3YXJkUmVmLFxyXG4gIGluamVjdCxcclxuICBJbmplY3RvciwgSW5wdXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHtcclxuICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXHJcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgTmdDb250cm9sLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSTE4Tl9LRVkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9pMThuJztcclxuaW1wb3J0IHsgTGFuZ0NoYW5nZUV2ZW50LCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFNlc3Npb25EYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvc2Vzc2lvbi5kYXRhLXNvdXJjZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUJ5S2V5UGlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9waXBlcy90cmFuc2xhdGUtYnkta2V5LnBpcGUnO1xyXG5pbXBvcnQgeyBDYXJkU2RrU2VydmljZSB9IGZyb20gJy4vY2FyZC1zZGsuc2VydmljZSc7XHJcbmltcG9ydCB7IElmcmFtZVZhbGlkYXRvckRpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4vaWZyYW1lLXZhbGlkYXRvci1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgaW5zZXJ0UmVtb3ZlVHJpZ2dlciB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9oZWxwZXJzXCI7XHJcbmltcG9ydCB7IEdtU2tlbGV0b25Db21wb25lbnQgfSBmcm9tIFwiQGdtbW9uZXkvZ20tdWkta2l0XCI7XHJcbmltcG9ydCB7IENkZVRlcm1pbmFsU2RrIH0gZnJvbSAnLi8uLi8uLi8uLi8uLi8uLi9tb2RlbHMvY2RlLXRlcm1pbmFsLXNkayc7XHJcblxyXG5jb25zdCBJRF9DREVfQ09OVEFJTkVSID0gJ2NkZS1jb250YWluZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtY29uc3RydWN0b3ItZmllbGQtaWZyYW1lJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29uc3RydWN0b3ItZmllbGQtaWZyYW1lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb25zdHJ1Y3Rvci1maWVsZC1pZnJhbWUuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGFuaW1hdGlvbnM6IFtpbnNlcnRSZW1vdmVUcmlnZ2VyXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENvbnN0cnVjdG9yRmllbGRJZnJhbWVDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBDYXJkU2RrU2VydmljZSxcclxuICBdLFxyXG4gIGltcG9ydHM6IFtUcmFuc2xhdGVCeUtleVBpcGUsIEdtU2tlbGV0b25Db21wb25lbnRdLFxyXG4gIGhvc3REaXJlY3RpdmVzOiBbXHJcbiAgICB7XHJcbiAgICAgIGRpcmVjdGl2ZTogSWZyYW1lVmFsaWRhdG9yRGlyZWN0aXZlRGlyZWN0aXZlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29uc3RydWN0b3JGaWVsZElmcmFtZUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Jcclxue1xyXG4gIHByaXZhdGUgX3RyYW5zbGF0ZVNydjogVHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcclxuICBwcml2YXRlIF9zZXNzaW9uU3J2OiBTZXNzaW9uRGF0YVNvdXJjZSA9IGluamVjdChTZXNzaW9uRGF0YVNvdXJjZSk7XHJcbiAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBwcml2YXRlIF9jb250cm9sOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuICBwcml2YXRlIF9kZXN0cm95UmVmOiBEZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG4gIHZpZXdSZWFkeSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSB0YWJJbmRleDogbnVtYmVyO1xyXG5cclxuICBwcml2YXRlIHZhbGlkYXRvcjogSWZyYW1lVmFsaWRhdG9yRGlyZWN0aXZlRGlyZWN0aXZlID0gaW5qZWN0KFxyXG4gICAgSWZyYW1lVmFsaWRhdG9yRGlyZWN0aXZlRGlyZWN0aXZlLFxyXG4gICk7XHJcblxyXG4gIHByaXZhdGUgX3NkazogQ2RlVGVybWluYWxTZGs7XHJcbiAgcHJpdmF0ZSBjYXJkU2RrU3J2OiBDYXJkU2RrU2VydmljZSA9IGluamVjdChDYXJkU2RrU2VydmljZSk7XHJcblxyXG4gIHByaXZhdGUgX2xvYWRpbmcgPSB0cnVlO1xyXG4gIHN0YXR1czogSTE4Tl9LRVk7XHJcbiAgcmVhZG9ubHkgSTE4Tl9LRVkgPSBJMThOX0tFWTtcclxuXHJcbiAgcmVhZG9ubHkgSURfQ0RFX0NPTlRBSU5FUiA9IElEX0NERV9DT05UQUlORVI7XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge31cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHt9XHJcbiAgd3JpdGVWYWx1ZSgpOiB2b2lkIHt9XHJcblxyXG4gIGdldCBsb2FkaW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xvYWRpbmc7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb250cm9sID0gdGhpcy5faW5qZWN0b3IuZ2V0KE5nQ29udHJvbCkuY29udHJvbDtcclxuICAgIHRoaXMuY2FyZFNka1NydlxyXG4gICAgICAuY3JlYXRlQ2FyZFRlcm1pbmFsU2RrJChcclxuICAgICAgICB0aGlzLl90cmFuc2xhdGVTcnYuY3VycmVudExhbmcsXHJcbiAgICAgICAgdGhpcy5JRF9DREVfQ09OVEFJTkVSLFxyXG4gICAgICAgIHRoaXMudGFiSW5kZXhcclxuICAgICAgKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChzZGs6IENkZVRlcm1pbmFsU2RrKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9zZGsgPSBzZGs7XHJcbiAgICAgICAgICB0aGlzLl9kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB0aGlzLl9zZGs/LnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgICAgICAgdGhpcy52YWxpZGF0b3IucmVnaXN0ZXJTREsoc2RrKTtcclxuICAgICAgICAgIHRoaXMuX2luaXQoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnZhbGlkYXRvci5yZWdpc3RlclNESygpO1xyXG4gICAgICAgICAgdGhpcy5fdXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FyZFNka1Nydi5tYXJrQXNSZWFkeSgpO1xyXG4gICAgdGhpcy5fY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5yZWZyZXNoSGVpZ2h0KCk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoSGVpZ2h0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX3Nkaz8ucmVmcmVzaEhlaWdodCgpO1xyXG4gICAgICB0aGlzLnZpZXdSZWFkeSA9IHRydWU7XHJcbiAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2RrLm9uSW5wdXRQZW5kaW5nKCgpID0+IHtcclxuICAgICAgdGhpcy5fbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLl91cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLl9zZGsub25JbnB1dFJlYWR5KCgpID0+IHtcclxuICAgICAgdGhpcy5fdXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fc2RrLm9uSW5wdXRTdWJtaXR0ZWQoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY2FyZFNka1Nydi5tYXJrQXNTdWJtaXR0ZWQoKTtcclxuICAgICAgdGhpcy5zdGF0dXMgPSBJMThOX0tFWS5DREVfQ0FSRF9FUlJPUl9BTFJFQURZX1BBSUQ7XHJcbiAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX3Nkay5vblRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLl91cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLl9zZGsub25FcnJvcigoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5fdXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fdHJhbnNsYXRlU3J2Lm9uTGFuZ0NoYW5nZVxyXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChvcHRpb25zOiBMYW5nQ2hhbmdlRXZlbnQpID0+IHtcclxuICAgICAgICAgIGlmICghb3B0aW9ucy5sYW5nKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuX3Nkay51c2VMYW5nKG9wdGlvbnMubGFuZyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAoIXN0YXR1cykge1xyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaWZyYW1lLWNvbnRhaW5lclwiXHJcbiAgICBbaWRdPVwiSURfQ0RFX0NPTlRBSU5FUlwiXHJcbiAgICBbaGlkZGVuXT1cImxvYWRpbmdcIlxyXG4gICAgW2NsYXNzLmlmcmFtZS1jb250YWluZXItLXJlYWR5XT1cInZpZXdSZWFkeVwiXHJcbiAgPjwvZGl2PlxyXG59IEBlbHNlIGlmICghbG9hZGluZykge1xyXG4gIDxwIGNsYXNzPVwiaWZyYW1lLXdhcm5pbmcgdGV4dC0td2FyblwiPnt7IHN0YXR1cyB8IHRyYW5zIH19PC9wPlxyXG59XHJcblxyXG5AaWYgKGxvYWRpbmcpIHtcclxuICA8ZGl2IGNsYXNzPVwidHJtLXNrZWxldG9uLWZpZWxkc1wiPlxyXG4gICAgQGZvciAoaSBvZiBbMSwyXTsgdHJhY2sgaSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwidHJtLXNrZWxldG9uLWZpZWxkXCI+XHJcbiAgICAgICAgPGdtLXNrZWxldG9uIFtjb3VudF09XCIxXCIgW3NoYXBlXT1cIidyZWN0LW1kJ1wiIFtzaXplXT1cIjE4XCI+PC9nbS1za2VsZXRvbj5cclxuICAgICAgICA8Z20tc2tlbGV0b24gW2NvdW50XT1cIjFcIiBbc2l6ZV09XCI1MFwiPjwvZ20tc2tlbGV0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { Directive, forwardRef, inject } from '@angular/core';
|
|
2
|
+
import { NG_ASYNC_VALIDATORS, } from '@angular/forms';
|
|
3
|
+
import { I18N_KEY } from './../../../../../i18n/i18n-key.enum';
|
|
4
|
+
import { of, Subject } from 'rxjs';
|
|
5
|
+
import { CardSdkService } from './card-sdk.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class IframeValidatorDirectiveDirective {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.cardSdkSrv = inject(CardSdkService);
|
|
10
|
+
this.submitting$ = new Subject();
|
|
11
|
+
this._validationSdkError = false;
|
|
12
|
+
}
|
|
13
|
+
registerSDK(sdk) {
|
|
14
|
+
if (!sdk) {
|
|
15
|
+
this._fatalError = I18N_KEY.ERROR_OCCUR_SDK;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
this._sdk = sdk;
|
|
19
|
+
this.handleSubmitting();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
handleSubmitting() {
|
|
23
|
+
this._sdk.onInputPending(() => {
|
|
24
|
+
this._validationSdkError = true;
|
|
25
|
+
});
|
|
26
|
+
this._sdk.onError((code) => {
|
|
27
|
+
this._validationSdkError = false;
|
|
28
|
+
let codeError = I18N_KEY.ERROR_OCCUR;
|
|
29
|
+
if (code === 501) {
|
|
30
|
+
codeError = I18N_KEY.CDE_CARD_ERROR_501;
|
|
31
|
+
}
|
|
32
|
+
else if (code === 500) {
|
|
33
|
+
codeError = I18N_KEY.CDE_CARD_ERROR_500;
|
|
34
|
+
}
|
|
35
|
+
else if (code === 504) {
|
|
36
|
+
codeError = I18N_KEY.CDE_CARD_ERROR_504;
|
|
37
|
+
}
|
|
38
|
+
this._fatalError = codeError;
|
|
39
|
+
});
|
|
40
|
+
this._sdk.onInputReady(() => {
|
|
41
|
+
this._validationSdkError = false;
|
|
42
|
+
this.submitting$.next(null);
|
|
43
|
+
});
|
|
44
|
+
this._sdk.onInputSubmitted(() => {
|
|
45
|
+
this._validationSdkError = false;
|
|
46
|
+
this.submitting$.next(null);
|
|
47
|
+
});
|
|
48
|
+
this._sdk.onTimeout(() => {
|
|
49
|
+
this._validationSdkError = false;
|
|
50
|
+
this._fatalError = I18N_KEY.CDE_CARD_ERROR_504;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
validate(control) {
|
|
54
|
+
if (this._fatalError) {
|
|
55
|
+
return of({ cde_error: this._fatalError });
|
|
56
|
+
}
|
|
57
|
+
if (this._validationSdkError) {
|
|
58
|
+
return of({ cde_validation_error: true });
|
|
59
|
+
}
|
|
60
|
+
if (this.cardSdkSrv.pending) {
|
|
61
|
+
return this.submitting$.asObservable();
|
|
62
|
+
}
|
|
63
|
+
return of(null);
|
|
64
|
+
}
|
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IframeValidatorDirectiveDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
66
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", type: IframeValidatorDirectiveDirective, isStandalone: true, selector: "[appIframeValidatorDirective]", providers: [
|
|
67
|
+
{
|
|
68
|
+
provide: NG_ASYNC_VALIDATORS,
|
|
69
|
+
useExisting: forwardRef(() => IframeValidatorDirectiveDirective),
|
|
70
|
+
multi: true,
|
|
71
|
+
},
|
|
72
|
+
], ngImport: i0 }); }
|
|
73
|
+
}
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IframeValidatorDirectiveDirective, decorators: [{
|
|
75
|
+
type: Directive,
|
|
76
|
+
args: [{
|
|
77
|
+
selector: '[appIframeValidatorDirective]',
|
|
78
|
+
standalone: true,
|
|
79
|
+
providers: [
|
|
80
|
+
{
|
|
81
|
+
provide: NG_ASYNC_VALIDATORS,
|
|
82
|
+
useExisting: forwardRef(() => IframeValidatorDirectiveDirective),
|
|
83
|
+
multi: true,
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
}]
|
|
87
|
+
}] });
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZyYW1lLXZhbGlkYXRvci1kaXJlY3RpdmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZmllbGQtaWZyYW1lL2lmcmFtZS12YWxpZGF0b3ItZGlyZWN0aXZlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUdMLG1CQUFtQixHQUVwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBY3BELE1BQU0sT0FBTyxpQ0FBaUM7SUFYOUM7UUFZVSxlQUFVLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUdwRCxnQkFBVyxHQUFxQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRzlELHdCQUFtQixHQUFHLEtBQUssQ0FBQztLQXVEckM7SUFyREMsV0FBVyxDQUFDLEdBQW9CO1FBQzlCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQUM5QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1lBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdC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b3J0IHsgRGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgQXN5bmNWYWxpZGF0b3IsXHJcbiAgTkdfQVNZTkNfVkFMSURBVE9SUyxcclxuICBWYWxpZGF0aW9uRXJyb3JzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSTE4Tl9LRVkgfSBmcm9tICcuLy4uLy4uLy4uLy4uLy4uL2kxOG4vaTE4bi1rZXkuZW51bSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENhcmRTZGtTZXJ2aWNlIH0gZnJvbSAnLi9jYXJkLXNkay5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2RlVGVybWluYWxTZGsgfSBmcm9tICcuLy4uLy4uLy4uLy4uLy4uL21vZGVscy9jZGUtdGVybWluYWwtc2RrJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2FwcElmcmFtZVZhbGlkYXRvckRpcmVjdGl2ZV0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX0FTWU5DX1ZBTElEQVRPUlMsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElmcmFtZVZhbGlkYXRvckRpcmVjdGl2ZURpcmVjdGl2ZSksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSWZyYW1lVmFsaWRhdG9yRGlyZWN0aXZlRGlyZWN0aXZlIGltcGxlbWVudHMgQXN5bmNWYWxpZGF0b3Ige1xyXG4gIHByaXZhdGUgY2FyZFNka1NydjogQ2FyZFNka1NlcnZpY2UgPSBpbmplY3QoQ2FyZFNka1NlcnZpY2UpO1xyXG4gIHByaXZhdGUgX3NkazogQ2RlVGVybWluYWxTZGs7XHJcblxyXG4gIHByaXZhdGUgc3VibWl0dGluZyQ6IFN1YmplY3Q8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgcHJpdmF0ZSBfZmF0YWxFcnJvcjogSTE4Tl9LRVk7XHJcbiAgcHJpdmF0ZSBfdmFsaWRhdGlvblNka0Vycm9yID0gZmFsc2U7XHJcblxyXG4gIHJlZ2lzdGVyU0RLKHNkaz86IENkZVRlcm1pbmFsU2RrKTogdm9pZCB7XHJcbiAgICBpZiAoIXNkaykge1xyXG4gICAgICB0aGlzLl9mYXRhbEVycm9yID0gSTE4Tl9LRVkuRVJST1JfT0NDVVJfU0RLO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fc2RrID0gc2RrO1xyXG4gICAgICB0aGlzLmhhbmRsZVN1Ym1pdHRpbmcoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlU3VibWl0dGluZygpOiB2b2lkIHtcclxuICAgIHRoaXMuX3Nkay5vbklucHV0UGVuZGluZygoKSA9PiB7XHJcbiAgICAgIHRoaXMuX3ZhbGlkYXRpb25TZGtFcnJvciA9IHRydWU7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3Nkay5vbkVycm9yKChjb2RlKSA9PiB7XHJcbiAgICAgIHRoaXMuX3ZhbGlkYXRpb25TZGtFcnJvciA9IGZhbHNlO1xyXG4gICAgICBsZXQgY29kZUVycm9yID0gSTE4Tl9LRVkuRVJST1JfT0NDVVI7XHJcbiAgICAgIGlmIChjb2RlID09PSA1MDEpIHtcclxuICAgICAgICBjb2RlRXJyb3IgPSBJMThOX0tFWS5DREVfQ0FSRF9FUlJPUl81MDE7XHJcbiAgICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gNTAwKSB7XHJcbiAgICAgICAgY29kZUVycm9yID0gSTE4Tl9LRVkuQ0RFX0NBUkRfRVJST1JfNTAwO1xyXG4gICAgICB9IGVsc2UgaWYgKGNvZGUgPT09IDUwNCkge1xyXG4gICAgICAgIGNvZGVFcnJvciA9IEkxOE5fS0VZLkNERV9DQVJEX0VSUk9SXzUwNDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9mYXRhbEVycm9yID0gY29kZUVycm9yO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9zZGsub25JbnB1dFJlYWR5KCgpID0+IHtcclxuICAgICAgdGhpcy5fdmFsaWRhdGlvblNka0Vycm9yID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc3VibWl0dGluZyQubmV4dChudWxsKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fc2RrLm9uSW5wdXRTdWJtaXR0ZWQoKCkgPT4ge1xyXG4gICAgICB0aGlzLl92YWxpZGF0aW9uU2RrRXJyb3IgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zdWJtaXR0aW5nJC5uZXh0KG51bGwpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9zZGsub25UaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5fdmFsaWRhdGlvblNka0Vycm9yID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuX2ZhdGFsRXJyb3IgPSBJMThOX0tFWS5DREVfQ0FSRF9FUlJPUl81MDQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKFxyXG4gICAgY29udHJvbDogQWJzdHJhY3RDb250cm9sLFxyXG4gICk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+IHwgT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4ge1xyXG4gICAgaWYgKHRoaXMuX2ZhdGFsRXJyb3IpIHtcclxuICAgICAgcmV0dXJuIG9mKHsgY2RlX2Vycm9yOiB0aGlzLl9mYXRhbEVycm9yIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuX3ZhbGlkYXRpb25TZGtFcnJvcikge1xyXG4gICAgICByZXR1cm4gb2YoeyBjZGVfdmFsaWRhdGlvbl9lcnJvcjogdHJ1ZSB9KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmNhcmRTZGtTcnYucGVuZGluZykge1xyXG4gICAgICByZXR1cm4gdGhpcy5zdWJtaXR0aW5nJC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBvZihudWxsKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, inject, Injector, Input } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
2
|
+
import { FormsModule, NG_VALUE_ACCESSOR, NgControl, ReactiveFormsModule } from '@angular/forms';
|
|
4
3
|
import { insertRemoveTrigger } from './../../../../../helpers/insertRemoveTrigger';
|
|
5
4
|
import { I18N_KEY } from './../../../../../i18n';
|
|
6
5
|
import { TrmSelectComponent } from '../../../../../shared/components/trm-select/trm-select.component';
|
|
@@ -8,6 +7,15 @@ import { TranslateByKeyPipe } from '../../../../../shared/pipes/translate-by-key
|
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
9
8
|
import * as i1 from "@angular/forms";
|
|
10
9
|
export class ConstructorFieldSelectComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.cd = inject(ChangeDetectorRef);
|
|
12
|
+
this.injector = inject(Injector);
|
|
13
|
+
this.I18N_KEY = I18N_KEY;
|
|
14
|
+
this.onChange = (_value) => {
|
|
15
|
+
};
|
|
16
|
+
this.onTouch = () => {
|
|
17
|
+
};
|
|
18
|
+
}
|
|
11
19
|
get data() {
|
|
12
20
|
if (!this.items) {
|
|
13
21
|
return [];
|
|
@@ -24,17 +32,6 @@ export class ConstructorFieldSelectComponent {
|
|
|
24
32
|
}
|
|
25
33
|
});
|
|
26
34
|
}
|
|
27
|
-
constructor() {
|
|
28
|
-
this.cd = inject(ChangeDetectorRef);
|
|
29
|
-
this.injector = inject(Injector);
|
|
30
|
-
this.unsub = new Subject();
|
|
31
|
-
this.I18N_KEY = I18N_KEY;
|
|
32
|
-
this.onChange = (value) => {
|
|
33
|
-
};
|
|
34
|
-
this.onTouch = () => {
|
|
35
|
-
};
|
|
36
|
-
this.cd.detach();
|
|
37
|
-
}
|
|
38
35
|
registerOnChange(fn) {
|
|
39
36
|
this.onChange = fn;
|
|
40
37
|
}
|
|
@@ -52,27 +49,8 @@ export class ConstructorFieldSelectComponent {
|
|
|
52
49
|
return this.control?.getError('error');
|
|
53
50
|
}
|
|
54
51
|
ngAfterViewInit() {
|
|
55
|
-
this.control = this.injector.get(
|
|
56
|
-
this.cd.reattach();
|
|
52
|
+
this.control = this.injector.get(NgControl).control;
|
|
57
53
|
this.cd.detectChanges();
|
|
58
|
-
this.ngDoCheck();
|
|
59
|
-
}
|
|
60
|
-
ngDoCheck() {
|
|
61
|
-
if (!this.control) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
if (this.control.dirty) {
|
|
65
|
-
this.control.markAsDirty();
|
|
66
|
-
this.cd.detectChanges();
|
|
67
|
-
}
|
|
68
|
-
if (this.control.touched) {
|
|
69
|
-
this.control.markAsTouched();
|
|
70
|
-
this.cd.detectChanges();
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
ngOnDestroy() {
|
|
74
|
-
this.unsub.next();
|
|
75
|
-
this.unsub.unsubscribe();
|
|
76
54
|
}
|
|
77
55
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ConstructorFieldSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
78
56
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: ConstructorFieldSelectComponent, isStandalone: true, selector: "app-constructor-field-select", inputs: { config: "config", items: "items", tabIndex: "tabIndex" }, providers: [
|
|
@@ -81,7 +59,7 @@ export class ConstructorFieldSelectComponent {
|
|
|
81
59
|
useExisting: forwardRef(() => ConstructorFieldSelectComponent),
|
|
82
60
|
multi: true
|
|
83
61
|
}
|
|
84
|
-
], ngImport: i0, template: "<app-trm-select [data]=\"data\"\r\n
|
|
62
|
+
], ngImport: i0, template: "@if (control) {\r\n <app-trm-select [data]=\"data\"\r\n [placeholder]=\"config.placeholder | trans\"\r\n [label]=\"config.label | trans\"\r\n [name]=\"config.name\"\r\n (search)=\"search($event)\"\r\n (open)=\"onTouch()\"\r\n [formControl]=\"control\"\r\n [tabIndex]=\"tabIndex\"\r\n class=\"c-field-select trm-form-field\"\r\n ></app-trm-select>\r\n @if (control.hasError('required') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\r\n </div>\r\n }\r\n @if (control.hasError('error') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ apiError | trans }}\r\n </div>\r\n }\r\n\r\n @if (control.hasError('custom_error') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ control.getError('custom_error') | trans }}\r\n </div>\r\n }\r\n\r\n}\r\n", styles: [":host{display:block;width:100%}\n"], dependencies: [{ kind: "component", type: TrmSelectComponent, selector: "app-trm-select", inputs: ["label", "hasBorder", "data", "tabIndex", "name", "placeholder", "searchable", "hasScrollbar", "nameId", "nameLabel"], outputs: ["open", "search"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: TranslateByKeyPipe, name: "trans" }], animations: [insertRemoveTrigger], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
85
63
|
}
|
|
86
64
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ConstructorFieldSelectComponent, decorators: [{
|
|
87
65
|
type: Component,
|
|
@@ -91,12 +69,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
|
91
69
|
useExisting: forwardRef(() => ConstructorFieldSelectComponent),
|
|
92
70
|
multi: true
|
|
93
71
|
}
|
|
94
|
-
], standalone: true, imports: [TrmSelectComponent, FormsModule, ReactiveFormsModule, TranslateByKeyPipe], template: "<app-trm-select [data]=\"data\"\r\n
|
|
95
|
-
}],
|
|
72
|
+
], standalone: true, imports: [TrmSelectComponent, FormsModule, ReactiveFormsModule, TranslateByKeyPipe], template: "@if (control) {\r\n <app-trm-select [data]=\"data\"\r\n [placeholder]=\"config.placeholder | trans\"\r\n [label]=\"config.label | trans\"\r\n [name]=\"config.name\"\r\n (search)=\"search($event)\"\r\n (open)=\"onTouch()\"\r\n [formControl]=\"control\"\r\n [tabIndex]=\"tabIndex\"\r\n class=\"c-field-select trm-form-field\"\r\n ></app-trm-select>\r\n @if (control.hasError('required') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ I18N_KEY.VALIDATION_REQUIRED | trans }}\r\n </div>\r\n }\r\n @if (control.hasError('error') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ apiError | trans }}\r\n </div>\r\n }\r\n\r\n @if (control.hasError('custom_error') && control.touched && control.dirty) {\r\n <div class=\"trm-error\"\r\n @insertRemove\r\n >\r\n {{ control.getError('custom_error') | trans }}\r\n </div>\r\n }\r\n\r\n}\r\n", styles: [":host{display:block;width:100%}\n"] }]
|
|
73
|
+
}], propDecorators: { config: [{
|
|
96
74
|
type: Input
|
|
97
75
|
}], items: [{
|
|
98
76
|
type: Input
|
|
99
77
|
}], tabIndex: [{
|
|
100
78
|
type: Input
|
|
101
79
|
}] } });
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3ItZmllbGQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlcm1pbmFsLXRlbXBsYXRlL3NyYy9saWIvYXBwL3BhZ2VzL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZm9ybS9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZpZWxkLXNlbGVjdC9jb25zdHJ1Y3Rvci1maWVsZC1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZmllbGQtc2VsZWN0L2NvbnN0cnVjdG9yLWZpZWxkLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUVOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFFTCxlQUFlLEVBQ2YsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUV0RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7O0FBa0J2RixNQUFNLE9BQU8sK0JBQStC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SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3QixDQUFDOzhHQXJGUSwrQkFBK0I7a0dBQS9CLCtCQUErQiwrSUFWN0I7WUFDUDtnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLCtCQUErQixDQUFDO2dCQUM5RCxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osMEJDdkNMLDI2QkFnQ0EsMkZEU2Msa0JBQWtCLHVOQUFFLFdBQVcsc0lBQUUsbUJBQW1CLDZNQUFFLGtCQUFrQixnQ0FUdEUsQ0FBQyxtQkFBbUIsQ0FBQzs7MkZBV3hCLCtCQUErQjtrQkFoQjNDLFNBQVM7K0JBQ0ksOEJBQThCLG1CQUd2Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLENBQUMsbUJBQW1CLENBQUMsYUFDdEI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0NBQWdDLENBQUM7NEJBQzlELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKLGNBQ1csSUFBSSxXQUNQLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixDQUFDO3dEQU8xRSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIERvQ2hlY2ssXHJcbiAgZm9yd2FyZFJlZixcclxuICBpbmplY3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBheW1lbnRGaWVsZCwgUGF5bWVudEZpZWxkT3B0aW9uc0l0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQge1xyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIEZvcm1Db250cm9sTmFtZSxcclxuICBGb3Jtc01vZHVsZSxcclxuICBOR19WQUxVRV9BQ0NFU1NPUixcclxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGluc2VydFJlbW92ZVRyaWdnZXIgfSBmcm9tICcuLy4uLy4uLy4uLy4uLy4uL2hlbHBlcnMvaW5zZXJ0UmVtb3ZlVHJpZ2dlcic7XHJcbmltcG9ydCB7IEkxOE5fS0VZIH0gZnJvbSAnLi8uLi8uLi8uLi8uLi8uLi9pMThuJztcclxuaW1wb3J0IHsgVHJtU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvdHJtLXNlbGVjdC90cm0tc2VsZWN0LmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xhdGVCeUtleVBpcGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQvcGlwZXMvdHJhbnNsYXRlLWJ5LWtleS5waXBlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtY29uc3RydWN0b3ItZmllbGQtc2VsZWN0JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb25zdHJ1Y3Rvci1maWVsZC1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY29uc3RydWN0b3ItZmllbGQtc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGFuaW1hdGlvbnM6IFtpbnNlcnRSZW1vdmVUcmlnZ2VyXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENvbnN0cnVjdG9yRmllbGRTZWxlY3RDb21wb25lbnQpLFxyXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgIF0sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW1RybVNlbGVjdENvbXBvbmVudCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZUJ5S2V5UGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnN0cnVjdG9yRmllbGRTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBEb0NoZWNrIHtcclxuICAgIHByaXZhdGUgY2QgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XHJcblxyXG4gICAgcHJpdmF0ZSB1bnN1YjogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBASW5wdXQoKSBjb25maWc6IFBheW1lbnRGaWVsZDtcclxuICAgIEBJbnB1dCgpIGl0ZW1zOiBQYXltZW50RmllbGRPcHRpb25zSXRlbVtdO1xyXG4gICAgQElucHV0KCkgdGFiSW5kZXg6IG51bWJlcjtcclxuICAgIHNlYXJjaFN0cmluZzogc3RyaW5nO1xyXG4gICAgSTE4Tl9LRVkgPSBJMThOX0tFWTtcclxuXHJcbiAgICBvbkNoYW5nZSA9ICh2YWx1ZSkgPT4ge1xyXG4gICAgfTtcclxuICAgIG9uVG91Y2ggPSAoKSA9PiB7XHJcbiAgICB9O1xyXG4gICAgY29udHJvbDtcclxuXHJcbiAgICBnZXQgZGF0YSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXRlbXMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5pdGVtc1xyXG4gICAgICAgICAgICAuZmlsdGVyKChvcHRpb246IFBheW1lbnRGaWVsZE9wdGlvbnNJdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc2VhcmNoU3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRpdGxlOiBzdHJpbmcgPSBvcHRpb24ubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGl0bGUudG9Mb3dlckNhc2UoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJyAnKS5zb21lKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHMgPT4gdGhpcy5zZWFyY2hTdHJpbmcudG9Mb3dlckNhc2UoKS5zcGxpdCgnICcpLnNvbWUocyA9PiB0cy5pbmNsdWRlcyhzKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmNkLmRldGFjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgc2VhcmNoKHNlYXJjaFN0cmluZykge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoU3RyaW5nID0gc2VhcmNoU3RyaW5nO1xyXG4gICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYXBpRXJyb3IoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sPy5nZXRFcnJvcignZXJyb3InKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoRm9ybUNvbnRyb2xOYW1lKS5jb250cm9sO1xyXG4gICAgICAgIHRoaXMuY2QucmVhdHRhY2goKTtcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB0aGlzLm5nRG9DaGVjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nRG9DaGVjaygpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY29udHJvbCkge1xyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wuZGlydHkpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5jb250cm9sLnRvdWNoZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMudW5zdWIubmV4dCgpO1xyXG4gICAgICAgIHRoaXMudW5zdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxufVxyXG4iLCI8YXBwLXRybS1zZWxlY3QgW2RhdGFdPVwiZGF0YVwiXHJcbiAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZy5wbGFjZWhvbGRlciB8IHRyYW5zXCJcclxuICBbbGFiZWxdPVwiY29uZmlnLmxhYmVsIHwgdHJhbnNcIlxyXG4gIFtuYW1lXT1cImNvbmZpZy5uYW1lXCJcclxuICAoc2VhcmNoKT1cInNlYXJjaCgkZXZlbnQpXCJcclxuICAob3Blbik9XCJvblRvdWNoKClcIlxyXG4gIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICBbdGFiSW5kZXhdID0gXCJ0YWJJbmRleFwiXHJcbiAgY2xhc3M9XCJjLWZpZWxkLXNlbGVjdCB0cm0tZm9ybS1maWVsZFwiXHJcbj48L2FwcC10cm0tc2VsZWN0PlxyXG5AaWYgKGNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiYgY29udHJvbC50b3VjaGVkICYmIGNvbnRyb2wuZGlydHkpIHtcclxuICA8ZGl2IGNsYXNzPVwidHJtLWVycm9yXCJcclxuICAgIEBpbnNlcnRSZW1vdmVcclxuICAgID5cclxuICAgIHt7IEkxOE5fS0VZLlZBTElEQVRJT05fUkVRVUlSRUQgfCB0cmFucyB9fVxyXG4gIDwvZGl2PlxyXG59XHJcbkBpZiAoY29udHJvbC5oYXNFcnJvcignZXJyb3InKSAmJiBjb250cm9sLnRvdWNoZWQgJiYgY29udHJvbC5kaXJ0eSkge1xyXG4gIDxkaXYgY2xhc3M9XCJ0cm0tZXJyb3JcIlxyXG4gICAgQGluc2VydFJlbW92ZVxyXG4gICAgPlxyXG4gICAge3sgYXBpRXJyb3IgfCB0cmFucyB9fVxyXG4gIDwvZGl2PlxyXG59XHJcblxyXG5AaWYgKGNvbnRyb2wuaGFzRXJyb3IoJ2N1c3RvbV9lcnJvcicpICYmIGNvbnRyb2wudG91Y2hlZCAmJiBjb250cm9sLmRpcnR5KSB7XHJcbiAgPGRpdiBjbGFzcz1cInRybS1lcnJvclwiXHJcbiAgICBAaW5zZXJ0UmVtb3ZlXHJcbiAgICA+XHJcbiAgICB7eyBjb250cm9sLmdldEVycm9yKCdjdXN0b21fZXJyb3InKSB8IHRyYW5zIH19XHJcbiAgPC9kaXY+XHJcbn1cclxuIl19
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3ItZmllbGQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlcm1pbmFsLXRlbXBsYXRlL3NyYy9saWIvYXBwL3BhZ2VzL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZm9ybS9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZpZWxkLXNlbGVjdC9jb25zdHJ1Y3Rvci1maWVsZC1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZmllbGQtc2VsZWN0L2NvbnN0cnVjdG9yLWZpZWxkLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFHTCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxtQkFBbUIsRUFDcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFFdEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbURBQW1ELENBQUM7OztBQWtCdkYsTUFBTSxPQUFPLCtCQUErQjtJQWhCNUM7UUFpQlUsT0FBRSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIs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QUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBpbmplY3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGF5bWVudEZpZWxkLCBQYXltZW50RmllbGRPcHRpb25zSXRlbSB9IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7XHJcbiAgQWJzdHJhY3RDb250cm9sLFxyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIEZvcm1zTW9kdWxlLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIE5nQ29udHJvbCxcclxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBpbnNlcnRSZW1vdmVUcmlnZ2VyIH0gZnJvbSAnLi8uLi8uLi8uLi8uLi8uLi9oZWxwZXJzL2luc2VydFJlbW92ZVRyaWdnZXInO1xyXG5pbXBvcnQgeyBJMThOX0tFWSB9IGZyb20gJy4vLi4vLi4vLi4vLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IFRybVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL3RybS1zZWxlY3QvdHJtLXNlbGVjdC5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsYXRlQnlLZXlQaXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkL3BpcGVzL3RyYW5zbGF0ZS1ieS1rZXkucGlwZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jb25zdHJ1Y3Rvci1maWVsZC1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25zdHJ1Y3Rvci1maWVsZC1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbnN0cnVjdG9yLWZpZWxkLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGFuaW1hdGlvbnM6IFtpbnNlcnRSZW1vdmVUcmlnZ2VyXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENvbnN0cnVjdG9yRmllbGRTZWxlY3RDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbVHJtU2VsZWN0Q29tcG9uZW50LCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVHJhbnNsYXRlQnlLZXlQaXBlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29uc3RydWN0b3JGaWVsZFNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0IHtcclxuICBwcml2YXRlIGNkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuICBASW5wdXQoKSBjb25maWc6IFBheW1lbnRGaWVsZDtcclxuICBASW5wdXQoKSBpdGVtczogUGF5bWVudEZpZWxkT3B0aW9uc0l0ZW1bXTtcclxuICBASW5wdXQoKSB0YWJJbmRleDogbnVtYmVyO1xyXG4gIHNlYXJjaFN0cmluZzogc3RyaW5nO1xyXG4gIEkxOE5fS0VZID0gSTE4Tl9LRVk7XHJcblxyXG4gIG9uQ2hhbmdlID0gKF92YWx1ZTogYW55KSA9PiB7XHJcbiAgfTtcclxuICBvblRvdWNoID0gKCkgPT4ge1xyXG4gIH07XHJcbiAgY29udHJvbDogQWJzdHJhY3RDb250cm9sO1xyXG5cclxuICBnZXQgZGF0YSgpIHtcclxuICAgIGlmICghdGhpcy5pdGVtcykge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtc1xyXG4gICAgICAuZmlsdGVyKChvcHRpb246IFBheW1lbnRGaWVsZE9wdGlvbnNJdGVtKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaFN0cmluZykge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHRpdGxlOiBzdHJpbmcgPSBvcHRpb24ubmFtZTtcclxuICAgICAgICAgIHJldHVybiB0aXRsZS50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgICAgIC5zcGxpdCgnICcpLnNvbWUoXHJcbiAgICAgICAgICAgICAgdHMgPT4gdGhpcy5zZWFyY2hTdHJpbmcudG9Mb3dlckNhc2UoKS5zcGxpdCgnICcpLnNvbWUocyA9PiB0cy5pbmNsdWRlcyhzKSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoKHNlYXJjaFN0cmluZzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlYXJjaFN0cmluZyA9IHNlYXJjaFN0cmluZztcclxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgYXBpRXJyb3IoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2w/LmdldEVycm9yKCdlcnJvcicpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sKS5jb250cm9sO1xyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAoY29udHJvbCkge1xyXG4gIDxhcHAtdHJtLXNlbGVjdCBbZGF0YV09XCJkYXRhXCJcclxuICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZy5wbGFjZWhvbGRlciB8IHRyYW5zXCJcclxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpZy5sYWJlbCB8IHRyYW5zXCJcclxuICAgICAgICAgICAgICAgICAgW25hbWVdPVwiY29uZmlnLm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAoc2VhcmNoKT1cInNlYXJjaCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgKG9wZW4pPVwib25Ub3VjaCgpXCJcclxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImMtZmllbGQtc2VsZWN0IHRybS1mb3JtLWZpZWxkXCJcclxuICA+PC9hcHAtdHJtLXNlbGVjdD5cclxuICBAaWYgKGNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykgJiYgY29udHJvbC50b3VjaGVkICYmIGNvbnRyb2wuZGlydHkpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJ0cm0tZXJyb3JcIlxyXG4gICAgICAgICBAaW5zZXJ0UmVtb3ZlXHJcbiAgICA+XHJcbiAgICAgIHt7IEkxOE5fS0VZLlZBTElEQVRJT05fUkVRVUlSRUQgfCB0cmFucyB9fVxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIEBpZiAoY29udHJvbC5oYXNFcnJvcignZXJyb3InKSAmJiBjb250cm9sLnRvdWNoZWQgJiYgY29udHJvbC5kaXJ0eSkge1xyXG4gICAgPGRpdiBjbGFzcz1cInRybS1lcnJvclwiXHJcbiAgICAgICAgIEBpbnNlcnRSZW1vdmVcclxuICAgID5cclxuICAgICAge3sgYXBpRXJyb3IgfCB0cmFucyB9fVxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG5cclxuICBAaWYgKGNvbnRyb2wuaGFzRXJyb3IoJ2N1c3RvbV9lcnJvcicpICYmIGNvbnRyb2wudG91Y2hlZCAmJiBjb250cm9sLmRpcnR5KSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwidHJtLWVycm9yXCJcclxuICAgICAgICAgQGluc2VydFJlbW92ZVxyXG4gICAgPlxyXG4gICAgICB7eyBjb250cm9sLmdldEVycm9yKCdjdXN0b21fZXJyb3InKSB8IHRyYW5zIH19XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|