@skyux/phone-field 7.4.2 → 7.6.0
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.
- package/documentation.json +16 -16
- package/esm2020/lib/modules/phone-field/phone-field-input.directive.mjs +3 -3
- package/esm2020/lib/modules/phone-field/phone-field.component.mjs +5 -5
- package/esm2020/lib/modules/phone-field/types/country.mjs +1 -1
- package/esm2020/testing/phonefield/phone-field-fixture.mjs +2 -2
- package/fesm2015/skyux-phone-field-testing.mjs +1 -1
- package/fesm2015/skyux-phone-field-testing.mjs.map +1 -1
- package/fesm2015/skyux-phone-field.mjs +6 -6
- package/fesm2015/skyux-phone-field.mjs.map +1 -1
- package/fesm2020/skyux-phone-field-testing.mjs +1 -1
- package/fesm2020/skyux-phone-field-testing.mjs.map +1 -1
- package/fesm2020/skyux-phone-field.mjs +6 -6
- package/fesm2020/skyux-phone-field.mjs.map +1 -1
- package/lib/modules/phone-field/phone-field-input.directive.d.ts +2 -2
- package/lib/modules/phone-field/phone-field.component.d.ts +5 -5
- package/lib/modules/phone-field/types/country.d.ts +4 -4
- package/package.json +7 -7
- package/testing/phonefield/phone-field-fixture.d.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-phone-field-testing.mjs","sources":["../../../../../libs/components/phone-field/testing/src/phonefield/phone-field-testing.module.ts","../../../../../libs/components/phone-field/testing/src/phonefield/phone-field-fixture.ts","../../../../../libs/components/phone-field/testing/src/skyux-phone-field-testing.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\nimport { SkyPhoneFieldModule } from '@skyux/phone-field';\n\n/**\n * @internal\n */\n@NgModule({\n exports: [\n SkyPhoneFieldModule,\n\n // The noop animations module needs to be loaded last to avoid\n // subsequent modules adding animations and overriding this.\n NoopAnimationsModule,\n ],\n})\nexport class SkyPhoneFieldTestingModule {}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\nimport { SkyCountryFieldFixture } from '@skyux/lookup/testing';\n\n/**\n * Provides information for and interaction with a SKY UX phone field component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n * @internal\n */\nexport class SkyPhoneFieldFixture {\n /**\n * The value of the input field for the phone field.\n */\n public get inputText(): string {\n return this.#phoneFieldInput.value;\n }\n\n /**\n * This property is lazy loaded and should be accessed via the #getCountryFixture() function.\n */\n #_countryFixture: SkyCountryFieldFixture | undefined;\n\n #_debugEl: DebugElement;\n\n #fixture: ComponentFixture<unknown>;\n\n #skyTestId: string;\n\n constructor(fixture: ComponentFixture<unknown>, skyTestId: string) {\n this.#fixture = fixture;\n this.#skyTestId = skyTestId;\n this.#_debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-phone-field'\n );\n\n // The country selector needs extra time to initialize.\n // Consumers shouldn't need to work around this so we do an extra detect here\n fixture.detectChanges();\n }\n\n /**\n * Blurs the phone field input and returns a promise that indicates when the action is complete.\n */\n public async blur(): Promise<void> {\n SkyAppTestUtility.fireDomEvent(this.#phoneFieldInput, 'blur');\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n\n /**\n * Returns the selected country iso2 code.\n */\n public async getSelectedCountryIso2(): Promise<string | null> {\n // Wait for the country field to initialize.\n await this.#fixture.whenStable();\n return this.#countryFlagButtonContainer.getAttribute('data-sky-test-iso2');\n }\n\n /**\n * Returns the selected country name.\n */\n public async getSelectedCountryName(): Promise<string | null> {\n // Wait for the country field to initialize.\n await this.#fixture.whenStable();\n return this.#countryFlagButtonContainer.getAttribute('data-sky-test-name');\n }\n\n /**\n * Sets the value of the input field for the phone field.\n */\n public async setInputText(inputText: string): Promise<void> {\n const inputEl = this.#phoneFieldInput;\n inputEl.value = inputText;\n\n SkyAppTestUtility.fireDomEvent(inputEl, 'input');\n this.#fixture.detectChanges();\n\n SkyAppTestUtility.fireDomEvent(inputEl, 'change');\n\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n\n /**\n * Opens the country selector, peforms a search, but makes no selection.\n * @param searchText The name of the country to select.\n * @returns The list of country names matching the search text.\n */\n public async searchCountry(searchText: string): Promise<string[]> {\n await this.#openCountrySelection();\n\n const countryFixture = await this.#getCountryFixture();\n const results = await countryFixture.search(searchText);\n\n await this.#waitForCountrySelection();\n return results;\n }\n\n /**\n * Opens the country selector, performs a search, and selects the first result (if any).\n * @param searchText The name of the country to select.\n */\n public async selectCountry(searchText: string): Promise<void> {\n await this.#openCountrySelection();\n\n const countryFixture = await this.#getCountryFixture();\n await countryFixture.searchAndSelectFirstResult(searchText);\n\n return this.#waitForCountrySelection();\n }\n\n /**\n * Gets a boolean promise indicating if the phone field is disabled.\n */\n public async isDisabled(): Promise<boolean> {\n const disabled = this.#phoneFieldInput.getAttribute('disabled');\n return coerceBooleanProperty(disabled);\n }\n\n /**\n * Gets a boolean promise indicating if the phone field is valid.\n */\n public async isValid(): Promise<boolean> {\n return this.#phoneFieldInput.classList.contains('ng-valid');\n }\n\n get #countryElement(): HTMLInputElement {\n return this.#_debugEl.query(By.css('sky-country-field')).nativeElement;\n }\n\n get #countryFlagButtonContainer(): HTMLInputElement {\n return this.#_debugEl.query(By.css('.sky-phone-field-country-btn'))\n .nativeElement;\n }\n\n get #countryFlagButton(): HTMLInputElement {\n return this.#_debugEl.query(By.css('.sky-phone-field-country-btn .sky-btn'))\n .nativeElement;\n }\n\n get #phoneFieldInput(): HTMLInputElement {\n return this.#_debugEl.query(By.css('input[skyPhoneFieldInput]'))\n .nativeElement;\n }\n\n /**\n * The country-field can take a really long time to initialize. Since we can't perform an await\n * in our constructor, it's safest to do a lazy load of the country field to avoid any race\n * conditions where a test tries to access the sky-country-field element too quickly.\n */\n async #getCountryFixture(): Promise<SkyCountryFieldFixture> {\n if (this.#_countryFixture === undefined) {\n // tag the country field with a sky test id\n const countrySkyTestId = `${this.#skyTestId}-country`;\n this.#setSkyTestId(this.#countryElement, countrySkyTestId);\n\n // initialize the country fixture\n this.#_countryFixture = new SkyCountryFieldFixture(\n this.#fixture,\n countrySkyTestId\n );\n\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n }\n\n return this.#_countryFixture;\n }\n\n async #openCountrySelection(): Promise<void> {\n this.#countryFlagButton.click();\n return this.#waitForCountrySelection();\n }\n\n #setSkyTestId(element: HTMLElement, skyTestId: string): void {\n element.setAttribute('data-sky-id', skyTestId);\n }\n\n async #waitForCountrySelection(): Promise<void> {\n // any country selection needs extra time to complete\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skyux-phone-field-testing.mjs","sources":["../../../../../libs/components/phone-field/testing/src/phonefield/phone-field-testing.module.ts","../../../../../libs/components/phone-field/testing/src/phonefield/phone-field-fixture.ts","../../../../../libs/components/phone-field/testing/src/skyux-phone-field-testing.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\nimport { SkyPhoneFieldModule } from '@skyux/phone-field';\n\n/**\n * @internal\n */\n@NgModule({\n exports: [\n SkyPhoneFieldModule,\n\n // The noop animations module needs to be loaded last to avoid\n // subsequent modules adding animations and overriding this.\n NoopAnimationsModule,\n ],\n})\nexport class SkyPhoneFieldTestingModule {}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\nimport { SkyCountryFieldFixture } from '@skyux/lookup/testing';\n\n/**\n * Provides information for and interaction with a SKY UX phone field component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n * @internal\n */\nexport class SkyPhoneFieldFixture {\n /**\n * The value of the input field for the phone field.\n */\n public get inputText(): string {\n return this.#phoneFieldInput.value;\n }\n\n /**\n * This property is lazy loaded and should be accessed via the #getCountryFixture() function.\n */\n #_countryFixture: SkyCountryFieldFixture | undefined;\n\n #_debugEl: DebugElement;\n\n #fixture: ComponentFixture<unknown>;\n\n #skyTestId: string;\n\n constructor(fixture: ComponentFixture<unknown>, skyTestId: string) {\n this.#fixture = fixture;\n this.#skyTestId = skyTestId;\n this.#_debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-phone-field'\n );\n\n // The country selector needs extra time to initialize.\n // Consumers shouldn't need to work around this so we do an extra detect here\n fixture.detectChanges();\n }\n\n /**\n * Blurs the phone field input and returns a promise that indicates when the action is complete.\n */\n public async blur(): Promise<void> {\n SkyAppTestUtility.fireDomEvent(this.#phoneFieldInput, 'blur');\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n\n /**\n * Returns the selected country iso2 code.\n */\n public async getSelectedCountryIso2(): Promise<string | null> {\n // Wait for the country field to initialize.\n await this.#fixture.whenStable();\n return this.#countryFlagButtonContainer.getAttribute('data-sky-test-iso2');\n }\n\n /**\n * Returns the selected country name.\n */\n public async getSelectedCountryName(): Promise<string | null> {\n // Wait for the country field to initialize.\n await this.#fixture.whenStable();\n return this.#countryFlagButtonContainer.getAttribute('data-sky-test-name');\n }\n\n /**\n * Sets the value of the input field for the phone field.\n */\n public async setInputText(inputText: string): Promise<void> {\n const inputEl = this.#phoneFieldInput;\n inputEl.value = inputText;\n\n SkyAppTestUtility.fireDomEvent(inputEl, 'input');\n this.#fixture.detectChanges();\n\n SkyAppTestUtility.fireDomEvent(inputEl, 'change');\n\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n\n /**\n * Opens the country selector, performs a search, but makes no selection.\n * @param searchText The name of the country to select.\n * @returns The list of country names matching the search text.\n */\n public async searchCountry(searchText: string): Promise<string[]> {\n await this.#openCountrySelection();\n\n const countryFixture = await this.#getCountryFixture();\n const results = await countryFixture.search(searchText);\n\n await this.#waitForCountrySelection();\n return results;\n }\n\n /**\n * Opens the country selector, performs a search, and selects the first result (if any).\n * @param searchText The name of the country to select.\n */\n public async selectCountry(searchText: string): Promise<void> {\n await this.#openCountrySelection();\n\n const countryFixture = await this.#getCountryFixture();\n await countryFixture.searchAndSelectFirstResult(searchText);\n\n return this.#waitForCountrySelection();\n }\n\n /**\n * Gets a boolean promise indicating if the phone field is disabled.\n */\n public async isDisabled(): Promise<boolean> {\n const disabled = this.#phoneFieldInput.getAttribute('disabled');\n return coerceBooleanProperty(disabled);\n }\n\n /**\n * Gets a boolean promise indicating if the phone field is valid.\n */\n public async isValid(): Promise<boolean> {\n return this.#phoneFieldInput.classList.contains('ng-valid');\n }\n\n get #countryElement(): HTMLInputElement {\n return this.#_debugEl.query(By.css('sky-country-field')).nativeElement;\n }\n\n get #countryFlagButtonContainer(): HTMLInputElement {\n return this.#_debugEl.query(By.css('.sky-phone-field-country-btn'))\n .nativeElement;\n }\n\n get #countryFlagButton(): HTMLInputElement {\n return this.#_debugEl.query(By.css('.sky-phone-field-country-btn .sky-btn'))\n .nativeElement;\n }\n\n get #phoneFieldInput(): HTMLInputElement {\n return this.#_debugEl.query(By.css('input[skyPhoneFieldInput]'))\n .nativeElement;\n }\n\n /**\n * The country-field can take a really long time to initialize. Since we can't perform an await\n * in our constructor, it's safest to do a lazy load of the country field to avoid any race\n * conditions where a test tries to access the sky-country-field element too quickly.\n */\n async #getCountryFixture(): Promise<SkyCountryFieldFixture> {\n if (this.#_countryFixture === undefined) {\n // tag the country field with a sky test id\n const countrySkyTestId = `${this.#skyTestId}-country`;\n this.#setSkyTestId(this.#countryElement, countrySkyTestId);\n\n // initialize the country fixture\n this.#_countryFixture = new SkyCountryFieldFixture(\n this.#fixture,\n countrySkyTestId\n );\n\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n }\n\n return this.#_countryFixture;\n }\n\n async #openCountrySelection(): Promise<void> {\n this.#countryFlagButton.click();\n return this.#waitForCountrySelection();\n }\n\n #setSkyTestId(element: HTMLElement, skyTestId: string): void {\n element.setAttribute('data-sky-id', skyTestId);\n }\n\n async #waitForCountrySelection(): Promise<void> {\n // any country selection needs extra time to complete\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -191,7 +191,7 @@ class SkyPhoneFieldComponent {
|
|
|
191
191
|
});
|
|
192
192
|
}
|
|
193
193
|
/**
|
|
194
|
-
*
|
|
194
|
+
* Whether phone number extensions are allowed.
|
|
195
195
|
* @default true
|
|
196
196
|
*/
|
|
197
197
|
set allowExtensions(value) {
|
|
@@ -201,7 +201,7 @@ class SkyPhoneFieldComponent {
|
|
|
201
201
|
return __classPrivateFieldGet(this, _SkyPhoneFieldComponent__allowExtensions, "f");
|
|
202
202
|
}
|
|
203
203
|
/**
|
|
204
|
-
*
|
|
204
|
+
* The
|
|
205
205
|
* [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)
|
|
206
206
|
* country code for the default country. The country selector button displays a flag
|
|
207
207
|
* icon for this default country until users select a different country.
|
|
@@ -217,7 +217,7 @@ class SkyPhoneFieldComponent {
|
|
|
217
217
|
return __classPrivateFieldGet(this, _SkyPhoneFieldComponent__defaultCountry, "f");
|
|
218
218
|
}
|
|
219
219
|
/**
|
|
220
|
-
*
|
|
220
|
+
* The format for validated phone numbers.
|
|
221
221
|
* Options include: `"default"`, `"international"`, and `"national"`.
|
|
222
222
|
* @default "default"
|
|
223
223
|
*/
|
|
@@ -228,7 +228,7 @@ class SkyPhoneFieldComponent {
|
|
|
228
228
|
__classPrivateFieldSet(this, _SkyPhoneFieldComponent__returnFormat, value || 'default', "f");
|
|
229
229
|
}
|
|
230
230
|
/**
|
|
231
|
-
*
|
|
231
|
+
* The currently selected country to validate against.
|
|
232
232
|
*/
|
|
233
233
|
set selectedCountry(newCountry) {
|
|
234
234
|
if (newCountry &&
|
|
@@ -507,7 +507,7 @@ class SkyPhoneFieldInputDirective {
|
|
|
507
507
|
constructor(changeDetector, elRef, adapterService, phoneFieldComponent) {
|
|
508
508
|
_SkyPhoneFieldInputDirective_instances.add(this);
|
|
509
509
|
/**
|
|
510
|
-
*
|
|
510
|
+
* Whether to prevent validation on the phone number input. For validation,
|
|
511
511
|
* phone numbers are driven through the `ngModel` attribute that you specify on an
|
|
512
512
|
* `input` element or on a `FormControl` in a reactive form. To prevent validation,
|
|
513
513
|
* set this property to `true`.
|
|
@@ -538,7 +538,7 @@ class SkyPhoneFieldInputDirective {
|
|
|
538
538
|
__classPrivateFieldSet(this, _SkyPhoneFieldInputDirective_phoneFieldComponent, phoneFieldComponent, "f");
|
|
539
539
|
}
|
|
540
540
|
/**
|
|
541
|
-
*
|
|
541
|
+
* Whether to disable the phone field.
|
|
542
542
|
* @default false
|
|
543
543
|
*/
|
|
544
544
|
set disabled(value) {
|
|
@@ -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":["/**\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 getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_phone_field_default_label: { message: 'Phone number' },\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 },\n};\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 { ElementRef, Injectable, OnDestroy, Renderer2 } from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\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\n #renderer: Renderer2;\n #resourcesService: SkyLibResourcesService;\n\n constructor(renderer: Renderer2, resourcesService: SkyLibResourcesService) {\n this.#renderer = renderer;\n this.#resourcesService = resourcesService;\n }\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 setElementDisabledState(\n elementRef: ElementRef,\n disabled: boolean\n ): void {\n this.#renderer.setProperty(elementRef.nativeElement, 'disabled', disabled);\n }\n\n public setElementPlaceholder(\n elementRef: ElementRef,\n placeholder: string\n ): void {\n this.#renderer.setAttribute(\n elementRef.nativeElement,\n 'placeholder',\n placeholder\n );\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 setAriaLabel(element: ElementRef): void {\n /* Sanity check */\n /* istanbul ignore else */\n if (!element.nativeElement.getAttribute('aria-label')) {\n this.#resourcesService\n .getString('skyux_phone_field_default_label')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value: string) => {\n this.#renderer.setAttribute(\n element.nativeElement,\n 'aria-label',\n value\n );\n });\n }\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} from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { SkyInputBoxHostService } from '@skyux/forms';\nimport { SkyCountryFieldCountry } from '@skyux/lookup';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport {\n PhoneNumberFormat,\n PhoneNumberType,\n PhoneNumberUtil,\n} from 'google-libphonenumber';\nimport 'intl-tel-input';\n\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldCountry } from './types/country';\nimport { SkyPhoneFieldNumberReturnFormat } from './types/number-return-format';\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 animations: [\n trigger('blockAnimationOnLoad', [transition(':enter', [])]),\n trigger('countrySearchAnimation', [\n transition(':enter', [\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(':leave', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n width: 0,\n })\n ),\n ]),\n ]),\n trigger('phoneInputAnimation', [\n transition(':enter', [\n style({\n opacity: 0,\n }),\n animate(\n '150ms ease-in',\n style({\n opacity: 1,\n })\n ),\n ]),\n transition(':leave', [\n animate(\n '150ms ease-in',\n style({\n opacity: 0,\n })\n ),\n ]),\n ]),\n ],\n})\nexport class SkyPhoneFieldComponent implements OnDestroy, OnInit {\n /**\n * Indicates whether or not 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 * Specifies 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 && value !== this.#_defaultCountry) {\n this.#_defaultCountry = value.toLowerCase();\n\n this.#defaultCountryData = this.countries.find(\n (country) => country.iso2 === this.#_defaultCountry\n );\n }\n }\n\n public get defaultCountry(): string | undefined {\n return this.#_defaultCountry;\n }\n\n /**\n * Specifies 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 * Specifies 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\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>;\n }>;\n\n /**\n * Specifies 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 this.#_selectedCountry.exampleNumber = this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL\n );\n }\n\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 #phoneUtils = PhoneNumberUtil.getInstance();\n\n #longestDialCodeLength = 0;\n\n #_defaultCountry: string | undefined;\n\n #_selectedCountry: SkyPhoneFieldCountry | undefined;\n\n #countrySearchFormControl: FormControl<SkyCountryFieldCountry | undefined> =\n new FormControl();\n\n #formBuilder: FormBuilder;\n #adapterService: SkyPhoneFieldAdapterService;\n #changeDetector: ChangeDetectorRef;\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 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.countrySearchForm = this.#formBuilder.group({\n countrySearch: this.#countrySearchFormControl,\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 if (!this.defaultCountry) {\n this.defaultCountry = 'us';\n }\n\n if (!this.selectedCountry) {\n this.selectedCountry = this.#defaultCountryData;\n }\n this.#changeDetector.markForCheck();\n }, 0);\n\n this.#countrySearchFormControl.valueChanges.subscribe(\n (newValue?: SkyCountryFieldCountry) => {\n if (newValue?.iso2 !== this.selectedCountry?.iso2) {\n this.selectedCountry = newValue;\n }\n }\n );\n }\n\n public ngOnDestroy(): void {\n this.selectedCountryChange.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 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(phoneNumber: string): boolean {\n if (!phoneNumber || !phoneNumber.startsWith('+')) {\n return false;\n }\n\n let newCountry: SkyPhoneFieldCountry | undefined;\n\n for (let i = 1; i < this.#longestDialCodeLength + 1; i++) {\n const dialCode = phoneNumber.substring(0, i);\n\n let foundCountry = this.countries.find(\n (country) => country.dialCode === dialCode && country.priority === 0\n );\n\n if (foundCountry) {\n // Ensure that the country that was found is one of the supported countries\n if (\n this.supportedCountryISOs &&\n this.supportedCountryISOs.findIndex(\n (isoCode) =>\n isoCode.toUpperCase() === foundCountry?.iso2.toUpperCase()\n ) < 0\n ) {\n foundCountry = undefined;\n }\n\n if (foundCountry !== this.selectedCountry) {\n newCountry = foundCountry;\n }\n }\n }\n\n if (newCountry) {\n this.selectedCountry = newCountry;\n this.#changeDetector.markForCheck();\n return true;\n }\n\n return false;\n }\n}\n","<ng-container *ngIf=\"!inputBoxHostSvc\">\n <div class=\"sky-input-group sky-phone-field\" [@blockAnimationOnLoad]>\n <ng-container *ngTemplateOutlet=\"countryBtnTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplateRef\"></ng-container>\n </div>\n</ng-container>\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 <span\n *ngIf=\"phoneInputShown\"\n class=\"sky-phone-field-container\"\n [@.disabled]=\"\n inputBoxHostSvc &&\n (themeSvc?.settingsChange | async)?.currentSettings?.theme?.name ===\n 'modern'\n \"\n [@phoneInputAnimation]=\"phoneInputShown ? 'open' : 'closed'\"\n (@phoneInputAnimation.done)=\"phoneInputAnimationEnd($event)\"\n >\n <ng-content></ng-content>\n </span>\n <span\n *ngIf=\"countrySearchShown\"\n class=\"sky-phone-field-container\"\n [@.disabled]=\"\n inputBoxHostSvc &&\n (themeSvc?.settingsChange | async)?.currentSettings?.theme?.name ===\n 'modern'\n \"\n [@countrySearchAnimation]=\"countrySearchShown ? 'open' : 'closed'\"\n (@countrySearchAnimation.done)=\"countrySearchAnimationEnd($event)\"\n >\n <div class=\"sky-phone-field-country-search\" [formGroup]=\"countrySearchForm\">\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 </sky-country-field>\n </div>\n </span>\n</ng-template>\n\n<ng-template #buttonsInsetTemplateRef>\n <div\n *ngIf=\"countrySearchShown\"\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 *skyThemeIf=\"'default'\" icon=\"chevron-circle-left\" size=\"lg\">\n </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"double-chevron-left\"\n iconType=\"skyux\"\n size=\"2x\"\n >\n </sky-icon>\n </button>\n </div>\n</ng-template>\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n forwardRef,\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 { BehaviorSubject, Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\nimport { SkyPhoneFieldCountry } from './types/country';\n\nconst SKY_PHONE_FIELD_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyPhoneFieldInputDirective),\n multi: true,\n};\n\nconst SKY_PHONE_FIELD_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyPhoneFieldInputDirective),\n multi: true,\n};\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: [SKY_PHONE_FIELD_VALUE_ACCESSOR, SKY_PHONE_FIELD_VALIDATOR],\n})\nexport class SkyPhoneFieldInputDirective\n implements OnInit, OnDestroy, AfterViewInit, ControlValueAccessor, Validator\n{\n /**\n * Indicates whether to disable the phone field.\n * @default false\n */\n @Input()\n public set disabled(value: boolean | undefined) {\n const coercedValue = coerceBooleanProperty(value);\n if (this.#phoneFieldComponent) {\n this.#phoneFieldComponent.countrySelectDisabled = coercedValue;\n this.#adapterService?.setElementDisabledState(this.#elRef, coercedValue);\n }\n this.#_disabled = coercedValue;\n }\n\n public get disabled(): boolean {\n return this.#_disabled;\n }\n\n /**\n * Indicates 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()\n public skyPhoneFieldNoValidate: boolean | undefined = false;\n\n set #modelValue(value: string | undefined) {\n const valueOrDefault = value ?? '';\n this.#_modelValue = valueOrDefault;\n this.#adapterService?.setElementValue(this.#elRef, valueOrDefault);\n\n if (valueOrDefault) {\n const formattedValue = this.#formatNumber(valueOrDefault.toString());\n\n this.#onChange(formattedValue);\n } else {\n this.#onChange(valueOrDefault);\n }\n this.#validatorChange();\n }\n\n get #modelValue(): string {\n return this.#_modelValue;\n }\n\n #control: AbstractControl | undefined;\n\n #textChanges: BehaviorSubject<string> | undefined;\n\n #ngUnsubscribe = new Subject<void>();\n\n #phoneUtils = PhoneNumberUtil.getInstance();\n\n #_disabled!: boolean;\n\n #_modelValue = '';\n\n #changeDetector: ChangeDetectorRef;\n #elRef: ElementRef;\n\n #adapterService: SkyPhoneFieldAdapterService | undefined;\n #phoneFieldComponent: SkyPhoneFieldComponent | undefined;\n\n public constructor(\n changeDetector: ChangeDetectorRef,\n elRef: ElementRef,\n @Optional() adapterService?: SkyPhoneFieldAdapterService,\n @Optional() phoneFieldComponent?: SkyPhoneFieldComponent\n ) {\n this.#changeDetector = changeDetector;\n this.#elRef = elRef;\n this.#adapterService = adapterService;\n this.#phoneFieldComponent = phoneFieldComponent;\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.#adapterService?.setElementType(this.#elRef);\n this.#adapterService?.addElementClass(this.#elRef, 'sky-form-control');\n if (this.#phoneFieldComponent?.selectedCountry?.exampleNumber) {\n this.#adapterService?.setElementPlaceholder(\n this.#elRef,\n this.#phoneFieldComponent.selectedCountry.exampleNumber\n );\n }\n\n this.#adapterService?.setAriaLabel(this.#elRef);\n }\n\n public ngAfterViewInit(): void {\n this.#phoneFieldComponent?.selectedCountryChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((country: SkyPhoneFieldCountry) => {\n this.#modelValue = this.#elRef.nativeElement.value;\n if (country?.exampleNumber) {\n this.#adapterService?.setElementPlaceholder(\n this.#elRef,\n country.exampleNumber\n );\n }\n });\n\n // This is needed to address a bug in Angular 4, where the value is not changed on the view.\n // See: https://github.com/angular/angular/issues/13792\n /* istanbul ignore else */\n if (this.#control && this.#modelValue) {\n this.#control.setValue(this.#modelValue, { emitEvent: false });\n this.#changeDetector.detectChanges();\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n /**\n * Writes the new value for reactive forms on change events on the input element\n * @param event The change event that was received\n */\n @HostListener('change', ['$event'])\n public onInputChange(event: any): void {\n if (!this.#textChanges) {\n this.#setupTextChangeSubscription(event.target.value);\n } else {\n this.#textChanges.next(event.target.value);\n }\n }\n\n /**\n * Marks reactive form controls as touched on input blur events\n */\n @HostListener('blur')\n public onInputBlur(): void {\n this.#onTouched();\n }\n\n @HostListener('input', ['$event'])\n public onInputTyping(event: any): void {\n if (!this.#textChanges) {\n this.#setupTextChangeSubscription(event.target.value);\n } else {\n this.#textChanges.next(event.target.value);\n }\n }\n\n /**\n * Writes the new value for reactive forms\n * @param value The new value for the input\n */\n public writeValue(value: string): void {\n this.#phoneFieldComponent?.setCountryByDialCode(value);\n\n this.#modelValue = value;\n }\n\n public registerOnChange(fn: (value: string | undefined) => void): void {\n this.#onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.#onTouched = fn;\n }\n\n public registerOnValidatorChange(fn: () => void): void {\n this.#validatorChange = fn;\n }\n\n /**\n * Sets the disabled state on the input\n * @param isDisabled the new value of the input's disabled state\n */\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /**\n * Validate's the form control's current value\n * @param control the form control for the input\n */\n public validate(control: AbstractControl): ValidationErrors | null {\n if (!this.#control) {\n this.#control = control;\n }\n\n if (this.skyPhoneFieldNoValidate) {\n return null;\n }\n\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n if (\n this.#phoneFieldComponent?.selectedCountry &&\n !this.#validateNumber(value)\n ) {\n if (!this.#textChanges) {\n // Mark the invalid control as touched so that the input's invalid CSS styles appear.\n // (This is only required when the invalid value is set by the FormControl constructor.)\n // We don't do this if the input is the active element so that we don't show validation\n // errors unless it is invalid on initialization or the input has been blurred.\n control.markAsTouched();\n }\n\n return {\n skyPhoneField: {\n invalid: value,\n },\n };\n }\n return null;\n }\n\n #setupTextChangeSubscription(text: string): void {\n this.#textChanges = new BehaviorSubject(text);\n\n this.#textChanges\n .pipe(debounceTime(500), takeUntil(this.#ngUnsubscribe))\n .subscribe((newValue) => {\n this.writeValue(newValue);\n });\n }\n\n #validateNumber(phoneNumber: string): boolean {\n try {\n const numberObj = this.#phoneUtils.parseAndKeepRawInput(\n phoneNumber,\n this.#phoneFieldComponent?.selectedCountry?.iso2\n );\n\n if (\n this.#phoneFieldComponent &&\n !this.#phoneFieldComponent.allowExtensions &&\n numberObj.getExtension()\n ) {\n return false;\n }\n\n return this.#phoneUtils.isValidNumber(numberObj);\n } catch (e) {\n return false;\n }\n }\n\n /**\n * Format's the given phone number based on the currently selected country.\n * @param phoneNumber The number to format\n */\n #formatNumber(phoneNumber: string): string {\n try {\n const numberObj = this.#phoneUtils.parseAndKeepRawInput(\n phoneNumber,\n this.#phoneFieldComponent?.selectedCountry?.iso2\n );\n if (this.#phoneUtils.isPossibleNumber(numberObj)) {\n switch (this.#phoneFieldComponent?.returnFormat) {\n case 'international':\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.INTERNATIONAL\n );\n case 'national':\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL\n );\n case 'default':\n default:\n if (\n this.#phoneFieldComponent?.selectedCountry?.iso2 !==\n this.#phoneFieldComponent?.defaultCountry\n ) {\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.INTERNATIONAL\n );\n } else {\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL\n );\n }\n }\n } else {\n return phoneNumber;\n }\n } catch (e) {\n /* sanity check */\n /* istanbul ignore next */\n return phoneNumber;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function , @typescript-eslint/no-unused-vars\n #onChange = (_: string | undefined) => {};\n\n // istanbul ignore next\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #onTouched = () => {};\n\n // istanbul ignore next\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #validatorChange = () => {};\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/indicators';\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 SkyI18nModule,\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":["i1","i2.SkyPhoneFieldAdapterService","i8","i1.SkyPhoneFieldAdapterService","i2.SkyPhoneFieldComponent"],"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":["/**\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 getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_phone_field_default_label: { message: 'Phone number' },\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 },\n};\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 { ElementRef, Injectable, OnDestroy, Renderer2 } from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\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\n #renderer: Renderer2;\n #resourcesService: SkyLibResourcesService;\n\n constructor(renderer: Renderer2, resourcesService: SkyLibResourcesService) {\n this.#renderer = renderer;\n this.#resourcesService = resourcesService;\n }\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 setElementDisabledState(\n elementRef: ElementRef,\n disabled: boolean\n ): void {\n this.#renderer.setProperty(elementRef.nativeElement, 'disabled', disabled);\n }\n\n public setElementPlaceholder(\n elementRef: ElementRef,\n placeholder: string\n ): void {\n this.#renderer.setAttribute(\n elementRef.nativeElement,\n 'placeholder',\n placeholder\n );\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 setAriaLabel(element: ElementRef): void {\n /* Sanity check */\n /* istanbul ignore else */\n if (!element.nativeElement.getAttribute('aria-label')) {\n this.#resourcesService\n .getString('skyux_phone_field_default_label')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((value: string) => {\n this.#renderer.setAttribute(\n element.nativeElement,\n 'aria-label',\n value\n );\n });\n }\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} from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { SkyInputBoxHostService } from '@skyux/forms';\nimport { SkyCountryFieldCountry } from '@skyux/lookup';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport {\n PhoneNumberFormat,\n PhoneNumberType,\n PhoneNumberUtil,\n} from 'google-libphonenumber';\nimport 'intl-tel-input';\n\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldCountry } from './types/country';\nimport { SkyPhoneFieldNumberReturnFormat } from './types/number-return-format';\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 animations: [\n trigger('blockAnimationOnLoad', [transition(':enter', [])]),\n trigger('countrySearchAnimation', [\n transition(':enter', [\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(':leave', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n width: 0,\n })\n ),\n ]),\n ]),\n trigger('phoneInputAnimation', [\n transition(':enter', [\n style({\n opacity: 0,\n }),\n animate(\n '150ms ease-in',\n style({\n opacity: 1,\n })\n ),\n ]),\n transition(':leave', [\n animate(\n '150ms 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 && value !== this.#_defaultCountry) {\n this.#_defaultCountry = value.toLowerCase();\n\n this.#defaultCountryData = this.countries.find(\n (country) => country.iso2 === this.#_defaultCountry\n );\n }\n }\n\n public get defaultCountry(): string | undefined {\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\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>;\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 this.#_selectedCountry.exampleNumber = this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL\n );\n }\n\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 #phoneUtils = PhoneNumberUtil.getInstance();\n\n #longestDialCodeLength = 0;\n\n #_defaultCountry: string | undefined;\n\n #_selectedCountry: SkyPhoneFieldCountry | undefined;\n\n #countrySearchFormControl: FormControl<SkyCountryFieldCountry | undefined> =\n new FormControl();\n\n #formBuilder: FormBuilder;\n #adapterService: SkyPhoneFieldAdapterService;\n #changeDetector: ChangeDetectorRef;\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 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.countrySearchForm = this.#formBuilder.group({\n countrySearch: this.#countrySearchFormControl,\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 if (!this.defaultCountry) {\n this.defaultCountry = 'us';\n }\n\n if (!this.selectedCountry) {\n this.selectedCountry = this.#defaultCountryData;\n }\n this.#changeDetector.markForCheck();\n }, 0);\n\n this.#countrySearchFormControl.valueChanges.subscribe(\n (newValue?: SkyCountryFieldCountry) => {\n if (newValue?.iso2 !== this.selectedCountry?.iso2) {\n this.selectedCountry = newValue;\n }\n }\n );\n }\n\n public ngOnDestroy(): void {\n this.selectedCountryChange.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 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(phoneNumber: string): boolean {\n if (!phoneNumber || !phoneNumber.startsWith('+')) {\n return false;\n }\n\n let newCountry: SkyPhoneFieldCountry | undefined;\n\n for (let i = 1; i < this.#longestDialCodeLength + 1; i++) {\n const dialCode = phoneNumber.substring(0, i);\n\n let foundCountry = this.countries.find(\n (country) => country.dialCode === dialCode && country.priority === 0\n );\n\n if (foundCountry) {\n // Ensure that the country that was found is one of the supported countries\n if (\n this.supportedCountryISOs &&\n this.supportedCountryISOs.findIndex(\n (isoCode) =>\n isoCode.toUpperCase() === foundCountry?.iso2.toUpperCase()\n ) < 0\n ) {\n foundCountry = undefined;\n }\n\n if (foundCountry !== this.selectedCountry) {\n newCountry = foundCountry;\n }\n }\n }\n\n if (newCountry) {\n this.selectedCountry = newCountry;\n this.#changeDetector.markForCheck();\n return true;\n }\n\n return false;\n }\n}\n","<ng-container *ngIf=\"!inputBoxHostSvc\">\n <div class=\"sky-input-group sky-phone-field\" [@blockAnimationOnLoad]>\n <ng-container *ngTemplateOutlet=\"countryBtnTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplateRef\"></ng-container>\n </div>\n</ng-container>\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 <span\n *ngIf=\"phoneInputShown\"\n class=\"sky-phone-field-container\"\n [@.disabled]=\"\n inputBoxHostSvc &&\n (themeSvc?.settingsChange | async)?.currentSettings?.theme?.name ===\n 'modern'\n \"\n [@phoneInputAnimation]=\"phoneInputShown ? 'open' : 'closed'\"\n (@phoneInputAnimation.done)=\"phoneInputAnimationEnd($event)\"\n >\n <ng-content></ng-content>\n </span>\n <span\n *ngIf=\"countrySearchShown\"\n class=\"sky-phone-field-container\"\n [@.disabled]=\"\n inputBoxHostSvc &&\n (themeSvc?.settingsChange | async)?.currentSettings?.theme?.name ===\n 'modern'\n \"\n [@countrySearchAnimation]=\"countrySearchShown ? 'open' : 'closed'\"\n (@countrySearchAnimation.done)=\"countrySearchAnimationEnd($event)\"\n >\n <div class=\"sky-phone-field-country-search\" [formGroup]=\"countrySearchForm\">\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 </sky-country-field>\n </div>\n </span>\n</ng-template>\n\n<ng-template #buttonsInsetTemplateRef>\n <div\n *ngIf=\"countrySearchShown\"\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 *skyThemeIf=\"'default'\" icon=\"chevron-circle-left\" size=\"lg\">\n </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"double-chevron-left\"\n iconType=\"skyux\"\n size=\"2x\"\n >\n </sky-icon>\n </button>\n </div>\n</ng-template>\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n forwardRef,\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 { BehaviorSubject, Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\nimport { SkyPhoneFieldCountry } from './types/country';\n\nconst SKY_PHONE_FIELD_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyPhoneFieldInputDirective),\n multi: true,\n};\n\nconst SKY_PHONE_FIELD_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyPhoneFieldInputDirective),\n multi: true,\n};\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: [SKY_PHONE_FIELD_VALUE_ACCESSOR, SKY_PHONE_FIELD_VALIDATOR],\n})\nexport class SkyPhoneFieldInputDirective\n implements OnInit, OnDestroy, AfterViewInit, ControlValueAccessor, Validator\n{\n /**\n * Whether to disable the phone field.\n * @default false\n */\n @Input()\n public set disabled(value: boolean | undefined) {\n const coercedValue = coerceBooleanProperty(value);\n if (this.#phoneFieldComponent) {\n this.#phoneFieldComponent.countrySelectDisabled = coercedValue;\n this.#adapterService?.setElementDisabledState(this.#elRef, coercedValue);\n }\n this.#_disabled = coercedValue;\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()\n public skyPhoneFieldNoValidate: boolean | undefined = false;\n\n set #modelValue(value: string | undefined) {\n const valueOrDefault = value ?? '';\n this.#_modelValue = valueOrDefault;\n this.#adapterService?.setElementValue(this.#elRef, valueOrDefault);\n\n if (valueOrDefault) {\n const formattedValue = this.#formatNumber(valueOrDefault.toString());\n\n this.#onChange(formattedValue);\n } else {\n this.#onChange(valueOrDefault);\n }\n this.#validatorChange();\n }\n\n get #modelValue(): string {\n return this.#_modelValue;\n }\n\n #control: AbstractControl | undefined;\n\n #textChanges: BehaviorSubject<string> | undefined;\n\n #ngUnsubscribe = new Subject<void>();\n\n #phoneUtils = PhoneNumberUtil.getInstance();\n\n #_disabled!: boolean;\n\n #_modelValue = '';\n\n #changeDetector: ChangeDetectorRef;\n #elRef: ElementRef;\n\n #adapterService: SkyPhoneFieldAdapterService | undefined;\n #phoneFieldComponent: SkyPhoneFieldComponent | undefined;\n\n public constructor(\n changeDetector: ChangeDetectorRef,\n elRef: ElementRef,\n @Optional() adapterService?: SkyPhoneFieldAdapterService,\n @Optional() phoneFieldComponent?: SkyPhoneFieldComponent\n ) {\n this.#changeDetector = changeDetector;\n this.#elRef = elRef;\n this.#adapterService = adapterService;\n this.#phoneFieldComponent = phoneFieldComponent;\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.#adapterService?.setElementType(this.#elRef);\n this.#adapterService?.addElementClass(this.#elRef, 'sky-form-control');\n if (this.#phoneFieldComponent?.selectedCountry?.exampleNumber) {\n this.#adapterService?.setElementPlaceholder(\n this.#elRef,\n this.#phoneFieldComponent.selectedCountry.exampleNumber\n );\n }\n\n this.#adapterService?.setAriaLabel(this.#elRef);\n }\n\n public ngAfterViewInit(): void {\n this.#phoneFieldComponent?.selectedCountryChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((country: SkyPhoneFieldCountry) => {\n this.#modelValue = this.#elRef.nativeElement.value;\n if (country?.exampleNumber) {\n this.#adapterService?.setElementPlaceholder(\n this.#elRef,\n country.exampleNumber\n );\n }\n });\n\n // This is needed to address a bug in Angular 4, where the value is not changed on the view.\n // See: https://github.com/angular/angular/issues/13792\n /* istanbul ignore else */\n if (this.#control && this.#modelValue) {\n this.#control.setValue(this.#modelValue, { emitEvent: false });\n this.#changeDetector.detectChanges();\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n /**\n * Writes the new value for reactive forms on change events on the input element\n * @param event The change event that was received\n */\n @HostListener('change', ['$event'])\n public onInputChange(event: any): void {\n if (!this.#textChanges) {\n this.#setupTextChangeSubscription(event.target.value);\n } else {\n this.#textChanges.next(event.target.value);\n }\n }\n\n /**\n * Marks reactive form controls as touched on input blur events\n */\n @HostListener('blur')\n public onInputBlur(): void {\n this.#onTouched();\n }\n\n @HostListener('input', ['$event'])\n public onInputTyping(event: any): void {\n if (!this.#textChanges) {\n this.#setupTextChangeSubscription(event.target.value);\n } else {\n this.#textChanges.next(event.target.value);\n }\n }\n\n /**\n * Writes the new value for reactive forms\n * @param value The new value for the input\n */\n public writeValue(value: string): void {\n this.#phoneFieldComponent?.setCountryByDialCode(value);\n\n this.#modelValue = value;\n }\n\n public registerOnChange(fn: (value: string | undefined) => void): void {\n this.#onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.#onTouched = fn;\n }\n\n public registerOnValidatorChange(fn: () => void): void {\n this.#validatorChange = fn;\n }\n\n /**\n * Sets the disabled state on the input\n * @param isDisabled the new value of the input's disabled state\n */\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /**\n * Validate's the form control's current value\n * @param control the form control for the input\n */\n public validate(control: AbstractControl): ValidationErrors | null {\n if (!this.#control) {\n this.#control = control;\n }\n\n if (this.skyPhoneFieldNoValidate) {\n return null;\n }\n\n const value = control.value;\n\n if (!value) {\n return null;\n }\n\n if (\n this.#phoneFieldComponent?.selectedCountry &&\n !this.#validateNumber(value)\n ) {\n if (!this.#textChanges) {\n // Mark the invalid control as touched so that the input's invalid CSS styles appear.\n // (This is only required when the invalid value is set by the FormControl constructor.)\n // We don't do this if the input is the active element so that we don't show validation\n // errors unless it is invalid on initialization or the input has been blurred.\n control.markAsTouched();\n }\n\n return {\n skyPhoneField: {\n invalid: value,\n },\n };\n }\n return null;\n }\n\n #setupTextChangeSubscription(text: string): void {\n this.#textChanges = new BehaviorSubject(text);\n\n this.#textChanges\n .pipe(debounceTime(500), takeUntil(this.#ngUnsubscribe))\n .subscribe((newValue) => {\n this.writeValue(newValue);\n });\n }\n\n #validateNumber(phoneNumber: string): boolean {\n try {\n const numberObj = this.#phoneUtils.parseAndKeepRawInput(\n phoneNumber,\n this.#phoneFieldComponent?.selectedCountry?.iso2\n );\n\n if (\n this.#phoneFieldComponent &&\n !this.#phoneFieldComponent.allowExtensions &&\n numberObj.getExtension()\n ) {\n return false;\n }\n\n return this.#phoneUtils.isValidNumber(numberObj);\n } catch (e) {\n return false;\n }\n }\n\n /**\n * Format's the given phone number based on the currently selected country.\n * @param phoneNumber The number to format\n */\n #formatNumber(phoneNumber: string): string {\n try {\n const numberObj = this.#phoneUtils.parseAndKeepRawInput(\n phoneNumber,\n this.#phoneFieldComponent?.selectedCountry?.iso2\n );\n if (this.#phoneUtils.isPossibleNumber(numberObj)) {\n switch (this.#phoneFieldComponent?.returnFormat) {\n case 'international':\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.INTERNATIONAL\n );\n case 'national':\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL\n );\n case 'default':\n default:\n if (\n this.#phoneFieldComponent?.selectedCountry?.iso2 !==\n this.#phoneFieldComponent?.defaultCountry\n ) {\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.INTERNATIONAL\n );\n } else {\n return this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL\n );\n }\n }\n } else {\n return phoneNumber;\n }\n } catch (e) {\n /* sanity check */\n /* istanbul ignore next */\n return phoneNumber;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function , @typescript-eslint/no-unused-vars\n #onChange = (_: string | undefined) => {};\n\n // istanbul ignore next\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #onTouched = () => {};\n\n // istanbul ignore next\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n #validatorChange = () => {};\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/indicators';\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 SkyI18nModule,\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":["i1","i2.SkyPhoneFieldAdapterService","i8","i1.SkyPhoneFieldAdapterService","i2.SkyPhoneFieldComponent"],"mappings":"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"}
|
|
@@ -101,7 +101,7 @@ class SkyPhoneFieldFixture {
|
|
|
101
101
|
return __classPrivateFieldGet(this, _SkyPhoneFieldFixture_fixture, "f").whenStable();
|
|
102
102
|
}
|
|
103
103
|
/**
|
|
104
|
-
* Opens the country selector,
|
|
104
|
+
* Opens the country selector, performs a search, but makes no selection.
|
|
105
105
|
* @param searchText The name of the country to select.
|
|
106
106
|
* @returns The list of country names matching the search text.
|
|
107
107
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-phone-field-testing.mjs","sources":["../../../../../libs/components/phone-field/testing/src/phonefield/phone-field-testing.module.ts","../../../../../libs/components/phone-field/testing/src/phonefield/phone-field-fixture.ts","../../../../../libs/components/phone-field/testing/src/skyux-phone-field-testing.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\nimport { SkyPhoneFieldModule } from '@skyux/phone-field';\n\n/**\n * @internal\n */\n@NgModule({\n exports: [\n SkyPhoneFieldModule,\n\n // The noop animations module needs to be loaded last to avoid\n // subsequent modules adding animations and overriding this.\n NoopAnimationsModule,\n ],\n})\nexport class SkyPhoneFieldTestingModule {}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\nimport { SkyCountryFieldFixture } from '@skyux/lookup/testing';\n\n/**\n * Provides information for and interaction with a SKY UX phone field component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n * @internal\n */\nexport class SkyPhoneFieldFixture {\n /**\n * The value of the input field for the phone field.\n */\n public get inputText(): string {\n return this.#phoneFieldInput.value;\n }\n\n /**\n * This property is lazy loaded and should be accessed via the #getCountryFixture() function.\n */\n #_countryFixture: SkyCountryFieldFixture | undefined;\n\n #_debugEl: DebugElement;\n\n #fixture: ComponentFixture<unknown>;\n\n #skyTestId: string;\n\n constructor(fixture: ComponentFixture<unknown>, skyTestId: string) {\n this.#fixture = fixture;\n this.#skyTestId = skyTestId;\n this.#_debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-phone-field'\n );\n\n // The country selector needs extra time to initialize.\n // Consumers shouldn't need to work around this so we do an extra detect here\n fixture.detectChanges();\n }\n\n /**\n * Blurs the phone field input and returns a promise that indicates when the action is complete.\n */\n public async blur(): Promise<void> {\n SkyAppTestUtility.fireDomEvent(this.#phoneFieldInput, 'blur');\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n\n /**\n * Returns the selected country iso2 code.\n */\n public async getSelectedCountryIso2(): Promise<string | null> {\n // Wait for the country field to initialize.\n await this.#fixture.whenStable();\n return this.#countryFlagButtonContainer.getAttribute('data-sky-test-iso2');\n }\n\n /**\n * Returns the selected country name.\n */\n public async getSelectedCountryName(): Promise<string | null> {\n // Wait for the country field to initialize.\n await this.#fixture.whenStable();\n return this.#countryFlagButtonContainer.getAttribute('data-sky-test-name');\n }\n\n /**\n * Sets the value of the input field for the phone field.\n */\n public async setInputText(inputText: string): Promise<void> {\n const inputEl = this.#phoneFieldInput;\n inputEl.value = inputText;\n\n SkyAppTestUtility.fireDomEvent(inputEl, 'input');\n this.#fixture.detectChanges();\n\n SkyAppTestUtility.fireDomEvent(inputEl, 'change');\n\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n\n /**\n * Opens the country selector, peforms a search, but makes no selection.\n * @param searchText The name of the country to select.\n * @returns The list of country names matching the search text.\n */\n public async searchCountry(searchText: string): Promise<string[]> {\n await this.#openCountrySelection();\n\n const countryFixture = await this.#getCountryFixture();\n const results = await countryFixture.search(searchText);\n\n await this.#waitForCountrySelection();\n return results;\n }\n\n /**\n * Opens the country selector, performs a search, and selects the first result (if any).\n * @param searchText The name of the country to select.\n */\n public async selectCountry(searchText: string): Promise<void> {\n await this.#openCountrySelection();\n\n const countryFixture = await this.#getCountryFixture();\n await countryFixture.searchAndSelectFirstResult(searchText);\n\n return this.#waitForCountrySelection();\n }\n\n /**\n * Gets a boolean promise indicating if the phone field is disabled.\n */\n public async isDisabled(): Promise<boolean> {\n const disabled = this.#phoneFieldInput.getAttribute('disabled');\n return coerceBooleanProperty(disabled);\n }\n\n /**\n * Gets a boolean promise indicating if the phone field is valid.\n */\n public async isValid(): Promise<boolean> {\n return this.#phoneFieldInput.classList.contains('ng-valid');\n }\n\n get #countryElement(): HTMLInputElement {\n return this.#_debugEl.query(By.css('sky-country-field')).nativeElement;\n }\n\n get #countryFlagButtonContainer(): HTMLInputElement {\n return this.#_debugEl.query(By.css('.sky-phone-field-country-btn'))\n .nativeElement;\n }\n\n get #countryFlagButton(): HTMLInputElement {\n return this.#_debugEl.query(By.css('.sky-phone-field-country-btn .sky-btn'))\n .nativeElement;\n }\n\n get #phoneFieldInput(): HTMLInputElement {\n return this.#_debugEl.query(By.css('input[skyPhoneFieldInput]'))\n .nativeElement;\n }\n\n /**\n * The country-field can take a really long time to initialize. Since we can't perform an await\n * in our constructor, it's safest to do a lazy load of the country field to avoid any race\n * conditions where a test tries to access the sky-country-field element too quickly.\n */\n async #getCountryFixture(): Promise<SkyCountryFieldFixture> {\n if (this.#_countryFixture === undefined) {\n // tag the country field with a sky test id\n const countrySkyTestId = `${this.#skyTestId}-country`;\n this.#setSkyTestId(this.#countryElement, countrySkyTestId);\n\n // initialize the country fixture\n this.#_countryFixture = new SkyCountryFieldFixture(\n this.#fixture,\n countrySkyTestId\n );\n\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n }\n\n return this.#_countryFixture;\n }\n\n async #openCountrySelection(): Promise<void> {\n this.#countryFlagButton.click();\n return this.#waitForCountrySelection();\n }\n\n #setSkyTestId(element: HTMLElement, skyTestId: string): void {\n element.setAttribute('data-sky-id', skyTestId);\n }\n\n async #waitForCountrySelection(): Promise<void> {\n // any country selection needs extra time to complete\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skyux-phone-field-testing.mjs","sources":["../../../../../libs/components/phone-field/testing/src/phonefield/phone-field-testing.module.ts","../../../../../libs/components/phone-field/testing/src/phonefield/phone-field-fixture.ts","../../../../../libs/components/phone-field/testing/src/skyux-phone-field-testing.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\nimport { SkyPhoneFieldModule } from '@skyux/phone-field';\n\n/**\n * @internal\n */\n@NgModule({\n exports: [\n SkyPhoneFieldModule,\n\n // The noop animations module needs to be loaded last to avoid\n // subsequent modules adding animations and overriding this.\n NoopAnimationsModule,\n ],\n})\nexport class SkyPhoneFieldTestingModule {}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\nimport { SkyCountryFieldFixture } from '@skyux/lookup/testing';\n\n/**\n * Provides information for and interaction with a SKY UX phone field component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n * @internal\n */\nexport class SkyPhoneFieldFixture {\n /**\n * The value of the input field for the phone field.\n */\n public get inputText(): string {\n return this.#phoneFieldInput.value;\n }\n\n /**\n * This property is lazy loaded and should be accessed via the #getCountryFixture() function.\n */\n #_countryFixture: SkyCountryFieldFixture | undefined;\n\n #_debugEl: DebugElement;\n\n #fixture: ComponentFixture<unknown>;\n\n #skyTestId: string;\n\n constructor(fixture: ComponentFixture<unknown>, skyTestId: string) {\n this.#fixture = fixture;\n this.#skyTestId = skyTestId;\n this.#_debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-phone-field'\n );\n\n // The country selector needs extra time to initialize.\n // Consumers shouldn't need to work around this so we do an extra detect here\n fixture.detectChanges();\n }\n\n /**\n * Blurs the phone field input and returns a promise that indicates when the action is complete.\n */\n public async blur(): Promise<void> {\n SkyAppTestUtility.fireDomEvent(this.#phoneFieldInput, 'blur');\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n\n /**\n * Returns the selected country iso2 code.\n */\n public async getSelectedCountryIso2(): Promise<string | null> {\n // Wait for the country field to initialize.\n await this.#fixture.whenStable();\n return this.#countryFlagButtonContainer.getAttribute('data-sky-test-iso2');\n }\n\n /**\n * Returns the selected country name.\n */\n public async getSelectedCountryName(): Promise<string | null> {\n // Wait for the country field to initialize.\n await this.#fixture.whenStable();\n return this.#countryFlagButtonContainer.getAttribute('data-sky-test-name');\n }\n\n /**\n * Sets the value of the input field for the phone field.\n */\n public async setInputText(inputText: string): Promise<void> {\n const inputEl = this.#phoneFieldInput;\n inputEl.value = inputText;\n\n SkyAppTestUtility.fireDomEvent(inputEl, 'input');\n this.#fixture.detectChanges();\n\n SkyAppTestUtility.fireDomEvent(inputEl, 'change');\n\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n\n /**\n * Opens the country selector, performs a search, but makes no selection.\n * @param searchText The name of the country to select.\n * @returns The list of country names matching the search text.\n */\n public async searchCountry(searchText: string): Promise<string[]> {\n await this.#openCountrySelection();\n\n const countryFixture = await this.#getCountryFixture();\n const results = await countryFixture.search(searchText);\n\n await this.#waitForCountrySelection();\n return results;\n }\n\n /**\n * Opens the country selector, performs a search, and selects the first result (if any).\n * @param searchText The name of the country to select.\n */\n public async selectCountry(searchText: string): Promise<void> {\n await this.#openCountrySelection();\n\n const countryFixture = await this.#getCountryFixture();\n await countryFixture.searchAndSelectFirstResult(searchText);\n\n return this.#waitForCountrySelection();\n }\n\n /**\n * Gets a boolean promise indicating if the phone field is disabled.\n */\n public async isDisabled(): Promise<boolean> {\n const disabled = this.#phoneFieldInput.getAttribute('disabled');\n return coerceBooleanProperty(disabled);\n }\n\n /**\n * Gets a boolean promise indicating if the phone field is valid.\n */\n public async isValid(): Promise<boolean> {\n return this.#phoneFieldInput.classList.contains('ng-valid');\n }\n\n get #countryElement(): HTMLInputElement {\n return this.#_debugEl.query(By.css('sky-country-field')).nativeElement;\n }\n\n get #countryFlagButtonContainer(): HTMLInputElement {\n return this.#_debugEl.query(By.css('.sky-phone-field-country-btn'))\n .nativeElement;\n }\n\n get #countryFlagButton(): HTMLInputElement {\n return this.#_debugEl.query(By.css('.sky-phone-field-country-btn .sky-btn'))\n .nativeElement;\n }\n\n get #phoneFieldInput(): HTMLInputElement {\n return this.#_debugEl.query(By.css('input[skyPhoneFieldInput]'))\n .nativeElement;\n }\n\n /**\n * The country-field can take a really long time to initialize. Since we can't perform an await\n * in our constructor, it's safest to do a lazy load of the country field to avoid any race\n * conditions where a test tries to access the sky-country-field element too quickly.\n */\n async #getCountryFixture(): Promise<SkyCountryFieldFixture> {\n if (this.#_countryFixture === undefined) {\n // tag the country field with a sky test id\n const countrySkyTestId = `${this.#skyTestId}-country`;\n this.#setSkyTestId(this.#countryElement, countrySkyTestId);\n\n // initialize the country fixture\n this.#_countryFixture = new SkyCountryFieldFixture(\n this.#fixture,\n countrySkyTestId\n );\n\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n }\n\n return this.#_countryFixture;\n }\n\n async #openCountrySelection(): Promise<void> {\n this.#countryFlagButton.click();\n return this.#waitForCountrySelection();\n }\n\n #setSkyTestId(element: HTMLElement, skyTestId: string): void {\n element.setAttribute('data-sky-id', skyTestId);\n }\n\n async #waitForCountrySelection(): Promise<void> {\n // any country selection needs extra time to complete\n this.#fixture.detectChanges();\n await this.#fixture.whenStable();\n\n this.#fixture.detectChanges();\n return this.#fixture.whenStable();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -191,7 +191,7 @@ class SkyPhoneFieldComponent {
|
|
|
191
191
|
});
|
|
192
192
|
}
|
|
193
193
|
/**
|
|
194
|
-
*
|
|
194
|
+
* Whether phone number extensions are allowed.
|
|
195
195
|
* @default true
|
|
196
196
|
*/
|
|
197
197
|
set allowExtensions(value) {
|
|
@@ -201,7 +201,7 @@ class SkyPhoneFieldComponent {
|
|
|
201
201
|
return __classPrivateFieldGet(this, _SkyPhoneFieldComponent__allowExtensions, "f");
|
|
202
202
|
}
|
|
203
203
|
/**
|
|
204
|
-
*
|
|
204
|
+
* The
|
|
205
205
|
* [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)
|
|
206
206
|
* country code for the default country. The country selector button displays a flag
|
|
207
207
|
* icon for this default country until users select a different country.
|
|
@@ -217,7 +217,7 @@ class SkyPhoneFieldComponent {
|
|
|
217
217
|
return __classPrivateFieldGet(this, _SkyPhoneFieldComponent__defaultCountry, "f");
|
|
218
218
|
}
|
|
219
219
|
/**
|
|
220
|
-
*
|
|
220
|
+
* The format for validated phone numbers.
|
|
221
221
|
* Options include: `"default"`, `"international"`, and `"national"`.
|
|
222
222
|
* @default "default"
|
|
223
223
|
*/
|
|
@@ -228,7 +228,7 @@ class SkyPhoneFieldComponent {
|
|
|
228
228
|
__classPrivateFieldSet(this, _SkyPhoneFieldComponent__returnFormat, value || 'default', "f");
|
|
229
229
|
}
|
|
230
230
|
/**
|
|
231
|
-
*
|
|
231
|
+
* The currently selected country to validate against.
|
|
232
232
|
*/
|
|
233
233
|
set selectedCountry(newCountry) {
|
|
234
234
|
if (newCountry &&
|
|
@@ -504,7 +504,7 @@ class SkyPhoneFieldInputDirective {
|
|
|
504
504
|
constructor(changeDetector, elRef, adapterService, phoneFieldComponent) {
|
|
505
505
|
_SkyPhoneFieldInputDirective_instances.add(this);
|
|
506
506
|
/**
|
|
507
|
-
*
|
|
507
|
+
* Whether to prevent validation on the phone number input. For validation,
|
|
508
508
|
* phone numbers are driven through the `ngModel` attribute that you specify on an
|
|
509
509
|
* `input` element or on a `FormControl` in a reactive form. To prevent validation,
|
|
510
510
|
* set this property to `true`.
|
|
@@ -535,7 +535,7 @@ class SkyPhoneFieldInputDirective {
|
|
|
535
535
|
__classPrivateFieldSet(this, _SkyPhoneFieldInputDirective_phoneFieldComponent, phoneFieldComponent, "f");
|
|
536
536
|
}
|
|
537
537
|
/**
|
|
538
|
-
*
|
|
538
|
+
* Whether to disable the phone field.
|
|
539
539
|
* @default false
|
|
540
540
|
*/
|
|
541
541
|
set disabled(value) {
|