@skyux/phone-field 14.0.0 → 14.0.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-phone-field.mjs","sources":["../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field-adapter.service.ts","../../../../../libs/components/phone-field/src/lib/modules/shared/sky-phone-field-resources.module.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/clone-country-data.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":["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","/* istanbul ignore file */\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 SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\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 'FR-CA': {\n skyux_phone_field_country_search_dismiss: {\n message: 'Omettre la recherche du pays',\n },\n skyux_phone_field_country_search_label: {\n message: 'Omettre la recherche du pays',\n },\n skyux_phone_field_country_search_placeholder: {\n message: 'Rechercher un pays',\n },\n skyux_phone_field_country_select_label: { message: 'Choisissez un pays.' },\n skyux_phone_field_country_selected_label: {\n message: '{0} est actuellement sélectionné.',\n },\n skyux_phone_field_format_hint_text: { message: 'Exemple : {0}.' },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyPhoneFieldResourcesModule {}\n","import { type Country } from 'intl-tel-input/data';\n\nimport type { SkyPhoneFieldCountry } from './types/country';\n\n/**\n * Clone the country data for each component instance to avoid overwriting\n * the global country data.\n */\nexport function cloneCountryData(\n data: Country[],\n locales: Intl.LocalesArgument,\n): SkyPhoneFieldCountry[] {\n const clone = [...data];\n const displayNames = new Intl.DisplayNames(locales, { type: 'region' });\n\n return clone.map((country) => {\n const mapped: SkyPhoneFieldCountry = {\n iso2: country.iso2,\n dialCode: country.dialCode,\n name:\n country.name ||\n displayNames.of(country.iso2.toUpperCase()) ||\n /* istanbul ignore next */ '',\n priority: country.priority,\n };\n\n if (country.areaCodes) {\n mapped.areaCodes = [...country.areaCodes];\n }\n\n return mapped;\n });\n}\n","import { coerceStringArray } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\nimport {\n AfterRenderRef,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Injector,\n OnDestroy,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { SkyAppFormat } from '@skyux/core';\nimport { SkyInputBoxHostService } from '@skyux/forms';\nimport { SkyAppLocaleProvider, SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport {\n SKY_COUNTRY_FIELD_CONTEXT,\n SkyCountryFieldCountry,\n SkyCountryFieldModule,\n} from '@skyux/lookup';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport {\n PhoneNumberFormat,\n PhoneNumberType,\n PhoneNumberUtil,\n} from 'google-libphonenumber';\nimport intlTelInput from 'intl-tel-input';\nimport { Subject, map, takeUntil } from 'rxjs';\n\nimport { SkyPhoneFieldResourcesModule } from '../shared/sky-phone-field-resources.module';\n\nimport { cloneCountryData } from './clone-country-data';\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@Component({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n SkyCountryFieldModule,\n SkyIconModule,\n SkyPhoneFieldResourcesModule,\n SkyThemeModule,\n ],\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: { inPhoneField: true },\n },\n ],\n})\nexport class SkyPhoneFieldComponent implements OnDestroy {\n /**\n * Whether phone number extensions are allowed.\n * @default true\n */\n public readonly allowExtensions = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\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 public readonly defaultCountry = input<string, unknown>(\n DEFAULT_COUNTRY_CODE,\n {\n transform: (value) => String(value || DEFAULT_COUNTRY_CODE).toLowerCase(),\n },\n );\n\n /**\n * The format for validated phone numbers.\n * Options include: `\"default\"`, `\"international\"`, and `\"national\"`.\n * @default \"default\"\n */\n public readonly returnFormat =\n input<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 public readonly supportedCountryISOs = input<string[], unknown>([], {\n transform: coerceStringArray,\n });\n\n /**\n * Emits a `SkyPhoneFieldCountry` object when the selected country in the country search\n * input changes.\n */\n public readonly selectedCountryChange = output<SkyPhoneFieldCountry>();\n\n public readonly countries = computed<SkyPhoneFieldCountry[]>(() => {\n const countries = cloneCountryData(\n intlTelInput.getCountryData(),\n this.#locale(),\n );\n\n for (const country of countries) {\n country.dialCode = '+' + country.dialCode;\n }\n return countries;\n });\n\n public readonly countrySelectDisabled = signal(false);\n\n public readonly countrySearchShown = signal(false);\n\n public countrySearchForm: FormGroup<{\n countrySearch: FormControl<SkyCountryFieldCountry | undefined | null>;\n }>;\n\n public readonly inputBoxHostSvc = inject(SkyInputBoxHostService, {\n optional: true,\n skipSelf: true,\n });\n\n /**\n * The currently selected country to validate against.\n */\n public readonly selectedCountry = model<SkyPhoneFieldCountry | undefined>();\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 readonly #defaultCountryData = computed(() => {\n const defaultCountry = this.defaultCountry();\n return this.countries().find((country) => country.iso2 === defaultCountry);\n });\n\n #focusPhoneInputAfterToggle = false;\n\n #phoneNumberFormatHintTextTemplateString = '';\n\n #phoneUtils = PhoneNumberUtil.getInstance();\n\n readonly #longestDialCodeLength = computed(() => {\n const countries = this.countries();\n return countries\n .map((country) => Number(country.dialCode?.length))\n .filter(Boolean)\n .reduce(\n (max, dialCodeLength) => (dialCodeLength > max ? dialCodeLength : max),\n 0,\n );\n });\n\n readonly #selectedCountryData = computed(() => {\n const selected = this.selectedCountry();\n\n return selected\n ? this.countries().find((c) => c.iso2 === selected.iso2)\n : undefined;\n });\n\n #countrySearchFormControl = new FormControl<\n SkyCountryFieldCountry | undefined | null\n >(undefined);\n\n #afterRenderRef: AfterRenderRef | undefined;\n #countryFlagFocusListenerFn: (() => void) | undefined;\n #dismissCountrySearchFocusListenerFn: (() => void) | undefined;\n\n readonly #appFormat = inject(SkyAppFormat);\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #injector = inject(Injector);\n readonly #ngUnsubscribe = new Subject<void>();\n readonly #resourceSvc = inject(SkyLibResourcesService);\n readonly #elementRef = inject(ElementRef<HTMLElement>);\n readonly #renderer = inject(Renderer2);\n readonly #localeProvider = inject(SkyAppLocaleProvider);\n readonly #locale = toSignal(\n this.#localeProvider.getLocaleInfo().pipe(map((loc) => loc.locale)),\n {\n initialValue: this.#localeProvider.defaultLocale,\n },\n );\n\n constructor() {\n this.countrySearchForm = new FormGroup({\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 let previousIso: string | undefined;\n\n effect(() => {\n const country = this.#selectedCountryData();\n\n if (country && !country.exampleNumber) {\n const numberObj = this.#phoneUtils.getExampleNumberForType(\n country.iso2,\n PhoneNumberType.FIXED_LINE,\n );\n\n country.exampleNumber = this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL,\n );\n }\n\n this.#populateInputBoxHelpText();\n\n // Only emit when the selected country actually changes, not when locale\n // changes cause #selectedCountryData to return a new object reference.\n if (country && country.iso2 !== previousIso) {\n this.selectedCountryChange.emit(country);\n }\n\n previousIso = country?.iso2;\n });\n\n // Defer initial setup to avoid ExpressionChangedAfterItHasBeenCheckedError\n // when a selected country is set during component initialization.\n afterNextRender(() => {\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.update(\n (value) => value ?? this.#defaultCountryData(),\n );\n\n this.#changeDetector.markForCheck();\n });\n\n this.#countrySearchFormControl.valueChanges\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((newValue: SkyCountryFieldCountry | undefined | null) => {\n if (newValue && newValue.iso2 !== this.selectedCountry()?.iso2) {\n this.selectedCountry.set(newValue);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n\n this.#afterRenderRef?.destroy();\n this.#countryFlagFocusListenerFn?.();\n this.#dismissCountrySearchFocusListenerFn?.();\n }\n\n /**\n * Sets the country to validate against based on the county's iso2 code.\n * @param newCountry 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.set(\n this.countries().find(\n (countryInfo) => countryInfo.iso2 === newCountry.iso2,\n ),\n );\n\n this.#focusPhoneInputAfterToggle = true;\n this.toggleCountrySearch(false);\n }\n }\n\n public toggleCountrySearch(showSearch: boolean): void {\n if (showSearch === this.countrySearchShown()) {\n return;\n }\n\n if (!showSearch) {\n this.#countrySearchFormControl.setValue(undefined);\n }\n\n this.countrySearchShown.set(showSearch);\n\n if (this.inputBoxHostSvc && this.inputTemplateRef) {\n this.inputBoxHostSvc.setHintTextHidden(showSearch);\n }\n\n this.#afterRenderRef?.destroy();\n this.#afterRenderRef = afterNextRender(\n () => {\n if (this.countrySearchShown()) {\n this.#focusCountrySearch();\n } else {\n this.#handlePhoneInputShown();\n }\n },\n { injector: this.#injector },\n );\n }\n\n // TODO: remove this if no longer needed after a scalable focus monitor service is implemented\n public onCountryFieldFocusout({ relatedTarget }: FocusEvent): void {\n if (this.inputBoxHostSvc && relatedTarget) {\n if (!this.inputBoxHostSvc.focusIsInInput(relatedTarget)) {\n this.toggleCountrySearch(false);\n }\n } else {\n if (!this.#elementRef.nativeElement.contains(relatedTarget)) {\n this.toggleCountrySearch(false);\n }\n }\n }\n\n #focusCountrySearch(): void {\n this.#queryElement('textarea')?.focus();\n\n const countryFlagButton = this.#queryElement(\n 'button.sky-phone-field-country-select-btn',\n );\n\n const dismissCountrySearchButton = this.#queryElement(\n 'button.sky-phone-field-search-btn-dismiss',\n );\n\n if (countryFlagButton && dismissCountrySearchButton) {\n this.#countryFlagFocusListenerFn =\n this.addFocusEventListener(countryFlagButton);\n this.#dismissCountrySearchFocusListenerFn = this.addFocusEventListener(\n dismissCountrySearchButton,\n );\n }\n }\n\n public dismissButtonClicked(): void {\n this.#focusPhoneInputAfterToggle = true;\n this.toggleCountrySearch(false);\n }\n\n #handlePhoneInputShown(): void {\n if (this.#focusPhoneInputAfterToggle) {\n this.#queryElement('.sky-phone-field-container input')?.focus();\n\n this.#focusPhoneInputAfterToggle = false;\n }\n\n // Remove focus out event listeners now that country search is closed.\n this.#countryFlagFocusListenerFn?.();\n this.#dismissCountrySearchFocusListenerFn?.();\n }\n\n // TODO: remove this if no longer needed after a scalable focus monitor service is implemented\n private addFocusEventListener(el: HTMLElement): () => void {\n return this.#renderer.listen(el, 'focusout', (event: FocusEvent) => {\n const target = event.relatedTarget;\n if (this.inputBoxHostSvc && target) {\n if (!this.inputBoxHostSvc.focusIsInInput(target)) {\n this.toggleCountrySearch(false);\n }\n } else {\n if (!this.#elementRef.nativeElement.contains(target)) {\n this.toggleCountrySearch(false);\n }\n }\n });\n }\n\n public setCountryByDialCode(phoneNumberRaw: string | undefined): void {\n if (!phoneNumberRaw || !phoneNumberRaw.startsWith('+')) {\n return;\n }\n\n let foundCountry: SkyPhoneFieldCountry | undefined;\n\n try {\n const phoneNumberParsed =\n this.#phoneUtils.parseAndKeepRawInput(phoneNumberRaw);\n\n const regionCode =\n this.#phoneUtils.getRegionCodeForNumber(phoneNumberParsed);\n\n if (regionCode !== undefined) {\n foundCountry = this.countries().find(\n (country) => country.iso2.toUpperCase() === regionCode.toUpperCase(),\n );\n }\n } catch {\n foundCountry ??= this.#findCountryByDialCode(phoneNumberRaw);\n }\n\n if (foundCountry && !this.#validateSupportedCountry(foundCountry)) {\n foundCountry = undefined;\n }\n\n if (foundCountry && foundCountry !== this.#selectedCountryData()) {\n this.selectedCountry.set(foundCountry);\n this.#changeDetector.markForCheck();\n }\n }\n\n #findCountryByDialCode(\n phoneNumberRaw: string,\n ): SkyPhoneFieldCountry | undefined {\n const defaultDialCode = this.#defaultCountryData()?.dialCode;\n const selectedCountryDialCode = this.#selectedCountryData()?.dialCode;\n const countries = this.countries();\n\n let foundCountry: SkyPhoneFieldCountry | undefined;\n\n if (\n !selectedCountryDialCode ||\n !phoneNumberRaw.startsWith(selectedCountryDialCode)\n ) {\n for (let i = 1; i < this.#longestDialCodeLength() + 1; i++) {\n const dialCode = phoneNumberRaw.substring(0, i);\n\n if (defaultDialCode === dialCode) {\n foundCountry = this.#defaultCountryData();\n } else if (selectedCountryDialCode !== dialCode) {\n const dialCodeCountries = 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 }\n }\n }\n }\n\n return foundCountry;\n }\n\n #queryElement(selector: string): HTMLElement | undefined {\n return (\n this.inputBoxHostSvc?.queryHost(selector) ??\n (this.#elementRef.nativeElement.querySelector(selector) as\n | HTMLElement\n | undefined)\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.#selectedCountryData()?.exampleNumber,\n ),\n );\n }\n }\n\n #validateSupportedCountry(country: SkyPhoneFieldCountry): boolean {\n const supported = this.supportedCountryISOs();\n return (\n supported.length === 0 ||\n supported.some(\n (isoCode) => isoCode.toUpperCase() === country.iso2.toUpperCase(),\n )\n );\n }\n}\n","@if (!inputBoxHostSvc) {\n <div class=\"sky-input-group sky-phone-field\">\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 sky-phone-field-country-select-btn\"\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 class=\"sky-phone-field-flag\">\n <div\n [class]=\"\n 'iti__flag' +\n (selectedCountry()?.iso2 ? ' iti__' + selectedCountry()?.iso2 : '')\n \"\n ></div>\n </div>\n </button>\n </div>\n</ng-template>\n\n<ng-template #inputTemplateRef>\n @if (!countrySearchShown()) {\n <span class=\"sky-phone-field-container\">\n <ng-content />\n </span>\n } @else {\n <span class=\"sky-phone-field-container\">\n <div\n class=\"sky-phone-field-country-search\"\n [formGroup]=\"countrySearchForm\"\n >\n <sky-country-field\n formControlName=\"countrySearch\"\n [defaultCountry]=\"defaultCountry()\"\n [supportedCountryISOs]=\"supportedCountryISOs()\"\n (selectedCountryChange)=\"onCountrySelected($event)\"\n (countryFieldFocusout)=\"onCountryFieldFocusout($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-btn-default sky-phone-field-search-btn-dismiss\"\n type=\"button\"\n [attr.title]=\"\n 'skyux_phone_field_country_search_dismiss' | skyLibResources\n \"\n (click)=\"dismissButtonClicked()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" iconName=\"chevron-double-left\" />\n <sky-icon\n *skyThemeIf=\"'modern'\"\n iconName=\"chevron-double-left\"\n iconSize=\"l\"\n />\n </button>\n </div>\n }\n</ng-template>\n","import {\n Directive,\n ElementRef,\n OnDestroy,\n OnInit,\n booleanAttribute,\n effect,\n inject,\n input,\n linkedSignal,\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 {\n PhoneNumber,\n PhoneNumberFormat,\n PhoneNumberUtil,\n} from 'google-libphonenumber';\nimport { Subject, take, takeUntil } from 'rxjs';\n\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\nimport { SkyPhoneFieldNumberReturnFormat } from './types/number-return-format';\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 host: {\n '(blur)': 'onBlur()',\n '(input)': 'onInput()',\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 public readonly disabled = input<boolean, unknown>(false, {\n transform: booleanAttribute,\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 public readonly skyPhoneFieldNoValidate = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n readonly #disabled = linkedSignal(() => this.disabled());\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 constructor() {\n effect(() => {\n const value = this.#disabled();\n if (this.#phoneFieldComponent) {\n this.#phoneFieldComponent.countrySelectDisabled.set(value);\n this.#adapterSvc?.setElementDisabledState(this.#elRef, value);\n }\n });\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.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.set(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 protected onBlur(): void {\n this.#notifyTouched?.();\n }\n\n protected onInput(): void {\n const value = this.#adapterSvc?.getInputValue(this.#elRef);\n this.#phoneFieldComponent?.setCountryByDialCode(value);\n this.#setValue(value);\n this.#notifyChange?.(this.#getValue());\n }\n\n #maybeFormatPhoneNumber(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 return this.#formatPhoneNumber(\n phoneNumber,\n returnFormat,\n defaultCountry,\n regionCode,\n );\n }\n } catch {\n /* */\n }\n\n return;\n }\n\n #formatPhoneNumber(\n phoneNumber: PhoneNumber,\n returnFormat?: SkyPhoneFieldNumberReturnFormat,\n defaultCountry?: string,\n regionCode?: string,\n ): string {\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(phoneNumber, PhoneNumberFormat.NATIONAL);\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(phoneNumber, PhoneNumberFormat.NATIONAL);\n }\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 {\n return false;\n }\n }\n\n #setValue(value: string | undefined): void {\n /* istanbul ignore else */\n if (value !== undefined) {\n const formatted = this.#maybeFormatPhoneNumber(value);\n this.#_value = formatted ?? value;\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { SkyPhoneFieldInputDirective } from './phone-field-input.directive';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\n\n@NgModule({\n imports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],\n exports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],\n})\nexport class SkyPhoneFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skyux-phone-field.mjs","sources":["../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field-adapter.service.ts","../../../../../libs/components/phone-field/src/lib/modules/shared/sky-phone-field-resources.module.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/clone-country-data.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":["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","/* 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 SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\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 'FR-CA': {\n skyux_phone_field_country_search_dismiss: {\n message: 'Omettre la recherche du pays',\n },\n skyux_phone_field_country_search_label: {\n message: 'Omettre la recherche du pays',\n },\n skyux_phone_field_country_search_placeholder: {\n message: 'Rechercher un pays',\n },\n skyux_phone_field_country_select_label: { message: 'Choisissez un pays.' },\n skyux_phone_field_country_selected_label: {\n message: '{0} est actuellement sélectionné.',\n },\n skyux_phone_field_format_hint_text: { message: 'Exemple : {0}.' },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyPhoneFieldResourcesModule {}\n","import { type Country } from 'intl-tel-input/data';\n\nimport type { SkyPhoneFieldCountry } from './types/country';\n\n/**\n * Clone the country data for each component instance to avoid overwriting\n * the global country data.\n */\nexport function cloneCountryData(\n data: Country[],\n locales: Intl.LocalesArgument,\n): SkyPhoneFieldCountry[] {\n const clone = [...data];\n const displayNames = new Intl.DisplayNames(locales, { type: 'region' });\n\n return clone.map((country) => {\n const mapped: SkyPhoneFieldCountry = {\n iso2: country.iso2,\n dialCode: country.dialCode,\n name:\n country.name ||\n displayNames.of(country.iso2.toUpperCase()) ||\n /* istanbul ignore next */ '',\n priority: country.priority,\n };\n\n if (country.areaCodes) {\n mapped.areaCodes = [...country.areaCodes];\n }\n\n return mapped;\n });\n}\n","import { coerceStringArray } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\nimport {\n AfterRenderRef,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Injector,\n OnDestroy,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { SkyAppFormat } from '@skyux/core';\nimport { SkyInputBoxHostService } from '@skyux/forms';\nimport { SkyAppLocaleProvider, SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport {\n SKY_COUNTRY_FIELD_CONTEXT,\n SkyCountryFieldCountry,\n SkyCountryFieldModule,\n} from '@skyux/lookup';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport {\n PhoneNumberFormat,\n PhoneNumberType,\n PhoneNumberUtil,\n} from 'google-libphonenumber';\nimport intlTelInput from 'intl-tel-input';\nimport { Subject, map, takeUntil } from 'rxjs';\n\nimport { SkyPhoneFieldResourcesModule } from '../shared/sky-phone-field-resources.module';\n\nimport { cloneCountryData } from './clone-country-data';\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@Component({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n SkyCountryFieldModule,\n SkyIconModule,\n SkyPhoneFieldResourcesModule,\n SkyThemeModule,\n ],\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: { inPhoneField: true },\n },\n ],\n})\nexport class SkyPhoneFieldComponent implements OnDestroy {\n /**\n * Whether phone number extensions are allowed.\n * @default true\n */\n public readonly allowExtensions = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\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 public readonly defaultCountry = input<string, unknown>(\n DEFAULT_COUNTRY_CODE,\n {\n transform: (value) => String(value || DEFAULT_COUNTRY_CODE).toLowerCase(),\n },\n );\n\n /**\n * The format for validated phone numbers.\n * Options include: `\"default\"`, `\"international\"`, and `\"national\"`.\n * @default \"default\"\n */\n public readonly returnFormat =\n input<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 public readonly supportedCountryISOs = input<string[], unknown>([], {\n transform: coerceStringArray,\n });\n\n /**\n * Emits a `SkyPhoneFieldCountry` object when the selected country in the country search\n * input changes.\n */\n public readonly selectedCountryChange = output<SkyPhoneFieldCountry>();\n\n public readonly countries = computed<SkyPhoneFieldCountry[]>(() => {\n const countries = cloneCountryData(\n intlTelInput.getCountryData(),\n this.#locale(),\n );\n\n for (const country of countries) {\n country.dialCode = '+' + country.dialCode;\n }\n return countries;\n });\n\n public readonly countrySelectDisabled = signal(false);\n\n public readonly countrySearchShown = signal(false);\n\n public countrySearchForm: FormGroup<{\n countrySearch: FormControl<SkyCountryFieldCountry | undefined | null>;\n }>;\n\n public readonly inputBoxHostSvc = inject(SkyInputBoxHostService, {\n optional: true,\n skipSelf: true,\n });\n\n /**\n * The currently selected country to validate against.\n */\n public readonly selectedCountry = model<SkyPhoneFieldCountry | undefined>();\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 readonly #defaultCountryData = computed(() => {\n const defaultCountry = this.defaultCountry();\n return this.countries().find((country) => country.iso2 === defaultCountry);\n });\n\n #focusPhoneInputAfterToggle = false;\n\n #phoneNumberFormatHintTextTemplateString = '';\n\n #phoneUtils = PhoneNumberUtil.getInstance();\n\n readonly #longestDialCodeLength = computed(() => {\n const countries = this.countries();\n return countries\n .map((country) => Number(country.dialCode?.length))\n .filter(Boolean)\n .reduce(\n (max, dialCodeLength) => (dialCodeLength > max ? dialCodeLength : max),\n 0,\n );\n });\n\n readonly #selectedCountryData = computed(() => {\n const selected = this.selectedCountry();\n\n return selected\n ? this.countries().find((c) => c.iso2 === selected.iso2)\n : undefined;\n });\n\n #countrySearchFormControl = new FormControl<\n SkyCountryFieldCountry | undefined | null\n >(undefined);\n\n #afterRenderRef: AfterRenderRef | undefined;\n #countryFlagFocusListenerFn: (() => void) | undefined;\n #dismissCountrySearchFocusListenerFn: (() => void) | undefined;\n\n readonly #appFormat = inject(SkyAppFormat);\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #injector = inject(Injector);\n readonly #ngUnsubscribe = new Subject<void>();\n readonly #resourceSvc = inject(SkyLibResourcesService);\n readonly #elementRef = inject(ElementRef<HTMLElement>);\n readonly #renderer = inject(Renderer2);\n readonly #localeProvider = inject(SkyAppLocaleProvider);\n readonly #locale = toSignal(\n this.#localeProvider.getLocaleInfo().pipe(map((loc) => loc.locale)),\n {\n initialValue: this.#localeProvider.defaultLocale,\n },\n );\n\n constructor() {\n this.countrySearchForm = new FormGroup({\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 let previousIso: string | undefined;\n\n effect(() => {\n const country = this.#selectedCountryData();\n\n if (country && !country.exampleNumber) {\n const numberObj = this.#phoneUtils.getExampleNumberForType(\n country.iso2,\n PhoneNumberType.FIXED_LINE,\n );\n\n country.exampleNumber = this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL,\n );\n }\n\n this.#populateInputBoxHelpText();\n\n // Only emit when the selected country actually changes, not when locale\n // changes cause #selectedCountryData to return a new object reference.\n if (country && country.iso2 !== previousIso) {\n this.selectedCountryChange.emit(country);\n }\n\n previousIso = country?.iso2;\n });\n\n // Defer initial setup to avoid ExpressionChangedAfterItHasBeenCheckedError\n // when a selected country is set during component initialization.\n afterNextRender(() => {\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.update(\n (value) => value ?? this.#defaultCountryData(),\n );\n\n this.#changeDetector.markForCheck();\n });\n\n this.#countrySearchFormControl.valueChanges\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((newValue: SkyCountryFieldCountry | undefined | null) => {\n if (newValue && newValue.iso2 !== this.selectedCountry()?.iso2) {\n this.selectedCountry.set(newValue);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n\n this.#afterRenderRef?.destroy();\n this.#countryFlagFocusListenerFn?.();\n this.#dismissCountrySearchFocusListenerFn?.();\n }\n\n /**\n * Sets the country to validate against based on the county's iso2 code.\n * @param newCountry 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.set(\n this.countries().find(\n (countryInfo) => countryInfo.iso2 === newCountry.iso2,\n ),\n );\n\n this.#focusPhoneInputAfterToggle = true;\n this.toggleCountrySearch(false);\n }\n }\n\n public toggleCountrySearch(showSearch: boolean): void {\n if (showSearch === this.countrySearchShown()) {\n return;\n }\n\n if (!showSearch) {\n this.#countrySearchFormControl.setValue(undefined);\n }\n\n this.countrySearchShown.set(showSearch);\n\n if (this.inputBoxHostSvc && this.inputTemplateRef) {\n this.inputBoxHostSvc.setHintTextHidden(showSearch);\n }\n\n this.#afterRenderRef?.destroy();\n this.#afterRenderRef = afterNextRender(\n () => {\n if (this.countrySearchShown()) {\n this.#focusCountrySearch();\n } else {\n this.#handlePhoneInputShown();\n }\n },\n { injector: this.#injector },\n );\n }\n\n // TODO: remove this if no longer needed after a scalable focus monitor service is implemented\n public onCountryFieldFocusout({ relatedTarget }: FocusEvent): void {\n if (this.inputBoxHostSvc && relatedTarget) {\n if (!this.inputBoxHostSvc.focusIsInInput(relatedTarget)) {\n this.toggleCountrySearch(false);\n }\n } else {\n if (!this.#elementRef.nativeElement.contains(relatedTarget)) {\n this.toggleCountrySearch(false);\n }\n }\n }\n\n #focusCountrySearch(): void {\n this.#queryElement('textarea')?.focus();\n\n const countryFlagButton = this.#queryElement(\n 'button.sky-phone-field-country-select-btn',\n );\n\n const dismissCountrySearchButton = this.#queryElement(\n 'button.sky-phone-field-search-btn-dismiss',\n );\n\n if (countryFlagButton && dismissCountrySearchButton) {\n this.#countryFlagFocusListenerFn =\n this.addFocusEventListener(countryFlagButton);\n this.#dismissCountrySearchFocusListenerFn = this.addFocusEventListener(\n dismissCountrySearchButton,\n );\n }\n }\n\n public dismissButtonClicked(): void {\n this.#focusPhoneInputAfterToggle = true;\n this.toggleCountrySearch(false);\n }\n\n #handlePhoneInputShown(): void {\n if (this.#focusPhoneInputAfterToggle) {\n this.#queryElement('.sky-phone-field-container input')?.focus();\n\n this.#focusPhoneInputAfterToggle = false;\n }\n\n // Remove focus out event listeners now that country search is closed.\n this.#countryFlagFocusListenerFn?.();\n this.#dismissCountrySearchFocusListenerFn?.();\n }\n\n // TODO: remove this if no longer needed after a scalable focus monitor service is implemented\n private addFocusEventListener(el: HTMLElement): () => void {\n return this.#renderer.listen(el, 'focusout', (event: FocusEvent) => {\n const target = event.relatedTarget;\n if (this.inputBoxHostSvc && target) {\n if (!this.inputBoxHostSvc.focusIsInInput(target)) {\n this.toggleCountrySearch(false);\n }\n } else {\n if (!this.#elementRef.nativeElement.contains(target)) {\n this.toggleCountrySearch(false);\n }\n }\n });\n }\n\n public setCountryByDialCode(phoneNumberRaw: string | undefined): void {\n if (!phoneNumberRaw || !phoneNumberRaw.startsWith('+')) {\n return;\n }\n\n let foundCountry: SkyPhoneFieldCountry | undefined;\n\n try {\n const phoneNumberParsed =\n this.#phoneUtils.parseAndKeepRawInput(phoneNumberRaw);\n\n const regionCode =\n this.#phoneUtils.getRegionCodeForNumber(phoneNumberParsed);\n\n if (regionCode !== undefined) {\n foundCountry = this.countries().find(\n (country) => country.iso2.toUpperCase() === regionCode.toUpperCase(),\n );\n }\n } catch {\n foundCountry ??= this.#findCountryByDialCode(phoneNumberRaw);\n }\n\n if (foundCountry && !this.#validateSupportedCountry(foundCountry)) {\n foundCountry = undefined;\n }\n\n if (foundCountry && foundCountry !== this.#selectedCountryData()) {\n this.selectedCountry.set(foundCountry);\n this.#changeDetector.markForCheck();\n }\n }\n\n #findCountryByDialCode(\n phoneNumberRaw: string,\n ): SkyPhoneFieldCountry | undefined {\n const defaultDialCode = this.#defaultCountryData()?.dialCode;\n const selectedCountryDialCode = this.#selectedCountryData()?.dialCode;\n const countries = this.countries();\n\n let foundCountry: SkyPhoneFieldCountry | undefined;\n\n if (\n !selectedCountryDialCode ||\n !phoneNumberRaw.startsWith(selectedCountryDialCode)\n ) {\n for (let i = 1; i < this.#longestDialCodeLength() + 1; i++) {\n const dialCode = phoneNumberRaw.substring(0, i);\n\n if (defaultDialCode === dialCode) {\n foundCountry = this.#defaultCountryData();\n } else if (selectedCountryDialCode !== dialCode) {\n const dialCodeCountries = 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 }\n }\n }\n }\n\n return foundCountry;\n }\n\n #queryElement(selector: string): HTMLElement | undefined {\n return (\n this.inputBoxHostSvc?.queryHost(selector) ??\n (this.#elementRef.nativeElement.querySelector(selector) as\n | HTMLElement\n | undefined)\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.#selectedCountryData()?.exampleNumber,\n ),\n );\n }\n }\n\n #validateSupportedCountry(country: SkyPhoneFieldCountry): boolean {\n const supported = this.supportedCountryISOs();\n return (\n supported.length === 0 ||\n supported.some(\n (isoCode) => isoCode.toUpperCase() === country.iso2.toUpperCase(),\n )\n );\n }\n}\n","@if (!inputBoxHostSvc) {\n <div class=\"sky-input-group sky-phone-field\">\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 sky-phone-field-country-select-btn\"\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 class=\"sky-phone-field-flag\">\n <div\n [class]=\"\n 'iti__flag' +\n (selectedCountry()?.iso2 ? ' iti__' + selectedCountry()?.iso2 : '')\n \"\n ></div>\n </div>\n </button>\n </div>\n</ng-template>\n\n<ng-template #inputTemplateRef>\n @if (!countrySearchShown()) {\n <span class=\"sky-phone-field-container\">\n <ng-content />\n </span>\n } @else {\n <span class=\"sky-phone-field-container\">\n <div\n class=\"sky-phone-field-country-search\"\n [formGroup]=\"countrySearchForm\"\n >\n <sky-country-field\n formControlName=\"countrySearch\"\n [defaultCountry]=\"defaultCountry()\"\n [supportedCountryISOs]=\"supportedCountryISOs()\"\n (selectedCountryChange)=\"onCountrySelected($event)\"\n (countryFieldFocusout)=\"onCountryFieldFocusout($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-btn-default sky-phone-field-search-btn-dismiss\"\n type=\"button\"\n [attr.title]=\"\n 'skyux_phone_field_country_search_dismiss' | skyLibResources\n \"\n (click)=\"dismissButtonClicked()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" iconName=\"chevron-double-left\" />\n <sky-icon\n *skyThemeIf=\"'modern'\"\n iconName=\"chevron-double-left\"\n iconSize=\"l\"\n />\n </button>\n </div>\n }\n</ng-template>\n","import {\n Directive,\n ElementRef,\n OnDestroy,\n OnInit,\n booleanAttribute,\n effect,\n inject,\n input,\n linkedSignal,\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 {\n PhoneNumber,\n PhoneNumberFormat,\n PhoneNumberUtil,\n} from 'google-libphonenumber';\nimport { Subject, take, takeUntil } from 'rxjs';\n\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\nimport { SkyPhoneFieldNumberReturnFormat } from './types/number-return-format';\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 host: {\n '(blur)': 'onBlur()',\n '(input)': 'onInput()',\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 public readonly disabled = input<boolean, unknown>(false, {\n transform: booleanAttribute,\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 public readonly skyPhoneFieldNoValidate = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n readonly #disabled = linkedSignal(() => this.disabled());\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 constructor() {\n effect(() => {\n const value = this.#disabled();\n if (this.#phoneFieldComponent) {\n this.#phoneFieldComponent.countrySelectDisabled.set(value);\n this.#adapterSvc?.setElementDisabledState(this.#elRef, value);\n }\n });\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.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.set(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 protected onBlur(): void {\n this.#notifyTouched?.();\n }\n\n protected onInput(): void {\n const value = this.#adapterSvc?.getInputValue(this.#elRef);\n this.#phoneFieldComponent?.setCountryByDialCode(value);\n this.#setValue(value);\n this.#notifyChange?.(this.#getValue());\n }\n\n #maybeFormatPhoneNumber(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 return this.#formatPhoneNumber(\n phoneNumber,\n returnFormat,\n defaultCountry,\n regionCode,\n );\n }\n } catch {\n /* */\n }\n\n return;\n }\n\n #formatPhoneNumber(\n phoneNumber: PhoneNumber,\n returnFormat?: SkyPhoneFieldNumberReturnFormat,\n defaultCountry?: string,\n regionCode?: string,\n ): string {\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(phoneNumber, PhoneNumberFormat.NATIONAL);\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(phoneNumber, PhoneNumberFormat.NATIONAL);\n }\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 {\n return false;\n }\n }\n\n #setValue(value: string | undefined): void {\n /* istanbul ignore else */\n if (value !== undefined) {\n const formatted = this.#maybeFormatPhoneNumber(value);\n this.#_value = formatted ?? value;\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { SkyPhoneFieldInputDirective } from './phone-field-input.directive';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\n\n@NgModule({\n imports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],\n exports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],\n})\nexport class SkyPhoneFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skyux/phone-field",
|
|
3
|
-
"version": "14.0.
|
|
3
|
+
"version": "14.0.1",
|
|
4
4
|
"author": "Blackbaud, Inc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"blackbaud",
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
"@angular/common": "^21.2.0",
|
|
21
21
|
"@angular/core": "^21.2.0",
|
|
22
22
|
"@angular/forms": "^21.2.0",
|
|
23
|
-
"@skyux/core": "14.0.
|
|
24
|
-
"@skyux/forms": "14.0.
|
|
25
|
-
"@skyux/i18n": "14.0.
|
|
26
|
-
"@skyux/icon": "14.0.
|
|
27
|
-
"@skyux/lookup": "14.0.
|
|
28
|
-
"@skyux/theme": "14.0.
|
|
23
|
+
"@skyux/core": "14.0.1",
|
|
24
|
+
"@skyux/forms": "14.0.1",
|
|
25
|
+
"@skyux/i18n": "14.0.1",
|
|
26
|
+
"@skyux/icon": "14.0.1",
|
|
27
|
+
"@skyux/lookup": "14.0.1",
|
|
28
|
+
"@skyux/theme": "14.0.1"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"google-libphonenumber": "3.2.44",
|
|
@@ -52,5 +52,6 @@
|
|
|
52
52
|
"types": "./types/skyux-phone-field-testing.d.ts",
|
|
53
53
|
"default": "./fesm2022/skyux-phone-field-testing.mjs"
|
|
54
54
|
}
|
|
55
|
-
}
|
|
55
|
+
},
|
|
56
|
+
"type": "module"
|
|
56
57
|
}
|