UNPKG

ngx-phone-field

Version:

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

1 lines 5.87 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';\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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"}