UNPKG

ngx-google-place-autocomplete

Version:

* A simple and lightweight google place autocomplete directive for Angular2

112 lines 10 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, ElementRef, Output, EventEmitter, NgZone } from '@angular/core'; var NgxGooglePlaceAutocompleteDirective = /** @class */ (function () { function NgxGooglePlaceAutocompleteDirective(elRef, zone) { this.zone = zone; this.onSelect = new EventEmitter(); this.element = elRef.nativeElement; } /** * @return {?} */ NgxGooglePlaceAutocompleteDirective.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; /** @type {?} */ var autocomplete = new google.maps.places.Autocomplete(this.element); google.maps.event.addListener(autocomplete, 'place_changed', (/** * @return {?} */ function () { _this.zone.run((/** * @return {?} */ function () { /** @type {?} */ var place = _this.getFormattedAddress(autocomplete.getPlace()); if (place) { _this.onSelect.emit(place); } })); })); }; /** * @param {?} place * @return {?} */ NgxGooglePlaceAutocompleteDirective.prototype.getFormattedAddress = /** * @param {?} place * @return {?} */ function (place) { /** @type {?} */ var location_obj = { fullAddress: null, city: null, state: null, streetNumber: null, streetName: null, country: null, postalCode: null }; for (var i in place.address_components) { /** @type {?} */ var item = place.address_components[i]; location_obj['fullAddress'] = place.formatted_address; if (item['types'].indexOf('locality') > -1) { location_obj['city'] = item['long_name']; } else if (item['types'].indexOf('administrative_area_level_1') > -1) { location_obj['state'] = item['short_name']; } else if (item['types'].indexOf('street_number') > -1) { location_obj['streetNumber'] = item['short_name']; } else if (item['types'].indexOf('route') > -1) { location_obj['streetName'] = item['long_name']; } else if (item['types'].indexOf('country') > -1) { location_obj['country'] = item['long_name']; } else if (item['types'].indexOf('postal_code') > -1) { location_obj['postalCode'] = item['short_name']; } } return location_obj; }; NgxGooglePlaceAutocompleteDirective.decorators = [ { type: Directive, args: [{ selector: '[ngx-google-place]' },] } ]; /** @nocollapse */ NgxGooglePlaceAutocompleteDirective.ctorParameters = function () { return [ { type: ElementRef }, { type: NgZone } ]; }; NgxGooglePlaceAutocompleteDirective.propDecorators = { onSelect: [{ type: Output }] }; return NgxGooglePlaceAutocompleteDirective; }()); export { NgxGooglePlaceAutocompleteDirective }; if (false) { /** * @type {?} * @private */ NgxGooglePlaceAutocompleteDirective.prototype.element; /** @type {?} */ NgxGooglePlaceAutocompleteDirective.prototype.onSelect; /** * @type {?} * @private */ NgxGooglePlaceAutocompleteDirective.prototype.zone; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWdvb2dsZS1wbGFjZS1hdXRvY29tcGxldGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWdvb2dsZS1wbGFjZS1hdXRvY29tcGxldGUvIiwic291cmNlcyI6WyJsaWIvbmd4LWdvb2dsZS1wbGFjZS1hdXRvY29tcGxldGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk1RjtJQVNJLDZDQUFZLEtBQWlCLEVBQVUsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7UUFGekMsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3ZELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztJQUN2QyxDQUFDOzs7O0lBRUQsc0RBQVE7OztJQUFSO1FBQUEsaUJBV0M7O1lBVlMsWUFBWSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFdEUsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxlQUFlOzs7UUFBRTtZQUN6RCxLQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7OztZQUFDOztvQkFDSixLQUFLLEdBQUcsS0FBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDL0QsSUFBSSxLQUFLLEVBQUU7b0JBQ1AsS0FBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzdCO1lBQ0wsQ0FBQyxFQUFDLENBQUM7UUFDUCxDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7Ozs7O0lBRUQsaUVBQW1COzs7O0lBQW5CLFVBQW9CLEtBQUs7O1lBQ2YsWUFBWSxHQUFHO1lBQ2pCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLElBQUksRUFBRSxJQUFJO1lBQ1YsS0FBSyxFQUFFLElBQUk7WUFDWCxZQUFZLEVBQUUsSUFBSTtZQUNsQixVQUFVLEVBQUUsSUFBSTtZQUNoQixPQUFPLEVBQUUsSUFBSTtZQUNiLFVBQVUsRUFBRSxJQUFJO1NBQ25CO1FBRUQsS0FBSyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsa0JBQWtCLEVBQUU7O2dCQUM5QixJQUFJLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztZQUN4QyxZQUFZLENBQUMsYUFBYSxDQUFDLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDO1lBRXRELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDeEMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUM1QztpQkFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDbEUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUM5QztpQkFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3BELFlBQVksQ0FBQyxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDckQ7aUJBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUM1QyxZQUFZLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ2xEO2lCQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDOUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMvQztpQkFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2xELFlBQVksQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDbkQ7U0FDSjtRQUVELE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7O2dCQXpESixTQUFTLFNBQUM7b0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtpQkFDakM7Ozs7Z0JBTm1CLFVBQVU7Z0JBQWdDLE1BQU07OzsyQkFXL0QsTUFBTTs7SUFtRFgsMENBQUM7Q0FBQSxBQTFERCxJQTBEQztTQXREWSxtQ0FBbUM7Ozs7OztJQUU1QyxzREFBa0M7O0lBQ2xDLHVEQUEyRDs7Ozs7SUFFNUIsbURBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmRlY2xhcmUgbGV0IGdvb2dsZTogYW55O1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tuZ3gtZ29vZ2xlLXBsYWNlXSdcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBOZ3hHb29nbGVQbGFjZUF1dG9jb21wbGV0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgQE91dHB1dCgpIG9uU2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihlbFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSB6b25lOiBOZ1pvbmUpIHtcclxuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGNvbnN0IGF1dG9jb21wbGV0ZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlKHRoaXMuZWxlbWVudCk7XHJcblxyXG4gICAgICAgIGdvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKGF1dG9jb21wbGV0ZSwgJ3BsYWNlX2NoYW5nZWQnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGxhY2UgPSB0aGlzLmdldEZvcm1hdHRlZEFkZHJlc3MoYXV0b2NvbXBsZXRlLmdldFBsYWNlKCkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHBsYWNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblNlbGVjdC5lbWl0KHBsYWNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Rm9ybWF0dGVkQWRkcmVzcyhwbGFjZSkge1xyXG4gICAgICAgIGNvbnN0IGxvY2F0aW9uX29iaiA9IHtcclxuICAgICAgICAgICAgZnVsbEFkZHJlc3M6IG51bGwsXHJcbiAgICAgICAgICAgIGNpdHk6IG51bGwsXHJcbiAgICAgICAgICAgIHN0YXRlOiBudWxsLFxyXG4gICAgICAgICAgICBzdHJlZXROdW1iZXI6IG51bGwsXHJcbiAgICAgICAgICAgIHN0cmVldE5hbWU6IG51bGwsXHJcbiAgICAgICAgICAgIGNvdW50cnk6IG51bGwsXHJcbiAgICAgICAgICAgIHBvc3RhbENvZGU6IG51bGxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpIGluIHBsYWNlLmFkZHJlc3NfY29tcG9uZW50cykge1xyXG4gICAgICAgICAgICBjb25zdCBpdGVtID0gcGxhY2UuYWRkcmVzc19jb21wb25lbnRzW2ldO1xyXG4gICAgICAgICAgICBsb2NhdGlvbl9vYmpbJ2Z1bGxBZGRyZXNzJ10gPSBwbGFjZS5mb3JtYXR0ZWRfYWRkcmVzcztcclxuXHJcbiAgICAgICAgICAgIGlmIChpdGVtWyd0eXBlcyddLmluZGV4T2YoJ2xvY2FsaXR5JykgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgbG9jYXRpb25fb2JqWydjaXR5J10gPSBpdGVtWydsb25nX25hbWUnXTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtWyd0eXBlcyddLmluZGV4T2YoJ2FkbWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMScpID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIGxvY2F0aW9uX29ialsnc3RhdGUnXSA9IGl0ZW1bJ3Nob3J0X25hbWUnXTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtWyd0eXBlcyddLmluZGV4T2YoJ3N0cmVldF9udW1iZXInKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBsb2NhdGlvbl9vYmpbJ3N0cmVldE51bWJlciddID0gaXRlbVsnc2hvcnRfbmFtZSddO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW1bJ3R5cGVzJ10uaW5kZXhPZigncm91dGUnKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBsb2NhdGlvbl9vYmpbJ3N0cmVldE5hbWUnXSA9IGl0ZW1bJ2xvbmdfbmFtZSddO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW1bJ3R5cGVzJ10uaW5kZXhPZignY291bnRyeScpID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIGxvY2F0aW9uX29ialsnY291bnRyeSddID0gaXRlbVsnbG9uZ19uYW1lJ107XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbVsndHlwZXMnXS5pbmRleE9mKCdwb3N0YWxfY29kZScpID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIGxvY2F0aW9uX29ialsncG9zdGFsQ29kZSddID0gaXRlbVsnc2hvcnRfbmFtZSddO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbG9jYXRpb25fb2JqO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==