{"version":3,"file":"roaddirect-ngx-google-maps-autocomplete.mjs","sources":["../../../projects/ngx-google-maps-autocomplete/src/lib/directives/mat-google-maps-autocomplete.directive.ts","../../../projects/ngx-google-maps-autocomplete/src/lib/mat-google-maps-autocomplete.module.ts","../../../projects/ngx-google-maps-autocomplete/src/public-api.ts","../../../projects/ngx-google-maps-autocomplete/src/roaddirect-ngx-google-maps-autocomplete.ts"],"sourcesContent":["import { isPlatformBrowser } from \"@angular/common\";\r\nimport {\r\n  AfterViewInit,\r\n  ChangeDetectorRef,\r\n  Directive,\r\n  ElementRef,\r\n  EventEmitter,\r\n  forwardRef,\r\n  HostListener,\r\n  Inject,\r\n  Input,\r\n  NgZone,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  PLATFORM_ID,\r\n  ViewChild,\r\n} from \"@angular/core\";\r\nimport {\r\n  ControlValueAccessor,\r\n  FormControl,\r\n  NG_VALIDATORS,\r\n  Validators,\r\n} from \"@angular/forms\";\r\nimport { Location } from \"../interfaces\";\r\nimport PlaceResult = google.maps.places.PlaceResult;\r\nimport AutocompleteOptions = google.maps.places.AutocompleteOptions;\r\n\r\n@Directive({\r\n  selector: \"[matGoogleMapsAutocomplete]\",\r\n  exportAs: \"matGoogleMapsAutocomplete\",\r\n  providers: [\r\n    {\r\n      provide: NG_VALIDATORS,\r\n      useExisting: forwardRef(() => MatGoogleMapsAutocompleteDirective),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class MatGoogleMapsAutocompleteDirective\r\n  implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor {\r\n  @ViewChild(\"inputField\")\r\n  inputField!: ElementRef;\r\n\r\n  autocomplete: google.maps.places.Autocomplete | undefined;\r\n\r\n  @Input()\r\n  address?: PlaceResult | string;\r\n\r\n  @Input()\r\n  country?: string | string[];\r\n\r\n  @Input()\r\n  placeIdOnly?: boolean;\r\n\r\n  @Input()\r\n  strictBounds?: boolean;\r\n\r\n  @Input()\r\n  types?: string[];\r\n\r\n  @Input()\r\n  type?: string;\r\n\r\n  @Input()\r\n  autoCompleteOptions: AutocompleteOptions = {};\r\n\r\n  @Output()\r\n  onChange: EventEmitter<PlaceResult | string | null> = new EventEmitter<\r\n    PlaceResult | string | null\r\n  >();\r\n\r\n  @Output()\r\n  onAutocompleteSelected: EventEmitter<PlaceResult> =\r\n    new EventEmitter<PlaceResult>();\r\n\r\n  @Output()\r\n  onLocationSelected: EventEmitter<Location> = new EventEmitter<Location>();\r\n\r\n  disabled?: boolean;\r\n\r\n  _value?: string | undefined;\r\n\r\n  get value(): string | undefined {\r\n    return this._value;\r\n  }\r\n\r\n  @Input()\r\n  set value(value: string | undefined) {\r\n    this._value = value;\r\n    this.propagateChange(this.value);\r\n    this.cf.markForCheck();\r\n  }\r\n\r\n  propagateChange = (_: any) => { };\r\n\r\n  constructor(\r\n    @Inject(PLATFORM_ID) public platformId: string,\r\n    public elemRef: ElementRef,\r\n    private cf: ChangeDetectorRef,\r\n    private ngZone: NgZone\r\n  ) { }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.autocomplete) {\r\n      google.maps.event.clearInstanceListeners(this.autocomplete);\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.initMap();\r\n  }\r\n\r\n  ngOnInit(): void { }\r\n\r\n  validate(fc: FormControl) {\r\n    return fc.hasValidator(Validators.required) ? !!fc?.value : true;\r\n  }\r\n\r\n  @HostListener(\"change\")\r\n  onChangeInputValue(): void {\r\n    const value = (this.elemRef.nativeElement as HTMLInputElement)?.value;\r\n    this.value = value;\r\n  }\r\n\r\n  public initGoogleMapsAutocomplete() {\r\n\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.propagateChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void { }\r\n\r\n  setDisabledState(isDisabled: boolean): void {\r\n    this.disabled = isDisabled;\r\n  }\r\n\r\n  writeValue(obj: any): void {\r\n    if (obj) {\r\n      this.value = obj;\r\n    }\r\n  }\r\n\r\n  initMap() {\r\n    if (isPlatformBrowser(this.platformId)) {\r\n      const options: AutocompleteOptions = {\r\n        // types: ['address'],\r\n        // componentRestrictions: {country: this.country},\r\n        placeIdOnly: this.placeIdOnly,\r\n        strictBounds: this.strictBounds,\r\n        types: this.types,\r\n      };\r\n\r\n      // tslint:disable-next-line:no-unused-expression\r\n      this.country\r\n        ? (options.componentRestrictions = { country: this.country })\r\n        : null;\r\n      // tslint:disable-next-line:no-unused-expression\r\n      this.country ? (options.types = this.types) : null;\r\n\r\n      this.autoCompleteOptions = Object.assign(\r\n        this.autoCompleteOptions,\r\n        options\r\n      );\r\n\r\n      const autocomplete = new google.maps.places.Autocomplete(\r\n        this.elemRef.nativeElement,\r\n        this.autoCompleteOptions\r\n      );\r\n      this.autocomplete = autocomplete;\r\n      autocomplete.addListener(\"place_changed\", () => {\r\n        this.ngZone.run(() => {\r\n          // get the place result\r\n          const place: PlaceResult = autocomplete.getPlace();\r\n\r\n          this.value = place.formatted_address;\r\n          this.address = place.formatted_address;\r\n          this.onAutocompleteSelected.emit(place);\r\n          if (place.geometry?.location != null) {\r\n            this.onLocationSelected.emit({\r\n              latitude: place.geometry.location.lat(),\r\n              longitude: place.geometry.location.lng(),\r\n            });\r\n          }\r\n        });\r\n      });\r\n    }\r\n  }\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { FlexLayoutModule } from \"@ngbracket/ngx-layout\";\r\nimport { MatGoogleMapsAutocompleteDirective } from \"./directives/mat-google-maps-autocomplete.directive\";\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    FlexLayoutModule,\r\n    MatInputModule,\r\n    MatIconModule,\r\n  ],\r\n  exports: [\r\n    MatGoogleMapsAutocompleteDirective,\r\n  ],\r\n  declarations: [\r\n    MatGoogleMapsAutocompleteDirective,\r\n  ],\r\n})\r\nexport class MatGoogleMapsAutocompleteModule { }\r\n","/*\r\n * Public API Surface of google-maps-autocomplete\r\n */\r\n\r\nexport * from './lib/directives/mat-google-maps-autocomplete.directive';\r\nexport * from './lib/interfaces';\r\nexport * from './lib/mat-google-maps-autocomplete.module';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}