ngx-dial-input 2.0.2 → 2.0.4

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.
Files changed (43) hide show
  1. package/README.md +9 -12
  2. package/data/countries.d.ts +2 -0
  3. package/data/countries.model.d.ts +9 -0
  4. package/esm2020/data/countries.mjs +1335 -0
  5. package/esm2020/data/countries.model.mjs +2 -0
  6. package/esm2020/lib/phone-input.component.mjs +304 -0
  7. package/esm2020/lib/phone-input.module.mjs +24 -0
  8. package/esm2020/ngx-country-dial-input.mjs +5 -0
  9. package/esm2020/ngx-dial-input.mjs +5 -0
  10. package/esm2020/public-api.mjs +6 -0
  11. package/fesm2015/ngx-country-dial-input.mjs +1673 -0
  12. package/fesm2015/ngx-country-dial-input.mjs.map +1 -0
  13. package/fesm2015/ngx-dial-input.mjs +1674 -0
  14. package/fesm2015/ngx-dial-input.mjs.map +1 -0
  15. package/fesm2020/ngx-country-dial-input.mjs +1669 -0
  16. package/fesm2020/ngx-country-dial-input.mjs.map +1 -0
  17. package/fesm2020/ngx-dial-input.mjs +1670 -0
  18. package/fesm2020/ngx-dial-input.mjs.map +1 -0
  19. package/index.d.ts +5 -0
  20. package/lib/phone-input.component.d.ts +37 -0
  21. package/lib/phone-input.module.d.ts +9 -0
  22. package/ngx-dial-input-2.0.2.tgz +0 -0
  23. package/package.json +32 -49
  24. package/{projects/phone-input/src/public-api.ts → public-api.d.ts} +0 -3
  25. package/.editorconfig +0 -16
  26. package/.vscode/extensions.json +0 -4
  27. package/.vscode/launch.json +0 -20
  28. package/.vscode/tasks.json +0 -42
  29. package/angular.json +0 -41
  30. package/projects/phone-input/README.md +0 -24
  31. package/projects/phone-input/ng-package.json +0 -7
  32. package/projects/phone-input/package.json +0 -9
  33. package/projects/phone-input/src/data/countries.model.ts +0 -9
  34. package/projects/phone-input/src/data/countries.ts +0 -1219
  35. package/projects/phone-input/src/lib/phone-input.component.css +0 -0
  36. package/projects/phone-input/src/lib/phone-input.component.html +0 -0
  37. package/projects/phone-input/src/lib/phone-input.component.ts +0 -348
  38. package/projects/phone-input/src/lib/phone-input.module.ts +0 -15
  39. package/projects/phone-input/src/lib/phone-input.service.spec.ts +0 -16
  40. package/projects/phone-input/tsconfig.lib.json +0 -15
  41. package/projects/phone-input/tsconfig.lib.prod.json +0 -10
  42. package/projects/phone-input/tsconfig.spec.json +0 -14
  43. package/tsconfig.json +0 -33
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyaWVzLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGhvbmUtaW5wdXQvc3JjL2RhdGEvY291bnRyaWVzLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIENvdW50cmllc1Bob25lSW5wdXREYXRhIHtcclxuICBuYW1lIDogc3RyaW5nO1xyXG4gIG5hdGl2ZSA6IHN0cmluZztcclxuICBpc28yIDogc3RyaW5nO1xyXG4gIGRpYWxDb2RlIDogc3RyaW5nO1xyXG4gIGZsYWcgOiBzdHJpbmc7XHJcbiAgZm9ybWF0IDogc3RyaW5nO1xyXG4gIHBob25lTGVuZ3RoOiBudW1iZXI7XHJcbn1cclxuIl19
@@ -0,0 +1,304 @@
1
+ import { Component, Input, Output, EventEmitter, HostListener, forwardRef } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { countries } from '../data/countries';
4
+ import { trigger, state, style, transition, animate } from '@angular/animations';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/forms";
8
+ export class PhoneInputComponent {
9
+ constructor(eRef) {
10
+ this.eRef = eRef;
11
+ this.countriesList = [...countries].sort((a, b) => a.name.localeCompare(b.name));
12
+ this.searchTerm = '';
13
+ this.defaultCountry = '';
14
+ this.placeholder = '';
15
+ this.searchEnabled = true;
16
+ this.numberFormat = 'international';
17
+ this.setFirstCountry = '';
18
+ this.phoneChange = new EventEmitter();
19
+ this.phoneNumber = '';
20
+ this.isInvalid = false;
21
+ this.dropdownOpen = false;
22
+ this.animating = false;
23
+ this.selectedCountry = countries[0];
24
+ this.onChange = () => { };
25
+ this.onTouched = () => { };
26
+ }
27
+ ngOnInit() {
28
+ if (this.defaultCountry) {
29
+ const match = countries.find(c => c.iso2 === this.defaultCountry.toLowerCase());
30
+ if (match)
31
+ this.selectedCountry = match;
32
+ }
33
+ }
34
+ handleClickOutside(event) {
35
+ if (!this.eRef.nativeElement.contains(event.target)) {
36
+ this.dropdownOpen = false;
37
+ }
38
+ }
39
+ onAnimationDone(event) {
40
+ if (!this.dropdownOpen) {
41
+ this.animating = false;
42
+ }
43
+ }
44
+ toggleDropdown() {
45
+ this.dropdownOpen = !this.dropdownOpen;
46
+ this.animating = true;
47
+ }
48
+ onClickOutside(event) {
49
+ if (!this.eRef.nativeElement.contains(event.target)) {
50
+ this.dropdownOpen = false;
51
+ }
52
+ }
53
+ onSearchChange() {
54
+ const term = this.searchTerm.toLowerCase();
55
+ this.countriesList = countries
56
+ .filter(c => c.name.toLowerCase().includes(term) ||
57
+ (c.native?.toLowerCase().includes(term)))
58
+ .sort((a, b) => a.name.localeCompare(b.name));
59
+ }
60
+ selectCountry(country) {
61
+ this.selectedCountry = country;
62
+ this.searchTerm = '';
63
+ this.countriesList = countries;
64
+ this.dropdownOpen = false;
65
+ this.emitPhoneChange();
66
+ }
67
+ onPhoneInput() {
68
+ this.emitPhoneChange();
69
+ }
70
+ emitPhoneChange() {
71
+ const raw = this.phoneNumber || '';
72
+ const digitsOnly = raw.replace(/\D/g, '');
73
+ const hyphenCount = (raw.match(/-/g) || []).length;
74
+ const spaceCount = (raw.match(/ /g) || []).length;
75
+ const totalChars = this.phoneNumber.length;
76
+ const maxAllowedLength = this.selectedCountry?.phoneLength + hyphenCount + spaceCount;
77
+ if (digitsOnly.length !== this.selectedCountry?.phoneLength) {
78
+ this.isInvalid = true;
79
+ }
80
+ else if (totalChars > maxAllowedLength) {
81
+ this.isInvalid = true;
82
+ }
83
+ else {
84
+ this.isInvalid = false;
85
+ }
86
+ const fullPhone = this.selectedCountry.dialCode + raw;
87
+ const structuredValue = {
88
+ e164Number: fullPhone,
89
+ nationalNumber: raw,
90
+ dialCode: this.selectedCountry.dialCode,
91
+ countryCode: this.selectedCountry.iso2,
92
+ isValid: !this.isInvalid,
93
+ };
94
+ this.onChange(structuredValue);
95
+ this.phoneChange.emit(structuredValue);
96
+ }
97
+ writeValue(value) {
98
+ if (value && value.dialCode && value.countryCode) {
99
+ const match = countries.find(c => c.dialCode === value.dialCode && c.iso2 === value.countryCode);
100
+ if (match) {
101
+ this.selectedCountry = match;
102
+ }
103
+ else {
104
+ this.selectedCountry = countries[0];
105
+ }
106
+ this.phoneNumber = value.nationalNumber || '';
107
+ }
108
+ else {
109
+ this.selectedCountry = countries[0];
110
+ this.phoneNumber = '';
111
+ }
112
+ }
113
+ registerOnChange(fn) {
114
+ this.onChange = fn;
115
+ }
116
+ registerOnTouched(fn) {
117
+ this.onTouched = fn;
118
+ }
119
+ allowPhoneCharacters(event) {
120
+ const allowedChars = [' ', '-'];
121
+ const charCode = event.charCode;
122
+ // Allow digits 0–9
123
+ if (charCode >= 48 && charCode <= 57)
124
+ return;
125
+ // Allow hyphen and space
126
+ if (allowedChars.includes(event.key))
127
+ return;
128
+ event.preventDefault();
129
+ }
130
+ }
131
+ PhoneInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PhoneInputComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
132
+ PhoneInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PhoneInputComponent, selector: "phone-input", inputs: { defaultCountry: "defaultCountry", placeholder: "placeholder", searchEnabled: "searchEnabled", numberFormat: "numberFormat", setFirstCountry: "setFirstCountry" }, outputs: { phoneChange: "phoneChange" }, host: { listeners: { "document:click": "handleClickOutside($event)" } }, providers: [{
133
+ provide: NG_VALUE_ACCESSOR,
134
+ useExisting: forwardRef(() => PhoneInputComponent),
135
+ multi: true
136
+ }], ngImport: i0, template: `<div class="phone-input-wrapper">
137
+ <div class="input-container">
138
+ <!-- Country Selector (20%) -->
139
+ <div class="country-select" (click)="toggleDropdown()" (blur)="toggleDropdown()">
140
+ <img [src]="selectedCountry.flag" width="20" />
141
+ <span>{{selectedCountry.dialCode}}</span>
142
+ <span class="arrow-down">▾</span>
143
+ </div>
144
+
145
+ <!-- Phone Input (80%) -->
146
+ <input
147
+ type="tel"
148
+ pattern="[0-9\\s\\-]*"
149
+ inputmode="numeric"
150
+ class="phone-input"
151
+ [placeholder]="placeholder"
152
+ [(ngModel)]="phoneNumber"
153
+ [ngClass]="{ 'error-border': isInvalid }"
154
+ (input)="onPhoneInput()"
155
+ (keypress)="allowPhoneCharacters($event)"
156
+ />
157
+ </div>
158
+
159
+ <!-- Dropdown Content (full width below) -->
160
+ <div
161
+ class="dropdown-content"
162
+ [@dropdownAnimation]="dropdownOpen ? 'open' : 'closed'"
163
+ *ngIf="dropdownOpen || animating"
164
+ (@dropdownAnimation.done)="onAnimationDone($event)" >
165
+ <input
166
+ *ngIf="searchEnabled"
167
+ type="text"
168
+ class="search-box"
169
+ placeholder="Search Country"
170
+ [(ngModel)]="searchTerm"
171
+ (input)="onSearchChange()"
172
+ />
173
+ <div class="country-list">
174
+ <div
175
+ class="country-option"
176
+ *ngFor="let country of countriesList"
177
+ (click)="selectCountry(country)"
178
+ >
179
+ <img [src]="country.flag" width="20" />
180
+ <span class="country-name">{{ country.name }} ({{ country.native }})</span>
181
+ <span class="dial-code">{{ country.dialCode }}</span>
182
+ </div>
183
+ </div>
184
+ </div>
185
+ </div>
186
+
187
+ `, isInline: true, styles: [".phone-input-wrapper{position:relative;font-family:Arial,sans-serif}.input-container{display:flex;width:100%;padding-bottom:3px}.country-select{width:24%;display:flex;align-items:center;justify-content:space-between;border:1px solid #ccc;border-right:none;border-radius:4px 0 0 4px;padding:8px;cursor:pointer;background-color:#f8f8f8}.country-select img{margin-right:5px}.arrow-down{font-size:13px;color:#666}.arrow-down:after{display:none}.phone-input{width:80%;padding:8px 12px;border:1px solid #ccc;border-radius:0 4px 4px 0;outline:none}.dropdown-content{position:absolute;top:100%;left:0;width:100%;background:white;border:1px solid #ccc;border-radius:0 0 4px 4px;box-shadow:0 2px 4px #0000001a;z-index:1000;margin-top:-1px}.search-box{width:100%;padding:8px 12px;border:none;border-bottom:1px solid #eee;outline:none}.country-list{max-height:200px;overflow-y:auto}.country-option{display:flex;align-items:center;padding:8px 12px;cursor:pointer}.country-option:hover{background-color:#f5f5f5}.country-option img{margin-right:5px}.country-name{flex-grow:1}.dial-code{color:#666;font-size:.9em}input.error-border{border-color:red}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], animations: [
188
+ trigger('dropdownAnimation', [
189
+ state('open', style({
190
+ opacity: 1,
191
+ transform: 'scaleY(1)',
192
+ height: '*',
193
+ padding: '*'
194
+ })),
195
+ state('closed', style({
196
+ opacity: 0,
197
+ transform: 'scaleY(0)',
198
+ height: '0px',
199
+ padding: '0px'
200
+ })),
201
+ transition('closed => open', [
202
+ animate('200ms ease-out')
203
+ ]),
204
+ transition('open => closed', [
205
+ animate('150ms ease-in')
206
+ ])
207
+ ])
208
+ ] });
209
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PhoneInputComponent, decorators: [{
210
+ type: Component,
211
+ args: [{ selector: 'phone-input', animations: [
212
+ trigger('dropdownAnimation', [
213
+ state('open', style({
214
+ opacity: 1,
215
+ transform: 'scaleY(1)',
216
+ height: '*',
217
+ padding: '*'
218
+ })),
219
+ state('closed', style({
220
+ opacity: 0,
221
+ transform: 'scaleY(0)',
222
+ height: '0px',
223
+ padding: '0px'
224
+ })),
225
+ transition('closed => open', [
226
+ animate('200ms ease-out')
227
+ ]),
228
+ transition('open => closed', [
229
+ animate('150ms ease-in')
230
+ ])
231
+ ])
232
+ ], template: `<div class="phone-input-wrapper">
233
+ <div class="input-container">
234
+ <!-- Country Selector (20%) -->
235
+ <div class="country-select" (click)="toggleDropdown()" (blur)="toggleDropdown()">
236
+ <img [src]="selectedCountry.flag" width="20" />
237
+ <span>{{selectedCountry.dialCode}}</span>
238
+ <span class="arrow-down">▾</span>
239
+ </div>
240
+
241
+ <!-- Phone Input (80%) -->
242
+ <input
243
+ type="tel"
244
+ pattern="[0-9\\s\\-]*"
245
+ inputmode="numeric"
246
+ class="phone-input"
247
+ [placeholder]="placeholder"
248
+ [(ngModel)]="phoneNumber"
249
+ [ngClass]="{ 'error-border': isInvalid }"
250
+ (input)="onPhoneInput()"
251
+ (keypress)="allowPhoneCharacters($event)"
252
+ />
253
+ </div>
254
+
255
+ <!-- Dropdown Content (full width below) -->
256
+ <div
257
+ class="dropdown-content"
258
+ [@dropdownAnimation]="dropdownOpen ? 'open' : 'closed'"
259
+ *ngIf="dropdownOpen || animating"
260
+ (@dropdownAnimation.done)="onAnimationDone($event)" >
261
+ <input
262
+ *ngIf="searchEnabled"
263
+ type="text"
264
+ class="search-box"
265
+ placeholder="Search Country"
266
+ [(ngModel)]="searchTerm"
267
+ (input)="onSearchChange()"
268
+ />
269
+ <div class="country-list">
270
+ <div
271
+ class="country-option"
272
+ *ngFor="let country of countriesList"
273
+ (click)="selectCountry(country)"
274
+ >
275
+ <img [src]="country.flag" width="20" />
276
+ <span class="country-name">{{ country.name }} ({{ country.native }})</span>
277
+ <span class="dial-code">{{ country.dialCode }}</span>
278
+ </div>
279
+ </div>
280
+ </div>
281
+ </div>
282
+
283
+ `, providers: [{
284
+ provide: NG_VALUE_ACCESSOR,
285
+ useExisting: forwardRef(() => PhoneInputComponent),
286
+ multi: true
287
+ }], styles: [".phone-input-wrapper{position:relative;font-family:Arial,sans-serif}.input-container{display:flex;width:100%;padding-bottom:3px}.country-select{width:24%;display:flex;align-items:center;justify-content:space-between;border:1px solid #ccc;border-right:none;border-radius:4px 0 0 4px;padding:8px;cursor:pointer;background-color:#f8f8f8}.country-select img{margin-right:5px}.arrow-down{font-size:13px;color:#666}.arrow-down:after{display:none}.phone-input{width:80%;padding:8px 12px;border:1px solid #ccc;border-radius:0 4px 4px 0;outline:none}.dropdown-content{position:absolute;top:100%;left:0;width:100%;background:white;border:1px solid #ccc;border-radius:0 0 4px 4px;box-shadow:0 2px 4px #0000001a;z-index:1000;margin-top:-1px}.search-box{width:100%;padding:8px 12px;border:none;border-bottom:1px solid #eee;outline:none}.country-list{max-height:200px;overflow-y:auto}.country-option{display:flex;align-items:center;padding:8px 12px;cursor:pointer}.country-option:hover{background-color:#f5f5f5}.country-option img{margin-right:5px}.country-name{flex-grow:1}.dial-code{color:#666;font-size:.9em}input.error-border{border-color:red}\n"] }]
288
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { defaultCountry: [{
289
+ type: Input
290
+ }], placeholder: [{
291
+ type: Input
292
+ }], searchEnabled: [{
293
+ type: Input
294
+ }], numberFormat: [{
295
+ type: Input
296
+ }], setFirstCountry: [{
297
+ type: Input
298
+ }], phoneChange: [{
299
+ type: Output
300
+ }], handleClickOutside: [{
301
+ type: HostListener,
302
+ args: ['document:click', ['$event']]
303
+ }] } });
304
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGhvbmUtaW5wdXQvc3JjL2xpYi9waG9uZS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFFWixZQUFZLEVBQ1osVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUNMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsS0FBSyxFQUNMLFVBQVUsRUFDVixPQUFPLEVBQ1IsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQTZMN0IsTUFBTSxPQUFPLG1CQUFtQjtJQWlCOUIsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQWhCcEMsa0JBQWEsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDNUUsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNQLG1CQUFjLEdBQVcsRUFBRSxDQUFDO1FBQzVCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBQzlCLGlCQUFZLEdBQWlDLGVBQWUsQ0FBQztRQUM3RCxvQkFBZSxHQUFXLEVBQUUsQ0FBQztRQUM1QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFL0MsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDMUIsY0FBUyxHQUFZLEtBQUssQ0FBQztR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Q3RCLE1BQU0sRUFBRSxLQUFLO2dDQUNiLE9BQU8sRUFBRSxLQUFLOzZCQUNmLENBQUMsQ0FBQzs0QkFDSCxVQUFVLENBQUMsZ0JBQWdCLEVBQUU7Z0NBQzNCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQzs2QkFDMUIsQ0FBQzs0QkFDRixVQUFVLENBQUMsZ0JBQWdCLEVBQUU7Z0NBQzNCLE9BQU8sQ0FBQyxlQUFlLENBQUM7NkJBQ3pCLENBQUM7eUJBQ0gsQ0FBQztxQkFDSCxZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtRFQsYUF3R1UsQ0FBQzs0QkFDVixPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQzs0QkFDbEQsS0FBSyxFQUFFLElBQUk7eUJBQ1osQ0FBQztpR0FLTyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFzQlAsa0JBQWtCO3NCQURqQixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBmb3J3YXJkUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgY291bnRyaWVzIH0gZnJvbSAnLi4vZGF0YS9jb3VudHJpZXMnO1xyXG5pbXBvcnQge1xyXG4gIHRyaWdnZXIsXHJcbiAgc3RhdGUsXHJcbiAgc3R5bGUsXHJcbiAgdHJhbnNpdGlvbixcclxuICBhbmltYXRlXHJcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcblxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncGhvbmUtaW5wdXQnLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ2Ryb3Bkb3duQW5pbWF0aW9uJywgW1xyXG4gICAgICBzdGF0ZSgnb3BlbicsIHN0eWxlKHtcclxuICAgICAgICBvcGFjaXR5OiAxLFxyXG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlWSgxKScsXHJcbiAgICAgICAgaGVpZ2h0OiAnKicsXHJcbiAgICAgICAgcGFkZGluZzogJyonXHJcbiAgICAgIH0pKSxcclxuICAgICAgc3RhdGUoJ2Nsb3NlZCcsIHN0eWxlKHtcclxuICAgICAgICBvcGFjaXR5OiAwLFxyXG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlWSgwKScsXHJcbiAgICAgICAgaGVpZ2h0OiAnMHB4JyxcclxuICAgICAgICBwYWRkaW5nOiAnMHB4J1xyXG4gICAgICB9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ2Nsb3NlZCA9PiBvcGVuJywgW1xyXG4gICAgICAgIGFuaW1hdGUoJzIwMG1zIGVhc2Utb3V0JylcclxuICAgICAgXSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ29wZW4gPT4gY2xvc2VkJywgW1xyXG4gICAgICAgIGFuaW1hdGUoJzE1MG1zIGVhc2UtaW4nKVxyXG4gICAgICBdKVxyXG4gICAgXSlcclxuICBdLFxyXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cInBob25lLWlucHV0LXdyYXBwZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICA8IS0tIENvdW50cnkgU2VsZWN0b3IgKDIwJSkgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY291bnRyeS1zZWxlY3RcIiAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oKVwiIChibHVyKT1cInRvZ2dsZURyb3Bkb3duKClcIj5cclxuICAgICAgPGltZyBbc3JjXT1cInNlbGVjdGVkQ291bnRyeS5mbGFnXCIgd2lkdGg9XCIyMFwiIC8+XHJcbiAgICAgIDxzcGFuPnt7c2VsZWN0ZWRDb3VudHJ5LmRpYWxDb2RlfX08L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiYXJyb3ctZG93blwiPuKWvjwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gUGhvbmUgSW5wdXQgKDgwJSkgLS0+XHJcbiAgICA8aW5wdXRcclxuICAgICAgdHlwZT1cInRlbFwiXHJcbiAgICAgIHBhdHRlcm49XCJbMC05XFxcXHNcXFxcLV0qXCJcclxuICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXHJcbiAgICAgIGNsYXNzPVwicGhvbmUtaW5wdXRcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInBob25lTnVtYmVyXCJcclxuICAgICAgW25nQ2xhc3NdPVwieyAnZXJyb3ItYm9yZGVyJzogaXNJbnZhbGlkIH1cIlxyXG4gICAgICAoaW5wdXQpPVwib25QaG9uZUlucHV0KClcIlxyXG4gICAgICAoa2V5cHJlc3MpPVwiYWxsb3dQaG9uZUNoYXJhY3RlcnMoJGV2ZW50KVwiXHJcbiAgICAvPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIERyb3Bkb3duIENvbnRlbnQgKGZ1bGwgd2lkdGggYmVsb3cpIC0tPlxyXG4gIDxkaXZcclxuICBjbGFzcz1cImRyb3Bkb3duLWNvbnRlbnRcIlxyXG4gIFtAZHJvcGRvd25BbmltYXRpb25dPVwiZHJvcGRvd25PcGVuID8gJ29wZW4nIDogJ2Nsb3NlZCdcIlxyXG4gICpuZ0lmPVwiZHJvcGRvd25PcGVuIHx8IGFuaW1hdGluZ1wiXHJcbiAgKEBkcm9wZG93bkFuaW1hdGlvbi5kb25lKT1cIm9uQW5pbWF0aW9uRG9uZSgkZXZlbnQpXCIgPlxyXG4gICAgPGlucHV0XHJcbiAgICAgICpuZ0lmPVwic2VhcmNoRW5hYmxlZFwiXHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgY2xhc3M9XCJzZWFyY2gtYm94XCJcclxuICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggQ291bnRyeVwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGVybVwiXHJcbiAgICAgIChpbnB1dCk9XCJvblNlYXJjaENoYW5nZSgpXCJcclxuICAgIC8+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY291bnRyeS1saXN0XCI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImNvdW50cnktb3B0aW9uXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgY291bnRyeSBvZiBjb3VudHJpZXNMaXN0XCJcclxuICAgICAgICAoY2xpY2spPVwic2VsZWN0Q291bnRyeShjb3VudHJ5KVwiXHJcbiAgICAgID5cclxuICAgICAgICA8aW1nIFtzcmNdPVwiY291bnRyeS5mbGFnXCIgd2lkdGg9XCIyMFwiIC8+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudHJ5LW5hbWVcIj57eyBjb3VudHJ5Lm5hbWUgfX0gKHt7IGNvdW50cnkubmF0aXZlIH19KTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImRpYWwtY29kZVwiPnt7IGNvdW50cnkuZGlhbENvZGUgfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuICBgLFxyXG4gIHN0eWxlczogW2BcclxuICAgIC5waG9uZS1pbnB1dC13cmFwcGVyIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xyXG59XHJcblxyXG4uaW5wdXQtY29udGFpbmVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBhZGRpbmctYm90dG9tOiAzcHg7XHJcbn1cclxuXHJcbi8qIENvdW50cnkgU2VsZWN0ICgyMCUpICovXHJcbi5jb3VudHJ5LXNlbGVjdCB7XHJcbiAgd2lkdGg6IDI0JTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XHJcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xyXG4gIGJvcmRlci1yYWRpdXM6IDRweCAwIDAgNHB4O1xyXG4gIHBhZGRpbmc6IDhweCA4cHg7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7XHJcbn1cclxuXHJcbi5jb3VudHJ5LXNlbGVjdCBpbWcge1xyXG4gIG1hcmdpbi1yaWdodDogNXB4O1xyXG59XHJcblxyXG4uYXJyb3ctZG93biB7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIGNvbG9yOiAjNjY2O1xyXG59XHJcbi5hcnJvdy1kb3duOmFmdGVyIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuLyogUGhvbmUgSW5wdXQgKDgwJSkgKi9cclxuLnBob25lLWlucHV0IHtcclxuICB3aWR0aDogODAlO1xyXG4gIHBhZGRpbmc6IDhweCAxMnB4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XHJcbiAgYm9yZGVyLXJhZGl1czogMCA0cHggNHB4IDA7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxuLyogRHJvcGRvd24gQ29udGVudCAqL1xyXG4uZHJvcGRvd24tY29udGVudCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMTAwJTtcclxuICBsZWZ0OiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XHJcbiAgYm9yZGVyLXJhZGl1czogMCAwIDRweCA0cHg7XHJcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwwLDAsMC4xKTtcclxuICB6LWluZGV4OiAxMDAwO1xyXG4gIG1hcmdpbi10b3A6IC0xcHg7XHJcbn1cclxuXHJcbi5zZWFyY2gtYm94IHtcclxuICB3aWR0aDogMTAwJTtcclxuICBwYWRkaW5nOiA4cHggMTJweDtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XHJcbiAgb3V0bGluZTogbm9uZTtcclxufVxyXG5cclxuLmNvdW50cnktbGlzdCB7XHJcbiAgbWF4LWhlaWdodDogMjAwcHg7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxufVxyXG5cclxuLmNvdW50cnktb3B0aW9uIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgcGFkZGluZzogOHB4IDEycHg7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4uY291bnRyeS1vcHRpb246aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XHJcbn1cclxuXHJcbi5jb3VudHJ5LW9wdGlvbiBpbWcge1xyXG4gIG1hcmdpbi1yaWdodDogNXB4O1xyXG59XHJcblxyXG4uY291bnRyeS1uYW1lIHtcclxuICBmbGV4LWdyb3c6IDE7XHJcbn1cclxuXHJcbi5kaWFsLWNvZGUge1xyXG4gIGNvbG9yOiAjNjY2O1xyXG4gIGZvbnQtc2l6ZTogMC45ZW07XHJcbn1cclxuXHJcbi8qIEVycm9yIFN0YXRlICovXHJcbmlucHV0LmVycm9yLWJvcmRlciB7XHJcbiAgYm9yZGVyLWNvbG9yOiByZWQ7XHJcbn1cclxuXHJcbiAgYF0sXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQaG9uZUlucHV0Q29tcG9uZW50KSxcclxuICAgIG11bHRpOiB0cnVlXHJcbiAgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFBob25lSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgY291bnRyaWVzTGlzdCA9IFsuLi5jb3VudHJpZXNdLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpO1xyXG4gIHNlYXJjaFRlcm0gPSAnJztcclxuICBASW5wdXQoKSBkZWZhdWx0Q291bnRyeTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHNlYXJjaEVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIG51bWJlckZvcm1hdDogJ2ludGVybmF0aW9uYWwnIHwgJ25hdGlvbmFsJyA9ICdpbnRlcm5hdGlvbmFsJztcclxuICBASW5wdXQoKSBzZXRGaXJzdENvdW50cnk6IHN0cmluZyA9ICcnO1xyXG4gIEBPdXRwdXQoKSBwaG9uZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgcGhvbmVOdW1iZXI6IHN0cmluZyA9ICcnO1xyXG4gIGlzSW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRyb3Bkb3duT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGFuaW1hdGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBzZWxlY3RlZENvdW50cnkgPSBjb3VudHJpZXNbMF07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZVJlZjogRWxlbWVudFJlZikge31cclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XHJcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xyXG5cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5kZWZhdWx0Q291bnRyeSkge1xyXG4gICAgICBjb25zdCBtYXRjaCA9IGNvdW50cmllcy5maW5kKGMgPT4gYy5pc28yID09PSB0aGlzLmRlZmF1bHRDb3VudHJ5LnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICBpZiAobWF0Y2gpIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gbWF0Y2g7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVDbGlja091dHNpZGUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICghdGhpcy5lUmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xyXG4gICAgICB0aGlzLmRyb3Bkb3duT3BlbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25BbmltYXRpb25Eb25lKGV2ZW50OiBhbnkpIHtcclxuICBpZiAoIXRoaXMuZHJvcGRvd25PcGVuKSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyA9IGZhbHNlO1xyXG4gIH1cclxuICB9XHJcblxyXG4gIHRvZ2dsZURyb3Bkb3duKCkge1xyXG4gICAgdGhpcy5kcm9wZG93bk9wZW4gPSAhdGhpcy5kcm9wZG93bk9wZW47XHJcbiAgICB0aGlzLmFuaW1hdGluZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrT3V0c2lkZShldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgaWYgKCF0aGlzLmVSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25PcGVuID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaENoYW5nZSgpIHtcclxuICAgIGNvbnN0IHRlcm0gPSB0aGlzLnNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKTtcclxuICAgIHRoaXMuY291bnRyaWVzTGlzdCA9IGNvdW50cmllc1xyXG4gICAgICAuZmlsdGVyKGMgPT5cclxuICAgICAgICBjLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXJtKSB8fFxyXG4gICAgICAgIChjLm5hdGl2ZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXJtKSlcclxuICAgICAgKVxyXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc2VsZWN0Q291bnRyeShjb3VudHJ5OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gY291bnRyeTtcclxuICAgIHRoaXMuc2VhcmNoVGVybSA9ICcnO1xyXG4gICAgdGhpcy5jb3VudHJpZXNMaXN0ID0gY291bnRyaWVzO1xyXG4gICAgdGhpcy5kcm9wZG93bk9wZW4gPSBmYWxzZTtcclxuICAgIHRoaXMuZW1pdFBob25lQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBvblBob25lSW5wdXQoKSB7XHJcbiAgICB0aGlzLmVtaXRQaG9uZUNoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbWl0UGhvbmVDaGFuZ2UoKSB7XHJcbiAgICBjb25zdCByYXcgPSB0aGlzLnBob25lTnVtYmVyIHx8ICcnO1xyXG4gICAgY29uc3QgZGlnaXRzT25seSA9IHJhdy5yZXBsYWNlKC9cXEQvZywgJycpO1xyXG4gICAgY29uc3QgaHlwaGVuQ291bnQgPSAocmF3Lm1hdGNoKC8tL2cpIHx8IFtdKS5sZW5ndGg7XHJcbiAgICBjb25zdCBzcGFjZUNvdW50ID0gKHJhdy5tYXRjaCgvIC9nKSB8fCBbXSkubGVuZ3RoO1xyXG5cclxuICAgIGNvbnN0IHRvdGFsQ2hhcnMgPSB0aGlzLnBob25lTnVtYmVyLmxlbmd0aDtcclxuICAgIGNvbnN0IG1heEFsbG93ZWRMZW5ndGggPSB0aGlzLnNlbGVjdGVkQ291bnRyeT8ucGhvbmVMZW5ndGggKyBoeXBoZW5Db3VudCArIHNwYWNlQ291bnQ7XHJcblxyXG4gICAgaWYgKGRpZ2l0c09ubHkubGVuZ3RoICE9PSB0aGlzLnNlbGVjdGVkQ291bnRyeT8ucGhvbmVMZW5ndGgpIHtcclxuICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodG90YWxDaGFycyA+IG1heEFsbG93ZWRMZW5ndGgpIHtcclxuICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zdCBmdWxsUGhvbmUgPSB0aGlzLnNlbGVjdGVkQ291bnRyeS5kaWFsQ29kZSArIHJhdztcclxuXHJcbiAgICBjb25zdCBzdHJ1Y3R1cmVkVmFsdWUgPSB7XHJcbiAgICAgIGUxNjROdW1iZXI6IGZ1bGxQaG9uZSxcclxuICAgICAgbmF0aW9uYWxOdW1iZXI6IHJhdyxcclxuICAgICAgZGlhbENvZGU6IHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmRpYWxDb2RlLFxyXG4gICAgICBjb3VudHJ5Q29kZTogdGhpcy5zZWxlY3RlZENvdW50cnkuaXNvMixcclxuICAgICAgaXNWYWxpZDogIXRoaXMuaXNJbnZhbGlkLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLm9uQ2hhbmdlKHN0cnVjdHVyZWRWYWx1ZSk7XHJcbiAgICB0aGlzLnBob25lQ2hhbmdlLmVtaXQoc3RydWN0dXJlZFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlICYmIHZhbHVlLmRpYWxDb2RlICYmIHZhbHVlLmNvdW50cnlDb2RlKSB7XHJcbiAgICAgIGNvbnN0IG1hdGNoID0gY291bnRyaWVzLmZpbmQoYyA9PlxyXG4gICAgICAgIGMuZGlhbENvZGUgPT09IHZhbHVlLmRpYWxDb2RlICYmIGMuaXNvMiA9PT0gdmFsdWUuY291bnRyeUNvZGVcclxuICAgICAgKTtcclxuICAgICAgaWYgKG1hdGNoKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSBtYXRjaDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IGNvdW50cmllc1swXTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnBob25lTnVtYmVyID0gdmFsdWUubmF0aW9uYWxOdW1iZXIgfHwgJyc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IGNvdW50cmllc1swXTtcclxuICAgICAgdGhpcy5waG9uZU51bWJlciA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG4gIGFsbG93UGhvbmVDaGFyYWN0ZXJzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBjb25zdCBhbGxvd2VkQ2hhcnMgPSBbJyAnLCAnLSddO1xyXG4gICAgY29uc3QgY2hhckNvZGUgPSBldmVudC5jaGFyQ29kZTtcclxuXHJcbiAgICAvLyBBbGxvdyBkaWdpdHMgMOKAkzlcclxuICAgIGlmIChjaGFyQ29kZSA+PSA0OCAmJiBjaGFyQ29kZSA8PSA1NykgcmV0dXJuO1xyXG5cclxuICAgIC8vIEFsbG93IGh5cGhlbiBhbmQgc3BhY2VcclxuICAgIGlmIChhbGxvd2VkQ2hhcnMuaW5jbHVkZXMoZXZlbnQua2V5KSkgcmV0dXJuO1xyXG5cclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { PhoneInputComponent } from './phone-input.component';
4
+ import { FormsModule } from '@angular/forms';
5
+ import * as i0 from "@angular/core";
6
+ export class PhoneInputModule {
7
+ }
8
+ PhoneInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PhoneInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ PhoneInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: PhoneInputModule, declarations: [PhoneInputComponent], imports: [CommonModule,
10
+ FormsModule], exports: [PhoneInputComponent] });
11
+ PhoneInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PhoneInputModule, imports: [CommonModule,
12
+ FormsModule] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PhoneInputModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ declarations: [PhoneInputComponent],
17
+ imports: [
18
+ CommonModule,
19
+ FormsModule
20
+ ],
21
+ exports: [PhoneInputComponent]
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtaW5wdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGhvbmUtaW5wdXQvc3JjL2xpYi9waG9uZS1pbnB1dC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVU3QyxNQUFNLE9BQU8sZ0JBQWdCOzs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBUFosbUJBQW1CLGFBRWhDLFlBQVk7UUFDWixXQUFXLGFBRUgsbUJBQW1COytHQUVsQixnQkFBZ0IsWUFMekIsWUFBWTtRQUNaLFdBQVc7NEZBSUYsZ0JBQWdCO2tCQVI1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUNuQyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3FCQUNaO29CQUNELE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFBob25lSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL3Bob25lLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtQaG9uZUlucHV0Q29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1Bob25lSW5wdXRDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQaG9uZUlucHV0TW9kdWxlIHsgfVxyXG5cclxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWNvdW50cnktZGlhbC1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3Bob25lLWlucHV0L3NyYy9uZ3gtY291bnRyeS1kaWFsLWlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWRpYWwtaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9waG9uZS1pbnB1dC9zcmMvbmd4LWRpYWwtaW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,6 @@
1
+ /*
2
+ * Public API Surface of phone-input
3
+ */
4
+ export * from './lib/phone-input.component';
5
+ export * from './lib/phone-input.module';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3Bob25lLWlucHV0L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHBob25lLWlucHV0XHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waG9uZS1pbnB1dC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waG9uZS1pbnB1dC5tb2R1bGUnO1xyXG4iXX0=