@skyux/phone-field 12.41.1 → 12.44.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.
@@ -159,17 +159,17 @@ class SkyPhoneFieldFixture {
159
159
  * @internal
160
160
  */
161
161
  class SkyPhoneFieldTestingModule {
162
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyPhoneFieldTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
163
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: SkyPhoneFieldTestingModule, exports: [SkyPhoneFieldModule,
162
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyPhoneFieldTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
163
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: SkyPhoneFieldTestingModule, exports: [SkyPhoneFieldModule,
164
164
  // The noop animations module needs to be loaded last to avoid
165
165
  // subsequent modules adding animations and overriding this.
166
166
  NoopAnimationsModule] }); }
167
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyPhoneFieldTestingModule, imports: [SkyPhoneFieldModule,
167
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyPhoneFieldTestingModule, imports: [SkyPhoneFieldModule,
168
168
  // The noop animations module needs to be loaded last to avoid
169
169
  // subsequent modules adding animations and overriding this.
170
170
  NoopAnimationsModule] }); }
171
171
  }
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyPhoneFieldTestingModule, decorators: [{
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyPhoneFieldTestingModule, decorators: [{
173
173
  type: NgModule,
174
174
  args: [{
175
175
  exports: [
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-phone-field-testing.mjs","sources":["../../../../../libs/components/phone-field/testing/src/legacy/phone-field/phone-field-fixture.ts","../../../../../libs/components/phone-field/testing/src/legacy/phone-field/phone-field-testing.module.ts","../../../../../libs/components/phone-field/testing/src/modules/phone-field/phone-field-input-harness.ts","../../../../../libs/components/phone-field/testing/src/modules/phone-field/phone-field-harness.ts","../../../../../libs/components/phone-field/testing/src/skyux-phone-field-testing.ts"],"sourcesContent":["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 await 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 await 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 await 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\n return await Promise.resolve(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 await Promise.resolve(\n this.#phoneFieldInput.classList.contains('ng-valid'),\n );\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 await 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 await this.#fixture.whenStable();\n }\n}\n","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 { SkyInputHarness } from '@skyux/core/testing';\n\n/**\n * Harness to interact with the phone field input harness.\n */\nexport class SkyPhoneFieldInputHarness extends SkyInputHarness {\n /**\n * @internal\n */\n public static hostSelector = '[skyPhoneFieldInput]';\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyCountryFieldHarness } from '@skyux/lookup/testing';\n\nimport { SkyPhoneFieldHarnessFilters } from './phone-field-harness-filters';\nimport { SkyPhoneFieldInputHarness } from './phone-field-input-harness';\n\n/**\n * Harness for interacting with a phone field component in tests.\n */\nexport class SkyPhoneFieldHarness extends SkyComponentHarness {\n /**\n * Finds a standard phone field component, or a phone field component that is wrapped by an input box component.\n * For input box implementations, we need to use the `.sky-input-box` selector since the `sky-country-field`\n * element is removed from the DOM.\n * @internal\n */\n public static hostSelector = 'sky-phone-field,.sky-input-box';\n\n #getCountryField = this.locatorForOptional(SkyCountryFieldHarness);\n #getCountryFieldButton = this.locatorFor(\n '.sky-phone-field-country-btn button',\n );\n #getCountryFieldButtonContainer = this.locatorFor(\n '.sky-phone-field-country-btn',\n );\n #getInput = this.locatorFor(SkyPhoneFieldInputHarness);\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyPhoneFieldHarness` that meets certain criteria.\n *\n * These filters only work for standalone phone fields. For phone fields\n * wrapped inside `sky-input-box`, place filters on the input box\n * instead and query the datepicker using a `SkyInputBoxHarness`.\n * For the input box implementation, see the code example.\n */\n public static with(\n filters: SkyPhoneFieldHarnessFilters,\n ): HarnessPredicate<SkyPhoneFieldHarness> {\n return SkyPhoneFieldHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the phone field input harness.\n */\n public async getControl(): Promise<SkyPhoneFieldInputHarness> {\n return await this.#getInput();\n }\n\n /**\n * Returns the selected country iso2 code.\n */\n public async getSelectedCountryIso2(): Promise<string | null> {\n return await (\n await this.#getCountryFieldButtonContainer()\n ).getAttribute('data-sky-test-iso2');\n }\n\n /**\n * Returns the selected country name.\n */\n public async getSelectedCountryName(): Promise<string | null> {\n return await (\n await this.#getCountryFieldButtonContainer()\n ).getAttribute('data-sky-test-name');\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 const countryField = await this.#openCountrySelectionAndSearch(searchText);\n\n return await countryField.getSearchResultsText();\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 const countryField = await this.#openCountrySelectionAndSearch(searchText);\n\n await countryField.selectSearchResult({});\n }\n\n async #openCountrySelectionAndSearch(\n searchText: string,\n ): Promise<SkyCountryFieldHarness> {\n await (await this.#getCountryFieldButton()).click();\n\n const countryField = await this.#getCountryField();\n\n await countryField?.enterText(searchText);\n\n return countryField!;\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/legacy/phone-field/phone-field-fixture.ts","../../../../../libs/components/phone-field/testing/src/legacy/phone-field/phone-field-testing.module.ts","../../../../../libs/components/phone-field/testing/src/modules/phone-field/phone-field-input-harness.ts","../../../../../libs/components/phone-field/testing/src/modules/phone-field/phone-field-harness.ts","../../../../../libs/components/phone-field/testing/src/skyux-phone-field-testing.ts"],"sourcesContent":["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 await 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 await 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 await 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\n return await Promise.resolve(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 await Promise.resolve(\n this.#phoneFieldInput.classList.contains('ng-valid'),\n );\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 await 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 await this.#fixture.whenStable();\n }\n}\n","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 { SkyInputHarness } from '@skyux/core/testing';\n\n/**\n * Harness to interact with the phone field input harness.\n */\nexport class SkyPhoneFieldInputHarness extends SkyInputHarness {\n /**\n * @internal\n */\n public static hostSelector = '[skyPhoneFieldInput]';\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyCountryFieldHarness } from '@skyux/lookup/testing';\n\nimport { SkyPhoneFieldHarnessFilters } from './phone-field-harness-filters';\nimport { SkyPhoneFieldInputHarness } from './phone-field-input-harness';\n\n/**\n * Harness for interacting with a phone field component in tests.\n */\nexport class SkyPhoneFieldHarness extends SkyComponentHarness {\n /**\n * Finds a standard phone field component, or a phone field component that is wrapped by an input box component.\n * For input box implementations, we need to use the `.sky-input-box` selector since the `sky-country-field`\n * element is removed from the DOM.\n * @internal\n */\n public static hostSelector = 'sky-phone-field,.sky-input-box';\n\n #getCountryField = this.locatorForOptional(SkyCountryFieldHarness);\n #getCountryFieldButton = this.locatorFor(\n '.sky-phone-field-country-btn button',\n );\n #getCountryFieldButtonContainer = this.locatorFor(\n '.sky-phone-field-country-btn',\n );\n #getInput = this.locatorFor(SkyPhoneFieldInputHarness);\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyPhoneFieldHarness` that meets certain criteria.\n *\n * These filters only work for standalone phone fields. For phone fields\n * wrapped inside `sky-input-box`, place filters on the input box\n * instead and query the datepicker using a `SkyInputBoxHarness`.\n * For the input box implementation, see the code example.\n */\n public static with(\n filters: SkyPhoneFieldHarnessFilters,\n ): HarnessPredicate<SkyPhoneFieldHarness> {\n return SkyPhoneFieldHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the phone field input harness.\n */\n public async getControl(): Promise<SkyPhoneFieldInputHarness> {\n return await this.#getInput();\n }\n\n /**\n * Returns the selected country iso2 code.\n */\n public async getSelectedCountryIso2(): Promise<string | null> {\n return await (\n await this.#getCountryFieldButtonContainer()\n ).getAttribute('data-sky-test-iso2');\n }\n\n /**\n * Returns the selected country name.\n */\n public async getSelectedCountryName(): Promise<string | null> {\n return await (\n await this.#getCountryFieldButtonContainer()\n ).getAttribute('data-sky-test-name');\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 const countryField = await this.#openCountrySelectionAndSearch(searchText);\n\n return await countryField.getSearchResultsText();\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 const countryField = await this.#openCountrySelectionAndSearch(searchText);\n\n await countryField.selectSearchResult({});\n }\n\n async #openCountrySelectionAndSearch(\n searchText: string,\n ): Promise<SkyCountryFieldHarness> {\n await (await this.#getCountryFieldButton()).click();\n\n const countryField = await this.#getCountryField();\n\n await countryField?.enterText(searchText);\n\n return countryField!;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -59,10 +59,10 @@ class SkyPhoneFieldAdapterService {
59
59
  const input = el.querySelector('.sky-phone-field-container input');
60
60
  input?.focus();
61
61
  }
62
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyPhoneFieldAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
63
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyPhoneFieldAdapterService }); }
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyPhoneFieldAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
63
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyPhoneFieldAdapterService }); }
64
64
  }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyPhoneFieldAdapterService, decorators: [{
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyPhoneFieldAdapterService, decorators: [{
66
66
  type: Injectable
67
67
  }] });
68
68
 
@@ -112,11 +112,11 @@ SkyLibResourcesService.addResources(RESOURCES);
112
112
  * Import into any component library module that needs to use resource strings.
113
113
  */
114
114
  class SkyPhoneFieldResourcesModule {
115
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyPhoneFieldResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
116
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: SkyPhoneFieldResourcesModule, exports: [SkyI18nModule] }); }
117
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyPhoneFieldResourcesModule, imports: [SkyI18nModule] }); }
115
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyPhoneFieldResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
116
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: SkyPhoneFieldResourcesModule, exports: [SkyI18nModule] }); }
117
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyPhoneFieldResourcesModule, imports: [SkyI18nModule] }); }
118
118
  }
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyPhoneFieldResourcesModule, decorators: [{
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyPhoneFieldResourcesModule, decorators: [{
120
120
  type: NgModule,
121
121
  args: [{
122
122
  exports: [SkyI18nModule],
@@ -458,8 +458,8 @@ class SkyPhoneFieldComponent {
458
458
  return (!this.supportedCountryISOs ||
459
459
  this.supportedCountryISOs.findIndex((isoCode) => isoCode.toUpperCase() === country.iso2.toUpperCase()) >= 0);
460
460
  }
461
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyPhoneFieldComponent, deps: [{ token: i1.FormBuilder }, { token: SkyPhoneFieldAdapterService }, { token: i0.ChangeDetectorRef }, { token: i3.SkyThemeService, optional: true }, { token: i4.SkyInputBoxHostService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
462
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: SkyPhoneFieldComponent, isStandalone: true, selector: "sky-phone-field", inputs: { allowExtensions: "allowExtensions", defaultCountry: "defaultCountry", returnFormat: "returnFormat", supportedCountryISOs: "supportedCountryISOs", selectedCountry: "selectedCountry" }, outputs: { selectedCountryChange: "selectedCountryChange" }, providers: [
461
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyPhoneFieldComponent, deps: [{ token: i1.FormBuilder }, { token: SkyPhoneFieldAdapterService }, { token: i0.ChangeDetectorRef }, { token: i3.SkyThemeService, optional: true }, { token: i4.SkyInputBoxHostService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
462
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", type: SkyPhoneFieldComponent, isStandalone: true, selector: "sky-phone-field", inputs: { allowExtensions: "allowExtensions", defaultCountry: "defaultCountry", returnFormat: "returnFormat", supportedCountryISOs: "supportedCountryISOs", selectedCountry: "selectedCountry" }, outputs: { selectedCountryChange: "selectedCountryChange" }, providers: [
463
463
  SkyPhoneFieldAdapterService,
464
464
  // Prevents the embedded country field component from changing its behavior based on
465
465
  // being inside an input box. The phone field itself will handle the required changes
@@ -522,7 +522,7 @@ class SkyPhoneFieldComponent {
522
522
  ]),
523
523
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
524
524
  }
525
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyPhoneFieldComponent, decorators: [{
525
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyPhoneFieldComponent, decorators: [{
526
526
  type: Component,
527
527
  args: [{ imports: [
528
528
  CommonModule,
@@ -837,8 +837,8 @@ class SkyPhoneFieldInputDirective {
837
837
  this.#_value = formatted ?? value;
838
838
  }
839
839
  }
840
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyPhoneFieldInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
841
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.2.14", type: SkyPhoneFieldInputDirective, isStandalone: true, selector: "[skyPhoneFieldInput]", inputs: { disabled: ["disabled", "disabled", booleanAttribute], skyPhoneFieldNoValidate: ["skyPhoneFieldNoValidate", "skyPhoneFieldNoValidate", booleanAttribute] }, host: { listeners: { "blur": "onBlur()", "input": "onInput()" } }, providers: [
840
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyPhoneFieldInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
841
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.2.17", type: SkyPhoneFieldInputDirective, isStandalone: true, selector: "[skyPhoneFieldInput]", inputs: { disabled: ["disabled", "disabled", booleanAttribute], skyPhoneFieldNoValidate: ["skyPhoneFieldNoValidate", "skyPhoneFieldNoValidate", booleanAttribute] }, host: { listeners: { "blur": "onBlur()", "input": "onInput()" } }, providers: [
842
842
  {
843
843
  provide: NG_VALIDATORS,
844
844
  useExisting: SkyPhoneFieldInputDirective,
@@ -851,7 +851,7 @@ class SkyPhoneFieldInputDirective {
851
851
  },
852
852
  ], ngImport: i0 }); }
853
853
  }
854
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyPhoneFieldInputDirective, decorators: [{
854
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyPhoneFieldInputDirective, decorators: [{
855
855
  type: Directive,
856
856
  args: [{
857
857
  selector: '[skyPhoneFieldInput]',
@@ -883,11 +883,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
883
883
  }] } });
884
884
 
885
885
  class SkyPhoneFieldModule {
886
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyPhoneFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
887
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: SkyPhoneFieldModule, imports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective], exports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective] }); }
888
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyPhoneFieldModule, imports: [SkyPhoneFieldComponent] }); }
886
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyPhoneFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
887
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: SkyPhoneFieldModule, imports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective], exports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective] }); }
888
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyPhoneFieldModule, imports: [SkyPhoneFieldComponent] }); }
889
889
  }
