@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.
Files changed (25) hide show
  1. package/crodriguezdominguez-ion-intl-tel-input-2.2.1.tgz +0 -0
  2. package/esm2022/lib/ion-intl-tel-input/ion-intl-tel-code.component.mjs +86 -0
  3. package/esm2022/lib/ion-intl-tel-input/ion-intl-tel-input.component.mjs +758 -0
  4. package/{esm2020 → esm2022}/lib/ion-intl-tel-input.directive.mjs +12 -11
  5. package/esm2022/lib/ion-intl-tel-input.module.mjs +56 -0
  6. package/esm2022/lib/ion-intl-tel-input.service.mjs +20 -0
  7. package/esm2022/lib/pipes/country-placeholder.mjs +39 -0
  8. package/{fesm2020 → fesm2022}/crodriguezdominguez-ion-intl-tel-input.mjs +371 -355
  9. package/{fesm2020 → fesm2022}/crodriguezdominguez-ion-intl-tel-input.mjs.map +1 -1
  10. package/lib/ion-intl-tel-input/ion-intl-tel-code.component.d.ts +1 -1
  11. package/lib/ion-intl-tel-input/ion-intl-tel-input.component.d.ts +1 -1
  12. package/package.json +7 -13
  13. package/crodriguezdominguez-ion-intl-tel-input-2.1.2.tgz +0 -0
  14. package/esm2020/lib/ion-intl-tel-input/ion-intl-tel-code.component.mjs +0 -73
  15. package/esm2020/lib/ion-intl-tel-input/ion-intl-tel-input.component.mjs +0 -752
  16. package/esm2020/lib/ion-intl-tel-input.module.mjs +0 -55
  17. package/esm2020/lib/ion-intl-tel-input.service.mjs +0 -20
  18. package/esm2020/lib/pipes/country-placeholder.mjs +0 -38
  19. package/fesm2015/crodriguezdominguez-ion-intl-tel-input.mjs +0 -3264
  20. package/fesm2015/crodriguezdominguez-ion-intl-tel-input.mjs.map +0 -1
  21. /package/{esm2020 → esm2022}/crodriguezdominguez-ion-intl-tel-input.mjs +0 -0
  22. /package/{esm2020 → esm2022}/lib/data/countries.mjs +0 -0
  23. /package/{esm2020 → esm2022}/lib/models/country.model.mjs +0 -0
  24. /package/{esm2020 → esm2022}/lib/util/util.mjs +0 -0
  25. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -51,16 +51,16 @@ class IonIntlTelInputValidatorDirective {
51
51
  validate(control) {
52
52
  return IonIntlTelInputValidators.phone(control);
53
53
  }
54
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IonIntlTelInputValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
55
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: IonIntlTelInputValidatorDirective, selector: "[ionIntlTelInputValid]", providers: [
56
+ {
57
+ provide: NG_VALIDATORS,
58
+ useExisting: IonIntlTelInputValidatorDirective,
59
+ multi: true,
60
+ },
61
+ ], ngImport: i0 });
54
62
  }
