ngx-amap
Version:
[][npm-badge-url] [][npm-badge-url] [][ci-url]
173 lines • 13 kB
JavaScript
/**
* @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=