UNPKG

ngx-amap

Version:

[![npm](https://img.shields.io/npm/v/ngx-amap.svg)][npm-badge-url] [![npm](https://img.shields.io/npm/dm/ngx-amap.svg)][npm-badge-url] [![Build Status](https://travis-ci.org/xieziyu/ngx-amap.svg?branch=master)][ci-url]

173 lines 13 kB
/** * @fileoverview added by tsickle * Generated from: directives/input-amap-autocomplete/input-amap-autocomplete.directive.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Input, Output, EventEmitter, Directive, ElementRef, NgZone, } from '@angular/core'; import { zip } from 'rxjs'; import { AmapAutocompleteService, } from '../../services/amap-autocomplete/amap-autocomplete.service'; import { LoggerService } from '../../shared/logger/logger.service'; import { EventBinderService } from '../../shared/event-binder.service'; import { getOptions, ChangeFilter } from '../../utils'; /** @type {?} */ const TAG = 'amap-autocomplete'; /** @type {?} */ const AutocompleteOptions = ['type', 'city', 'datatype', 'citylimit']; export class InputAmapAutocompleteDirective { /** * @param {?} os * @param {?} binder * @param {?} el * @param {?} logger * @param {?} ngZone */ constructor(os, binder, el, logger, ngZone) { this.os = os; this.binder = binder; this.el = el; this.logger = logger; this.ngZone = ngZone; // ---- Events ---- this.naReady = new EventEmitter(); this.inited = false; /** @type {?} */ const target = this.os.get(); this.naComplete = this.binder.bindEvent(target, 'complete'); this.naSelect = this.binder.bindEvent(target, 'select'); this.naChoose = this.binder.bindEvent(target, 'choose'); this.naError = this.binder.bindEvent(target, 'error'); } /** * @param {?} changes * @return {?} */ ngOnChanges(changes) { /** @type {?} */ const filter = ChangeFilter.of(changes); /** @type {?} */ const plugin = this.os.get(); if (!this.inited) { this.logger.d(TAG, 'initializing ...'); /** @type {?} */ const options = getOptions(this, AutocompleteOptions); options.input = this.el.nativeElement; this.logger.d(TAG, 'options:', options); this.os.create(options).subscribe((/** * @param {?} m * @return {?} */ m => { this.ngZone.run((/** * @return {?} */ () => this.naReady.emit(m))); this.logger.d(TAG, 'autocomplete is ready.'); })); this.inited = true; } else { zip(filter.has('city'), plugin).subscribe((/** * @param {?} __0 * @return {?} */ ([v, p]) => p.setCity(v))); zip(filter.has('type'), plugin).subscribe((/** * @param {?} __0 * @return {?} */ ([v, p]) => p.setType(v))); zip(filter.has('citylimit'), plugin).subscribe((/** * @param {?} __0 * @return {?} */ ([v, p]) => p.setCityLimit(v))); } } } InputAmapAutocompleteDirective.decorators = [ { type: Directive, args: [{ selector: 'input[amapAutocomplete]', },] } ]; /** @nocollapse */ InputAmapAutocompleteDirective.ctorParameters = () => [ { type: AmapAutocompleteService }, { type: EventBinderService }, { type: ElementRef }, { type: LoggerService }, { type: NgZone } ]; InputAmapAutocompleteDirective.propDecorators = { type: [{ type: Input }], city: [{ type: Input }], datatype: [{ type: Input }], citylimit: [{ type: Input }], naReady: [{ type: Output }], naComplete: [{ type: Output }], naSelect: [{ type: Output }], naChoose: [{ type: Output }], naError: [{ type: Output }] }; if (false) { /** * 输入提示时限定POI类型,多个类型用“|”分隔 * @type {?} */ InputAmapAutocompleteDirective.prototype.type; /** * 输入提示时限定城市 * @type {?} */ InputAmapAutocompleteDirective.prototype.city; /** * 返回的数据类型 * @type {?} */ InputAmapAutocompleteDirective.prototype.datatype; /** * 是否强制限制在设置的城市内搜索 * @type {?} */ InputAmapAutocompleteDirective.prototype.citylimit; /** @type {?} */ InputAmapAutocompleteDirective.prototype.naReady; /** @type {?} */ InputAmapAutocompleteDirective.prototype.naComplete; /** @type {?} */ InputAmapAutocompleteDirective.prototype.naSelect; /** @type {?} */ InputAmapAutocompleteDirective.prototype.naChoose; /** @type {?} */ InputAmapAutocompleteDirective.prototype.naError; /** * @type {?} * @private */ InputAmapAutocompleteDirective.prototype.inited; /** * @type {?} * @protected */ InputAmapAutocompleteDirective.prototype.os; /** * @type {?} * @protected */ InputAmapAutocompleteDirective.prototype.binder; /** * @type {?} * @private */ InputAmapAutocompleteDirective.prototype.el; /** * @type {?} * @private */ InputAmapAutocompleteDirective.prototype.logger; /** * @type {?} * @private */ InputAmapAutocompleteDirective.prototype.ngZone; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYW1hcC1hdXRvY29tcGxldGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWFtYXAvIiwic291cmNlcyI6WyJkaXJlY3RpdmVzL2lucHV0LWFtYXAtYXV0b2NvbXBsZXRlL2lucHV0LWFtYXAtYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBQ1QsVUFBVSxFQUdWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFDTCx1QkFBdUIsR0FFeEIsTUFBTSw0REFBNEQsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7O01BRWpELEdBQUcsR0FBRyxtQkFBbUI7O01BQ3pCLG1CQUFtQixHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDO0FBS3JFLE1BQU0sT0FBTyw4QkFBOEI7Ozs7Ozs7O0lBMkJ6QyxZQUNZLEVBQTJCLEVBQzNCLE1BQTBCLEVBQzVCLEVBQWMsRUFDZCxNQUFxQixFQUNyQixNQUFjO1FBSlosT0FBRSxHQUFGLEVBQUUsQ0FBeUI7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFDNUIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTs7UUFaZCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU0vQixXQUFNLEdBQUcsS0FBSyxDQUFDOztjQVFmLE1B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Ozs7Ozs7SUFuQlAsOENBQXNCOzs7OztJQUl0Qiw4Q0FBc0I7Ozs7O0lBSXRCLGtEQUE2Qzs7Ozs7SUFJN0MsbURBQTRCOztJQUc1QixpREFBdUM7O0lBQ3ZDLG9EQUF3Qzs7SUFDeEMsa0RBQXNDOztJQUN0QyxrREFBc0M7O0lBQ3RDLGlEQUFxQzs7Ozs7SUFFckMsZ0RBQXVCOzs7OztJQUVyQiw0Q0FBcUM7Ozs7O0lBQ3JDLGdEQUFvQzs7Ozs7SUFDcEMsNENBQXNCOzs7OztJQUN0QixnREFBNkI7Ozs7O0lBQzdCLGdEQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBPbkNoYW5nZXMsXG4gIE5nWm9uZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB6aXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEFtYXBBdXRvY29tcGxldGVTZXJ2aWNlLFxuICBBTWFwQXV0b2NvbXBsZXRlLFxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbWFwLWF1dG9jb21wbGV0ZS9hbWFwLWF1dG9jb21wbGV0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IEV2ZW50QmluZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9ldmVudC1iaW5kZXIuc2VydmljZSc7XG5pbXBvcnQgeyBnZXRPcHRpb25zLCBDaGFuZ2VGaWx0ZXIgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmNvbnN0IFRBRyA9ICdhbWFwLWF1dG9jb21wbGV0ZSc7XG5jb25zdCBBdXRvY29tcGxldGVPcHRpb25zID0gWyd0eXBlJywgJ2NpdHknLCAnZGF0YXR5cGUnLCAnY2l0eWxpbWl0J107XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2lucHV0W2FtYXBBdXRvY29tcGxldGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRBbWFwQXV0b2NvbXBsZXRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgLy8gLS0tLSBPcHRpb25zIC0tLS1cbiAgLyoqXG4gICAqIOi+k+WFpeaPkOekuuaXtumZkOWumlBPSeexu+Wei++8jOWkmuS4quexu+Wei+eUqOKAnHzigJ3liIbpmpRcbiAgICovXG4gIEBJbnB1dCgpIHR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIOi+k+WFpeaPkOekuuaXtumZkOWumuWfjuW4glxuICAgKi9cbiAgQElucHV0KCkgY2l0eTogc3RyaW5nO1xuICAvKipcbiAgICog6L+U5Zue55qE5pWw5o2u57G75Z6LXG4gICAqL1xuICBASW5wdXQoKSBkYXRhdHlwZTogQU1hcEF1dG9jb21wbGV0ZS5EYXRhVHlwZTtcbiAgLyoqXG4gICAqIOaYr+WQpuW8uuWItumZkOWItuWcqOiuvue9rueahOWfjuW4guWGheaQnOe0olxuICAgKi9cbiAgQElucHV0KCkgY2l0eWxpbWl0OiBib29sZWFuO1xuXG4gIC8vIC0tLS0gRXZlbnRzIC0tLS1cbiAgQE91dHB1dCgpIG5hUmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBuYUNvbXBsZXRlOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgpIG5hU2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgpIG5hQ2hvb3NlOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgpIG5hRXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gIHByaXZhdGUgaW5pdGVkID0gZmFsc2U7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvczogQW1hcEF1dG9jb21wbGV0ZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGJpbmRlcjogRXZlbnRCaW5kZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgKSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5vcy5nZXQoKTtcbiAgICB0aGlzLm5hQ29tcGxldGUgPSB0aGlzLmJpbmRlci5iaW5kRXZlbnQodGFyZ2V0LCAnY29tcGxldGUnKTtcbiAgICB0aGlzLm5hU2VsZWN0ID0gdGhpcy5iaW5kZXIuYmluZEV2ZW50KHRhcmdldCwgJ3NlbGVjdCcpO1xuICAgIHRoaXMubmFDaG9vc2UgPSB0aGlzLmJpbmRlci5iaW5kRXZlbnQodGFyZ2V0LCAnY2hvb3NlJyk7XG4gICAgdGhpcy5uYUVycm9yID0gdGhpcy5iaW5kZXIuYmluZEV2ZW50KHRhcmdldCwgJ2Vycm9yJyk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc3QgZmlsdGVyID0gQ2hhbmdlRmlsdGVyLm9mKGNoYW5nZXMpO1xuICAgIGNvbnN0IHBsdWdpbiA9IHRoaXMub3MuZ2V0KCk7XG4gICAgaWYgKCF0aGlzLmluaXRlZCkge1xuICAgICAgdGhpcy5sb2dnZXIuZChUQUcsICdpbml0aWFsaXppbmcgLi4uJyk7XG4gICAgICBjb25zdCBvcHRpb25zID0gZ2V0T3B0aW9uczxBTWFwQXV0b2NvbXBsZXRlLk9wdGlvbnM+KHRoaXMsIEF1dG9jb21wbGV0ZU9wdGlvbnMpO1xuICAgICAgb3B0aW9ucy5pbnB1dCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICAgIHRoaXMubG9nZ2VyLmQoVEFHLCAnb3B0aW9uczonLCBvcHRpb25zKTtcbiAgICAgIHRoaXMub3MuY3JlYXRlKG9wdGlvbnMpLnN1YnNjcmliZShtID0+IHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMubmFSZWFkeS5lbWl0KG0pKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZChUQUcsICdhdXRvY29tcGxldGUgaXMgcmVhZHkuJyk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuaW5pdGVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgemlwKGZpbHRlci5oYXM8c3RyaW5nPignY2l0eScpLCBwbHVnaW4pLnN1YnNjcmliZSgoW3YsIHBdKSA9PiBwLnNldENpdHkodikpO1xuICAgICAgemlwKGZpbHRlci5oYXM8c3RyaW5nPigndHlwZScpLCBwbHVnaW4pLnN1YnNjcmliZSgoW3YsIHBdKSA9PiBwLnNldFR5cGUodikpO1xuICAgICAgemlwKGZpbHRlci5oYXM8Ym9vbGVhbj4oJ2NpdHlsaW1pdCcpLCBwbHVnaW4pLnN1YnNjcmliZSgoW3YsIHBdKSA9PiBwLnNldENpdHlMaW1pdCh2KSk7XG4gICAgfVxuICB9XG59XG4iXX0=