UNPKG

ng-gplace-autocomplete

Version:

An angular componet for google maps autocomplete!

122 lines 9.38 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /// <reference path="../../node_modules/@types/googlemaps/index.d.ts"/> import { Component, Input, Output, ViewChild, EventEmitter, NgZone } from '@angular/core'; // 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; }()); export { NgAutocompleteComponent }; if (false) { /** @type {?} */ NgAutocompleteComponent.prototype.style; /** @type {?} */ NgAutocompleteComponent.prototype.placeholder; /** @type {?} */ NgAutocompleteComponent.prototype.addressType; /** @type {?} */ NgAutocompleteComponent.prototype.country; /** @type {?} */ NgAutocompleteComponent.prototype.onAddressChange; /** @type {?} */ NgAutocompleteComponent.prototype.addresstext; /** @type {?} */ NgAutocompleteComponent.prototype.autocompleteInput; /** @type {?} */ NgAutocompleteComponent.prototype.queryWait; /** * @type {?} * @private */ NgAutocompleteComponent.prototype.ngZone; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZ3BsYWNlLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1ncGxhY2UtYXV0b2NvbXBsZXRlLyIsInNvdXJjZXMiOlsibGliL25nLWdwbGFjZS1hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWlCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFakg7SUFPRSxpQ0FBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFFekIsZ0JBQVcsR0FBVyxtQkFBbUIsQ0FBQTtRQUV6QyxZQUFPLEdBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixvQkFBZSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBTDVCLENBQUM7Ozs7SUFXdkMsaURBQWU7OztJQUFmO1FBQ0UsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQzs7Ozs7SUFFTyxzREFBb0I7Ozs7SUFBNUI7UUFBQSxpQkEwQkM7O1lBekJPLFlBQVksR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDckY7WUFDRSxxQkFBcUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hELEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxzQ0FBc0M7U0FDakUsQ0FBQztRQUNKLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsZUFBZTs7O1FBQUU7WUFDM0QsS0FBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHOzs7WUFBQzs7b0JBQ1IsS0FBSyxHQUFHLFlBQVksQ0FBQyxRQUFRLEVBQUU7Z0JBRXJDLGVBQWU7Z0JBQ2YsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRTtvQkFDM0QsT0FBTztpQkFDUjs7O29CQUdLLElBQUksR0FBRztvQkFDWCxRQUFRLEVBQUU7d0JBQ1IsR0FBRyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRTt3QkFDbEMsR0FBRyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRTtxQkFDbkM7b0JBQ0QsS0FBSyxFQUFFLEtBQUs7aUJBQ2I7Z0JBQ0QsS0FBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QixDQUFDLEVBQUMsQ0FBQztRQUNMLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7SUFFRCw2Q0FBVzs7OztJQUFYLFVBQVksS0FBVTtRQUNwQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDOztnQkFwREYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLG1JQUFzRDs7aUJBRXZEOzs7O2dCQU5rRixNQUFNOzs7d0JBVXRGLEtBQUs7OEJBQ0wsS0FBSzs4QkFDTCxLQUFLOzBCQUNMLEtBQUs7a0NBQ0wsTUFBTTs4QkFDTixTQUFTLFNBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7SUF3QzlDLDhCQUFDO0NBQUEsQUFyREQsSUFxREM7U0FoRFksdUJBQXVCOzs7SUFHbEMsd0NBQW9COztJQUNwQiw4Q0FBa0Q7O0lBQ2xELDhDQUE2Qjs7SUFDN0IsMENBQW9DOztJQUNwQyxrREFBa0U7O0lBQ2xFLDhDQUErRDs7SUFFL0Qsb0RBQTBCOztJQUMxQiw0Q0FBbUI7Ozs7O0lBVFAseUNBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uLy4uL25vZGVfbW9kdWxlcy9AdHlwZXMvZ29vZ2xlbWFwcy9pbmRleC5kLnRzXCIvPlxyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBFdmVudEVtaXR0ZXIsIEFmdGVyVmlld0luaXQsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG4vLyBpbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ25nLWF1dG9jb21wbGV0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL25nLWdwbGFjZS1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL25nLWdwbGFjZS1hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdBdXRvY29tcGxldGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSkgeyB9XHJcbiAgQElucHV0KCkgc3R5bGU6IGFueTtcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlYXJjaCBhbiBhZGRyZXNzJ1xyXG4gIEBJbnB1dCgpIGFkZHJlc3NUeXBlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY291bnRyeTogc3RyaW5nW10gPSBbJ3VzJ107XHJcbiAgQE91dHB1dCgpIG9uQWRkcmVzc0NoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQFZpZXdDaGlsZCgnYXV0b2NvbXBsZXRlJywgeyBzdGF0aWM6IGZhbHNlIH0pIGFkZHJlc3N0ZXh0OiBhbnk7XHJcblxyXG4gIGF1dG9jb21wbGV0ZUlucHV0OiBzdHJpbmc7XHJcbiAgcXVlcnlXYWl0OiBib29sZWFuO1xyXG4gIFxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuZ2V0UGxhY2VBdXRvY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UGxhY2VBdXRvY29tcGxldGUoKSB7XHJcbiAgICBjb25zdCBhdXRvY29tcGxldGUgPSBuZXcgZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZSh0aGlzLmFkZHJlc3N0ZXh0Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgIHtcclxuICAgICAgICBjb21wb25lbnRSZXN0cmljdGlvbnM6IHsgY291bnRyeTogdGhpcy5jb3VudHJ5IH0sXHJcbiAgICAgICAgdHlwZXM6IFt0aGlzLmFkZHJlc3NUeXBlXSAvLyAnZXN0YWJsaXNobWVudCd8J2FkZHJlc3MnfCdnZW9jb2RlJ1xyXG4gICAgICB9KTtcclxuICAgIGdvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKGF1dG9jb21wbGV0ZSwgJ3BsYWNlX2NoYW5nZWQnLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcGxhY2UgPSBhdXRvY29tcGxldGUuZ2V0UGxhY2UoKTtcclxuXHJcbiAgICAgICAgLy92ZXJpZnkgcmVzdWx0XHJcbiAgICAgICAgaWYgKHBsYWNlLmdlb21ldHJ5ID09PSB1bmRlZmluZWQgfHwgcGxhY2UuZ2VvbWV0cnkgPT09IG51bGwpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdJbnNpZGUgbmctZ3BsYWNlLWF1dG9jb21wbGV0ZScscGxhY2UuZ2VvbWV0cnkubG9jYXRpb24ubGF0KCkscGxhY2UuZ2VvbWV0cnkubG9jYXRpb24ubG5nKCkpXHJcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgICAgIGxvY2F0aW9uOiB7XHJcbiAgICAgICAgICAgIGxhdDogcGxhY2UuZ2VvbWV0cnkubG9jYXRpb24ubGF0KCksXHJcbiAgICAgICAgICAgIGxuZzogcGxhY2UuZ2VvbWV0cnkubG9jYXRpb24ubG5nKClcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBwbGFjZTogcGxhY2VcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudChkYXRhKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGludm9rZUV2ZW50KHBsYWNlOiBhbnkpIHtcclxuICAgIHRoaXMub25BZGRyZXNzQ2hhbmdlLmVtaXQocGxhY2UpO1xyXG4gIH1cclxufVxyXG4iXX0=