{"version":3,"file":"afd-software-pce-angular.mjs","sources":["../../../../projects/afd-software/pce-angular/src/lib/services/afd.pce.service.ts","../../../../projects/afd-software/pce-angular/src/lib/directives/afd.result.directive.ts","../../../../projects/afd-software/pce-angular/src/lib/directives/afd.email.directive.ts","../../../../projects/afd-software/pce-angular/src/lib/data/countries.ts","../../../../projects/afd-software/pce-angular/src/lib/directives/afd.phone.directive.ts","../../../../projects/afd-software/pce-angular/src/lib/directives/afd.card.directive.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/afd.reverse-geocode.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/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/address-search.component.ts","../../../../projects/afd-software/pce-angular/src/lib/components/typeahead/address-search.component.html","../../../../projects/afd-software/pce-angular/src/lib/pce-angular.module.ts","../../../../projects/afd-software/pce-angular/src/public_api.ts","../../../../projects/afd-software/pce-angular/src/afd-software-pce-angular.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {HttpClient, HttpHeaders, HttpParams, HttpResponse} from '@angular/common/http';\nimport {mergeMap} from 'rxjs/operators';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport * as valid from 'card-validator';\nimport {Subject} from 'rxjs';\n\n// main service for handling PCE lookups\n\n// what a lookup result should look like\nexport interface AfdLookupResult {\n  ErrorText: string;\n  Item?: any[];\n  Result: string;\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AfdPceService {\n\n  // Settings\n  settings = {\n    afdPceUrl: <string>'https://pce.afd.co.uk/afddata.pce',\n    afdSerial: <string>'',\n    afdPassword: <string>'',\n    afdID: <string>'',\n    afdToken: <string>'',\n    defaultCountry: <string | null>null,\n    typeahead: {\n      maxItems: <string | number>5,\n      pushUp: <boolean | string[]>false,\n      placeholder: <string>'Search for Address',\n      afterHideTypeahead: <boolean>false,\n      searchAgain: <boolean>true,\n      afterClearTypeahead: <boolean>true,\n      beforeHideResults: <boolean>false,\n      notEmptyShowResults: <boolean>false,\n      fewResultsManualInput: <boolean>true,\n      fewResultsManualInputText: 'Can\\'t see your address? Enter it manually',\n      noResultsManualInputText: 'No results found, enter manually',\n      hideEmpties: <boolean>false,\n      containers: [],  // todo\n      retrieveFields: 'standard',\n      availableCountries: [],\n      minLength: <number>2,\n      matchPositions: <boolean>false,\n      postcodeFirst: <boolean>true,\n      hideForCountries: [], // todo\n      showForCountries: [], // todo\n      regionMap: <null | boolean>null, // todo\n      regionAttribute: 'value', // todo\n      manualInputText: 'Input Address Manually',\n      searchAgainText: 'Search Again',\n      addressSearchText: 'Address Search',\n      useAlias: false\n    },\n    email: {\n      invalidRegex: 'Please input a valid email address',\n      invalidPce: null,\n      required: 'Email is a required field'\n    },\n    phone: {\n      invalidSyntax: 'Please input a valid phone number',\n      invalidPce: null,\n    },\n    messages: {\n      phone: {\n        invalidRegex: 'Please input a valid phone number',\n        invalidPce: null,\n        required: 'Phone number is a required field'\n      },\n      card: {\n        invalidCardRegex: 'Please input a valid card number',\n        invalidExpiryRegex: 'Please input a valid expiry date',\n        invalidPce: 'Incorrect card number or expiry date',\n        required: 'Card Number is a required field',\n        expiryRequired: 'Expiry Date is  a required field'\n      },\n      account: {\n        invalidAccountRegex: 'Please input a valid account number',\n        invalidSortRegex: 'Please input a valid sort code',\n        invalidPce: null,\n        required: 'Account Number is a required field',\n        sortRequired: 'Sort Code is a required field'\n      },\n      email: {\n        invalidRegex: 'Please input a valid email address',\n        invalidPce: null,\n        required: 'Email is a required field'\n      }\n    }\n  };\n\n  // visibility\n  typeaheadVisibility = {\n    control: true,\n    searchAgain: false,\n    manualInput: true,\n    addressSearch: false\n  };\n\n  uniqueId = Math.floor(Math.random() * 100000).toString();\n  typeAheadTimer;\n  countries = [];\n  resultList = [];\n\n  selectedCountry = null;\n  selectedLanguage = null;\n  phoneCountry = null;\n\n  iti = {};\n\n  // Control Subjects\n  controls = {\n    typeahead: {}\n  };\n\n  // Email Info\n  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  emailInfoSource = new BehaviorSubject(this.emailInfoDefaults);\n  emailInfo = this.emailInfoSource.asObservable();\n\n  // Phone Info\n  phoneInfoDefaults = {\n    pceValid: false,\n    syntaxValid: false,\n    regexValid: false,\n    country: {\n      name: null,\n      iso2: null,\n      iso3: null\n    },\n    isMobile: false,\n    isLandLine: false,\n    numberType: '',\n    phoneNumber: '',\n    phoneNumberE164: '',\n    phoneNumberInternational: '',\n    phoneNumberNational: '',\n    phoneNumberRfc3966: ''\n  };\n  phoneInfoSource = new BehaviorSubject(this.phoneInfoDefaults);\n  phoneInfo = this.phoneInfoSource.asObservable();\n\n  // Card Info\n  cardInfoDefaults = {\n    pceValid: false,\n    cardRegexValid: false,\n    expiryRegexValid: false,\n    cardTypeNice: null,\n    cardType: null,\n    cardNumber: '',\n    expiryDate: ''\n  };\n  cardInfoSource = new BehaviorSubject(this.cardInfoDefaults);\n  cardInfo = this.cardInfoSource.asObservable();\n\n  // Account Info\n  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  accountInfoSource = new BehaviorSubject(this.accountInfoDefaults);\n  accountInfo = this.accountInfoSource.asObservable();\n\n  typeAheadString = '';\n  listResult = null;\n  lookupResults = {};\n  typeAheadResults = [];\n  retrieveResult = {};\n  selectedResult: string;\n\n  // Masks\n  phoneMask = {mask: this.phoneMaskFunction, guide: false};\n  cardMask = {mask: this.cardMaskFunction, guide: false};\n  accountMask = {mask: [/\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/], guide: false};\n  sortMask = {mask: [/\\d/, /\\d/, '-', /\\d/, /\\d/, '-', /\\d/, /\\d/], guide: false};\n\n  // manage visibility for results fields\n  allResultFieldVisibility = new BehaviorSubject(true);\n\n  constructor(\n    private http: HttpClient\n  ) {\n  }\n\n  // get the countries for WA control\n\n  getCountries(defaultCountry = null) {\n\n    let params = new HttpParams();\n    params = this.setAuthenticationCredentials(params);\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    const headers = new HttpHeaders({\n      'Content-Type': 'text/plain'\n    });\n\n    return this.http.get(this.settings.afdPceUrl, {\n      params: params,\n      headers: headers,\n      observe: 'response'\n    });\n\n  }\n\n  // normal lookup\n  pceLookup(lookup, data?) {\n\n    if (typeof data === 'undefined') {\n      data = 'address';\n    }\n\n    let params = new HttpParams();\n    params = this.setAuthenticationCredentials(params);\n    params = params.set('lookup', lookup);\n    params = params.set('data', data);\n    params = params.set('format', 'json');\n    params = params.set('task', 'fastfindv4');\n    params = params.set('fields', this.settings.typeahead.postcodeFirst ? 'list' : 'fflist');\n    params = params.set('maxquantity', this.settings.typeahead.maxItems.toString());\n    params = params.set('uniqueid', this.uniqueId);\n    params = params.set('allpc', '1');\n\n    if (this.settings.typeahead.matchPositions) {\n      params = params.set('matchPositions', '1');\n    }\n\n    if (this.selectedCountry) {\n      params = params.set('countryiso', this.selectedCountry.iso);\n    }\n    if (this.selectedLanguage) {\n      params = params.set('language', this.selectedLanguage);\n    }\n\n    if (this.settings.typeahead.useAlias) {\n      params = params.set('usealias', '1');\n    }\n\n    const headers = new HttpHeaders({\n      'Content-Type': 'text/plain'\n    });\n\n    return this.http.get<AfdLookupResult>(this.settings.afdPceUrl, {\n      params: params,\n      headers: headers,\n      observe: 'response'\n    });\n  }\n\n  // normal retrieve\n  pceRetrieve(key, data?) {\n\n    if (typeof data === 'undefined') {\n      data = 'address';\n    }\n\n    let params = new HttpParams();\n    params = this.setAuthenticationCredentials(params);\n    params = params.set('key', key);\n    params = params.set('data', data);\n    params = params.set('format', 'json');\n    params = params.set('task', 'retrieve');\n    params = params.set('fields', this.settings.typeahead.retrieveFields);\n    params = params.set('uniqueid', this.uniqueId);\n\n    if (this.selectedCountry !== null) {\n      params = params.set('countryiso', this.selectedCountry.iso);\n    }\n    if (this.selectedLanguage) {\n      params = params.set('language', this.selectedLanguage);\n    }\n\n    if (this.settings.typeahead.useAlias) {\n      params = params.set('usealias', '1');\n    }\n\n    const headers = new HttpHeaders({\n      'Content-Type': 'text/plain'\n    });\n\n    return this.http.get(this.settings.afdPceUrl, {\n      params: params,\n      observe: 'response',\n      headers: headers\n    });\n  }\n\n  reverseGeocode(lat, lng) {\n\n    let params = new HttpParams();\n    params = this.setAuthenticationCredentials(params);\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    const headers = new HttpHeaders({\n      'Content-Type': 'text/plain'\n    });\n\n    const options = {\n      params: params,\n      responseType: 'text' as 'text',\n      headers: headers\n    };\n\n    return this.http.get(this.settings.afdPceUrl, options);\n\n  }\n\n  // email validation\n  validateEmail(email) {\n\n    let params = new HttpParams();\n    params = this.setAuthenticationCredentials(params);\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    const headers = new HttpHeaders({\n      'Content-Type': 'text/plain'\n    });\n\n    return this.http.get(this.settings.afdPceUrl, {\n      params: params,\n      observe: 'response',\n      headers: headers\n    });\n\n  }\n\n  // phone validation\n  validatePhone(phone) {\n    let params = new HttpParams();\n    params = this.setAuthenticationCredentials(params);\n    params = params.set('phone', encodeURIComponent('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', 'gbr');\n\n    if (this.phoneCountry !== null) {\n      params = params.set('countryiso', this.phoneCountry.iso3);\n    }\n\n    return this.http.get(this.settings.afdPceUrl, {\n      params: params,\n      observe: 'response'\n    });\n\n  }\n\n  // get phone business information\n  searchPhone(phone) {\n\n    let params = new HttpParams();\n    params = this.setAuthenticationCredentials(params);\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.settings.afdPceUrl, {\n      params: params,\n      observe: 'response'\n    });\n\n  }\n\n  // card validation\n  validateCard(cardNumber, expiryDate) {\n\n    let params = new HttpParams();\n    params = this.setAuthenticationCredentials(params);\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    const options = {\n      params: params,\n      responseType: 'text' as 'text'\n    };\n\n    return this.http.get(this.settings.afdPceUrl, options);\n\n  }\n\n  // card validation\n  validateAccount(accountNumber, sortCode) {\n\n    let params = new HttpParams();\n    params = this.setAuthenticationCredentials(params);\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    const options = {\n      params: params,\n      responseType: 'text' as 'text'\n    };\n\n    return this.http.get(this.settings.afdPceUrl, options);\n\n  }\n\n  typeAheadSelected(result, data?) {\n\n    if (typeof data === 'undefined') {\n      data = 'address';\n    }\n\n    this.typeAheadString = '';\n\n    const subject$ = new BehaviorSubject(null);\n\n    this.pceRetrieve(result.Key, data).subscribe((res) => {\n\n      const event = new CustomEvent(\n        'afdRetrieveComplete',\n        {detail: res}\n      );\n      document.dispatchEvent(event);\n\n      subject$.next(res);\n\n      this.typeAheadResults = [];\n\n    });\n\n    return subject$;\n\n  }\n\n  refreshUniqueId() {\n    this.uniqueId = Math.floor(Math.random() * 100000).toString();\n  }\n\n  // waits to see if typing has stopped in typeahead for more than 10 seconds, if so a new uniqueid is generated\n  manageUniqueId(value) {\n    // if element is empty create new unique id\n    if (value.length < 1) {\n      this.refreshUniqueId();\n    }\n// if user stops typing for 10 seconds create new unique id\n    if (this.typeAheadTimer) {\n      window.clearTimeout(this.typeAheadTimer);\n    }\n    this.typeAheadTimer = window.setTimeout(() => {\n      this.typeAheadTimer = null;\n      this.refreshUniqueId();\n    }, 10000);\n  }\n\n  // Mask Functions\n  phoneMaskFunction(input) {\n\n    const output = [/[+/\\d/]/];\n\n    for (let i = 0; i < input.length; i++) {\n      output.push(/\\d/);\n    }\n\n    return output;\n  }\n\n  cardMaskFunction(input) {\n\n    const cardValid = valid.number(input);\n\n    if (cardValid.card) {\n\n      const totalLength = cardValid.card.lengths[cardValid.card.lengths.length - 1] + 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\n        if (actualPositions.indexOf(output.length) > -1) {\n          output.push(' ');\n        } else {\n          output.push(/\\d/);\n        }\n\n      }\n      return output;\n\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  registerControl(type, identifier?) {\n\n    if (typeof identifier === 'undefined') {\n      identifier = 'def';\n    }\n\n    this.controls[type][identifier] = new Subject();\n\n    return this.controls[type][identifier];\n\n  }\n\n  setAuthenticationCredentials(params) {\n    if (this.settings.afdID.length > 0) {\n      params = params.set('id', this.settings.afdID);\n      params = params.set('token', this.settings.afdToken);\n    } else {\n      params = params.set('serial', this.settings.afdSerial);\n      params = params.set('password', this.settings.afdPassword);\n    }\n    return params;\n  }\n}\n","import {Directive, HostListener, Input, ElementRef, OnInit, Renderer2} from '@angular/core';\nimport {AfdPceService} from '../services/afd.pce.service';\nimport {DomUtil} from 'leaflet';\nimport remove = DomUtil.remove;\n\n@Directive({\n  selector: '[afdResult]'\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\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 afdPceService: AfdPceService\n  ) {\n    this.element = el.nativeElement;\n  }\n\n  ngOnInit() {\n\n    if (typeof this.afdPceService.controls['typeahead'][this.controlId] !== 'undefined') {\n      // this is where the field listens for results from the control, it is a BehaviourSubject\n      this.$control = this.afdPceService.controls['typeahead'][this.controlId];\n    } else {\n      throw new Error('The field `' + this.field + '` was initialised to register against the main control of ID `'\n        + this.controlId\n        + '` however this control was not found.');\n    }\n    console.log(this.$control);\n    // wait for results from the typeahead control\n    this.$control.subscribe(res => {\n      this.handleRetrieve(res);\n    });\n\n    this.afdPceService.allResultFieldVisibility.subscribe(value => {\n      this.visible = value;\n      this.refreshVisibility();\n    });\n\n    this.inputElement = this.element.tagName === 'INPUT' ? this.element : this.element.querySelector('input');\n\n    // handle initial visibility settings\n    if (this.afdPceService.settings.typeahead.beforeHideResults) {\n\n      // if not blank and not empty show results is true\n      if (this.afdPceService.settings.typeahead.notEmptyShowResults && this.inputElement.val.length > 0) {\n        this.visible = true;\n      } else {\n        this.visible = false;\n      }\n\n    }\n\n    this.refreshVisibility();\n\n  }\n\n  handleRetrieve(res) {\n\n    const pushUpActivated: boolean|string[] = this.afdPceService.settings.typeahead.pushUp;\n\n    // Handle pushup\n    if (!pushUpActivated) {\n      // no pushup\n      (this.inputElement as HTMLInputElement).value = res.body.Item[0][this.field];\n    } else if (Array.isArray(pushUpActivated)) {\n      // array based pushup\n      (this.inputElement as HTMLInputElement).value = this.handlePushUp(pushUpActivated, res);\n    } else {\n      // simple pushup\n      (this.inputElement as HTMLInputElement).value = this.handlePushUp(['Property', 'Street', 'Locality'], res);\n    }\n\n    this.visible = (!(this.inputElement.value.length < 1 && this.afdPceService.settings.typeahead.hideEmpties));\n    this.refreshVisibility();\n\n  }\n\n  handlePushUp(fields: Array<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 (let i = 0; i < fields.length; i++) {\n      if (result[fields[i]].length > 0) {\n        populatedFields.push(result[fields[i]]);\n      }\n    }\n\n    if (typeof populatedFields[index] === 'undefined') {\n      return '';\n    }\n\n    return populatedFields[index];\n\n  }\n\n  refreshVisibility() {\n\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\n}\n","import {Directive, ElementRef, OnInit, Renderer2} from '@angular/core';\nimport {AfdPceService} from '../services/afd.pce.service';\nimport {AbstractControl, AsyncValidator, NG_ASYNC_VALIDATORS, NG_VALIDATORS, ValidationErrors, Validator} from '@angular/forms';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport * as emailValidator from 'email-validator';\n\n\n@Directive({\n  selector: '[afdEmailRegexValid]',\n  providers: [\n    {\n      provide: NG_VALIDATORS,\n      useExisting: AfdEmailRegexValidDirective,\n      multi: true\n    }\n  ]\n})\nexport class AfdEmailRegexValidDirective implements Validator {\n\n  constructor(\n    private afdPceService: AfdPceService,\n    private el: ElementRef,\n    private renderer: Renderer2\n  ) {\n  }\n\n  validate(control: AbstractControl): ValidationErrors | null {\n\n    // only try to validate if there is a value in the input\n    if (control.value) {\n\n      this.renderer.removeClass(this.el.nativeElement.parentElement, 'afd-loading');\n\n      // send useful information to the pce service\n      this.afdPceService.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) ? null : {\n        afdEmailRegexValid: {\n          message: this.afdPceService.settings.messages.email.invalidRegex\n        }\n      };\n\n    } else {\n      // if there is nothing in the control\n      return null;\n\n    }\n\n  }\n}\n\n@Directive({\n  selector: '[afdEmailPceValid]',\n  providers: [\n    {\n      provide: NG_ASYNC_VALIDATORS,\n      useExisting: AfdEmailPceValidDirective,\n      multi: true\n    }\n  ]\n})\n\nexport class AfdEmailPceValidDirective implements AsyncValidator, OnInit {\n\n  hasRegexCheck: boolean;\n\n  constructor(\n    private afdPceService: AfdPceService,\n    private el: ElementRef,\n    private renderer: Renderer2\n  ) {\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\n  ngOnInit() {\n\n\n  }\n\n  validate(control: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> {\n\n    if (control.value) {\n\n      this.renderer.addClass(this.el.nativeElement.parentElement, 'afd-loading');\n\n      // validate\n      return this.afdPceService.validateEmail(control.value).pipe(\n        map((res) => {\n          const data = res.body;\n          const event = new CustomEvent(\n            'afdPCEEmailValidationComplete',\n            {detail: res}\n          );\n          document.dispatchEvent(event);\n          // Check if valid\n          if (data['Result'] === '1') {\n            this.renderer.removeClass(this.el.nativeElement.parentElement, 'afd-loading');\n            // send useful information to the pce service\n            this.afdPceService.emailInfoSource.next({\n              pceValid: true,\n              regexValid: emailValidator.validate(control.value),\n              pceValidationMessage: data['Item'][0].Status,\n              emailAddress: control.value,\n              acceptsAll: data['Item'][0].AcceptsAll === 1,\n              dummy: data['Item'][0].Dummy === 1,\n              formatVerified: data['Item'][0].FormatVerified,\n              generic: data['Item'][0].Generic === 1,\n              localChecked: data['Item'][0].LocalChecked === 1,\n              nonStandard: data['Item'][0].NonStandard === 1,\n              reachable: data['Item'][0].Reachable === 1,\n              status: data['Item'][0].Status,\n              suggested: data['Item'][0].Suggested,\n              spelling: data['Item'][0].Spelling === 1,\n              throwaway: data['Item'][0].Throwaway === 1\n            });\n            return null;\n          } else {\n            this.renderer.removeClass(this.el.nativeElement.parentElement, 'afd-loading');\n            // send useful information to the pce service\n            this.afdPceService.emailInfoSource.next({\n              pceValid: false,\n              regexValid: emailValidator.validate(control.value),\n              pceValidationMessage: data['ErrorText'],\n              emailAddress: control.value,\n              acceptsAll: data['Item'][0].AcceptsAll === 1,\n              dummy: data['Item'][0].Dummy === 1,\n              formatVerified: data['Item'][0].FormatVerified,\n              generic: data['Item'][0].Generic === 1,\n              localChecked: data['Item'][0].LocalChecked === 1,\n              nonStandard: data['Item'][0].NonStandard === 1,\n              reachable: data['Item'][0].Reachable === 1,\n              status: data['Item'][0].Status,\n              suggested: data['Item'][0].Suggested,\n              spelling: data['Item'][0].Spelling === 1,\n              throwaway: data['Item'][0].Throwaway === 1\n            });\n            return {\n              afdEmailPceValid: {\n                message: this.afdPceService.settings.messages.email.invalidPce ? this.afdPceService.settings.messages.email.invalidPce\n                  : data['ErrorText']\n              }\n            };\n          }\n        })\n      );\n\n    } else {\n\n      return new Promise((resolve => resolve(null)));\n\n    }\n\n  }\n}\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 {AfterViewInit, Component, Directive, ElementRef, HostListener, Input, OnInit, ViewEncapsulation} from '@angular/core';\nimport {AfdPceService} from '../services/afd.pce.service';\n// import {Countries} from '../data/countries';\nimport {Countries} from '../data/countries';\nimport Phone from 'awesome-phonenumber';\nimport {AbstractControl, AsyncValidator, NG_ASYNC_VALIDATORS, NG_VALIDATORS, ValidationErrors, Validator} from '@angular/forms';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport intlTelInput from 'intl-tel-input';\n\n@Component({\n  selector: ' input[afdPhoneRegexValid], input[afdPhoneSyntaxValid]',\n  template: '<ng-content></ng-content>',\n  styleUrls: ['afd.phone.directive.scss'],\n  encapsulation: ViewEncapsulation.None,\n  providers: [\n    {\n      provide: NG_VALIDATORS,\n      useExisting: AfdPhoneRegexValidDirective,\n      multi: true\n    }\n  ]\n})\nexport class AfdPhoneRegexValidDirective implements OnInit, Validator {\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  constructor(\n    private afdPceService: AfdPceService,\n    private el: ElementRef\n  ) {\n  }\n\n  iti;\n\n  ngOnInit() {\n\n    this.id = typeof this.id === 'undefined' ? 'default' : this.id;\n\n    if (this.id === 'default' && this.afdPceService.iti[this.id] !== 'undefined') {\n      console.warn(''\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    if (this.id !== 'default' && this.afdPceService.iti[this.id] !== 'undefined') {\n\n      console.warn(''\n        + 'AFD: It appears that the \"id\" for the phone control you are using AFD validation on is not unique. '\n        + 'For the validation to run correctly it must be unique.'\n      );\n    }\n\n    this.afdPceService.iti[this.id] = intlTelInput(\n      this.el.nativeElement,\n      itiSettings(this.country, this.excludeCountries, this.onlyCountries, this.preferredCountries)\n    );\n\n    this.iti = this.afdPceService.iti[this.id];\n\n    this.el.nativeElement.addEventListener('countrychange', () => {\n      this.iti.setNumber('');\n    });\n\n  }\n\n  // https://angular.io/guide/form-validation#custom-validators\n  validate(control: AbstractControl): ValidationErrors | null {\n\n    // only try to validate if there is a value in the input\n    if (control.value) {\n\n      const {phoneNumber, countryData, numberType, numberTypes} = itiVars(this.iti);\n\n      // swap double zero for plus\n      if (control.value === '00') {\n        this.el.nativeElement.value = '+';\n      }\n\n      // remove country code from input\n      if (typeof countryData.dialCode !== 'undefined' && phoneNumber.indexOf(countryData.dialCode) === 1) {\n        this.el.nativeElement.value = phoneNumber.substr(countryData.dialCode.length + 1);\n      }\n      this.el.nativeElement.value = window['intlTelInputUtils']['formatNumber'](this.el.nativeElement.value, countryData.iso2, 'NATIONAL');\n\n      this.afdPceService.phoneCountry = setCountry(countryData.iso2);\n\n      // send useful information to the pce service\n      this.afdPceService.phoneInfoSource.next({\n        pceValid: false,\n        syntaxValid: this.iti.isValidNumber(),\n        regexValid: this.iti.isValidNumber(),\n        country: this.afdPceService.phoneCountry,\n        isMobile: numberTypes[numberType] === 'MOBILE',\n        isLandLine: numberTypes[numberType] === 'FIXED_LINE',\n        numberType: numberTypes[numberType],\n        phoneNumber: this.iti.getNumber(),\n        phoneNumberE164: this.iti.getNumber(),\n        phoneNumberInternational: this.iti.getNumber(1),\n        phoneNumberNational: this.iti.getNumber(2),\n        phoneNumberRfc3966: this.iti.getNumber(3)\n      });\n\n      // validate syntax\n      return this.iti.isValidNumber() ? null : {afdPhoneRegexValid: {message: this.afdPceService.settings.messages.phone.invalidRegex}};\n\n    } else {\n      // if there is nothing in the control\n      return null;\n\n    }\n\n  }\n}\n\n@Directive({\n  selector: '[afdPhonePceValid]',\n  providers: [\n    {\n      provide: NG_ASYNC_VALIDATORS,\n      useExisting: AfdPhonePceValidDirective,\n      multi: true\n    }\n  ]\n})\n\nexport class AfdPhonePceValidDirective 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 afdPceService: AfdPceService,\n    private el: ElementRef\n  ) {\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 regex directive.  ' +\n        'This means that you are querying PCE and are being charged for every keypress.  ' +\n        'Please add the directive \"afdPhoneRegexValid\" to the input element'\n      );\n    }\n\n  }\n\n  ngOnInit() {\n\n    // Set the initial country if there is no Regex directive on the element\n    if (!this.hasSyntaxCheck) {\n      this.afdPceService.phoneCountry = setInitialCountry(this.country);\n    }\n\n  }\n\n  ngAfterViewInit() {\n\n    this.id = typeof this.id === 'undefined' ? 'default' : this.id;\n    this.iti = this.afdPceService.iti[this.id];\n\n  }\n\n  validate(control: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> {\n\n    if (control.value) {\n\n      // Get the phone number\n      const {phoneNumber, countryData, numberType, numberTypes} = itiVars(this.iti);\n\n      if (!this.hasSyntaxCheck) {\n        // set the country in type AFD service\n        this.afdPceService.phoneCountry = setInitialCountry(countryData.iso2);\n      }\n\n      // validate\n      return this.afdPceService.validatePhone(this.iti.getNumber().replace('+', '')).pipe(\n        map(data => {\n\n          // emit observable update with useful information\n          this.afdPceService.phoneInfoSource.next({\n            pceValid: data['body']['Result'] === '1',\n            syntaxValid: this.iti.isValidNumber(),\n            regexValid: this.iti.isValidNumber(),\n            country: this.afdPceService.phoneCountry,\n            isMobile: numberTypes[numberType] === 'MOBILE',\n            isLandLine: numberTypes[numberType] === 'FIXED_LINE',\n            numberType: numberTypes[numberType],\n            phoneNumber: this.iti.getNumber(),\n            phoneNumberE164: this.iti.getNumber(),\n            phoneNumberInternational: this.iti.getNumber(1),\n            phoneNumberNational: this.iti.getNumber(2),\n            phoneNumberRfc3966: this.iti.getNumber(3)\n          });\n\n          const output = data;\n          output['phone'] = this.iti.getNumber();\n\n          const endEvent = new CustomEvent(\n            'afdPhonePceValidationComplete',\n            {detail: output}\n          );\n          document.dispatchEvent(endEvent);\n\n          // Check if valid\n          if (data['body']['Result'] === '1') {\n            return null;\n          } else {\n            return {\n              afdPhonePceValid: {\n                message: this.afdPceService.settings.messages.phone.invalidPce ? this.afdPceService.settings.messages.phone.invalidPce\n                  : data['body']['ErrorText']\n              }\n            };\n          }\n\n        })\n      );\n\n    } else {\n\n      return new Promise((resolve => resolve(null)));\n\n    }\n\n  }\n}\n\n// Can potentially be used for business mapping not currently implemented\n@Directive({\n  selector: '[afdSearchPhone]'\n})\n\nexport class AfdSearchPhoneDirective {\n\n  @HostListener('document:afdPhonePceValidationComplete', ['$event'])\n  onAfdPhonePceValidationComplete(e) {\n\n    this.afdPceService.searchPhone(e.detail.phone).subscribe((res) => {\n\n      const endEvent = new CustomEvent(\n        'afdPhoneSearchComplete',\n        {detail: res}\n      );\n      document.dispatchEvent(endEvent);\n\n    });\n\n  }\n\n  constructor(\n    private afdPceService: AfdPceService\n  ) {\n\n  }\n\n}\n\n@Directive({\n  selector: '[afdPhoneCountries]'\n})\nexport class AfdPhoneCountriesDirective {\n\n  constructor(\n    private el: ElementRef\n  ) {\n    console.log(el);\n  }\n\n}\n\nfunction getPhoneObject(phoneNumber, country) {\n\n  if (phoneNumber !== null) {\n    // set the default dialing code\n    let defaultCountryDialingCode;\n    if (typeof country === 'undefined') {\n      defaultCountryDialingCode = '+44';\n    } else {\n      defaultCountryDialingCode = '+' + Phone.getCountryCodeForRegionCode(country);\n    }\n\n    // If no dialing code is added to the front of the number, then add the default one\n    if (phoneNumber.substr(0, 1) !== '+' && phoneNumber.substr(0, 2) !== '00') {\n      phoneNumber = defaultCountryDialingCode + phoneNumber;\n    }\n\n    // create the Awesome phone object\n    return new Phone(phoneNumber);\n  } else {\n    return null;\n  }\n}\n\nfunction setInitialCountry(countryAttribute) {\n\n  // default to GB if not set\n  const initialCountry = typeof countryAttribute !== 'undefined' ? countryAttribute : 'GB';\n  return setCountry(initialCountry);\n\n}\n\nfunction setCountry(newCountry) {\n\n  let phoneCountry = {\n    name: null,\n    iso2: null,\n    iso3: null\n  };\n\n  if (typeof newCountry !== 'undefined') {\n    for (const country of Countries) {\n      if (country.iso2 === newCountry.toUpperCase()) {\n        phoneCountry = country;\n      }\n    }\n  }\n\n  return phoneCountry;\n}\n\n\nfunction itiSettings(country, excludeCountries, onlyCountries, preferredCountries) {\n\n  const settings = {\n    utilsScript: 'https://cdn.afd.co.uk/plugins/shared/utils.js',\n    separateDialCode: true,\n    initialCountry: country\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}\n\nfunction itiVars(iti) {\n\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 {Directive, ElementRef, Input, OnInit} from '@angular/core';\nimport {AfdPceService} from '../services/afd.pce.service';\nimport {AbstractControl, AsyncValidator, NG_ASYNC_VALIDATORS, NG_VALIDATORS, ValidationErrors, Validator} from '@angular/forms';\nimport {Observable} from 'rxjs';\nimport * as valid from 'card-validator';\nimport {map} from 'rxjs/operators';\n\n@Directive({\n  selector: '[afdCardRegexValid]',\n  providers: [\n    {\n      provide: NG_VALIDATORS,\n      useExisting: AfdCardRegexValidDirective,\n      multi: true\n    }\n  ]\n})\nexport class AfdCardRegexValidDirective implements Validator {\n\n  constructor(\n    private afdPceService: AfdPceService,\n    private el: ElementRef\n  ) {\n  }\n\n  validate(control: AbstractControl): ValidationErrors | null {\n\n    // only try to validate if there is a value in the input\n    if (control.value) {\n\n      const regexValid = valid.number(control.value);\n\n      const currentInfo = this.afdPceService.cardInfoSource.value;\n      currentInfo.cardRegexValid = regexValid.isValid;\n      currentInfo.pceValid = false;\n      currentInfo.cardTypeNice = regexValid.card ? regexValid.card.niceType : 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.afdPceService.cardInfoSource.next(currentInfo);\n\n\n      // validate regex\n      return regexValid.isValid ? null : {afdCardRegexValid: {message: this.afdPceService.settings.messages.card.invalidCardRegex}};\n\n    } else {\n      // if there is nothing in the control\n      return null;\n\n    }\n\n  }\n}\n\n@Directive({\n  selector: '[afdExpiryRegexValid]',\n  providers: [\n    {\n      provide: NG_VALIDATORS,\n      useExisting: AfdExpiryRegexValidDirective,\n      multi: true\n    }\n  ]\n})\nexport class AfdExpiryRegexValidDirective implements Validator {\n\n  @Input() country: string;\n\n  constructor(\n    private afdPceService: AfdPceService,\n    private el: ElementRef\n  ) {\n  }\n\n  validate(control: AbstractControl): ValidationErrors | null {\n\n    // only try to validate if there is a value in the input\n    if (control.value) {\n\n      const regexValid = valid.expirationDate(control.value);\n\n      const currentInfo = this.afdPceService.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.afdPceService.cardInfoSource.next(currentInfo);\n\n      // validate regex\n      return regexValid.isValid ? null : {afdExpiryRegexValid: {message: this.afdPceService.settings.messages.card.invalidExpiryRegex}};\n\n    } else {\n      // if there is nothing in the control\n      return null;\n    }\n\n  }\n}\n\n@Directive({\n  selector: '[afdCardPceValid]',\n  providers: [\n    {\n      provide: NG_ASYNC_VALIDATORS,\n      useExisting: AfdCardPceValidDirective,\n      multi: true\n    }\n  ]\n})\nexport class AfdCardPceValidDirective implements AsyncValidator {\n\n  @Input() country: string;\n\n  constructor(\n    private afdPceService: AfdPceService,\n    private el: ElementRef\n  ) {\n\n\n  }\n\n  validate(control: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> {\n\n    const currentInfo = this.afdPceService.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 = 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\n      // validate\n      return this.afdPceService.validateCard(currentInfo.cardNumber, currentInfo.expiryDate).pipe(\n        map(data => JSON.parse(data)),\n        map(data => {\n\n          // Check if valid\n          if (data['Result'] === '1') {\n            // emit observable update with useful information\n            this.afdPceService.cardInfoSource.next({\n              pceValid: data.Result === '1',\n              cardRegexValid: true,\n              expiryRegexValid: true,\n              cardTypeNice: data.Item[0].CardType,\n              cardType: currentInfo.cardType,\n              cardNumber: currentInfo.cardNumber,\n              expiryDate: currentInfo.expiryDate\n            });\n            return null;\n          } else {\n            return {\n              afdCardPceValid: {\n                message: this.afdPceService.settings.messages.card.invalidPce ? this.afdPceService.settings.messages.card.invalidPce\n                  : data['ErrorText']\n              }\n            };\n          }\n\n        })\n    );\n    } else {\n      return new Promise((resolve => resolve(null)));\n    }\n  }\n}\n","import {Directive, ElementRef, Input, OnInit} from '@angular/core';\nimport {AfdPceService} from '../services/afd.pce.service';\nimport {AbstractControl, AsyncValidator, NG_ASYNC_VALIDATORS, NG_VALIDATORS, ValidationErrors, Validator} from '@angular/forms';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n@Directive({\n  selector: '[afdAccountRegexValid]',\n  providers: [\n    {\n      provide: NG_VALIDATORS,\n      useExisting: AfdAccountRegexValidDirective,\n      multi: true\n    }\n  ]\n})\nexport class AfdAccountRegexValidDirective implements Validator {\n\n  constructor(\n    private afdPceService: AfdPceService,\n    private el: ElementRef\n  ) {\n  }\n\n  validate(control: AbstractControl): ValidationErrors | null {\n\n    // only try to validate if there is a value in the input\n    if (control.value) {\n\n      const currentInfo = this.afdPceService.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.afdPceService.accountInfoSource.next(currentInfo);\n\n      // validate regex\n      return control.value.length > 7 ? null\n        : {afdAccountRegexValid: {message: this.afdPceService.settings.messages.account.invalidAccountRegex}};\n\n    } else {\n      // if there is nothing in the control\n      return null;\n\n    }\n\n  }\n}\n\n@Directive({\n  selector: '[afdSortRegexValid]',\n  providers: [\n    {\n      provide: NG_VALIDATORS,\n      useExisting: AfdSortRegexValidDirective,\n      multi: true\n    }\n  ]\n})\nexport class AfdSortRegexValidDirective implements Validator {\n\n  @Input() country: string;\n\n  constructor(\n    private afdPceService: AfdPceService,\n    private el: ElementRef\n  ) {\n  }\n\n  validate(control: AbstractControl): ValidationErrors | null {\n\n    // only try to validate if there is a value in the input\n    if (control.value) {\n\n      const currentInfo = this.afdPceService.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.afdPceService.accountInfoSource.next(currentInfo);\n\n      // validate regex\n      return control.value.length === 8 ? null\n        : {afdSortRegexValid: {message: this.afdPceService.settings.messages.account.invalidSortRegex}};\n\n    } else {\n      // if there is nothing in the control\n      return null;\n    }\n\n  }\n}\n\n@Directive({\n  selector: '[afdAccountPceValid]',\n  providers: [\n    {\n      provide: NG_ASYNC_VALIDATORS,\n      useExisting: AfdAccountPceValidDirective,\n      multi: true\n    }\n  ]\n})\nexport class AfdAccountPceValidDirective implements AsyncValidator {\n\n  @Input() country: string;\n\n  constructor(\n    private afdPceService: AfdPceService,\n    private el: ElementRef\n  ) {\n\n\n  }\n\n  validate(control: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> {\n\n    const currentInfo = this.afdPceService.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 = control.touched && account.value.length > 0 && account.valid;\n\n    if (control.touched && accountTouched && sortTouched) {\n      // validate\n      return this.afdPceService.validateAccount(account.value, sort.value).pipe(\n        map(data => JSON.parse(data)),\n        map(data => {\n\n          // Check if valid\n          if (data['Result'] === '1') {\n            // emit observable update with useful information\n            this.afdPceService.accountInfoSource.next({\n              pceValid: true,\n              accountRegexValid: true,\n              sortRegexValid: true,\n              iban: data['Item'][0].IBAN,\n              clearingSystem: data['Item'][0].ClearingSystem,\n              rollNumber: data['Item'][0].RollNumber,\n              accountType: data['Item'][0].TypeOfAccount,\n              accountNumber: currentInfo.accountNumber,\n              sortCode: currentInfo.sortCode\n            });\n            return null;\n          } else {\n            return {\n              afdAccountPceValid: {\n                message: this.afdPceService.settings.messages.account.invalidPce ? this.afdPceService.settings.messages.account.invalidPce\n                  : data['ErrorText']\n              }\n            };\n          }\n        })\n      );\n    } else {\n      return new Promise((resolve => resolve (null)));\n    }\n  }\n}\n","import {Directive, HostListener, Input, ElementRef, AfterViewInit} from '@angular/core';\nimport {AfdPceService} from '../services/afd.pce.service';\n\n@Directive({\n  selector: '[afdCountries]'\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 AfdCountriesDirective implements AfterViewInit {\n\n  // the in\n  @Input('afdCountries') defaultCountry: string;\n\n  constructor(\n    private el: ElementRef,\n    private afdPceService: AfdPceService\n  ) {}\n\n  ngAfterViewInit() {\n\n    const startEvent = new CustomEvent(\n      'afdGetCountriesStart'\n    );\n    document.dispatchEvent(startEvent);\n\n    this.afdPceService.getCountries().subscribe((res) => {\n\n      this.afdPceService.countries = res.body['Item'];\n\n      const endEvent = new CustomEvent(\n        '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.afdPceService.countries) {\n          if (this.defaultCountry === country.iso) {\n            this.afdPceService.selectedCountry = country;\n          }\n        }\n      }\n    });\n\n\n  }\n\n}\n","import {Directive, HostListener, Input, ElementRef} from '@angular/core';\nimport {AfdPceService} from '../services/afd.pce.service';\n\n@Directive({\n  selector: '[afdReverseGeocode]'\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\n  constructor(\n    private afdPceService: AfdPceService,\n    private el: ElementRef\n  ) {\n  }\n\n  @HostListener('click', ['$event']) afdReverseGeocodeInitiate(e) {\n\n    this.el.nativeElement.disabled = true;\n\n    navigator.geolocation.getCurrentPosition(\n      (position) => {\n\n        this.afdPceService.reverseGeocode(position.coords.latitude, position.coords.longitude).subscribe(\n          (data) => {\n\n            const result = JSON.parse(data);\n\n            // Populate form fields\n            this.afdPceService.typeAheadResults = result.Item;\n\n            const event = new CustomEvent(\n              'afdReverseGeocodeComplete',\n              {detail: result}\n            );\n            document.dispatchEvent(event);\n\n            this.el.nativeElement.disabled = false;\n\n          }\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}\n","import {Component, OnInit, ViewChild, Input, ElementRef} from '@angular/core';\nimport {AfdPceService} from '../../services/afd.pce.service';\nimport {Subscription} from 'rxjs';\n\n@Component({\n  selector: 'afd-typeahead-component',\n  templateUrl: 'typeahead.component.html',\n  styleUrls: ['typeahead.component.css']\n})\n\nexport class AfdTypeaheadComponent implements OnInit {\n\n  @Input() data: string;\n  @Input() country: string | null = null;\n  @Input() afdControlId; // Assign a ID to this particular control so that it can be matched with result fields\n  @ViewChild('control') control;\n\n  control$;\n  items = [];\n  keyword = 'name';\n  requests = new Subscription();\n\n  constructor(\n    private el: ElementRef,\n    public afdPceService: AfdPceService) {\n\n  }\n\n  ngOnInit() {\n\n    this.control$ = this.afdPceService.registerControl('typeahead', this.afdControlId);\n\n    // gets the compatible WA countries and sets the selected country\n    if (this.country) {\n      this.afdPceService.getCountries(this.country).subscribe((res) => {\n        this.afdPceService.selectedCountry = res.body['Item'].find(country1 => this.country === country1.iso);\n      });\n    }\n\n  }\n\n  onChangeSearch(str) {\n\n    this.requests.unsubscribe();\n\n    // check to see if new unique id is needed\n    this.afdPceService.manageUniqueId(str);\n\n    const request = this.afdPceService.pceLookup(str, this.data).subscribe((data: any) => {\n      const event = new CustomEvent(\n        'afdLookupComplete',\n        {detail: data.body}\n      );\n      document.dispatchEvent(event);\n\n      data = data.body;\n\n      const output = [];\n\n      for (const item in data.Item) {\n        if (data.Item.hasOwnProperty(item)) {\n          output.push({\n            id: data.Item[item].Key,\n            name: data.Item[item].List\n          });\n        }\n      }\n      this.items = output;\n    });\n    this.requests = new Subscription();\n    this.requests.add(request);\n\n  }\n\n  typeAheadOptionSelected(item) {\n\n    this.chooseAddress(item.id);\n\n  }\n\n  chooseAddress(key) {\n    const retrieve = this.afdPceService.pceRetrieve(key, this.data);\n\n    retrieve.subscribe(res => {\n      this.control$.next(res);\n      this.afdPceService.lookupResults = res;\n      const event = new CustomEvent(\n        'afdRetrieveComplete',\n        {detail: res}\n      );\n      document.dispatchEvent(event);\n    });\n\n    if (this.afdPceService.settings.typeahead.afterClearTypeahead) {\n      this.control.clear();\n    }\n\n  }\n\n  typeaheadFilter(items: any[]) {\n    return items;\n  }\n\n}\n","<div>\n  <ng-autocomplete\n    id=\"def\"\n    (inputChanged)='onChangeSearch($event)'\n    [data]=\"items\"\n    [itemTemplate]=\"itemTemplate\"\n    [notFoundTemplate]=\"notFoundTemplate\"\n    [searchKeyword]=\"keyword\"\n    (selected)=\"typeAheadOptionSelected($event)\"\n    [customFilter]=\"typeaheadFilter\"\n    #control\n  >\n  </ng-autocomplete>\n  <ng-template #itemTemplate let-item>\n    <a [innerHTML]=\"item.name\"></a>\n  </ng-template>\n  <ng-template #notFoundTemplate let-notFound>\n    <div [innerHTML]=\"notFound\"></div>\n  </ng-template>\n</div>\n","import {Component, OnInit, ViewChild, Input, ElementRef} from '@angular/core';\nimport {AfdPceService} from '../../services/afd.pce.service';\nimport {Observable} from 'rxjs';\n\n@Component({\n  selector: 'afd-manual-input-component',\n  templateUrl: 'manual-input.component.html',\n  styleUrls: ['manual-input.component.css']\n\n})\n\nexport class AfdManualInputComponent implements OnInit {\n\n  constructor(\n    private el: ElementRef,\n    public afdPceService: AfdPceService) {\n  }\n\n  @Input () onManualInputClick: () => void;\n\n  ngOnInit() {\n\n  }\n\n  manualInputClick() {\n\n    this.afdPceService.typeaheadVisibility = {\n      control: false,\n      manualInput: false,\n      addressSearch: true,\n      searchAgain: false\n    };\n\n    this.afdPceService.allResultFieldVisibility.next(true);\n    this.onManualInputClick();\n  }\n\n}\n","<p *ngIf=\"afdPceService.typeaheadVisibility.manualInput\" class=\"afd-utility-button\">\n  <a (click)=\"manualInputClick()\">{{ afdPceService.settings.typeahead.manualInputText }}</a>\n</p>\n\n","import {Component, OnInit, ViewChild, Input, ElementRef} from '@angular/core';\nimport {AfdPceService} from '../../services/afd.pce.service';\nimport {Observable} from 'rxjs';\n\n@Component({\n  selector: 'afd-search-again-component',\n  templateUrl: 'search-again.component.html',\n  styleUrls: ['search-again.component.css']\n\n})\n\nexport class AfdSearchAgainComponent implements OnInit {\n\n  constructor(\n    private el: ElementRef,\n    public afdPceService: AfdPceService) {\n  }\n\n  ngOnInit() {\n\n  }\n\n  searchAgainClick() {\n\n    this.afdPceService.typeaheadVisibility = {\n      control: true,\n      manualInput: this.afdPceService.settings.typeahead.beforeHideResults,\n      addressSearch: false,\n      searchAgain: false\n    };\n\n    this.afdPceService.allResultFieldVisibility.next(!this.afdPceService.settings.typeahead.beforeHideResults);\n\n  }\n\n}\n","<p *ngIf=\"afdPceService.typeaheadVisibility.searchAgain\" class=\"afd-utility-button\">\n  <a (click)=\"searchAgainClick()\">{{ afdPceService.settings.typeahead.searchAgainText }}</a>\n</p>\n\n","import {Component, OnInit, ViewChild, Input, ElementRef} from '@angular/core';\nimport {AfdPceService} from '../../services/afd.pce.service';\nimport {Observable} from 'rxjs';\n\n@Component({\n  selector: 'afd-address-search-component',\n  templateUrl: 'address-search.component.html',\n  styleUrls: ['address-search.component.css']\n\n})\n\nexport class AfdAddressSearchComponent implements OnInit {\n\n  constructor(\n    private el: ElementRef,\n    public afdPceService: AfdPceService) {\n  }\n\n  ngOnInit() {\n\n  }\n\n  addressSearchClick() {\n\n    this.afdPceService.typeaheadVisibility = {\n      control: true,\n      manualInput: this.afdPceService.settings.typeahead.beforeHideResults,\n      addressSearch: false,\n      searchAgain: false\n    };\n\n    this.afdPceService.allResultFieldVisibility.next(!this.afdPceService.settings.typeahead.beforeHideResults);\n\n  }\n\n}\n","<p *ngIf=\"afdPceService.typeaheadVisibility.addressSearch\" class=\"afd-utility-button\">\n  <a (click)=\"addressSearchClick()\">{{ afdPceService.settings.typeahead.addressSearchText }}</a>\n</p>\n\n","// Angular Dependencies\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\n\n// Third Party Dependencies\nimport {AutocompleteLibModule} from 'angular-ng-autocomplete';\n\n// AFD Service\nimport { AfdPceService } from './services/afd.pce.service';\n\n// AFD Directives\nimport { AfdResultDirective} from './directives/afd.result.directive';\nimport { AfdEmailRegexValidDirective, AfdEmailPceValidDirective } from './directives/afd.email.directive';\nimport {\n  AfdPhoneRegexValidDirective,\n  AfdPhonePceValidDirective,\n  AfdPhoneCountriesDirective,\n  AfdSearchPhoneDirective} from './directives/afd.phone.directive';\nimport { AfdCardRegexValidDirective, AfdExpiryRegexValidDirective, AfdCardPceValidDirective } from './directives/afd.card.directive';\nimport { AfdAccountRegexValidDirective, AfdSortRegexValidDirective, AfdAccountPceValidDirective } from './directives/afd.account.directive';\nimport { AfdCountriesDirective } from './directives/afd.countries.directive';\nimport { AfdReverseGeocodeDirective } from './directives/afd.reverse-geocode.directive';\n\n// Afd Components\nimport { AfdTypeaheadComponent } from './components/typeahead/typeahead.component';\nimport { AfdManualInputComponent  } from './components/typeahead/manual-input.component';\nimport { AfdSearchAgainComponent } from './components/typeahead/search-again.component';\nimport { AfdAddressSearchComponent } from './components/typeahead/address-search.component';\n\n\n@NgModule({\n  imports: [\n    FormsModule,\n    ReactiveFormsModule,\n    CommonModule,\n    HttpClientModule,\n    AutocompleteLibModule,\n  ],\n  declarations: [\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    AfdTypeaheadComponent,\n    AfdManualInputComponent,\n    AfdSearchAgainComponent,\n    AfdAddressSearchComponent\n\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\n    AfdTypeaheadComponent,\n    AfdManualInputComponent,\n    AfdSearchAgainComponent,\n    AfdAddressSearchComponent\n\n  ],\n  providers: [\n    // AfdPceService\n  ]\n})\nexport class AfdPceAngularModule { }\n","/*\n * Public API Surface of pce-angular\n */\n\nexport * from './lib/pce-angular.module';\nexport * from './lib/services/afd.pce.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/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/address-search.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.AfdPceService","i2"],"mappings":"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"}