UNPKG

ngx-phone-field

Version:

An Angular directive for international phone input with country flag dropdowns.

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