{"version":3,"file":"angular-magic-ngx-gp-autocomplete.mjs","sources":["../../../projects/ngx-gp-autocomplete/src/lib/ngx-gp-autocomplete.service.ts","../../../projects/ngx-gp-autocomplete/src/lib/ngx-gp-autocomplete.directive.ts","../../../projects/ngx-gp-autocomplete/src/lib/ngx-gp-autocomplete.module.ts","../../../projects/ngx-gp-autocomplete/src/public-api.ts","../../../projects/ngx-gp-autocomplete/src/angular-magic-ngx-gp-autocomplete.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { NgxGpAutocompleteOptions } from './ngx-gp-autocomplete-options';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NgxGpAutocompleteService {\n  private verifyGooglePersistence: boolean;\n  private defaultOptions: NgxGpAutocompleteOptions = {};\n\n  setOptions(options: NgxGpAutocompleteOptions) {\n    this.defaultOptions = { ...this.defaultOptions, ...options };\n  }\n\n  getOptions(): NgxGpAutocompleteOptions {\n    return this.defaultOptions;\n  }\n\n  enableGooglePersistenceCheck(): void {\n    this.verifyGooglePersistence = true;\n  }\n\n  getGooglePersistenceCheck(): boolean {\n    return this.verifyGooglePersistence;\n  }\n}\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, Input, NgZone, Output } from '@angular/core';\nimport { Loader } from '@googlemaps/js-api-loader';\nimport { NgxGpAutocompleteOptions } from './ngx-gp-autocomplete-options';\nimport { NgxGpAutocompleteService } from './ngx-gp-autocomplete.service';\n\ndeclare let google: any;\n\n@Directive({\n  selector: '[ngx-gp-autocomplete]',\n  exportAs: 'ngx-places'\n})\nexport class NgxGpAutocompleteDirective implements AfterViewInit {\n  @Input() options: NgxGpAutocompleteOptions;\n  @Output() onAddressChange: EventEmitter<google.maps.places.PlaceResult> = new EventEmitter();\n  public place: google.maps.places.PlaceResult;\n  private eventListener: any;\n  private autocomplete: google.maps.places.Autocomplete;\n\n  constructor(\n    public el: ElementRef,\n    private ngxGpAutocompleteService: NgxGpAutocompleteService,\n    private loader: Loader,\n    private ngZone: NgZone,\n  ) {\n  }\n\n  ngAfterViewInit(): void {\n    if (!this.options) {\n      this.options = this.ngxGpAutocompleteService.getOptions();\n    }\n\n    if (this.ngxGpAutocompleteService.getGooglePersistenceCheck()) {\n      if (!this.isGoogleLibExists()) {\n        this.loader.importLibrary(\"places\").then(() => this.initialize(), console.error);\n      }\n    } else {\n      this.loader.importLibrary(\"places\").then(() => this.initialize(), console.error);\n    }\n  }\n\n  private isGoogleLibExists(): boolean {\n    return !(!google || !google.maps || !google.maps.places);\n  }\n\n  private initialize(): void {\n    if (!this.isGoogleLibExists())\n      throw new Error(\"Google maps library can not be found\");\n\n    this.autocomplete = new google.maps.places.Autocomplete(this.el.nativeElement, this.options);\n\n    if (!this.autocomplete)\n      throw new Error(\"Autocomplete is not initialized\");\n\n    if (!this.autocomplete.addListener != null) { // Check to bypass https://github.com/angular-ui/angular-google-maps/issues/270\n      this.eventListener = this.autocomplete.addListener('place_changed', () => {\n        this.handleChangeEvent()\n      });\n    }\n\n    this.el.nativeElement.addEventListener('keydown', (event: KeyboardEvent) => {\n      if (!event.key) {\n        return;\n      }\n\n      let key = event.key.toLowerCase();\n\n      if (key == 'enter' && event.target === this.el.nativeElement) {\n        event.preventDefault();\n        event.stopPropagation();\n      }\n    });\n\n    // according to https://gist.github.com/schoenobates/ef578a02ac8ab6726487\n    if (window && window.navigator && window.navigator.userAgent && navigator.userAgent.match(/(iPad|iPhone|iPod)/g)) {\n      setTimeout(() => {\n        let containers = document.getElementsByClassName('pac-container');\n\n        if (containers) {\n          let arr = Array.from(containers);\n\n          if (arr) {\n            for (let container of arr) {\n              if (!container)\n                continue;\n\n              container.addEventListener('touchend', (e) => {\n                e.stopImmediatePropagation();\n              });\n            }\n\n          }\n        }\n      }, 500);\n    }\n  }\n\n  public reset(): void {\n    this.autocomplete.setComponentRestrictions(this.options.componentRestrictions);\n    this.autocomplete.setTypes(this.options.types);\n  }\n\n  private handleChangeEvent(): void {\n    this.ngZone.run(() => {\n      this.place = this.autocomplete.getPlace();\n\n      if (this.place) {\n        this.onAddressChange.emit(this.place);\n      }\n    });\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { NgxGpAutocompleteDirective } from './ngx-gp-autocomplete.directive';\n\n@NgModule({\n  declarations: [NgxGpAutocompleteDirective],\n  exports: [NgxGpAutocompleteDirective]\n})\nexport class NgxGpAutocompleteModule { }\n","/*\n * Public API Surface of ngx-gp-autocomplete\n */\n\nexport * from './lib/ngx-gp-autocomplete.module';\nexport * from './lib/ngx-gp-autocomplete.directive';\nexport * from './lib/ngx-gp-autocomplete.service';\nexport * from './lib/ngx-gp-autocomplete-options';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgxGpAutocompleteService"],"mappings":"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"}