ng-gplace-autocomplete
Version:
An angular componet for google maps autocomplete!
141 lines (136 loc) • 5.21 kB
JavaScript
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