{"version":3,"file":"kernet-ngx-google-places-autocomplete.mjs","sources":["../../../projects/ngx-google-places-autocomplete/src/lib/options.models.ts","../../../projects/ngx-google-places-autocomplete/src/lib/google-place-directive.directive.ts","../../../projects/ngx-google-places-autocomplete/src/lib/ngx-google-places-autocomplete.module.ts","../../../projects/ngx-google-places-autocomplete/src/lib/componentRestrictions.models.ts","../../../projects/ngx-google-places-autocomplete/src/lib/address.models.ts","../../../projects/ngx-google-places-autocomplete/src/lib/photo.models.ts","../../../projects/ngx-google-places-autocomplete/src/public-api.ts","../../../projects/ngx-google-places-autocomplete/src/kernet-ngx-google-places-autocomplete.ts"],"sourcesContent":["import { LatLng } from './latLng.models'\nimport { LatLngBounds } from './latLngBounds.models'\nimport { ComponentRestrictions } from './componentRestrictions.models'\n\nexport class Options {\n  public bounds!: LatLngBounds\n  public componentRestrictions!: ComponentRestrictions\n  public types!: string[]\n  public fields!: string[]\n  public strictBounds!: boolean\n  public origin!: LatLng\n\n  public constructor(opt?: Partial<Options>) {\n    if (!opt) return\n\n    Object.assign(this, opt)\n  }\n}\n","import {\n  AfterViewInit,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  Input,\n  NgZone,\n  Output,\n} from '@angular/core'\nimport { Address } from './address.models'\nimport { Options } from './options.models'\n\ndeclare let google: any\n\n@Directive({\n  selector: '[ngx-google-places-autocomplete]',\n  exportAs: 'ngx-places',\n})\nexport class GooglePlaceDirective implements AfterViewInit {\n  @Input('options') options!: Partial<Options>\n  @Output() onAddressChange: EventEmitter<Address> = new EventEmitter()\n  private autocomplete: any\n  private eventListener: any\n  public place!: Address\n\n  constructor(private el: ElementRef, private ngZone: NgZone) {}\n\n  ngAfterViewInit(): void {\n    if (!this.options) this.options = new Options()\n\n    this.initialize()\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(\n      this.el.nativeElement,\n      this.options\n    )\n\n    if (!this.autocomplete) throw new Error('Autocomplete is not initialized')\n\n    if (!this.autocomplete.addListener != null) {\n      // Check to bypass https://github.com/angular-ui/angular-google-maps/issues/270\n      this.eventListener = this.autocomplete.addListener(\n        'place_changed',\n        () => {\n          this.handleChangeEvent()\n        }\n      )\n    }\n\n    this.el.nativeElement.addEventListener(\n      'keydown',\n      (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\n    // according to https://gist.github.com/schoenobates/ef578a02ac8ab6726487\n    if (\n      window &&\n      window.navigator &&\n      window.navigator.userAgent &&\n      navigator.userAgent.match(/(iPad|iPhone|iPod)/g)\n    ) {\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) continue\n\n              container.addEventListener('touchend', (e) => {\n                e.stopImmediatePropagation()\n              })\n            }\n          }\n        }\n      }, 500)\n    }\n  }\n\n  public reset(): void {\n    this.autocomplete.setComponentRestrictions(\n      this.options.componentRestrictions\n    )\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 { GooglePlaceDirective } from './google-place-directive.directive'\n\n@NgModule({\n  declarations: [GooglePlaceDirective],\n  imports: [],\n  exports: [GooglePlaceDirective],\n})\nexport class GooglePlacesAutocompleteModule {}\n","export class ComponentRestrictions {\n  public country!: string | string[]\n\n  constructor(obj?: Partial<ComponentRestrictions>) {\n    if (!obj) return\n\n    Object.assign(this, obj)\n  }\n}\n","import { AddressComponent } from './addressComponent.models'\nimport { Geometry } from './geometry.models'\nimport { Photo } from './photo.models'\nimport { OpeningHours } from './openingHours.models'\nimport { PlaceReview } from './placeReview.models'\n\nexport class Address {\n  address_components!: AddressComponent[]\n  adr_address!: string\n  formatted_address!: string\n  formatted_phone_number!: string\n  geometry!: Geometry\n  html_attributions!: string[]\n  icon!: string\n  id!: string\n  international_phone_number!: string\n  name!: string\n  opening_hours!: OpeningHours\n  permanently_closed!: boolean\n  photos!: Photo[]\n  place_id!: string\n  price_level!: number\n  rating!: number\n  reviews!: PlaceReview[]\n  types!: string[]\n  url!: string\n  utc_offset!: number\n  vicinity!: string\n  website!: string\n}\n","export interface Photo {\n  height: number\n  html_attributions: string[]\n  width: number\n\n  getUrl(request: PhotoRequest): string\n}\n\nexport class PhotoRequest {\n  public maxWidth!: number\n  public maxHeight!: number\n}\n","/*\n * Public API Surface of ngx-google-places-autocomplete\n */\n\nexport * from './lib/ngx-google-places-autocomplete.module'\nexport * from './lib/google-place-directive.directive'\nexport * from './lib/componentRestrictions.models'\nexport * from './lib/address.models'\nexport * from './lib/addressComponent.models'\nexport * from './lib/geometry.models'\nexport * from './lib/latLng.models'\nexport * from './lib/latLngBounds.models'\nexport * from './lib/options.models'\nexport * from './lib/openingHours.models'\nexport * from './lib/photo.models'\nexport * from './lib/placeReview.models'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}