UNPKG

ng-gplace-autocomplete

Version:

An angular componet for google maps autocomplete!

141 lines (136 loc) 5.21 kB
import { ɵɵdefineInjectable, Injectable, Component, NgZone, Input, Output, ViewChild, EventEmitter, NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { FormsModule } from '@angular/forms'; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var NgGplaceAutocompleteService = /** @class */ (function () { function NgGplaceAutocompleteService() { } NgGplaceAutocompleteService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ NgGplaceAutocompleteService.ctorParameters = function () { return []; }; /** @nocollapse */ NgGplaceAutocompleteService.ngInjectableDef = ɵɵdefineInjectable({ factory: function NgGplaceAutocompleteService_Factory() { return new NgGplaceAutocompleteService(); }, token: NgGplaceAutocompleteService, providedIn: "root" }); return NgGplaceAutocompleteService; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ // import { FormGroup, FormBuilder } from '@angular/forms'; var NgAutocompleteComponent = /** @class */ (function () { function NgAutocompleteComponent(ngZone) { this.ngZone = ngZone; this.placeholder = 'Search an address'; this.country = ['us']; this.onAddressChange = new EventEmitter(); } /** * @return {?} */ NgAutocompleteComponent.prototype.ngAfterViewInit = /** * @return {?} */ function () { this.getPlaceAutocomplete(); }; /** * @private * @return {?} */ NgAutocompleteComponent.prototype.getPlaceAutocomplete = /** * @private * @return {?} */ function () { var _this = this; /** @type {?} */ var autocomplete = new google.maps.places.Autocomplete(this.addresstext.nativeElement, { componentRestrictions: { country: this.country }, types: [this.addressType] // 'establishment'|'address'|'geocode' }); google.maps.event.addListener(autocomplete, 'place_changed', (/** * @return {?} */ function () { _this.ngZone.run((/** * @return {?} */ function () { /** @type {?} */ var place = autocomplete.getPlace(); //verify result if (place.geometry === undefined || place.geometry === null) { return; } // console.log('Inside ng-gplace-autocomplete',place.geometry.location.lat(),place.geometry.location.lng()) /** @type {?} */ var data = { location: { lat: place.geometry.location.lat(), lng: place.geometry.location.lng() }, place: place }; _this.invokeEvent(data); })); })); }; /** * @param {?} place * @return {?} */ NgAutocompleteComponent.prototype.invokeEvent = /** * @param {?} place * @return {?} */ function (place) { this.onAddressChange.emit(place); }; NgAutocompleteComponent.decorators = [ { type: Component, args: [{ selector: 'ng-autocomplete', template: "<input #autocomplete type=\"text\" [ngStyle]=\"style\" [placeholder]=\"placeholder\" [(ngModel)]=\"autocompleteInput\">", styles: ["input{margin:0;border:1px solid #778899}"] }] } ]; /** @nocollapse */ NgAutocompleteComponent.ctorParameters = function () { return [ { type: NgZone } ]; }; NgAutocompleteComponent.propDecorators = { style: [{ type: Input }], placeholder: [{ type: Input }], addressType: [{ type: Input }], country: [{ type: Input }], onAddressChange: [{ type: Output }], addresstext: [{ type: ViewChild, args: ['autocomplete', { static: false },] }] }; return NgAutocompleteComponent; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var NgAutocompleteModule = /** @class */ (function () { function NgAutocompleteModule() { } NgAutocompleteModule.decorators = [ { type: NgModule, args: [{ declarations: [NgAutocompleteComponent], imports: [ CommonModule, FormsModule ], exports: [NgAutocompleteComponent] },] } ]; return NgAutocompleteModule; }()); export { NgAutocompleteComponent, NgAutocompleteModule, NgGplaceAutocompleteService }; //# sourceMappingURL=ng-gplace-autocomplete.js.map