@skyux/phone-field 10.41.2 → 10.41.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-phone-field.mjs","sources":["../../../../../libs/components/phone-field/src/lib/modules/shared/sky-phone-field-resources.module.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field-adapter.service.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.component.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.component.html","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field-input.directive.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.module.ts","../../../../../libs/components/phone-field/src/skyux-phone-field.ts"],"sourcesContent":["/* istanbul ignore file */\n\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-phone-field' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n SkyLibResourcesService,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_phone_field_country_search_dismiss: {\n message: 'Dismiss country search',\n },\n skyux_phone_field_country_search_label: {\n message: 'Dismiss country search',\n },\n skyux_phone_field_country_search_placeholder: {\n message: 'Search for a country',\n },\n skyux_phone_field_country_select_label: { message: 'Choose country.' },\n skyux_phone_field_country_selected_label: {\n message: '{0} is currently selected.',\n },\n skyux_phone_field_format_hint_text: { message: 'Example: {0}.' },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\nexport class SkyPhoneFieldResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string,\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyPhoneFieldResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyPhoneFieldResourcesModule {}\n","import {\n ElementRef,\n Injectable,\n OnDestroy,\n Renderer2,\n inject,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\n/**\n * Service for interacting with the DOM elements of the phone field.\n * @internal\n */\n@Injectable()\nexport class SkyPhoneFieldAdapterService implements OnDestroy {\n #ngUnsubscribe = new Subject<void>();\n #renderer = inject(Renderer2);\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public addElementClass(elementRef: ElementRef, className: string): void {\n this.#renderer.addClass(elementRef.nativeElement, className);\n }\n\n public getInputValue(elementRef: ElementRef): string | undefined {\n const el = elementRef.nativeElement as HTMLElement | null;\n\n if (el && 'value' in el) {\n return (el as HTMLInputElement).value;\n }\n\n /* istanbul ignore next: safety check */\n return undefined;\n }\n\n public setElementDisabledState(\n elementRef: ElementRef,\n disabled: boolean,\n ): void {\n this.#renderer.setProperty(elementRef.nativeElement, 'disabled', disabled);\n }\n\n public setElementType(elementRef: ElementRef): void {\n this.#renderer.setAttribute(elementRef.nativeElement, 'type', 'tel');\n }\n\n public setElementValue(elementRef: ElementRef, value: string): void {\n this.#renderer.setProperty(elementRef.nativeElement, 'value', value);\n }\n\n public focusCountrySearchElement(el: Element): void {\n const input: HTMLElement | null = el.querySelector('textarea');\n input?.focus();\n }\n\n public focusPhoneInput(el: Element): void {\n const input: HTMLElement | null = el.querySelector(\n '.sky-phone-field-container input',\n );\n input?.focus();\n }\n}\n","import {\n AnimationEvent,\n animate,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n SkipSelf,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { SkyAppFormat } from '@skyux/core';\nimport { SkyInputBoxHostService } from '@skyux/forms';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport {\n SKY_COUNTRY_FIELD_CONTEXT,\n SkyCountryFieldCountry,\n} from '@skyux/lookup';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport {\n PhoneNumberFormat,\n PhoneNumberType,\n PhoneNumberUtil,\n} from 'google-libphonenumber';\nimport 'intl-tel-input';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldCountry } from './types/country';\nimport { SkyPhoneFieldNumberReturnFormat } from './types/number-return-format';\n\nconst DEFAULT_COUNTRY_CODE = 'us';\n\n// NOTE: The no-op animation is here in order to block the input's \"fade in\" animation\n// from firing on initial load. For more information on this technique you can see\n// https://www.bennadel.com/blog/3417-using-no-op-transitions-to-prevent-animation-during-the-initial-render-of-ngfor-in-angular-5-2-6.htm\n@Component({\n selector: 'sky-phone-field',\n templateUrl: './phone-field.component.html',\n styleUrls: ['./phone-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n SkyPhoneFieldAdapterService,\n // Prevents the embedded country field component from changing its behavior based on\n // being inside an input box. The phone field itself will handle the required changes\n // for input box.\n {\n provide: SkyInputBoxHostService,\n useValue: undefined,\n },\n {\n provide: SKY_COUNTRY_FIELD_CONTEXT,\n useValue: { showPlaceholderText: true },\n },\n ],\n animations: [\n trigger('blockAnimationOnLoad', [transition(':enter', [])]),\n trigger('countrySearchAnimation', [\n transition('void => open', [\n style({\n opacity: 0,\n width: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n width: '*',\n }),\n ),\n ]),\n transition('open => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n width: 0,\n }),\n ),\n ]),\n transition('void => open-modern', [\n style({\n opacity: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n }),\n ),\n ]),\n transition('open-modern => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n }),\n ),\n ]),\n ]),\n trigger('phoneInputAnimation', [\n transition('void => open', [\n style({\n opacity: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n }),\n ),\n ]),\n transition('open => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n }),\n ),\n ]),\n ]),\n ],\n})\nexport class SkyPhoneFieldComponent implements OnDestroy, OnInit {\n /**\n * Whether phone number extensions are allowed.\n * @default true\n */\n @Input()\n public set allowExtensions(value: boolean | undefined) {\n this.#_allowExtensions = value !== false;\n }\n\n public get allowExtensions(): boolean {\n return this.#_allowExtensions;\n }\n\n #_allowExtensions = true;\n\n /**\n * The\n * [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)\n * country code for the default country. The country selector button displays a flag\n * icon for this default country until users select a different country.\n * @default \"us\"\n */\n @Input()\n public set defaultCountry(value: string | undefined) {\n if (value !== this.#_defaultCountry) {\n value ??= DEFAULT_COUNTRY_CODE;\n this.#_defaultCountry = value.toLocaleLowerCase();\n this.#defaultCountryData = this.#getDefaultCountryData();\n }\n }\n\n public get defaultCountry(): string {\n return this.#_defaultCountry;\n }\n\n /**\n * The format for validated phone numbers.\n * Options include: `\"default\"`, `\"international\"`, and `\"national\"`.\n * @default \"default\"\n */\n @Input()\n public get returnFormat(): SkyPhoneFieldNumberReturnFormat {\n return this.#_returnFormat;\n }\n\n public set returnFormat(value: SkyPhoneFieldNumberReturnFormat | undefined) {\n this.#_returnFormat = value || 'default';\n }\n\n #_returnFormat: SkyPhoneFieldNumberReturnFormat = 'default';\n\n /**\n * The [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)\n * country codes for the countries that users can select. By default, all countries are available.\n */\n @Input()\n public supportedCountryISOs: string[] | undefined;\n\n /**\n * Emits a `SkyPhoneFieldCountry` object when the selected country in the country search\n * input changes.\n */\n @Output()\n public selectedCountryChange = new EventEmitter<SkyPhoneFieldCountry>();\n\n public countries: SkyPhoneFieldCountry[];\n\n public countrySelectDisabled = false;\n\n public countrySearchShown = false;\n\n public phoneInputShown = true;\n\n public countrySearchForm: FormGroup<{\n countrySearch: FormControl<SkyCountryFieldCountry | undefined | null>;\n }>;\n\n /**\n * The currently selected country to validate against.\n */\n @Input()\n public set selectedCountry(newCountry: SkyPhoneFieldCountry | undefined) {\n if (\n newCountry &&\n (!this.#_selectedCountry ||\n this.#_selectedCountry.iso2 !== newCountry.iso2)\n ) {\n this.#_selectedCountry = this.countries.find(\n (country) => country.iso2 === newCountry.iso2,\n );\n\n if (this.#_selectedCountry && !this.#_selectedCountry.exampleNumber) {\n const numberObj = this.#phoneUtils.getExampleNumberForType(\n newCountry.iso2,\n PhoneNumberType.FIXED_LINE,\n );\n\n this.#_selectedCountry.exampleNumber = this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL,\n );\n }\n\n this.#populateInputBoxHelpText();\n }\n }\n\n public get selectedCountry(): SkyPhoneFieldCountry | undefined {\n return this.#_selectedCountry;\n }\n\n @ViewChild('inputTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public inputTemplateRef: TemplateRef<unknown> | undefined;\n\n @ViewChild('countryBtnTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public countryBtnTemplateRef: TemplateRef<unknown> | undefined;\n\n @ViewChild('buttonsInsetTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public buttonsInsetTemplateRef: TemplateRef<unknown> | undefined;\n\n #defaultCountryData: SkyPhoneFieldCountry | undefined;\n\n #phoneInputAnimationTriggered = false;\n\n #phoneNumberFormatHintTextTemplateString = '';\n\n #phoneUtils = PhoneNumberUtil.getInstance();\n\n #longestDialCodeLength = 0;\n\n #_defaultCountry = DEFAULT_COUNTRY_CODE;\n\n #_selectedCountry: SkyPhoneFieldCountry | undefined;\n\n #countrySearchFormControl = new FormControl<\n SkyCountryFieldCountry | undefined | null\n >(undefined);\n\n #formBuilder: FormBuilder;\n #adapterService: SkyPhoneFieldAdapterService;\n readonly #appFormat = inject(SkyAppFormat);\n #changeDetector: ChangeDetectorRef;\n #ngUnsubscribe = new Subject<void>();\n readonly #resourceSvc = inject(SkyLibResourcesService);\n\n constructor(\n formBuilder: FormBuilder,\n adapterService: SkyPhoneFieldAdapterService,\n changeDetector: ChangeDetectorRef,\n @Optional() public themeSvc?: SkyThemeService,\n @Optional() @SkipSelf() public inputBoxHostSvc?: SkyInputBoxHostService,\n ) {\n this.#formBuilder = formBuilder;\n this.#adapterService = adapterService;\n this.#changeDetector = changeDetector;\n /**\n * The json functions here ensures that we get a copy of the array and not the global original.\n * This ensures that multiple instances of the component don't overwrite the original data.\n *\n * We must type the window object as any here as the intl-tel-input library adds its object\n * to the main window object.\n */\n this.countries = JSON.parse(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n JSON.stringify((window as any).intlTelInputGlobals.getCountryData()),\n );\n\n for (const country of this.countries) {\n country.dialCode = '+' + country.dialCode;\n\n if (country.dialCode.length > this.#longestDialCodeLength) {\n this.#longestDialCodeLength = country.dialCode.length;\n }\n }\n\n this.#defaultCountryData = this.#getDefaultCountryData();\n\n this.countrySearchForm = this.#formBuilder.group({\n countrySearch: this.#countrySearchFormControl,\n });\n\n this.#resourceSvc\n .getString('skyux_phone_field_format_hint_text')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((templateString) => {\n this.#phoneNumberFormatHintTextTemplateString = templateString;\n this.#populateInputBoxHelpText();\n });\n }\n\n public ngOnInit(): void {\n // The timeout here is needed to avoid a change before checked error when a user specifies\n // a selected country on initialization of the component.\n setTimeout(() => {\n if (this.inputBoxHostSvc && this.inputTemplateRef) {\n this.inputBoxHostSvc.populate({\n inputTemplate: this.inputTemplateRef,\n buttonsInsetTemplate: this.buttonsInsetTemplateRef,\n buttonsLeftTemplate: this.countryBtnTemplateRef,\n });\n }\n\n this.selectedCountry ??= this.#defaultCountryData;\n\n this.#changeDetector.markForCheck();\n }, 0);\n\n this.#countrySearchFormControl.valueChanges.subscribe(\n (newValue: SkyCountryFieldCountry | undefined | null) => {\n if (newValue?.iso2 !== this.selectedCountry?.iso2) {\n this.selectedCountry = newValue || undefined;\n this.selectedCountryChange.emit(this.selectedCountry);\n }\n },\n );\n }\n\n public ngOnDestroy(): void {\n this.selectedCountryChange.complete();\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n /**\n * Sets the country to validate against based on the county's iso2 code.\n * @param countryCode The International Organization for Standardization's two-letter code\n * for the default country.\n * @internal\n */\n public onCountrySelected(newCountry: SkyCountryFieldCountry): void {\n if (newCountry) {\n this.selectedCountry = this.countries.find(\n (countryInfo) => countryInfo.iso2 === newCountry.iso2,\n );\n this.toggleCountrySearch(false);\n }\n }\n\n public toggleCountrySearch(showSearch: boolean): void {\n this.#phoneInputAnimationTriggered = true;\n\n if (showSearch) {\n this.phoneInputShown = false;\n } else {\n this.countrySearchShown = false;\n\n this.#countrySearchFormControl.setValue(undefined);\n }\n\n if (this.inputBoxHostSvc && this.inputTemplateRef) {\n this.inputBoxHostSvc.setHintTextHidden(showSearch);\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public countrySearchAnimationEnd(e: AnimationEvent): void {\n if (!this.countrySearchShown) {\n this.phoneInputShown = true;\n } else {\n this.#adapterService.focusCountrySearchElement(e.element);\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public phoneInputAnimationEnd(e: AnimationEvent): void {\n if (!this.phoneInputShown) {\n this.countrySearchShown = true;\n } else {\n if (this.#phoneInputAnimationTriggered) {\n this.#adapterService.focusPhoneInput(e.element);\n this.#phoneInputAnimationTriggered = false;\n }\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public setCountryByDialCode(phoneNumberRaw: string | undefined): boolean {\n if (!phoneNumberRaw || !phoneNumberRaw.startsWith('+')) {\n return false;\n }\n\n let dialCode = '';\n let foundCountry: SkyPhoneFieldCountry | undefined;\n let newCountry: SkyPhoneFieldCountry | undefined;\n\n try {\n const phoneNumberParsed =\n this.#phoneUtils.parseAndKeepRawInput(phoneNumberRaw);\n const regionCode =\n this.#phoneUtils.getRegionCodeForNumber(phoneNumberParsed);\n foundCountry = this.countries.find(\n (country) => country.iso2.toUpperCase() === regionCode?.toUpperCase(),\n );\n\n if (foundCountry && !this.#validateSupportedCountry(foundCountry)) {\n foundCountry = undefined;\n }\n } catch (_) {\n if (\n !this.selectedCountry?.dialCode ||\n !phoneNumberRaw.startsWith(`${this.selectedCountry?.dialCode}`)\n ) {\n for (let i = 1; i < this.#longestDialCodeLength + 1; i++) {\n dialCode = phoneNumberRaw.substring(0, i);\n\n if (this.#defaultCountryData?.dialCode === dialCode) {\n foundCountry = this.#defaultCountryData;\n } else if (this.selectedCountry?.dialCode !== dialCode) {\n const dialCodeCountries = this.countries.filter(\n (country) => country.dialCode === dialCode,\n );\n\n if (dialCodeCountries.length > 0) {\n foundCountry =\n dialCodeCountries.find((country) => country.priority === 0) ??\n dialCodeCountries[0];\n // TODO: Refactor the logic in this method for readability.\n // eslint-disable-next-line max-depth\n if (\n foundCountry &&\n !this.#validateSupportedCountry(foundCountry)\n ) {\n foundCountry = undefined;\n }\n }\n }\n }\n }\n }\n\n if (foundCountry !== this.selectedCountry) {\n newCountry = foundCountry;\n }\n\n if (newCountry) {\n this.selectedCountry = newCountry;\n this.#changeDetector.markForCheck();\n return true;\n }\n\n return false;\n }\n\n #getDefaultCountryData(): SkyPhoneFieldCountry | undefined {\n return this.countries.find(\n (country) => country.iso2 === this.#_defaultCountry,\n );\n }\n\n #populateInputBoxHelpText(): void {\n if (this.inputBoxHostSvc && this.inputTemplateRef) {\n this.inputBoxHostSvc?.setHintText(\n this.#appFormat.formatText(\n this.#phoneNumberFormatHintTextTemplateString,\n this.#_selectedCountry?.exampleNumber,\n ),\n );\n }\n }\n\n #validateSupportedCountry(country: SkyPhoneFieldCountry): boolean {\n return (\n !this.supportedCountryISOs ||\n this.supportedCountryISOs.findIndex(\n (isoCode) => isoCode.toUpperCase() === country.iso2.toUpperCase(),\n ) >= 0\n );\n }\n}\n","@if (!inputBoxHostSvc) {\n <div class=\"sky-input-group sky-phone-field\" [@blockAnimationOnLoad]>\n <ng-container *ngTemplateOutlet=\"countryBtnTemplateRef\" />\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\" />\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplateRef\" />\n </div>\n}\n\n<ng-template #countryBtnTemplateRef>\n <div\n class=\"sky-input-group-btn sky-phone-field-country-btn\"\n [attr.data-sky-test-iso2]=\"selectedCountry?.iso2\"\n [attr.data-sky-test-name]=\"selectedCountry?.name\"\n >\n <button\n aria-live=\"polite\"\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n [attr.title]=\"\n ('skyux_phone_field_country_select_label' | skyLibResources) +\n ' ' +\n ('skyux_phone_field_country_selected_label'\n | skyLibResources: selectedCountry?.name)\n \"\n [attr.aria-label]=\"\n ('skyux_phone_field_country_select_label' | skyLibResources) +\n ' ' +\n ('skyux_phone_field_country_selected_label'\n | skyLibResources: selectedCountry?.name)\n \"\n [disabled]=\"countrySelectDisabled\"\n (click)=\"toggleCountrySearch(true)\"\n >\n <div\n class=\"sky-phone-field-flag iti__flag\"\n [ngClass]=\"'iti__' + selectedCountry?.iso2\"\n ></div>\n </button>\n </div>\n</ng-template>\n\n<ng-template #inputTemplateRef>\n @if (phoneInputShown) {\n <span\n class=\"sky-phone-field-container\"\n [@phoneInputAnimation]=\"phoneInputShown ? 'open' : 'closed'\"\n (@phoneInputAnimation.done)=\"phoneInputAnimationEnd($event)\"\n >\n <ng-content />\n </span>\n } @else if (countrySearchShown) {\n <span\n class=\"sky-phone-field-container\"\n [@countrySearchAnimation]=\"\n 'open' +\n ((themeSvc?.settingsChange | async)?.currentSettings?.theme?.name ===\n 'modern'\n ? '-modern'\n : '')\n \"\n (@countrySearchAnimation.done)=\"countrySearchAnimationEnd($event)\"\n >\n <div\n class=\"sky-phone-field-country-search\"\n [formGroup]=\"countrySearchForm\"\n >\n <sky-country-field\n formControlName=\"countrySearch\"\n [defaultCountry]=\"defaultCountry\"\n [hideSelectedCountryFlag]=\"true\"\n [includePhoneInfo]=\"true\"\n [supportedCountryISOs]=\"supportedCountryISOs\"\n (selectedCountryChange)=\"onCountrySelected($event)\"\n />\n </div>\n </span>\n }\n</ng-template>\n\n<ng-template #buttonsInsetTemplateRef>\n @if (countrySearchShown) {\n <div\n class=\"sky-input-group-btn sky-input-box-btn-inset sky-search-item-dismiss\"\n >\n <button\n class=\"sky-btn sky-phone-field-search-btn-dismiss\"\n type=\"button\"\n [attr.title]=\"\n 'skyux_phone_field_country_search_dismiss' | skyLibResources\n \"\n [ngClass]=\"{\n 'sky-btn-default':\n (themeSvc?.settingsChange | async)?.currentSettings?.theme?.name ===\n 'modern'\n }\"\n (click)=\"toggleCountrySearch(false)\"\n >\n <sky-icon\n *skyThemeIf=\"'default'\"\n icon=\"chevron-circle-left\"\n size=\"lg\"\n />\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"double-chevron-left\" size=\"2x\" />\n </button>\n </div>\n }\n</ng-template>\n","import {\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { PhoneNumberFormat, PhoneNumberUtil } from 'google-libphonenumber';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\n\n/**\n * Creates a button, search input, and text input for entering and validating\n * international phone numbers. Place this attribute on an `input` element, and wrap\n * that element in a `sky-phone-field` component. By default, the country selector\n * button displays a flag icon for the default country, and the phone number input\n * displays a sample of the correct phone number format. When users select the country\n * selector button, they expose the country search input, which is\n * [an autocomplete input](https://developer.blackbaud.com/skyux/components/autocomplete)\n * that allows them to select different countries. When users enter `+` followed by an\n * international dial code in the phone number input, the country automatically switches\n * to the country associated with the dial code.\n * @required\n */\n@Directive({\n selector: '[skyPhoneFieldInput]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: SkyPhoneFieldInputDirective,\n multi: true,\n },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SkyPhoneFieldInputDirective,\n multi: true,\n },\n ],\n})\nexport class SkyPhoneFieldInputDirective\n implements OnInit, OnDestroy, ControlValueAccessor, Validator\n{\n /**\n * Whether to disable the phone field on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.\n * To set the disabled state on reactive forms, use the `FormControl` instead.\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public set disabled(value: boolean) {\n if (this.#phoneFieldComponent) {\n this.#phoneFieldComponent.countrySelectDisabled = value;\n this.#adapterSvc?.setElementDisabledState(this.#elRef, value);\n }\n\n this.#_disabled = value;\n }\n\n public get disabled(): boolean {\n return this.#_disabled;\n }\n\n /**\n * Whether to prevent validation on the phone number input. For validation,\n * phone numbers are driven through the `ngModel` attribute that you specify on an\n * `input` element or on a `FormControl` in a reactive form. To prevent validation,\n * set this property to `true`.\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public skyPhoneFieldNoValidate = false;\n\n #_disabled = false;\n #_value = '';\n #control: AbstractControl | undefined;\n #ngUnsubscribe = new Subject<void>();\n #notifyChange: ((value: string) => void) | undefined;\n #notifyTouched: (() => void) | undefined;\n #phoneUtils = PhoneNumberUtil.getInstance();\n\n readonly #adapterSvc = inject(SkyPhoneFieldAdapterService, {\n host: true,\n optional: true,\n skipSelf: true,\n });\n\n readonly #elRef = inject(ElementRef);\n readonly #phoneFieldComponent = inject(SkyPhoneFieldComponent, {\n host: true,\n optional: true,\n });\n\n public ngOnInit(): void {\n if (!this.#phoneFieldComponent) {\n throw new Error(\n 'You must wrap the `skyPhoneFieldInput` directive within a ' +\n '`<sky-phone-field>` component!',\n );\n }\n\n this.#adapterSvc?.setElementType(this.#elRef);\n this.#adapterSvc?.addElementClass(this.#elRef, 'sky-form-control');\n\n this.#phoneFieldComponent?.selectedCountryChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n const value = this.#adapterSvc?.getInputValue(this.#elRef);\n this.#setValue(value);\n this.#notifyChange?.(this.#getValue());\n this.#notifyTouched?.();\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public registerOnChange(fn: (value: string) => void): void {\n this.#notifyChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.#notifyTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n this.#control ??= control;\n\n const value = control.value;\n\n if (!value || this.skyPhoneFieldNoValidate) {\n return null;\n }\n\n if (!this.#isValidPhoneNumber(value)) {\n return {\n skyPhoneField: {\n invalid: value,\n },\n };\n }\n\n return null;\n }\n\n public writeValue(value: unknown): void {\n const rawValue = typeof value === 'string' ? value : '';\n\n this.#phoneFieldComponent?.setCountryByDialCode(rawValue);\n this.#adapterSvc?.setElementValue(this.#elRef, rawValue);\n\n this.#setValue(rawValue);\n const newValue = this.#getValue();\n\n if (rawValue !== newValue) {\n // If the value is set before the control is initialized, wait for the\n // first cycle to complete before triggering a value change event.\n // (This occurs when the control is initialized with an unformatted value\n // but is formatted into a new value immediately in the `writeValue`\n // method.)\n if (!this.#control) {\n setTimeout(() => {\n this.#notifyChange?.(newValue);\n });\n } else {\n this.#notifyChange?.(newValue);\n }\n }\n }\n\n @HostListener('blur')\n protected onBlur(): void {\n this.#notifyTouched?.();\n }\n\n @HostListener('change')\n protected onChange(): void {\n const value = this.#adapterSvc?.getInputValue(this.#elRef);\n this.#setValue(value);\n this.#notifyChange?.(this.#getValue());\n }\n\n @HostListener('input')\n protected onInput(): void {\n const value = this.#adapterSvc?.getInputValue(this.#elRef);\n this.#phoneFieldComponent?.setCountryByDialCode(value);\n }\n\n #formatPhoneNumber(value: string | undefined): string | undefined {\n if (!value) {\n return;\n }\n\n const defaultCountry = this.#getDefaultCountry();\n const regionCode = this.#getRegionCode();\n const returnFormat = this.#phoneFieldComponent?.returnFormat;\n\n try {\n const phoneNumber = this.#phoneUtils.parseAndKeepRawInput(\n value,\n regionCode ?? defaultCountry,\n );\n\n if (this.#phoneUtils.isPossibleNumber(phoneNumber)) {\n switch (returnFormat) {\n case 'international':\n return this.#phoneUtils.format(\n phoneNumber,\n PhoneNumberFormat.INTERNATIONAL,\n );\n\n case 'national':\n return this.#phoneUtils.format(\n phoneNumber,\n PhoneNumberFormat.NATIONAL,\n );\n\n case 'default':\n default:\n return regionCode && regionCode !== defaultCountry\n ? this.#phoneUtils.format(\n phoneNumber,\n PhoneNumberFormat.INTERNATIONAL,\n )\n : this.#phoneUtils.format(\n phoneNumber,\n PhoneNumberFormat.NATIONAL,\n );\n }\n }\n } catch (err) {\n /* */\n }\n\n return;\n }\n\n #getDefaultCountry(): string | undefined {\n return this.#phoneFieldComponent?.defaultCountry;\n }\n\n #getRegionCode(): string | undefined {\n return this.#phoneFieldComponent?.selectedCountry?.iso2;\n }\n\n #getValue(): string {\n return this.#_value;\n }\n\n #isValidPhoneNumber(value: string): boolean {\n const defaultCountry = this.#getDefaultCountry();\n const regionCode = this.#getRegionCode() ?? defaultCountry;\n const allowExtensions = !!this.#phoneFieldComponent?.allowExtensions;\n\n try {\n const phoneNumber = this.#phoneUtils.parseAndKeepRawInput(\n value,\n regionCode,\n );\n\n if (!allowExtensions && phoneNumber.getExtension()) {\n return false;\n }\n\n return this.#phoneUtils.isValidNumberForRegion(phoneNumber, regionCode);\n } catch (e) {\n return false;\n }\n }\n\n #setValue(value: string | undefined): void {\n /* istanbul ignore else */\n if (value !== undefined) {\n const formatted = this.#formatPhoneNumber(value);\n this.#_value = formatted ?? value;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyCountryFieldModule } from '@skyux/lookup';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyPhoneFieldResourcesModule } from '../shared/sky-phone-field-resources.module';\n\nimport { SkyPhoneFieldInputDirective } from './phone-field-input.directive';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\n\n@NgModule({\n declarations: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SkyCountryFieldModule,\n SkyIconModule,\n SkyPhoneFieldResourcesModule,\n SkyThemeModule,\n ],\n exports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],\n})\nexport class SkyPhoneFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.SkyPhoneFieldAdapterService"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-phone-field.mjs","sources":["../../../../../libs/components/phone-field/src/lib/modules/shared/sky-phone-field-resources.module.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field-adapter.service.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.component.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.component.html","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field-input.directive.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.module.ts","../../../../../libs/components/phone-field/src/skyux-phone-field.ts"],"sourcesContent":["/* istanbul ignore file */\n\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-phone-field' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n SkyLibResourcesService,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_phone_field_country_search_dismiss: {\n message: 'Dismiss country search',\n },\n skyux_phone_field_country_search_label: {\n message: 'Dismiss country search',\n },\n skyux_phone_field_country_search_placeholder: {\n message: 'Search for a country',\n },\n skyux_phone_field_country_select_label: { message: 'Choose country.' },\n skyux_phone_field_country_selected_label: {\n message: '{0} is currently selected.',\n },\n skyux_phone_field_format_hint_text: { message: 'Example: {0}.' },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\nexport class SkyPhoneFieldResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string,\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyPhoneFieldResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyPhoneFieldResourcesModule {}\n","import {\n ElementRef,\n Injectable,\n OnDestroy,\n Renderer2,\n inject,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\n/**\n * Service for interacting with the DOM elements of the phone field.\n * @internal\n */\n@Injectable()\nexport class SkyPhoneFieldAdapterService implements OnDestroy {\n #ngUnsubscribe = new Subject<void>();\n #renderer = inject(Renderer2);\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public addElementClass(elementRef: ElementRef, className: string): void {\n this.#renderer.addClass(elementRef.nativeElement, className);\n }\n\n public getInputValue(elementRef: ElementRef): string | undefined {\n const el = elementRef.nativeElement as HTMLElement | null;\n\n if (el && 'value' in el) {\n return (el as HTMLInputElement).value;\n }\n\n /* istanbul ignore next: safety check */\n return undefined;\n }\n\n public setElementDisabledState(\n elementRef: ElementRef,\n disabled: boolean,\n ): void {\n this.#renderer.setProperty(elementRef.nativeElement, 'disabled', disabled);\n }\n\n public setElementType(elementRef: ElementRef): void {\n this.#renderer.setAttribute(elementRef.nativeElement, 'type', 'tel');\n }\n\n public setElementValue(elementRef: ElementRef, value: string): void {\n this.#renderer.setProperty(elementRef.nativeElement, 'value', value);\n }\n\n public focusCountrySearchElement(el: Element): void {\n const input: HTMLElement | null = el.querySelector('textarea');\n input?.focus();\n }\n\n public focusPhoneInput(el: Element): void {\n const input: HTMLElement | null = el.querySelector(\n '.sky-phone-field-container input',\n );\n input?.focus();\n }\n}\n","import {\n AnimationEvent,\n animate,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n SkipSelf,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { SkyAppFormat } from '@skyux/core';\nimport { SkyInputBoxHostService } from '@skyux/forms';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport {\n SKY_COUNTRY_FIELD_CONTEXT,\n SkyCountryFieldCountry,\n} from '@skyux/lookup';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport {\n PhoneNumberFormat,\n PhoneNumberType,\n PhoneNumberUtil,\n} from 'google-libphonenumber';\nimport 'intl-tel-input';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldCountry } from './types/country';\nimport { SkyPhoneFieldNumberReturnFormat } from './types/number-return-format';\n\nconst DEFAULT_COUNTRY_CODE = 'us';\n\n// NOTE: The no-op animation is here in order to block the input's \"fade in\" animation\n// from firing on initial load. For more information on this technique you can see\n// https://www.bennadel.com/blog/3417-using-no-op-transitions-to-prevent-animation-during-the-initial-render-of-ngfor-in-angular-5-2-6.htm\n@Component({\n selector: 'sky-phone-field',\n templateUrl: './phone-field.component.html',\n styleUrls: ['./phone-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n SkyPhoneFieldAdapterService,\n // Prevents the embedded country field component from changing its behavior based on\n // being inside an input box. The phone field itself will handle the required changes\n // for input box.\n {\n provide: SkyInputBoxHostService,\n useValue: undefined,\n },\n {\n provide: SKY_COUNTRY_FIELD_CONTEXT,\n useValue: { showPlaceholderText: true },\n },\n ],\n animations: [\n trigger('blockAnimationOnLoad', [transition(':enter', [])]),\n trigger('countrySearchAnimation', [\n transition('void => open', [\n style({\n opacity: 0,\n width: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n width: '*',\n }),\n ),\n ]),\n transition('open => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n width: 0,\n }),\n ),\n ]),\n transition('void => open-modern', [\n style({\n opacity: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n }),\n ),\n ]),\n transition('open-modern => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n }),\n ),\n ]),\n ]),\n trigger('phoneInputAnimation', [\n transition('void => open', [\n style({\n opacity: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n }),\n ),\n ]),\n transition('open => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n }),\n ),\n ]),\n ]),\n ],\n})\nexport class SkyPhoneFieldComponent implements OnDestroy, OnInit {\n /**\n * Whether phone number extensions are allowed.\n * @default true\n */\n @Input()\n public set allowExtensions(value: boolean | undefined) {\n this.#_allowExtensions = value !== false;\n }\n\n public get allowExtensions(): boolean {\n return this.#_allowExtensions;\n }\n\n #_allowExtensions = true;\n\n /**\n * The\n * [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)\n * country code for the default country. The country selector button displays a flag\n * icon for this default country until users select a different country.\n * @default \"us\"\n */\n @Input()\n public set defaultCountry(value: string | undefined) {\n if (value !== this.#_defaultCountry) {\n value ??= DEFAULT_COUNTRY_CODE;\n this.#_defaultCountry = value.toLocaleLowerCase();\n this.#defaultCountryData = this.#getDefaultCountryData();\n }\n }\n\n public get defaultCountry(): string {\n return this.#_defaultCountry;\n }\n\n /**\n * The format for validated phone numbers.\n * Options include: `\"default\"`, `\"international\"`, and `\"national\"`.\n * @default \"default\"\n */\n @Input()\n public get returnFormat(): SkyPhoneFieldNumberReturnFormat {\n return this.#_returnFormat;\n }\n\n public set returnFormat(value: SkyPhoneFieldNumberReturnFormat | undefined) {\n this.#_returnFormat = value || 'default';\n }\n\n #_returnFormat: SkyPhoneFieldNumberReturnFormat = 'default';\n\n /**\n * The [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)\n * country codes for the countries that users can select. By default, all countries are available.\n */\n @Input()\n public supportedCountryISOs: string[] | undefined;\n\n /**\n * Emits a `SkyPhoneFieldCountry` object when the selected country in the country search\n * input changes.\n */\n @Output()\n public selectedCountryChange = new EventEmitter<SkyPhoneFieldCountry>();\n\n public countries: SkyPhoneFieldCountry[];\n\n public countrySelectDisabled = false;\n\n public countrySearchShown = false;\n\n public phoneInputShown = true;\n\n public countrySearchForm: FormGroup<{\n countrySearch: FormControl<SkyCountryFieldCountry | undefined | null>;\n }>;\n\n /**\n * The currently selected country to validate against.\n */\n @Input()\n public set selectedCountry(newCountry: SkyPhoneFieldCountry | undefined) {\n if (\n newCountry &&\n (!this.#_selectedCountry ||\n this.#_selectedCountry.iso2 !== newCountry.iso2)\n ) {\n this.#_selectedCountry = this.countries.find(\n (country) => country.iso2 === newCountry.iso2,\n );\n\n if (this.#_selectedCountry && !this.#_selectedCountry.exampleNumber) {\n const numberObj = this.#phoneUtils.getExampleNumberForType(\n newCountry.iso2,\n PhoneNumberType.FIXED_LINE,\n );\n\n this.#_selectedCountry.exampleNumber = this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL,\n );\n }\n\n this.#populateInputBoxHelpText();\n this.selectedCountryChange.emit(this.#_selectedCountry);\n }\n }\n\n public get selectedCountry(): SkyPhoneFieldCountry | undefined {\n return this.#_selectedCountry;\n }\n\n @ViewChild('inputTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public inputTemplateRef: TemplateRef<unknown> | undefined;\n\n @ViewChild('countryBtnTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public countryBtnTemplateRef: TemplateRef<unknown> | undefined;\n\n @ViewChild('buttonsInsetTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public buttonsInsetTemplateRef: TemplateRef<unknown> | undefined;\n\n #defaultCountryData: SkyPhoneFieldCountry | undefined;\n\n #phoneInputAnimationTriggered = false;\n\n #phoneNumberFormatHintTextTemplateString = '';\n\n #phoneUtils = PhoneNumberUtil.getInstance();\n\n #longestDialCodeLength = 0;\n\n #_defaultCountry = DEFAULT_COUNTRY_CODE;\n\n #_selectedCountry: SkyPhoneFieldCountry | undefined;\n\n #countrySearchFormControl = new FormControl<\n SkyCountryFieldCountry | undefined | null\n >(undefined);\n\n #formBuilder: FormBuilder;\n #adapterService: SkyPhoneFieldAdapterService;\n readonly #appFormat = inject(SkyAppFormat);\n #changeDetector: ChangeDetectorRef;\n #ngUnsubscribe = new Subject<void>();\n readonly #resourceSvc = inject(SkyLibResourcesService);\n\n constructor(\n formBuilder: FormBuilder,\n adapterService: SkyPhoneFieldAdapterService,\n changeDetector: ChangeDetectorRef,\n @Optional() public themeSvc?: SkyThemeService,\n @Optional() @SkipSelf() public inputBoxHostSvc?: SkyInputBoxHostService,\n ) {\n this.#formBuilder = formBuilder;\n this.#adapterService = adapterService;\n this.#changeDetector = changeDetector;\n /**\n * The json functions here ensures that we get a copy of the array and not the global original.\n * This ensures that multiple instances of the component don't overwrite the original data.\n *\n * We must type the window object as any here as the intl-tel-input library adds its object\n * to the main window object.\n */\n this.countries = JSON.parse(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n JSON.stringify((window as any).intlTelInputGlobals.getCountryData()),\n );\n\n for (const country of this.countries) {\n country.dialCode = '+' + country.dialCode;\n\n if (country.dialCode.length > this.#longestDialCodeLength) {\n this.#longestDialCodeLength = country.dialCode.length;\n }\n }\n\n this.#defaultCountryData = this.#getDefaultCountryData();\n\n this.countrySearchForm = this.#formBuilder.group({\n countrySearch: this.#countrySearchFormControl,\n });\n\n this.#resourceSvc\n .getString('skyux_phone_field_format_hint_text')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((templateString) => {\n this.#phoneNumberFormatHintTextTemplateString = templateString;\n this.#populateInputBoxHelpText();\n });\n }\n\n public ngOnInit(): void {\n // The timeout here is needed to avoid a change before checked error when a user specifies\n // a selected country on initialization of the component.\n setTimeout(() => {\n if (this.inputBoxHostSvc && this.inputTemplateRef) {\n this.inputBoxHostSvc.populate({\n inputTemplate: this.inputTemplateRef,\n buttonsInsetTemplate: this.buttonsInsetTemplateRef,\n buttonsLeftTemplate: this.countryBtnTemplateRef,\n });\n }\n\n this.selectedCountry ??= this.#defaultCountryData;\n\n this.#changeDetector.markForCheck();\n }, 0);\n\n this.#countrySearchFormControl.valueChanges.subscribe(\n (newValue: SkyCountryFieldCountry | undefined | null) => {\n if (newValue?.iso2 !== this.selectedCountry?.iso2) {\n this.selectedCountry = newValue || undefined;\n }\n },\n );\n }\n\n public ngOnDestroy(): void {\n this.selectedCountryChange.complete();\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n /**\n * Sets the country to validate against based on the county's iso2 code.\n * @param countryCode The International Organization for Standardization's two-letter code\n * for the default country.\n * @internal\n */\n public onCountrySelected(newCountry: SkyCountryFieldCountry): void {\n if (newCountry) {\n this.selectedCountry = this.countries.find(\n (countryInfo) => countryInfo.iso2 === newCountry.iso2,\n );\n this.toggleCountrySearch(false);\n }\n }\n\n public toggleCountrySearch(showSearch: boolean): void {\n this.#phoneInputAnimationTriggered = true;\n\n if (showSearch) {\n this.phoneInputShown = false;\n } else {\n this.countrySearchShown = false;\n\n this.#countrySearchFormControl.setValue(undefined);\n }\n\n if (this.inputBoxHostSvc && this.inputTemplateRef) {\n this.inputBoxHostSvc.setHintTextHidden(showSearch);\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public countrySearchAnimationEnd(e: AnimationEvent): void {\n if (!this.countrySearchShown) {\n this.phoneInputShown = true;\n } else {\n this.#adapterService.focusCountrySearchElement(e.element);\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public phoneInputAnimationEnd(e: AnimationEvent): void {\n if (!this.phoneInputShown) {\n this.countrySearchShown = true;\n } else {\n if (this.#phoneInputAnimationTriggered) {\n this.#adapterService.focusPhoneInput(e.element);\n this.#phoneInputAnimationTriggered = false;\n }\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public setCountryByDialCode(phoneNumberRaw: string | undefined): boolean {\n if (!phoneNumberRaw || !phoneNumberRaw.startsWith('+')) {\n return false;\n }\n\n let dialCode = '';\n let foundCountry: SkyPhoneFieldCountry | undefined;\n let newCountry: SkyPhoneFieldCountry | undefined;\n\n try {\n const phoneNumberParsed =\n this.#phoneUtils.parseAndKeepRawInput(phoneNumberRaw);\n const regionCode =\n this.#phoneUtils.getRegionCodeForNumber(phoneNumberParsed);\n foundCountry = this.countries.find(\n (country) => country.iso2.toUpperCase() === regionCode?.toUpperCase(),\n );\n\n if (foundCountry && !this.#validateSupportedCountry(foundCountry)) {\n foundCountry = undefined;\n }\n } catch (_) {\n if (\n !this.selectedCountry?.dialCode ||\n !phoneNumberRaw.startsWith(`${this.selectedCountry?.dialCode}`)\n ) {\n for (let i = 1; i < this.#longestDialCodeLength + 1; i++) {\n dialCode = phoneNumberRaw.substring(0, i);\n\n if (this.#defaultCountryData?.dialCode === dialCode) {\n foundCountry = this.#defaultCountryData;\n } else if (this.selectedCountry?.dialCode !== dialCode) {\n const dialCodeCountries = this.countries.filter(\n (country) => country.dialCode === dialCode,\n );\n\n if (dialCodeCountries.length > 0) {\n foundCountry =\n dialCodeCountries.find((country) => country.priority === 0) ??\n dialCodeCountries[0];\n // TODO: Refactor the logic in this method for readability.\n // eslint-disable-next-line max-depth\n if (\n foundCountry &&\n !this.#validateSupportedCountry(foundCountry)\n ) {\n foundCountry = undefined;\n }\n }\n }\n }\n }\n }\n\n if (foundCountry !== this.selectedCountry) {\n newCountry = foundCountry;\n }\n\n if (newCountry) {\n this.selectedCountry = newCountry;\n this.#changeDetector.markForCheck();\n return true;\n }\n\n return false;\n }\n\n #getDefaultCountryData(): SkyPhoneFieldCountry | undefined {\n return this.countries.find(\n (country) => country.iso2 === this.#_defaultCountry,\n );\n }\n\n #populateInputBoxHelpText(): void {\n if (this.inputBoxHostSvc && this.inputTemplateRef) {\n this.inputBoxHostSvc?.setHintText(\n this.#appFormat.formatText(\n this.#phoneNumberFormatHintTextTemplateString,\n this.#_selectedCountry?.exampleNumber,\n ),\n );\n }\n }\n\n #validateSupportedCountry(country: SkyPhoneFieldCountry): boolean {\n return (\n !this.supportedCountryISOs ||\n this.supportedCountryISOs.findIndex(\n (isoCode) => isoCode.toUpperCase() === country.iso2.toUpperCase(),\n ) >= 0\n );\n }\n}\n","@if (!inputBoxHostSvc) {\n <div class=\"sky-input-group sky-phone-field\" [@blockAnimationOnLoad]>\n <ng-container *ngTemplateOutlet=\"countryBtnTemplateRef\" />\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\" />\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplateRef\" />\n </div>\n}\n\n<ng-template #countryBtnTemplateRef>\n <div\n class=\"sky-input-group-btn sky-phone-field-country-btn\"\n [attr.data-sky-test-iso2]=\"selectedCountry?.iso2\"\n [attr.data-sky-test-name]=\"selectedCountry?.name\"\n >\n <button\n aria-live=\"polite\"\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n [attr.title]=\"\n ('skyux_phone_field_country_select_label' | skyLibResources) +\n ' ' +\n ('skyux_phone_field_country_selected_label'\n | skyLibResources: selectedCountry?.name)\n \"\n [attr.aria-label]=\"\n ('skyux_phone_field_country_select_label' | skyLibResources) +\n ' ' +\n ('skyux_phone_field_country_selected_label'\n | skyLibResources: selectedCountry?.name)\n \"\n [disabled]=\"countrySelectDisabled\"\n (click)=\"toggleCountrySearch(true)\"\n >\n <div\n class=\"sky-phone-field-flag iti__flag\"\n [ngClass]=\"'iti__' + selectedCountry?.iso2\"\n ></div>\n </button>\n </div>\n</ng-template>\n\n<ng-template #inputTemplateRef>\n @if (phoneInputShown) {\n <span\n class=\"sky-phone-field-container\"\n [@phoneInputAnimation]=\"phoneInputShown ? 'open' : 'closed'\"\n (@phoneInputAnimation.done)=\"phoneInputAnimationEnd($event)\"\n >\n <ng-content />\n </span>\n } @else if (countrySearchShown) {\n <span\n class=\"sky-phone-field-container\"\n [@countrySearchAnimation]=\"\n 'open' +\n ((themeSvc?.settingsChange | async)?.currentSettings?.theme?.name ===\n 'modern'\n ? '-modern'\n : '')\n \"\n (@countrySearchAnimation.done)=\"countrySearchAnimationEnd($event)\"\n >\n <div\n class=\"sky-phone-field-country-search\"\n [formGroup]=\"countrySearchForm\"\n >\n <sky-country-field\n formControlName=\"countrySearch\"\n [defaultCountry]=\"defaultCountry\"\n [hideSelectedCountryFlag]=\"true\"\n [includePhoneInfo]=\"true\"\n [supportedCountryISOs]=\"supportedCountryISOs\"\n (selectedCountryChange)=\"onCountrySelected($event)\"\n />\n </div>\n </span>\n }\n</ng-template>\n\n<ng-template #buttonsInsetTemplateRef>\n @if (countrySearchShown) {\n <div\n class=\"sky-input-group-btn sky-input-box-btn-inset sky-search-item-dismiss\"\n >\n <button\n class=\"sky-btn sky-phone-field-search-btn-dismiss\"\n type=\"button\"\n [attr.title]=\"\n 'skyux_phone_field_country_search_dismiss' | skyLibResources\n \"\n [ngClass]=\"{\n 'sky-btn-default':\n (themeSvc?.settingsChange | async)?.currentSettings?.theme?.name ===\n 'modern'\n }\"\n (click)=\"toggleCountrySearch(false)\"\n >\n <sky-icon\n *skyThemeIf=\"'default'\"\n icon=\"chevron-circle-left\"\n size=\"lg\"\n />\n <sky-icon *skyThemeIf=\"'modern'\" icon=\"double-chevron-left\" size=\"2x\" />\n </button>\n </div>\n }\n</ng-template>\n","import {\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport { PhoneNumberFormat, PhoneNumberUtil } from 'google-libphonenumber';\nimport { Subject, take, takeUntil } from 'rxjs';\n\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\n\n/**\n * Creates a button, search input, and text input for entering and validating\n * international phone numbers. Place this attribute on an `input` element, and wrap\n * that element in a `sky-phone-field` component. By default, the country selector\n * button displays a flag icon for the default country, and the phone number input\n * displays a sample of the correct phone number format. When users select the country\n * selector button, they expose the country search input, which is\n * [an autocomplete input](https://developer.blackbaud.com/skyux/components/autocomplete)\n * that allows them to select different countries. When users enter `+` followed by an\n * international dial code in the phone number input, the country automatically switches\n * to the country associated with the dial code.\n * @required\n */\n@Directive({\n selector: '[skyPhoneFieldInput]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: SkyPhoneFieldInputDirective,\n multi: true,\n },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SkyPhoneFieldInputDirective,\n multi: true,\n },\n ],\n})\nexport class SkyPhoneFieldInputDirective\n implements OnInit, OnDestroy, ControlValueAccessor, Validator\n{\n /**\n * Whether to disable the phone field on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.\n * To set the disabled state on reactive forms, use the `FormControl` instead.\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public set disabled(value: boolean) {\n if (this.#phoneFieldComponent) {\n this.#phoneFieldComponent.countrySelectDisabled = value;\n this.#adapterSvc?.setElementDisabledState(this.#elRef, value);\n }\n\n this.#_disabled = value;\n }\n\n public get disabled(): boolean {\n return this.#_disabled;\n }\n\n /**\n * Whether to prevent validation on the phone number input. For validation,\n * phone numbers are driven through the `ngModel` attribute that you specify on an\n * `input` element or on a `FormControl` in a reactive form. To prevent validation,\n * set this property to `true`.\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public skyPhoneFieldNoValidate = false;\n\n #_disabled = false;\n #_value = '';\n #control: AbstractControl | undefined;\n #ngUnsubscribe = new Subject<void>();\n #notifyChange: ((value: string) => void) | undefined;\n #notifyTouched: (() => void) | undefined;\n #phoneUtils = PhoneNumberUtil.getInstance();\n\n readonly #adapterSvc = inject(SkyPhoneFieldAdapterService, {\n host: true,\n optional: true,\n skipSelf: true,\n });\n\n readonly #elRef = inject(ElementRef);\n readonly #phoneFieldComponent = inject(SkyPhoneFieldComponent, {\n host: true,\n optional: true,\n });\n\n public ngOnInit(): void {\n if (!this.#phoneFieldComponent) {\n throw new Error(\n 'You must wrap the `skyPhoneFieldInput` directive within a ' +\n '`<sky-phone-field>` component!',\n );\n }\n\n this.#adapterSvc?.setElementType(this.#elRef);\n this.#adapterSvc?.addElementClass(this.#elRef, 'sky-form-control');\n\n this.#phoneFieldComponent?.selectedCountryChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n const value = this.#adapterSvc?.getInputValue(this.#elRef);\n this.#setValue(value);\n this.#control?.updateValueAndValidity();\n });\n\n this.#phoneFieldComponent.countrySearchForm\n .get('countrySearch')\n ?.valueChanges.pipe(takeUntil(this.#ngUnsubscribe), take(1))\n .subscribe(() => {\n this.#control?.markAsDirty();\n this.#control?.markAsTouched();\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public registerOnChange(fn: (value: string) => void): void {\n this.#notifyChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.#notifyTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n this.#control ??= control;\n\n const value = control.value;\n\n if (!value || this.skyPhoneFieldNoValidate) {\n return null;\n }\n\n if (!this.#isValidPhoneNumber(value)) {\n return {\n skyPhoneField: {\n invalid: value,\n },\n };\n }\n\n return null;\n }\n\n public writeValue(value: unknown): void {\n const rawValue = typeof value === 'string' ? value : '';\n\n this.#phoneFieldComponent?.setCountryByDialCode(rawValue);\n this.#adapterSvc?.setElementValue(this.#elRef, rawValue);\n\n this.#setValue(rawValue);\n const newValue = this.#getValue();\n\n if (rawValue !== newValue) {\n // If the value is set before the control is initialized, wait for the\n // first cycle to complete before triggering a value change event.\n // (This occurs when the control is initialized with an unformatted value\n // but is formatted into a new value immediately in the `writeValue`\n // method.)\n if (!this.#control) {\n setTimeout(() => {\n this.#notifyChange?.(newValue);\n });\n } else {\n this.#notifyChange?.(newValue);\n }\n }\n }\n\n @HostListener('blur')\n protected onBlur(): void {\n this.#notifyTouched?.();\n }\n\n @HostListener('change')\n protected onChange(): void {\n const value = this.#adapterSvc?.getInputValue(this.#elRef);\n this.#setValue(value);\n this.#notifyChange?.(this.#getValue());\n }\n\n @HostListener('input')\n protected onInput(): void {\n const value = this.#adapterSvc?.getInputValue(this.#elRef);\n this.#phoneFieldComponent?.setCountryByDialCode(value);\n }\n\n #formatPhoneNumber(value: string | undefined): string | undefined {\n if (!value) {\n return;\n }\n\n const defaultCountry = this.#getDefaultCountry();\n const regionCode = this.#getRegionCode();\n const returnFormat = this.#phoneFieldComponent?.returnFormat;\n\n try {\n const phoneNumber = this.#phoneUtils.parseAndKeepRawInput(\n value,\n regionCode ?? defaultCountry,\n );\n\n if (this.#phoneUtils.isPossibleNumber(phoneNumber)) {\n switch (returnFormat) {\n case 'international':\n return this.#phoneUtils.format(\n phoneNumber,\n PhoneNumberFormat.INTERNATIONAL,\n );\n\n case 'national':\n return this.#phoneUtils.format(\n phoneNumber,\n PhoneNumberFormat.NATIONAL,\n );\n\n case 'default':\n default:\n return regionCode && regionCode !== defaultCountry\n ? this.#phoneUtils.format(\n phoneNumber,\n PhoneNumberFormat.INTERNATIONAL,\n )\n : this.#phoneUtils.format(\n phoneNumber,\n PhoneNumberFormat.NATIONAL,\n );\n }\n }\n } catch (err) {\n /* */\n }\n\n return;\n }\n\n #getDefaultCountry(): string | undefined {\n return this.#phoneFieldComponent?.defaultCountry;\n }\n\n #getRegionCode(): string | undefined {\n return this.#phoneFieldComponent?.selectedCountry?.iso2;\n }\n\n #getValue(): string {\n return this.#_value;\n }\n\n #isValidPhoneNumber(value: string): boolean {\n const defaultCountry = this.#getDefaultCountry();\n const regionCode = this.#getRegionCode() ?? defaultCountry;\n const allowExtensions = !!this.#phoneFieldComponent?.allowExtensions;\n\n try {\n const phoneNumber = this.#phoneUtils.parseAndKeepRawInput(\n value,\n regionCode,\n );\n\n if (!allowExtensions && phoneNumber.getExtension()) {\n return false;\n }\n\n return this.#phoneUtils.isValidNumberForRegion(phoneNumber, regionCode);\n } catch (e) {\n return false;\n }\n }\n\n #setValue(value: string | undefined): void {\n /* istanbul ignore else */\n if (value !== undefined) {\n const formatted = this.#formatPhoneNumber(value);\n this.#_value = formatted ?? value;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyCountryFieldModule } from '@skyux/lookup';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyPhoneFieldResourcesModule } from '../shared/sky-phone-field-resources.module';\n\nimport { SkyPhoneFieldInputDirective } from './phone-field-input.directive';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\n\n@NgModule({\n declarations: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SkyCountryFieldModule,\n SkyIconModule,\n SkyPhoneFieldResourcesModule,\n SkyThemeModule,\n ],\n exports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],\n})\nexport class SkyPhoneFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.SkyPhoneFieldAdapterService"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/phone-field",
3
- "version": "10.41.2",
3
+ "version": "10.41.3",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -42,15 +42,15 @@
42
42
  "@angular/core": "^17.3.4",
43
43
  "@angular/forms": "^17.3.4",
44
44
  "@angular/platform-browser": "^17.3.4",
45
- "@skyux-sdk/testing": "10.41.2",
46
- "@skyux/core": "10.41.2",
47
- "@skyux/forms": "10.41.2",
48
- "@skyux/i18n": "10.41.2",
49
- "@skyux/lookup": "10.41.2",
50
- "@skyux/theme": "10.41.2"
45
+ "@skyux-sdk/testing": "10.41.3",
46
+ "@skyux/core": "10.41.3",
47
+ "@skyux/forms": "10.41.3",
48
+ "@skyux/i18n": "10.41.3",
49
+ "@skyux/lookup": "10.41.3",
50
+ "@skyux/theme": "10.41.3"
51
51
  },
52
52
  "dependencies": {
53
- "@skyux/icon": "10.41.2",
53
+ "@skyux/icon": "10.41.3",
54
54
  "google-libphonenumber": "3.2.34",
55
55
  "intl-tel-input": "19.5.5",
56
56
  "tslib": "^2.6.2"