ng-gplace-autocomplete
Version:
An angular componet for google maps autocomplete!
122 lines • 9.38 kB
JavaScript
/**
* @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=