890
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyPhoneFieldModule, decorators: [{
890
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyPhoneFieldModule, decorators: [{
891
891
  type: NgModule,
892
892
  args: [{
893
893
  imports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-phone-field.mjs","sources":["../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field-adapter.service.ts","../../../../../libs/components/phone-field/src/lib/modules/shared/sky-phone-field-resources.module.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/clone-country-data.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.component.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.component.html","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field-input.directive.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.module.ts","../../../../../libs/components/phone-field/src/skyux-phone-field.ts"],"sourcesContent":["import {\n ElementRef,\n Injectable,\n OnDestroy,\n Renderer2,\n inject,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\n/**\n * Service for interacting with the DOM elements of the phone field.\n * @internal\n */\n@Injectable()\nexport class SkyPhoneFieldAdapterService implements OnDestroy {\n #ngUnsubscribe = new Subject<void>();\n #renderer = inject(Renderer2);\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public addElementClass(elementRef: ElementRef, className: string): void {\n this.#renderer.addClass(elementRef.nativeElement, className);\n }\n\n public getInputValue(elementRef: ElementRef): string | undefined {\n const el = elementRef.nativeElement as HTMLElement | null;\n\n if (el && 'value' in el) {\n return (el as HTMLInputElement).value;\n }\n\n /* istanbul ignore next: safety check */\n return undefined;\n }\n\n public setElementDisabledState(\n elementRef: ElementRef,\n disabled: boolean,\n ): void {\n this.#renderer.setProperty(elementRef.nativeElement, 'disabled', disabled);\n }\n\n public setElementType(elementRef: ElementRef): void {\n this.#renderer.setAttribute(elementRef.nativeElement, 'type', 'tel');\n }\n\n public setElementValue(elementRef: ElementRef, value: string): void {\n this.#renderer.setProperty(elementRef.nativeElement, 'value', value);\n }\n\n 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","/* istanbul ignore file */\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-phone-field' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_phone_field_country_search_dismiss: {\n message: 'Dismiss country search',\n },\n skyux_phone_field_country_search_label: {\n message: 'Dismiss country search',\n },\n skyux_phone_field_country_search_placeholder: {\n message: 'Search for a country',\n },\n skyux_phone_field_country_select_label: { message: 'Choose country.' },\n skyux_phone_field_country_selected_label: {\n message: '{0} is currently selected.',\n },\n skyux_phone_field_format_hint_text: { message: 'Example: {0}.' },\n },\n 'FR-CA': {\n skyux_phone_field_country_search_dismiss: {\n message: 'Omettre la recherche du pays',\n },\n skyux_phone_field_country_search_label: {\n message: 'Omettre la recherche du pays',\n },\n skyux_phone_field_country_search_placeholder: {\n message: 'Rechercher un pays',\n },\n skyux_phone_field_country_select_label: { message: 'Choisissez un pays.' },\n skyux_phone_field_country_selected_label: {\n message: '{0} est actuellement sélectionné.',\n },\n skyux_phone_field_format_hint_text: { message: 'Exemple : {0}.' },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyPhoneFieldResourcesModule {}\n","import { type Country } from 'intl-tel-input/data';\n\nimport type { SkyPhoneFieldCountry } from './types/country';\n\n/**\n * Clone the country data for each component instance to avoid overwriting\n * the global country data.\n */\nexport function cloneCountryData(data: Country[]): SkyPhoneFieldCountry[] {\n const clone = [...data];\n\n return clone.map((country) => {\n const mapped: SkyPhoneFieldCountry = {\n iso2: country.iso2,\n dialCode: country.dialCode,\n name: country.name,\n priority: country.priority,\n };\n\n if (country.areaCodes) {\n mapped.areaCodes = [...country.areaCodes];\n }\n\n return mapped;\n });\n}\n","import {\n AnimationEvent,\n animate,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Renderer2,\n SkipSelf,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { SkyAppFormat } from '@skyux/core';\nimport { SkyInputBoxHostService } from '@skyux/forms';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport {\n SKY_COUNTRY_FIELD_CONTEXT,\n SkyCountryFieldCountry,\n SkyCountryFieldModule,\n} from '@skyux/lookup';\nimport { SkyThemeModule, SkyThemeService } from '@skyux/theme';\n\nimport {\n PhoneNumberFormat,\n PhoneNumberType,\n PhoneNumberUtil,\n} from 'google-libphonenumber';\nimport intlTelInput from 'intl-tel-input';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { SkyPhoneFieldResourcesModule } from '../shared/sky-phone-field-resources.module';\n\nimport { cloneCountryData } from './clone-country-data';\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldCountry } from './types/country';\nimport { SkyPhoneFieldNumberReturnFormat } from './types/number-return-format';\n\nconst DEFAULT_COUNTRY_CODE = 'us';\n\n// 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 imports: [\n CommonModule,\n ReactiveFormsModule,\n SkyCountryFieldModule,\n SkyIconModule,\n SkyPhoneFieldResourcesModule,\n SkyThemeModule,\n ],\n selector: 'sky-phone-field',\n templateUrl: './phone-field.component.html',\n styleUrls: ['./phone-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n SkyPhoneFieldAdapterService,\n // Prevents the embedded country field component from changing its behavior based on\n // being inside an input box. The phone field itself will handle the required changes\n // for input box.\n {\n provide: SkyInputBoxHostService,\n useValue: undefined,\n },\n {\n provide: SKY_COUNTRY_FIELD_CONTEXT,\n useValue: { inPhoneField: true },\n },\n ],\n animations: [\n trigger('blockAnimationOnLoad', [transition(':enter', [])]),\n trigger('countrySearchAnimation', [\n transition('void => open', [\n style({\n opacity: 0,\n width: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n width: '*',\n }),\n ),\n ]),\n transition('open => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n width: 0,\n }),\n ),\n ]),\n transition('void => open-modern', [\n style({\n opacity: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n }),\n ),\n ]),\n transition('open-modern => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n }),\n ),\n ]),\n ]),\n trigger('phoneInputAnimation', [\n transition('void => open', [\n style({\n opacity: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n }),\n ),\n ]),\n transition('open => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n }),\n ),\n ]),\n ]),\n ],\n})\nexport class SkyPhoneFieldComponent implements OnDestroy, OnInit {\n /**\n * Whether phone number extensions are allowed.\n * @default true\n */\n @Input()\n public set allowExtensions(value: boolean | undefined) {\n this.#_allowExtensions = value !== false;\n }\n\n public get allowExtensions(): boolean {\n return this.#_allowExtensions;\n }\n\n #_allowExtensions = true;\n\n /**\n * The\n * [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)\n * country code for the default country. The country selector button displays a flag\n * icon for this default country until users select a different country.\n * @default \"us\"\n */\n @Input()\n public set defaultCountry(value: string | undefined) {\n if (value !== this.#_defaultCountry) {\n value ??= DEFAULT_COUNTRY_CODE;\n this.#_defaultCountry = value.toLocaleLowerCase();\n this.#defaultCountryData = this.#getDefaultCountryData();\n }\n }\n\n public get defaultCountry(): string {\n return this.#_defaultCountry;\n }\n\n /**\n * The format for validated phone numbers.\n * Options include: `\"default\"`, `\"international\"`, and `\"national\"`.\n * @default \"default\"\n */\n @Input()\n public get returnFormat(): SkyPhoneFieldNumberReturnFormat {\n return this.#_returnFormat;\n }\n\n public set returnFormat(value: SkyPhoneFieldNumberReturnFormat | undefined) {\n this.#_returnFormat = value || 'default';\n }\n\n #_returnFormat: SkyPhoneFieldNumberReturnFormat = 'default';\n\n /**\n * The [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)\n * country codes for the countries that users can select. By default, all countries are available.\n */\n @Input()\n public supportedCountryISOs: string[] | undefined;\n\n /**\n * Emits a `SkyPhoneFieldCountry` object when the selected country in the country search\n * input changes.\n */\n @Output()\n public selectedCountryChange = new EventEmitter<SkyPhoneFieldCountry>();\n\n public countries: SkyPhoneFieldCountry[];\n\n public countrySelectDisabled = false;\n\n public countrySearchShown = false;\n\n public phoneInputShown = true;\n\n public countrySearchForm: FormGroup<{\n countrySearch: FormControl<SkyCountryFieldCountry | undefined | null>;\n }>;\n\n /**\n * The currently selected country to validate against.\n */\n @Input()\n public set selectedCountry(newCountry: SkyPhoneFieldCountry | undefined) {\n if (\n newCountry &&\n (!this.#_selectedCountry ||\n this.#_selectedCountry.iso2 !== newCountry.iso2)\n ) {\n this.#_selectedCountry = this.countries.find(\n (country) => country.iso2 === newCountry.iso2,\n );\n\n if (this.#_selectedCountry && !this.#_selectedCountry.exampleNumber) {\n const numberObj = this.#phoneUtils.getExampleNumberForType(\n newCountry.iso2,\n PhoneNumberType.FIXED_LINE,\n );\n\n this.#_selectedCountry.exampleNumber = this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL,\n );\n }\n\n this.#populateInputBoxHelpText();\n this.selectedCountryChange.emit(this.#_selectedCountry);\n }\n }\n\n public get selectedCountry(): SkyPhoneFieldCountry | undefined {\n return this.#_selectedCountry;\n }\n\n @ViewChild('inputTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public inputTemplateRef: TemplateRef<unknown> | undefined;\n\n @ViewChild('countryBtnTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public countryBtnTemplateRef: TemplateRef<unknown> | undefined;\n\n @ViewChild('buttonsInsetTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public buttonsInsetTemplateRef: TemplateRef<unknown> | undefined;\n\n #defaultCountryData: SkyPhoneFieldCountry | undefined;\n\n #focusPhoneInputAfterAnimation = false;\n\n #phoneNumberFormatHintTextTemplateString = '';\n\n #phoneUtils = PhoneNumberUtil.getInstance();\n\n #longestDialCodeLength = 0;\n\n #_defaultCountry = DEFAULT_COUNTRY_CODE;\n\n #_selectedCountry: SkyPhoneFieldCountry | undefined;\n\n #countrySearchFormControl = new FormControl<\n SkyCountryFieldCountry | undefined | null\n >(undefined);\n\n #countryFlagFocusListenerFn: (() => void) | undefined;\n #dismissCountrySearchFocusListenerFn: (() => void) | undefined;\n\n #formBuilder: FormBuilder;\n #adapterService: SkyPhoneFieldAdapterService;\n readonly #appFormat = inject(SkyAppFormat);\n #changeDetector: ChangeDetectorRef;\n #ngUnsubscribe = new Subject<void>();\n readonly #resourceSvc = inject(SkyLibResourcesService);\n readonly #elementRef = inject(ElementRef<HTMLElement>);\n readonly #renderer = inject(Renderer2);\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 this.countries = cloneCountryData(intlTelInput.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.#defaultCountryData = this.#getDefaultCountryData();\n\n this.countrySearchForm = this.#formBuilder.group({\n countrySearch: this.#countrySearchFormControl,\n });\n\n this.#resourceSvc\n .getString('skyux_phone_field_format_hint_text')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((templateString) => {\n this.#phoneNumberFormatHintTextTemplateString = templateString;\n this.#populateInputBoxHelpText();\n });\n }\n\n public ngOnInit(): void {\n // The timeout here is needed to avoid a change before checked error when a user specifies\n // a selected country on initialization of the component.\n setTimeout(() => {\n if (this.inputBoxHostSvc && this.inputTemplateRef) {\n this.inputBoxHostSvc.populate({\n inputTemplate: this.inputTemplateRef,\n buttonsInsetTemplate: this.buttonsInsetTemplateRef,\n buttonsLeftTemplate: this.countryBtnTemplateRef,\n });\n }\n\n this.selectedCountry ??= this.#defaultCountryData;\n\n this.#changeDetector.markForCheck();\n }, 0);\n\n this.#countrySearchFormControl.valueChanges.subscribe(\n (newValue: SkyCountryFieldCountry | undefined | null) => {\n if (newValue?.iso2 !== this.selectedCountry?.iso2) {\n this.selectedCountry = newValue || undefined;\n }\n },\n );\n }\n\n public ngOnDestroy(): void {\n this.selectedCountryChange.complete();\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n /**\n * Sets the country to validate against based on the county's iso2 code.\n * @param newCountry The International Organization for Standardization's two-letter code\n * for the default country.\n * @internal\n */\n public onCountrySelected(newCountry: SkyCountryFieldCountry): void {\n if (newCountry) {\n this.selectedCountry = this.countries.find(\n (countryInfo) => countryInfo.iso2 === newCountry.iso2,\n );\n\n this.#focusPhoneInputAfterAnimation = true;\n this.toggleCountrySearch(false);\n }\n }\n\n public toggleCountrySearch(showSearch: boolean): void {\n if (showSearch) {\n this.phoneInputShown = false;\n } else {\n this.countrySearchShown = false;\n\n this.#countrySearchFormControl.setValue(undefined);\n }\n\n if (this.inputBoxHostSvc && this.inputTemplateRef) {\n this.inputBoxHostSvc.setHintTextHidden(showSearch);\n }\n\n this.#changeDetector.markForCheck();\n }\n\n // TODO: remove this if no longer needed after a scalable focus monitor service is implemented\n public onCountryFieldFocusout({ relatedTarget }: FocusEvent): void {\n if (this.inputBoxHostSvc && relatedTarget) {\n if (!this.inputBoxHostSvc.focusIsInInput(relatedTarget)) {\n this.toggleCountrySearch(false);\n }\n } else {\n if (!this.#elementRef.nativeElement.contains(relatedTarget)) {\n this.toggleCountrySearch(false);\n }\n }\n }\n\n public countrySearchAnimationEnd(e: AnimationEvent): void {\n if (!this.countrySearchShown) {\n this.phoneInputShown = true;\n } else {\n this.#adapterService.focusCountrySearchElement(e.element);\n\n let countryFlagButton: HTMLElement | undefined;\n let dismissCountrySearchButton: HTMLElement | undefined;\n\n // add event listeners for focusout from the buttons on either side of country search field.\n if (!this.inputBoxHostSvc) {\n countryFlagButton = this.#elementRef.nativeElement.querySelector(\n 'button.sky-phone-field-country-select-btn',\n );\n dismissCountrySearchButton =\n this.#elementRef.nativeElement.querySelector(\n 'button.sky-phone-field-search-btn-dismiss',\n );\n } else {\n countryFlagButton = this.inputBoxHostSvc.queryHost(\n 'button.sky-phone-field-country-select-btn',\n );\n dismissCountrySearchButton = this.inputBoxHostSvc.queryHost(\n 'button.sky-phone-field-search-btn-dismiss',\n );\n }\n\n if (countryFlagButton && dismissCountrySearchButton) {\n this.#countryFlagFocusListenerFn =\n this.addFocusEventListener(countryFlagButton);\n this.#dismissCountrySearchFocusListenerFn = this.addFocusEventListener(\n dismissCountrySearchButton,\n );\n }\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public dismissButtonClicked(): void {\n this.#focusPhoneInputAfterAnimation = true;\n this.toggleCountrySearch(false);\n }\n\n public phoneInputAnimationEnd(e: AnimationEvent): void {\n if (!this.phoneInputShown) {\n this.countrySearchShown = true;\n } else {\n if (this.#focusPhoneInputAfterAnimation) {\n this.#adapterService.focusPhoneInput(e.element);\n this.#focusPhoneInputAfterAnimation = false;\n }\n\n // Remove focus out event listeners now that country search is closed.\n if (this.#countryFlagFocusListenerFn) {\n this.#countryFlagFocusListenerFn();\n }\n if (this.#dismissCountrySearchFocusListenerFn) {\n this.#dismissCountrySearchFocusListenerFn();\n }\n }\n\n this.#changeDetector.markForCheck();\n }\n\n // TODO: remove this if no longer needed after a scalable focus monitor service is implemented\n private addFocusEventListener(el: HTMLElement): () => void {\n return this.#renderer.listen(el, 'focusout', (event: FocusEvent) => {\n const target = event.relatedTarget;\n if (this.inputBoxHostSvc && target) {\n if (!this.inputBoxHostSvc.focusIsInInput(target)) {\n this.toggleCountrySearch(false);\n }\n } else {\n if (!this.#elementRef.nativeElement.contains(target)) {\n this.toggleCountrySearch(false);\n }\n }\n });\n }\n\n public setCountryByDialCode(phoneNumberRaw: string | undefined): void {\n if (!phoneNumberRaw || !phoneNumberRaw.startsWith('+')) {\n return;\n }\n\n let foundCountry: SkyPhoneFieldCountry | undefined;\n\n try {\n const phoneNumberParsed =\n this.#phoneUtils.parseAndKeepRawInput(phoneNumberRaw);\n\n const regionCode =\n this.#phoneUtils.getRegionCodeForNumber(phoneNumberParsed);\n\n if (regionCode !== undefined) {\n foundCountry = this.countries.find(\n (country) =>\n country.iso2.toLocaleUpperCase() === regionCode.toLocaleUpperCase(),\n );\n }\n } catch {\n foundCountry ??= this.#findCountryByDialCode(phoneNumberRaw);\n }\n\n if (foundCountry && !this.#validateSupportedCountry(foundCountry)) {\n foundCountry = undefined;\n }\n\n if (foundCountry !== this.selectedCountry) {\n this.selectedCountry = foundCountry;\n this.#changeDetector.markForCheck();\n }\n }\n\n #findCountryByDialCode(\n phoneNumberRaw: string,\n ): SkyPhoneFieldCountry | undefined {\n const defaultDialCode = this.#defaultCountryData?.dialCode;\n const selectedCountryDialCode = this.selectedCountry?.dialCode;\n\n let foundCountry: SkyPhoneFieldCountry | undefined;\n\n if (\n !selectedCountryDialCode ||\n !phoneNumberRaw.startsWith(selectedCountryDialCode)\n ) {\n for (let i = 1; i < this.#longestDialCodeLength + 1; i++) {\n const dialCode = phoneNumberRaw.substring(0, i);\n\n if (defaultDialCode === dialCode) {\n foundCountry = this.#defaultCountryData;\n } else if (selectedCountryDialCode !== dialCode) {\n const dialCodeCountries = this.countries.filter(\n (country) => country.dialCode === dialCode,\n );\n\n if (dialCodeCountries.length > 0) {\n foundCountry =\n dialCodeCountries.find((country) => country.priority === 0) ??\n dialCodeCountries[0];\n }\n }\n }\n }\n\n return foundCountry;\n }\n\n #getDefaultCountryData(): SkyPhoneFieldCountry | undefined {\n return this.countries.find(\n (country) => country.iso2 === this.#_defaultCountry,\n );\n }\n\n #populateInputBoxHelpText(): void {\n if (this.inputBoxHostSvc && this.inputTemplateRef) {\n this.inputBoxHostSvc?.setHintText(\n this.#appFormat.formatText(\n this.#phoneNumberFormatHintTextTemplateString,\n this.#_selectedCountry?.exampleNumber,\n ),\n );\n }\n }\n\n #validateSupportedCountry(country: SkyPhoneFieldCountry): boolean {\n return (\n !this.supportedCountryISOs ||\n this.supportedCountryISOs.findIndex(\n (isoCode) => isoCode.toUpperCase() === country.iso2.toUpperCase(),\n ) >= 0\n );\n }\n}\n","@if (!inputBoxHostSvc) {\n <div class=\"sky-input-group sky-phone-field\" [@blockAnimationOnLoad]>\n <ng-container *ngTemplateOutlet=\"countryBtnTemplateRef\" />\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\" />\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplateRef\" />\n </div>\n}\n\n<ng-template #countryBtnTemplateRef>\n <div\n class=\"sky-input-group-btn sky-phone-field-country-btn\"\n [attr.data-sky-test-iso2]=\"selectedCountry?.iso2\"\n [attr.data-sky-test-name]=\"selectedCountry?.name\"\n >\n <button\n aria-live=\"polite\"\n class=\"sky-btn sky-btn-default sky-phone-field-country-select-btn\"\n type=\"button\"\n [attr.title]=\"\n ('skyux_phone_field_country_select_label' | skyLibResources) +\n ' ' +\n ('skyux_phone_field_country_selected_label'\n | skyLibResources: selectedCountry?.name)\n \"\n [attr.aria-label]=\"\n ('skyux_phone_field_country_select_label' | skyLibResources) +\n ' ' +\n ('skyux_phone_field_country_selected_label'\n | skyLibResources: selectedCountry?.name)\n \"\n [disabled]=\"countrySelectDisabled\"\n (click)=\"toggleCountrySearch(true)\"\n >\n <div class=\"sky-phone-field-flag\">\n <div\n class=\"iti__flag\"\n [ngClass]=\"'iti__' + selectedCountry?.iso2\"\n ></div>\n </div>\n </button>\n </div>\n</ng-template>\n\n<ng-template #inputTemplateRef>\n @if (phoneInputShown) {\n <span\n class=\"sky-phone-field-container\"\n [@phoneInputAnimation]=\"phoneInputShown ? 'open' : 'closed'\"\n (@phoneInputAnimation.done)=\"phoneInputAnimationEnd($event)\"\n >\n <ng-content />\n </span>\n } @else if (countrySearchShown) {\n <span\n class=\"sky-phone-field-container\"\n [@countrySearchAnimation]=\"\n 'open' +\n ((themeSvc?.settingsChange | async)?.currentSettings?.theme?.name ===\n 'modern'\n ? '-modern'\n : '')\n \"\n (@countrySearchAnimation.done)=\"countrySearchAnimationEnd($event)\"\n >\n <div\n class=\"sky-phone-field-country-search\"\n [formGroup]=\"countrySearchForm\"\n >\n <sky-country-field\n formControlName=\"countrySearch\"\n [defaultCountry]=\"defaultCountry\"\n [supportedCountryISOs]=\"supportedCountryISOs\"\n (selectedCountryChange)=\"onCountrySelected($event)\"\n (countryFieldFocusout)=\"onCountryFieldFocusout($event)\"\n />\n </div>\n </span>\n }\n</ng-template>\n\n<ng-template #buttonsInsetTemplateRef>\n @if (countrySearchShown) {\n <div\n class=\"sky-input-group-btn sky-input-box-btn-inset sky-search-item-dismiss\"\n >\n <button\n class=\"sky-btn sky-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)=\"dismissButtonClicked()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" iconName=\"chevron-double-left\" />\n <sky-icon\n *skyThemeIf=\"'modern'\"\n iconName=\"chevron-double-left\"\n iconSize=\"l\"\n />\n </button>\n </div>\n }\n</ng-template>\n","import {\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport {\n PhoneNumber,\n PhoneNumberFormat,\n PhoneNumberUtil,\n} from 'google-libphonenumber';\nimport { Subject, take, takeUntil } from 'rxjs';\n\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\nimport { SkyPhoneFieldNumberReturnFormat } from './types/number-return-format';\n\n/**\n * Creates a button, search input, and text input for entering and validating\n * international phone numbers. Place this attribute on an `input` element, and wrap\n * that element in a `sky-phone-field` component. By default, the country selector\n * button displays a flag icon for the default country, and the phone number input\n * displays a sample of the correct phone number format. When users select the country\n * selector button, they expose the country search input, which is\n * [an autocomplete input](https://developer.blackbaud.com/skyux/components/autocomplete)\n * that allows them to select different countries. When users enter `+` followed by an\n * international dial code in the phone number input, the country automatically switches\n * to the country associated with the dial code.\n * @required\n */\n@Directive({\n selector: '[skyPhoneFieldInput]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: SkyPhoneFieldInputDirective,\n multi: true,\n },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SkyPhoneFieldInputDirective,\n multi: true,\n },\n ],\n})\nexport class SkyPhoneFieldInputDirective\n implements OnInit, OnDestroy, ControlValueAccessor, Validator\n{\n /**\n * Whether to disable the phone field on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.\n * To set the disabled state on reactive forms, use the `FormControl` instead.\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public set disabled(value: boolean) {\n if (this.#phoneFieldComponent) {\n this.#phoneFieldComponent.countrySelectDisabled = value;\n this.#adapterSvc?.setElementDisabledState(this.#elRef, value);\n }\n\n this.#_disabled = value;\n }\n\n public get disabled(): boolean {\n return this.#_disabled;\n }\n\n /**\n * Whether to prevent validation on the phone number input. For validation,\n * phone numbers are driven through the `ngModel` attribute that you specify on an\n * `input` element or on a `FormControl` in a reactive form. To prevent validation,\n * set this property to `true`.\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public skyPhoneFieldNoValidate = false;\n\n #_disabled = false;\n #_value = '';\n #control: AbstractControl | undefined;\n #ngUnsubscribe = new Subject<void>();\n #notifyChange: ((value: string) => void) | undefined;\n #notifyTouched: (() => void) | undefined;\n #phoneUtils = PhoneNumberUtil.getInstance();\n\n readonly #adapterSvc = inject(SkyPhoneFieldAdapterService, {\n host: true,\n optional: true,\n skipSelf: true,\n });\n\n readonly #elRef = inject(ElementRef);\n readonly #phoneFieldComponent = inject(SkyPhoneFieldComponent, {\n host: true,\n optional: true,\n });\n\n public ngOnInit(): void {\n if (!this.#phoneFieldComponent) {\n throw new Error(\n 'You must wrap the `skyPhoneFieldInput` directive within a ' +\n '`<sky-phone-field>` component!',\n );\n }\n\n this.#adapterSvc?.setElementType(this.#elRef);\n this.#adapterSvc?.addElementClass(this.#elRef, 'sky-form-control');\n\n this.#phoneFieldComponent?.selectedCountryChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n const value = this.#adapterSvc?.getInputValue(this.#elRef);\n this.#setValue(value);\n this.#control?.updateValueAndValidity();\n });\n\n this.#phoneFieldComponent.countrySearchForm\n .get('countrySearch')\n ?.valueChanges.pipe(takeUntil(this.#ngUnsubscribe), take(1))\n .subscribe(() => {\n this.#control?.markAsDirty();\n this.#control?.markAsTouched();\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public registerOnChange(fn: (value: string) => void): void {\n this.#notifyChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.#notifyTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n this.#control ??= control;\n\n const value = control.value;\n\n if (!value || this.skyPhoneFieldNoValidate) {\n return null;\n }\n\n if (!this.#isValidPhoneNumber(value)) {\n return {\n skyPhoneField: {\n invalid: value,\n },\n };\n }\n\n return null;\n }\n\n public writeValue(value: unknown): void {\n const rawValue = typeof value === 'string' ? value : '';\n\n this.#phoneFieldComponent?.setCountryByDialCode(rawValue);\n this.#adapterSvc?.setElementValue(this.#elRef, rawValue);\n\n this.#setValue(rawValue);\n const newValue = this.#getValue();\n\n if (rawValue !== newValue) {\n // If the value is set before the control is initialized, wait for the\n // first cycle to complete before triggering a value change event.\n // (This occurs when the control is initialized with an unformatted value\n // but is formatted into a new value immediately in the `writeValue`\n // method.)\n if (!this.#control) {\n setTimeout(() => {\n this.#notifyChange?.(newValue);\n });\n } else {\n this.#notifyChange?.(newValue);\n }\n }\n }\n\n @HostListener('blur')\n protected onBlur(): void {\n this.#notifyTouched?.();\n }\n\n @HostListener('input')\n protected onInput(): void {\n const value = this.#adapterSvc?.getInputValue(this.#elRef);\n this.#phoneFieldComponent?.setCountryByDialCode(value);\n this.#setValue(value);\n this.#notifyChange?.(this.#getValue());\n }\n\n #maybeFormatPhoneNumber(value: string | undefined): string | undefined {\n if (!value) {\n return;\n }\n\n const defaultCountry = this.#getDefaultCountry();\n const regionCode = this.#getRegionCode();\n const returnFormat = this.#phoneFieldComponent?.returnFormat;\n\n try {\n const phoneNumber = this.#phoneUtils.parseAndKeepRawInput(\n value,\n regionCode ?? defaultCountry,\n );\n\n if (this.#phoneUtils.isPossibleNumber(phoneNumber)) {\n return this.#formatPhoneNumber(\n phoneNumber,\n returnFormat,\n defaultCountry,\n regionCode,\n );\n }\n } catch {\n /* */\n }\n\n return;\n }\n\n #formatPhoneNumber(\n phoneNumber: PhoneNumber,\n returnFormat?: SkyPhoneFieldNumberReturnFormat,\n defaultCountry?: string,\n regionCode?: string,\n ): string {\n switch (returnFormat) {\n case 'international':\n return this.#phoneUtils.format(\n phoneNumber,\n PhoneNumberFormat.INTERNATIONAL,\n );\n\n case 'national':\n return this.#phoneUtils.format(phoneNumber, PhoneNumberFormat.NATIONAL);\n\n case 'default':\n default:\n return regionCode && regionCode !== defaultCountry\n ? this.#phoneUtils.format(\n phoneNumber,\n PhoneNumberFormat.INTERNATIONAL,\n )\n : this.#phoneUtils.format(phoneNumber, PhoneNumberFormat.NATIONAL);\n }\n }\n\n #getDefaultCountry(): string | undefined {\n return this.#phoneFieldComponent?.defaultCountry;\n }\n\n #getRegionCode(): string | undefined {\n return this.#phoneFieldComponent?.selectedCountry?.iso2;\n }\n\n #getValue(): string {\n return this.#_value;\n }\n\n #isValidPhoneNumber(value: string): boolean {\n const defaultCountry = this.#getDefaultCountry();\n const regionCode = this.#getRegionCode() ?? defaultCountry;\n const allowExtensions = !!this.#phoneFieldComponent?.allowExtensions;\n\n try {\n const phoneNumber = this.#phoneUtils.parseAndKeepRawInput(\n value,\n regionCode,\n );\n\n if (!allowExtensions && phoneNumber.getExtension()) {\n return false;\n }\n\n return this.#phoneUtils.isValidNumberForRegion(phoneNumber, regionCode);\n } catch {\n return false;\n }\n }\n\n #setValue(value: string | undefined): void {\n /* istanbul ignore else */\n if (value !== undefined) {\n const formatted = this.#maybeFormatPhoneNumber(value);\n this.#_value = formatted ?? value;\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { SkyPhoneFieldInputDirective } from './phone-field-input.directive';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\n\n@NgModule({\n imports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],\n exports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],\n})\nexport class SkyPhoneFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.SkyPhoneFieldAdapterService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAUA;;;AAGG;MAEU,2BAA2B,CAAA;AACtC,IAAA,cAAc,GAAG,IAAI,OAAO,EAAQ;AACpC,IAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IAEtB,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;;IAGzB,eAAe,CAAC,UAAsB,EAAE,SAAiB,EAAA;QAC9D,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC;;AAGvD,IAAA,aAAa,CAAC,UAAsB,EAAA;AACzC,QAAA,MAAM,EAAE,GAAG,UAAU,CAAC,aAAmC;AAEzD,QAAA,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,EAAE;YACvB,OAAQ,EAAuB,CAAC,KAAK;;;AAIvC,QAAA,OAAO,SAAS;;IAGX,uBAAuB,CAC5B,UAAsB,EACtB,QAAiB,EAAA;AAEjB,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC;;AAGrE,IAAA,cAAc,CAAC,UAAsB,EAAA;AAC1C,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC;;IAG/D,eAAe,CAAC,UAAsB,EAAE,KAAa,EAAA;AAC1D,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC;;AAG/D,IAAA,yBAAyB,CAAC,EAAW,EAAA;QAC1C,MAAM,KAAK,GAAuB,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC;QAC9D,KAAK,EAAE,KAAK,EAAE;;AAGT,IAAA,eAAe,CAAC,EAAW,EAAA;QAChC,MAAM,KAAK,GAAuB,EAAE,CAAC,aAAa,CAChD,kCAAkC,CACnC;QACD,KAAK,EAAE,KAAK,EAAE;;+GAhDL,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAA3B,2BAA2B,EAAA,CAAA,CAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC;;;ACdD;AACA;;;;;AAKG;AAQH,MAAM,SAAS,GAAoC;AACjD,IAAA,OAAO,EAAE;AACP,QAAA,wCAAwC,EAAE;AACxC,YAAA,OAAO,EAAE,wBAAwB;AAClC,SAAA;AACD,QAAA,sCAAsC,EAAE;AACtC,YAAA,OAAO,EAAE,wBAAwB;AAClC,SAAA;AACD,QAAA,4CAA4C,EAAE;AAC5C,YAAA,OAAO,EAAE,sBAAsB;AAChC,SAAA;AACD,QAAA,sCAAsC,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;AACtE,QAAA,wCAAwC,EAAE;AACxC,YAAA,OAAO,EAAE,4BAA4B;AACtC,SAAA;AACD,QAAA,kCAAkC,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE;AACjE,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,wCAAwC,EAAE;AACxC,YAAA,OAAO,EAAE,8BAA8B;AACxC,SAAA;AACD,QAAA,sCAAsC,EAAE;AACtC,YAAA,OAAO,EAAE,8BAA8B;AACxC,SAAA;AACD,QAAA,4CAA4C,EAAE;AAC5C,YAAA,OAAO,EAAE,oBAAoB;AAC9B,SAAA;AACD,QAAA,sCAAsC,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE;AAC1E,QAAA,wCAAwC,EAAE;AACxC,YAAA,OAAO,EAAE,mCAAmC;AAC7C,SAAA;AACD,QAAA,kCAAkC,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;AAClE,KAAA;CACF;AAED,sBAAsB,CAAC,YAAY,CAAC,SAAS,CAAC;AAE9C;;AAEG;MAIU,4BAA4B,CAAA;+GAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YAF7B,aAAa,CAAA,EAAA,CAAA,CAAA;AAEZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YAF7B,aAAa,CAAA,EAAA,CAAA,CAAA;;4FAEZ,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;AACzB,iBAAA;;;ACpDD;;;AAGG;AACG,SAAU,gBAAgB,CAAC,IAAe,EAAA;AAC9C,IAAA,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC;AAEvB,IAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,KAAI;AAC3B,QAAA,MAAM,MAAM,GAAyB;YACnC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B;AAED,QAAA,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,MAAM,CAAC,SAAS,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;;AAG3C,QAAA,OAAO,MAAM;AACf,KAAC,CAAC;AACJ;;ACiCA,MAAM,oBAAoB,GAAG,IAAI;AAEjC;AACA;AACA;MAiGa,sBAAsB,CAAA;AACjC;;;AAGG;IACH,IACW,eAAe,CAAC,KAA0B,EAAA;AACnD,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,KAAK,KAAK;;AAG1C,IAAA,IAAW,eAAe,GAAA;QACxB,OAAO,IAAI,CAAC,iBAAiB;;AAG/B,IAAA,iBAAiB;AAEjB;;;;;;AAMG;IACH,IACW,cAAc,CAAC,KAAyB,EAAA;AACjD,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,gBAAgB,EAAE;YACnC,KAAK,KAAK,oBAAoB;AAC9B,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,iBAAiB,EAAE;AACjD,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,EAAE;;;AAI5D,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,gBAAgB;;AAG9B;;;;AAIG;AACH,IAAA,IACW,YAAY,GAAA;QACrB,OAAO,IAAI,CAAC,cAAc;;IAG5B,IAAW,YAAY,CAAC,KAAkD,EAAA;AACxE,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,IAAI,SAAS;;AAG1C,IAAA,cAAc;AA4Bd;;AAEG;IACH,IACW,eAAe,CAAC,UAA4C,EAAA;AACrE,QAAA,IACE,UAAU;aACT,CAAC,IAAI,CAAC,iBAAiB;gBACtB,IAAI,CAAC,iBAAiB,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,EAClD;YACA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAC1C,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAC9C;YAED,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE;AACnE,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,uBAAuB,CACxD,UAAU,CAAC,IAAI,EACf,eAAe,CAAC,UAAU,CAC3B;AAED,gBAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAC5D,SAAS,EACT,iBAAiB,CAAC,QAAQ,CAC3B;;YAGH,IAAI,CAAC,yBAAyB,EAAE;YAChC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;;;AAI3D,IAAA,IAAW,eAAe,GAAA;QACxB,OAAO,IAAI,CAAC,iBAAiB;;AAqB/B,IAAA,mBAAmB;AAEnB,IAAA,8BAA8B;AAE9B,IAAA,wCAAwC;AAExC,IAAA,WAAW;AAEX,IAAA,sBAAsB;AAEtB,IAAA,gBAAgB;AAEhB,IAAA,iBAAiB;AAEjB,IAAA,yBAAyB;AAIzB,IAAA,2BAA2B;AAC3B,IAAA,oCAAoC;AAEpC,IAAA,YAAY;AACZ,IAAA,eAAe;AACN,IAAA,UAAU;AACnB,IAAA,eAAe;AACf,IAAA,cAAc;AACL,IAAA,YAAY;AACZ,IAAA,WAAW;AACX,IAAA,SAAS;IAElB,WAAA,CACE,WAAwB,EACxB,cAA2C,EAC3C,cAAiC,EACd,QAA0B,EACd,eAAwC,EAAA;QADpD,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACI,IAAA,CAAA,eAAe,GAAf,eAAe;QAxJhD,IAAA,CAAA,iBAAiB,GAAG,IAAI;QAoCxB,IAAA,CAAA,cAAc,GAAoC,SAAS;AAS3D;;;AAGG;AAEI,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAwB;QAIhE,IAAA,CAAA,qBAAqB,GAAG,KAAK;QAE7B,IAAA,CAAA,kBAAkB,GAAG,KAAK;QAE1B,IAAA,CAAA,eAAe,GAAG,IAAI;QA6D7B,IAAA,CAAA,8BAA8B,GAAG,KAAK;QAEtC,IAAA,CAAA,wCAAwC,GAAG,EAAE;AAE7C,QAAA,IAAA,CAAA,WAAW,GAAG,eAAe,CAAC,WAAW,EAAE;QAE3C,IAAA,CAAA,sBAAsB,GAAG,CAAC;QAE1B,IAAA,CAAA,gBAAgB,GAAG,oBAAoB;AAIvC,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,WAAW,CAEzC,SAAS,CAAC;AAOH,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC;AAE1C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAQ;AAC3B,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAC7C,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,EAAC,UAAuB,EAAC;AAC7C,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AASpC,QAAA,IAAI,CAAC,YAAY,GAAG,WAAW;AAC/B,QAAA,IAAI,CAAC,eAAe,GAAG,cAAc;AACrC,QAAA,IAAI,CAAC,eAAe,GAAG,cAAc;QAErC,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;AAEhE,QAAA,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;YACpC,OAAO,CAAC,QAAQ,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ;YAEzC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,sBAAsB,EAAE;gBACzD,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM;;;AAIzD,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,EAAE;QAExD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAC/C,aAAa,EAAE,IAAI,CAAC,yBAAyB;AAC9C,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC;aACF,SAAS,CAAC,oCAAoC;AAC9C,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,cAAc,KAAI;AAC5B,YAAA,IAAI,CAAC,wCAAwC,GAAG,cAAc;YAC9D,IAAI,CAAC,yBAAyB,EAAE;AAClC,SAAC,CAAC;;IAGC,QAAQ,GAAA;;;QAGb,UAAU,CAAC,MAAK;YACd,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACjD,gBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;oBAC5B,aAAa,EAAE,IAAI,CAAC,gBAAgB;oBACpC,oBAAoB,EAAE,IAAI,CAAC,uBAAuB;oBAClD,mBAAmB,EAAE,IAAI,CAAC,qBAAqB;AAChD,iBAAA,CAAC;;AAGJ,YAAA,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,mBAAmB;AAEjD,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;SACpC,EAAE,CAAC,CAAC;QAEL,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,SAAS,CACnD,CAAC,QAAmD,KAAI;YACtD,IAAI,QAAQ,EAAE,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE;AACjD,gBAAA,IAAI,CAAC,eAAe,GAAG,QAAQ,IAAI,SAAS;;AAEhD,SAAC,CACF;;IAGI,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE;AACrC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;;AAGhC;;;;;AAKG;AACI,IAAA,iBAAiB,CAAC,UAAkC,EAAA;QACzD,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CACxC,CAAC,WAAW,KAAK,WAAW,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CACtD;AAED,YAAA,IAAI,CAAC,8BAA8B,GAAG,IAAI;AAC1C,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;;;AAI5B,IAAA,mBAAmB,CAAC,UAAmB,EAAA;QAC5C,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK;;aACvB;AACL,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;AAE/B,YAAA,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,SAAS,CAAC;;QAGpD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACjD,YAAA,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,UAAU,CAAC;;AAGpD,QAAA,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;;;IAI9B,sBAAsB,CAAC,EAAE,aAAa,EAAc,EAAA;AACzD,QAAA,IAAI,IAAI,CAAC,eAAe,IAAI,aAAa,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE;AACvD,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;;;aAE5B;AACL,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;AAC3D,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;;;;AAK9B,IAAA,yBAAyB,CAAC,CAAiB,EAAA;AAChD,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC5B,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;;aACtB;YACL,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC;AAEzD,YAAA,IAAI,iBAA0C;AAC9C,YAAA,IAAI,0BAAmD;;AAGvD,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBACzB,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAC9D,2CAA2C,CAC5C;gBACD,0BAA0B;oBACxB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAC1C,2CAA2C,CAC5C;;iBACE;gBACL,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAChD,2CAA2C,CAC5C;gBACD,0BAA0B,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CACzD,2CAA2C,CAC5C;;AAGH,YAAA,IAAI,iBAAiB,IAAI,0BAA0B,EAAE;AACnD,gBAAA,IAAI,CAAC,2BAA2B;AAC9B,oBAAA,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC;gBAC/C,IAAI,CAAC,oCAAoC,GAAG,IAAI,CAAC,qBAAqB,CACpE,0BAA0B,CAC3B;;;AAIL,QAAA,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;;IAG9B,oBAAoB,GAAA;AACzB,QAAA,IAAI,CAAC,8BAA8B,GAAG,IAAI;AAC1C,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;;AAG1B,IAAA,sBAAsB,CAAC,CAAiB,EAAA;AAC7C,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;;aACzB;AACL,YAAA,IAAI,IAAI,CAAC,8BAA8B,EAAE;gBACvC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC;AAC/C,gBAAA,IAAI,CAAC,8BAA8B,GAAG,KAAK;;;AAI7C,YAAA,IAAI,IAAI,CAAC,2BAA2B,EAAE;gBACpC,IAAI,CAAC,2BAA2B,EAAE;;AAEpC,YAAA,IAAI,IAAI,CAAC,oCAAoC,EAAE;gBAC7C,IAAI,CAAC,oCAAoC,EAAE;;;AAI/C,QAAA,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;;;AAI7B,IAAA,qBAAqB,CAAC,EAAe,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,KAAiB,KAAI;AACjE,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa;AAClC,YAAA,IAAI,IAAI,CAAC,eAAe,IAAI,MAAM,EAAE;gBAClC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AAChD,oBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;;;iBAE5B;AACL,gBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACpD,oBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;;;AAGrC,SAAC,CAAC;;AAGG,IAAA,oBAAoB,CAAC,cAAkC,EAAA;QAC5D,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACtD;;AAGF,QAAA,IAAI,YAA8C;AAElD,QAAA,IAAI;YACF,MAAM,iBAAiB,GACrB,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,cAAc,CAAC;YAEvD,MAAM,UAAU,GACd,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,iBAAiB,CAAC;AAE5D,YAAA,IAAI,UAAU,KAAK,SAAS,EAAE;gBAC5B,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAChC,CAAC,OAAO,KACN,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,UAAU,CAAC,iBAAiB,EAAE,CACtE;;;AAEH,QAAA,MAAM;AACN,YAAA,YAAY,KAAK,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC;;QAG9D,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,EAAE;YACjE,YAAY,GAAG,SAAS;;AAG1B,QAAA,IAAI,YAAY,KAAK,IAAI,CAAC,eAAe,EAAE;AACzC,YAAA,IAAI,CAAC,eAAe,GAAG,YAAY;AACnC,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;;;AAIvC,IAAA,sBAAsB,CACpB,cAAsB,EAAA;AAEtB,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,EAAE,QAAQ;AAC1D,QAAA,MAAM,uBAAuB,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ;AAE9D,QAAA,IAAI,YAA8C;AAElD,QAAA,IACE,CAAC,uBAAuB;AACxB,YAAA,CAAC,cAAc,CAAC,UAAU,CAAC,uBAAuB,CAAC,EACnD;AACA,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,sBAAsB,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxD,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AAE/C,gBAAA,IAAI,eAAe,KAAK,QAAQ,EAAE;AAChC,oBAAA,YAAY,GAAG,IAAI,CAAC,mBAAmB;;AAClC,qBAAA,IAAI,uBAAuB,KAAK,QAAQ,EAAE;AAC/C,oBAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAC7C,CAAC,OAAO,KAAK,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAC3C;AAED,oBAAA,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;wBAChC,YAAY;AACV,4BAAA,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC;gCAC3D,iBAAiB,CAAC,CAAC,CAAC;;;;;AAM9B,QAAA,OAAO,YAAY;;IAGrB,sBAAsB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CACxB,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,gBAAgB,CACpD;;IAGH,yBAAyB,GAAA;QACvB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACjD,IAAI,CAAC,eAAe,EAAE,WAAW,CAC/B,IAAI,CAAC,UAAU,CAAC,UAAU,CACxB,IAAI,CAAC,wCAAwC,EAC7C,IAAI,CAAC,iBAAiB,EAAE,aAAa,CACtC,CACF;;;AAIL,IAAA,yBAAyB,CAAC,OAA6B,EAAA;AACrD,QAAA,QACE,CAAC,IAAI,CAAC,oBAAoB;YAC1B,IAAI,CAAC,oBAAoB,CAAC,SAAS,CACjC,CAAC,OAAO,KAAK,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAClE,IAAI,CAAC;;+GA9bC,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,2BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,SAAA,EAlFtB;YACT,2BAA2B;;;;AAI3B,YAAA;AACE,gBAAA,OAAO,EAAE,sBAAsB;AAC/B,gBAAA,QAAQ,EAAE,SAAS;AACpB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,yBAAyB;AAClC,gBAAA,QAAQ,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;AACjC,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAuLO,WAAW,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAMX,WAAW,2IAMX,WAAW,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7RrB,g6GA4GA,EAAA,MAAA,EAAA,CAAA,sr5IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED3CI,YAAY,wVACZ,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,qBAAqB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACrB,aAAa,+KACb,4BAA4B,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAC5B,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAqBJ;YACV,OAAO,CAAC,sBAAsB,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,wBAAwB,EAAE;gBAChC,UAAU,CAAC,cAAc,EAAE;AACzB,oBAAA,KAAK,CAAC;AACJ,wBAAA,OAAO,EAAE,CAAC;AACV,wBAAA,KAAK,EAAE,CAAC;qBACT,CAAC;AACF,oBAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,wBAAA,OAAO,EAAE,CAAC;AACV,wBAAA,KAAK,EAAE,GAAG;AACX,qBAAA,CAAC,CACH;iBACF,CAAC;gBACF,UAAU,CAAC,cAAc,EAAE;AACzB,oBAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,wBAAA,OAAO,EAAE,CAAC;AACV,wBAAA,KAAK,EAAE,CAAC;AACT,qBAAA,CAAC,CACH;iBACF,CAAC;gBACF,UAAU,CAAC,qBAAqB,EAAE;AAChC,oBAAA,KAAK,CAAC;AACJ,wBAAA,OAAO,EAAE,CAAC;qBACX,CAAC;AACF,oBAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,wBAAA,OAAO,EAAE,CAAC;AACX,qBAAA,CAAC,CACH;iBACF,CAAC;gBACF,UAAU,CAAC,qBAAqB,EAAE;AAChC,oBAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,wBAAA,OAAO,EAAE,CAAC;AACX,qBAAA,CAAC,CACH;iBACF,CAAC;aACH,CAAC;YACF,OAAO,CAAC,qBAAqB,EAAE;gBAC7B,UAAU,CAAC,cAAc,EAAE;AACzB,oBAAA,KAAK,CAAC;AACJ,wBAAA,OAAO,EAAE,CAAC;qBACX,CAAC;AACF,oBAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,wBAAA,OAAO,EAAE,CAAC;AACX,qBAAA,CAAC,CACH;iBACF,CAAC;gBACF,UAAU,CAAC,cAAc,EAAE;AACzB,oBAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,wBAAA,OAAO,EAAE,CAAC;AACX,qBAAA,CAAC,CACH;iBACF,CAAC;aACH,CAAC;AACH,SAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAEU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAhGlC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,qBAAqB;wBACrB,aAAa;wBACb,4BAA4B;wBAC5B,cAAc;qBACf,EAAA,QAAA,EACS,iBAAiB,iBAGZ,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;wBACT,2BAA2B;;;;AAI3B,wBAAA;AACE,4BAAA,OAAO,EAAE,sBAAsB;AAC/B,4BAAA,QAAQ,EAAE,SAAS;AACpB,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,QAAQ,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;AACjC,yBAAA;qBACF,EAAA,UAAA,EACW;wBACV,OAAO,CAAC,sBAAsB,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;wBAC3D,OAAO,CAAC,wBAAwB,EAAE;4BAChC,UAAU,CAAC,cAAc,EAAE;AACzB,gCAAA,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACV,oCAAA,KAAK,EAAE,CAAC;iCACT,CAAC;AACF,gCAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACV,oCAAA,KAAK,EAAE,GAAG;AACX,iCAAA,CAAC,CACH;6BACF,CAAC;4BACF,UAAU,CAAC,cAAc,EAAE;AACzB,gCAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACV,oCAAA,KAAK,EAAE,CAAC;AACT,iCAAA,CAAC,CACH;6BACF,CAAC;4BACF,UAAU,CAAC,qBAAqB,EAAE;AAChC,gCAAA,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;iCACX,CAAC;AACF,gCAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACX,iCAAA,CAAC,CACH;6BACF,CAAC;4BACF,UAAU,CAAC,qBAAqB,EAAE;AAChC,gCAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACX,iCAAA,CAAC,CACH;6BACF,CAAC;yBACH,CAAC;wBACF,OAAO,CAAC,qBAAqB,EAAE;4BAC7B,UAAU,CAAC,cAAc,EAAE;AACzB,gCAAA,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;iCACX,CAAC;AACF,gCAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACX,iCAAA,CAAC,CACH;6BACF,CAAC;4BACF,UAAU,CAAC,cAAc,EAAE;AACzB,gCAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACX,iCAAA,CAAC,CACH;6BACF,CAAC;yBACH,CAAC;AACH,qBAAA,EAAA,QAAA,EAAA,g6GAAA,EAAA,MAAA,EAAA,CAAA,sr5IAAA,CAAA,EAAA;;0BAuKE;;0BACA;;0BAAY;yCAhKJ,eAAe,EAAA,CAAA;sBADzB;gBAmBU,cAAc,EAAA,CAAA;sBADxB;gBAmBU,YAAY,EAAA,CAAA;sBADtB;gBAgBM,oBAAoB,EAAA,CAAA;sBAD1B;gBAQM,qBAAqB,EAAA,CAAA;sBAD3B;gBAmBU,eAAe,EAAA,CAAA;sBADzB;gBAoCM,gBAAgB,EAAA,CAAA;sBAJtB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,kBAAkB,EAAE;AAC7B,wBAAA,IAAI,EAAE,WAAW;AACjB,wBAAA,MAAM,EAAE,IAAI;AACb,qBAAA;gBAOM,qBAAqB,EAAA,CAAA;sBAJ3B,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,uBAAuB,EAAE;AAClC,wBAAA,IAAI,EAAE,WAAW;AACjB,wBAAA,MAAM,EAAE,IAAI;AACb,qBAAA;gBAOM,uBAAuB,EAAA,CAAA;sBAJ7B,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,yBAAyB,EAAE;AACpC,wBAAA,IAAI,EAAE,WAAW;AACjB,wBAAA,MAAM,EAAE,IAAI;AACb,qBAAA;;;AEjQH;;;;;;;;;;;;AAYG;MAgBU,2BAA2B,CAAA;AAfxC,IAAA,WAAA,GAAA;AAqCE;;;;;;AAMG;QAEI,IAAA,CAAA,uBAAuB,GAAG,KAAK;QAEtC,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,OAAO,GAAG,EAAE;AAEZ,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAQ;AAGpC,QAAA,IAAA,CAAA,WAAW,GAAG,eAAe,CAAC,WAAW,EAAE;AAElC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,2BAA2B,EAAE;AACzD,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC;AAEO,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;AAC3B,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,EAAE;AAC7D,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC;AA0MH;AAzPC;;;;AAIG;IACH,IACW,QAAQ,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,YAAA,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,GAAG,KAAK;YACvD,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;;AAG/D,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;;AAGzB,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,UAAU;;AAaxB,IAAA,UAAU;AACV,IAAA,OAAO;AACP,IAAA,QAAQ;AACR,IAAA,cAAc;AACd,IAAA,aAAa;AACb,IAAA,cAAc;AACd,IAAA,WAAW;AAEF,IAAA,WAAW;AAMX,IAAA,MAAM;AACN,IAAA,oBAAoB;IAKtB,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC9B,MAAM,IAAI,KAAK,CACb,4DAA4D;AAC1D,gBAAA,gCAAgC,CACnC;;QAGH,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7C,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC;QAElE,IAAI,CAAC,oBAAoB,EAAE;AACxB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;aACnC,SAAS,CAAC,MAAK;AACd,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1D,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,QAAQ,EAAE,sBAAsB,EAAE;AACzC,SAAC,CAAC;QAEJ,IAAI,CAAC,oBAAoB,CAAC;aACvB,GAAG,CAAC,eAAe;AACpB,cAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;aAC1D,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE;AAC5B,YAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE;AAChC,SAAC,CAAC;;IAGC,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;;AAGzB,IAAA,gBAAgB,CAAC,EAA2B,EAAA;AACjD,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE;;AAGlB,IAAA,iBAAiB,CAAC,EAAc,EAAA;AACrC,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;;AAGnB,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;AAGrB,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACtC,QAAA,IAAI,CAAC,QAAQ,KAAK,OAAO;AAEzB,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AAE3B,QAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAC1C,YAAA,OAAO,IAAI;;QAGb,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE;YACpC,OAAO;AACL,gBAAA,aAAa,EAAE;AACb,oBAAA,OAAO,EAAE,KAAK;AACf,iBAAA;aACF;;AAGH,QAAA,OAAO,IAAI;;AAGN,IAAA,UAAU,CAAC,KAAc,EAAA;AAC9B,QAAA,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,EAAE;AAEvD,QAAA,IAAI,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,QAAQ,CAAC;QACzD,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;AAExD,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AACxB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE;AAEjC,QAAA,IAAI,QAAQ,KAAK,QAAQ,EAAE;;;;;;AAMzB,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;AAChC,iBAAC,CAAC;;iBACG;AACL,gBAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;;;;IAM1B,MAAM,GAAA;AACd,QAAA,IAAI,CAAC,cAAc,IAAI;;IAIf,OAAO,GAAA;AACf,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1D,QAAA,IAAI,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,KAAK,CAAC;AACtD,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;;AAGxC,IAAA,uBAAuB,CAAC,KAAyB,EAAA;QAC/C,IAAI,CAAC,KAAK,EAAE;YACV;;AAGF,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAChD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE;AACxC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,EAAE,YAAY;AAE5D,QAAA,IAAI;AACF,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAoB,CACvD,KAAK,EACL,UAAU,IAAI,cAAc,CAC7B;YAED,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE;AAClD,gBAAA,OAAO,IAAI,CAAC,kBAAkB,CAC5B,WAAW,EACX,YAAY,EACZ,cAAc,EACd,UAAU,CACX;;;AAEH,QAAA,MAAM;;;QAIR;;AAGF,IAAA,kBAAkB,CAChB,WAAwB,EACxB,YAA8C,EAC9C,cAAuB,EACvB,UAAmB,EAAA;QAEnB,QAAQ,YAAY;AAClB,YAAA,KAAK,eAAe;AAClB,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAC5B,WAAW,EACX,iBAAiB,CAAC,aAAa,CAChC;AAEH,YAAA,KAAK,UAAU;AACb,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAAC,QAAQ,CAAC;AAEzE,YAAA,KAAK,SAAS;AACd,YAAA;AACE,gBAAA,OAAO,UAAU,IAAI,UAAU,KAAK;AAClC,sBAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CACrB,WAAW,EACX,iBAAiB,CAAC,aAAa;AAEnC,sBAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAAC,QAAQ,CAAC;;;IAI1E,kBAAkB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,cAAc;;IAGlD,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,eAAe,EAAE,IAAI;;IAGzD,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,OAAO;;AAGrB,IAAA,mBAAmB,CAAC,KAAa,EAAA;AAC/B,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,cAAc;QAC1D,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,eAAe;AAEpE,QAAA,IAAI;AACF,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAoB,CACvD,KAAK,EACL,UAAU,CACX;YAED,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC,YAAY,EAAE,EAAE;AAClD,gBAAA,OAAO,KAAK;;YAGd,OAAO,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,WAAW,EAAE,UAAU,CAAC;;AACvE,QAAA,MAAM;AACN,YAAA,OAAO,KAAK;;;AAIhB,IAAA,SAAS,CAAC,KAAyB,EAAA;;AAEjC,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;AACrD,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,IAAI,KAAK;;;+GAzP1B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAQlB,gBAAgB,CAAA,EAAA,uBAAA,EAAA,CAAA,yBAAA,EAAA,yBAAA,EAqBhB,gBAAgB,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EA1CzB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,2BAA2B;AACxC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,2BAA2B;AACxC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEU,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAfvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAA,2BAA6B;AACxC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAA,2BAA6B;AACxC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;AACF,iBAAA;8BAUY,QAAQ,EAAA,CAAA;sBADlB,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAsB/B,uBAAuB,EAAA,CAAA;sBAD7B,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAkH5B,MAAM,EAAA,CAAA;sBADf,YAAY;uBAAC,MAAM;gBAMV,OAAO,EAAA,CAAA;sBADhB,YAAY;uBAAC,OAAO;;;MCpMV,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAHpB,sBAAsB,EAAE,2BAA2B,CAAA,EAAA,OAAA,EAAA,CACnD,sBAAsB,EAAE,2BAA2B,CAAA,EAAA,CAAA,CAAA;AAElD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAHpB,sBAAsB,CAAA,EAAA,CAAA,CAAA;;4FAGrB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;AAC9D,oBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;AAC/D,iBAAA;;;ACRD;;AAEG;;;;"}
1
+ {"version":3,"file":"skyux-phone-field.mjs","sources":["../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field-adapter.service.ts","../../../../../libs/components/phone-field/src/lib/modules/shared/sky-phone-field-resources.module.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/clone-country-data.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.component.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.component.html","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field-input.directive.ts","../../../../../libs/components/phone-field/src/lib/modules/phone-field/phone-field.module.ts","../../../../../libs/components/phone-field/src/skyux-phone-field.ts"],"sourcesContent":["import {\n ElementRef,\n Injectable,\n OnDestroy,\n Renderer2,\n inject,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\n/**\n * Service for interacting with the DOM elements of the phone field.\n * @internal\n */\n@Injectable()\nexport class SkyPhoneFieldAdapterService implements OnDestroy {\n #ngUnsubscribe = new Subject<void>();\n #renderer = inject(Renderer2);\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public addElementClass(elementRef: ElementRef, className: string): void {\n this.#renderer.addClass(elementRef.nativeElement, className);\n }\n\n public getInputValue(elementRef: ElementRef): string | undefined {\n const el = elementRef.nativeElement as HTMLElement | null;\n\n if (el && 'value' in el) {\n return (el as HTMLInputElement).value;\n }\n\n /* istanbul ignore next: safety check */\n return undefined;\n }\n\n public setElementDisabledState(\n elementRef: ElementRef,\n disabled: boolean,\n ): void {\n this.#renderer.setProperty(elementRef.nativeElement, 'disabled', disabled);\n }\n\n public setElementType(elementRef: ElementRef): void {\n this.#renderer.setAttribute(elementRef.nativeElement, 'type', 'tel');\n }\n\n public setElementValue(elementRef: ElementRef, value: string): void {\n this.#renderer.setProperty(elementRef.nativeElement, 'value', value);\n }\n\n 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","/* istanbul ignore file */\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-phone-field' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_phone_field_country_search_dismiss: {\n message: 'Dismiss country search',\n },\n skyux_phone_field_country_search_label: {\n message: 'Dismiss country search',\n },\n skyux_phone_field_country_search_placeholder: {\n message: 'Search for a country',\n },\n skyux_phone_field_country_select_label: { message: 'Choose country.' },\n skyux_phone_field_country_selected_label: {\n message: '{0} is currently selected.',\n },\n skyux_phone_field_format_hint_text: { message: 'Example: {0}.' },\n },\n 'FR-CA': {\n skyux_phone_field_country_search_dismiss: {\n message: 'Omettre la recherche du pays',\n },\n skyux_phone_field_country_search_label: {\n message: 'Omettre la recherche du pays',\n },\n skyux_phone_field_country_search_placeholder: {\n message: 'Rechercher un pays',\n },\n skyux_phone_field_country_select_label: { message: 'Choisissez un pays.' },\n skyux_phone_field_country_selected_label: {\n message: '{0} est actuellement sélectionné.',\n },\n skyux_phone_field_format_hint_text: { message: 'Exemple : {0}.' },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyPhoneFieldResourcesModule {}\n","import { type Country } from 'intl-tel-input/data';\n\nimport type { SkyPhoneFieldCountry } from './types/country';\n\n/**\n * Clone the country data for each component instance to avoid overwriting\n * the global country data.\n */\nexport function cloneCountryData(data: Country[]): SkyPhoneFieldCountry[] {\n const clone = [...data];\n\n return clone.map((country) => {\n const mapped: SkyPhoneFieldCountry = {\n iso2: country.iso2,\n dialCode: country.dialCode,\n name: country.name,\n priority: country.priority,\n };\n\n if (country.areaCodes) {\n mapped.areaCodes = [...country.areaCodes];\n }\n\n return mapped;\n });\n}\n","import {\n AnimationEvent,\n animate,\n style,\n transition,\n trigger,\n} from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Renderer2,\n SkipSelf,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { SkyAppFormat } from '@skyux/core';\nimport { SkyInputBoxHostService } from '@skyux/forms';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyIconModule } from '@skyux/icon';\nimport {\n SKY_COUNTRY_FIELD_CONTEXT,\n SkyCountryFieldCountry,\n SkyCountryFieldModule,\n} from '@skyux/lookup';\nimport { SkyThemeModule, SkyThemeService } from '@skyux/theme';\n\nimport {\n PhoneNumberFormat,\n PhoneNumberType,\n PhoneNumberUtil,\n} from 'google-libphonenumber';\nimport intlTelInput from 'intl-tel-input';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { SkyPhoneFieldResourcesModule } from '../shared/sky-phone-field-resources.module';\n\nimport { cloneCountryData } from './clone-country-data';\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldCountry } from './types/country';\nimport { SkyPhoneFieldNumberReturnFormat } from './types/number-return-format';\n\nconst DEFAULT_COUNTRY_CODE = 'us';\n\n// 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 imports: [\n CommonModule,\n ReactiveFormsModule,\n SkyCountryFieldModule,\n SkyIconModule,\n SkyPhoneFieldResourcesModule,\n SkyThemeModule,\n ],\n selector: 'sky-phone-field',\n templateUrl: './phone-field.component.html',\n styleUrls: ['./phone-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n SkyPhoneFieldAdapterService,\n // Prevents the embedded country field component from changing its behavior based on\n // being inside an input box. The phone field itself will handle the required changes\n // for input box.\n {\n provide: SkyInputBoxHostService,\n useValue: undefined,\n },\n {\n provide: SKY_COUNTRY_FIELD_CONTEXT,\n useValue: { inPhoneField: true },\n },\n ],\n animations: [\n trigger('blockAnimationOnLoad', [transition(':enter', [])]),\n trigger('countrySearchAnimation', [\n transition('void => open', [\n style({\n opacity: 0,\n width: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n width: '*',\n }),\n ),\n ]),\n transition('open => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n width: 0,\n }),\n ),\n ]),\n transition('void => open-modern', [\n style({\n opacity: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n }),\n ),\n ]),\n transition('open-modern => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n }),\n ),\n ]),\n ]),\n trigger('phoneInputAnimation', [\n transition('void => open', [\n style({\n opacity: 0,\n }),\n animate(\n '200ms ease-in',\n style({\n opacity: 1,\n }),\n ),\n ]),\n transition('open => void', [\n animate(\n '200ms ease-in',\n style({\n opacity: 0,\n }),\n ),\n ]),\n ]),\n ],\n})\nexport class SkyPhoneFieldComponent implements OnDestroy, OnInit {\n /**\n * Whether phone number extensions are allowed.\n * @default true\n */\n @Input()\n public set allowExtensions(value: boolean | undefined) {\n this.#_allowExtensions = value !== false;\n }\n\n public get allowExtensions(): boolean {\n return this.#_allowExtensions;\n }\n\n #_allowExtensions = true;\n\n /**\n * The\n * [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)\n * country code for the default country. The country selector button displays a flag\n * icon for this default country until users select a different country.\n * @default \"us\"\n */\n @Input()\n public set defaultCountry(value: string | undefined) {\n if (value !== this.#_defaultCountry) {\n value ??= DEFAULT_COUNTRY_CODE;\n this.#_defaultCountry = value.toLocaleLowerCase();\n this.#defaultCountryData = this.#getDefaultCountryData();\n }\n }\n\n public get defaultCountry(): string {\n return this.#_defaultCountry;\n }\n\n /**\n * The format for validated phone numbers.\n * Options include: `\"default\"`, `\"international\"`, and `\"national\"`.\n * @default \"default\"\n */\n @Input()\n public get returnFormat(): SkyPhoneFieldNumberReturnFormat {\n return this.#_returnFormat;\n }\n\n public set returnFormat(value: SkyPhoneFieldNumberReturnFormat | undefined) {\n this.#_returnFormat = value || 'default';\n }\n\n #_returnFormat: SkyPhoneFieldNumberReturnFormat = 'default';\n\n /**\n * The [International Organization for Standardization Alpha 2](https://www.nationsonline.org/oneworld/country_code_list.htm)\n * country codes for the countries that users can select. By default, all countries are available.\n */\n @Input()\n public supportedCountryISOs: string[] | undefined;\n\n /**\n * Emits a `SkyPhoneFieldCountry` object when the selected country in the country search\n * input changes.\n */\n @Output()\n public selectedCountryChange = new EventEmitter<SkyPhoneFieldCountry>();\n\n public countries: SkyPhoneFieldCountry[];\n\n public countrySelectDisabled = false;\n\n public countrySearchShown = false;\n\n public phoneInputShown = true;\n\n public countrySearchForm: FormGroup<{\n countrySearch: FormControl<SkyCountryFieldCountry | undefined | null>;\n }>;\n\n /**\n * The currently selected country to validate against.\n */\n @Input()\n public set selectedCountry(newCountry: SkyPhoneFieldCountry | undefined) {\n if (\n newCountry &&\n (!this.#_selectedCountry ||\n this.#_selectedCountry.iso2 !== newCountry.iso2)\n ) {\n this.#_selectedCountry = this.countries.find(\n (country) => country.iso2 === newCountry.iso2,\n );\n\n if (this.#_selectedCountry && !this.#_selectedCountry.exampleNumber) {\n const numberObj = this.#phoneUtils.getExampleNumberForType(\n newCountry.iso2,\n PhoneNumberType.FIXED_LINE,\n );\n\n this.#_selectedCountry.exampleNumber = this.#phoneUtils.format(\n numberObj,\n PhoneNumberFormat.NATIONAL,\n );\n }\n\n this.#populateInputBoxHelpText();\n this.selectedCountryChange.emit(this.#_selectedCountry);\n }\n }\n\n public get selectedCountry(): SkyPhoneFieldCountry | undefined {\n return this.#_selectedCountry;\n }\n\n @ViewChild('inputTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public inputTemplateRef: TemplateRef<unknown> | undefined;\n\n @ViewChild('countryBtnTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public countryBtnTemplateRef: TemplateRef<unknown> | undefined;\n\n @ViewChild('buttonsInsetTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public buttonsInsetTemplateRef: TemplateRef<unknown> | undefined;\n\n #defaultCountryData: SkyPhoneFieldCountry | undefined;\n\n #focusPhoneInputAfterAnimation = false;\n\n #phoneNumberFormatHintTextTemplateString = '';\n\n #phoneUtils = PhoneNumberUtil.getInstance();\n\n #longestDialCodeLength = 0;\n\n #_defaultCountry = DEFAULT_COUNTRY_CODE;\n\n #_selectedCountry: SkyPhoneFieldCountry | undefined;\n\n #countrySearchFormControl = new FormControl<\n SkyCountryFieldCountry | undefined | null\n >(undefined);\n\n #countryFlagFocusListenerFn: (() => void) | undefined;\n #dismissCountrySearchFocusListenerFn: (() => void) | undefined;\n\n #formBuilder: FormBuilder;\n #adapterService: SkyPhoneFieldAdapterService;\n readonly #appFormat = inject(SkyAppFormat);\n #changeDetector: ChangeDetectorRef;\n #ngUnsubscribe = new Subject<void>();\n readonly #resourceSvc = inject(SkyLibResourcesService);\n readonly #elementRef = inject(ElementRef<HTMLElement>);\n readonly #renderer = inject(Renderer2);\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 this.countries = cloneCountryData(intlTelInput.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.#defaultCountryData = this.#getDefaultCountryData();\n\n this.countrySearchForm = this.#formBuilder.group({\n countrySearch: this.#countrySearchFormControl,\n });\n\n this.#resourceSvc\n .getString('skyux_phone_field_format_hint_text')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((templateString) => {\n this.#phoneNumberFormatHintTextTemplateString = templateString;\n this.#populateInputBoxHelpText();\n });\n }\n\n public ngOnInit(): void {\n // The timeout here is needed to avoid a change before checked error when a user specifies\n // a selected country on initialization of the component.\n setTimeout(() => {\n if (this.inputBoxHostSvc && this.inputTemplateRef) {\n this.inputBoxHostSvc.populate({\n inputTemplate: this.inputTemplateRef,\n buttonsInsetTemplate: this.buttonsInsetTemplateRef,\n buttonsLeftTemplate: this.countryBtnTemplateRef,\n });\n }\n\n this.selectedCountry ??= this.#defaultCountryData;\n\n this.#changeDetector.markForCheck();\n }, 0);\n\n this.#countrySearchFormControl.valueChanges.subscribe(\n (newValue: SkyCountryFieldCountry | undefined | null) => {\n if (newValue?.iso2 !== this.selectedCountry?.iso2) {\n this.selectedCountry = newValue || undefined;\n }\n },\n );\n }\n\n public ngOnDestroy(): void {\n this.selectedCountryChange.complete();\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n /**\n * Sets the country to validate against based on the county's iso2 code.\n * @param newCountry The International Organization for Standardization's two-letter code\n * for the default country.\n * @internal\n */\n public onCountrySelected(newCountry: SkyCountryFieldCountry): void {\n if (newCountry) {\n this.selectedCountry = this.countries.find(\n (countryInfo) => countryInfo.iso2 === newCountry.iso2,\n );\n\n this.#focusPhoneInputAfterAnimation = true;\n this.toggleCountrySearch(false);\n }\n }\n\n public toggleCountrySearch(showSearch: boolean): void {\n if (showSearch) {\n this.phoneInputShown = false;\n } else {\n this.countrySearchShown = false;\n\n this.#countrySearchFormControl.setValue(undefined);\n }\n\n if (this.inputBoxHostSvc && this.inputTemplateRef) {\n this.inputBoxHostSvc.setHintTextHidden(showSearch);\n }\n\n this.#changeDetector.markForCheck();\n }\n\n // TODO: remove this if no longer needed after a scalable focus monitor service is implemented\n public onCountryFieldFocusout({ relatedTarget }: FocusEvent): void {\n if (this.inputBoxHostSvc && relatedTarget) {\n if (!this.inputBoxHostSvc.focusIsInInput(relatedTarget)) {\n this.toggleCountrySearch(false);\n }\n } else {\n if (!this.#elementRef.nativeElement.contains(relatedTarget)) {\n this.toggleCountrySearch(false);\n }\n }\n }\n\n public countrySearchAnimationEnd(e: AnimationEvent): void {\n if (!this.countrySearchShown) {\n this.phoneInputShown = true;\n } else {\n this.#adapterService.focusCountrySearchElement(e.element);\n\n let countryFlagButton: HTMLElement | undefined;\n let dismissCountrySearchButton: HTMLElement | undefined;\n\n // add event listeners for focusout from the buttons on either side of country search field.\n if (!this.inputBoxHostSvc) {\n countryFlagButton = this.#elementRef.nativeElement.querySelector(\n 'button.sky-phone-field-country-select-btn',\n );\n dismissCountrySearchButton =\n this.#elementRef.nativeElement.querySelector(\n 'button.sky-phone-field-search-btn-dismiss',\n );\n } else {\n countryFlagButton = this.inputBoxHostSvc.queryHost(\n 'button.sky-phone-field-country-select-btn',\n );\n dismissCountrySearchButton = this.inputBoxHostSvc.queryHost(\n 'button.sky-phone-field-search-btn-dismiss',\n );\n }\n\n if (countryFlagButton && dismissCountrySearchButton) {\n this.#countryFlagFocusListenerFn =\n this.addFocusEventListener(countryFlagButton);\n this.#dismissCountrySearchFocusListenerFn = this.addFocusEventListener(\n dismissCountrySearchButton,\n );\n }\n }\n\n this.#changeDetector.markForCheck();\n }\n\n public dismissButtonClicked(): void {\n this.#focusPhoneInputAfterAnimation = true;\n this.toggleCountrySearch(false);\n }\n\n public phoneInputAnimationEnd(e: AnimationEvent): void {\n if (!this.phoneInputShown) {\n this.countrySearchShown = true;\n } else {\n if (this.#focusPhoneInputAfterAnimation) {\n this.#adapterService.focusPhoneInput(e.element);\n this.#focusPhoneInputAfterAnimation = false;\n }\n\n // Remove focus out event listeners now that country search is closed.\n if (this.#countryFlagFocusListenerFn) {\n this.#countryFlagFocusListenerFn();\n }\n if (this.#dismissCountrySearchFocusListenerFn) {\n this.#dismissCountrySearchFocusListenerFn();\n }\n }\n\n this.#changeDetector.markForCheck();\n }\n\n // TODO: remove this if no longer needed after a scalable focus monitor service is implemented\n private addFocusEventListener(el: HTMLElement): () => void {\n return this.#renderer.listen(el, 'focusout', (event: FocusEvent) => {\n const target = event.relatedTarget;\n if (this.inputBoxHostSvc && target) {\n if (!this.inputBoxHostSvc.focusIsInInput(target)) {\n this.toggleCountrySearch(false);\n }\n } else {\n if (!this.#elementRef.nativeElement.contains(target)) {\n this.toggleCountrySearch(false);\n }\n }\n });\n }\n\n public setCountryByDialCode(phoneNumberRaw: string | undefined): void {\n if (!phoneNumberRaw || !phoneNumberRaw.startsWith('+')) {\n return;\n }\n\n let foundCountry: SkyPhoneFieldCountry | undefined;\n\n try {\n const phoneNumberParsed =\n this.#phoneUtils.parseAndKeepRawInput(phoneNumberRaw);\n\n const regionCode =\n this.#phoneUtils.getRegionCodeForNumber(phoneNumberParsed);\n\n if (regionCode !== undefined) {\n foundCountry = this.countries.find(\n (country) =>\n country.iso2.toLocaleUpperCase() === regionCode.toLocaleUpperCase(),\n );\n }\n } catch {\n foundCountry ??= this.#findCountryByDialCode(phoneNumberRaw);\n }\n\n if (foundCountry && !this.#validateSupportedCountry(foundCountry)) {\n foundCountry = undefined;\n }\n\n if (foundCountry !== this.selectedCountry) {\n this.selectedCountry = foundCountry;\n this.#changeDetector.markForCheck();\n }\n }\n\n #findCountryByDialCode(\n phoneNumberRaw: string,\n ): SkyPhoneFieldCountry | undefined {\n const defaultDialCode = this.#defaultCountryData?.dialCode;\n const selectedCountryDialCode = this.selectedCountry?.dialCode;\n\n let foundCountry: SkyPhoneFieldCountry | undefined;\n\n if (\n !selectedCountryDialCode ||\n !phoneNumberRaw.startsWith(selectedCountryDialCode)\n ) {\n for (let i = 1; i < this.#longestDialCodeLength + 1; i++) {\n const dialCode = phoneNumberRaw.substring(0, i);\n\n if (defaultDialCode === dialCode) {\n foundCountry = this.#defaultCountryData;\n } else if (selectedCountryDialCode !== dialCode) {\n const dialCodeCountries = this.countries.filter(\n (country) => country.dialCode === dialCode,\n );\n\n if (dialCodeCountries.length > 0) {\n foundCountry =\n dialCodeCountries.find((country) => country.priority === 0) ??\n dialCodeCountries[0];\n }\n }\n }\n }\n\n return foundCountry;\n }\n\n #getDefaultCountryData(): SkyPhoneFieldCountry | undefined {\n return this.countries.find(\n (country) => country.iso2 === this.#_defaultCountry,\n );\n }\n\n #populateInputBoxHelpText(): void {\n if (this.inputBoxHostSvc && this.inputTemplateRef) {\n this.inputBoxHostSvc?.setHintText(\n this.#appFormat.formatText(\n this.#phoneNumberFormatHintTextTemplateString,\n this.#_selectedCountry?.exampleNumber,\n ),\n );\n }\n }\n\n #validateSupportedCountry(country: SkyPhoneFieldCountry): boolean {\n return (\n !this.supportedCountryISOs ||\n this.supportedCountryISOs.findIndex(\n (isoCode) => isoCode.toUpperCase() === country.iso2.toUpperCase(),\n ) >= 0\n );\n }\n}\n","@if (!inputBoxHostSvc) {\n <div class=\"sky-input-group sky-phone-field\" [@blockAnimationOnLoad]>\n <ng-container *ngTemplateOutlet=\"countryBtnTemplateRef\" />\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\" />\n <ng-container *ngTemplateOutlet=\"buttonsInsetTemplateRef\" />\n </div>\n}\n\n<ng-template #countryBtnTemplateRef>\n <div\n class=\"sky-input-group-btn sky-phone-field-country-btn\"\n [attr.data-sky-test-iso2]=\"selectedCountry?.iso2\"\n [attr.data-sky-test-name]=\"selectedCountry?.name\"\n >\n <button\n aria-live=\"polite\"\n class=\"sky-btn sky-btn-default sky-phone-field-country-select-btn\"\n type=\"button\"\n [attr.title]=\"\n ('skyux_phone_field_country_select_label' | skyLibResources) +\n ' ' +\n ('skyux_phone_field_country_selected_label'\n | skyLibResources: selectedCountry?.name)\n \"\n [attr.aria-label]=\"\n ('skyux_phone_field_country_select_label' | skyLibResources) +\n ' ' +\n ('skyux_phone_field_country_selected_label'\n | skyLibResources: selectedCountry?.name)\n \"\n [disabled]=\"countrySelectDisabled\"\n (click)=\"toggleCountrySearch(true)\"\n >\n <div class=\"sky-phone-field-flag\">\n <div\n class=\"iti__flag\"\n [ngClass]=\"'iti__' + selectedCountry?.iso2\"\n ></div>\n </div>\n </button>\n </div>\n</ng-template>\n\n<ng-template #inputTemplateRef>\n @if (phoneInputShown) {\n <span\n class=\"sky-phone-field-container\"\n [@phoneInputAnimation]=\"phoneInputShown ? 'open' : 'closed'\"\n (@phoneInputAnimation.done)=\"phoneInputAnimationEnd($event)\"\n >\n <ng-content />\n </span>\n } @else if (countrySearchShown) {\n <span\n class=\"sky-phone-field-container\"\n [@countrySearchAnimation]=\"\n 'open' +\n ((themeSvc?.settingsChange | async)?.currentSettings?.theme?.name ===\n 'modern'\n ? '-modern'\n : '')\n \"\n (@countrySearchAnimation.done)=\"countrySearchAnimationEnd($event)\"\n >\n <div\n class=\"sky-phone-field-country-search\"\n [formGroup]=\"countrySearchForm\"\n >\n <sky-country-field\n formControlName=\"countrySearch\"\n [defaultCountry]=\"defaultCountry\"\n [supportedCountryISOs]=\"supportedCountryISOs\"\n (selectedCountryChange)=\"onCountrySelected($event)\"\n (countryFieldFocusout)=\"onCountryFieldFocusout($event)\"\n />\n </div>\n </span>\n }\n</ng-template>\n\n<ng-template #buttonsInsetTemplateRef>\n @if (countrySearchShown) {\n <div\n class=\"sky-input-group-btn sky-input-box-btn-inset sky-search-item-dismiss\"\n >\n <button\n class=\"sky-btn sky-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)=\"dismissButtonClicked()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" iconName=\"chevron-double-left\" />\n <sky-icon\n *skyThemeIf=\"'modern'\"\n iconName=\"chevron-double-left\"\n iconSize=\"l\"\n />\n </button>\n </div>\n }\n</ng-template>\n","import {\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\n\nimport {\n PhoneNumber,\n PhoneNumberFormat,\n PhoneNumberUtil,\n} from 'google-libphonenumber';\nimport { Subject, take, takeUntil } from 'rxjs';\n\nimport { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\nimport { SkyPhoneFieldNumberReturnFormat } from './types/number-return-format';\n\n/**\n * Creates a button, search input, and text input for entering and validating\n * international phone numbers. Place this attribute on an `input` element, and wrap\n * that element in a `sky-phone-field` component. By default, the country selector\n * button displays a flag icon for the default country, and the phone number input\n * displays a sample of the correct phone number format. When users select the country\n * selector button, they expose the country search input, which is\n * [an autocomplete input](https://developer.blackbaud.com/skyux/components/autocomplete)\n * that allows them to select different countries. When users enter `+` followed by an\n * international dial code in the phone number input, the country automatically switches\n * to the country associated with the dial code.\n * @required\n */\n@Directive({\n selector: '[skyPhoneFieldInput]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: SkyPhoneFieldInputDirective,\n multi: true,\n },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SkyPhoneFieldInputDirective,\n multi: true,\n },\n ],\n})\nexport class SkyPhoneFieldInputDirective\n implements OnInit, OnDestroy, ControlValueAccessor, Validator\n{\n /**\n * Whether to disable the phone field on template-driven forms. Don't use this input on reactive forms because they may overwrite the input or leave the control out of sync.\n * To set the disabled state on reactive forms, use the `FormControl` instead.\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public set disabled(value: boolean) {\n if (this.#phoneFieldComponent) {\n this.#phoneFieldComponent.countrySelectDisabled = value;\n this.#adapterSvc?.setElementDisabledState(this.#elRef, value);\n }\n\n this.#_disabled = value;\n }\n\n public get disabled(): boolean {\n return this.#_disabled;\n }\n\n /**\n * Whether to prevent validation on the phone number input. For validation,\n * phone numbers are driven through the `ngModel` attribute that you specify on an\n * `input` element or on a `FormControl` in a reactive form. To prevent validation,\n * set this property to `true`.\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public skyPhoneFieldNoValidate = false;\n\n #_disabled = false;\n #_value = '';\n #control: AbstractControl | undefined;\n #ngUnsubscribe = new Subject<void>();\n #notifyChange: ((value: string) => void) | undefined;\n #notifyTouched: (() => void) | undefined;\n #phoneUtils = PhoneNumberUtil.getInstance();\n\n readonly #adapterSvc = inject(SkyPhoneFieldAdapterService, {\n host: true,\n optional: true,\n skipSelf: true,\n });\n\n readonly #elRef = inject(ElementRef);\n readonly #phoneFieldComponent = inject(SkyPhoneFieldComponent, {\n host: true,\n optional: true,\n });\n\n public ngOnInit(): void {\n if (!this.#phoneFieldComponent) {\n throw new Error(\n 'You must wrap the `skyPhoneFieldInput` directive within a ' +\n '`<sky-phone-field>` component!',\n );\n }\n\n this.#adapterSvc?.setElementType(this.#elRef);\n this.#adapterSvc?.addElementClass(this.#elRef, 'sky-form-control');\n\n this.#phoneFieldComponent?.selectedCountryChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n const value = this.#adapterSvc?.getInputValue(this.#elRef);\n this.#setValue(value);\n this.#control?.updateValueAndValidity();\n });\n\n this.#phoneFieldComponent.countrySearchForm\n .get('countrySearch')\n ?.valueChanges.pipe(takeUntil(this.#ngUnsubscribe), take(1))\n .subscribe(() => {\n this.#control?.markAsDirty();\n this.#control?.markAsTouched();\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public registerOnChange(fn: (value: string) => void): void {\n this.#notifyChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.#notifyTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n this.#control ??= control;\n\n const value = control.value;\n\n if (!value || this.skyPhoneFieldNoValidate) {\n return null;\n }\n\n if (!this.#isValidPhoneNumber(value)) {\n return {\n skyPhoneField: {\n invalid: value,\n },\n };\n }\n\n return null;\n }\n\n public writeValue(value: unknown): void {\n const rawValue = typeof value === 'string' ? value : '';\n\n this.#phoneFieldComponent?.setCountryByDialCode(rawValue);\n this.#adapterSvc?.setElementValue(this.#elRef, rawValue);\n\n this.#setValue(rawValue);\n const newValue = this.#getValue();\n\n if (rawValue !== newValue) {\n // If the value is set before the control is initialized, wait for the\n // first cycle to complete before triggering a value change event.\n // (This occurs when the control is initialized with an unformatted value\n // but is formatted into a new value immediately in the `writeValue`\n // method.)\n if (!this.#control) {\n setTimeout(() => {\n this.#notifyChange?.(newValue);\n });\n } else {\n this.#notifyChange?.(newValue);\n }\n }\n }\n\n @HostListener('blur')\n protected onBlur(): void {\n this.#notifyTouched?.();\n }\n\n @HostListener('input')\n protected onInput(): void {\n const value = this.#adapterSvc?.getInputValue(this.#elRef);\n this.#phoneFieldComponent?.setCountryByDialCode(value);\n this.#setValue(value);\n this.#notifyChange?.(this.#getValue());\n }\n\n #maybeFormatPhoneNumber(value: string | undefined): string | undefined {\n if (!value) {\n return;\n }\n\n const defaultCountry = this.#getDefaultCountry();\n const regionCode = this.#getRegionCode();\n const returnFormat = this.#phoneFieldComponent?.returnFormat;\n\n try {\n const phoneNumber = this.#phoneUtils.parseAndKeepRawInput(\n value,\n regionCode ?? defaultCountry,\n );\n\n if (this.#phoneUtils.isPossibleNumber(phoneNumber)) {\n return this.#formatPhoneNumber(\n phoneNumber,\n returnFormat,\n defaultCountry,\n regionCode,\n );\n }\n } catch {\n /* */\n }\n\n return;\n }\n\n #formatPhoneNumber(\n phoneNumber: PhoneNumber,\n returnFormat?: SkyPhoneFieldNumberReturnFormat,\n defaultCountry?: string,\n regionCode?: string,\n ): string {\n switch (returnFormat) {\n case 'international':\n return this.#phoneUtils.format(\n phoneNumber,\n PhoneNumberFormat.INTERNATIONAL,\n );\n\n case 'national':\n return this.#phoneUtils.format(phoneNumber, PhoneNumberFormat.NATIONAL);\n\n case 'default':\n default:\n return regionCode && regionCode !== defaultCountry\n ? this.#phoneUtils.format(\n phoneNumber,\n PhoneNumberFormat.INTERNATIONAL,\n )\n : this.#phoneUtils.format(phoneNumber, PhoneNumberFormat.NATIONAL);\n }\n }\n\n #getDefaultCountry(): string | undefined {\n return this.#phoneFieldComponent?.defaultCountry;\n }\n\n #getRegionCode(): string | undefined {\n return this.#phoneFieldComponent?.selectedCountry?.iso2;\n }\n\n #getValue(): string {\n return this.#_value;\n }\n\n #isValidPhoneNumber(value: string): boolean {\n const defaultCountry = this.#getDefaultCountry();\n const regionCode = this.#getRegionCode() ?? defaultCountry;\n const allowExtensions = !!this.#phoneFieldComponent?.allowExtensions;\n\n try {\n const phoneNumber = this.#phoneUtils.parseAndKeepRawInput(\n value,\n regionCode,\n );\n\n if (!allowExtensions && phoneNumber.getExtension()) {\n return false;\n }\n\n return this.#phoneUtils.isValidNumberForRegion(phoneNumber, regionCode);\n } catch {\n return false;\n }\n }\n\n #setValue(value: string | undefined): void {\n /* istanbul ignore else */\n if (value !== undefined) {\n const formatted = this.#maybeFormatPhoneNumber(value);\n this.#_value = formatted ?? value;\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { SkyPhoneFieldInputDirective } from './phone-field-input.directive';\nimport { SkyPhoneFieldComponent } from './phone-field.component';\n\n@NgModule({\n imports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],\n exports: [SkyPhoneFieldComponent, SkyPhoneFieldInputDirective],\n})\nexport class SkyPhoneFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.SkyPhoneFieldAdapterService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAUA;;;AAGG;MAEU,2BAA2B,CAAA;AACtC,IAAA,cAAc,GAAG,IAAI,OAAO,EAAQ;AACpC,IAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IAEtB,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;;IAGzB,eAAe,CAAC,UAAsB,EAAE,SAAiB,EAAA;QAC9D,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC;;AAGvD,IAAA,aAAa,CAAC,UAAsB,EAAA;AACzC,QAAA,MAAM,EAAE,GAAG,UAAU,CAAC,aAAmC;AAEzD,QAAA,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,EAAE;YACvB,OAAQ,EAAuB,CAAC,KAAK;;;AAIvC,QAAA,OAAO,SAAS;;IAGX,uBAAuB,CAC5B,UAAsB,EACtB,QAAiB,EAAA;AAEjB,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC;;AAGrE,IAAA,cAAc,CAAC,UAAsB,EAAA;AAC1C,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC;;IAG/D,eAAe,CAAC,UAAsB,EAAE,KAAa,EAAA;AAC1D,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,CAAC;;AAG/D,IAAA,yBAAyB,CAAC,EAAW,EAAA;QAC1C,MAAM,KAAK,GAAuB,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC;QAC9D,KAAK,EAAE,KAAK,EAAE;;AAGT,IAAA,eAAe,CAAC,EAAW,EAAA;QAChC,MAAM,KAAK,GAAuB,EAAE,CAAC,aAAa,CAChD,kCAAkC,CACnC;QACD,KAAK,EAAE,KAAK,EAAE;;+GAhDL,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAA3B,2BAA2B,EAAA,CAAA,CAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC;;;ACdD;AACA;;;;;AAKG;AAQH,MAAM,SAAS,GAAoC;AACjD,IAAA,OAAO,EAAE;AACP,QAAA,wCAAwC,EAAE;AACxC,YAAA,OAAO,EAAE,wBAAwB;AAClC,SAAA;AACD,QAAA,sCAAsC,EAAE;AACtC,YAAA,OAAO,EAAE,wBAAwB;AAClC,SAAA;AACD,QAAA,4CAA4C,EAAE;AAC5C,YAAA,OAAO,EAAE,sBAAsB;AAChC,SAAA;AACD,QAAA,sCAAsC,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;AACtE,QAAA,wCAAwC,EAAE;AACxC,YAAA,OAAO,EAAE,4BAA4B;AACtC,SAAA;AACD,QAAA,kCAAkC,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE;AACjE,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,wCAAwC,EAAE;AACxC,YAAA,OAAO,EAAE,8BAA8B;AACxC,SAAA;AACD,QAAA,sCAAsC,EAAE;AACtC,YAAA,OAAO,EAAE,8BAA8B;AACxC,SAAA;AACD,QAAA,4CAA4C,EAAE;AAC5C,YAAA,OAAO,EAAE,oBAAoB;AAC9B,SAAA;AACD,QAAA,sCAAsC,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE;AAC1E,QAAA,wCAAwC,EAAE;AACxC,YAAA,OAAO,EAAE,mCAAmC;AAC7C,SAAA;AACD,QAAA,kCAAkC,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;AAClE,KAAA;CACF;AAED,sBAAsB,CAAC,YAAY,CAAC,SAAS,CAAC;AAE9C;;AAEG;MAIU,4BAA4B,CAAA;+GAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YAF7B,aAAa,CAAA,EAAA,CAAA,CAAA;AAEZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YAF7B,aAAa,CAAA,EAAA,CAAA,CAAA;;4FAEZ,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;AACzB,iBAAA;;;ACpDD;;;AAGG;AACG,SAAU,gBAAgB,CAAC,IAAe,EAAA;AAC9C,IAAA,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC;AAEvB,IAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,KAAI;AAC3B,QAAA,MAAM,MAAM,GAAyB;YACnC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B;AAED,QAAA,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,MAAM,CAAC,SAAS,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;;AAG3C,QAAA,OAAO,MAAM;AACf,KAAC,CAAC;AACJ;;ACiCA,MAAM,oBAAoB,GAAG,IAAI;AAEjC;AACA;AACA;MAiGa,sBAAsB,CAAA;AACjC;;;AAGG;IACH,IACW,eAAe,CAAC,KAA0B,EAAA;AACnD,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,KAAK,KAAK;;AAG1C,IAAA,IAAW,eAAe,GAAA;QACxB,OAAO,IAAI,CAAC,iBAAiB;;AAG/B,IAAA,iBAAiB;AAEjB;;;;;;AAMG;IACH,IACW,cAAc,CAAC,KAAyB,EAAA;AACjD,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,gBAAgB,EAAE;YACnC,KAAK,KAAK,oBAAoB;AAC9B,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,iBAAiB,EAAE;AACjD,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,EAAE;;;AAI5D,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,gBAAgB;;AAG9B;;;;AAIG;AACH,IAAA,IACW,YAAY,GAAA;QACrB,OAAO,IAAI,CAAC,cAAc;;IAG5B,IAAW,YAAY,CAAC,KAAkD,EAAA;AACxE,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,IAAI,SAAS;;AAG1C,IAAA,cAAc;AA4Bd;;AAEG;IACH,IACW,eAAe,CAAC,UAA4C,EAAA;AACrE,QAAA,IACE,UAAU;aACT,CAAC,IAAI,CAAC,iBAAiB;gBACtB,IAAI,CAAC,iBAAiB,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,EAClD;YACA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAC1C,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAC9C;YAED,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE;AACnE,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,uBAAuB,CACxD,UAAU,CAAC,IAAI,EACf,eAAe,CAAC,UAAU,CAC3B;AAED,gBAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAC5D,SAAS,EACT,iBAAiB,CAAC,QAAQ,CAC3B;;YAGH,IAAI,CAAC,yBAAyB,EAAE;YAChC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;;;AAI3D,IAAA,IAAW,eAAe,GAAA;QACxB,OAAO,IAAI,CAAC,iBAAiB;;AAqB/B,IAAA,mBAAmB;AAEnB,IAAA,8BAA8B;AAE9B,IAAA,wCAAwC;AAExC,IAAA,WAAW;AAEX,IAAA,sBAAsB;AAEtB,IAAA,gBAAgB;AAEhB,IAAA,iBAAiB;AAEjB,IAAA,yBAAyB;AAIzB,IAAA,2BAA2B;AAC3B,IAAA,oCAAoC;AAEpC,IAAA,YAAY;AACZ,IAAA,eAAe;AACN,IAAA,UAAU;AACnB,IAAA,eAAe;AACf,IAAA,cAAc;AACL,IAAA,YAAY;AACZ,IAAA,WAAW;AACX,IAAA,SAAS;IAElB,WACE,CAAA,WAAwB,EACxB,cAA2C,EAC3C,cAAiC,EACd,QAA0B,EACd,eAAwC,EAAA;QADpD,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACI,IAAe,CAAA,eAAA,GAAf,eAAe;QAxJhD,IAAiB,CAAA,iBAAA,GAAG,IAAI;QAoCxB,IAAc,CAAA,cAAA,GAAoC,SAAS;AAS3D;;;AAGG;AAEI,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAwB;QAIhE,IAAqB,CAAA,qBAAA,GAAG,KAAK;QAE7B,IAAkB,CAAA,kBAAA,GAAG,KAAK;QAE1B,IAAe,CAAA,eAAA,GAAG,IAAI;QA6D7B,IAA8B,CAAA,8BAAA,GAAG,KAAK;QAEtC,IAAwC,CAAA,wCAAA,GAAG,EAAE;AAE7C,QAAA,IAAA,CAAA,WAAW,GAAG,eAAe,CAAC,WAAW,EAAE;QAE3C,IAAsB,CAAA,sBAAA,GAAG,CAAC;QAE1B,IAAgB,CAAA,gBAAA,GAAG,oBAAoB;AAIvC,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,WAAW,CAEzC,SAAS,CAAC;AAOH,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC;AAE1C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAQ;AAC3B,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAC7C,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,EAAC,UAAuB,EAAC;AAC7C,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AASpC,QAAA,IAAI,CAAC,YAAY,GAAG,WAAW;AAC/B,QAAA,IAAI,CAAC,eAAe,GAAG,cAAc;AACrC,QAAA,IAAI,CAAC,eAAe,GAAG,cAAc;QAErC,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;AAEhE,QAAA,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE;YACpC,OAAO,CAAC,QAAQ,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ;YAEzC,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,sBAAsB,EAAE;gBACzD,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM;;;AAIzD,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,EAAE;QAExD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAC/C,aAAa,EAAE,IAAI,CAAC,yBAAyB;AAC9C,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC;aACF,SAAS,CAAC,oCAAoC;AAC9C,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,cAAc,KAAI;AAC5B,YAAA,IAAI,CAAC,wCAAwC,GAAG,cAAc;YAC9D,IAAI,CAAC,yBAAyB,EAAE;AAClC,SAAC,CAAC;;IAGC,QAAQ,GAAA;;;QAGb,UAAU,CAAC,MAAK;YACd,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACjD,gBAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;oBAC5B,aAAa,EAAE,IAAI,CAAC,gBAAgB;oBACpC,oBAAoB,EAAE,IAAI,CAAC,uBAAuB;oBAClD,mBAAmB,EAAE,IAAI,CAAC,qBAAqB;AAChD,iBAAA,CAAC;;AAGJ,YAAA,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,mBAAmB;AAEjD,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;SACpC,EAAE,CAAC,CAAC;QAEL,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,SAAS,CACnD,CAAC,QAAmD,KAAI;YACtD,IAAI,QAAQ,EAAE,IAAI,KAAK,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE;AACjD,gBAAA,IAAI,CAAC,eAAe,GAAG,QAAQ,IAAI,SAAS;;AAEhD,SAAC,CACF;;IAGI,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE;AACrC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;;AAGhC;;;;;AAKG;AACI,IAAA,iBAAiB,CAAC,UAAkC,EAAA;QACzD,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CACxC,CAAC,WAAW,KAAK,WAAW,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CACtD;AAED,YAAA,IAAI,CAAC,8BAA8B,GAAG,IAAI;AAC1C,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;;;AAI5B,IAAA,mBAAmB,CAAC,UAAmB,EAAA;QAC5C,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK;;aACvB;AACL,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;AAE/B,YAAA,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,SAAS,CAAC;;QAGpD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACjD,YAAA,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,UAAU,CAAC;;AAGpD,QAAA,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;;;IAI9B,sBAAsB,CAAC,EAAE,aAAa,EAAc,EAAA;AACzD,QAAA,IAAI,IAAI,CAAC,eAAe,IAAI,aAAa,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE;AACvD,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;;;aAE5B;AACL,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;AAC3D,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;;;;AAK9B,IAAA,yBAAyB,CAAC,CAAiB,EAAA;AAChD,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC5B,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;;aACtB;YACL,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC,CAAC,OAAO,CAAC;AAEzD,YAAA,IAAI,iBAA0C;AAC9C,YAAA,IAAI,0BAAmD;;AAGvD,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBACzB,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAC9D,2CAA2C,CAC5C;gBACD,0BAA0B;oBACxB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAC1C,2CAA2C,CAC5C;;iBACE;gBACL,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAChD,2CAA2C,CAC5C;gBACD,0BAA0B,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CACzD,2CAA2C,CAC5C;;AAGH,YAAA,IAAI,iBAAiB,IAAI,0BAA0B,EAAE;AACnD,gBAAA,IAAI,CAAC,2BAA2B;AAC9B,oBAAA,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC;gBAC/C,IAAI,CAAC,oCAAoC,GAAG,IAAI,CAAC,qBAAqB,CACpE,0BAA0B,CAC3B;;;AAIL,QAAA,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;;IAG9B,oBAAoB,GAAA;AACzB,QAAA,IAAI,CAAC,8BAA8B,GAAG,IAAI;AAC1C,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;;AAG1B,IAAA,sBAAsB,CAAC,CAAiB,EAAA;AAC7C,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;;aACzB;AACL,YAAA,IAAI,IAAI,CAAC,8BAA8B,EAAE;gBACvC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC;AAC/C,gBAAA,IAAI,CAAC,8BAA8B,GAAG,KAAK;;;AAI7C,YAAA,IAAI,IAAI,CAAC,2BAA2B,EAAE;gBACpC,IAAI,CAAC,2BAA2B,EAAE;;AAEpC,YAAA,IAAI,IAAI,CAAC,oCAAoC,EAAE;gBAC7C,IAAI,CAAC,oCAAoC,EAAE;;;AAI/C,QAAA,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;;;AAI7B,IAAA,qBAAqB,CAAC,EAAe,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,KAAiB,KAAI;AACjE,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa;AAClC,YAAA,IAAI,IAAI,CAAC,eAAe,IAAI,MAAM,EAAE;gBAClC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AAChD,oBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;;;iBAE5B;AACL,gBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACpD,oBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;;;AAGrC,SAAC,CAAC;;AAGG,IAAA,oBAAoB,CAAC,cAAkC,EAAA;QAC5D,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACtD;;AAGF,QAAA,IAAI,YAA8C;AAElD,QAAA,IAAI;YACF,MAAM,iBAAiB,GACrB,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,cAAc,CAAC;YAEvD,MAAM,UAAU,GACd,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,iBAAiB,CAAC;AAE5D,YAAA,IAAI,UAAU,KAAK,SAAS,EAAE;gBAC5B,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAChC,CAAC,OAAO,KACN,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,UAAU,CAAC,iBAAiB,EAAE,CACtE;;;AAEH,QAAA,MAAM;AACN,YAAA,YAAY,KAAK,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC;;QAG9D,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,EAAE;YACjE,YAAY,GAAG,SAAS;;AAG1B,QAAA,IAAI,YAAY,KAAK,IAAI,CAAC,eAAe,EAAE;AACzC,YAAA,IAAI,CAAC,eAAe,GAAG,YAAY;AACnC,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;;;AAIvC,IAAA,sBAAsB,CACpB,cAAsB,EAAA;AAEtB,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,EAAE,QAAQ;AAC1D,QAAA,MAAM,uBAAuB,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ;AAE9D,QAAA,IAAI,YAA8C;AAElD,QAAA,IACE,CAAC,uBAAuB;AACxB,YAAA,CAAC,cAAc,CAAC,UAAU,CAAC,uBAAuB,CAAC,EACnD;AACA,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,sBAAsB,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxD,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AAE/C,gBAAA,IAAI,eAAe,KAAK,QAAQ,EAAE;AAChC,oBAAA,YAAY,GAAG,IAAI,CAAC,mBAAmB;;AAClC,qBAAA,IAAI,uBAAuB,KAAK,QAAQ,EAAE;AAC/C,oBAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAC7C,CAAC,OAAO,KAAK,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAC3C;AAED,oBAAA,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;wBAChC,YAAY;AACV,4BAAA,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC;gCAC3D,iBAAiB,CAAC,CAAC,CAAC;;;;;AAM9B,QAAA,OAAO,YAAY;;IAGrB,sBAAsB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CACxB,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,gBAAgB,CACpD;;IAGH,yBAAyB,GAAA;QACvB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACjD,IAAI,CAAC,eAAe,EAAE,WAAW,CAC/B,IAAI,CAAC,UAAU,CAAC,UAAU,CACxB,IAAI,CAAC,wCAAwC,EAC7C,IAAI,CAAC,iBAAiB,EAAE,aAAa,CACtC,CACF;;;AAIL,IAAA,yBAAyB,CAAC,OAA6B,EAAA;AACrD,QAAA,QACE,CAAC,IAAI,CAAC,oBAAoB;YAC1B,IAAI,CAAC,oBAAoB,CAAC,SAAS,CACjC,CAAC,OAAO,KAAK,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAClE,IAAI,CAAC;;+GA9bC,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,2BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAlFtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,SAAA,EAAA;YACT,2BAA2B;;;;AAI3B,YAAA;AACE,gBAAA,OAAO,EAAE,sBAAsB;AAC/B,gBAAA,QAAQ,EAAE,SAAS;AACpB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,yBAAyB;AAClC,gBAAA,QAAQ,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;AACjC,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAuLO,WAAW,EAMX,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,2IAMX,WAAW,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7RrB,g6GA4GA,ED3CI,MAAA,EAAA,CAAA,sr5IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,wVACZ,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,qBAAqB,EACrB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,uBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,+KACb,4BAA4B,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAC5B,cAAc,EAqBJ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACV,OAAO,CAAC,sBAAsB,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,wBAAwB,EAAE;gBAChC,UAAU,CAAC,cAAc,EAAE;AACzB,oBAAA,KAAK,CAAC;AACJ,wBAAA,OAAO,EAAE,CAAC;AACV,wBAAA,KAAK,EAAE,CAAC;qBACT,CAAC;AACF,oBAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,wBAAA,OAAO,EAAE,CAAC;AACV,wBAAA,KAAK,EAAE,GAAG;AACX,qBAAA,CAAC,CACH;iBACF,CAAC;gBACF,UAAU,CAAC,cAAc,EAAE;AACzB,oBAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,wBAAA,OAAO,EAAE,CAAC;AACV,wBAAA,KAAK,EAAE,CAAC;AACT,qBAAA,CAAC,CACH;iBACF,CAAC;gBACF,UAAU,CAAC,qBAAqB,EAAE;AAChC,oBAAA,KAAK,CAAC;AACJ,wBAAA,OAAO,EAAE,CAAC;qBACX,CAAC;AACF,oBAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,wBAAA,OAAO,EAAE,CAAC;AACX,qBAAA,CAAC,CACH;iBACF,CAAC;gBACF,UAAU,CAAC,qBAAqB,EAAE;AAChC,oBAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,wBAAA,OAAO,EAAE,CAAC;AACX,qBAAA,CAAC,CACH;iBACF,CAAC;aACH,CAAC;YACF,OAAO,CAAC,qBAAqB,EAAE;gBAC7B,UAAU,CAAC,cAAc,EAAE;AACzB,oBAAA,KAAK,CAAC;AACJ,wBAAA,OAAO,EAAE,CAAC;qBACX,CAAC;AACF,oBAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,wBAAA,OAAO,EAAE,CAAC;AACX,qBAAA,CAAC,CACH;iBACF,CAAC;gBACF,UAAU,CAAC,cAAc,EAAE;AACzB,oBAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,wBAAA,OAAO,EAAE,CAAC;AACX,qBAAA,CAAC,CACH;iBACF,CAAC;aACH,CAAC;AACH,SAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAEU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAhGlC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,qBAAqB;wBACrB,aAAa;wBACb,4BAA4B;wBAC5B,cAAc;qBACf,EACS,QAAA,EAAA,iBAAiB,iBAGZ,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;wBACT,2BAA2B;;;;AAI3B,wBAAA;AACE,4BAAA,OAAO,EAAE,sBAAsB;AAC/B,4BAAA,QAAQ,EAAE,SAAS;AACpB,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,QAAQ,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;AACjC,yBAAA;qBACF,EACW,UAAA,EAAA;wBACV,OAAO,CAAC,sBAAsB,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;wBAC3D,OAAO,CAAC,wBAAwB,EAAE;4BAChC,UAAU,CAAC,cAAc,EAAE;AACzB,gCAAA,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACV,oCAAA,KAAK,EAAE,CAAC;iCACT,CAAC;AACF,gCAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACV,oCAAA,KAAK,EAAE,GAAG;AACX,iCAAA,CAAC,CACH;6BACF,CAAC;4BACF,UAAU,CAAC,cAAc,EAAE;AACzB,gCAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACV,oCAAA,KAAK,EAAE,CAAC;AACT,iCAAA,CAAC,CACH;6BACF,CAAC;4BACF,UAAU,CAAC,qBAAqB,EAAE;AAChC,gCAAA,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;iCACX,CAAC;AACF,gCAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACX,iCAAA,CAAC,CACH;6BACF,CAAC;4BACF,UAAU,CAAC,qBAAqB,EAAE;AAChC,gCAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACX,iCAAA,CAAC,CACH;6BACF,CAAC;yBACH,CAAC;wBACF,OAAO,CAAC,qBAAqB,EAAE;4BAC7B,UAAU,CAAC,cAAc,EAAE;AACzB,gCAAA,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;iCACX,CAAC;AACF,gCAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACX,iCAAA,CAAC,CACH;6BACF,CAAC;4BACF,UAAU,CAAC,cAAc,EAAE;AACzB,gCAAA,OAAO,CACL,eAAe,EACf,KAAK,CAAC;AACJ,oCAAA,OAAO,EAAE,CAAC;AACX,iCAAA,CAAC,CACH;6BACF,CAAC;yBACH,CAAC;AACH,qBAAA,EAAA,QAAA,EAAA,g6GAAA,EAAA,MAAA,EAAA,CAAA,sr5IAAA,CAAA,EAAA;;0BAuKE;;0BACA;;0BAAY;yCAhKJ,eAAe,EAAA,CAAA;sBADzB;gBAmBU,cAAc,EAAA,CAAA;sBADxB;gBAmBU,YAAY,EAAA,CAAA;sBADtB;gBAgBM,oBAAoB,EAAA,CAAA;sBAD1B;gBAQM,qBAAqB,EAAA,CAAA;sBAD3B;gBAmBU,eAAe,EAAA,CAAA;sBADzB;gBAoCM,gBAAgB,EAAA,CAAA;sBAJtB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,kBAAkB,EAAE;AAC7B,wBAAA,IAAI,EAAE,WAAW;AACjB,wBAAA,MAAM,EAAE,IAAI;AACb,qBAAA;gBAOM,qBAAqB,EAAA,CAAA;sBAJ3B,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,uBAAuB,EAAE;AAClC,wBAAA,IAAI,EAAE,WAAW;AACjB,wBAAA,MAAM,EAAE,IAAI;AACb,qBAAA;gBAOM,uBAAuB,EAAA,CAAA;sBAJ7B,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,yBAAyB,EAAE;AACpC,wBAAA,IAAI,EAAE,WAAW;AACjB,wBAAA,MAAM,EAAE,IAAI;AACb,qBAAA;;;AEjQH;;;;;;;;;;;;AAYG;MAgBU,2BAA2B,CAAA;AAfxC,IAAA,WAAA,GAAA;AAqCE;;;;;;AAMG;QAEI,IAAuB,CAAA,uBAAA,GAAG,KAAK;QAEtC,IAAU,CAAA,UAAA,GAAG,KAAK;QAClB,IAAO,CAAA,OAAA,GAAG,EAAE;AAEZ,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAQ;AAGpC,QAAA,IAAA,CAAA,WAAW,GAAG,eAAe,CAAC,WAAW,EAAE;AAElC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,2BAA2B,EAAE;AACzD,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC;AAEO,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;AAC3B,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,EAAE;AAC7D,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC;AA0MH;AAzPC;;;;AAIG;IACH,IACW,QAAQ,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,YAAA,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,GAAG,KAAK;YACvD,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;;AAG/D,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;;AAGzB,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,UAAU;;AAaxB,IAAA,UAAU;AACV,IAAA,OAAO;AACP,IAAA,QAAQ;AACR,IAAA,cAAc;AACd,IAAA,aAAa;AACb,IAAA,cAAc;AACd,IAAA,WAAW;AAEF,IAAA,WAAW;AAMX,IAAA,MAAM;AACN,IAAA,oBAAoB;IAKtB,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC9B,MAAM,IAAI,KAAK,CACb,4DAA4D;AAC1D,gBAAA,gCAAgC,CACnC;;QAGH,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7C,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC;QAElE,IAAI,CAAC,oBAAoB,EAAE;AACxB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;aACnC,SAAS,CAAC,MAAK;AACd,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1D,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,QAAQ,EAAE,sBAAsB,EAAE;AACzC,SAAC,CAAC;QAEJ,IAAI,CAAC,oBAAoB,CAAC;aACvB,GAAG,CAAC,eAAe;AACpB,cAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;aAC1D,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE;AAC5B,YAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,EAAE;AAChC,SAAC,CAAC;;IAGC,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;;AAGzB,IAAA,gBAAgB,CAAC,EAA2B,EAAA;AACjD,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE;;AAGlB,IAAA,iBAAiB,CAAC,EAAc,EAAA;AACrC,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE;;AAGnB,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;AAGrB,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACtC,QAAA,IAAI,CAAC,QAAQ,KAAK,OAAO;AAEzB,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AAE3B,QAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAC1C,YAAA,OAAO,IAAI;;QAGb,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE;YACpC,OAAO;AACL,gBAAA,aAAa,EAAE;AACb,oBAAA,OAAO,EAAE,KAAK;AACf,iBAAA;aACF;;AAGH,QAAA,OAAO,IAAI;;AAGN,IAAA,UAAU,CAAC,KAAc,EAAA;AAC9B,QAAA,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,EAAE;AAEvD,QAAA,IAAI,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,QAAQ,CAAC;QACzD,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;AAExD,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AACxB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE;AAEjC,QAAA,IAAI,QAAQ,KAAK,QAAQ,EAAE;;;;;;AAMzB,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;AAChC,iBAAC,CAAC;;iBACG;AACL,gBAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;;;;IAM1B,MAAM,GAAA;AACd,QAAA,IAAI,CAAC,cAAc,IAAI;;IAIf,OAAO,GAAA;AACf,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1D,QAAA,IAAI,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,KAAK,CAAC;AACtD,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;;AAGxC,IAAA,uBAAuB,CAAC,KAAyB,EAAA;QAC/C,IAAI,CAAC,KAAK,EAAE;YACV;;AAGF,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAChD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE;AACxC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,EAAE,YAAY;AAE5D,QAAA,IAAI;AACF,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAoB,CACvD,KAAK,EACL,UAAU,IAAI,cAAc,CAC7B;YAED,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE;AAClD,gBAAA,OAAO,IAAI,CAAC,kBAAkB,CAC5B,WAAW,EACX,YAAY,EACZ,cAAc,EACd,UAAU,CACX;;;AAEH,QAAA,MAAM;;;QAIR;;AAGF,IAAA,kBAAkB,CAChB,WAAwB,EACxB,YAA8C,EAC9C,cAAuB,EACvB,UAAmB,EAAA;QAEnB,QAAQ,YAAY;AAClB,YAAA,KAAK,eAAe;AAClB,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAC5B,WAAW,EACX,iBAAiB,CAAC,aAAa,CAChC;AAEH,YAAA,KAAK,UAAU;AACb,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAAC,QAAQ,CAAC;AAEzE,YAAA,KAAK,SAAS;AACd,YAAA;AACE,gBAAA,OAAO,UAAU,IAAI,UAAU,KAAK;AAClC,sBAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CACrB,WAAW,EACX,iBAAiB,CAAC,aAAa;AAEnC,sBAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAAC,QAAQ,CAAC;;;IAI1E,kBAAkB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,cAAc;;IAGlD,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,eAAe,EAAE,IAAI;;IAGzD,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,OAAO;;AAGrB,IAAA,mBAAmB,CAAC,KAAa,EAAA;AAC/B,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,cAAc;QAC1D,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,eAAe;AAEpE,QAAA,IAAI;AACF,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAoB,CACvD,KAAK,EACL,UAAU,CACX;YAED,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC,YAAY,EAAE,EAAE;AAClD,gBAAA,OAAO,KAAK;;YAGd,OAAO,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,WAAW,EAAE,UAAU,CAAC;;AACvE,QAAA,MAAM;AACN,YAAA,OAAO,KAAK;;;AAIhB,IAAA,SAAS,CAAC,KAAyB,EAAA;;AAEjC,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;AACrD,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,IAAI,KAAK;;;+GAzP1B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,EAQlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,CAqBhB,EAAA,uBAAA,EAAA,CAAA,yBAAA,EAAA,yBAAA,EAAA,gBAAgB,CA1CzB,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,2BAA2B;AACxC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,2BAA2B;AACxC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAEU,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAfvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAA6B,2BAAA;AACxC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAA6B,2BAAA;AACxC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;AACF,iBAAA;8BAUY,QAAQ,EAAA,CAAA;sBADlB,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAsB/B,uBAAuB,EAAA,CAAA;sBAD7B,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAkH5B,MAAM,EAAA,CAAA;sBADf,YAAY;uBAAC,MAAM;gBAMV,OAAO,EAAA,CAAA;sBADhB,YAAY;uBAAC,OAAO;;;MCpMV,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAHpB,sBAAsB,EAAE,2BAA2B,CACnD,EAAA,OAAA,EAAA,CAAA,sBAAsB,EAAE,2BAA2B,CAAA,EAAA,CAAA,CAAA;AAElD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAHpB,sBAAsB,CAAA,EAAA,CAAA,CAAA;;4FAGrB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;AAC9D,oBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;AAC/D,iBAAA;;;ACRD;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/phone-field",
3
- "version": "12.41.1",
3
+ "version": "12.44.0",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -16,19 +16,19 @@
16
16
  },
17
17
  "homepage": "https://github.com/blackbaud/skyux#readme",
18
18
  "peerDependencies": {
19
- "@angular/animations": "^19.2.14",
19
+ "@angular/animations": "^19.2.17",
20
20
  "@angular/cdk": "^19.2.19",
21
- "@angular/common": "^19.2.14",
22
- "@angular/core": "^19.2.14",
23
- "@angular/forms": "^19.2.14",
24
- "@angular/platform-browser": "^19.2.14",
25
- "@skyux-sdk/testing": "12.41.1",
26
- "@skyux/core": "12.41.1",
27
- "@skyux/forms": "12.41.1",
28
- "@skyux/i18n": "12.41.1",
29
- "@skyux/icon": "12.41.1",
30
- "@skyux/lookup": "12.41.1",
31
- "@skyux/theme": "12.41.1"
21
+ "@angular/common": "^19.2.17",
22
+ "@angular/core": "^19.2.17",
23
+ "@angular/forms": "^19.2.17",
24
+ "@angular/platform-browser": "^19.2.17",
25
+ "@skyux-sdk/testing": "12.44.0",
26
+ "@skyux/core": "12.44.0",
27
+ "@skyux/forms": "12.44.0",
28
+ "@skyux/i18n": "12.44.0",
29
+ "@skyux/icon": "12.44.0",
30
+ "@skyux/lookup": "12.44.0",
31
+ "@skyux/theme": "12.44.0"
32
32
  },
33
33
  "dependencies": {
34
34
  "google-libphonenumber": "3.2.40",