@skyux/phone-field 7.0.0-beta.8 → 7.0.0
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/documentation.json +494 -222
- package/esm2020/lib/modules/phone-field/phone-field-adapter.service.mjs +25 -23
- package/esm2020/lib/modules/phone-field/phone-field-input.directive.mjs +129 -117
- package/esm2020/lib/modules/phone-field/phone-field.component.mjs +79 -59
- package/esm2020/lib/modules/phone-field/phone-field.module.mjs +5 -5
- package/esm2020/lib/modules/shared/sky-phone-field-resources.module.mjs +5 -5
- package/esm2020/testing/phonefield/phone-field-fixture.mjs +76 -88
- package/esm2020/testing/phonefield/phone-field-testing.module.mjs +5 -5
- package/fesm2015/skyux-phone-field-testing.mjs +76 -91
- package/fesm2015/skyux-phone-field-testing.mjs.map +1 -1
- package/fesm2015/skyux-phone-field.mjs +243 -199
- package/fesm2015/skyux-phone-field.mjs.map +1 -1
- package/fesm2020/skyux-phone-field-testing.mjs +79 -91
- package/fesm2020/skyux-phone-field-testing.mjs.map +1 -1
- package/fesm2020/skyux-phone-field.mjs +234 -198
- package/fesm2020/skyux-phone-field.mjs.map +1 -1
- package/lib/modules/phone-field/phone-field-adapter.service.d.ts +1 -3
- package/lib/modules/phone-field/phone-field-input.directive.d.ts +7 -28
- package/lib/modules/phone-field/phone-field.component.d.ts +21 -25
- package/package.json +13 -12
- package/testing/phonefield/phone-field-fixture.d.ts +4 -28
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
1
|
+
var _SkyPhoneFieldAdapterService_ngUnsubscribe, _SkyPhoneFieldAdapterService_renderer, _SkyPhoneFieldAdapterService_resourcesService;
|
|
2
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
+
import { Injectable } from '@angular/core';
|
|
3
4
|
import { Subject } from 'rxjs';
|
|
4
5
|
import { takeUntil } from 'rxjs/operators';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
@@ -10,55 +11,56 @@ import * as i1 from "@skyux/i18n";
|
|
|
10
11
|
*/
|
|
11
12
|
export class SkyPhoneFieldAdapterService {
|
|
12
13
|
constructor(renderer, resourcesService) {
|
|
13
|
-
this
|
|
14
|
-
this
|
|
15
|
-
this
|
|
14
|
+
_SkyPhoneFieldAdapterService_ngUnsubscribe.set(this, new Subject());
|
|
15
|
+
_SkyPhoneFieldAdapterService_renderer.set(this, void 0);
|
|
16
|
+
_SkyPhoneFieldAdapterService_resourcesService.set(this, void 0);
|
|
17
|
+
__classPrivateFieldSet(this, _SkyPhoneFieldAdapterService_renderer, renderer, "f");
|
|
18
|
+
__classPrivateFieldSet(this, _SkyPhoneFieldAdapterService_resourcesService, resourcesService, "f");
|
|
16
19
|
}
|
|
17
20
|
ngOnDestroy() {
|
|
18
|
-
this.
|
|
19
|
-
this.
|
|
21
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldAdapterService_ngUnsubscribe, "f").next();
|
|
22
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldAdapterService_ngUnsubscribe, "f").complete();
|
|
20
23
|
}
|
|
21
24
|
addElementClass(elementRef, className) {
|
|
22
|
-
this.
|
|
25
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldAdapterService_renderer, "f").addClass(elementRef.nativeElement, className);
|
|
23
26
|
}
|
|
24
27
|
setElementDisabledState(elementRef, disabled) {
|
|
25
|
-
this.
|
|
28
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldAdapterService_renderer, "f").setProperty(elementRef.nativeElement, 'disabled', disabled);
|
|
26
29
|
}
|
|
27
30
|
setElementPlaceholder(elementRef, placeholder) {
|
|
28
|
-
this.
|
|
31
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldAdapterService_renderer, "f").setAttribute(elementRef.nativeElement, 'placeholder', placeholder);
|
|
29
32
|
}
|
|
30
33
|
setElementType(elementRef) {
|
|
31
|
-
this.
|
|
34
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldAdapterService_renderer, "f").setAttribute(elementRef.nativeElement, 'type', 'tel');
|
|
32
35
|
}
|
|
33
36
|
setElementValue(elementRef, value) {
|
|
34
|
-
|
|
35
|
-
this.renderer.setProperty(elementRef.nativeElement, 'value', value);
|
|
36
|
-
}
|
|
37
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldAdapterService_renderer, "f").setProperty(elementRef.nativeElement, 'value', value);
|
|
37
38
|
}
|
|
38
39
|
setAriaLabel(element) {
|
|
39
40
|
/* Sanity check */
|
|
40
41
|
/* istanbul ignore else */
|
|
41
42
|
if (!element.nativeElement.getAttribute('aria-label')) {
|
|
42
|
-
this
|
|
43
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldAdapterService_resourcesService, "f")
|
|
43
44
|
.getString('skyux_phone_field_default_label')
|
|
44
|
-
.pipe(takeUntil(this
|
|
45
|
+
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyPhoneFieldAdapterService_ngUnsubscribe, "f")))
|
|
45
46
|
.subscribe((value) => {
|
|
46
|
-
this.
|
|
47
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldAdapterService_renderer, "f").setAttribute(element.nativeElement, 'aria-label', value);
|
|
47
48
|
});
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
51
|
focusCountrySearchElement(el) {
|
|
51
52
|
const input = el.querySelector('textarea');
|
|
52
|
-
input
|
|
53
|
+
input?.focus();
|
|
53
54
|
}
|
|
54
55
|
focusPhoneInput(el) {
|
|
55
56
|
const input = el.querySelector('.sky-phone-field-container input');
|
|
56
|
-
input
|
|
57
|
+
input?.focus();
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
|
-
|
|
60
|
-
SkyPhoneFieldAdapterService.ɵ
|
|
61
|
-
i0.ɵɵ
|
|
60
|
+
_SkyPhoneFieldAdapterService_ngUnsubscribe = new WeakMap(), _SkyPhoneFieldAdapterService_renderer = new WeakMap(), _SkyPhoneFieldAdapterService_resourcesService = new WeakMap();
|
|
61
|
+
SkyPhoneFieldAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyPhoneFieldAdapterService, deps: [{ token: i0.Renderer2 }, { token: i1.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
62
|
+
SkyPhoneFieldAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyPhoneFieldAdapterService });
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyPhoneFieldAdapterService, decorators: [{
|
|
62
64
|
type: Injectable
|
|
63
65
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.SkyLibResourcesService }]; } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQtYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bob25lLWZpZWxkL3NyYy9saWIvbW9kdWxlcy9waG9uZS1maWVsZC9waG9uZS1maWVsZC1hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQWMsVUFBVSxFQUF3QixNQUFNLGVBQWUsQ0FBQztBQUc3RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRTNDOzs7R0FHRztBQUVILE1BQU0sT0FBTywyQkFBMkI7SUFNdEMsWUFBWSxRQUFtQixFQUFFLGdCQUF3QztRQUx6RSxxREFBaUIsSUFBSSxPQUFPLEVBQVEsRUFBQztRQUVyQyx3REFBcUI7UUFDckIsZ0VBQTBDO1FBR3hDLHVCQUFBLElBQUkseUNBQWEsUUFBUSxNQUFBLENBQUM7UUFDMUIsdUJBQUEsSUFBSSxpREFBcUIsZ0JBQWdCLE1BQUEsQ0FBQztJQUM1QyxDQUFDO0lBRU0sV0FBVztRQUNoQix1QkFBQSxJQUFJLGtEQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsdUJBQUEsSUFBSSxrREFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxlQUFlLENBQUMsVUFBc0IsRUFBRSxTQUFpQjtRQUM5RCx1QkFBQSxJQUFJLDZDQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVNLHVCQUF1QixDQUM1QixVQUFzQixFQUN0QixRQUFpQjtRQUVqQix1QkFBQSxJQUFJLDZDQUFVLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTSxxQkFBcUIsQ0FDMUIsVUFBc0IsRUFDdEIsV0FBbUI7UUFFbkIsdUJBQUEsSUFBSSw2Q0FBVSxDQUFDLFlBQVksQ0FDekIsVUFBVSxDQUFDLGFBQWEsRUFDeEIsYUFBYSxFQUNiLFdBQVcsQ0FDWixDQUFDO0lBQ0osQ0FBQztJQUVNLGNBQWMsQ0FBQyxVQUFzQjtRQUMxQyx1QkFBQSxJQUFJLDZDQUFVLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSxlQUFlLENBQUMsVUFBc0IsRUFBRSxLQUFhO1FBQzFELHVCQUFBLElBQUksNkNBQVUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVNLFlBQVksQ0FBQyxPQUFtQjtRQUNyQyxrQkFBa0I7UUFDbEIsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNyRCx1QkFBQSxJQUFJLHFEQUFrQjtpQkFDbkIsU0FBUyxDQUFDLGlDQUFpQyxDQUFDO2lCQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUFBLElBQUksa0RBQWUsQ0FBQyxDQUFDO2lCQUNwQyxTQUFTLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRTtnQkFDM0IsdUJBQUEsSUFBSSw2Q0FBVSxDQUFDLFlBQVksQ0FDekIsT0FBTyxDQUFDLGFBQWEsRUFDckIsWUFBWSxFQUNaLEtBQUssQ0FDTixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFFTSx5QkFBeUIsQ0FBQyxFQUFXO1FBQzFDLE1BQU0sS0FBSyxHQUF1QixFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU0sZUFBZSxDQUFDLEVBQVc7UUFDaEMsTUFBTSxLQUFLLEdBQXVCLEVBQUUsQ0FBQyxhQUFhLENBQ2hELGtDQUFrQyxDQUNuQyxDQUFDO1FBQ0YsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2pCLENBQUM7Ozt5SEF6RVUsMkJBQTJCOzZIQUEzQiwyQkFBMkI7NEZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIE9uRGVzdHJveSwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogU2VydmljZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgRE9NIGVsZW1lbnRzIG9mIHRoZSBwaG9uZSBmaWVsZC5cbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5UGhvbmVGaWVsZEFkYXB0ZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICNyZW5kZXJlcjogUmVuZGVyZXIyO1xuICAjcmVzb3VyY2VzU2VydmljZTogU2t5TGliUmVzb3VyY2VzU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihyZW5kZXJlcjogUmVuZGVyZXIyLCByZXNvdXJjZXNTZXJ2aWNlOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlKSB7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlcjtcbiAgICB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlID0gcmVzb3VyY2VzU2VydmljZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgYWRkRWxlbWVudENsYXNzKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIGNsYXNzTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jcmVuZGVyZXIuYWRkQ2xhc3MoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBjbGFzc05hbWUpO1xuICB9XG5cbiAgcHVibGljIHNldEVsZW1lbnREaXNhYmxlZFN0YXRlKFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW5cbiAgKTogdm9pZCB7XG4gICAgdGhpcy4jcmVuZGVyZXIuc2V0UHJvcGVydHkoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCBkaXNhYmxlZCk7XG4gIH1cblxuICBwdWJsaWMgc2V0RWxlbWVudFBsYWNlaG9sZGVyKFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZ1xuICApOiB2b2lkIHtcbiAgICB0aGlzLiNyZW5kZXJlci5zZXRBdHRyaWJ1dGUoXG4gICAgICBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAncGxhY2Vob2xkZXInLFxuICAgICAgcGxhY2Vob2xkZXJcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNldEVsZW1lbnRUeXBlKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICB0aGlzLiNyZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndHlwZScsICd0ZWwnKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRFbGVtZW50VmFsdWUoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuI3JlbmRlcmVyLnNldFByb3BlcnR5KGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgdmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHNldEFyaWFMYWJlbChlbGVtZW50OiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgLyogU2FuaXR5IGNoZWNrICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoIWVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnKSkge1xuICAgICAgdGhpcy4jcmVzb3VyY2VzU2VydmljZVxuICAgICAgICAuZ2V0U3RyaW5nKCdza3l1eF9waG9uZV9maWVsZF9kZWZhdWx0X2xhYmVsJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgdGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgJ2FyaWEtbGFiZWwnLFxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9jdXNDb3VudHJ5U2VhcmNoRWxlbWVudChlbDogRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0OiBIVE1MRWxlbWVudCB8IG51bGwgPSBlbC5xdWVyeVNlbGVjdG9yKCd0ZXh0YXJlYScpO1xuICAgIGlucHV0Py5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzUGhvbmVJbnB1dChlbDogRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0OiBIVE1MRWxlbWVudCB8IG51bGwgPSBlbC5xdWVyeVNlbGVjdG9yKFxuICAgICAgJy5za3ktcGhvbmUtZmllbGQtY29udGFpbmVyIGlucHV0J1xuICAgICk7XG4gICAgaW5wdXQ/LmZvY3VzKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
var _SkyPhoneFieldInputDirective_instances, _SkyPhoneFieldInputDirective_modelValue_set, _SkyPhoneFieldInputDirective_modelValue_get, _SkyPhoneFieldInputDirective_control, _SkyPhoneFieldInputDirective_textChanges, _SkyPhoneFieldInputDirective_ngUnsubscribe, _SkyPhoneFieldInputDirective_phoneUtils, _SkyPhoneFieldInputDirective__disabled, _SkyPhoneFieldInputDirective__modelValue, _SkyPhoneFieldInputDirective_changeDetector, _SkyPhoneFieldInputDirective_elRef, _SkyPhoneFieldInputDirective_adapterService, _SkyPhoneFieldInputDirective_phoneFieldComponent, _SkyPhoneFieldInputDirective_setupTextChangeSubscription, _SkyPhoneFieldInputDirective_validateNumber, _SkyPhoneFieldInputDirective_formatNumber, _SkyPhoneFieldInputDirective_onChange, _SkyPhoneFieldInputDirective_onTouched, _SkyPhoneFieldInputDirective_validatorChange;
|
|
2
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
|
+
import { Directive, HostListener, Input, Optional, forwardRef, } from '@angular/core';
|
|
2
5
|
import { NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
|
|
3
6
|
import { PhoneNumberFormat, PhoneNumberUtil } from 'google-libphonenumber';
|
|
4
7
|
import { BehaviorSubject, Subject } from 'rxjs';
|
|
5
8
|
import { debounceTime, takeUntil } from 'rxjs/operators';
|
|
6
|
-
import { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';
|
|
7
|
-
import { SkyPhoneFieldComponent } from './phone-field.component';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "./phone-field-adapter.service";
|
|
10
11
|
import * as i2 from "./phone-field.component";
|
|
@@ -33,10 +34,7 @@ const SKY_PHONE_FIELD_VALIDATOR = {
|
|
|
33
34
|
*/
|
|
34
35
|
export class SkyPhoneFieldInputDirective {
|
|
35
36
|
constructor(changeDetector, elRef, adapterService, phoneFieldComponent) {
|
|
36
|
-
this
|
|
37
|
-
this.elRef = elRef;
|
|
38
|
-
this.adapterService = adapterService;
|
|
39
|
-
this.phoneFieldComponent = phoneFieldComponent;
|
|
37
|
+
_SkyPhoneFieldInputDirective_instances.add(this);
|
|
40
38
|
/**
|
|
41
39
|
* Indicates whether to prevent validation on the phone number input. For validation,
|
|
42
40
|
* phone numbers are driven through the `ngModel` attribute that you specify on an
|
|
@@ -45,97 +43,101 @@ export class SkyPhoneFieldInputDirective {
|
|
|
45
43
|
* @default false
|
|
46
44
|
*/
|
|
47
45
|
this.skyPhoneFieldNoValidate = false;
|
|
48
|
-
this
|
|
49
|
-
this
|
|
46
|
+
_SkyPhoneFieldInputDirective_control.set(this, void 0);
|
|
47
|
+
_SkyPhoneFieldInputDirective_textChanges.set(this, void 0);
|
|
48
|
+
_SkyPhoneFieldInputDirective_ngUnsubscribe.set(this, new Subject());
|
|
49
|
+
_SkyPhoneFieldInputDirective_phoneUtils.set(this, PhoneNumberUtil.getInstance());
|
|
50
|
+
_SkyPhoneFieldInputDirective__disabled.set(this, void 0);
|
|
51
|
+
_SkyPhoneFieldInputDirective__modelValue.set(this, '');
|
|
52
|
+
_SkyPhoneFieldInputDirective_changeDetector.set(this, void 0);
|
|
53
|
+
_SkyPhoneFieldInputDirective_elRef.set(this, void 0);
|
|
54
|
+
_SkyPhoneFieldInputDirective_adapterService.set(this, void 0);
|
|
55
|
+
_SkyPhoneFieldInputDirective_phoneFieldComponent.set(this, void 0);
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function , @typescript-eslint/no-unused-vars
|
|
57
|
+
_SkyPhoneFieldInputDirective_onChange.set(this, (_) => { });
|
|
58
|
+
// istanbul ignore next
|
|
50
59
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
51
|
-
this
|
|
60
|
+
_SkyPhoneFieldInputDirective_onTouched.set(this, () => { });
|
|
61
|
+
// istanbul ignore next
|
|
52
62
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
53
|
-
this
|
|
54
|
-
|
|
55
|
-
this
|
|
63
|
+
_SkyPhoneFieldInputDirective_validatorChange.set(this, () => { });
|
|
64
|
+
__classPrivateFieldSet(this, _SkyPhoneFieldInputDirective_changeDetector, changeDetector, "f");
|
|
65
|
+
__classPrivateFieldSet(this, _SkyPhoneFieldInputDirective_elRef, elRef, "f");
|
|
66
|
+
__classPrivateFieldSet(this, _SkyPhoneFieldInputDirective_adapterService, adapterService, "f");
|
|
67
|
+
__classPrivateFieldSet(this, _SkyPhoneFieldInputDirective_phoneFieldComponent, phoneFieldComponent, "f");
|
|
56
68
|
}
|
|
57
69
|
/**
|
|
58
70
|
* Indicates whether to disable the phone field.
|
|
59
71
|
* @default false
|
|
60
72
|
*/
|
|
61
73
|
set disabled(value) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
get disabled() {
|
|
67
|
-
return this._disabled || false;
|
|
68
|
-
}
|
|
69
|
-
set modelValue(value) {
|
|
70
|
-
this._modelValue = value;
|
|
71
|
-
this.adapterService.setElementValue(this.elRef, value);
|
|
72
|
-
if (value) {
|
|
73
|
-
const formattedValue = this.formatNumber(value.toString());
|
|
74
|
-
this.onChange(formattedValue);
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
this.onChange(value);
|
|
74
|
+
const coercedValue = coerceBooleanProperty(value);
|
|
75
|
+
if (__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneFieldComponent, "f")) {
|
|
76
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneFieldComponent, "f").countrySelectDisabled = coercedValue;
|
|
77
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_adapterService, "f")?.setElementDisabledState(__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_elRef, "f"), coercedValue);
|
|
78
78
|
}
|
|
79
|
-
this
|
|
79
|
+
__classPrivateFieldSet(this, _SkyPhoneFieldInputDirective__disabled, coercedValue, "f");
|
|
80
80
|
}
|
|
81
|
-
get
|
|
82
|
-
return this
|
|
81
|
+
get disabled() {
|
|
82
|
+
return __classPrivateFieldGet(this, _SkyPhoneFieldInputDirective__disabled, "f");
|
|
83
83
|
}
|
|
84
84
|
ngOnInit() {
|
|
85
|
-
if (!this
|
|
85
|
+
if (!__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneFieldComponent, "f")) {
|
|
86
86
|
throw new Error('You must wrap the `skyPhoneFieldInput` directive within a ' +
|
|
87
87
|
'`<sky-phone-field>` component!');
|
|
88
88
|
}
|
|
89
|
-
this
|
|
90
|
-
this
|
|
91
|
-
if (this
|
|
92
|
-
this
|
|
89
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_adapterService, "f")?.setElementType(__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_elRef, "f"));
|
|
90
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_adapterService, "f")?.addElementClass(__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_elRef, "f"), 'sky-form-control');
|
|
91
|
+
if (__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneFieldComponent, "f")?.selectedCountry?.exampleNumber) {
|
|
92
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_adapterService, "f")?.setElementPlaceholder(__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_elRef, "f"), __classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneFieldComponent, "f").selectedCountry.exampleNumber);
|
|
93
93
|
}
|
|
94
|
-
this
|
|
94
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_adapterService, "f")?.setAriaLabel(__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_elRef, "f"));
|
|
95
95
|
}
|
|
96
96
|
ngAfterViewInit() {
|
|
97
|
-
this
|
|
98
|
-
.pipe(takeUntil(this
|
|
97
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneFieldComponent, "f")?.selectedCountryChange
|
|
98
|
+
.pipe(takeUntil(__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_ngUnsubscribe, "f")))
|
|
99
99
|
.subscribe((country) => {
|
|
100
|
-
this
|
|
101
|
-
|
|
100
|
+
__classPrivateFieldSet(this, _SkyPhoneFieldInputDirective_instances, __classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_elRef, "f").nativeElement.value, "a", _SkyPhoneFieldInputDirective_modelValue_set);
|
|
101
|
+
if (country?.exampleNumber) {
|
|
102
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_adapterService, "f")?.setElementPlaceholder(__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_elRef, "f"), country.exampleNumber);
|
|
103
|
+
}
|
|
102
104
|
});
|
|
103
105
|
// This is needed to address a bug in Angular 4, where the value is not changed on the view.
|
|
104
106
|
// See: https://github.com/angular/angular/issues/13792
|
|
105
107
|
/* istanbul ignore else */
|
|
106
|
-
if (this
|
|
107
|
-
this.
|
|
108
|
-
this.
|
|
108
|
+
if (__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_control, "f") && __classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_instances, "a", _SkyPhoneFieldInputDirective_modelValue_get)) {
|
|
109
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_control, "f").setValue(__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_instances, "a", _SkyPhoneFieldInputDirective_modelValue_get), { emitEvent: false });
|
|
110
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_changeDetector, "f").detectChanges();
|
|
109
111
|
}
|
|
110
112
|
}
|
|
111
113
|
ngOnDestroy() {
|
|
112
|
-
this.
|
|
113
|
-
this.
|
|
114
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_ngUnsubscribe, "f").next();
|
|
115
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_ngUnsubscribe, "f").complete();
|
|
114
116
|
}
|
|
115
117
|
/**
|
|
116
118
|
* Writes the new value for reactive forms on change events on the input element
|
|
117
119
|
* @param event The change event that was received
|
|
118
120
|
*/
|
|
119
121
|
onInputChange(event) {
|
|
120
|
-
if (!this
|
|
121
|
-
this.
|
|
122
|
+
if (!__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_textChanges, "f")) {
|
|
123
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_instances, "m", _SkyPhoneFieldInputDirective_setupTextChangeSubscription).call(this, event.target.value);
|
|
122
124
|
}
|
|
123
125
|
else {
|
|
124
|
-
this.
|
|
126
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_textChanges, "f").next(event.target.value);
|
|
125
127
|
}
|
|
126
128
|
}
|
|
127
129
|
/**
|
|
128
130
|
* Marks reactive form controls as touched on input blur events
|
|
129
131
|
*/
|
|
130
132
|
onInputBlur() {
|
|
131
|
-
this.
|
|
133
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_onTouched, "f").call(this);
|
|
132
134
|
}
|
|
133
135
|
onInputTyping(event) {
|
|
134
|
-
if (!this
|
|
135
|
-
this.
|
|
136
|
+
if (!__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_textChanges, "f")) {
|
|
137
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_instances, "m", _SkyPhoneFieldInputDirective_setupTextChangeSubscription).call(this, event.target.value);
|
|
136
138
|
}
|
|
137
139
|
else {
|
|
138
|
-
this.
|
|
140
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_textChanges, "f").next(event.target.value);
|
|
139
141
|
}
|
|
140
142
|
}
|
|
141
143
|
/**
|
|
@@ -143,17 +145,17 @@ export class SkyPhoneFieldInputDirective {
|
|
|
143
145
|
* @param value The new value for the input
|
|
144
146
|
*/
|
|
145
147
|
writeValue(value) {
|
|
146
|
-
this
|
|
147
|
-
this
|
|
148
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneFieldComponent, "f")?.setCountryByDialCode(value);
|
|
149
|
+
__classPrivateFieldSet(this, _SkyPhoneFieldInputDirective_instances, value, "a", _SkyPhoneFieldInputDirective_modelValue_set);
|
|
148
150
|
}
|
|
149
151
|
registerOnChange(fn) {
|
|
150
|
-
this
|
|
152
|
+
__classPrivateFieldSet(this, _SkyPhoneFieldInputDirective_onChange, fn, "f");
|
|
151
153
|
}
|
|
152
154
|
registerOnTouched(fn) {
|
|
153
|
-
this
|
|
155
|
+
__classPrivateFieldSet(this, _SkyPhoneFieldInputDirective_onTouched, fn, "f");
|
|
154
156
|
}
|
|
155
157
|
registerOnValidatorChange(fn) {
|
|
156
|
-
this
|
|
158
|
+
__classPrivateFieldSet(this, _SkyPhoneFieldInputDirective_validatorChange, fn, "f");
|
|
157
159
|
}
|
|
158
160
|
/**
|
|
159
161
|
* Sets the disabled state on the input
|
|
@@ -167,19 +169,19 @@ export class SkyPhoneFieldInputDirective {
|
|
|
167
169
|
* @param control the form control for the input
|
|
168
170
|
*/
|
|
169
171
|
validate(control) {
|
|
170
|
-
if (!this
|
|
171
|
-
this
|
|
172
|
+
if (!__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_control, "f")) {
|
|
173
|
+
__classPrivateFieldSet(this, _SkyPhoneFieldInputDirective_control, control, "f");
|
|
172
174
|
}
|
|
173
175
|
if (this.skyPhoneFieldNoValidate) {
|
|
174
|
-
return;
|
|
176
|
+
return null;
|
|
175
177
|
}
|
|
176
178
|
const value = control.value;
|
|
177
179
|
if (!value) {
|
|
178
|
-
return;
|
|
180
|
+
return null;
|
|
179
181
|
}
|
|
180
|
-
if (this
|
|
181
|
-
!this.
|
|
182
|
-
if (!this
|
|
182
|
+
if (__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneFieldComponent, "f")?.selectedCountry &&
|
|
183
|
+
!__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_instances, "m", _SkyPhoneFieldInputDirective_validateNumber).call(this, value)) {
|
|
184
|
+
if (!__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_textChanges, "f")) {
|
|
183
185
|
// Mark the invalid control as touched so that the input's invalid CSS styles appear.
|
|
184
186
|
// (This is only required when the invalid value is set by the FormControl constructor.)
|
|
185
187
|
// We don't do this if the input is the active element so that we don't show validation
|
|
@@ -192,66 +194,76 @@ export class SkyPhoneFieldInputDirective {
|
|
|
192
194
|
},
|
|
193
195
|
};
|
|
194
196
|
}
|
|
197
|
+
return null;
|
|
195
198
|
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
199
|
+
}
|
|
200
|
+
_SkyPhoneFieldInputDirective_control = new WeakMap(), _SkyPhoneFieldInputDirective_textChanges = new WeakMap(), _SkyPhoneFieldInputDirective_ngUnsubscribe = new WeakMap(), _SkyPhoneFieldInputDirective_phoneUtils = new WeakMap(), _SkyPhoneFieldInputDirective__disabled = new WeakMap(), _SkyPhoneFieldInputDirective__modelValue = new WeakMap(), _SkyPhoneFieldInputDirective_changeDetector = new WeakMap(), _SkyPhoneFieldInputDirective_elRef = new WeakMap(), _SkyPhoneFieldInputDirective_adapterService = new WeakMap(), _SkyPhoneFieldInputDirective_phoneFieldComponent = new WeakMap(), _SkyPhoneFieldInputDirective_onChange = new WeakMap(), _SkyPhoneFieldInputDirective_onTouched = new WeakMap(), _SkyPhoneFieldInputDirective_validatorChange = new WeakMap(), _SkyPhoneFieldInputDirective_instances = new WeakSet(), _SkyPhoneFieldInputDirective_modelValue_set = function _SkyPhoneFieldInputDirective_modelValue_set(value) {
|
|
201
|
+
const valueOrDefault = value ?? '';
|
|
202
|
+
__classPrivateFieldSet(this, _SkyPhoneFieldInputDirective__modelValue, valueOrDefault, "f");
|
|
203
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_adapterService, "f")?.setElementValue(__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_elRef, "f"), valueOrDefault);
|
|
204
|
+
if (valueOrDefault) {
|
|
205
|
+
const formattedValue = __classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_instances, "m", _SkyPhoneFieldInputDirective_formatNumber).call(this, valueOrDefault.toString());
|
|
206
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_onChange, "f").call(this, formattedValue);
|
|
203
207
|
}
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
208
|
+
else {
|
|
209
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_onChange, "f").call(this, valueOrDefault);
|
|
210
|
+
}
|
|
211
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_validatorChange, "f").call(this);
|
|
212
|
+
}, _SkyPhoneFieldInputDirective_modelValue_get = function _SkyPhoneFieldInputDirective_modelValue_get() {
|
|
213
|
+
return __classPrivateFieldGet(this, _SkyPhoneFieldInputDirective__modelValue, "f");
|
|
214
|
+
}, _SkyPhoneFieldInputDirective_setupTextChangeSubscription = function _SkyPhoneFieldInputDirective_setupTextChangeSubscription(text) {
|
|
215
|
+
__classPrivateFieldSet(this, _SkyPhoneFieldInputDirective_textChanges, new BehaviorSubject(text), "f");
|
|
216
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_textChanges, "f")
|
|
217
|
+
.pipe(debounceTime(500), takeUntil(__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_ngUnsubscribe, "f")))
|
|
218
|
+
.subscribe((newValue) => {
|
|
219
|
+
this.writeValue(newValue);
|
|
220
|
+
});
|
|
221
|
+
}, _SkyPhoneFieldInputDirective_validateNumber = function _SkyPhoneFieldInputDirective_validateNumber(phoneNumber) {
|
|
222
|
+
try {
|
|
223
|
+
const numberObj = __classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneUtils, "f").parseAndKeepRawInput(phoneNumber, __classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneFieldComponent, "f")?.selectedCountry?.iso2);
|
|
224
|
+
if (__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneFieldComponent, "f") &&
|
|
225
|
+
!__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneFieldComponent, "f").allowExtensions &&
|
|
226
|
+
numberObj.getExtension()) {
|
|
214
227
|
return false;
|
|
215
228
|
}
|
|
229
|
+
return __classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneUtils, "f").isValidNumber(numberObj);
|
|
216
230
|
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
else {
|
|
242
|
-
return phoneNumber;
|
|
231
|
+
catch (e) {
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
234
|
+
}, _SkyPhoneFieldInputDirective_formatNumber = function _SkyPhoneFieldInputDirective_formatNumber(phoneNumber) {
|
|
235
|
+
try {
|
|
236
|
+
const numberObj = __classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneUtils, "f").parseAndKeepRawInput(phoneNumber, __classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneFieldComponent, "f")?.selectedCountry?.iso2);
|
|
237
|
+
if (__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneUtils, "f").isPossibleNumber(numberObj)) {
|
|
238
|
+
switch (__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneFieldComponent, "f")?.returnFormat) {
|
|
239
|
+
case 'international':
|
|
240
|
+
return __classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneUtils, "f").format(numberObj, PhoneNumberFormat.INTERNATIONAL);
|
|
241
|
+
case 'national':
|
|
242
|
+
return __classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneUtils, "f").format(numberObj, PhoneNumberFormat.NATIONAL);
|
|
243
|
+
case 'default':
|
|
244
|
+
default:
|
|
245
|
+
if (__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneFieldComponent, "f")?.selectedCountry?.iso2 !==
|
|
246
|
+
__classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneFieldComponent, "f")?.defaultCountry) {
|
|
247
|
+
return __classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneUtils, "f").format(numberObj, PhoneNumberFormat.INTERNATIONAL);
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
return __classPrivateFieldGet(this, _SkyPhoneFieldInputDirective_phoneUtils, "f").format(numberObj, PhoneNumberFormat.NATIONAL);
|
|
251
|
+
}
|
|
243
252
|
}
|
|
244
253
|
}
|
|
245
|
-
|
|
246
|
-
/* sanity check */
|
|
247
|
-
/* istanbul ignore next */
|
|
254
|
+
else {
|
|
248
255
|
return phoneNumber;
|
|
249
256
|
}
|
|
250
257
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
258
|
+
catch (e) {
|
|
259
|
+
/* sanity check */
|
|
260
|
+
/* istanbul ignore next */
|
|
261
|
+
return phoneNumber;
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
SkyPhoneFieldInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyPhoneFieldInputDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.SkyPhoneFieldAdapterService, optional: true }, { token: i2.SkyPhoneFieldComponent, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
265
|
+
SkyPhoneFieldInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.11", type: SkyPhoneFieldInputDirective, selector: "[skyPhoneFieldInput]", inputs: { disabled: "disabled", skyPhoneFieldNoValidate: "skyPhoneFieldNoValidate" }, host: { listeners: { "change": "onInputChange($event)", "blur": "onInputBlur()", "input": "onInputTyping($event)" } }, providers: [SKY_PHONE_FIELD_VALUE_ACCESSOR, SKY_PHONE_FIELD_VALIDATOR], ngImport: i0 });
|
|
266
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyPhoneFieldInputDirective, decorators: [{
|
|
255
267
|
type: Directive,
|
|
256
268
|
args: [{
|
|
257
269
|
selector: '[skyPhoneFieldInput]',
|
|
@@ -275,4 +287,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
275
287
|
type: HostListener,
|
|
276
288
|
args: ['input', ['$event']]
|
|
277
289
|
}] } });
|
|
278
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQtaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bob25lLWZpZWxkL3NyYy9saWIvbW9kdWxlcy9waG9uZS1maWVsZC9waG9uZS1maWVsZC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7O0FBR2pFLE1BQU0sOEJBQThCLEdBQUc7SUFDckMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO0lBQzFELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQUc7SUFDaEMsT0FBTyxFQUFFLGFBQWE7SUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztJQUMxRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7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QUUsc0JBQXNCO29CQUNoQyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSx5QkFBeUIsQ0FBQztpQkFDdkU7OzBCQStESSxRQUFROzswQkFDUixRQUFROzRDQXZEQSxRQUFRO3NCQURsQixLQUFLO2dCQW1CQyx1QkFBdUI7c0JBRDdCLEtBQUs7Z0JBMkZDLGFBQWE7c0JBRG5CLFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWEzQixXQUFXO3NCQURqQixZQUFZO3VCQUFDLE1BQU07Z0JBTWIsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBQaG9uZU51bWJlckZvcm1hdCwgUGhvbmVOdW1iZXJVdGlsIH0gZnJvbSAnZ29vZ2xlLWxpYnBob25lbnVtYmVyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVBob25lRmllbGRBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vcGhvbmUtZmllbGQtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVBob25lRmllbGRDb21wb25lbnQgfSBmcm9tICcuL3Bob25lLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lQaG9uZUZpZWxkQ291bnRyeSB9IGZyb20gJy4vdHlwZXMvY291bnRyeSc7XG5cbmNvbnN0IFNLWV9QSE9ORV9GSUVMRF9WQUxVRV9BQ0NFU1NPUiA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNreVBob25lRmllbGRJbnB1dERpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuY29uc3QgU0tZX1BIT05FX0ZJRUxEX1ZBTElEQVRPUiA9IHtcbiAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2t5UGhvbmVGaWVsZElucHV0RGlyZWN0aXZlKSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBidXR0b24sIHNlYXJjaCBpbnB1dCwgYW5kIHRleHQgaW5wdXQgZm9yIGVudGVyaW5nIGFuZCB2YWxpZGF0aW5nXG4gKiBpbnRlcm5hdGlvbmFsIHBob25lIG51bWJlcnMuIFBsYWNlIHRoaXMgYXR0cmlidXRlIG9uIGFuIGBpbnB1dGAgZWxlbWVudCwgYW5kIHdyYXBcbiAqIHRoYXQgZWxlbWVudCBpbiBhIGBza3ktcGhvbmUtZmllbGRgIGNvbXBvbmVudC4gQnkgZGVmYXVsdCwgdGhlIGNvdW50cnkgc2VsZWN0b3JcbiAqIGJ1dHRvbiBkaXNwbGF5cyBhIGZsYWcgaWNvbiBmb3IgdGhlIGRlZmF1bHQgY291bnRyeSwgYW5kIHRoZSBwaG9uZSBudW1iZXIgaW5wdXRcbiAqIGRpc3BsYXlzIGEgc2FtcGxlIG9mIHRoZSBjb3JyZWN0IHBob25lIG51bWJlciBmb3JtYXQuIFdoZW4gdXNlcnMgc2VsZWN0IHRoZSBjb3VudHJ5XG4gKiBzZWxlY3RvciBidXR0b24sIHRoZXkgZXhwb3NlIHRoZSBjb3VudHJ5IHNlYXJjaCBpbnB1dCwgd2hpY2ggaXNcbiAqIFthbiBhdXRvY29tcGxldGUgaW5wdXRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9hdXRvY29tcGxldGUpXG4gKiB0aGF0IGFsbG93cyB0aGVtIHRvIHNlbGVjdCBkaWZmZXJlbnQgY291bnRyaWVzLiBXaGVuIHVzZXJzIGVudGVyIGArYCBmb2xsb3dlZCBieSBhblxuICogaW50ZXJuYXRpb25hbCBkaWFsIGNvZGUgaW4gdGhlIHBob25lIG51bWJlciBpbnB1dCwgdGhlIGNvdW50cnkgYXV0b21hdGljYWxseSBzd2l0Y2hlc1xuICogdG8gdGhlIGNvdW50cnkgYXNzb2NpYXRlZCB3aXRoIHRoZSBkaWFsIGNvZGUuXG4gKiBAcmVxdWlyZWRcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreVBob25lRmllbGRJbnB1dF0nLFxuICBwcm92aWRlcnM6IFtTS1lfUEhPTkVfRklFTERfVkFMVUVfQUNDRVNTT1IsIFNLWV9QSE9ORV9GSUVMRF9WQUxJREFUT1JdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lQaG9uZUZpZWxkSW5wdXREaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvclxue1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgcGhvbmUgZmllbGQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5waG9uZUZpZWxkQ29tcG9uZW50LmNvdW50cnlTZWxlY3REaXNhYmxlZCA9IHZhbHVlO1xuICAgIHRoaXMuYWRhcHRlclNlcnZpY2Uuc2V0RWxlbWVudERpc2FibGVkU3RhdGUodGhpcy5lbFJlZiwgdmFsdWUpO1xuICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZCB8fCBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBwcmV2ZW50IHZhbGlkYXRpb24gb24gdGhlIHBob25lIG51bWJlciBpbnB1dC4gRm9yIHZhbGlkYXRpb24sXG4gICAqIHBob25lIG51bWJlcnMgYXJlIGRyaXZlbiB0aHJvdWdoIHRoZSBgbmdNb2RlbGAgYXR0cmlidXRlIHRoYXQgeW91IHNwZWNpZnkgb24gYW5cbiAgICogYGlucHV0YCBlbGVtZW50IG9yIG9uIGEgYEZvcm1Db250cm9sYCBpbiBhIHJlYWN0aXZlIGZvcm0uIFRvIHByZXZlbnQgdmFsaWRhdGlvbixcbiAgICogc2V0IHRoaXMgcHJvcGVydHkgdG8gYHRydWVgLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNreVBob25lRmllbGROb1ZhbGlkYXRlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBzZXQgbW9kZWxWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fbW9kZWxWYWx1ZSA9IHZhbHVlO1xuXG4gICAgdGhpcy5hZGFwdGVyU2VydmljZS5zZXRFbGVtZW50VmFsdWUodGhpcy5lbFJlZiwgdmFsdWUpO1xuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHRoaXMuZm9ybWF0TnVtYmVyKHZhbHVlLnRvU3RyaW5nKCkpO1xuXG4gICAgICB0aGlzLm9uQ2hhbmdlKGZvcm1hdHRlZFZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgfVxuICAgIHRoaXMudmFsaWRhdG9yQ2hhbmdlKCk7XG4gIH1cblxuICBwcml2YXRlIGdldCBtb2RlbFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX21vZGVsVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcblxuICBwcml2YXRlIHRleHRDaGFuZ2VzOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPjtcblxuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcGhvbmVVdGlscyA9IFBob25lTnVtYmVyVXRpbC5nZXRJbnN0YW5jZSgpO1xuXG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuO1xuXG4gIHByaXZhdGUgX21vZGVsVmFsdWU6IHN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGFkYXB0ZXJTZXJ2aWNlOiBTa3lQaG9uZUZpZWxkQWRhcHRlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwaG9uZUZpZWxkQ29tcG9uZW50OiBTa3lQaG9uZUZpZWxkQ29tcG9uZW50XG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBob25lRmllbGRDb21wb25lbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1lvdSBtdXN0IHdyYXAgdGhlIGBza3lQaG9uZUZpZWxkSW5wdXRgIGRpcmVjdGl2ZSB3aXRoaW4gYSAnICtcbiAgICAgICAgICAnYDxza3ktcGhvbmUtZmllbGQ+YCBjb21wb25lbnQhJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmFkYXB0ZXJTZXJ2aWNlLnNldEVsZW1lbnRUeXBlKHRoaXMuZWxSZWYpO1xuICAgIHRoaXMuYWRhcHRlclNlcnZpY2UuYWRkRWxlbWVudENsYXNzKHRoaXMuZWxSZWYsICdza3ktZm9ybS1jb250cm9sJyk7XG4gICAgaWYgKHRoaXMucGhvbmVGaWVsZENvbXBvbmVudC5zZWxlY3RlZENvdW50cnkpIHtcbiAgICAgIHRoaXMuYWRhcHRlclNlcnZpY2Uuc2V0RWxlbWVudFBsYWNlaG9sZGVyKFxuICAgICAgICB0aGlzLmVsUmVmLFxuICAgICAgICB0aGlzLnBob25lRmllbGRDb21wb25lbnQuc2VsZWN0ZWRDb3VudHJ5LmV4YW1wbGVOdW1iZXJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5hZGFwdGVyU2VydmljZS5zZXRBcmlhTGFiZWwodGhpcy5lbFJlZik7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucGhvbmVGaWVsZENvbXBvbmVudC5zZWxlY3RlZENvdW50cnlDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoY291bnRyeTogU2t5UGhvbmVGaWVsZENvdW50cnkpID0+IHtcbiAgICAgICAgdGhpcy5tb2RlbFZhbHVlID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgICAgICB0aGlzLmFkYXB0ZXJTZXJ2aWNlLnNldEVsZW1lbnRQbGFjZWhvbGRlcihcbiAgICAgICAgICB0aGlzLmVsUmVmLFxuICAgICAgICAgIGNvdW50cnkuZXhhbXBsZU51bWJlclxuICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICAvLyBUaGlzIGlzIG5lZWRlZCB0byBhZGRyZXNzIGEgYnVnIGluIEFuZ3VsYXIgNCwgd2hlcmUgdGhlIHZhbHVlIGlzIG5vdCBjaGFuZ2VkIG9uIHRoZSB2aWV3LlxuICAgIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTM3OTJcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLmNvbnRyb2wgJiYgdGhpcy5tb2RlbFZhbHVlKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodGhpcy5tb2RlbFZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZXMgdGhlIG5ldyB2YWx1ZSBmb3IgcmVhY3RpdmUgZm9ybXMgb24gY2hhbmdlIGV2ZW50cyBvbiB0aGUgaW5wdXQgZWxlbWVudFxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIGNoYW5nZSBldmVudCB0aGF0IHdhcyByZWNlaXZlZFxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignY2hhbmdlJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy50ZXh0Q2hhbmdlcykge1xuICAgICAgdGhpcy5zZXR1cFRleHRDaGFuZ2VTdWJzY3JpcHRpb24oZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50ZXh0Q2hhbmdlcy5uZXh0KGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1hcmtzIHJlYWN0aXZlIGZvcm0gY29udHJvbHMgYXMgdG91Y2hlZCBvbiBpbnB1dCBibHVyIGV2ZW50c1xuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gIHB1YmxpYyBvbklucHV0Qmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignaW5wdXQnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25JbnB1dFR5cGluZyhldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRleHRDaGFuZ2VzKSB7XG4gICAgICB0aGlzLnNldHVwVGV4dENoYW5nZVN1YnNjcmlwdGlvbihldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRleHRDaGFuZ2VzLm5leHQoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV3JpdGVzIHRoZSBuZXcgdmFsdWUgZm9yIHJlYWN0aXZlIGZvcm1zXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgbmV3IHZhbHVlIGZvciB0aGUgaW5wdXRcbiAgICovXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnBob25lRmllbGRDb21wb25lbnQuc2V0Q291bnRyeUJ5RGlhbENvZGUodmFsdWUpO1xuXG4gICAgdGhpcy5tb2RlbFZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBvbiB0aGUgaW5wdXRcbiAgICogQHBhcmFtIGlzRGlzYWJsZWQgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgaW5wdXQncyBkaXNhYmxlZCBzdGF0ZVxuICAgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlJ3MgdGhlIGZvcm0gY29udHJvbCdzIGN1cnJlbnQgdmFsdWVcbiAgICogQHBhcmFtIGNvbnRyb2wgdGhlIGZvcm0gY29udHJvbCBmb3IgdGhlIGlucHV0XG4gICAqL1xuICBwdWJsaWMgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgaWYgKCF0aGlzLmNvbnRyb2wpIHtcbiAgICAgIHRoaXMuY29udHJvbCA9IGNvbnRyb2w7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2t5UGhvbmVGaWVsZE5vVmFsaWRhdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5waG9uZUZpZWxkQ29tcG9uZW50LnNlbGVjdGVkQ291bnRyeSAmJlxuICAgICAgIXRoaXMudmFsaWRhdGVOdW1iZXIodmFsdWUpXG4gICAgKSB7XG4gICAgICBpZiAoIXRoaXMudGV4dENoYW5nZXMpIHtcbiAgICAgICAgLy8gTWFyayB0aGUgaW52YWxpZCBjb250cm9sIGFzIHRvdWNoZWQgc28gdGhhdCB0aGUgaW5wdXQncyBpbnZhbGlkIENTUyBzdHlsZXMgYXBwZWFyLlxuICAgICAgICAvLyAoVGhpcyBpcyBvbmx5IHJlcXVpcmVkIHdoZW4gdGhlIGludmFsaWQgdmFsdWUgaXMgc2V0IGJ5IHRoZSBGb3JtQ29udHJvbCBjb25zdHJ1Y3Rvci4pXG4gICAgICAgIC8vIFdlIGRvbid0IGRvIHRoaXMgaWYgdGhlIGlucHV0IGlzIHRoZSBhY3RpdmUgZWxlbWVudCBzbyB0aGF0IHdlIGRvbid0IHNob3cgdmFsaWRhdGlvblxuICAgICAgICAvLyBlcnJvcnMgdW5sZXNzIGl0IGlzIGludmFsaWQgb24gaW5pdGlhbGl6YXRpb24gb3IgdGhlIGlucHV0IGhhcyBiZWVuIGJsdXJyZWQuXG4gICAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBza3lQaG9uZUZpZWxkOiB7XG4gICAgICAgICAgaW52YWxpZDogdmFsdWUsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBUZXh0Q2hhbmdlU3Vic2NyaXB0aW9uKHRleHQ6IHN0cmluZykge1xuICAgIHRoaXMudGV4dENoYW5nZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRleHQpO1xuXG4gICAgdGhpcy50ZXh0Q2hhbmdlc1xuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwMCksIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgobmV3VmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZU51bWJlcihwaG9uZU51bWJlcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG51bWJlck9iaiA9IHRoaXMucGhvbmVVdGlscy5wYXJzZUFuZEtlZXBSYXdJbnB1dChcbiAgICAgICAgcGhvbmVOdW1iZXIsXG4gICAgICAgIHRoaXMucGhvbmVGaWVsZENvbXBvbmVudC5zZWxlY3RlZENvdW50cnkuaXNvMlxuICAgICAgKTtcblxuICAgICAgaWYgKFxuICAgICAgICAhdGhpcy5waG9uZUZpZWxkQ29tcG9uZW50LmFsbG93RXh0ZW5zaW9ucyAmJlxuICAgICAgICBudW1iZXJPYmouZ2V0RXh0ZW5zaW9uKClcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLnBob25lVXRpbHMuaXNWYWxpZE51bWJlcihudW1iZXJPYmopO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0J3MgdGhlIGdpdmVuIHBob25lIG51bWJlciBiYXNlZCBvbiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGNvdW50cnkuXG4gICAqIEBwYXJhbSBwaG9uZU51bWJlciBUaGUgbnVtYmVyIHRvIGZvcm1hdFxuICAgKi9cbiAgcHJpdmF0ZSBmb3JtYXROdW1iZXIocGhvbmVOdW1iZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG51bWJlck9iaiA9IHRoaXMucGhvbmVVdGlscy5wYXJzZUFuZEtlZXBSYXdJbnB1dChcbiAgICAgICAgcGhvbmVOdW1iZXIsXG4gICAgICAgIHRoaXMucGhvbmVGaWVsZENvbXBvbmVudC5zZWxlY3RlZENvdW50cnkuaXNvMlxuICAgICAgKTtcbiAgICAgIGlmICh0aGlzLnBob25lVXRpbHMuaXNQb3NzaWJsZU51bWJlcihudW1iZXJPYmopKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5waG9uZUZpZWxkQ29tcG9uZW50LnJldHVybkZvcm1hdCkge1xuICAgICAgICAgIGNhc2UgJ2ludGVybmF0aW9uYWwnOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGhvbmVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuSU5URVJOQVRJT05BTFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlICduYXRpb25hbCc6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5waG9uZVV0aWxzLmZvcm1hdChcbiAgICAgICAgICAgICAgbnVtYmVyT2JqLFxuICAgICAgICAgICAgICBQaG9uZU51bWJlckZvcm1hdC5OQVRJT05BTFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlICdkZWZhdWx0JzpcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB0aGlzLnBob25lRmllbGRDb21wb25lbnQuc2VsZWN0ZWRDb3VudHJ5LmlzbzIgIT09XG4gICAgICAgICAgICAgIHRoaXMucGhvbmVGaWVsZENvbXBvbmVudC5kZWZhdWx0Q291bnRyeVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnBob25lVXRpbHMuZm9ybWF0KFxuICAgICAgICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICAgICAgICBQaG9uZU51bWJlckZvcm1hdC5JTlRFUk5BVElPTkFMXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5waG9uZVV0aWxzLmZvcm1hdChcbiAgICAgICAgICAgICAgICBudW1iZXJPYmosXG4gICAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuTkFUSU9OQUxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHBob25lTnVtYmVyO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIHJldHVybiBwaG9uZU51bWJlcjtcbiAgICB9XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwcml2YXRlIHZhbGlkYXRvckNoYW5nZSA9ICgpID0+IHt9O1xufVxuIl19
|
|
290
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQtaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bob25lLWZpZWxkL3NyYy9saWIvbW9kdWxlcy9waG9uZS1maWVsZC9waG9uZS1maWVsZC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBR0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixHQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTXpELE1BQU0sOEJBQThCLEdBQUc7SUFDckMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO0lBQzFELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQUc7SUFDaEMsT0FBTyxFQUFFLGFBQWE7SUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztJQUMxRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7O0dBWUc7QUFLSCxNQUFNLE9BQU8sMkJBQTJCO0lBb0V0QyxZQUNFLGNBQWlDLEVBQ2pDLEtBQWlCLEVBQ0wsY0FB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QUksd0RBQXFCLEVBQUUsZUFBZSxFQUFFLElBQUk7d0JBQ2hELHVCQUFBLElBQUksd0RBQXFCLEVBQUUsY0FBYyxFQUN6Qzt3QkFDQSxPQUFPLHVCQUFBLElBQUksK0NBQVksQ0FBQyxNQUFNLENBQzVCLFNBQVMsRUFDVCxpQkFBaUIsQ0FBQyxhQUFhLENBQ2hDLENBQUM7cUJBQ0g7eUJBQU07d0JBQ0wsT0FBTyx1QkFBQSxJQUFJLCtDQUFZLENBQUMsTUFBTSxDQUM1QixTQUFTLEVBQ1QsaUJBQWlCLENBQUMsUUFBUSxDQUMzQixDQUFDO3FCQUNIO2FBQ0o7U0FDRjthQUFNO1lBQ0wsT0FBTyxXQUFXLENBQUM7U0FDcEI7S0FDRjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1Ysa0JBQWtCO1FBQ2xCLDBCQUEwQjtRQUMxQixPQUFPLFdBQVcsQ0FBQztLQUNwQjtBQUNILENBQUM7eUhBalRVLDJCQUEyQjs2R0FBM0IsMkJBQTJCLDRQQUYzQixDQUFDLDhCQUE4QixFQUFFLHlCQUF5QixDQUFDOzRGQUUzRCwyQkFBMkI7a0JBSnZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsU0FBUyxFQUFFLENBQUMsOEJBQThCLEVBQUUseUJBQXlCLENBQUM7aUJBQ3ZFOzswQkF3RUksUUFBUTs7MEJBQ1IsUUFBUTs0Q0FoRUEsUUFBUTtzQkFEbEIsS0FBSztnQkFzQkMsdUJBQXVCO3NCQUQ3QixLQUFLO2dCQXdHQyxhQUFhO3NCQURuQixZQUFZO3VCQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFhM0IsV0FBVztzQkFEakIsWUFBWTt1QkFBQyxNQUFNO2dCQU1iLGFBQWE7c0JBRG5CLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFBob25lTnVtYmVyRm9ybWF0LCBQaG9uZU51bWJlclV0aWwgfSBmcm9tICdnb29nbGUtbGlicGhvbmVudW1iZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9waG9uZS1maWVsZC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vcGhvbmUtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVBob25lRmllbGRDb3VudHJ5IH0gZnJvbSAnLi90eXBlcy9jb3VudHJ5JztcblxuY29uc3QgU0tZX1BIT05FX0ZJRUxEX1ZBTFVFX0FDQ0VTU09SID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2t5UGhvbmVGaWVsZElucHV0RGlyZWN0aXZlKSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG5jb25zdCBTS1lfUEhPTkVfRklFTERfVkFMSURBVE9SID0ge1xuICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lQaG9uZUZpZWxkSW5wdXREaXJlY3RpdmUpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIGJ1dHRvbiwgc2VhcmNoIGlucHV0LCBhbmQgdGV4dCBpbnB1dCBmb3IgZW50ZXJpbmcgYW5kIHZhbGlkYXRpbmdcbiAqIGludGVybmF0aW9uYWwgcGhvbmUgbnVtYmVycy4gUGxhY2UgdGhpcyBhdHRyaWJ1dGUgb24gYW4gYGlucHV0YCBlbGVtZW50LCBhbmQgd3JhcFxuICogdGhhdCBlbGVtZW50IGluIGEgYHNreS1waG9uZS1maWVsZGAgY29tcG9uZW50LiBCeSBkZWZhdWx0LCB0aGUgY291bnRyeSBzZWxlY3RvclxuICogYnV0dG9uIGRpc3BsYXlzIGEgZmxhZyBpY29uIGZvciB0aGUgZGVmYXVsdCBjb3VudHJ5LCBhbmQgdGhlIHBob25lIG51bWJlciBpbnB1dFxuICogZGlzcGxheXMgYSBzYW1wbGUgb2YgdGhlIGNvcnJlY3QgcGhvbmUgbnVtYmVyIGZvcm1hdC4gV2hlbiB1c2VycyBzZWxlY3QgdGhlIGNvdW50cnlcbiAqIHNlbGVjdG9yIGJ1dHRvbiwgdGhleSBleHBvc2UgdGhlIGNvdW50cnkgc2VhcmNoIGlucHV0LCB3aGljaCBpc1xuICogW2FuIGF1dG9jb21wbGV0ZSBpbnB1dF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2F1dG9jb21wbGV0ZSlcbiAqIHRoYXQgYWxsb3dzIHRoZW0gdG8gc2VsZWN0IGRpZmZlcmVudCBjb3VudHJpZXMuIFdoZW4gdXNlcnMgZW50ZXIgYCtgIGZvbGxvd2VkIGJ5IGFuXG4gKiBpbnRlcm5hdGlvbmFsIGRpYWwgY29kZSBpbiB0aGUgcGhvbmUgbnVtYmVyIGlucHV0LCB0aGUgY291bnRyeSBhdXRvbWF0aWNhbGx5IHN3aXRjaGVzXG4gKiB0byB0aGUgY291bnRyeSBhc3NvY2lhdGVkIHdpdGggdGhlIGRpYWwgY29kZS5cbiAqIEByZXF1aXJlZFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5UGhvbmVGaWVsZElucHV0XScsXG4gIHByb3ZpZGVyczogW1NLWV9QSE9ORV9GSUVMRF9WQUxVRV9BQ0NFU1NPUiwgU0tZX1BIT05FX0ZJRUxEX1ZBTElEQVRPUl0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVBob25lRmllbGRJbnB1dERpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yXG57XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNhYmxlIHRoZSBwaG9uZSBmaWVsZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBjb2VyY2VkVmFsdWUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmICh0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50KSB7XG4gICAgICB0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50LmNvdW50cnlTZWxlY3REaXNhYmxlZCA9IGNvZXJjZWRWYWx1ZTtcbiAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlPy5zZXRFbGVtZW50RGlzYWJsZWRTdGF0ZSh0aGlzLiNlbFJlZiwgY29lcmNlZFZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy4jX2Rpc2FibGVkID0gY29lcmNlZFZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHByZXZlbnQgdmFsaWRhdGlvbiBvbiB0aGUgcGhvbmUgbnVtYmVyIGlucHV0LiBGb3IgdmFsaWRhdGlvbixcbiAgICogcGhvbmUgbnVtYmVycyBhcmUgZHJpdmVuIHRocm91Z2ggdGhlIGBuZ01vZGVsYCBhdHRyaWJ1dGUgdGhhdCB5b3Ugc3BlY2lmeSBvbiBhblxuICAgKiBgaW5wdXRgIGVsZW1lbnQgb3Igb24gYSBgRm9ybUNvbnRyb2xgIGluIGEgcmVhY3RpdmUgZm9ybS4gVG8gcHJldmVudCB2YWxpZGF0aW9uLFxuICAgKiBzZXQgdGhpcyBwcm9wZXJ0eSB0byBgdHJ1ZWAuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2t5UGhvbmVGaWVsZE5vVmFsaWRhdGU6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICBzZXQgI21vZGVsVmFsdWUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IHZhbHVlT3JEZWZhdWx0ID0gdmFsdWUgPz8gJyc7XG4gICAgdGhpcy4jX21vZGVsVmFsdWUgPSB2YWx1ZU9yRGVmYXVsdDtcbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZT8uc2V0RWxlbWVudFZhbHVlKHRoaXMuI2VsUmVmLCB2YWx1ZU9yRGVmYXVsdCk7XG5cbiAgICBpZiAodmFsdWVPckRlZmF1bHQpIHtcbiAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdGhpcy4jZm9ybWF0TnVtYmVyKHZhbHVlT3JEZWZhdWx0LnRvU3RyaW5nKCkpO1xuXG4gICAgICB0aGlzLiNvbkNoYW5nZShmb3JtYXR0ZWRWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI29uQ2hhbmdlKHZhbHVlT3JEZWZhdWx0KTtcbiAgICB9XG4gICAgdGhpcy4jdmFsaWRhdG9yQ2hhbmdlKCk7XG4gIH1cblxuICBnZXQgI21vZGVsVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX21vZGVsVmFsdWU7XG4gIH1cblxuICAjY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgdW5kZWZpbmVkO1xuXG4gICN0ZXh0Q2hhbmdlczogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gfCB1bmRlZmluZWQ7XG5cbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICNwaG9uZVV0aWxzID0gUGhvbmVOdW1iZXJVdGlsLmdldEluc3RhbmNlKCk7XG5cbiAgI19kaXNhYmxlZCE6IGJvb2xlYW47XG5cbiAgI19tb2RlbFZhbHVlID0gJyc7XG5cbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI2VsUmVmOiBFbGVtZW50UmVmO1xuXG4gICNhZGFwdGVyU2VydmljZTogU2t5UGhvbmVGaWVsZEFkYXB0ZXJTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuICAjcGhvbmVGaWVsZENvbXBvbmVudDogU2t5UGhvbmVGaWVsZENvbXBvbmVudCB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIEBPcHRpb25hbCgpIGFkYXB0ZXJTZXJ2aWNlPzogU2t5UGhvbmVGaWVsZEFkYXB0ZXJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHBob25lRmllbGRDb21wb25lbnQ/OiBTa3lQaG9uZUZpZWxkQ29tcG9uZW50XG4gICkge1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgdGhpcy4jZWxSZWYgPSBlbFJlZjtcbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZSA9IGFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQgPSBwaG9uZUZpZWxkQ29tcG9uZW50O1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnWW91IG11c3Qgd3JhcCB0aGUgYHNreVBob25lRmllbGRJbnB1dGAgZGlyZWN0aXZlIHdpdGhpbiBhICcgK1xuICAgICAgICAgICdgPHNreS1waG9uZS1maWVsZD5gIGNvbXBvbmVudCEnXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlPy5zZXRFbGVtZW50VHlwZSh0aGlzLiNlbFJlZik7XG4gICAgdGhpcy4jYWRhcHRlclNlcnZpY2U/LmFkZEVsZW1lbnRDbGFzcyh0aGlzLiNlbFJlZiwgJ3NreS1mb3JtLWNvbnRyb2wnKTtcbiAgICBpZiAodGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2VsZWN0ZWRDb3VudHJ5Py5leGFtcGxlTnVtYmVyKSB7XG4gICAgICB0aGlzLiNhZGFwdGVyU2VydmljZT8uc2V0RWxlbWVudFBsYWNlaG9sZGVyKFxuICAgICAgICB0aGlzLiNlbFJlZixcbiAgICAgICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudC5zZWxlY3RlZENvdW50cnkuZXhhbXBsZU51bWJlclxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZT8uc2V0QXJpYUxhYmVsKHRoaXMuI2VsUmVmKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2VsZWN0ZWRDb3VudHJ5Q2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChjb3VudHJ5OiBTa3lQaG9uZUZpZWxkQ291bnRyeSkgPT4ge1xuICAgICAgICB0aGlzLiNtb2RlbFZhbHVlID0gdGhpcy4jZWxSZWYubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICAgICAgaWYgKGNvdW50cnk/LmV4YW1wbGVOdW1iZXIpIHtcbiAgICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZT8uc2V0RWxlbWVudFBsYWNlaG9sZGVyKFxuICAgICAgICAgICAgdGhpcy4jZWxSZWYsXG4gICAgICAgICAgICBjb3VudHJ5LmV4YW1wbGVOdW1iZXJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIC8vIFRoaXMgaXMgbmVlZGVkIHRvIGFkZHJlc3MgYSBidWcgaW4gQW5ndWxhciA0LCB3aGVyZSB0aGUgdmFsdWUgaXMgbm90IGNoYW5nZWQgb24gdGhlIHZpZXcuXG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMzc5MlxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuI2NvbnRyb2wgJiYgdGhpcy4jbW9kZWxWYWx1ZSkge1xuICAgICAgdGhpcy4jY29udHJvbC5zZXRWYWx1ZSh0aGlzLiNtb2RlbFZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZXMgdGhlIG5ldyB2YWx1ZSBmb3IgcmVhY3RpdmUgZm9ybXMgb24gY2hhbmdlIGV2ZW50cyBvbiB0aGUgaW5wdXQgZWxlbWVudFxuICAgKiBAcGFyYW0gZXZlbnQgVGhlIGNoYW5nZSBldmVudCB0aGF0IHdhcyByZWNlaXZlZFxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignY2hhbmdlJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jdGV4dENoYW5nZXMpIHtcbiAgICAgIHRoaXMuI3NldHVwVGV4dENoYW5nZVN1YnNjcmlwdGlvbihldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiN0ZXh0Q2hhbmdlcy5uZXh0KGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1hcmtzIHJlYWN0aXZlIGZvcm0gY29udHJvbHMgYXMgdG91Y2hlZCBvbiBpbnB1dCBibHVyIGV2ZW50c1xuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gIHB1YmxpYyBvbklucHV0Qmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLiNvblRvdWNoZWQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uSW5wdXRUeXBpbmcoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jdGV4dENoYW5nZXMpIHtcbiAgICAgIHRoaXMuI3NldHVwVGV4dENoYW5nZVN1YnNjcmlwdGlvbihldmVudC50YXJnZXQudmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiN0ZXh0Q2hhbmdlcy5uZXh0KGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdyaXRlcyB0aGUgbmV3IHZhbHVlIGZvciByZWFjdGl2ZSBmb3Jtc1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIG5ldyB2YWx1ZSBmb3IgdGhlIGlucHV0XG4gICAqL1xuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2V0Q291bnRyeUJ5RGlhbENvZGUodmFsdWUpO1xuXG4gICAgdGhpcy4jbW9kZWxWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy4jb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuI29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLiN2YWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBvbiB0aGUgaW5wdXRcbiAgICogQHBhcmFtIGlzRGlzYWJsZWQgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgaW5wdXQncyBkaXNhYmxlZCBzdGF0ZVxuICAgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlJ3MgdGhlIGZvcm0gY29udHJvbCdzIGN1cnJlbnQgdmFsdWVcbiAgICogQHBhcmFtIGNvbnRyb2wgdGhlIGZvcm0gY29udHJvbCBmb3IgdGhlIGlucHV0XG4gICAqL1xuICBwdWJsaWMgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmICghdGhpcy4jY29udHJvbCkge1xuICAgICAgdGhpcy4jY29udHJvbCA9IGNvbnRyb2w7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2t5UGhvbmVGaWVsZE5vVmFsaWRhdGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gY29udHJvbC52YWx1ZTtcblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQ/LnNlbGVjdGVkQ291bnRyeSAmJlxuICAgICAgIXRoaXMuI3ZhbGlkYXRlTnVtYmVyKHZhbHVlKVxuICAgICkge1xuICAgICAgaWYgKCF0aGlzLiN0ZXh0Q2hhbmdlcykge1xuICAgICAgICAvLyBNYXJrIHRoZSBpbnZhbGlkIGNvbnRyb2wgYXMgdG91Y2hlZCBzbyB0aGF0IHRoZSBpbnB1dCdzIGludmFsaWQgQ1NTIHN0eWxlcyBhcHBlYXIuXG4gICAgICAgIC8vIChUaGlzIGlzIG9ubHkgcmVxdWlyZWQgd2hlbiB0aGUgaW52YWxpZCB2YWx1ZSBpcyBzZXQgYnkgdGhlIEZvcm1Db250cm9sIGNvbnN0cnVjdG9yLilcbiAgICAgICAgLy8gV2UgZG9uJ3QgZG8gdGhpcyBpZiB0aGUgaW5wdXQgaXMgdGhlIGFjdGl2ZSBlbGVtZW50IHNvIHRoYXQgd2UgZG9uJ3Qgc2hvdyB2YWxpZGF0aW9uXG4gICAgICAgIC8vIGVycm9ycyB1bmxlc3MgaXQgaXMgaW52YWxpZCBvbiBpbml0aWFsaXphdGlvbiBvciB0aGUgaW5wdXQgaGFzIGJlZW4gYmx1cnJlZC5cbiAgICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNreVBob25lRmllbGQ6IHtcbiAgICAgICAgICBpbnZhbGlkOiB2YWx1ZSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgI3NldHVwVGV4dENoYW5nZVN1YnNjcmlwdGlvbih0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLiN0ZXh0Q2hhbmdlcyA9IG5ldyBCZWhhdmlvclN1YmplY3QodGV4dCk7XG5cbiAgICB0aGlzLiN0ZXh0Q2hhbmdlc1xuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwMCksIHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gICN2YWxpZGF0ZU51bWJlcihwaG9uZU51bWJlcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG51bWJlck9iaiA9IHRoaXMuI3Bob25lVXRpbHMucGFyc2VBbmRLZWVwUmF3SW5wdXQoXG4gICAgICAgIHBob25lTnVtYmVyLFxuICAgICAgICB0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50Py5zZWxlY3RlZENvdW50cnk/LmlzbzJcbiAgICAgICk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudCAmJlxuICAgICAgICAhdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudC5hbGxvd0V4dGVuc2lvbnMgJiZcbiAgICAgICAgbnVtYmVyT2JqLmdldEV4dGVuc2lvbigpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy4jcGhvbmVVdGlscy5pc1ZhbGlkTnVtYmVyKG51bWJlck9iaik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXQncyB0aGUgZ2l2ZW4gcGhvbmUgbnVtYmVyIGJhc2VkIG9uIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgY291bnRyeS5cbiAgICogQHBhcmFtIHBob25lTnVtYmVyIFRoZSBudW1iZXIgdG8gZm9ybWF0XG4gICAqL1xuICAjZm9ybWF0TnVtYmVyKHBob25lTnVtYmVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBudW1iZXJPYmogPSB0aGlzLiNwaG9uZVV0aWxzLnBhcnNlQW5kS2VlcFJhd0lucHV0KFxuICAgICAgICBwaG9uZU51bWJlcixcbiAgICAgICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2VsZWN0ZWRDb3VudHJ5Py5pc28yXG4gICAgICApO1xuICAgICAgaWYgKHRoaXMuI3Bob25lVXRpbHMuaXNQb3NzaWJsZU51bWJlcihudW1iZXJPYmopKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8ucmV0dXJuRm9ybWF0KSB7XG4gICAgICAgICAgY2FzZSAnaW50ZXJuYXRpb25hbCc6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy4jcGhvbmVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuSU5URVJOQVRJT05BTFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlICduYXRpb25hbCc6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy4jcGhvbmVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuTkFUSU9OQUxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSAnZGVmYXVsdCc6XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2VsZWN0ZWRDb3VudHJ5Py5pc28yICE9PVxuICAgICAgICAgICAgICB0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50Py5kZWZhdWx0Q291bnRyeVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLiNwaG9uZVV0aWxzLmZvcm1hdChcbiAgICAgICAgICAgICAgICBudW1iZXJPYmosXG4gICAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuSU5URVJOQVRJT05BTFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuI3Bob25lVXRpbHMuZm9ybWF0KFxuICAgICAgICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICAgICAgICBQaG9uZU51bWJlckZvcm1hdC5OQVRJT05BTFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcGhvbmVOdW1iZXI7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgcmV0dXJuIHBob25lTnVtYmVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24gLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgI29uQ2hhbmdlID0gKF86IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge307XG5cbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAjb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAjdmFsaWRhdG9yQ2hhbmdlID0gKCkgPT4ge307XG59XG4iXX0=
|