55
- /** @nocollapse */ IonIntlTelInputValidatorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IonIntlTelInputValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
56
- /** @nocollapse */ IonIntlTelInputValidatorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: IonIntlTelInputValidatorDirective, selector: "[ionIntlTelInputValid]", providers: [
57
- {
58
- provide: NG_VALIDATORS,
59
- useExisting: IonIntlTelInputValidatorDirective,
60
- multi: true,
61
- },
62
- ], ngImport: i0 });
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IonIntlTelInputValidatorDirective, decorators: [{
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IonIntlTelInputValidatorDirective, decorators: [{
64
64
  type: Directive,
65
65
  args: [{
66
66
  // tslint:disable-next-line: directive-selector
@@ -2339,16 +2339,15 @@ const countries = [
2339
2339
  ];
2340
2340
 
2341
2341
  class IonIntlTelInputService {
2342
- constructor() {
2343
- this.countryList = countries;
2344
- }
2342
+ countryList = countries;
2343
+ constructor() { }
2345
2344
  getListOfCountries() {
2346
2345
  return this.countryList;
2347
2346
  }
2347
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IonIntlTelInputService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2348
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IonIntlTelInputService, providedIn: 'root' });
2348
2349
  }
2349
- /** @nocollapse */ IonIntlTelInputService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IonIntlTelInputService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2350
- /** @nocollapse */ IonIntlTelInputService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IonIntlTelInputService, providedIn: 'root' });
2351
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IonIntlTelInputService, decorators: [{
2350
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IonIntlTelInputService, decorators: [{
2352
2351
  type: Injectable,
2353
2352
  args: [{
2354
2353
  providedIn: 'root'
@@ -2366,10 +2365,22 @@ const raf = (h) => {
2366
2365
  };
2367
2366
 
2368
2367
  class IonIntTelCodeComponent {
2368
+ modalCtrl;
2369
+ country;
2370
+ canSearch;
2371
+ closeButtonText = 'Close';
2372
+ closeButtonSlot = 'end';
2373
+ countries;
2374
+ searchFailText;
2375
+ searchPlaceholder;
2376
+ shouldFocusSearchbar;
2377
+ title;
2378
+ dialCode;
2379
+ sbar;
2380
+ allCountries;
2381
+ notFound;
2369
2382
  constructor(modalCtrl) {
2370
2383
  this.modalCtrl = modalCtrl;
2371
- this.closeButtonText = 'Close';
2372
- this.closeButtonSlot = 'end';
2373
2384
  }
2374
2385
  ngOnInit() {
2375
2386
  this.allCountries = this.countries;
@@ -2401,10 +2412,10 @@ class IonIntTelCodeComponent {
2401
2412
  closeModal() {
2402
2413
  this.modalCtrl.dismiss(null);
2403
2414
  }
2415
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IonIntTelCodeComponent, deps: [{ token: i1.ModalController }], target: i0.ɵɵFactoryTarget.Component });
2416
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.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>&nbsp;&nbsp;{{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: ["alignment", "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", "name", "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"] }] });
2404
2417
  }
2405
- /** @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 });
2406
- /** @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>&nbsp;&nbsp;{{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"] }] });
2407
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IonIntTelCodeComponent, decorators: [{
2418
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IonIntTelCodeComponent, decorators: [{
2408
2419
  type: Component,
2409
2420
  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>&nbsp;&nbsp;{{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" }]
2410
2421
  }], ctorParameters: function () { return [{ type: i1.ModalController }]; }, propDecorators: { country: [{
@@ -2458,10 +2469,10 @@ class CountryPlaceholder {
2458
2469
  return fallbackPlaceholder;
2459
2470
  }
2460
2471
  }
2472
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CountryPlaceholder, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
2473
+ /** @nocollapse */ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.9", ngImport: i0, type: CountryPlaceholder, name: "countryPlaceholder" });
2461
2474
  }
2462
- /** @nocollapse */ CountryPlaceholder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CountryPlaceholder, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
2463
- /** @nocollapse */ CountryPlaceholder.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: CountryPlaceholder, name: "countryPlaceholder" });
2464
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CountryPlaceholder, decorators: [{
2475
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CountryPlaceholder, decorators: [{
2465
2476
  type: Pipe,
2466
2477
  args: [{ name: 'countryPlaceholder' }]
2467
2478
  }] });
@@ -2469,324 +2480,279 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
2469
2480
  /**
2470
2481
  * @ignore
2471
2482
  */
2472
- /**
2473
- * @author Azzam Asghar <azzam.asghar@interstellus.com>
2474
- * @author Steve Drew <sdrew@waitwell.ca>
2475
- */
2476
2483
  class IonIntlTelInputComponent {
2484
+ el;
2485
+ platform;
2486
+ ionIntlTelInputService;
2487
+ modalCtrl;
2488
+ cssClass = true;
2489
+ isIos;
2490
+ isMD;
2491
+ hasFocus;
2477
2492
  get hasValueCssClass() {
2478
2493
  return this.hasValue();
2479
2494
  }
2480
2495
  get isEnabled() {
2481
2496
  return !this.disabled;
2482
2497
  }
2498
+ /**
2499
+ * autocomplete, set to 'tel' if needed
2500
+ *
2501
+ * @default 'off'
2502
+ * @memberof IonIntlTelInputComponent
2503
+ */
2504
+ autocomplete = 'off';
2505
+ /**
2506
+ * required, passed onto ion-input so we can be accessiblity compliant
2507
+ *
2508
+ * @default false
2509
+ * @memberof IonIntlTelInputComponent
2510
+ */
2511
+ required = false;
2512
+ /**
2513
+ * Iso Code of default selected Country.
2514
+ * See more on.
2515
+ *
2516
+ * @default ''
2517
+ * @memberof IonIntlTelInputComponent
2518
+ */
2519
+ defaultCountryiso = '';
2520
+ /**
2521
+ * Determines whether to use `00` or `+` as dial code prefix.
2522
+ * Available attributes are '+' | '00'.
2523
+ * See more on.
2524
+ *
2525
+ * @default +
2526
+ * @memberof IonIntlTelInputComponent
2527
+ */
2528
+ dialCodePrefix = '+';
2529
+ /**
2530
+ * Determines whether to select automatic country based on user input.
2531
+ * See more on.
2532
+ *
2533
+ * @default true
2534
+ * @memberof IonIntlTelInputComponent
2535
+ */
2536
+ enableAutoCountrySelect = true;
2537
+ /**
2538
+ * Determines whether an example number will be shown as a placeholder in input.
2539
+ * See more on.
2540
+ *
2541
+ * @default true
2542
+ * @memberof IonIntlTelInputComponent
2543
+ */
2544
+ enablePlaceholder = true;
2545
+ /**
2546
+ * A fallaback placeholder to be used if no example number is found for a country.
2547
+ * See more on.
2548
+ *
2549
+ * @default ''
2550
+ * @memberof IonIntlTelInputComponent
2551
+ */
2552
+ fallbackPlaceholder = '';
2553
+ /**
2554
+ * If a custom placeholder is needed for input.
2555
+ * If this property is set it will override `enablePlaceholder` and only this placeholder will be shown.
2556
+ * See more on.
2557
+ *
2558
+ * @default ''
2559
+ * @memberof IonIntlTelInputComponent
2560
+ */
2561
+ inputPlaceholder = '';
2562
+ inputLabel = '';
2563
+ inputLabelPlacement = '';
2564
+ /**
2565
+ * Instead of an example phone number, use a x pattern. Such as xxx-xxx-xxxx, this will be obtained
2566
+ * based on the example number from the google phone lib.
2567
+ *
2568
+ * @default true
2569
+ * @memberof IonIntlTelInputComponent
2570
+ */
2571
+ usePatternPlaceholder = true;
2572
+ /**
2573
+ * Maximum Length for input.
2574
+ * See more on.
2575
+ *
2576
+ * @default '15'
2577
+ * @memberof IonIntlTelInputComponent
2578
+ */
2579
+ maxLength = '15';
2580
+ /**
2581
+ * Title of modal opened to select country dial code.
2582
+ * See more on.
2583
+ *
2584
+ * @default 'Select Country'
2585
+ * @memberof IonIntlTelInputComponent
2586
+ */
2587
+ modalTitle = 'Select Country';
2588
+ /**
2589
+ * CSS class to attach to dial code selectionmodal.
2590
+ * See more on.
2591
+ *
2592
+ * @default 'ion-intl-tel-modal'
2593
+ * @memberof IonIntlTelInputComponent
2594
+ */
2595
+ modalCssClass = 'ion-intl-tel-modal';
2596
+ /**
2597
+ * Placeholder for input in dial code selection modal.
2598
+ * See more on.
2599
+ *
2600
+ * @default 'Enter country name'
2601
+ * @memberof IonIntlTelInputComponent
2602
+ */
2603
+ modalSearchPlaceholder = 'Enter country name';
2604
+ /**
2605
+ * Text for close button in dial code selection modal.
2606
+ * See more on.
2607
+ *
2608
+ * @default 'Close'
2609
+ * @memberof IonIntlTelInputComponent
2610
+ */
2611
+ modalCloseText = 'Close';
2612
+ /**
2613
+ * Slot for close button in dial code selection modal. [Ionic slots](https://ionicframework.com/docs/api/item) are supported
2614
+ * See more on.
2615
+ *
2616
+ * @default 'end'
2617
+ * @memberof IonIntlTelInputComponent
2618
+ */
2619
+ modalCloseButtonSlot = 'end';
2620
+ /**
2621
+ * Determines whether dial code selection modal should be searchable or not.
2622
+ * See more on.
2623
+ *
2624
+ * @default 'true'
2625
+ * @memberof IonIntlTelInputComponent
2626
+ */
2627
+ modalCanSearch = true;
2628
+ /**
2629
+ * Determines whether dial code selection modal is closed on backdrop click.
2630
+ * See more on.
2631
+ *
2632
+ * @default 'true'
2633
+ * @memberof IonIntlTelInputComponent
2634
+ */
2635
+ modalShouldBackdropClose = true;
2636
+ /**
2637
+ * Determines whether input should be focused when dial code selection modal is opened.
2638
+ * See more on.
2639
+ *
2640
+ * @default 'true'
2641
+ * @memberof IonIntlTelInputComponent
2642
+ */
2643
+ modalShouldFocusSearchbar = true;
2644
+ /**
2645
+ * Message to show when no countries are found for search in dial code selection modal.
2646
+ * See more on.
2647
+ *
2648
+ * @default 'true'
2649
+ * @memberof IonIntlTelInputComponent
2650
+ */
2651
+ modalSearchFailText = 'No countries found';
2652
+ /**
2653
+ * List of iso codes of manually selected countries as string, which will appear in the dropdown.
2654
+ * **Note**: `onlyCountries` should be a string array of country iso codes.
2655
+ * See more on.
2656
+ *
2657
+ * @default null
2658
+ * @memberof IonIntlTelInputComponent
2659
+ */
2660
+ onlyCountries = [];
2661
+ /**
2662
+ * List of iso codesn as string of countries, which will appear at the top in dial code selection modal.
2663
+ * **Note**: `preferredCountries` should be a string array of country iso codes.
2664
+ * See more on.
2665
+ *
2666
+ * @default null
2667
+ * @memberof IonIntlTelInputComponent
2668
+ */
2669
+ preferredCountries = [];
2670
+ /**
2671
+ * Determines whether first country should be selected in dial code select or not.
2672
+ * See more on.
2673
+ *
2674
+ * @default true
2675
+ * @memberof IonIntlTelInputComponent
2676
+ */
2677
+ selectFirstCountry = true;
2678
+ /**
2679
+ * Determines whether to visually separate dialcode into the drop down element.
2680
+ * See more on.
2681
+ *
2682
+ * @default true
2683
+ * @memberof IonIntlTelInputComponent
2684
+ */
2685
+ separateDialCode = true;
2686
+ /**
2687
+ * Fires when the Phone number Input is changed.
2688
+ * See more on.
2689
+ *
2690
+ * @memberof IonIntlTelInputComponent
2691
+ */
2692
+ numberChange = new EventEmitter();
2693
+ /**
2694
+ * Fires when the Phone number Input is blurred.
2695
+ * See more on.
2696
+ *
2697
+ * @memberof IonIntlTelInputComponent
2698
+ */
2699
+ numberBlur = new EventEmitter();
2700
+ /**
2701
+ * Fires when the Phone number Input is focused.
2702
+ * See more on.
2703
+ *
2704
+ * @memberof IonIntlTelInputComponent
2705
+ */
2706
+ numberFocus = new EventEmitter();
2707
+ /**
2708
+ * Fires when the user is typing in Phone number Input.
2709
+ * See more on.
2710
+ *
2711
+ * @memberof IonIntlTelInputComponent
2712
+ */
2713
+ numberInput = new EventEmitter();
2714
+ /**
2715
+ * Fires when the dial code selection is changed.
2716
+ * See more on.
2717
+ *
2718
+ * @memberof IonIntlTelInputComponent
2719
+ */
2720
+ codeChange = new EventEmitter();
2721
+ /**
2722
+ * Fires when the dial code selection modal is opened.
2723
+ * See more on.
2724
+ *
2725
+ * @memberof IonIntlTelInputComponent
2726
+ */
2727
+ codeOpen = new EventEmitter();
2728
+ /**
2729
+ * Fires when the dial code selection modal is closed.
2730
+ * See more on.
2731
+ *
2732
+ * @memberof IonIntlTelInputComponent
2733
+ */
2734
+ codeClose = new EventEmitter();
2735
+ /**
2736
+ * Fires when a dial code is selected in dial code selection modal.
2737
+ * See more on.
2738
+ *
2739
+ * @memberof IonIntlTelInputComponent
2740
+ */
2741
+ codeSelect = new EventEmitter();
2742
+ numberInputEl;
2743
+ // tslint:disable-next-line: variable-name
2744
+ _value = null;
2745
+ country;
2746
+ phoneNumber = '';
2747
+ countries = [];
2748
+ disabled = false;
2749
+ onTouched = () => { };
2750
+ propagateChange = (_) => { };
2483
2751
  constructor(el, platform, ionIntlTelInputService, modalCtrl) {
2484
2752
  this.el = el;
2485
2753
  this.platform = platform;
2486
2754
  this.ionIntlTelInputService = ionIntlTelInputService;
2487
2755
  this.modalCtrl = modalCtrl;
2488
- this.cssClass = true;
2489
- /**
2490
- * autocomplete, set to 'tel' if needed
2491
- *
2492
- * @default 'off'
2493
- * @memberof IonIntlTelInputComponent
2494
- */
2495
- this.autocomplete = 'off';
2496
- /**
2497
- * required, passed onto ion-input so we can be accessiblity compliant
2498
- *
2499
- * @default false
2500
- * @memberof IonIntlTelInputComponent
2501
- */
2502
- this.required = false;
2503
- /**
2504
- * Iso Code of default selected Country.
2505
- * See more on.
2506
- *
2507
- * @default ''
2508
- * @memberof IonIntlTelInputComponent
2509
- */
2510
- this.defaultCountryiso = '';
2511
- /**
2512
- * Determines whether to use `00` or `+` as dial code prefix.
2513
- * Available attributes are '+' | '00'.
2514
- * See more on.
2515
- *
2516
- * @default +
2517
- * @memberof IonIntlTelInputComponent
2518
- */
2519
- this.dialCodePrefix = '+';
2520
- /**
2521
- * Determines whether to select automatic country based on user input.
2522
- * See more on.
2523
- *
2524
- * @default true
2525
- * @memberof IonIntlTelInputComponent
2526
- */
2527
- this.enableAutoCountrySelect = true;
2528
- /**
2529
- * Determines whether an example number will be shown as a placeholder in input.
2530
- * See more on.
2531
- *
2532
- * @default true
2533
- * @memberof IonIntlTelInputComponent
2534
- */
2535
- this.enablePlaceholder = true;
2536
- /**
2537
- * A fallaback placeholder to be used if no example number is found for a country.
2538
- * See more on.
2539
- *
2540
- * @default ''
2541
- * @memberof IonIntlTelInputComponent
2542
- */
2543
- this.fallbackPlaceholder = '';
2544
- /**
2545
- * If a custom placeholder is needed for input.
2546
- * If this property is set it will override `enablePlaceholder` and only this placeholder will be shown.
2547
- * See more on.
2548
- *
2549
- * @default ''
2550
- * @memberof IonIntlTelInputComponent
2551
- */
2552
- this.inputPlaceholder = '';
2553
- this.inputLabel = '';
2554
- this.inputLabelPlacement = '';
2555
- /**
2556
- * Instead of an example phone number, use a x pattern. Such as xxx-xxx-xxxx, this will be obtained
2557
- * based on the example number from the google phone lib.
2558
- *
2559
- * @default true
2560
- * @memberof IonIntlTelInputComponent
2561
- */
2562
- this.usePatternPlaceholder = true;
2563
- /**
2564
- * Maximum Length for input.
2565
- * See more on.
2566
- *
2567
- * @default '15'
2568
- * @memberof IonIntlTelInputComponent
2569
- */
2570
- this.maxLength = '15';
2571
- /**
2572
- * Title of modal opened to select country dial code.
2573
- * See more on.
2574
- *
2575
- * @default 'Select Country'
2576
- * @memberof IonIntlTelInputComponent
2577
- */
2578
- this.modalTitle = 'Select Country';
2579
- /**
2580
- * CSS class to attach to dial code selectionmodal.
2581
- * See more on.
2582
- *
2583
- * @default 'ion-intl-tel-modal'
2584
- * @memberof IonIntlTelInputComponent
2585
- */
2586
- this.modalCssClass = 'ion-intl-tel-modal';
2587
- /**
2588
- * Placeholder for input in dial code selection modal.
2589
- * See more on.
2590
- *
2591
- * @default 'Enter country name'
2592
- * @memberof IonIntlTelInputComponent
2593
- */
2594
- this.modalSearchPlaceholder = 'Enter country name';
2595
- /**
2596
- * Text for close button in dial code selection modal.
2597
- * See more on.
2598
- *
2599
- * @default 'Close'
2600
- * @memberof IonIntlTelInputComponent
2601
- */
2602
- this.modalCloseText = 'Close';
2603
- /**
2604
- * Slot for close button in dial code selection modal. [Ionic slots](https://ionicframework.com/docs/api/item) are supported
2605
- * See more on.
2606
- *
2607
- * @default 'end'
2608
- * @memberof IonIntlTelInputComponent
2609
- */
2610
- this.modalCloseButtonSlot = 'end';
2611
- /**
2612
- * Determines whether dial code selection modal should be searchable or not.
2613
- * See more on.
2614
- *
2615
- * @default 'true'
2616
- * @memberof IonIntlTelInputComponent
2617
- */
2618
- this.modalCanSearch = true;
2619
- /**
2620
- * Determines whether dial code selection modal is closed on backdrop click.
2621
- * See more on.
2622
- *
2623
- * @default 'true'
2624
- * @memberof IonIntlTelInputComponent
2625
- */
2626
- this.modalShouldBackdropClose = true;
2627
- /**
2628
- * Determines whether input should be focused when dial code selection modal is opened.
2629
- * See more on.
2630
- *
2631
- * @default 'true'
2632
- * @memberof IonIntlTelInputComponent
2633
- */
2634
- this.modalShouldFocusSearchbar = true;
2635
- /**
2636
- * Message to show when no countries are found for search in dial code selection modal.
2637
- * See more on.
2638
- *
2639
- * @default 'true'
2640
- * @memberof IonIntlTelInputComponent
2641
- */
2642
- this.modalSearchFailText = 'No countries found';
2643
- /**
2644
- * List of iso codes of manually selected countries as string, which will appear in the dropdown.
2645
- * **Note**: `onlyCountries` should be a string array of country iso codes.
2646
- * See more on.
2647
- *
2648
- * @default null
2649
- * @memberof IonIntlTelInputComponent
2650
- */
2651
- this.onlyCountries = [];
2652
- /**
2653
- * List of iso codesn as string of countries, which will appear at the top in dial code selection modal.
2654
- * **Note**: `preferredCountries` should be a string array of country iso codes.
2655
- * See more on.
2656
- *
2657
- * @default null
2658
- * @memberof IonIntlTelInputComponent
2659
- */
2660
- this.preferredCountries = [];
2661
- /**
2662
- * Determines whether first country should be selected in dial code select or not.
2663
- * See more on.
2664
- *
2665
- * @default true
2666
- * @memberof IonIntlTelInputComponent
2667
- */
2668
- this.selectFirstCountry = true;
2669
- /**
2670
- * Determines whether to visually separate dialcode into the drop down element.
2671
- * See more on.
2672
- *
2673
- * @default true
2674
- * @memberof IonIntlTelInputComponent
2675
- */
2676
- this.separateDialCode = true;
2677
- /**
2678
- * Fires when the Phone number Input is changed.
2679
- * See more on.
2680
- *
2681
- * @memberof IonIntlTelInputComponent
2682
- */
2683
- this.numberChange = new EventEmitter();
2684
- /**
2685
- * Fires when the Phone number Input is blurred.
2686
- * See more on.
2687
- *
2688
- * @memberof IonIntlTelInputComponent
2689
- */
2690
- this.numberBlur = new EventEmitter();
2691
- /**
2692
- * Fires when the Phone number Input is focused.
2693
- * See more on.
2694
- *
2695
- * @memberof IonIntlTelInputComponent
2696
- */
2697
- this.numberFocus = new EventEmitter();
2698
- /**
2699
- * Fires when the user is typing in Phone number Input.
2700
- * See more on.
2701
- *
2702
- * @memberof IonIntlTelInputComponent
2703
- */
2704
- this.numberInput = new EventEmitter();
2705
- /**
2706
- * Fires when the dial code selection is changed.
2707
- * See more on.
2708
- *
2709
- * @memberof IonIntlTelInputComponent
2710
- */
2711
- this.codeChange = new EventEmitter();
2712
- /**
2713
- * Fires when the dial code selection modal is opened.
2714
- * See more on.
2715
- *
2716
- * @memberof IonIntlTelInputComponent
2717
- */
2718
- this.codeOpen = new EventEmitter();
2719
- /**
2720
- * Fires when the dial code selection modal is closed.
2721
- * See more on.
2722
- *
2723
- * @memberof IonIntlTelInputComponent
2724
- */
2725
- this.codeClose = new EventEmitter();
2726
- /**
2727
- * Fires when a dial code is selected in dial code selection modal.
2728
- * See more on.
2729
- *
2730
- * @memberof IonIntlTelInputComponent
2731
- */
2732
- this.codeSelect = new EventEmitter();
2733
- // tslint:disable-next-line: variable-name
2734
- this._value = null;
2735
- this.phoneNumber = '';
2736
- this.countries = [];
2737
- this.disabled = false;
2738
- this.onTouched = () => { };
2739
- this.propagateChange = (_) => { };
2740
- this.startsWith = (input, search) => {
2741
- return input.substr(0, search.length) === search;
2742
- };
2743
- this.getClasses = (element) => {
2744
- const classList = element.classList;
2745
- const classes = [];
2746
- for (let i = 0; i < classList.length; i++) {
2747
- const item = classList.item(i);
2748
- if (item !== null && this.startsWith(item, 'ng-')) {
2749
- classes.push(`ion-${item.substr(3)}`);
2750
- }
2751
- }
2752
- return classes;
2753
- };
2754
- this.setClasses = (element, classes) => {
2755
- const classList = element.classList;
2756
- [
2757
- 'ion-valid',
2758
- 'ion-invalid',
2759
- 'ion-touched',
2760
- 'ion-untouched',
2761
- 'ion-dirty',
2762
- 'ion-pristine',
2763
- ].forEach((c) => classList.remove(c));
2764
- classes.forEach((c) => classList.add(c));
2765
- };
2766
- this.setIonicClasses = (element) => {
2767
- raf(() => {
2768
- const input = element.nativeElement;
2769
- const classes = this.getClasses(input);
2770
- this.setClasses(input, classes);
2771
- const item = input.closest('ion-item');
2772
- if (item) {
2773
- this.setClasses(item, classes);
2774
- }
2775
- });
2776
- };
2777
- this.setItemClass = (element, className, addClass) => {
2778
- const input = element.nativeElement;
2779
- const item = input.closest('ion-item');
2780
- if (item) {
2781
- const classList = item.classList;
2782
- if (addClass) {
2783
- classList.add(className);
2784
- }
2785
- else {
2786
- classList.remove(className);
2787
- }
2788
- }
2789
- };
2790
2756
  }
2791
2757
  get value() {
2792
2758
  return this._value;
@@ -3095,16 +3061,66 @@ class IonIntlTelInputComponent {
3095
3061
  }
3096
3062
  this.countries.sort((a, b) => a.priority > b.priority ? -1 : a.priority < b.priority ? 1 : 0);
3097
3063
  }
3064
+ startsWith = (input, search) => {
3065
+ return input.substr(0, search.length) === search;
3066
+ };
3067
+ getClasses = (element) => {
3068
+ const classList = element.classList;
3069
+ const classes = [];
3070
+ for (let i = 0; i < classList.length; i++) {
3071
+ const item = classList.item(i);
3072
+ if (item !== null && this.startsWith(item, 'ng-')) {
3073
+ classes.push(`ion-${item.substr(3)}`);
3074
+ }
3075
+ }
3076
+ return classes;
3077
+ };
3078
+ setClasses = (element, classes) => {
3079
+ const classList = element.classList;
3080
+ [
3081
+ 'ion-valid',
3082
+ 'ion-invalid',
3083
+ 'ion-touched',
3084
+ 'ion-untouched',
3085
+ 'ion-dirty',
3086
+ 'ion-pristine',
3087
+ ].forEach((c) => classList.remove(c));
3088
+ classes.forEach((c) => classList.add(c));
3089
+ };
3090
+ setIonicClasses = (element) => {
3091
+ raf(() => {
3092
+ const input = element.nativeElement;
3093
+ const classes = this.getClasses(input);
3094
+ this.setClasses(input, classes);
3095
+ const item = input.closest('ion-item');
3096
+ if (item) {
3097
+ this.setClasses(item, classes);
3098
+ }
3099
+ });
3100
+ };
3101
+ setItemClass = (element, className, addClass) => {
3102
+ const input = element.nativeElement;
3103
+ const item = input.closest('ion-item');
3104
+ if (item) {
3105
+ const classList = item.classList;
3106
+ if (addClass) {
3107
+ classList.add(className);
3108
+ }
3109
+ else {
3110
+ classList.remove(className);
3111
+ }
3112
+ }
3113
+ };
3114
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IonIntlTelInputComponent, deps: [{ token: i0.ElementRef }, { token: i1.Platform }, { token: IonIntlTelInputService }, { token: i1.ModalController }], target: i0.ɵɵFactoryTarget.Component });
3115
+ /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: IonIntlTelInputComponent, selector: "ion-intl-tel-input", inputs: { 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" }, outputs: { numberChange: "numberChange", numberBlur: "numberBlur", numberFocus: "numberFocus", numberInput: "numberInput", codeChange: "codeChange", codeOpen: "codeOpen", codeClose: "codeClose", codeSelect: "codeSelect" }, host: { properties: { "class.ion-intl-tel-input": "this.cssClass", "class.ion-intl-tel-input-ios": "this.isIos", "class.ion-intl-tel-input-md": "this.isMD", "class.has-focus": "this.hasFocus", "class.ion-intl-tel-input-has-value": "this.hasValueCssClass", "class.ion-intl-tel-input-is-enabled": "this.isEnabled" } }, providers: [
3116
+ {
3117
+ provide: NG_VALUE_ACCESSOR,
3118
+ useExisting: forwardRef((() => IonIntlTelInputComponent)),
3119
+ multi: true,
3120
+ },
3121
+ ], viewQueries: [{ propertyName: "numberInputEl", first: true, predicate: ["numberInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ion-button\n fill=\"clear\"\n class=\"ion-intl-tel-input-btn\"\n [disabled] = \"disabled\"\n aria-label=\"country\"\n (click)=\"openModal()\"\n>\n <span class=\"ion-intl-tel-input-flag fi fi-{{country.flagClass}}\"></span><span class=\"ion-intl-tel-input-code\" *ngIf=\"separateDialCode\">{{dialCodePrefix}}{{country.dialCode}}</span>\n <ion-icon style=\"font-size:14px;opacity:.5;\" name=\"caret-down\"></ion-icon>\n</ion-button>\n<div class=\"ion-intl-tel-input-number\">\n <ion-input\n #numberInput\n [(ngModel)]=\"phoneNumber\"\n [autocomplete]=\"autocomplete\"\n [required]=\"required\"\n [disabled] = \"disabled\"\n [attr.maxLength]=\"maxLength\"\n type=\"tel\"\n (ionBlur)=\"onIonNumberBlur()\"\n (ionChange)=\"onIonNumberChange($event)\"\n (ionFocus)=\"onIonNumberFocus()\"\n (ionInput)=\"onIonNumberInput($event)\"\n (keydown)=\"onNumberKeyDown($event)\"\n (ngModelChange)=\"onNumberChange()\"\n placeholder=\"{{country | countryPlaceholder: inputPlaceholder:separateDialCode:fallbackPlaceholder:usePatternPlaceholder}}\" >\n </ion-input>\n</div>\n", styles: [":host{width:100%;display:flex;align-items:center}:host ion-button{color:var(--ion-color);height:100%;margin:0}:host ion-button::part(native){padding-inline-start:0;padding-inline-end:2px;margin:0;font-size:16px;font-weight:400}:host .fi{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "legacy", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "directive", type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "pipe", type: CountryPlaceholder, name: "countryPlaceholder" }] });
3098
3122
  }
3099
- /** @nocollapse */ IonIntlTelInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IonIntlTelInputComponent, deps: [{ token: i0.ElementRef }, { token: i1.Platform }, { token: IonIntlTelInputService }, { token: i1.ModalController }], target: i0.ɵɵFactoryTarget.Component });
3100
- /** @nocollapse */ IonIntlTelInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: IonIntlTelInputComponent, selector: "ion-intl-tel-input", inputs: { 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" }, outputs: { numberChange: "numberChange", numberBlur: "numberBlur", numberFocus: "numberFocus", numberInput: "numberInput", codeChange: "codeChange", codeOpen: "codeOpen", codeClose: "codeClose", codeSelect: "codeSelect" }, host: { properties: { "class.ion-intl-tel-input": "this.cssClass", "class.ion-intl-tel-input-ios": "this.isIos", "class.ion-intl-tel-input-md": "this.isMD", "class.has-focus": "this.hasFocus", "class.ion-intl-tel-input-has-value": "this.hasValueCssClass", "class.ion-intl-tel-input-is-enabled": "this.isEnabled" } }, providers: [
3101
- {
3102
- provide: NG_VALUE_ACCESSOR,
3103
- useExisting: forwardRef((() => IonIntlTelInputComponent)),
3104
- multi: true,
3105
- },
3106
- ], viewQueries: [{ propertyName: "numberInputEl", first: true, predicate: ["numberInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ion-button\n fill=\"clear\"\n class=\"ion-intl-tel-input-btn\"\n [disabled] = \"disabled\"\n aria-label=\"country\"\n (click)=\"openModal()\"\n>\n <span class=\"ion-intl-tel-input-flag fi fi-{{country.flagClass}}\"></span><span class=\"ion-intl-tel-input-code\" *ngIf=\"separateDialCode\">{{dialCodePrefix}}{{country.dialCode}}</span>\n <ion-icon style=\"font-size:14px;opacity:.5;\" name=\"caret-down\"></ion-icon>\n</ion-button>\n<div class=\"ion-intl-tel-input-number\">\n <ion-input\n #numberInput\n [(ngModel)]=\"phoneNumber\"\n [autocomplete]=\"autocomplete\"\n [required]=\"required\"\n [disabled] = \"disabled\"\n [attr.maxLength]=\"maxLength\"\n type=\"tel\"\n (ionBlur)=\"onIonNumberBlur()\"\n (ionChange)=\"onIonNumberChange($event)\"\n (ionFocus)=\"onIonNumberFocus()\"\n (ionInput)=\"onIonNumberInput($event)\"\n (keydown)=\"onNumberKeyDown($event)\"\n (ngModelChange)=\"onNumberChange()\"\n placeholder=\"{{country | countryPlaceholder: inputPlaceholder:separateDialCode:fallbackPlaceholder:usePatternPlaceholder}}\" >\n </ion-input>\n</div>\n", styles: [":host{width:100%;display:flex;align-items:center}:host ion-button{color:var(--ion-color);height:100%;margin:0}:host ion-button::part(native){padding-inline-start:0;padding-inline-end:2px;margin:0;font-size:16px;font-weight:400}:host .fi{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "legacy", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "directive", type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "pipe", type: CountryPlaceholder, name: "countryPlaceholder" }] });
3107
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IonIntlTelInputComponent, decorators: [{
3123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IonIntlTelInputComponent, decorators: [{
3108
3124
  type: Component,
3109
3125
  args: [{ selector: 'ion-intl-tel-input', providers: [
3110
3126
  {
@@ -3206,24 +3222,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
3206
3222
  }] } });
3207
3223
 
3208
3224
  class IonIntlTelInputModule {
3225
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IonIntlTelInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3226
+ /** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.9", ngImport: i0, type: IonIntlTelInputModule, declarations: [CountryPlaceholder,
3227
+ IonIntlTelInputValidatorDirective,
3228
+ IonIntlTelInputComponent,
3229
+ IonIntTelCodeComponent], imports: [CommonModule,
3230
+ FormsModule,
3231
+ IonicModule,
3232
+ ScrollingModule], exports: [IonIntlTelInputComponent,
3233
+ IonIntlTelInputValidatorDirective,
3234
+ IonIntTelCodeComponent] });
3235
+ /** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IonIntlTelInputModule, providers: [
3236
+ IonIntlTelInputService
3237
+ ], imports: [CommonModule,
3238
+ FormsModule,
3239
+ IonicModule,
3240
+ ScrollingModule] });
3209
3241
  }
3210
- /** @nocollapse */ IonIntlTelInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IonIntlTelInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3211
- /** @nocollapse */ IonIntlTelInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: IonIntlTelInputModule, declarations: [CountryPlaceholder,
3212
- IonIntlTelInputValidatorDirective,
3213
- IonIntlTelInputComponent,
3214
- IonIntTelCodeComponent], imports: [CommonModule,
3215
- FormsModule,
3216
- IonicModule,
3217
- ScrollingModule], exports: [IonIntlTelInputComponent,
3218
- IonIntlTelInputValidatorDirective,
3219
- IonIntTelCodeComponent] });
3220
- /** @nocollapse */ IonIntlTelInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IonIntlTelInputModule, providers: [
3221
- IonIntlTelInputService
3222
- ], imports: [CommonModule,
3223
- FormsModule,
3224
- IonicModule,
3225
- ScrollingModule] });
3226
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: IonIntlTelInputModule, decorators: [{
3242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IonIntlTelInputModule, decorators: [{
3227
3243
  type: NgModule,
3228
3244
  args: [{
3229
3245
  declarations: [