{"version":3,"file":"ngx-phone-field.mjs","sources":["../../../projects/ngx-phone-field/src/lib/ngx-phone-field.ts","../../../projects/ngx-phone-field/src/public-api.ts","../../../projects/ngx-phone-field/src/ngx-phone-field.ts"],"sourcesContent":["import { Directive, ElementRef, AfterViewInit, OnDestroy, InputSignal, input, inject } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport intlTelInput, { SomeOptions } from 'intl-tel-input';\r\n\r\n@Directive({\r\n  selector: '[ngxPhoneField]',\r\n  standalone: true,\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: NgxPhoneField,\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NgxPhoneField implements AfterViewInit, OnDestroy {\r\n  public readonly ngxPhoneFieldParams: InputSignal<SomeOptions> = input({});\r\n\r\n  private defaultOptions: SomeOptions = {\r\n    initialCountry: '',\r\n    allowDropdown: true,\r\n    autoPlaceholder: 'polite',\r\n    containerClass: '',\r\n    countryOrder: [],\r\n    countrySearch: true,\r\n    customPlaceholder: null,\r\n    dropdownContainer: null,\r\n    excludeCountries: [],\r\n    fixDropdownWidth: true,\r\n    formatAsYouType: true,\r\n    formatOnDisplay: true,\r\n    geoIpLookup: null,\r\n    hiddenInput: null,\r\n    i18n: {},\r\n    loadUtilsOnInit: '',\r\n    nationalMode: true,\r\n    onlyCountries: [],\r\n    placeholderNumberType: 'MOBILE',\r\n    showFlags: true,\r\n    separateDialCode: false,\r\n    strictMode: false,\r\n    useFullscreenPopup: /Android.+Mobile|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || window.innerWidth <= 500 || false,\r\n    utilsScript: '',\r\n    validationNumberType: 'MOBILE',\r\n  };\r\n  private instance!: { destroy: () => void };\r\n  private inputListener!: EventListener;\r\n\r\n  private onTouched: () => void = () => {};\r\n  private onChange: (value: any) => void = () => {};\r\n  \r\n  private readonly el: ElementRef = inject(ElementRef)\r\n\r\n  public ngAfterViewInit(): void {\r\n    this.instance = intlTelInput(this.el.nativeElement, {\r\n      ...this.defaultOptions,\r\n      ...this.ngxPhoneFieldParams(),\r\n    });\r\n\r\n    this.inputListener = () => {\r\n      this.onChange(this.instance);\r\n    }\r\n\r\n    this.el.nativeElement.addEventListener('input', this.inputListener);\r\n  }\r\n\r\n  public ngOnDestroy(): void {\r\n    this.el.nativeElement.removeEventListener('input', this.inputListener);\r\n\r\n    if (this.instance) {\r\n      this.instance.destroy();\r\n    }\r\n  }\r\n\r\n  public writeValue(value: any): void {\r\n    if (value) {\r\n      this.el.nativeElement.value = value;\r\n    }\r\n  }\r\n  \r\n  public registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n  \r\n  public registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n  \r\n  public setDisabledState(isDisabled: boolean): void {\r\n    this.el.nativeElement.disabled = isDisabled;\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of intl-tel-input\r\n */\r\n\r\nexport * from './lib/ngx-phone-field';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}