@crodriguezdominguez/ion-intl-tel-input 2.1.2 → 2.2.1
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/crodriguezdominguez-ion-intl-tel-input-2.2.1.tgz +0 -0
- package/esm2022/lib/ion-intl-tel-input/ion-intl-tel-code.component.mjs +86 -0
- package/esm2022/lib/ion-intl-tel-input/ion-intl-tel-input.component.mjs +758 -0
- package/{esm2020 → esm2022}/lib/ion-intl-tel-input.directive.mjs +12 -11
- package/esm2022/lib/ion-intl-tel-input.module.mjs +56 -0
- package/esm2022/lib/ion-intl-tel-input.service.mjs +20 -0
- package/esm2022/lib/pipes/country-placeholder.mjs +39 -0
- package/{fesm2020 → fesm2022}/crodriguezdominguez-ion-intl-tel-input.mjs +371 -355
- package/{fesm2020 → fesm2022}/crodriguezdominguez-ion-intl-tel-input.mjs.map +1 -1
- package/lib/ion-intl-tel-input/ion-intl-tel-code.component.d.ts +1 -1
- package/lib/ion-intl-tel-input/ion-intl-tel-input.component.d.ts +1 -1
- package/package.json +7 -13
- package/crodriguezdominguez-ion-intl-tel-input-2.1.2.tgz +0 -0
- package/esm2020/lib/ion-intl-tel-input/ion-intl-tel-code.component.mjs +0 -73
- package/esm2020/lib/ion-intl-tel-input/ion-intl-tel-input.component.mjs +0 -752
- package/esm2020/lib/ion-intl-tel-input.module.mjs +0 -55
- package/esm2020/lib/ion-intl-tel-input.service.mjs +0 -20
- package/esm2020/lib/pipes/country-placeholder.mjs +0 -38
- package/fesm2015/crodriguezdominguez-ion-intl-tel-input.mjs +0 -3264
- package/fesm2015/crodriguezdominguez-ion-intl-tel-input.mjs.map +0 -1
- /package/{esm2020 → esm2022}/crodriguezdominguez-ion-intl-tel-input.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/countries.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/country.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/util/util.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -24,5 +24,5 @@ export declare class IonIntTelCodeComponent implements OnInit {
|
|
|
24
24
|
itemTapped(c: any): void;
|
|
25
25
|
closeModal(): void;
|
|
26
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<IonIntTelCodeComponent, never>;
|
|
27
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<IonIntTelCodeComponent, "ion-intl-tel-code", never, { "country": "country"; "canSearch": "canSearch"; "closeButtonText": "closeButtonText"; "closeButtonSlot": "closeButtonSlot"; "countries": "countries"; "searchFailText": "searchFailText"; "searchPlaceholder": "searchPlaceholder"; "shouldFocusSearchbar": "shouldFocusSearchbar"; "title": "title"; "dialCode": "dialCode"; }, {}, never, never, false, never>;
|
|
27
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IonIntTelCodeComponent, "ion-intl-tel-code", never, { "country": { "alias": "country"; "required": false; }; "canSearch": { "alias": "canSearch"; "required": false; }; "closeButtonText": { "alias": "closeButtonText"; "required": false; }; "closeButtonSlot": { "alias": "closeButtonSlot"; "required": false; }; "countries": { "alias": "countries"; "required": false; }; "searchFailText": { "alias": "searchFailText"; "required": false; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; }; "shouldFocusSearchbar": { "alias": "shouldFocusSearchbar"; "required": false; }; "title": { "alias": "title"; "required": false; }; "dialCode": { "alias": "dialCode"; "required": false; }; }, {}, never, never, false, never>;
|
|
28
28
|
}
|
|
@@ -307,5 +307,5 @@ export declare class IonIntlTelInputComponent implements ControlValueAccessor, O
|
|
|
307
307
|
private setIonicClasses;
|
|
308
308
|
private setItemClass;
|
|
309
309
|
static ɵfac: i0.ɵɵFactoryDeclaration<IonIntlTelInputComponent, never>;
|
|
310
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<IonIntlTelInputComponent, "ion-intl-tel-input", never, { "isEnabled": "isEnabled"; "autocomplete": "autocomplete"; "required": "required"; "defaultCountryiso": "defaultCountryiso"; "dialCodePrefix": "dialCodePrefix"; "enableAutoCountrySelect": "enableAutoCountrySelect"; "enablePlaceholder": "enablePlaceholder"; "fallbackPlaceholder": "fallbackPlaceholder"; "inputPlaceholder": "inputPlaceholder"; "inputLabel": "inputLabel"; "inputLabelPlacement": "inputLabelPlacement"; "usePatternPlaceholder": "usePatternPlaceholder"; "maxLength": "maxLength"; "modalTitle": "modalTitle"; "modalCssClass": "modalCssClass"; "modalSearchPlaceholder": "modalSearchPlaceholder"; "modalCloseText": "modalCloseText"; "modalCloseButtonSlot": "modalCloseButtonSlot"; "modalCanSearch": "modalCanSearch"; "modalShouldBackdropClose": "modalShouldBackdropClose"; "modalShouldFocusSearchbar": "modalShouldFocusSearchbar"; "modalSearchFailText": "modalSearchFailText"; "onlyCountries": "onlyCountries"; "preferredCountries": "preferredCountries"; "selectFirstCountry": "selectFirstCountry"; "separateDialCode": "separateDialCode"; }, { "numberChange": "numberChange"; "numberBlur": "numberBlur"; "numberFocus": "numberFocus"; "numberInput": "numberInput"; "codeChange": "codeChange"; "codeOpen": "codeOpen"; "codeClose": "codeClose"; "codeSelect": "codeSelect"; }, never, never, false, never>;
|
|
310
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IonIntlTelInputComponent, "ion-intl-tel-input", never, { "isEnabled": { "alias": "isEnabled"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "required": { "alias": "required"; "required": false; }; "defaultCountryiso": { "alias": "defaultCountryiso"; "required": false; }; "dialCodePrefix": { "alias": "dialCodePrefix"; "required": false; }; "enableAutoCountrySelect": { "alias": "enableAutoCountrySelect"; "required": false; }; "enablePlaceholder": { "alias": "enablePlaceholder"; "required": false; }; "fallbackPlaceholder": { "alias": "fallbackPlaceholder"; "required": false; }; "inputPlaceholder": { "alias": "inputPlaceholder"; "required": false; }; "inputLabel": { "alias": "inputLabel"; "required": false; }; "inputLabelPlacement": { "alias": "inputLabelPlacement"; "required": false; }; "usePatternPlaceholder": { "alias": "usePatternPlaceholder"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "modalTitle": { "alias": "modalTitle"; "required": false; }; "modalCssClass": { "alias": "modalCssClass"; "required": false; }; "modalSearchPlaceholder": { "alias": "modalSearchPlaceholder"; "required": false; }; "modalCloseText": { "alias": "modalCloseText"; "required": false; }; "modalCloseButtonSlot": { "alias": "modalCloseButtonSlot"; "required": false; }; "modalCanSearch": { "alias": "modalCanSearch"; "required": false; }; "modalShouldBackdropClose": { "alias": "modalShouldBackdropClose"; "required": false; }; "modalShouldFocusSearchbar": { "alias": "modalShouldFocusSearchbar"; "required": false; }; "modalSearchFailText": { "alias": "modalSearchFailText"; "required": false; }; "onlyCountries": { "alias": "onlyCountries"; "required": false; }; "preferredCountries": { "alias": "preferredCountries"; "required": false; }; "selectFirstCountry": { "alias": "selectFirstCountry"; "required": false; }; "separateDialCode": { "alias": "separateDialCode"; "required": false; }; }, { "numberChange": "numberChange"; "numberBlur": "numberBlur"; "numberFocus": "numberFocus"; "numberInput": "numberInput"; "codeChange": "codeChange"; "codeOpen": "codeOpen"; "codeClose": "codeClose"; "codeSelect": "codeSelect"; }, never, never, false, never>;
|
|
311
311
|
}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "2.1
|
|
2
|
+
"version": "2.2.1",
|
|
3
3
|
"name": "@crodriguezdominguez/ion-intl-tel-input",
|
|
4
4
|
"title": "Ion Intl Tel Input",
|
|
5
5
|
"private": false,
|
|
@@ -32,14 +32,10 @@
|
|
|
32
32
|
"elktech"
|
|
33
33
|
],
|
|
34
34
|
"peerDependencies": {
|
|
35
|
-
"
|
|
36
|
-
"
|
|
35
|
+
"flag-icons": "^6.11.1",
|
|
36
|
+
"libphonenumber-js": "^1.10.48"
|
|
37
37
|
},
|
|
38
|
-
"module": "
|
|
39
|
-
"es2020": "fesm2020/crodriguezdominguez-ion-intl-tel-input.mjs",
|
|
40
|
-
"esm2020": "esm2020/crodriguezdominguez-ion-intl-tel-input.mjs",
|
|
41
|
-
"fesm2020": "fesm2020/crodriguezdominguez-ion-intl-tel-input.mjs",
|
|
42
|
-
"fesm2015": "fesm2015/crodriguezdominguez-ion-intl-tel-input.mjs",
|
|
38
|
+
"module": "fesm2022/crodriguezdominguez-ion-intl-tel-input.mjs",
|
|
43
39
|
"typings": "index.d.ts",
|
|
44
40
|
"exports": {
|
|
45
41
|
"./package.json": {
|
|
@@ -47,11 +43,9 @@
|
|
|
47
43
|
},
|
|
48
44
|
".": {
|
|
49
45
|
"types": "./index.d.ts",
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"node": "./fesm2015/crodriguezdominguez-ion-intl-tel-input.mjs",
|
|
54
|
-
"default": "./fesm2020/crodriguezdominguez-ion-intl-tel-input.mjs"
|
|
46
|
+
"esm2022": "./esm2022/crodriguezdominguez-ion-intl-tel-input.mjs",
|
|
47
|
+
"esm": "./esm2022/crodriguezdominguez-ion-intl-tel-input.mjs",
|
|
48
|
+
"default": "./fesm2022/crodriguezdominguez-ion-intl-tel-input.mjs"
|
|
55
49
|
}
|
|
56
50
|
},
|
|
57
51
|
"sideEffects": false,
|
|
Binary file
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { Component, Input, ViewChild } from '@angular/core';
|
|
2
|
-
import { IonSearchbar, ModalController } from '@ionic/angular';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@ionic/angular";
|
|
5
|
-
import * as i2 from "@angular/common";
|
|
6
|
-
import * as i3 from "@angular/cdk/scrolling";
|
|
7
|
-
export class IonIntTelCodeComponent {
|
|
8
|
-
constructor(modalCtrl) {
|
|
9
|
-
this.modalCtrl = modalCtrl;
|
|
10
|
-
this.closeButtonText = 'Close';
|
|
11
|
-
this.closeButtonSlot = 'end';
|
|
12
|
-
}
|
|
13
|
-
ngOnInit() {
|
|
14
|
-
this.allCountries = this.countries;
|
|
15
|
-
}
|
|
16
|
-
ionViewDidEnter() {
|
|
17
|
-
if (this.sbar && this.shouldFocusSearchbar) {
|
|
18
|
-
setTimeout(() => { this.sbar.setFocus(); }, 400);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
search(ev) {
|
|
22
|
-
let search = ev.detail.value;
|
|
23
|
-
this.notFound = false;
|
|
24
|
-
if (search === '' || search === null) {
|
|
25
|
-
this.countries = this.allCountries;
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
search = search.toLocaleLowerCase();
|
|
29
|
-
this.countries = this.allCountries.filter(r => {
|
|
30
|
-
return (r.name && r.name.toLocaleLowerCase().indexOf(search) !== -1);
|
|
31
|
-
});
|
|
32
|
-
if (this.countries.length === 0) {
|
|
33
|
-
this.notFound = true;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
itemTapped(c) {
|
|
38
|
-
this.modalCtrl.dismiss(c);
|
|
39
|
-
}
|
|
40
|
-
closeModal() {
|
|
41
|
-
this.modalCtrl.dismiss(null);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
/** @nocollapse */ IonIntTelCodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IonIntTelCodeComponent, deps: [{ token: i1.ModalController }], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
-
/** @nocollapse */ IonIntTelCodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: IonIntTelCodeComponent, selector: "ion-intl-tel-code", inputs: { country: "country", canSearch: "canSearch", closeButtonText: "closeButtonText", closeButtonSlot: "closeButtonSlot", countries: "countries", searchFailText: "searchFailText", searchPlaceholder: "searchPlaceholder", shouldFocusSearchbar: "shouldFocusSearchbar", title: "title", dialCode: "dialCode" }, viewQueries: [{ propertyName: "sbar", first: true, predicate: ["searchBar"], descendants: true }], ngImport: i0, template: "<ion-header>\n <ion-toolbar>\n <ion-title class=\"ion-text-center\">\n {{title}}\n </ion-title>\n\n <ion-buttons [slot]=\"closeButtonSlot\">\n <ion-button (click)=\"closeModal()\">{{closeButtonText}}</ion-button>\n </ion-buttons>\n\n </ion-toolbar>\n <ion-searchbar #searchBar *ngIf=\"canSearch\" placeholder=\"{{searchPlaceholder}}\" [debounce]=\"400\"\n (keyup.enter)=\"$event.target.blur()\" (ionChange)=\"search($event)\"></ion-searchbar>\n</ion-header>\n\n<ion-content>\n <cdk-virtual-scroll-viewport style=\"width: 100%; height: 100%;\" itemSize=\"56\" minBufferPx=\"900\" maxBufferPx=\"1350\">\n <ion-list>\n <ion-radio-group [value]=\"country.isoCode\">\n <ion-item style=\"white-space:normal\" *cdkVirtualFor=\"let c of countries\">\n <ion-radio labelPlacement=\"end\" [value]=\"c.isoCode\" slot=\"start\" color=\"primary\" (click)=\"itemTapped(c)\">\n <span class=\"fi fi-{{c.flagClass}}\"></span> {{c.name}} <span *ngIf=\"dialCode\">{{dialCode}}{{c.displayDialCode}}</span>\n </ion-radio>\n </ion-item>\n </ion-radio-group>\n <ion-item lines=\"none\" *ngIf=\"notFound\">\n <ion-text>{{searchFailText}}</ion-text>\n </ion-item>\n </ion-list>\n </cdk-virtual-scroll-viewport>\n</ion-content>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i1.IonRadio, selector: "ion-radio", inputs: ["color", "disabled", "justify", "labelPlacement", "legacy", "mode", "name", "value"] }, { kind: "component", type: i1.IonRadioGroup, selector: "ion-radio-group", inputs: ["allowEmptySelection", "name", "value"] }, { kind: "component", type: i1.IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "mode", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i1.RadioValueAccessor, selector: "ion-radio" }, { kind: "directive", type: i1.SelectValueAccessor, selector: "ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "directive", type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "directive", type: i3.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }] });
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IonIntTelCodeComponent, decorators: [{
|
|
47
|
-
type: Component,
|
|
48
|
-
args: [{ selector: 'ion-intl-tel-code', template: "<ion-header>\n <ion-toolbar>\n <ion-title class=\"ion-text-center\">\n {{title}}\n </ion-title>\n\n <ion-buttons [slot]=\"closeButtonSlot\">\n <ion-button (click)=\"closeModal()\">{{closeButtonText}}</ion-button>\n </ion-buttons>\n\n </ion-toolbar>\n <ion-searchbar #searchBar *ngIf=\"canSearch\" placeholder=\"{{searchPlaceholder}}\" [debounce]=\"400\"\n (keyup.enter)=\"$event.target.blur()\" (ionChange)=\"search($event)\"></ion-searchbar>\n</ion-header>\n\n<ion-content>\n <cdk-virtual-scroll-viewport style=\"width: 100%; height: 100%;\" itemSize=\"56\" minBufferPx=\"900\" maxBufferPx=\"1350\">\n <ion-list>\n <ion-radio-group [value]=\"country.isoCode\">\n <ion-item style=\"white-space:normal\" *cdkVirtualFor=\"let c of countries\">\n <ion-radio labelPlacement=\"end\" [value]=\"c.isoCode\" slot=\"start\" color=\"primary\" (click)=\"itemTapped(c)\">\n <span class=\"fi fi-{{c.flagClass}}\"></span> {{c.name}} <span *ngIf=\"dialCode\">{{dialCode}}{{c.displayDialCode}}</span>\n </ion-radio>\n </ion-item>\n </ion-radio-group>\n <ion-item lines=\"none\" *ngIf=\"notFound\">\n <ion-text>{{searchFailText}}</ion-text>\n </ion-item>\n </ion-list>\n </cdk-virtual-scroll-viewport>\n</ion-content>\n" }]
|
|
49
|
-
}], ctorParameters: function () { return [{ type: i1.ModalController }]; }, propDecorators: { country: [{
|
|
50
|
-
type: Input
|
|
51
|
-
}], canSearch: [{
|
|
52
|
-
type: Input
|
|
53
|
-
}], closeButtonText: [{
|
|
54
|
-
type: Input
|
|
55
|
-
}], closeButtonSlot: [{
|
|
56
|
-
type: Input
|
|
57
|
-
}], countries: [{
|
|
58
|
-
type: Input
|
|
59
|
-
}], searchFailText: [{
|
|
60
|
-
type: Input
|
|
61
|
-
}], searchPlaceholder: [{
|
|
62
|
-
type: Input
|
|
63
|
-
}], shouldFocusSearchbar: [{
|
|
64
|
-
type: Input
|
|
65
|
-
}], title: [{
|
|
66
|
-
type: Input
|
|
67
|
-
}], dialCode: [{
|
|
68
|
-
type: Input
|
|
69
|
-
}], sbar: [{
|
|
70
|
-
type: ViewChild,
|
|
71
|
-
args: ['searchBar']
|
|
72
|
-
}] } });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uLWludGwtdGVsLWNvZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW9uLWludGwtdGVsLWlucHV0L3NyYy9saWIvaW9uLWludGwtdGVsLWlucHV0L2lvbi1pbnRsLXRlbC1jb2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lvbi1pbnRsLXRlbC1pbnB1dC9zcmMvbGliL2lvbi1pbnRsLXRlbC1pbnB1dC9pb24taW50bC10ZWwtY29kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFTL0QsTUFBTSxPQUFPLHNCQUFzQjtJQW1CakMsWUFDWSxTQUEwQjtRQUExQixjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQWhCN0Isb0JBQWUsR0FBRyxPQUFPLENBQUM7UUFDMUIsb0JBQWUsR0FBRyxLQUFLLENBQUM7SUFrQmpDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUMxQyxVQUFVLENBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsRUFBRTtRQUNQLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksTUFBTSxLQUFLLEVBQUUsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUNwQzthQUFNO1lBQ0wsTUFBTSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQzdDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RSxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzthQUN0QjtTQUNGO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxDQUFDO1FBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDOztzSUF6RFUsc0JBQXNCOzBIQUF0QixzQkFBc0Isa2RDVm5DLHN6Q0ErQkE7MkZEckJhLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFFRSxtQkFBbUI7c0dBTXBCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFa0IsSUFBSTtzQkFBM0IsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvblNlYXJjaGJhciwgTW9kYWxDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgQ291bnRyeUkgfSBmcm9tICcuLi9tb2RlbHMvY291bnRyeS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnaW9uLWludGwtdGVsLWNvZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW9uLWludGwtdGVsLWNvZGUuY29tcG9uZW50Lmh0bWwnXG59KVxuXG5leHBvcnQgY2xhc3MgSW9uSW50VGVsQ29kZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgY291bnRyeTogQ291bnRyeUk7XG4gIEBJbnB1dCgpIGNhblNlYXJjaDogYm9vbGVhbjtcbiAgQElucHV0KCkgY2xvc2VCdXR0b25UZXh0ID0gJ0Nsb3NlJztcbiAgQElucHV0KCkgY2xvc2VCdXR0b25TbG90ID0gJ2VuZCc7XG4gIEBJbnB1dCgpIGNvdW50cmllczogQ291bnRyeUlbXTtcbiAgQElucHV0KCkgc2VhcmNoRmFpbFRleHQ6IHN0cmluZztcbiAgQElucHV0KCkgc2VhcmNoUGxhY2Vob2xkZXI6IHN0cmluZztcbiAgQElucHV0KCkgc2hvdWxkRm9jdXNTZWFyY2hiYXI6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRpYWxDb2RlOiBzdHJpbmc7XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoQmFyJykgc2JhcjogSW9uU2VhcmNoYmFyO1xuXG4gIHByaXZhdGUgYWxsQ291bnRyaWVzOiBDb3VudHJ5SVtdO1xuXG4gIHB1YmxpYyBub3RGb3VuZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgbW9kYWxDdHJsOiBNb2RhbENvbnRyb2xsZXJcbiAgKSB7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWxsQ291bnRyaWVzID0gdGhpcy5jb3VudHJpZXM7XG4gIH1cblxuICBpb25WaWV3RGlkRW50ZXIoKSB7XG4gICAgaWYgKHRoaXMuc2JhciAmJiB0aGlzLnNob3VsZEZvY3VzU2VhcmNoYmFyKSB7XG4gICAgICBzZXRUaW1lb3V0KCAoKSA9PiB7IHRoaXMuc2Jhci5zZXRGb2N1cygpOyB9LCA0MDApO1xuICAgIH1cbiAgfVxuXG4gIHNlYXJjaChldikge1xuICAgIGxldCBzZWFyY2ggPSBldi5kZXRhaWwudmFsdWU7XG4gICAgdGhpcy5ub3RGb3VuZCA9IGZhbHNlO1xuICAgIGlmIChzZWFyY2ggPT09ICcnIHx8IHNlYXJjaCA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5jb3VudHJpZXMgPSB0aGlzLmFsbENvdW50cmllcztcbiAgICB9IGVsc2Uge1xuICAgICAgc2VhcmNoID0gc2VhcmNoLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICB0aGlzLmNvdW50cmllcyA9IHRoaXMuYWxsQ291bnRyaWVzLmZpbHRlciggciA9PiB7XG4gICAgICAgIHJldHVybiAoci5uYW1lICYmIHIubmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoKSAhPT0gLTEpO1xuICAgICAgfSk7XG4gICAgICBpZiAodGhpcy5jb3VudHJpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMubm90Rm91bmQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGl0ZW1UYXBwZWQoYykge1xuICAgIHRoaXMubW9kYWxDdHJsLmRpc21pc3MoYyk7XG4gIH1cblxuICBjbG9zZU1vZGFsKCkge1xuICAgIHRoaXMubW9kYWxDdHJsLmRpc21pc3MobnVsbCk7XG4gIH1cblxufVxuIiwiPGlvbi1oZWFkZXI+XG4gIDxpb24tdG9vbGJhcj5cbiAgICA8aW9uLXRpdGxlIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyXCI+XG4gICAgICB7e3RpdGxlfX1cbiAgICA8L2lvbi10aXRsZT5cblxuICAgIDxpb24tYnV0dG9ucyBbc2xvdF09XCJjbG9zZUJ1dHRvblNsb3RcIj5cbiAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJjbG9zZU1vZGFsKClcIj57e2Nsb3NlQnV0dG9uVGV4dH19PC9pb24tYnV0dG9uPlxuICAgIDwvaW9uLWJ1dHRvbnM+XG5cbiAgPC9pb24tdG9vbGJhcj5cbiAgPGlvbi1zZWFyY2hiYXIgI3NlYXJjaEJhciAqbmdJZj1cImNhblNlYXJjaFwiIHBsYWNlaG9sZGVyPVwie3tzZWFyY2hQbGFjZWhvbGRlcn19XCIgW2RlYm91bmNlXT1cIjQwMFwiXG4gICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCIkZXZlbnQudGFyZ2V0LmJsdXIoKVwiIChpb25DaGFuZ2UpPVwic2VhcmNoKCRldmVudClcIj48L2lvbi1zZWFyY2hiYXI+XG48L2lvbi1oZWFkZXI+XG5cbjxpb24tY29udGVudD5cbiAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7XCIgaXRlbVNpemU9XCI1NlwiIG1pbkJ1ZmZlclB4PVwiOTAwXCIgbWF4QnVmZmVyUHg9XCIxMzUwXCI+XG4gICAgPGlvbi1saXN0PlxuICAgICAgPGlvbi1yYWRpby1ncm91cCBbdmFsdWVdPVwiY291bnRyeS5pc29Db2RlXCI+XG4gICAgICAgIDxpb24taXRlbSBzdHlsZT1cIndoaXRlLXNwYWNlOm5vcm1hbFwiICpjZGtWaXJ0dWFsRm9yPVwibGV0IGMgb2YgY291bnRyaWVzXCI+XG4gICAgICAgICAgPGlvbi1yYWRpbyBsYWJlbFBsYWNlbWVudD1cImVuZFwiIFt2YWx1ZV09XCJjLmlzb0NvZGVcIiBzbG90PVwic3RhcnRcIiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiaXRlbVRhcHBlZChjKVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaSBmaS17e2MuZmxhZ0NsYXNzfX1cIj48L3NwYW4+Jm5ic3A7Jm5ic3A7e3tjLm5hbWV9fSA8c3BhbiAqbmdJZj1cImRpYWxDb2RlXCI+e3tkaWFsQ29kZX19e3tjLmRpc3BsYXlEaWFsQ29kZX19PC9zcGFuPlxuICAgICAgICAgIDwvaW9uLXJhZGlvPlxuICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgPC9pb24tcmFkaW8tZ3JvdXA+XG4gICAgICA8aW9uLWl0ZW0gbGluZXM9XCJub25lXCIgKm5nSWY9XCJub3RGb3VuZFwiPlxuICAgICAgICA8aW9uLXRleHQ+e3tzZWFyY2hGYWlsVGV4dH19PC9pb24tdGV4dD5cbiAgICAgIDwvaW9uLWl0ZW0+XG4gICAgPC9pb24tbGlzdD5cbiAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG48L2lvbi1jb250ZW50PlxuIl19
|