{"version":3,"file":"afd-software-pce-angular.mjs","sources":["../../../../projects/afd-software/pce-angular/src/lib/data/defaults/options/auth.defaults.ts","../../../../projects/afd-software/pce-angular/src/lib/data/defaults/options/typeahead.defaults.ts","../../../../projects/afd-software/pce-angular/src/lib/utils/pce.request.ts","../../../../projects/afd-software/pce-angular/src/lib/services/afd.typeahead.service.ts","../../../../projects/afd-software/pce-angular/src/lib/directives/afd.result.directive.ts","../../../../projects/afd-software/pce-angular/src/lib/data/defaults/validation/email.info.defaults.ts","../../../../projects/afd-software/pce-angular/src/lib/data/defaults/options/email.defaults.ts","../../../../projects/afd-software/pce-angular/src/lib/services/afd.email.service.ts","../../../../projects/afd-software/pce-angular/src/lib/directives/afd.email.directive.ts","../../../../projects/afd-software/pce-angular/src/lib/data/defaults/validation/phone.info.defaults.ts","../../../../projects/afd-software/pce-angular/src/lib/data/defaults/options/phone.defaults.ts","../../../../projects/afd-software/pce-angular/src/lib/services/afd.phone.service.ts","../../../../projects/afd-software/pce-angular/src/lib/directives/afd.phone.directive.ts","../../../../projects/afd-software/pce-angular/src/lib/data/defaults/options/card.defautls.ts","../../../../projects/afd-software/pce-angular/src/lib/data/defaults/validation/card.info.defaults.ts","../../../../projects/afd-software/pce-angular/src/lib/services/afd.card.service.ts","../../../../projects/afd-software/pce-angular/src/lib/directives/afd.card.directive.ts","../../../../projects/afd-software/pce-angular/src/lib/data/defaults/options/account.default.ts","../../../../projects/afd-software/pce-angular/src/lib/data/defaults/validation/account.info.defaults.ts","../../../../projects/afd-software/pce-angular/src/lib/services/afd.account.service.ts","../../../../projects/afd-software/pce-angular/src/lib/directives/afd.account.directive.ts","../../../../projects/afd-software/pce-angular/src/lib/directives/afd.countries.directive.ts","../../../../projects/afd-software/pce-angular/src/lib/directives/typeahead/afd.reverse-geocode.directive.ts","../../../../projects/afd-software/pce-angular/src/lib/components/typeahead/manual-input.component.ts","../../../../projects/afd-software/pce-angular/src/lib/components/typeahead/manual-input.component.html","../../../../projects/afd-software/pce-angular/src/lib/components/typeahead/search-again.component.ts","../../../../projects/afd-software/pce-angular/src/lib/components/typeahead/search-again.component.html","../../../../projects/afd-software/pce-angular/src/lib/components/typeahead/manual-input-address-search.component.ts","../../../../projects/afd-software/pce-angular/src/lib/components/typeahead/manual-input-address-search.component.html","../../../../projects/afd-software/pce-angular/src/lib/pce-angular.module.ts","../../../../projects/afd-software/pce-angular/src/lib/data/countries.ts","../../../../projects/afd-software/pce-angular/src/lib/components/result/results.list.item.segment.component.ts","../../../../projects/afd-software/pce-angular/src/lib/components/result/results.list.item.component.ts","../../../../projects/afd-software/pce-angular/src/lib/components/result/results.list.item.component.html","../../../../projects/afd-software/pce-angular/src/lib/components/result/results.list.component.ts","../../../../projects/afd-software/pce-angular/src/lib/components/result/results.list.component.html","../../../../projects/afd-software/pce-angular/src/lib/directives/typeahead/afd.typeahead.directive.ts","../../../../projects/afd-software/pce-angular/src/lib/directives/typeahead/afd.typeahead.form.directive.ts","../../../../projects/afd-software/pce-angular/src/lib/directives/typeahead/afd.address.field.input.directive.ts","../../../../projects/afd-software/pce-angular/src/lib/components/typeahead/typeahead.component.ts","../../../../projects/afd-software/pce-angular/src/lib/components/typeahead/typeahead.component.html","../../../../projects/afd-software/pce-angular/src/public_api.ts","../../../../projects/afd-software/pce-angular/src/afd-software-pce-angular.ts"],"sourcesContent":["export const authDefaults = {\n  pceURL: 'https://apps.afd.co.uk/json',\n  id: '',\n  token: ''\n}\n","import {\n  AFDTypeaheadOptionsFull,\n  AFDTypeaheadResultsOptions\n} from '../../../types/AFDOptions'\nimport { authDefaults } from './auth.defaults'\n\nconst typeaheadResultsDefaults: AFDTypeaheadResultsOptions = {\n  fewResultsManualInputStyle: {},\n  resultsListStyle: {},\n  resultsItemStyle: {},\n  resultsListContainerStyle: {},\n  resultsHighlightedItemStyle: {},\n  matchPositionsStyle: {},\n  w3wResultsItemStyle: {},\n  w3wResultsItemNearStyle: {},\n  w3wResultsItemDistanceStyle: {},\n  w3wDistanceUnit: 'm',\n  w3wDistanceTemplate: '{distance} Miles',\n  w3wNear: false,\n  w3wNearTemplate: 'Near {near}',\n  w3wDistance: false\n}\n\nconst typeaheadDefaults: AFDTypeaheadOptionsFull = {\n  ...typeaheadResultsDefaults,\n  ...authDefaults,\n  maxQuantity: 5,\n  reverseGeocodeMaxQuantity: 10,\n  afterClearTypeahead: true,\n  matchPositions: false,\n  afterHideTypeahead: true,\n  searchAgainButton: true,\n  searchAgainButtonText: 'Search Again',\n  searchAgainButtonStyle: {},\n  searchAgainButtonClassName: '',\n  beforeHideResults: true,\n  manualInputButton: true,\n  manualInputButtonText: 'Manual Input',\n  manualInputButtonStyle: {},\n  manualInputButtonClassName: '',\n  manualInputAddressSearchButtonStyle: {},\n  manualInputAddressSearchButtonClassName: '',\n  manualInputAddressSearchButtonText: 'Address Search',\n  fewResultsManualInput: false,\n  fewResultsManualInputText: \"Can't see your address? Enter it manually\",\n  retrieveFields: 'standard',\n  minLength: 3,\n  postcodeFirst: true,\n  hideEmpties: false,\n  extraPCESearchParams: {},\n  extraPCERetrieveParams: {},\n  bankLookup: false,\n  showForCountries: [],\n  hideForCountries: [],\n  focusAddressFieldsOnRetrieve: true,\n  pushUp: null,\n  multiFieldMap: null,\n  multiFieldSeparator: ', ',\n  w3wMode: 'choices',\n  w3wFocusMode: null,\n  useAlias: false,\n  notEmptyShowResults: false\n}\nexport { typeaheadDefaults }\n","import {\n  SetAuthenticationCredentials,\n  SetParams\n} from '../types/utils/PCE.Request'\n\nconst setAuthenticationCredentials: SetAuthenticationCredentials = ({\n  params: _params,\n  options\n}) => {\n  const { id, token, serial, password } = options\n  let params = _params\n  if (options.id.length > 0) {\n    params = params.set('id', id)\n    params = params.set('token', token)\n  } else {\n    params = params.set('serial', serial)\n    params = params.set('password', password)\n  } //todo validation of auth params\n  params = params.set('intf', 'ang190000')\n  return params\n}\n\nconst setParams: SetParams = ({ originalParams, newParams }) => {\n  let params = originalParams\n  newParams.map((param) => {\n    params = params.set(param[0], param[1])\n  })\n  return params\n}\n\nexport { setAuthenticationCredentials, setParams }\n","import { computed, inject, Injectable, signal } from '@angular/core'\nimport { LookupResultItem } from '../types/LookupResultItem'\nimport {\n  AFDTypeaheadOptions,\n  AFDTypeaheadOptionsFull\n} from '../types/AFDOptions'\nimport { typeaheadDefaults } from '../data/defaults/options/typeahead.defaults'\nimport { CountryISO } from '../types/CountryISO'\nimport PCEResponse, { PCELookupItem, PCERetrieveItem } from '../types/PCELookup'\nimport { HttpClient, HttpParams } from '@angular/common/http'\nimport { setAuthenticationCredentials } from '../utils/pce.request'\nimport { BehaviorSubject, Subject, catchError, of, switchMap, filter } from 'rxjs'\n\n@Injectable()\nexport class AFDTypeaheadService {\n  private _options: AFDTypeaheadOptionsFull = typeaheadDefaults\n  private _country: CountryISO = 'GB'\n  private uniqueID = Math.floor(Math.random() * 100000).toString()\n  countries = []\n\n  private http: HttpClient = inject(HttpClient)\n\n  private _pceLookupResults = signal<PCELookupItem[]>([])\n  private _selectedAddress = signal<PCERetrieveItem | undefined>(undefined)\n  private lookupSubject = new Subject<string>()\n\n  lookupResults = computed<LookupResultItem[]>(() => {\n    if (!this._pceLookupResults()) return []\n    return this._pceLookupResults()\n      .map((item) => {\n        const { List, Key, matchPositions } = item\n        return { list: List, key: Key, matchPositions, isW3W: false }\n      })\n      .filter((item) => item.list.length > 0)\n  })\n  selectedAddress = this._selectedAddress.asReadonly()\n  highlightedIndex = signal(-1)\n  inputHasFocus = signal(false)\n  resultHasFocus = signal(false)\n\n  private _addressFieldsVisible = signal<boolean | 'full'>(false)\n  get addressFieldsVisible() {\n    return this._addressFieldsVisible.asReadonly()\n  }\n\n  // selectedLanguage = null //todo find out if this is still needed\n\n  init() {\n    const { beforeHideResults, manualInputButton } = this.options\n    this._manualInputVisible.set(beforeHideResults && manualInputButton)\n    this._addressFieldsVisible.set(beforeHideResults ? false : 'full')\n\n    this.lookupSubject\n      .pipe(\n        filter((lookup) => lookup.length >= this.options.minLength),\n        switchMap((lookup) => {\n          const response = this.pceLookup(lookup)\n          return response || of(null)\n        })\n      )\n      .subscribe((res) => {\n        if (res?.body?.Item) {\n          this.processLookupResults(res.body.Item as PCELookupItem[])\n        }\n      })\n  }\n\n  get country(): CountryISO {\n    return this._country\n  }\n  set country(country: CountryISO) {\n    this._country = country\n  }\n\n  private _typeaheadVisible = signal<boolean>(true)\n  get typeaheadVisible() {\n    return this._typeaheadVisible.asReadonly()\n  }\n  private _manualInputVisible = signal<boolean>(\n    this.options.beforeHideResults && this.options.manualInputButton\n  )\n  get manualInputVisible() {\n    return this._manualInputVisible.asReadonly()\n  }\n  private _manualInputAddressSearchVisible = signal<boolean>(false)\n  get manualInputAddressSearchVisible() {\n    return this._manualInputAddressSearchVisible.asReadonly()\n  }\n  private _searchAgainVisible = signal<boolean>(false)\n  get searchAgainVisible() {\n    return this._searchAgainVisible.asReadonly()\n  }\n\n  get options() {\n    return this._options\n  }\n  set options(newOptions: AFDTypeaheadOptions) {\n    this._options = {\n      ...this._options,\n      ...newOptions\n    }\n  }\n\n  allResultFieldVisibility = new BehaviorSubject(true)\n\n  getCountries() {\n    const { pceURL } = this._options\n    let params = new HttpParams()\n    params = setAuthenticationCredentials({\n      params,\n      options: this._options\n    })\n\n    params = params.set('data', 'list')\n    params = params.set('fields', 'standard')\n    params = params.set('task', 'listcountries')\n    params = params.set('format', 'json')\n\n    return this.http\n      .get(pceURL, {\n        params: params,\n        observe: 'response'\n      })\n      .pipe(\n        catchError((err) => {\n          console.error('HTTP Error: ', err)\n          return of(null)\n        })\n      )\n  }\n\n  setVisibility({\n    typeahead,\n    searchAgain,\n    manualInput,\n    addressSearch,\n    addressFields\n  }: {\n    typeahead: boolean\n    searchAgain: boolean\n    manualInput: boolean\n    addressSearch: boolean\n    addressFields: boolean | 'full'\n  }) {\n    this._typeaheadVisible.set(typeahead)\n    this._searchAgainVisible.set(searchAgain)\n    this._manualInputVisible.set(manualInput)\n    this._manualInputAddressSearchVisible.set(addressSearch)\n    this._addressFieldsVisible.set(addressFields)\n  }\n\n  onManualInputClick() {\n    this.resetResultsList()\n    this.setVisibility({\n      typeahead: false,\n      searchAgain: false,\n      manualInput: false,\n      addressSearch: true,\n      addressFields: 'full'\n    })\n  }\n\n  onManualInputAddressSearchClick() {\n    this.setVisibility({\n      typeahead: true,\n      searchAgain: false,\n      manualInput: true,\n      addressSearch: false,\n      addressFields: false\n    })\n  }\n\n  onSearchAgainClick() {\n    const { beforeHideResults, manualInputButton } = this.options\n    this._selectedAddress.set({ '@value': '' })\n    this.setVisibility({\n      typeahead: true,\n      searchAgain: false,\n      manualInput: beforeHideResults && manualInputButton,\n      addressSearch: false,\n      addressFields: !beforeHideResults\n    })\n  }\n\n  // normal lookup\n  pceLookup(lookup: string, data = 'address') {\n    const { _country, uniqueID, _options: options } = this\n    const {\n      pceURL,\n      postcodeFirst,\n      maxQuantity,\n      matchPositions,\n      useAlias,\n      minLength,\n      extraPCESearchParams,\n      bankLookup,\n      w3wMode\n    } = options\n    const country = _country\n\n    if (lookup.length < minLength) return\n\n    let params = new HttpParams()\n    params = setAuthenticationCredentials({\n      params,\n      options\n    })\n    params = params.set('lookup', lookup)\n    params = params.set('data', bankLookup ? 'bank' : data)\n    params = params.set('format', 'json')\n    params = params.set('task', bankLookup ? 'fastfind' : 'fastfindv4')\n    params = params.set(\n      'fields',\n      bankLookup ? 'list' : postcodeFirst ? 'list' : 'fflist'\n    )\n    params = params.set('maxquantity', maxQuantity.toString())\n    params = params.set('uniqueid', uniqueID)\n    params = params.set('allpc', '1')\n    params = params.set('countryiso', country)\n    params = params.set('w3wmode', w3wMode === 'choices' ? '1' : '0')\n\n    for (const param in extraPCESearchParams) {\n      params = params.set(param, extraPCESearchParams[param])\n    }\n\n    if (bankLookup) {\n      params = params.set('clearing', 'all')\n    }\n\n    if (matchPositions) {\n      params = params.set('matchPositions', '1')\n    }\n\n    // todo investigate if this is still needed\n    // if (selectedLanguage) {\n    //   params = params.set('language', selectedLanguage)\n    // }\n\n    if (useAlias) {\n      params = params.set('usealias', '1')\n    }\n\n    return this.http.get<PCEResponse>(pceURL, {\n      params: params,\n      observe: 'response'\n    })\n  }\n\n  pceRetrieve(key: string, data = 'address') {\n    const { _country, uniqueID, _options: options } = this\n    const {\n      retrieveFields,\n      useAlias,\n      pceURL,\n      extraPCERetrieveParams,\n      bankLookup\n    } = options\n    const country = _country\n\n    let params = new HttpParams()\n    params = setAuthenticationCredentials({\n      params,\n      options\n    })\n\n    params = params.set('key', key)\n    params = params.set('data', bankLookup ? 'bank' : data)\n    params = params.set('format', 'json')\n    params = params.set('task', 'retrieve')\n    params = params.set('fields', retrieveFields)\n    params = params.set('uniqueid', uniqueID)\n    params = params.set('countryiso', country)\n\n    // todo find out if this is still needed\n    // if (this.selectedLanguage) {\n    //   params = params.set('language', this.selectedLanguage)\n    // }\n\n    for (const param in extraPCERetrieveParams) {\n      params = params.set(param, extraPCERetrieveParams[param])\n    }\n\n    if (bankLookup) {\n      params = params.set('clearing', 'all')\n    }\n\n    if (useAlias) {\n      params = params.set('usealias', '1')\n    }\n\n    return this.http.get<PCEResponse>(pceURL, {\n      params: params,\n      observe: 'response'\n    })\n  }\n\n  reverseGeocode(lat, lng) {\n    const { options } = this\n    const { pceURL } = options\n    let params = new HttpParams()\n    params = setAuthenticationCredentials({\n      params,\n      options\n    })\n    params = params.set('data', 'address')\n    params = params.set('task', 'nearest')\n    params = params.set('fields', 'list')\n    params = params.set('latitude', lat)\n    params = params.set('longitude', lng)\n    params = params.set('format', 'json')\n\n    return this.http.get(pceURL, {\n      params,\n      responseType: 'json'\n    })\n  }\n\n  lookupAddress(lookup: string) {\n    this.lookupSubject.next(lookup)\n  }\n\n  processLookupResults(rawResults: PCELookupItem[]) {\n    const lookupResultsWithFewResults = this.processFewResults(rawResults)\n    this._pceLookupResults.set(lookupResultsWithFewResults)\n    this.highlightedIndex.set(-1)\n  }\n\n  retrieveAddress() {\n    const selectedItem = this.lookupResults()[this.highlightedIndex()]\n    if (!selectedItem) return\n    const { isW3W, key } = selectedItem\n\n    if (isW3W) {\n      return this.lookupAddress(`///${key}///`)\n    }\n\n    if (key === 'manual') return this.onManualInputClick()\n\n    this._selectedAddress.set(this._pceLookupResults()[this.highlightedIndex()])\n    const response = this.pceRetrieve(key)\n    response.subscribe((res) => {\n      this.afterRetrieve()\n\n      const result = res.body.Item as PCERetrieveItem[]\n      const multiFieldItem = this.processMultiField(result[0])\n      const pushedUpItem = this.processPushup(multiFieldItem)\n      this._selectedAddress.set(pushedUpItem)\n    })\n    this.resetResultsList()\n  }\n\n  processMultiField(item: PCERetrieveItem) {\n    const { multiFieldMap, multiFieldSeparator } = this.options\n    const originalItem = { ...item }\n    if (!multiFieldMap) return item\n\n    Object.keys(originalItem).map((field: keyof PCERetrieveItem) => {\n      if (multiFieldMap[field]) {\n        item[field] = ''\n        multiFieldMap[field].map((multiField) => {\n          if (\n            item[field] &&\n            item[field].length > 0 &&\n            originalItem[multiField] &&\n            originalItem[multiField].length > 0\n          ) {\n            item[field] += multiFieldSeparator\n          }\n          item[field] += originalItem[multiField] || ''\n        })\n      }\n    })\n    return item\n  }\n\n  processPushup(item: PCERetrieveItem) {\n    const { pushUp } = this.options\n    if (!pushUp) return item\n\n    let emptyCount = 0\n    pushUp.map((field, index) => {\n      const nextEmptyField = pushUp[index - emptyCount]\n      if (!item[field]) {\n        emptyCount++\n        return\n      }\n      item[nextEmptyField] = item[field]\n\n      if (emptyCount > 0) item[field] = ''\n    })\n\n    return item\n  }\n\n  afterRetrieve() {\n    const { afterHideTypeahead, searchAgainButton, hideEmpties } = this.options\n\n    if (afterHideTypeahead) {\n      this.setVisibility({\n        typeahead: false,\n        searchAgain: searchAgainButton,\n        manualInput: false,\n        addressSearch: false,\n        addressFields: hideEmpties ? true : 'full'\n      })\n    }\n  }\n\n  resetResultsList() {\n    this._pceLookupResults.set([])\n  }\n\n  processFewResults(results: PCELookupItem[]): PCELookupItem[] {\n    const { maxQuantity, fewResultsManualInput, fewResultsManualInputText } =\n      this.options\n    if (!fewResultsManualInput || results.length > maxQuantity) return results\n    return [\n      ...results,\n      { Key: 'manual', List: fewResultsManualInputText, '@value': '' }\n    ]\n  }\n\n  refreshUniqueID() {\n    this.uniqueID = Math.floor(Math.random() * 100000).toString()\n  }\n}\n","import { Directive, Input, ElementRef, OnInit, Renderer2 } from '@angular/core'\nimport { AFDTypeaheadService } from '../services/afd.typeahead.service'\n\n@Directive({\n  selector: '[afdResult]',\n  standalone: true\n})\n\n// directive that sets an input to work as a result box for PCE, the afdResult attribute sets the relevant PCE field\nexport class AfdResultDirective implements OnInit {\n  visible = true\n  element\n  inputElement\n  $control\n\n  // the input\n  @Input('afdResult') field: string\n  @Input('afdControlId') controlId = 'def'\n\n  constructor(\n    private el: ElementRef,\n    private renderer: Renderer2,\n    private afdTypeaheadService: AFDTypeaheadService\n  ) {\n    this.element = el.nativeElement\n  }\n\n  ngOnInit() {\n    const _options = this.afdTypeaheadService.options\n    const { beforeHideResults, notEmptyShowResults } = _options\n\n    // this.afdTypeaheadService.allResultFieldVisibility.subscribe((value) => {\n    //   this.visible = value\n    //   this.refreshVisibility()\n    // })\n\n    this.inputElement =\n      this.element.tagName === 'INPUT'\n        ? this.element\n        : this.element.querySelector('input')\n\n    // handle initial visibility settings\n    if (beforeHideResults) {\n      // if not blank and not empty show results is true\n      if (notEmptyShowResults && this.inputElement.val.length > 0) {\n        this.visible = true\n      } else {\n        this.visible = false\n      }\n    }\n\n    this.refreshVisibility()\n  }\n\n  handleRetrieve(res) {\n    const { pushUp, hideEmpties } = this.afdTypeaheadService.options\n\n    const pushUpActivated: boolean | string[] = pushUp\n\n    // Handle pushup\n    if (!pushUpActivated) {\n      // no pushup\n      ;(this.inputElement as HTMLInputElement).value =\n        res.body.Item[0][this.field]\n    } else if (Array.isArray(pushUpActivated)) {\n      // array based pushup\n      ;(this.inputElement as HTMLInputElement).value = this.handlePushUp(\n        pushUpActivated,\n        res\n      )\n    } else {\n      // simple pushup\n      ;(this.inputElement as HTMLInputElement).value = this.handlePushUp(\n        ['Property', 'Street', 'Locality'],\n        res\n      )\n    }\n\n    this.visible = !(this.inputElement.value.length < 1 && hideEmpties)\n    this.refreshVisibility()\n  }\n\n  handlePushUp(fields: string[], res): string {\n    // console.log(e);\n    // get index of current field in array\n    const index = fields.indexOf(this.field)\n\n    const result = res.body.Item[0]\n\n    // if this field is not involved in pushup manipulation\n    if (index === -1) {\n      return result[this.field] ? result[this.field] : ''\n    }\n\n    // create an array that contains the populated fields\n    const populatedFields = []\n\n    for (const item of fields) {\n      if (result[item].length > 0) {\n        populatedFields.push(result[item])\n      }\n    }\n\n    if (typeof populatedFields[index] === 'undefined') {\n      return ''\n    }\n\n    return populatedFields[index]\n  }\n\n  refreshVisibility() {\n    if (this.visible) {\n      this.renderer.removeStyle(this.element, 'display')\n    } else {\n      this.renderer.setStyle(this.element, 'display', 'none')\n    }\n  }\n}\n","export const emailInfoDefaults = {\n  pceValid: false,\n  regexValid: false,\n  pceValidationMessage: null,\n  emailAddress: null,\n  acceptsAll: false,\n  dummy: false,\n  formatVerified: '',\n  generic: false,\n  localChecked: false,\n  nonStandard: false,\n  reachable: false,\n  status: '',\n  suggested: '',\n  spelling: false,\n  throwaway: false\n}\n","import { AFDEmailValidationOptionsFull } from '../../../types/AFDOptions'\nimport { authDefaults } from './auth.defaults'\n\nexport const emailDefaults: AFDEmailValidationOptionsFull = {\n  ...authDefaults,\n  invalidEmailFormatMessage: 'Invalid email address format',\n  invalidEmailAFDMessage: 'Invalid email address',\n  emailTask: 'live',\n  cacheValidatedEmails: true\n}\n","import { Injectable } from '@angular/core'\nimport { BehaviorSubject } from 'rxjs'\nimport { emailInfoDefaults } from '../data/defaults/validation/email.info.defaults'\nimport { AFDEmailValidationOptions } from '../types/AFDOptions'\nimport { emailDefaults } from '../data/defaults/options/email.defaults'\nimport { HttpClient, HttpParams } from '@angular/common/http'\nimport { setAuthenticationCredentials } from '../utils/pce.request'\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AFDEmailService {\n  private _options: AFDEmailValidationOptions = emailDefaults\n\n  emailInfoSource = new BehaviorSubject(emailInfoDefaults)\n  emailInfo = this.emailInfoSource.asObservable()\n\n  get options(): AFDEmailValidationOptions {\n    return this._options\n  }\n\n  set options(newOptions: AFDEmailValidationOptions) {\n    this._options = {\n      ...this._options,\n      ...newOptions\n    }\n  }\n\n  constructor(private http: HttpClient) {}\n\n  // email validation\n  validateEmail(email: string) {\n    const { _options } = this\n    const { pceURL } = _options\n\n    let params = new HttpParams()\n    params = setAuthenticationCredentials({\n      params,\n      options: _options\n    })\n    params = params.set('email', email)\n    params = params.set('data', 'email')\n    params = params.set('format', 'json')\n    params = params.set('task', 'live')\n    params = params.set('fields', 'standard')\n\n    return this.http.get(pceURL, {\n      params: params,\n      observe: 'response'\n    })\n  }\n}\n","import {\n  Directive,\n  ElementRef,\n  forwardRef,\n  OnInit,\n  Renderer2\n} from '@angular/core'\nimport { AFDEmailService } from '../services/afd.email.service'\nimport {\n  AbstractControl,\n  AsyncValidator,\n  NG_ASYNC_VALIDATORS,\n  NG_VALIDATORS,\n  ValidationErrors,\n  Validator\n} from '@angular/forms'\nimport { Observable } from 'rxjs'\nimport { map } from 'rxjs/operators'\nimport * as emailValidator from 'email-validator'\nimport PCEResponse, { PCEEmailItem } from '../types/PCELookup'\nimport { HttpResponse } from '@angular/common/http'\n\n@Directive({\n  selector: '[afdEmailRegexValid]',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_VALIDATORS,\n      useExisting: forwardRef(() => AfdEmailRegexValidDirective),\n      multi: true\n    }\n  ]\n})\nexport class AfdEmailRegexValidDirective implements Validator {\n  constructor(\n    private afdEmailService: AFDEmailService,\n    private el: ElementRef,\n    private renderer: Renderer2\n  ) {}\n\n  validate(control: AbstractControl): ValidationErrors | null {\n    // only try to validate if there is a value in the input\n    if (control.value) {\n      this.renderer.removeClass(\n        this.el.nativeElement.parentElement,\n        'afd-loading'\n      )\n\n      // send useful information to the pce service\n      this.afdEmailService.emailInfoSource.next({\n        pceValid: false,\n        regexValid: emailValidator.validate(control.value),\n        pceValidationMessage: null,\n        emailAddress: control.value,\n        acceptsAll: false,\n        dummy: false,\n        formatVerified: '',\n        generic: false,\n        localChecked: false,\n        nonStandard: false,\n        reachable: false,\n        status: '',\n        suggested: '',\n        spelling: false,\n        throwaway: false\n      })\n\n      // validate regex\n      return emailValidator.validate(control.value)\n        ? null\n        : {\n            afdEmailRegexValid: {\n              message: this.afdEmailService.options.invalidEmailFormatMessage\n            }\n          }\n    } else {\n      // if there is nothing in the control\n      return null\n    }\n  }\n}\n\n@Directive({\n  selector: '[afdEmailPceValid]',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_ASYNC_VALIDATORS,\n      useExisting: forwardRef(() => AfdEmailPceValidDirective),\n      multi: true\n    }\n  ]\n})\nexport class AfdEmailPceValidDirective implements AsyncValidator {\n  hasRegexCheck: boolean\n\n  constructor(\n    private afdEmailService: AFDEmailService,\n    private el: ElementRef,\n    private renderer: Renderer2\n  ) {\n    // check to see if the regex element exists\n    this.hasRegexCheck = !!el.nativeElement.hasAttribute('afdEmailRegexValid')\n    if (!this.hasRegexCheck) {\n      console.warn(\n        'Warning, you are using the PCE email validation directive without the regex directive.  ' +\n          'This means that you are querying PCE and are being charged for every keypress.  ' +\n          'Please add the directive \"afdEmailRegexValid\" to the input element'\n      )\n    }\n  }\n\n  validate(\n    control: AbstractControl\n  ): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> {\n    if (control.value) {\n      this.renderer.addClass(this.el.nativeElement.parentElement, 'afd-loading')\n\n      // validate\n      return this.afdEmailService.validateEmail(control.value).pipe(\n        map((res: HttpResponse<PCEResponse>) => {\n          const data = res.body\n          const item = data['Item'][0] as PCEEmailItem\n\n          const event = new CustomEvent('afdPCEEmailValidationComplete', {\n            detail: res\n          })\n          document.dispatchEvent(event)\n          // Check if valid\n          if (data['Result'] === '1') {\n            this.renderer.removeClass(\n              this.el.nativeElement.parentElement,\n              'afd-loading'\n            )\n            // send useful information to the pce service\n            this.afdEmailService.emailInfoSource.next({\n              pceValid: true,\n              regexValid: emailValidator.validate(control.value),\n              pceValidationMessage: item.Status,\n              emailAddress: control.value,\n              acceptsAll: item.AcceptsAll === 1,\n              dummy: item.Dummy === 1,\n              formatVerified: item.FormatVerified,\n              generic: item.Generic === 1,\n              localChecked: item.LocalChecked === 1,\n              nonStandard: item.NonStandard === 1,\n              reachable: item.Reachable === 1,\n              status: item.Status,\n              suggested: item.Suggested,\n              spelling: item.Spelling === 1,\n              throwaway: item.Throwaway === 1\n            })\n            return null\n          } else {\n            this.renderer.removeClass(\n              this.el.nativeElement.parentElement,\n              'afd-loading'\n            )\n            // send useful information to the pce service\n            this.afdEmailService.emailInfoSource.next({\n              pceValid: false,\n              regexValid: emailValidator.validate(control.value),\n              pceValidationMessage: data['ErrorText'],\n              emailAddress: control.value,\n              acceptsAll: item.AcceptsAll === 1,\n              dummy: item.Dummy === 1,\n              formatVerified: item.FormatVerified,\n              generic: item.Generic === 1,\n              localChecked: item.LocalChecked === 1,\n              nonStandard: item.NonStandard === 1,\n              reachable: item.Reachable === 1,\n              status: item.Status,\n              suggested: item.Suggested,\n              spelling: item.Spelling === 1,\n              throwaway: item.Throwaway === 1\n            })\n            return {\n              afdEmailPceValid: {\n                message: this.afdEmailService.options.invalidEmailAFDMessage\n              }\n            }\n          }\n        })\n      )\n    } else {\n      return new Promise((resolve) => resolve(null))\n    }\n  }\n}\n","export const phoneInfoDefaults = {\n  pceValid: false,\n  syntaxValid: false,\n  regexValid: false,\n  country: 'GB',\n  isMobile: false,\n  isLandLine: false,\n  numberType: '',\n  phoneNumber: '',\n  phoneNumberE164: '',\n  phoneNumberInternational: '',\n  phoneNumberNational: '',\n  phoneNumberRfc3966: ''\n}\n","import { AFDPhoneValidationOptionsFull } from '../../../types/AFDOptions'\nimport { authDefaults } from './auth.defaults'\n\nexport const phoneDefaults: AFDPhoneValidationOptionsFull = {\n  ...authDefaults,\n  cacheValidatedPhoneNumber: true,\n  invalidPhoneFormatMessage: 'Please input a valid phone number',\n  invalidPhoneAFDMessage: 'Please input a valid phone number'\n}\n","import { Injectable } from '@angular/core'\nimport { BehaviorSubject } from 'rxjs'\nimport { phoneInfoDefaults } from '../data/defaults/validation/phone.info.defaults'\nimport { HttpClient, HttpParams } from '@angular/common/http'\nimport { setAuthenticationCredentials } from '../utils/pce.request'\nimport {\n  AFDPhoneValidationOptions,\n  AFDPhoneValidationOptionsFull\n} from '../types/AFDOptions'\nimport { phoneDefaults } from '../data/defaults/options/phone.defaults'\nimport { CountryISO } from '../types/CountryISO'\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AFDPhoneService {\n  private _options: AFDPhoneValidationOptionsFull = phoneDefaults\n  private _phoneCountry: CountryISO = 'GB'\n  uniqueId = Math.floor(Math.random() * 100000).toString()\n  iti = {}\n\n  get options() {\n    return this._options\n  }\n\n  get phoneCountry() {\n    return this._phoneCountry\n  }\n\n  setOptions(newOptions: AFDPhoneValidationOptions) {\n    this._options = {\n      ...this._options,\n      ...newOptions\n    }\n  }\n\n  setPhoneCountry(newCountry) {\n    this._phoneCountry = newCountry\n  }\n\n  phoneInfoSource = new BehaviorSubject(phoneInfoDefaults)\n  phoneInfo = this.phoneInfoSource.asObservable()\n\n  phoneMask = { mask: this.phoneMaskFunction, guide: false }\n\n  constructor(private http: HttpClient) {}\n\n  validatePhone(phone: string) {\n    const { _options, phoneCountry } = this\n    const { pceURL } = _options\n\n    let params = new HttpParams()\n    params = setAuthenticationCredentials({\n      params,\n      options: _options\n    })\n    params = params.set('phone', '00' + phone)\n    params = params.set('data', 'phone')\n    params = params.set('format', 'json')\n    params = params.set('task', 'full')\n    params = params.set('fields', 'standard')\n    params = params.set('countryiso', 'GB')\nconsole.log(params)\n    if (this.phoneCountry) {\n      params = params.set('countryiso', phoneCountry)\n    }\n\n    return this.http.get(pceURL, {\n      params: params,\n      observe: 'response'\n    })\n  }\n\n  // todo investigate whether or not this is needed\n  // get phone business information\n  searchPhone(phone) {\n    let params = new HttpParams()\n    params = setAuthenticationCredentials({ params, options: this.options })\n    params = params.set('data', 'address')\n    params = params.set('task', 'fastfind')\n    params = params.set('fields', 'standard')\n    params = params.set('lookup', phone)\n    params = params.set('format', 'json')\n    params = params.set('uniqueid', this.uniqueId)\n\n    return this.http.get(this.options.pceURL, {\n      params: params,\n      observe: 'response'\n    })\n  }\n\n  // Mask Functions\n  phoneMaskFunction(input) {\n    const output = [/[+/\\d/]/]\n\n    // eslint-disable-next-line @typescript-eslint/prefer-for-of\n    for (let i = 0; i < input.length; i++) {\n      output.push(/\\d/)\n    }\n\n    return output\n  }\n}\n","import {\n  AfterViewInit,\n  Directive,\n  ElementRef,\n  forwardRef,\n  HostListener,\n  Inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  PLATFORM_ID\n} from '@angular/core'\nimport { isPlatformBrowser } from '@angular/common'\nimport { AFDPhoneService } from '../services/afd.phone.service'\nimport {\n  AbstractControl,\n  AsyncValidator,\n  ControlValueAccessor,\n  NG_ASYNC_VALIDATORS,\n  NG_VALIDATORS,\n  NG_VALUE_ACCESSOR,\n  ValidationErrors,\n  Validator\n} from '@angular/forms'\nimport { Observable } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\n// intl-tel-input will be loaded dynamically in browser only\nlet intlTelInput: any = null\n\n@Directive({\n  selector: 'input[afdPhoneRegexValid], input[afdPhoneSyntaxValid]',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => AfdPhoneRegexValidDirective),\n      multi: true\n    },\n    {\n      provide: NG_VALIDATORS,\n      useExisting: forwardRef(() => AfdPhoneRegexValidDirective),\n      multi: true\n    }\n  ]\n})\nexport class AfdPhoneRegexValidDirective implements OnInit, OnDestroy, Validator, ControlValueAccessor {\n  @Input() country: string\n  @Input() id: string\n  @Input() excludeCountries: string[] | undefined\n  @Input() onlyCountries: string[] | undefined\n  @Input() preferredCountries: string[] | undefined\n\n  private isBrowser: boolean\n\n  constructor(\n    private afdPhoneService: AFDPhoneService,\n    private el: ElementRef,\n    @Inject(PLATFORM_ID) platformId: Object\n  ) {\n    this.isBrowser = isPlatformBrowser(platformId)\n  }\n\n  iti\n  private isFormattingInput = false\n  private onChange: (value: string) => void = () => {}\n  private onTouched: () => void = () => {}\n  private onValidatorChange: () => void = () => {}\n  private countryChangeHandler = () => this.handleInput()\n\n  async ngOnInit() {\n    // Skip initialization on server\n    if (!this.isBrowser) {\n      return\n    }\n\n    // Dynamically import intl-tel-input only in browser\n    // Using Function constructor to prevent bundler from analyzing the import path\n    if (!intlTelInput) {\n      try {\n        const importPath = 'intl-tel-input/build/js/intlTelInputWithUtils.js'\n        const module = await (new Function('path', 'return import(path)'))(importPath)\n        intlTelInput = module.default\n      } catch (e) {\n        console.error('Failed to load intl-tel-input:', e)\n        return\n      }\n    }\n\n    this.id = typeof this.id === 'undefined' ? 'default' : this.id\n\n    if (\n      this.id === 'default' &&\n      this.afdPhoneService.iti[this.id] !== 'undefined'\n    ) {\n      console.warn(\n        '' +\n          'AFD: It appears that you are using multiple phone fields in your application but not setting the \"id\" parameter.' +\n          '\"id\" is required when using AFD validation on multiple fields'\n      )\n    }\n\n    this.afdPhoneService.iti[this.id] = intlTelInput(\n      this.el.nativeElement,\n      itiSettings(\n        this.country,\n        this.excludeCountries,\n        this.onlyCountries,\n        this.preferredCountries\n      )\n    )\n\n    this.iti = this.afdPhoneService.iti[this.id]\n\n    // Listen for country changes to trigger re-validation\n    this.el.nativeElement.addEventListener('countrychange', this.countryChangeHandler)\n\n    // Add input event listener for formatting and syncing\n    this.el.nativeElement.addEventListener('input', () => {\n      // Prevent recursive formatting\n      if (this.isFormattingInput) {\n        return\n      }\n\n      this.isFormattingInput = true\n      const value = this.el.nativeElement.value\n\n      // swap double zero for plus\n      if (value === '00') {\n        this.el.nativeElement.value = '+'\n      }\n\n      this.isFormattingInput = false\n      this.handleInput()\n    })\n\n    // Listen for blur to mark as touched\n    this.el.nativeElement.addEventListener('blur', () => {\n      this.onTouched()\n    })\n  }\n\n  ngOnDestroy() {\n    this.el.nativeElement.removeEventListener('countrychange', this.countryChangeHandler)\n    if (this.iti) {\n      this.iti.destroy()\n    }\n  }\n\n  private handleInput() {\n    if (!this.iti) return\n\n    const inputValue = this.el.nativeElement.value\n    this.onChange(inputValue)\n    this.onValidatorChange()\n  }\n\n  writeValue(value: string | null): void {\n    if (this.iti) {\n      this.iti.setNumber(value || '')\n    }\n  }\n\n  registerOnChange(fn: (value: string) => void): void {\n    this.onChange = fn\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    if (this.iti) {\n      this.iti.setDisabled(isDisabled)\n    }\n  }\n\n  registerOnValidatorChange(fn: () => void): void {\n    this.onValidatorChange = fn\n  }\n\n  // https://angular.io/guide/form-validation#custom-validators\n  validate(control: AbstractControl): ValidationErrors | null {\n    const { options } = this.afdPhoneService\n    const { invalidPhoneFormatMessage } = options\n\n    const inputValue = this.el.nativeElement.value\n    if (!inputValue || !this.iti) {\n      return null\n    }\n\n    try {\n      const { countryData, numberType, numberTypes } = itiVars(this.iti)\n\n      this.afdPhoneService.setPhoneCountry(countryData.iso2)\n\n      const fullNumber = (this.iti as any)._getFullNumber?.() || this.iti.getNumber() || ''\n\n      let isValid = false\n      if ((window as any).intlTelInputUtils && fullNumber) {\n        isValid = (window as any).intlTelInputUtils.isValidNumber(fullNumber, countryData.iso2)\n      } else {\n        isValid = this.iti.isValidNumber() === true\n      }\n\n      const phoneNumber_E164 = isValid ? fullNumber : ''\n\n      const utils = (window as any).intlTelInputUtils\n      let phoneNumberInternational = ''\n      let phoneNumberNational = ''\n      let phoneNumberRfc3966 = ''\n\n      if (utils && fullNumber && isValid) {\n        phoneNumberInternational = utils.formatNumber(fullNumber, countryData.iso2, 1) || fullNumber\n        phoneNumberNational = utils.formatNumber(fullNumber, countryData.iso2, 2) || fullNumber\n        phoneNumberRfc3966 = utils.formatNumber(fullNumber, countryData.iso2, 3) || fullNumber\n      }\n\n      this.afdPhoneService.phoneInfoSource.next({\n        pceValid: false,\n        syntaxValid: isValid,\n        regexValid: isValid,\n        country: this.afdPhoneService.phoneCountry,\n        isMobile: numberTypes[numberType] === 'MOBILE',\n        isLandLine: numberTypes[numberType] === 'FIXED_LINE',\n        numberType: numberTypes[numberType],\n        phoneNumber: phoneNumber_E164,\n        phoneNumberE164: phoneNumber_E164,\n        phoneNumberInternational: phoneNumberInternational,\n        phoneNumberNational: phoneNumberNational,\n        phoneNumberRfc3966: phoneNumberRfc3966\n      })\n\n      return isValid\n        ? null\n        : {\n            afdPhoneRegexValid: {\n              message: invalidPhoneFormatMessage\n            }\n          }\n    } catch (error) {\n      console.error('Error in phone validation:', error)\n      return null\n    }\n  }\n}\n\n@Directive({\n  selector: '[afdPhonePceValid]',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_ASYNC_VALIDATORS,\n      useExisting: forwardRef(() => AfdPhonePceValidDirective),\n      multi: true\n    }\n  ]\n})\nexport class AfdPhonePceValidDirective\n  implements OnInit, AfterViewInit, AsyncValidator\n{\n  @Input() country: string\n  @Input() id: string\n  @Input() excludeCountries: string[] | undefined\n  @Input() onlyCountries: string[] | undefined\n  @Input() preferredCountries: string[] | undefined\n\n  hasSyntaxCheck: boolean\n  iti\n\n  constructor(\n    private afdPhoneService: AFDPhoneService,\n    private el: ElementRef\n  ) {\n    // check to see if the regex element exists\n    this.hasSyntaxCheck = !!el.nativeElement.hasAttribute('afdPhoneSyntaxValid')\n    if (!this.hasSyntaxCheck) {\n      console.warn(\n        'Warning, you are using the PCE phone validation directive without the syntax directive.  ' +\n          'This means that you are querying PCE and are being charged for every keypress.  ' +\n          'Please add the directive \"afdPhoneSyntaxValid\" to the input element'\n      )\n    }\n  }\n\n  ngOnInit() {\n    // Set the initial country if there is no Regex directive on the element\n    if (!this.hasSyntaxCheck) {\n      this.afdPhoneService.setPhoneCountry(this.country)\n    }\n  }\n\n  ngAfterViewInit() {\n    this.id = typeof this.id === 'undefined' ? 'default' : this.id\n    this.iti = this.afdPhoneService.iti[this.id]\n  }\n\n  validate(\n    control: AbstractControl\n  ): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> {\n    const { options } = this.afdPhoneService\n\n    if (!control.value || !this.iti) {\n      return Promise.resolve(null)\n    }\n\n    // Get the phone number data\n    const { countryData, numberType, numberTypes } = itiVars(this.iti)\n\n    if (!this.hasSyntaxCheck) {\n      // set the country in the AFD service\n      this.afdPhoneService.setPhoneCountry(countryData.iso2)\n    }\n\n    const fullNumber = (this.iti as any)._getFullNumber?.() || this.iti.getNumber() || ''\n    const utils = (window as any).intlTelInputUtils\n\n    let isSyntaxValid = false\n    if (utils && fullNumber) {\n      isSyntaxValid = utils.isValidNumber(fullNumber, countryData.iso2)\n    } else {\n      isSyntaxValid = this.iti.isValidNumber() === true\n    }\n\n    if (!isSyntaxValid) {\n      return Promise.resolve(null)\n    }\n\n    return this.afdPhoneService.validatePhone(fullNumber.replace('+', '')).pipe(\n      map((data) => {\n        let phoneNumberInternational = fullNumber\n        let phoneNumberNational = fullNumber\n        let phoneNumberRfc3966 = fullNumber\n\n        if (utils && fullNumber) {\n          phoneNumberInternational = utils.formatNumber(fullNumber, countryData.iso2, 1) || fullNumber\n          phoneNumberNational = utils.formatNumber(fullNumber, countryData.iso2, 2) || fullNumber\n          phoneNumberRfc3966 = utils.formatNumber(fullNumber, countryData.iso2, 3) || fullNumber\n        }\n\n        this.afdPhoneService.phoneInfoSource.next({\n          pceValid: data['body']['Result'] === '1',\n          syntaxValid: isSyntaxValid,\n          regexValid: isSyntaxValid,\n          country: this.afdPhoneService.phoneCountry,\n          isMobile: numberTypes[numberType] === 'MOBILE',\n          isLandLine: numberTypes[numberType] === 'FIXED_LINE',\n          numberType: numberTypes[numberType],\n          phoneNumber: fullNumber,\n          phoneNumberE164: fullNumber,\n          phoneNumberInternational: phoneNumberInternational,\n          phoneNumberNational: phoneNumberNational,\n          phoneNumberRfc3966: phoneNumberRfc3966\n        })\n\n        const output = data\n        output['phone'] = fullNumber\n\n        const endEvent = new CustomEvent('afdPhonePceValidationComplete', {\n          detail: output\n        })\n        document.dispatchEvent(endEvent)\n\n        if (data['body']['Result'] === '1') {\n          return null\n        } else {\n          return {\n            afdPhonePceValid: {\n              message: options.invalidPhoneAFDMessage\n            }\n          }\n        }\n      })\n    )\n  }\n}\n\n// Can potentially be used for business mapping not currently implemented\n@Directive({\n  selector: '[afdSearchPhone]',\n  standalone: true\n})\nexport class AfdSearchPhoneDirective {\n  @HostListener('document:afdPhonePceValidationComplete', ['$event'])\n  onAfdPhonePceValidationComplete(e) {\n    this.afdPhoneService.searchPhone(e.detail.phone).subscribe((res) => {\n      const endEvent = new CustomEvent('afdPhoneSearchComplete', {\n        detail: res\n      })\n      document.dispatchEvent(endEvent)\n    })\n  }\n\n  constructor(private afdPhoneService: AFDPhoneService) {}\n}\n\n@Directive({\n  selector: '[afdPhoneCountries]',\n  standalone: true\n})\nexport class AfdPhoneCountriesDirective {\n  constructor(private el: ElementRef) {\n    console.log(el)\n  }\n}\n\nfunction getPhoneObject(phoneNumber, country) {\n  if (phoneNumber !== null) {\n    // Simple phone number validation - ensure it contains only digits and common phone characters\n    const cleanedNumber = phoneNumber.replace(/[\\s\\-\\(\\)\\.]/g, '')\n\n    // Check if it's a valid phone number format (at least 7 digits)\n    if (/^\\+?[0-9]{7,}$/.test(cleanedNumber)) {\n      return {\n        isValid: true,\n        number: phoneNumber,\n        country: country || 'GB'\n      }\n    }\n    return null\n  } else {\n    return null\n  }\n}\n\nfunction itiSettings(\n  country,\n  excludeCountries,\n  onlyCountries,\n  preferredCountries\n) {\n  const settings: Record<string, unknown> = {\n    separateDialCode: true,\n    initialCountry: country,\n    validationNumberTypes: null\n  }\n\n  if (typeof excludeCountries !== 'undefined') {\n    settings['excludeCountries'] = excludeCountries\n  }\n  if (typeof onlyCountries !== 'undefined') {\n    settings['onlyCountries'] = onlyCountries\n  }\n  if (typeof preferredCountries !== 'undefined') {\n    settings['preferredCountries'] = preferredCountries\n  }\n\n  return settings\n}\n\nfunction itiVars(iti) {\n  return {\n    phoneNumber: iti.getNumber(),\n    countryData: iti.getSelectedCountryData(),\n    numberType: iti.getNumberType(),\n    numberTypes: [\n      'FIXED_LINE',\n      'MOBILE',\n      'FIXED_LINE_OR_MOBILE',\n      'TOLL_FREE',\n      'PREMIUM_RATE',\n      'SHARED_COST',\n      'VOIP',\n      'PERSONAL_NUMBER',\n      'PAGER',\n      'UAN',\n      'VOICEMAIL'\n    ]\n  }\n}\n","import { AFDCardValidationOptionsFull } from '../../../types/AFDOptions'\nimport { authDefaults } from './auth.defaults'\n\nexport const cardDefaults: AFDCardValidationOptionsFull = {\n  ...authDefaults,\n  invalidCardFormatMessage: 'Incorrect card number',\n  invalidExpiryFormatMessage: 'Incorrect expiry date',\n  invalidCardAFDMessage: 'Incorrect card number or expiry date',\n  required: 'Card Number is a required field',\n  expiryRequired: 'Expiry Date is  a required field'\n}\n","export const cardInfoDefaults = {\n  pceValid: false,\n  cardRegexValid: false,\n  expiryRegexValid: false,\n  cardTypeNice: null,\n  cardType: null,\n  cardNumber: '',\n  expiryDate: ''\n}\n","import { Injectable } from '@angular/core'\nimport {\n  AFDCardValidationOptions,\n  AFDCardValidationOptionsFull\n} from '../types/AFDOptions'\nimport * as valid from 'card-validator'\nimport { cardDefaults } from '../data/defaults/options/card.defautls'\nimport { HttpClient, HttpParams } from '@angular/common/http'\nimport { BehaviorSubject } from 'rxjs'\nimport { cardInfoDefaults } from '../data/defaults/validation/card.info.defaults'\nimport { setAuthenticationCredentials } from '../utils/pce.request'\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AFDCardService {\n  private _options: AFDCardValidationOptionsFull = cardDefaults\n\n  get options(): AFDCardValidationOptionsFull {\n    return this._options\n  }\n\n  set options(newOptions: AFDCardValidationOptions) {\n    this._options = {\n      ...this._options,\n      ...newOptions\n    }\n  }\n\n  cardMask = { mask: this.cardMaskFunction, guide: false }\n  cardInfoSource = new BehaviorSubject(cardInfoDefaults)\n  cardInfo = this.cardInfoSource.asObservable()\n\n  constructor(private http: HttpClient) {}\n\n  validateCard(cardNumber: string, expiryDate: string) {\n    const { _options } = this\n    const { pceURL } = _options\n    let params = new HttpParams()\n    params = setAuthenticationCredentials({\n      params,\n      options: _options\n    })\n    params = params.set('cardNumber', cardNumber)\n    params = params.set('expiryDate', expiryDate)\n    params = params.set('data', 'bank')\n    params = params.set('format', 'json')\n    params = params.set('task', 'card')\n    params = params.set('fields', 'card')\n\n    return this.http.get(pceURL, {\n      params: params,\n      observe: 'response'\n    })\n  }\n\n  cardMaskFunction(input) {\n    const cardValid = valid.number(input)\n\n    if (cardValid.card) {\n      const totalLength =\n        cardValid.card.lengths[cardValid.card.lengths.length - 1] +\n        cardValid.card.gaps.length\n\n      const output = []\n\n      const actualPositions = []\n      for (let i = 0; i < cardValid.card.gaps.length; i++) {\n        actualPositions.push(cardValid.card.gaps[i] + i)\n      }\n\n      for (let i = 0; i < totalLength; i++) {\n        if (actualPositions.indexOf(output.length) > -1) {\n          output.push(' ')\n        } else {\n          output.push(/\\d/)\n        }\n      }\n      return output\n    } else {\n      const output = []\n      for (let i = 0; i < 16; i++) {\n        output.push(/\\d/)\n      }\n      return output\n    }\n  }\n}\n","import { Directive, forwardRef, Input } from '@angular/core'\nimport {\n  AbstractControl,\n  AsyncValidator,\n  NG_ASYNC_VALIDATORS,\n  NG_VALIDATORS,\n  ValidationErrors,\n  Validator\n} from '@angular/forms'\nimport { Observable } from 'rxjs'\nimport * as valid from 'card-validator'\nimport { map } from 'rxjs/operators'\nimport { AFDCardService } from '../services/afd.card.service'\nimport { HttpResponse } from '@angular/common/http'\nimport PCEResponse, { PCECardItem } from '../types/PCELookup'\n\n@Directive({\n  selector: '[afdCardRegexValid]',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_VALIDATORS,\n      useExisting: forwardRef(() => AfdCardRegexValidDirective),\n      multi: true\n    }\n  ]\n})\nexport class AfdCardRegexValidDirective implements Validator {\n  constructor(private afdCardService: AFDCardService) {}\n\n  validate(control: AbstractControl): ValidationErrors | null {\n    // only try to validate if there is a value in the input\n    if (control.value) {\n      const regexValid = valid.number(control.value)\n\n      const currentInfo = this.afdCardService.cardInfoSource.value\n      currentInfo.cardRegexValid = regexValid.isValid\n      currentInfo.pceValid = false\n      currentInfo.cardTypeNice = regexValid.card\n        ? regexValid.card.niceType\n        : null\n      currentInfo.cardType = regexValid.card ? regexValid.card.type : null\n      currentInfo.cardNumber = control.value\n\n      // send useful information to the pce service\n      this.afdCardService.cardInfoSource.next(currentInfo)\n\n      // validate regex\n      return regexValid.isValid\n        ? null\n        : {\n            afdCardRegexValid: {\n              message: this.afdCardService.options.invalidCardFormatMessage\n            }\n          }\n    } else {\n      // if there is nothing in the control\n      return null\n    }\n  }\n}\n\n@Directive({\n  selector: '[afdExpiryRegexValid]',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_VALIDATORS,\n      useExisting: forwardRef(() => AfdExpiryRegexValidDirective),\n      multi: true\n    }\n  ]\n})\nexport class AfdExpiryRegexValidDirective implements Validator {\n  @Input() country: string\n\n  constructor(private afdCardService: AFDCardService) {}\n\n  validate(control: AbstractControl): ValidationErrors | null {\n    // only try to validate if there is a value in the input\n    if (control.value) {\n      const regexValid = valid.expirationDate(control.value)\n\n      const currentInfo = this.afdCardService.cardInfoSource.value\n      currentInfo.pceValid = false\n      currentInfo.expiryRegexValid = regexValid.isValid\n      currentInfo.expiryDate = control.value\n\n      // send useful information to the pce service\n      this.afdCardService.cardInfoSource.next(currentInfo)\n\n      // validate regex\n      return regexValid.isValid\n        ? null\n        : {\n            afdExpiryRegexValid: {\n              message: this.afdCardService.options.invalidExpiryFormatMessage\n            }\n          }\n    } else {\n      // if there is nothing in the control\n      return null\n    }\n  }\n}\n\n@Directive({\n  selector: '[afdCardPceValid]',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_ASYNC_VALIDATORS,\n      useExisting: forwardRef(() => AfdCardPceValidDirective),\n      multi: true\n    }\n  ]\n})\nexport class AfdCardPceValidDirective implements AsyncValidator {\n  @Input() country: string\n\n  constructor(private afdCardService: AFDCardService) {}\n\n  validate(\n    control: AbstractControl\n  ): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> {\n    const currentInfo = this.afdCardService.cardInfoSource.value\n\n    const card = control.get('cardControl')\n    const expiry = control.get('expiryControl')\n\n    const cardTouched = control.touched && card.value.length > 0 && card.valid\n    const expiryTouched =\n      control.touched && expiry.value.length > 0 && expiry.valid\n\n    console.log(cardTouched)\n    console.log(expiryTouched)\n\n    // check that both fields are regex valid\n    if (cardTouched && expiryTouched) {\n      // validate\n      return this.afdCardService\n        .validateCard(currentInfo.cardNumber, currentInfo.expiryDate)\n        .pipe(\n          map((res: HttpResponse<PCEResponse>) => {\n            if (res.body.Result === '1') {\n              const items = res.body.Item as PCECardItem[]\n              const item = items[0]\n              this.afdCardService.cardInfoSource.next({\n                pceValid: true,\n                cardRegexValid: true,\n                expiryRegexValid: true,\n                cardTypeNice: item.CardType,\n                cardType: currentInfo.cardType,\n                cardNumber: currentInfo.cardNumber,\n                expiryDate: currentInfo.expiryDate\n              })\n              return null\n            } else {\n              this.afdCardService.cardInfoSource.next({\n                ...currentInfo,\n                pceValid: false\n              })\n              return {\n                afdCardPceValid: {\n                  message: res.body.ErrorText || this.afdCardService.options.invalidCardAFDMessage\n                }\n              }\n            }\n          })\n        )\n    } else {\n      return new Promise((resolve) => resolve(null))\n    }\n  }\n}\n","import { AFDAccountValidationOptionsFull } from '../../../types/AFDOptions'\nimport { authDefaults } from './auth.defaults'\n\nexport const accountDefaults: AFDAccountValidationOptionsFull = {\n  ...authDefaults,\n  invalidAccountFormatMessage: 'Invalid Account Number',\n  invalidSortFormatMessage: 'Invalid Sort Code',\n  invalidAccountMessage: 'Invalid Account Number or Sort Code',\n  required: 'Account Number is a required field',\n  sortRequired: 'Sort Code is a required field'\n}\n","export const accountInfoDefaults = {\n  pceValid: false,\n  accountRegexValid: false,\n  sortRegexValid: false,\n  iban: null,\n  clearingSystem: null,\n  rollNumber: null,\n  accountType: null,\n  accountNumber: '',\n  sortCode: ''\n}\n","import { Injectable } from '@angular/core'\nimport {\n  AFDAccountValidationOptions,\n  AFDAccountValidationOptionsFull\n} from '../types/AFDOptions'\nimport { accountDefaults } from '../data/defaults/options/account.default'\nimport { HttpClient, HttpParams } from '@angular/common/http'\nimport { BehaviorSubject } from 'rxjs'\nimport { accountInfoDefaults } from '../data/defaults/validation/account.info.defaults'\nimport { setAuthenticationCredentials } from '../utils/pce.request'\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AFDAccountService {\n  private _options: AFDAccountValidationOptionsFull = accountDefaults\n\n  get options(): AFDAccountValidationOptionsFull {\n    return this._options\n  }\n\n  set options(newOptions: AFDAccountValidationOptions) {\n    this._options = {\n      ...this._options,\n      ...newOptions\n    }\n  }\n\n  accountInfoSource = new BehaviorSubject(accountInfoDefaults)\n  accountInfo = this.accountInfoSource.asObservable()\n\n  accountMask = {\n    mask: [/\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/],\n    guide: false\n  }\n  sortMask = {\n    mask: [/\\d/, /\\d/, '-', /\\d/, /\\d/, '-', /\\d/, /\\d/],\n    guide: false\n  }\n\n  validateAccount(accountNumber, sortCode) {\n    const { _options } = this\n    const { pceURL } = _options\n\n    let params = new HttpParams()\n    params = setAuthenticationCredentials({\n      params,\n      options: _options\n    })\n    params = params.set('accountNumber', accountNumber)\n    params = params.set('sortCode', sortCode)\n    params = params.set('data', 'bank')\n    params = params.set('format', 'json')\n    params = params.set('task', 'account')\n    params = params.set('fields', 'account')\n\n    return this.http.get(pceURL, {\n      params: params,\n      observe: 'response'\n    })\n  }\n\n  constructor(private http: HttpClient) {}\n}\n","import { Directive, ElementRef, forwardRef, Input } from '@angular/core'\nimport { AFDAccountService } from '../services/afd.account.service'\nimport {\n  AbstractControl,\n  AsyncValidator,\n  NG_ASYNC_VALIDATORS,\n  NG_VALIDATORS,\n  ValidationErrors,\n  Validator\n} from '@angular/forms'\nimport { Observable } from 'rxjs'\nimport { map } from 'rxjs/operators'\nimport { HttpResponse } from '@angular/common/http'\nimport PCEResponse, { PCEAccountItem } from '../types/PCELookup'\n\n@Directive({\n  selector: '[afdAccountRegexValid]',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_VALIDATORS,\n      useExisting: forwardRef(() => AfdAccountRegexValidDirective),\n      multi: true\n    }\n  ]\n})\nexport class AfdAccountRegexValidDirective implements Validator {\n  constructor(\n    private afdAccountService: AFDAccountService,\n    private el: ElementRef\n  ) {}\n\n  validate(control: AbstractControl): ValidationErrors | null {\n    // only try to validate if there is a value in the input\n    if (control.value) {\n      const currentInfo = this.afdAccountService.accountInfoSource.value\n      currentInfo.accountRegexValid = control.value.length > 7\n      currentInfo.pceValid = false\n      currentInfo.accountNumber = control.value\n\n      // send useful information to the pce service\n      this.afdAccountService.accountInfoSource.next(currentInfo)\n\n      // validate regex\n      return control.value.length > 7\n        ? null\n        : {\n            afdAccountRegexValid: {\n              message:\n                this.afdAccountService.options.invalidAccountFormatMessage\n            }\n          }\n    } else {\n      // if there is nothing in the control\n      return null\n    }\n  }\n}\n\n@Directive({\n  selector: '[afdSortRegexValid]',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_VALIDATORS,\n      useExisting: forwardRef(() => AfdSortRegexValidDirective),\n      multi: true\n    }\n  ]\n})\nexport class AfdSortRegexValidDirective implements Validator {\n  @Input() country: string\n\n  constructor(\n    private afdAccountService: AFDAccountService,\n    private el: ElementRef\n  ) {}\n\n  validate(control: AbstractControl): ValidationErrors | null {\n    // only try to validate if there is a value in the input\n    if (control.value) {\n      const currentInfo = this.afdAccountService.accountInfoSource.value\n      currentInfo.pceValid = false\n      currentInfo.sortRegexValid = control.value.length === 8\n      currentInfo.sortCode = control.value\n\n      // send useful information to the pce service\n      this.afdAccountService.accountInfoSource.next(currentInfo)\n\n      // validate regex\n      return control.value.length === 8\n        ? null\n        : {\n            afdSortRegexValid: {\n              message: this.afdAccountService.options.invalidSortFormatMessage\n            }\n          }\n    } else {\n      // if there is nothing in the control\n      return null\n    }\n  }\n}\n\n@Directive({\n  selector: '[afdAccountPceValid]',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_ASYNC_VALIDATORS,\n      useExisting: forwardRef(() => AfdAccountPceValidDirective),\n      multi: true\n    }\n  ]\n})\nexport class AfdAccountPceValidDirective implements AsyncValidator {\n  @Input() country: string\n\n  constructor(\n    private afdAccountService: AFDAccountService,\n    private el: ElementRef\n  ) {}\n\n  validate(\n    control: AbstractControl\n  ): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> {\n    const currentInfo = this.afdAccountService.accountInfoSource.value\n\n    const account = control.get('accountControl')\n    const sort = control.get('sortControl')\n\n    // Text mask seems to play around with the touched attribute of sort so I have to create manual checks\n    const sortTouched = control.touched && sort.value.length > 0 && sort.valid\n    const accountTouched =\n      control.touched && account.value.length > 0 && account.valid\n\n    if (control.touched && accountTouched && sortTouched) {\n      // validate\n      return this.afdAccountService\n        .validateAccount(account.value, sort.value)\n        .pipe(\n          map((data: HttpResponse<PCEResponse>) => {\n            if (data.body.Result === '1') {\n              const items = data.body.Item as PCEAccountItem[]\n              const { IBAN, ClearingSystem, RollNumber, TypeOfAccount } = items[0]\n              this.afdAccountService.accountInfoSource.next({\n                pceValid: true,\n                accountRegexValid: true,\n                sortRegexValid: true,\n                iban: IBAN,\n                clearingSystem: ClearingSystem,\n                rollNumber: RollNumber,\n                accountType: TypeOfAccount,\n                accountNumber: currentInfo.accountNumber,\n                sortCode: currentInfo.sortCode\n              })\n              return null\n            } else {\n              this.afdAccountService.accountInfoSource.next({\n                ...currentInfo,\n                pceValid: false\n              })\n              return {\n                afdAccountPceValid: {\n                  message: data.body.ErrorText || this.afdAccountService.options.invalidAccountMessage\n                }\n              }\n            }\n          })\n        )\n    } else {\n      return new Promise((resolve) => resolve(null))\n    }\n  }\n}\n","import { Directive, Input, ElementRef, AfterViewInit } from '@angular/core'\nimport { AFDTypeaheadService } from '../services/afd.typeahead.service'\n\n@Directive({\n  selector: '[afdCountries]',\n  standalone: true\n})\n\nexport class AfdCountriesDirective implements AfterViewInit {\n  // the in\n  @Input('afdCountries') defaultCountry: string\n\n  constructor(\n    private el: ElementRef,\n    private afdTypeaheadService: AFDTypeaheadService\n  ) {}\n\n  ngAfterViewInit() {\n    const startEvent = new CustomEvent('afdGetCountriesStart')\n    document.dispatchEvent(startEvent)\n\n    this.afdTypeaheadService.getCountries().subscribe((res) => {\n      this.afdTypeaheadService.countries = res.body['Item']\n\n      const endEvent = new CustomEvent('afdGetCountriesComplete', {\n        detail: res\n      })\n      document.dispatchEvent(endEvent)\n\n      if (this.defaultCountry) {\n        this.defaultCountry = this.defaultCountry.toUpperCase()\n        for (const country of this.afdTypeaheadService.countries) {\n          if (this.defaultCountry === country.iso) {\n            this.afdTypeaheadService.country = country.iso\n          }\n        }\n      }\n    })\n  }\n}\n","import { Directive, HostListener, ElementRef } from '@angular/core'\nimport { AFDTypeaheadService } from '../../services/afd.typeahead.service'\nimport PCEResponse, {\n  PCELookupItem,\n  PCEResponseItem\n} from '../../types/PCELookup'\nimport { LookupResultItem } from '../../types/LookupResultItem'\n\n@Directive({\n  selector: '[afdReverseGeocode]',\n  standalone: true\n})\n\n// directive that sets an input to work as a result box for PCE, the afdResult attribute sets the relevant PCE field\nexport class AfdReverseGeocodeDirective {\n  constructor(\n    private afdTypeaheadService: AFDTypeaheadService,\n    private el: ElementRef\n  ) {}\n\n  @HostListener('click', ['$event']) afdReverseGeocodeInitiate() {\n    this.el.nativeElement.disabled = true\n\n    navigator.geolocation.getCurrentPosition(\n      (position) => {\n        this.afdTypeaheadService\n          .reverseGeocode(position.coords.latitude, position.coords.longitude)\n          .subscribe((data: PCEResponse) => {\n            let results: LookupResultItem[] = [\n              {\n                key: 'manual',\n                list: 'No results found at your location, enter your address manually',\n                isW3W: false\n              }\n            ]\n            if (data.Item) {\n              // Populate form fields\n              results = data.Item.map(\n                (item: PCEResponseItem): LookupResultItem => {\n                  const { List, Key } = item as PCELookupItem\n                  return {\n                    list: List,\n                    key: Key,\n                    isW3W: false\n                  }\n                }\n              )\n            }\n            this.afdTypeaheadService.processLookupResults(\n              data.Item as PCELookupItem[]\n            )\n\n            const event = new CustomEvent('afdReverseGeocodeComplete', {\n              detail: results\n            })\n            document.dispatchEvent(event)\n\n            this.el.nativeElement.disabled = false\n          })\n      },\n      (error) => {\n        switch (error.code) {\n          case error.PERMISSION_DENIED:\n            console.error('User denied the request for Geolocation.')\n            this.el.nativeElement.disabled = false\n            break\n          case error.POSITION_UNAVAILABLE:\n            console.error('Location information is unavailable.')\n            this.el.nativeElement.disabled = false\n            break\n          case error.TIMEOUT:\n            console.error('The request to get user location timed out.')\n            this.el.nativeElement.disabled = false\n            break\n          default:\n            console.error('An unknown error occurred.')\n            break\n        }\n      }\n    )\n  }\n}\n","import { Component, Input, ElementRef } from '@angular/core'\nimport { AFDTypeaheadService } from '../../services/afd.typeahead.service'\n\n@Component({\n  selector: 'afd-manual-input-component',\n  templateUrl: 'manual-input.component.html',\n  styleUrls: ['manual-input.component.css'],\n  standalone: true\n})\nexport class AfdManualInputComponent {\n  constructor(\n    private el: ElementRef,\n    public afdTypeaheadService: AFDTypeaheadService\n  ) {}\n\n  @Input() onManualInputClick: () => void\n\n  manualInputClick() {\n    this.afdTypeaheadService.setVisibility({\n      typeahead: false,\n      manualInput: false,\n      addressSearch: true,\n      searchAgain: false,\n      addressFields: true\n    })\n\n    this.afdTypeaheadService.allResultFieldVisibility.next(true)\n    this.onManualInputClick()\n  }\n}\n","<p *ngIf=\"afdTypeaheadService.manualInputVisible()\" class=\"afd-utility-button\">\n  <a (click)=\"manualInputClick()\">{{ afdTypeaheadService.options.manualInputButtonText }}</a>\n</p>\n\n","import { Component, ElementRef } from '@angular/core'\nimport { AFDTypeaheadService } from '../../services/afd.typeahead.service'\n\n@Component({\n  selector: 'afd-search-again-component',\n  templateUrl: 'search-again.component.html',\n  styleUrls: ['search-again.component.css'],\n  standalone: true\n})\nexport class AfdSearchAgainComponent {\n  constructor(\n    private el: ElementRef,\n    public afdTypeaheadService: AFDTypeaheadService\n  ) {}\n\n  searchAgainClick() {\n    this.afdTypeaheadService.setVisibility({\n      typeahead: true,\n      manualInput: this.afdTypeaheadService.options.beforeHideResults,\n      addressSearch: false,\n      searchAgain: false,\n      addressFields: true\n    })\n\n    this.afdTypeaheadService.allResultFieldVisibility.next(\n      !this.afdTypeaheadService.options.beforeHideResults\n    )\n  }\n}\n","<p *ngIf=\"afdTypeaheadService.searchAgainVisible()\" class=\"afd-utility-button\">\n  <a (click)=\"searchAgainClick()\">{{ afdTypeaheadService.options.searchAgainButtonText }}</a>\n</p>\n\n","import { Component, ElementRef } from '@angular/core'\nimport { AFDTypeaheadService } from '../../services/afd.typeahead.service'\n\n@Component({\n  selector: 'afd-manual-input-address-search-component',\n  templateUrl: 'manual-input-address-search.component.html',\n  styleUrls: ['manual-input-address-search.component.css'],\n  standalone: true\n})\nexport class AfdAddressSearchComponent {\n  constructor(\n    private el: ElementRef,\n    public afdTypeaheadService: AFDTypeaheadService\n  ) {}\n\n  addressSearchClick() {\n    this.afdTypeaheadService.setVisibility({\n      typeahead: true,\n      manualInput: this.afdTypeaheadService.options.beforeHideResults,\n      addressSearch: false,\n      searchAgain: false,\n      addressFields: true\n    })\n\n    this.afdTypeaheadService.allResultFieldVisibility.next(\n      !this.afdTypeaheadService.options.beforeHideResults\n    )\n  }\n}\n","<p *ngIf=\"afdTypeaheadService.manualInputAddressSearchVisible()\" class=\"afd-utility-button\">\n  <a (click)=\"addressSearchClick()\">{{\n    afdTypeaheadService.options.manualInputAddressSearchButtonText\n  }}</a>\n</p>\n","// Angular Dependencies\nimport { NgModule } from '@angular/core'\n\n// AFD Directives\nimport { AfdResultDirective } from './directives/afd.result.directive'\nimport {\n  AfdEmailRegexValidDirective,\n  AfdEmailPceValidDirective\n} from './directives/afd.email.directive'\nimport {\n  AfdPhoneRegexValidDirective,\n  AfdPhonePceValidDirective,\n  AfdPhoneCountriesDirective,\n  AfdSearchPhoneDirective\n} from './directives/afd.phone.directive'\nimport {\n  AfdCardRegexValidDirective,\n  AfdExpiryRegexValidDirective,\n  AfdCardPceValidDirective\n} from './directives/afd.card.directive'\nimport {\n  AfdAccountRegexValidDirective,\n  AfdSortRegexValidDirective,\n  AfdAccountPceValidDirective\n} from './directives/afd.account.directive'\nimport { AfdCountriesDirective } from './directives/afd.countries.directive'\nimport { AfdReverseGeocodeDirective } from './directives/typeahead/afd.reverse-geocode.directive'\n\n// Afd Components\nimport { AfdManualInputComponent } from './components/typeahead/manual-input.component'\nimport { AfdSearchAgainComponent } from './components/typeahead/search-again.component'\nimport { AfdAddressSearchComponent } from './components/typeahead/manual-input-address-search.component'\n\n/**\n * @deprecated This module is deprecated and will be removed in a future version.\n * All components and directives are now standalone and can be imported directly.\n * \n * Instead of importing this module, import the standalone components/directives you need:\n * \n * @example\n * ```typescript\n * import { AfdEmailRegexValidDirective, AfdEmailPceValidDirective } from '@afd-software/pce-angular';\n * \n * @Component({\n *   standalone: true,\n *   imports: [AfdEmailRegexValidDirective, AfdEmailPceValidDirective]\n * })\n * ```\n */\n@NgModule({\n  imports: [\n    AfdResultDirective,\n    AfdEmailRegexValidDirective,\n    AfdEmailPceValidDirective,\n    AfdPhoneRegexValidDirective,\n    AfdPhonePceValidDirective,\n    AfdPhoneCountriesDirective,\n    AfdSearchPhoneDirective,\n    AfdCardRegexValidDirective,\n    AfdExpiryRegexValidDirective,\n    AfdCardPceValidDirective,\n    AfdAccountRegexValidDirective,\n    AfdSortRegexValidDirective,\n    AfdAccountPceValidDirective,\n    AfdCountriesDirective,\n    AfdReverseGeocodeDirective,\n    AfdManualInputComponent,\n    AfdSearchAgainComponent,\n    AfdAddressSearchComponent\n  ],\n  exports: [\n    AfdResultDirective,\n    AfdEmailRegexValidDirective,\n    AfdEmailPceValidDirective,\n    AfdPhoneRegexValidDirective,\n    AfdPhonePceValidDirective,\n    AfdPhoneCountriesDirective,\n    AfdSearchPhoneDirective,\n    AfdCardRegexValidDirective,\n    AfdExpiryRegexValidDirective,\n    AfdCardPceValidDirective,\n    AfdAccountRegexValidDirective,\n    AfdSortRegexValidDirective,\n    AfdAccountPceValidDirective,\n    AfdCountriesDirective,\n    AfdReverseGeocodeDirective,\n    AfdManualInputComponent,\n    AfdSearchAgainComponent,\n    AfdAddressSearchComponent\n  ]\n})\nexport class AfdPceAngularModule {}\n","export const Countries = [\n  {\n    dial: 886,\n    iso3: 'TWN',\n    iso2: 'TW',\n    name: 'Taiwan'\n  },\n  {\n    dial: 93,\n    iso3: 'AFG',\n    iso2: 'AF',\n    name: 'Afghanistan'\n  },\n  {\n    dial: 355,\n    iso3: 'ALB',\n    iso2: 'AL',\n    name: 'Albania'\n  },\n  {\n    dial: 213,\n    iso3: 'DZA',\n    iso2: 'DZ',\n    name: 'Algeria'\n  },\n  {\n    dial: '1-684',\n    iso3: 'ASM',\n    iso2: 'AS',\n    name: 'American Samoa'\n  },\n  {\n    dial: 376,\n    iso3: 'AND',\n    iso2: 'AD',\n    name: 'Andorra'\n  },\n  {\n    dial: 244,\n    iso3: 'AGO',\n    iso2: 'AO',\n    name: 'Angola'\n  },\n  {\n    dial: '1-264',\n    iso3: 'AIA',\n    iso2: 'AI',\n    name: 'Anguilla'\n  },\n  {\n    dial: 672,\n    iso3: 'ATA',\n    iso2: 'AQ',\n    name: 'Antarctica'\n  },\n  {\n    dial: '1-268',\n    iso3: 'ATG',\n    iso2: 'AG',\n    name: 'Antigua & Barbuda'\n  },\n  {\n    dial: 54,\n    iso3: 'ARG',\n    iso2: 'AR',\n    name: 'Argentina'\n  },\n  {\n    dial: 374,\n    iso3: 'ARM',\n    iso2: 'AM',\n    name: 'Armenia'\n  },\n  {\n    dial: 297,\n    iso3: 'ABW',\n    iso2: 'AW',\n    name: 'Aruba'\n  },\n  {\n    dial: 61,\n    iso3: 'AUS',\n    iso2: 'AU',\n    name: 'Australia'\n  },\n  {\n    dial: 43,\n    iso3: 'AUT',\n    iso2: 'AT',\n    name: 'Austria'\n  },\n  {\n    dial: 994,\n    iso3: 'AZE',\n    iso2: 'AZ',\n    name: 'Azerbaijan'\n  },\n  {\n    dial: '1-242',\n    iso3: 'BHS',\n    iso2: 'BS',\n    name: 'Bahamas'\n  },\n  {\n    dial: 973,\n    iso3: 'BHR',\n    iso2: 'BH',\n    name: 'Bahrain'\n  },\n  {\n    dial: 880,\n    iso3: 'BGD',\n    iso2: 'BD',\n    name: 'Bangladesh'\n  },\n  {\n    dial: '1-246',\n    iso3: 'BRB',\n    iso2: 'BB',\n    name: 'Barbados'\n  },\n  {\n    dial: 375,\n    iso3: 'BLR',\n    iso2: 'BY',\n    name: 'Belarus'\n  },\n  {\n    dial: 32,\n    iso3: 'BEL',\n    iso2: 'BE',\n    name: 'Belgium'\n  },\n  {\n    dial: 501,\n    iso3: 'BLZ',\n    iso2: 'BZ',\n    name: 'Belize'\n  },\n  {\n    dial: 229,\n    iso3: 'BEN',\n    iso2: 'BJ',\n    name: 'Benin'\n  },\n  {\n    dial: '1-441',\n    iso3: 'BMU',\n    iso2: 'BM',\n    name: 'Bermuda'\n  },\n  {\n    dial: 975,\n    iso3: 'BTN',\n    iso2: 'BT',\n    name: 'Bhutan'\n  },\n  {\n    dial: 591,\n    iso3: 'BOL',\n    iso2: 'BO',\n    name: 'Bolivia'\n  },\n  {\n    dial: 599,\n    iso3: 'BES',\n    iso2: 'BQ',\n    name: 'Caribbean Netherlands'\n  },\n  {\n    dial: 387,\n    iso3: 'BIH',\n    iso2: 'BA',\n    name: 'Bosnia'\n  },\n  {\n    dial: 267,\n    iso3: 'BWA',\n    iso2: 'BW',\n    name: 'Botswana'\n  },\n  {\n    dial: 47,\n    iso3: 'BVT',\n    iso2: 'BV',\n    name: 'Bouvet Island'\n  },\n  {\n    dial: 55,\n    iso3: 'BRA',\n    iso2: 'BR',\n    name: 'Brazil'\n  },\n  {\n    dial: 246,\n    iso3: 'IOT',\n    iso2: 'IO',\n    name: 'British Indian Ocean Territory'\n  },\n  {\n    dial: '1-284',\n    iso3: 'VGB',\n    iso2: 'VG',\n    name: 'British Virgin Islands'\n  },\n  {\n    dial: 673,\n    iso3: 'BRN',\n    iso2: 'BN',\n    name: 'Brunei'\n  },\n  {\n    dial: 359,\n    iso3: 'BGR',\n    iso2: 'BG',\n    name: 'Bulgaria'\n  },\n  {\n    dial: 226,\n    iso3: 'BFA',\n    iso2: 'BF',\n    name: 'Burkina Faso'\n  },\n  {\n    dial: 257,\n    iso3: 'BDI',\n    iso2: 'BI',\n    name: 'Burundi'\n  },\n  {\n    dial: 238,\n    iso3: 'CPV',\n    iso2: 'CV',\n    name: 'Cape Verde'\n  },\n  {\n    dial: 855,\n    iso3: 'KHM',\n    iso2: 'KH',\n    name: 'Cambodia'\n  },\n  {\n    dial: 237,\n    iso3: 'CMR',\n    iso2: 'CM',\n    name: 'Cameroon'\n  },\n  {\n    dial: 1,\n    iso3: 'CAN',\n    iso2: 'CA',\n    name: 'Canada'\n  },\n  {\n    dial: '1-345',\n    iso3: 'CYM',\n    iso2: 'KY',\n    name: 'Cayman Islands'\n  },\n  {\n    dial: 236,\n    iso3: 'CAF',\n    iso2: 'CF',\n    name: 'Central African Republic'\n  },\n  {\n    dial: 235,\n    iso3: 'TCD',\n    iso2: 'TD',\n    name: 'Chad'\n  },\n  {\n    dial: 56,\n    iso3: 'CHL',\n    iso2: 'CL',\n    name: 'Chile'\n  },\n  {\n    dial: 86,\n    iso3: 'CHN',\n    iso2: 'CN',\n    name: 'China'\n  },\n  {\n    dial: 852,\n    iso3: 'HKG',\n    iso2: 'HK',\n    name: 'Hong Kong'\n  },\n  {\n    dial: 853,\n    iso3: 'MAC',\n    iso2: 'MO',\n    name: 'Macau'\n  },\n  {\n    dial: 61,\n    iso3: 'CXR',\n    iso2: 'CX',\n    name: 'Christmas Island'\n  },\n  {\n    dial: 61,\n    iso3: 'CCK',\n    iso2: 'CC',\n    name: 'Cocos (Keeling) Islands'\n  },\n  {\n    dial: 57,\n    iso3: 'COL',\n    iso2: 'CO',\n    name: 'Colombia'\n  },\n  {\n    dial: 269,\n    iso3: 'COM',\n    iso2: 'KM',\n    name: 'Comoros'\n  },\n  {\n    dial: 242,\n    iso3: 'COG',\n    iso2: 'CG',\n    name: 'Congo - Brazzaville'\n  },\n  {\n    dial: 682,\n    iso3: 'COK',\n    iso2: 'CK',\n    name: 'Cook Islands'\n  },\n  {\n    dial: 506,\n    iso3: 'CRI',\n    iso2: 'CR',\n    name: 'Costa Rica'\n  },\n  {\n    dial: 385,\n    iso3: 'HRV',\n    iso2: 'HR',\n    name: 'Croatia'\n  },\n  {\n    dial: 53,\n    iso3: 'CUB',\n    iso2: 'CU',\n    name: 'Cuba'\n  },\n  {\n    dial: 599,\n    iso3: 'CUW',\n    iso2: 'CW',\n    name: 'Curaçao'\n  },\n  {\n    dial: 357,\n    iso3: 'CYP',\n    iso2: 'CY',\n    name: 'Cyprus'\n  },\n  {\n    dial: 420,\n    iso3: 'CZE',\n    iso2: 'CZ',\n    name: 'Czechia'\n  },\n  {\n    dial: 225,\n    iso3: 'CIV',\n    iso2: 'CI',\n    name: 'Côte d’Ivoire'\n  },\n  {\n    dial: 850,\n    iso3: 'PRK',\n    iso2: 'KP',\n    name: 'North Korea'\n  },\n  {\n    dial: 243,\n    iso3: 'COD',\n    iso2: 'CD',\n    name: 'Congo - Kinshasa'\n  },\n  {\n    dial: 45,\n    iso3: 'DNK',\n    iso2: 'DK',\n    name: 'Denmark'\n  },\n  {\n    dial: 253,\n    iso3: 'DJI',\n    iso2: 'DJ',\n    name: 'Djibouti'\n  },\n  {\n    dial: '1-767',\n    iso3: 'DMA',\n    iso2: 'DM',\n    name: 'Dominica'\n  },\n  {\n    dial: '1-809,1-829,1-849',\n    iso3: 'DOM',\n    iso2: 'DO',\n    name: 'Dominican Republic'\n  },\n  {\n    dial: 593,\n    iso3: 'ECU',\n    iso2: 'EC',\n    name: 'Ecuador'\n  },\n  {\n    dial: 20,\n    iso3: 'EGY',\n    iso2: 'EG',\n    name: 'Egypt'\n  },\n  {\n    dial: 503,\n    iso3: 'SLV',\n    iso2: 'SV',\n    name: 'El Salvador'\n  },\n  {\n    dial: 240,\n    iso3: 'GNQ',\n    iso2: 'GQ',\n    name: 'Equatorial Guinea'\n  },\n  {\n    dial: 291,\n    iso3: 'ERI',\n    iso2: 'ER',\n    name: 'Eritrea'\n  },\n  {\n    dial: 372,\n    iso3: 'EST',\n    iso2: 'EE',\n    name: 'Estonia'\n  },\n  {\n    dial: 268,\n    iso3: 'SWZ',\n    iso2: 'SZ',\n    name: 'Eswatini'\n  },\n  {\n    dial: 251,\n    iso3: 'ETH',\n    iso2: 'ET',\n    name: 'Ethiopia'\n  },\n  {\n    dial: 500,\n    iso3: 'FLK',\n    iso2: 'FK',\n    name: 'Falkland Islands'\n  },\n  {\n    dial: 298,\n    iso3: 'FRO',\n    iso2: 'FO',\n    name: 'Faroe Islands'\n  },\n  {\n    dial: 679,\n    iso3: 'FJI',\n    iso2: 'FJ',\n    name: 'Fiji'\n  },\n  {\n    dial: 358,\n    iso3: 'FIN',\n    iso2: 'FI',\n    name: 'Finland'\n  },\n  {\n    dial: 33,\n    iso3: 'FRA',\n    iso2: 'FR',\n    name: 'France'\n  },\n  {\n    dial: 594,\n    iso3: 'GUF',\n    iso2: 'GF',\n    name: 'French Guiana'\n  },\n  {\n    dial: 689,\n    iso3: 'PYF',\n    iso2: 'PF',\n    name: 'French Polynesia'\n  },\n  {\n    dial: 262,\n    iso3: 'ATF',\n    iso2: 'TF',\n    name: 'French Southern Territories'\n  },\n  {\n    dial: 241,\n    iso3: 'GAB',\n    iso2: 'GA',\n    name: 'Gabon'\n  },\n  {\n    dial: 220,\n    iso3: 'GMB',\n    iso2: 'GM',\n    name: 'Gambia'\n  },\n  {\n    dial: 995,\n    iso3: 'GEO',\n    iso2: 'GE',\n    name: 'Georgia'\n  },\n  {\n    dial: 49,\n    iso3: 'DEU',\n    iso2: 'DE',\n    name: 'Germany'\n  },\n  {\n    dial: 233,\n    iso3: 'GHA',\n    iso2: 'GH',\n    name: 'Ghana'\n  },\n  {\n    dial: 350,\n    iso3: 'GIB',\n    iso2: 'GI',\n    name: 'Gibraltar'\n  },\n  {\n    dial: 30,\n    iso3: 'GRC',\n    iso2: 'GR',\n    name: 'Greece'\n  },\n  {\n    dial: 299,\n    iso3: 'GRL',\n    iso2: 'GL',\n    name: 'Greenland'\n  },\n  {\n    dial: '1-473',\n    iso3: 'GRD',\n    iso2: 'GD',\n    name: 'Grenada'\n  },\n  {\n    dial: 590,\n    iso3: 'GLP',\n    iso2: 'GP',\n    name: 'Guadeloupe'\n  },\n  {\n    dial: '1-671',\n    iso3: 'GUM',\n    iso2: 'GU',\n    name: 'Guam'\n  },\n  {\n    dial: 502,\n    iso3: 'GTM',\n    iso2: 'GT',\n    name: 'Guatemala'\n  },\n  {\n    dial: 44,\n    iso3: 'GGY',\n    iso2: 'GG',\n    name: 'Guernsey'\n  },\n  {\n    dial: 224,\n    iso3: 'GIN',\n    iso2: 'GN',\n    name: 'Guinea'\n  },\n  {\n    dial: 245,\n    iso3: 'GNB',\n    iso2: 'GW',\n    name: 'Guinea-Bissau'\n  },\n  {\n    dial: 592,\n    iso3: 'GUY',\n    iso2: 'GY',\n    name: 'Guyana'\n  },\n  {\n    dial: 509,\n    iso3: 'HTI',\n    iso2: 'HT',\n    name: 'Haiti'\n  },\n  {\n    dial: 672,\n    iso3: 'HMD',\n    iso2: 'HM',\n    name: 'Heard & McDonald Islands'\n  },\n  {\n    dial: '39-06',\n    iso3: 'VAT',\n    iso2: 'VA',\n    name: 'Vatican City'\n  },\n  {\n    dial: 504,\n    iso3: 'HND',\n    iso2: 'HN',\n    name: 'Honduras'\n  },\n  {\n    dial: 36,\n    iso3: 'HUN',\n    iso2: 'HU',\n    name: 'Hungary'\n  },\n  {\n    dial: 354,\n    iso3: 'ISL',\n    iso2: 'IS',\n    name: 'Iceland'\n  },\n  {\n    dial: 91,\n    iso3: 'IND',\n    iso2: 'IN',\n    name: 'India'\n  },\n  {\n    dial: 62,\n    iso3: 'IDN',\n    iso2: 'ID',\n    name: 'Indonesia'\n  },\n  {\n    dial: 98,\n    iso3: 'IRN',\n    iso2: 'IR',\n    name: 'Iran'\n  },\n  {\n    dial: 964,\n    iso3: 'IRQ',\n    iso2: 'IQ',\n    name: 'Iraq'\n  },\n  {\n    dial: 353,\n    iso3: 'IRL',\n    iso2: 'IE',\n    name: 'Ireland'\n  },\n  {\n    dial: 44,\n    iso3: 'IMN',\n    iso2: 'IM',\n    name: 'Isle of Man'\n  },\n  {\n    dial: 972,\n    iso3: 'ISR',\n    iso2: 'IL',\n    name: 'Israel'\n  },\n  {\n    dial: 39,\n    iso3: 'ITA',\n    iso2: 'IT',\n    name: 'Italy'\n  },\n  {\n    dial: '1-876',\n    iso3: 'JAM',\n    iso2: 'JM',\n    name: 'Jamaica'\n  },\n  {\n    dial: 81,\n    iso3: 'JPN',\n    iso2: 'JP',\n    name: 'Japan'\n  },\n  {\n    dial: 44,\n    iso3: 'JEY',\n    iso2: 'JE',\n    name: 'Jersey'\n  },\n  {\n    dial: 962,\n    iso3: 'JOR',\n    iso2: 'JO',\n    name: 'Jordan'\n  },\n  {\n    dial: 7,\n    iso3: 'KAZ',\n    iso2: 'KZ',\n    name: 'Kazakhstan'\n  },\n  {\n    dial: 254,\n    iso3: 'KEN',\n    iso2: 'KE',\n    name: 'Kenya'\n  },\n  {\n    dial: 686,\n    iso3: 'KIR',\n    iso2: 'KI',\n    name: 'Kiribati'\n  },\n  {\n    dial: 965,\n    iso3: 'KWT',\n    iso2: 'KW',\n    name: 'Kuwait'\n  },\n  {\n    dial: 996,\n    iso3: 'KGZ',\n    iso2: 'KG',\n    name: 'Kyrgyzstan'\n  },\n  {\n    dial: 856,\n    iso3: 'LAO',\n    iso2: 'LA',\n    name: 'Laos'\n  },\n  {\n    dial: 371,\n    iso3: 'LVA',\n    iso2: 'LV',\n    name: 'Latvia'\n  },\n  {\n    dial: 961,\n    iso3: 'LBN',\n    iso2: 'LB',\n    name: 'Lebanon'\n  },\n  {\n    dial: 266,\n    iso3: 'LSO',\n    iso2: 'LS',\n    name: 'Lesotho'\n  },\n  {\n    dial: 231,\n    iso3: 'LBR',\n    iso2: 'LR',\n    name: 'Liberia'\n  },\n  {\n    dial: 218,\n    iso3: 'LBY',\n    iso2: 'LY',\n    name: 'Libya'\n  },\n  {\n    dial: 423,\n    iso3: 'LIE',\n    iso2: 'LI',\n    name: 'Liechtenstein'\n  },\n  {\n    dial: 370,\n    iso3: 'LTU',\n    iso2: 'LT',\n    name: 'Lithuania'\n  },\n  {\n    dial: 352,\n    iso3: 'LUX',\n    iso2: 'LU',\n    name: 'Luxembourg'\n  },\n  {\n    dial: 261,\n    iso3: 'MDG',\n    iso2: 'MG',\n    name: 'Madagascar'\n  },\n  {\n    dial: 265,\n    iso3: 'MWI',\n    iso2: 'MW',\n    name: 'Malawi'\n  },\n  {\n    dial: 60,\n    iso3: 'MYS',\n    iso2: 'MY',\n    name: 'Malaysia'\n  },\n  {\n    dial: 960,\n    iso3: 'MDV',\n    iso2: 'MV',\n    name: 'Maldives'\n  },\n  {\n    dial: 223,\n    iso3: 'MLI',\n    iso2: 'ML',\n    name: 'Mali'\n  },\n  {\n    dial: 356,\n    iso3: 'MLT',\n    iso2: 'MT',\n    name: 'Malta'\n  },\n  {\n    dial: 692,\n    iso3: 'MHL',\n    iso2: 'MH',\n    name: 'Marshall Islands'\n  },\n  {\n    dial: 596,\n    iso3: 'MTQ',\n    iso2: 'MQ',\n    name: 'Martinique'\n  },\n  {\n    dial: 222,\n    iso3: 'MRT',\n    iso2: 'MR',\n    name: 'Mauritania'\n  },\n  {\n    dial: 230,\n    iso3: 'MUS',\n    iso2: 'MU',\n    name: 'Mauritius'\n  },\n  {\n    dial: 262,\n    iso3: 'MYT',\n    iso2: 'YT',\n    name: 'Mayotte'\n  },\n  {\n    dial: 52,\n    iso3: 'MEX',\n    iso2: 'MX',\n    name: 'Mexico'\n  },\n  {\n    dial: 691,\n    iso3: 'FSM',\n    iso2: 'FM',\n    name: 'Micronesia'\n  },\n  {\n    dial: 377,\n    iso3: 'MCO',\n    iso2: 'MC',\n    name: 'Monaco'\n  },\n  {\n    dial: 976,\n    iso3: 'MNG',\n    iso2: 'MN',\n    name: 'Mongolia'\n  },\n  {\n    dial: 382,\n    iso3: 'MNE',\n    iso2: 'ME',\n    name: 'Montenegro'\n  },\n  {\n    dial: '1-664',\n    iso3: 'MSR',\n    iso2: 'MS',\n    name: 'Montserrat'\n  },\n  {\n    dial: 212,\n    iso3: 'MAR',\n    iso2: 'MA',\n    name: 'Morocco'\n  },\n  {\n    dial: 258,\n    iso3: 'MOZ',\n    iso2: 'MZ',\n    name: 'Mozambique'\n  },\n  {\n    dial: 95,\n    iso3: 'MMR',\n    iso2: 'MM',\n    name: 'Myanmar'\n  },\n  {\n    dial: 264,\n    iso3: 'NAM',\n    iso2: 'NA',\n    name: 'Namibia'\n  },\n  {\n    dial: 674,\n    iso3: 'NRU',\n    iso2: 'NR',\n    name: 'Nauru'\n  },\n  {\n    dial: 977,\n    iso3: 'NPL',\n    iso2: 'NP',\n    name: 'Nepal'\n  },\n  {\n    dial: 31,\n    iso3: 'NLD',\n    iso2: 'NL',\n    name: 'Netherlands'\n  },\n  {\n    dial: 687,\n    iso3: 'NCL',\n    iso2: 'NC',\n    name: 'New Caledonia'\n  },\n  {\n    dial: 64,\n    iso3: 'NZL',\n    iso2: 'NZ',\n    name: 'New Zealand'\n  },\n  {\n    dial: 505,\n    iso3: 'NIC',\n    iso2: 'NI',\n    name: 'Nicaragua'\n  },\n  {\n    dial: 227,\n    iso3: 'NER',\n    iso2: 'NE',\n    name: 'Niger'\n  },\n  {\n    dial: 234,\n    iso3: 'NGA',\n    iso2: 'NG',\n    name: 'Nigeria'\n  },\n  {\n    dial: 683,\n    iso3: 'NIU',\n    iso2: 'NU',\n    name: 'Niue'\n  },\n  {\n    dial: 672,\n    iso3: 'NFK',\n    iso2: 'NF',\n    name: 'Norfolk Island'\n  },\n  {\n    dial: '1-670',\n    iso3: 'MNP',\n    iso2: 'MP',\n    name: 'Northern Mariana Islands'\n  },\n  {\n    dial: 47,\n    iso3: 'NOR',\n    iso2: 'NO',\n    name: 'Norway'\n  },\n  {\n    dial: 968,\n    iso3: 'OMN',\n    iso2: 'OM',\n    name: 'Oman'\n  },\n  {\n    dial: 92,\n    iso3: 'PAK',\n    iso2: 'PK',\n    name: 'Pakistan'\n  },\n  {\n    dial: 680,\n    iso3: 'PLW',\n    iso2: 'PW',\n    name: 'Palau'\n  },\n  {\n    dial: 507,\n    iso3: 'PAN',\n    iso2: 'PA',\n    name: 'Panama'\n  },\n  {\n    dial: 675,\n    iso3: 'PNG',\n    iso2: 'PG',\n    name: 'Papua New Guinea'\n  },\n  {\n    dial: 595,\n    iso3: 'PRY',\n    iso2: 'PY',\n    name: 'Paraguay'\n  },\n  {\n    dial: 51,\n    iso3: 'PER',\n    iso2: 'PE',\n    name: 'Peru'\n  },\n  {\n    dial: 63,\n    iso3: 'PHL',\n    iso2: 'PH',\n    name: 'Philippines'\n  },\n  {\n    dial: 870,\n    iso3: 'PCN',\n    iso2: 'PN',\n    name: 'Pitcairn Islands'\n  },\n  {\n    dial: 48,\n    iso3: 'POL',\n    iso2: 'PL',\n    name: 'Poland'\n  },\n  {\n    dial: 351,\n    iso3: 'PRT',\n    iso2: 'PT',\n    name: 'Portugal'\n  },\n  {\n    dial: 1,\n    iso3: 'PRI',\n    iso2: 'PR',\n    name: 'Puerto Rico'\n  },\n  {\n    dial: 974,\n    iso3: 'QAT',\n    iso2: 'QA',\n    name: 'Qatar'\n  },\n  {\n    dial: 82,\n    iso3: 'KOR',\n    iso2: 'KR',\n    name: 'South Korea'\n  },\n  {\n    dial: 373,\n    iso3: 'MDA',\n    iso2: 'MD',\n    name: 'Moldova'\n  },\n  {\n    dial: 40,\n    iso3: 'ROU',\n    iso2: 'RO',\n    name: 'Romania'\n  },\n  {\n    dial: 7,\n    iso3: 'RUS',\n    iso2: 'RU',\n    name: 'Russia'\n  },\n  {\n    dial: 250,\n    iso3: 'RWA',\n    iso2: 'RW',\n    name: 'Rwanda'\n  },\n  {\n    dial: 262,\n    iso3: 'REU',\n    iso2: 'RE',\n    name: 'Réunion'\n  },\n  {\n    dial: 590,\n    iso3: 'BLM',\n    iso2: 'BL',\n    name: 'St. Barthélemy'\n  },\n  {\n    dial: 290,\n    iso3: 'SHN',\n    iso2: 'SH',\n    name: 'St. Helena'\n  },\n  {\n    dial: '1-869',\n    iso3: 'KNA',\n    iso2: 'KN',\n    name: 'St. Kitts & Nevis'\n  },\n  {\n    dial: '1-758',\n    iso3: 'LCA',\n    iso2: 'LC',\n    name: 'St. Lucia'\n  },\n  {\n    dial: 590,\n    iso3: 'MAF',\n    iso2: 'MF',\n    name: 'St. Martin'\n  },\n  {\n    dial: 508,\n    iso3: 'SPM',\n    iso2: 'PM',\n    name: 'St. Pierre & Miquelon'\n  },\n  {\n    dial: '1-784',\n    iso3: 'VCT',\n    iso2: 'VC',\n    name: 'St. Vincent & Grenadines'\n  },\n  {\n    dial: 685,\n    iso3: 'WSM',\n    iso2: 'WS',\n    name: 'Samoa'\n  },\n  {\n    dial: 378,\n    iso3: 'SMR',\n    iso2: 'SM',\n    name: 'San Marino'\n  },\n  {\n    dial: 239,\n    iso3: 'STP',\n    iso2: 'ST',\n    name: 'São Tomé & Príncipe'\n  },\n  {\n    dial: '',\n    iso3: '',\n    iso2: '',\n    name: ''\n  },\n  {\n    dial: 966,\n    iso3: 'SAU',\n    iso2: 'SA',\n    name: 'Saudi Arabia'\n  },\n  {\n    dial: 221,\n    iso3: 'SEN',\n    iso2: 'SN',\n    name: 'Senegal'\n  },\n  {\n    dial: 381,\n    iso3: 'SRB',\n    iso2: 'RS',\n    name: 'Serbia'\n  },\n  {\n    dial: 248,\n    iso3: 'SYC',\n    iso2: 'SC',\n    name: 'Seychelles'\n  },\n  {\n    dial: 232,\n    iso3: 'SLE',\n    iso2: 'SL',\n    name: 'Sierra Leone'\n  },\n  {\n    dial: 65,\n    iso3: 'SGP',\n    iso2: 'SG',\n    name: 'Singapore'\n  },\n  {\n    dial: '1-721',\n    iso3: 'SXM',\n    iso2: 'SX',\n    name: 'Sint Maarten'\n  },\n  {\n    dial: 421,\n    iso3: 'SVK',\n    iso2: 'SK',\n    name: 'Slovakia'\n  },\n  {\n    dial: 386,\n    iso3: 'SVN',\n    iso2: 'SI',\n    name: 'Slovenia'\n  },\n  {\n    dial: 677,\n    iso3: 'SLB',\n    iso2: 'SB',\n    name: 'Solomon Islands'\n  },\n  {\n    dial: 252,\n    iso3: 'SOM',\n    iso2: 'SO',\n    name: 'Somalia'\n  },\n  {\n    dial: 27,\n    iso3: 'ZAF',\n    iso2: 'ZA',\n    name: 'South Africa'\n  },\n  {\n    dial: 500,\n    iso3: 'SGS',\n    iso2: 'GS',\n    name: 'South Georgia & South Sandwich Islands'\n  },\n  {\n    dial: 211,\n    iso3: 'SSD',\n    iso2: 'SS',\n    name: 'South Sudan'\n  },\n  {\n    dial: 34,\n    iso3: 'ESP',\n    iso2: 'ES',\n    name: 'Spain'\n  },\n  {\n    dial: 94,\n    iso3: 'LKA',\n    iso2: 'LK',\n    name: 'Sri Lanka'\n  },\n  {\n    dial: 970,\n    iso3: 'PSE',\n    iso2: 'PS',\n    name: 'Palestine'\n  },\n  {\n    dial: 249,\n    iso3: 'SDN',\n    iso2: 'SD',\n    name: 'Sudan'\n  },\n  {\n    dial: 597,\n    iso3: 'SUR',\n    iso2: 'SR',\n    name: 'Suriname'\n  },\n  {\n    dial: 47,\n    iso3: 'SJM',\n    iso2: 'SJ',\n    name: 'Svalbard & Jan Mayen'\n  },\n  {\n    dial: 46,\n    iso3: 'SWE',\n    iso2: 'SE',\n    name: 'Sweden'\n  },\n  {\n    dial: 41,\n    iso3: 'CHE',\n    iso2: 'CH',\n    name: 'Switzerland'\n  },\n  {\n    dial: 963,\n    iso3: 'SYR',\n    iso2: 'SY',\n    name: 'Syria'\n  },\n  {\n    dial: 992,\n    iso3: 'TJK',\n    iso2: 'TJ',\n    name: 'Tajikistan'\n  },\n  {\n    dial: 66,\n    iso3: 'THA',\n    iso2: 'TH',\n    name: 'Thailand'\n  },\n  {\n    dial: 389,\n    iso3: 'MKD',\n    iso2: 'MK',\n    name: 'Macedonia'\n  },\n  {\n    dial: 670,\n    iso3: 'TLS',\n    iso2: 'TL',\n    name: 'Timor-Leste'\n  },\n  {\n    dial: 228,\n    iso3: 'TGO',\n    iso2: 'TG',\n    name: 'Togo'\n  },\n  {\n    dial: 690,\n    iso3: 'TKL',\n    iso2: 'TK',\n    name: 'Tokelau'\n  },\n  {\n    dial: 676,\n    iso3: 'TON',\n    iso2: 'TO',\n    name: 'Tonga'\n  },\n  {\n    dial: '1-868',\n    iso3: 'TTO',\n    iso2: 'TT',\n    name: 'Trinidad & Tobago'\n  },\n  {\n    dial: 216,\n    iso3: 'TUN',\n    iso2: 'TN',\n    name: 'Tunisia'\n  },\n  {\n    dial: 90,\n    iso3: 'TUR',\n    iso2: 'TR',\n    name: 'Turkey'\n  },\n  {\n    dial: 993,\n    iso3: 'TKM',\n    iso2: 'TM',\n    name: 'Turkmenistan'\n  },\n  {\n    dial: '1-649',\n    iso3: 'TCA',\n    iso2: 'TC',\n    name: 'Turks & Caicos Islands'\n  },\n  {\n    dial: 688,\n    iso3: 'TUV',\n    iso2: 'TV',\n    name: 'Tuvalu'\n  },\n  {\n    dial: 256,\n    iso3: 'UGA',\n    iso2: 'UG',\n    name: 'Uganda'\n  },\n  {\n    dial: 380,\n    iso3: 'UKR',\n    iso2: 'UA',\n    name: 'Ukraine'\n  },\n  {\n    dial: 971,\n    iso3: 'ARE',\n    iso2: 'AE',\n    name: 'United Arab Emirates'\n  },\n  {\n    dial: 44,\n    iso3: 'GBR',\n    iso2: 'GB',\n    name: 'UK'\n  },\n  {\n    dial: 255,\n    iso3: 'TZA',\n    iso2: 'TZ',\n    name: 'Tanzania'\n  },\n  {\n    dial: '',\n    iso3: 'UMI',\n    iso2: 'UM',\n    name: 'U.S. Outlying Islands'\n  },\n  {\n    dial: '1-340',\n    iso3: 'VIR',\n    iso2: 'VI',\n    name: 'U.S. Virgin Islands'\n  },\n  {\n    dial: 1,\n    iso3: 'USA',\n    iso2: 'US',\n    name: 'US'\n  },\n  {\n    dial: 598,\n    iso3: 'URY',\n    iso2: 'UY',\n    name: 'Uruguay'\n  },\n  {\n    dial: 998,\n    iso3: 'UZB',\n    iso2: 'UZ',\n    name: 'Uzbekistan'\n  },\n  {\n    dial: 678,\n    iso3: 'VUT',\n    iso2: 'VU',\n    name: 'Vanuatu'\n  },\n  {\n    dial: 58,\n    iso3: 'VEN',\n    iso2: 'VE',\n    name: 'Venezuela'\n  },\n  {\n    dial: 84,\n    iso3: 'VNM',\n    iso2: 'VN',\n    name: 'Vietnam'\n  },\n  {\n    dial: 681,\n    iso3: 'WLF',\n    iso2: 'WF',\n    name: 'Wallis & Futuna'\n  },\n  {\n    dial: 212,\n    iso3: 'ESH',\n    iso2: 'EH',\n    name: 'Western Sahara'\n  },\n  {\n    dial: 967,\n    iso3: 'YEM',\n    iso2: 'YE',\n    name: 'Yemen'\n  },\n  {\n    dial: 260,\n    iso3: 'ZMB',\n    iso2: 'ZM',\n    name: 'Zambia'\n  },\n  {\n    dial: 263,\n    iso3: 'ZWE',\n    iso2: 'ZW',\n    name: 'Zimbabwe'\n  },\n  {\n    dial: 358,\n    iso3: 'ALA',\n    iso2: 'AX',\n    name: 'Åland Islands'\n  }\n]\n","import { Component, Input } from '@angular/core'\nimport { NgClass, NgStyle } from '@angular/common'\n\n@Component({\n  selector: 'afd-results-list-item-segment',\n  imports: [NgClass, NgStyle],\n  template: `<span [ngClass]=\"classes()\" [ngStyle]=\"isMatch ? matchStyle : {}\">{{ segment }}</span>`,\n  styles: `\n    :host {\n      --afd-results-list-item-match-position-color: var(--afd-results-color);\n      --afd-results-list-item-match-position-background-color: #fcfcfc;\n      --afd-results-list-item-match-position-font-family: var(\n        --afd-results-font-family\n      );\n      --afd-results-list-item-match-position-font-size: inherit;\n      --afd-results-list-item-match-position-font-weight: strong;\n      --afd-results-list-item-match-position-font-style: normal;\n    }\n    .afd-results-list-item-match-position {\n      color: var(--afd-results-list-item-match-position-color);\n      background-color: var(\n        --afd-results-list-item-match-position-background-color\n      );\n      font-family: var(--afd-results-list-item-match-position-font-family),\n        sans-serif;\n      font-size: var(--afd-results-list-item-match-position-font-size);\n      font-weight: var(--afd-results-list-item-match-position-font-weight);\n      font-style: var(--afd-results-list-item-match-position-font-style);\n    }\n  `\n})\nexport class AfdResultsListItemSegmentComponent {\n  @Input() segment: string\n  @Input() isMatch: boolean\n  @Input() matchStyle: NgStyle['ngStyle'] = {}\n\n  classes() {\n    return this.isMatch ? 'afd-results-list-item-match-position' : ''\n  }\n}\n","import { Input, Component, computed, HostListener, OnInit } from '@angular/core'\nimport { NgClass, NgForOf, NgStyle } from '@angular/common'\nimport { LookupResultItem } from '../../types/LookupResultItem'\nimport { AFDTypeaheadService } from '../../services/afd.typeahead.service'\nimport { AfdResultsListItemSegmentComponent } from './results.list.item.segment.component'\n\n@Component({\n  selector: 'afd-results-list-item',\n  templateUrl: './results.list.item.component.html',\n  styleUrls: ['./results.list.item.component.css'],\n  imports: [NgClass, AfdResultsListItemSegmentComponent, NgForOf, NgStyle],\n  standalone: true\n})\nexport class AFDResultsListItemComponent implements OnInit {\n  private _listItemStyle: NgStyle['ngStyle']\n  private _fewItemsStyle: NgStyle['ngStyle']\n\n  @Input() item: LookupResultItem\n  @Input() index: number\n  @Input() class = ''\n  @Input() highlightedClass = ''\n\n  @Input()\n  get listItemStyle(): NgStyle['ngStyle'] {\n    return {\n      ...this._listItemStyle,\n      ...(this.item.key === 'manual' ? this._fewItemsStyle : {})\n    }\n  }\n  set listItemStyle(value: NgStyle['ngStyle']) {\n    this._listItemStyle = value\n  }\n  @Input()\n  set fewItemsStyle(value: NgStyle['ngStyle']) {\n    this._fewItemsStyle = value\n  }\n  @Input() matchPositionsStyle: NgStyle['ngStyle'] = {}\n\n  segments: { segment: string; isMatch: boolean }[] = []\n\n  private _highlightedClass = computed(() =>\n    this.afdTypeaheadService.highlightedIndex() === this.index\n      ? `afd-results-list-item-highlighted ${this.highlightedClass}`\n      : ''\n  )\n  fullClass = computed(() =>\n    `afd-results-list-item ${this.class} ${this._highlightedClass()} ${this.item.key === 'manual' ? 'afd-results-list-item-few-results' : ''}`.trim()\n  )\n\n  constructor(private afdTypeaheadService: AFDTypeaheadService) {}\n\n  ngOnInit() {\n    const { matchPositions, list } = this.item\n    if (!matchPositions || matchPositions.length === 0) {\n      this.segments.push({ isMatch: false, segment: list })\n      return\n    }\n    let lastSlice = 0\n    matchPositions.map((matchPosition) => {\n      const [start, end] = matchPosition\n      if (start === lastSlice) {\n        this.segments.push({\n          segment: list.slice(lastSlice, end),\n          isMatch: true\n        })\n      } else {\n        this.segments.push({\n          segment: list.slice(lastSlice, start),\n          isMatch: false\n        })\n        this.segments.push({ segment: list.slice(start, end), isMatch: true })\n      }\n      lastSlice = end\n    })\n    this.segments.push({ segment: list.slice(lastSlice), isMatch: false })\n  }\n\n  @HostListener('focusin')\n  onFocus() {\n    this.afdTypeaheadService.resultHasFocus.set(true)\n  }\n\n  @HostListener('blur')\n  onBlur() {\n    // this.afdTypeaheadService.resultHasFocus.set(false)\n  }\n}\n","<li [ngStyle]=\"listItemStyle\" [ngClass]=\"fullClass()\">\n  <afd-results-list-item-segment\n    *ngFor=\"let segment of segments\"\n    [isMatch]=\"segment.isMatch\"\n    [segment]=\"segment.segment\"\n    [matchStyle]=\"matchPositionsStyle\"\n  >\n  </afd-results-list-item-segment>\n</li>\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  computed,\n  inject,\n  Signal,\n  OnInit\n} from '@angular/core'\nimport { LookupResultItem } from '../../types/LookupResultItem'\nimport { NgForOf, NgStyle, CommonModule } from '@angular/common'\nimport { AFDResultsListItemComponent } from './results.list.item.component'\nimport { AFDTypeaheadService } from '../../services/afd.typeahead.service'\nimport { ViewEncapsulation } from '@angular/core'\n\n@Component({\n  selector: 'afd-results-list',\n  imports: [NgForOf, CommonModule, AFDResultsListItemComponent],\n  templateUrl: 'results.list.component.html',\n  styleUrl: 'results.list.component.css',\n  standalone: true,\n  encapsulation: ViewEncapsulation.Emulated\n})\nexport class AFDResultsListComponent {\n  private _listStyle: NgStyle['ngStyle'] = {}\n  private _listItemStyle: NgStyle['ngStyle'] = {}\n  private _listClass = 'afd-results-list '\n  private _listItemClass = 'afd-results-list-item '\n  private _highlightedIndex = -1\n\n  private afdTypeaheadService = inject(AFDTypeaheadService)\n\n  public visible = computed(\n    () =>\n      this.afdTypeaheadService.lookupResults().length > 0 &&\n      (this.afdTypeaheadService.inputHasFocus() ||\n        this.afdTypeaheadService.resultHasFocus())\n  )\n\n  @Input() results: Signal<LookupResultItem[]>\n\n  @Input() debug = false\n\n  @Input()\n  get listStyle(): NgStyle['ngStyle'] {\n    return { width: '300px', ...this._listStyle }\n  }\n  set listStyle(value: NgStyle['ngStyle']) {\n    this._listStyle = value\n  }\n  @Input()\n  get listClass(): string {\n    return this._listClass\n  }\n  set listClass(value: string) {\n    this._listClass = `afd-results-list ${value}`.trim()\n  }\n  @Input()\n  get listItemStyle(): NgStyle['ngStyle'] {\n    return this._listItemStyle\n  }\n  set listItemStyle(value: NgStyle['ngStyle']) {\n    this._listItemStyle = value\n  }\n  @Input() matchPositionsStyle: NgStyle['ngStyle'] = {}\n\n  @Output() resultSelected = new EventEmitter<LookupResultItem>()\n\n  onItemMouseEnter(index: number) {\n    this.afdTypeaheadService.highlightedIndex.set(index)\n  }\n\n  onItemClick() {\n    this.resultSelected.emit()\n  }\n\n  protected readonly AFDTypeaheadService = AFDTypeaheadService\n}\n","<div *ngIf=\"visible() || debug\" style=\"position: relative\">\n  <ul [ngStyle]=\"listStyle\" [ngClass]=\"listClass\">\n    <afd-results-list-item\n      *ngFor=\"let result of results(); let i = index\"\n      [item]=\"result\"\n      [index]=\"i\"\n      (mousedown)=\"onItemClick()\"\n      (mouseenter)=\"onItemMouseEnter(i)\"\n      [ngStyle]=\"listItemStyle\"\n      [matchPositionsStyle]=\"matchPositionsStyle\"\n    >\n    </afd-results-list-item>\n  </ul>\n</div>\n","import {\n  ComponentRef,\n  Directive,\n  effect,\n  ElementRef,\n  HostListener,\n  inject,\n  Injector,\n  Input,\n  ViewContainerRef\n} from '@angular/core'\nimport { AFDResultsListComponent } from '../../components/result/results.list.component'\nimport { AFDTypeaheadService } from '../../services/afd.typeahead.service'\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay'\nimport { ComponentPortal } from '@angular/cdk/portal'\n\n@Directive({\n  selector: 'input[afdTypeahead]',\n  standalone: true\n})\nexport class AfdTypeaheadDirective {\n  @Input() afdTypeahead: string\n\n  private overlay = inject(Overlay)\n  private viewContainerRef = inject(ViewContainerRef)\n  private el = inject(ElementRef)\n  private injector = inject(Injector)\n  private afdTypeaheadService = inject(AFDTypeaheadService)\n\n  private overlayRef: OverlayRef | null = null\n\n  private resultsComponentRef: ComponentRef<AFDResultsListComponent>\n\n  @HostListener('keyup', ['$event'])\n  onKeyUp(event: KeyboardEvent) {\n    const target = event.target as HTMLInputElement\n\n    const resultCount = this.afdTypeaheadService.lookupResults().length\n\n    if (target) {\n      switch (event.key) {\n        case 'ArrowUp':\n          if (!resultCount) return\n          this.afdTypeaheadService.highlightedIndex.update((value) =>\n            value === 0 ? resultCount - 1 : value - 1\n          )\n          break\n        case 'ArrowDown':\n          if (!resultCount) return\n          this.afdTypeaheadService.highlightedIndex.update((value) =>\n            value === resultCount - 1 ? 0 : value + 1\n          )\n          break\n        case 'ArrowLeft':\n        case 'ArrowRight':\n          return\n        case 'Enter':\n          this.handleSelectAddress()\n          break\n        case 'Escape':\n          this.afdTypeaheadService.resetResultsList()\n          break\n        default:\n          this.afdTypeaheadService.lookupAddress(target.value)\n          this.showOverlay()\n      }\n    } else {\n      console.error(\n        '`afdTypeahead` is being used on an element that is not an input, it can only be used on inputs'\n      )\n    }\n  }\n\n  @HostListener('focus')\n  onFocus() {\n    this.afdTypeaheadService.inputHasFocus.set(true)\n    this.showOverlay()\n  }\n\n  @HostListener('blur')\n  onBlur() {\n    // this.afdTypeaheadService.inputHasFocus.set(false)\n    this.hideOverlay()\n  }\n\n  @HostListener('click')\n  onClick() {\n    this.afdTypeaheadService.inputHasFocus.set(true)\n    this.showOverlay()\n  }\n\n  showOverlay() {\n    const { resultsListStyle, resultsItemStyle } =\n      this.afdTypeaheadService.options\n    if (this.overlayRef && this.overlayRef.hasAttached()) {\n      return\n    }\n\n    if (!this.overlayRef) {\n      this.overlayRef = this.createOverlayRef()\n    }\n    const portal = new ComponentPortal(\n      AFDResultsListComponent,\n      this.viewContainerRef,\n      this.injector\n    )\n    this.resultsComponentRef = this.overlayRef.attach(portal)\n\n    this.resultsComponentRef.instance.resultSelected.subscribe(() => {\n      this.handleSelectAddress()\n    })\n    this.resultsComponentRef.instance.listStyle = resultsListStyle\n    this.resultsComponentRef.instance.listItemStyle = resultsItemStyle\n    this.resultsComponentRef.instance.matchPositionsStyle =\n      this.afdTypeaheadService.options.matchPositionsStyle\n    this.resultsComponentRef.instance.results =\n      this.afdTypeaheadService.lookupResults\n  }\n\n  hideOverlay() {\n    // if (this.overlayRef && this.overlayRef.hasAttached()) {\n    //   this.overlayRef.detach()\n    //   this.resultsComponentRef = null\n    // }\n  }\n\n  private createOverlayRef(): OverlayRef {\n    const positionStrategy = this.overlay\n      .position()\n      .flexibleConnectedTo(this.el)\n      .withPositions([\n        {\n          originX: 'start',\n          originY: 'bottom',\n          overlayX: 'start',\n          overlayY: 'top',\n          offsetY: 2\n        },\n        {\n          originX: 'start',\n          originY: 'top',\n          overlayX: 'start',\n          overlayY: 'bottom',\n          offsetY: -2\n        }\n      ])\n      .withPush(false)\n\n    return this.overlay.create({\n      positionStrategy,\n      scrollStrategy: this.overlay.scrollStrategies.reposition(),\n      hasBackdrop: false\n    })\n  }\n\n  handleSelectAddress() {\n    const resultCount = this.afdTypeaheadService.lookupResults().length\n    const { afterClearTypeahead } = this.afdTypeaheadService.options\n    if (afterClearTypeahead) {\n      this.el.nativeElement.value = ''\n    }\n    if (!resultCount) return\n    this.afdTypeaheadService.retrieveAddress()\n  }\n}\n","import { Directive, Input, OnInit, Signal } from '@angular/core'\nimport { AFDTypeaheadService } from '../../services/afd.typeahead.service'\nimport { AFDTypeaheadOptions } from '../../types/AFDOptions'\nimport { CountryISO } from '../../types/CountryISO'\n\n@Directive({\n  selector: '[afdTypeaheadForm]',\n  standalone: true,\n  providers: [AFDTypeaheadService],\n  exportAs: 'afdTypeaheadForm'\n})\nexport class AfdTypeaheadFormDirective implements OnInit {\n  @Input() afdTypeaheadForm: AFDTypeaheadOptions\n  @Input()\n  set country(country: CountryISO) {\n    this.afdTypeaheadService.country = country\n  }\n\n  private typeaheadVisible: Signal<boolean>\n\n  constructor(private afdTypeaheadService: AFDTypeaheadService) {}\n\n  get countries() {\n    return this.afdTypeaheadService.countries\n  }\n\n  ngOnInit() {\n    this.afdTypeaheadService.options = this.afdTypeaheadForm\n    this.typeaheadVisible = this.afdTypeaheadService.typeaheadVisible\n\n    this.afdTypeaheadService.init()\n  }\n}\n","import {\n  computed,\n  Directive,\n  effect,\n  ElementRef,\n  forwardRef,\n  inject,\n  Input,\n  OnInit,\n  Renderer2\n} from '@angular/core'\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'\nimport { AFDTypeaheadService } from '../../services/afd.typeahead.service'\n\n@Directive({\n  selector: 'input[afdAddressFieldInput]',\n  standalone: true,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => AfdAddressFieldInputDirective),\n      multi: true\n    }\n  ]\n})\nexport class AfdAddressFieldInputDirective\n  implements ControlValueAccessor, OnInit\n{\n  @Input('afdAddressFieldInput') fieldName: string\n\n  private onChangeFn: (value: string | null) => void = () => {}\n  private onTouchedFn: () => void = () => {}\n\n  private afdService = inject(AFDTypeaheadService)\n  private renderer = inject(Renderer2)\n  private hostEl = inject(ElementRef<HTMLElement>)\n\n  private inputElement: HTMLInputElement | null = null\n\n  private value = computed<string | undefined>(() => {\n    const selectedAddress = this.afdService.selectedAddress()\n    if (selectedAddress && this.fieldName) {\n      return (selectedAddress as Record<string, string>)[this.fieldName] || ''\n    }\n    return undefined\n  })\n\n  constructor() {\n    effect(() => {\n      this.writeValue(this.value())\n    })\n  }\n\n  ngOnInit() {\n    this.inputElement = this.hostEl.nativeElement as HTMLInputElement\n  }\n\n  writeValue(value: string | null): void {\n    if (this.inputElement) {\n      this.inputElement.value = value ?? ''\n    }\n  }\n\n  registerOnChange(fn: (value: string | null) => void): void {\n    this.onChangeFn = fn\n    if (this.inputElement) {\n      this.inputElement.addEventListener('input', (event) => {\n        const inputValue = (event.target as HTMLInputElement).value\n        this.onChangeFn(inputValue)\n      })\n    }\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouchedFn = fn\n    if (this.inputElement) {\n      this.inputElement.addEventListener('blur', () => {\n        this.onTouchedFn()\n      })\n    }\n  }\n\n  setDisabledState?(isDisabled: boolean): void {\n    if (this.inputElement) {\n      this.inputElement.disabled = isDisabled\n    }\n  }\n}\n","import { Component } from '@angular/core'\nimport { AfdTypeaheadDirective } from '../../directives/typeahead/afd.typeahead.directive'\n\n@Component({\n  selector: 'afd-typeahead-component',\n  templateUrl: 'typeahead.component.html',\n  standalone: true,\n  imports: [AfdTypeaheadDirective],\n  styleUrls: ['typeahead.component.css']\n})\nexport class AFDTypeaheadComponent {}\n","<div>\n  <input type=\"text\" afdTypeahead class=\"afd-typeahead-field\" />\n</div>\n","/*\n * Public API Surface of pce-angular\n */\n\nexport * from './lib/pce-angular.module'\nexport * from './lib/services/afd.typeahead.service'\nexport * from './lib/data/countries'\nexport * from './lib/directives/afd.account.directive'\nexport * from './lib/directives/afd.card.directive'\nexport * from './lib/directives/afd.countries.directive'\nexport * from './lib/directives/afd.email.directive'\nexport * from './lib/directives/afd.phone.directive'\nexport * from './lib/directives/afd.result.directive'\nexport * from './lib/directives/typeahead/afd.typeahead.directive'\nexport * from './lib/directives/typeahead/afd.typeahead.form.directive'\nexport * from './lib/directives/typeahead/afd.address.field.input.directive'\nexport * from './lib/directives/typeahead/afd.reverse-geocode.directive'\nexport * from './lib/components/typeahead/typeahead.component'\nexport * from './lib/components/typeahead/manual-input.component'\nexport * from './lib/components/typeahead/search-again.component'\nexport * from './lib/components/typeahead/manual-input-address-search.component'\n\n// Types\nexport * from './lib/types/AFDOptions'\nexport type { CountryISO } from './lib/types/CountryISO'\nexport type {\n  PCELookupItem,\n  PCERetrieveItem,\n  PCEEmailItem,\n  PCECardItem,\n  PCEAccountItem,\n  PCEResponseItem\n} from './lib/types/PCELookup'\nexport type { default as PCEResponse } from './lib/types/PCELookup'\n\n// Defaults\nexport * from './lib/data/defaults/options/typeahead.defaults'\n\n// Legacy aliases for backward compatibility with pce-angular-material\nexport { AFDTypeaheadService as AfdPceService } from './lib/services/afd.typeahead.service'\nexport type { default as AfdLookupResult } from './lib/types/PCELookup'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.AFDTypeaheadService","i1.AFDEmailService","i1.AFDPhoneService","i1.AFDCardService","i1.AFDAccountService"],"mappings":"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"}