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]

263 lines 15 kB
/** * @fileoverview added by tsickle * Generated from: services/amap-autocomplete/amap-autocomplete.service.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable, NgZone } from '@angular/core'; import { ReplaySubject, Observable } from 'rxjs'; import { map, switchMap } from 'rxjs/operators'; import { AmapPluginLoaderService } from '../../shared/amap-plugin-loader.service'; import { EventBinderService } from '../../shared/event-binder.service'; import { LoggerService } from '../../shared/logger/logger.service'; import * as i0 from "@angular/core"; import * as i1 from "../../shared/amap-plugin-loader.service"; import * as i2 from "../../shared/event-binder.service"; import * as i3 from "../../shared/logger/logger.service"; /** @type {?} */ const TAG = 'AmapAutocomplete'; export var AMapAutocomplete; (function (AMapAutocomplete) { /** * @record */ function Options() { } AMapAutocomplete.Options = Options; if (false) { /** * 输入提示时限定POI类型,多个类型用“|”分隔 * @type {?|undefined} */ Options.prototype.type; /** * 输入提示时限定城市 * @type {?|undefined} */ Options.prototype.city; /** * 返回的数据类型 * @type {?|undefined} */ Options.prototype.datatype; /** * 是否强制限制在设置的城市内搜索 * @type {?|undefined} */ Options.prototype.citylimit; /** * 指定输入框 * @type {?|undefined} */ Options.prototype.input; /** * 指定输出面板 * @type {?|undefined} */ Options.prototype.output; /** * 是否在input位于页面较下方的时候自动将输入面板显示在input上方以避免被遮挡 * @type {?|undefined} */ Options.prototype.outPutDirAuto; } /** * @record */ function Tip() { } AMapAutocomplete.Tip = Tip; if (false) { /** * 名称 * @type {?} */ Tip.prototype.name; /** * 所属区域 * @type {?} */ Tip.prototype.district; /** * 区域编码 * @type {?} */ Tip.prototype.adcode; /** * 地址 * @type {?} */ Tip.prototype.address; /** * 城市 * @type {?} */ Tip.prototype.city; /** * ID * @type {?} */ Tip.prototype.id; /** * 坐标经纬度 * @type {?} */ Tip.prototype.location; /** * 类型编码 * @type {?} */ Tip.prototype.typecode; } /** * @record */ function SearchResult() { } AMapAutocomplete.SearchResult = SearchResult; if (false) { /** * 查询状态说明 * @type {?} */ SearchResult.prototype.info; /** * 输入提示条数 * @type {?} */ SearchResult.prototype.count; /** * 输入提示列表 * @type {?} */ SearchResult.prototype.tips; } })(AMapAutocomplete || (AMapAutocomplete = {})); /** * @record */ export function AutocompleteSearchResult() { } if (false) { /** @type {?} */ AutocompleteSearchResult.prototype.status; /** @type {?} */ AutocompleteSearchResult.prototype.result; } export class AmapAutocompleteService { /** * @param {?} plugin * @param {?} binder * @param {?} logger * @param {?} ngZone */ constructor(plugin, binder, logger, ngZone) { this.plugin = plugin; this.binder = binder; this.logger = logger; this.ngZone = ngZone; this.ac$ = new ReplaySubject(1); } /** * 获取插件 * @return {?} */ get() { return this.ac$.asObservable(); } /** * 侦听事件 * @param {?} event * @return {?} */ on(event) { return this.binder.bindEvent(this.get(), event); } /** * 创建插件 * @param {?} options * @return {?} */ create(options) { return this.plugin.load('AMap.Autocomplete').pipe(map((/** * @return {?} */ () => { this.ac = this.ngZone.runOutsideAngular((/** * @return {?} */ () => new AMap.Autocomplete(options))); this.logger.d(TAG, 'new autocomplete created.'); this.ac$.next(this.ac); this.ac$.complete(); return this.ac; }))); } /** * 搜索 * @param {?} address * @return {?} */ search(address) { return this.get().pipe(switchMap((/** * @param {?} ac * @return {?} */ ac => new Observable((/** * @param {?} observer * @return {?} */ (observer) => { ac.search(address, (/** * @param {?} status * @param {?} result * @return {?} */ (status, result) => { observer.next({ status, result }); observer.complete(); })); }))))); } } AmapAutocompleteService.decorators = [ { type: Injectable, args: [{ providedIn: 'root', },] } ]; /** @nocollapse */ AmapAutocompleteService.ctorParameters = () => [ { type: AmapPluginLoaderService }, { type: EventBinderService }, { type: LoggerService }, { type: NgZone } ]; /** @nocollapse */ AmapAutocompleteService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function AmapAutocompleteService_Factory() { return new AmapAutocompleteService(i0.ɵɵinject(i1.AmapPluginLoaderService), i0.ɵɵinject(i2.EventBinderService), i0.ɵɵinject(i3.LoggerService), i0.ɵɵinject(i0.NgZone)); }, token: AmapAutocompleteService, providedIn: "root" }); if (false) { /** * @type {?} * @private */ AmapAutocompleteService.prototype.ac; /** * @type {?} * @private */ AmapAutocompleteService.prototype.ac$; /** * @type {?} * @private */ AmapAutocompleteService.prototype.plugin; /** * @type {?} * @private */ AmapAutocompleteService.prototype.binder; /** * @type {?} * @private */ AmapAutocompleteService.prototype.logger; /** * @type {?} * @private */ AmapAutocompleteService.prototype.ngZone; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hcC1hdXRvY29tcGxldGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1hbWFwLyIsInNvdXJjZXMiOlsic2VydmljZXMvYW1hcC1hdXRvY29tcGxldGUvYW1hcC1hdXRvY29tcGxldGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7TUFJN0QsR0FBRyxHQUFHLGtCQUFrQjtBQUU5QixNQUFNLEtBQVcsZ0JBQWdCLENBaUZoQztBQWpGRCxXQUFpQixnQkFBZ0I7Ozs7SUFFL0Isc0JBNkJDOzs7Ozs7O1FBekJDLHVCQUFjOzs7OztRQUlkLHVCQUFjOzs7OztRQUlkLDJCQUFvQjs7Ozs7UUFJcEIsNEJBQW9COzs7OztRQUlwQix3QkFBa0M7Ozs7O1FBSWxDLHlCQUFpQzs7Ozs7UUFJakMsZ0NBQXdCOzs7OztJQUUxQixrQkFpQ0M7Ozs7Ozs7UUE3QkMsbUJBQWE7Ozs7O1FBSWIsdUJBQWlCOzs7OztRQUlqQixxQkFBZTs7Ozs7UUFJZixzQkFBZ0I7Ozs7O1FBSWhCLG1CQUFZOzs7OztRQUlaLGlCQUFXOzs7OztRQUlYLHVCQUFzQjs7Ozs7UUFJdEIsdUJBQWlCOzs7OztJQUVuQiwyQkFhQzs7Ozs7OztRQVRDLDRCQUFhOzs7OztRQUliLDZCQUFjOzs7OztRQUlkLDRCQUFZOztBQUdoQixDQUFDLEVBakZnQixnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBaUZoQzs7OztBQUVELDhDQUdDOzs7SUFGQywwQ0FBc0M7O0lBQ3RDLDBDQUErQzs7QUFNakQsTUFBTSxPQUFPLHVCQUF1Qjs7Ozs7OztJQUlsQyxZQUNVLE1BQStCLEVBQy9CLE1BQTBCLEVBQzFCLE1BQXFCLEVBQ3JCLE1BQWM7UUFIZCxXQUFNLEdBQU4sTUFBTSxDQUF5QjtRQUMvQixXQUFNLEdBQU4sTUFBTSxDQUFvQjtRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFOaEIsUUFBRyxHQUFHLElBQUksYUFBYSxDQUFNLENBQUMsQ0FBQyxDQUFDO0lBT3JDLENBQUM7Ozs7O0lBS0osR0FBRztRQUNELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzs7Ozs7SUFLRCxFQUFFLENBQUMsS0FBYTtRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7Ozs7OztJQUtELE1BQU0sQ0FBQyxPQUFpQztRQUN0QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUMvQyxHQUFHOzs7UUFBQyxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCOzs7WUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQztZQUM5RSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDakIsQ0FBQyxFQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7Ozs7OztJQUtELE1BQU0sQ0FBQyxPQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDcEIsU0FBUzs7OztRQUNQLEVBQUUsQ0FBQyxFQUFFLENBQ0gsSUFBSSxVQUFVOzs7O1FBQUMsQ0FBQyxRQUE4QyxFQUFFLEVBQUU7WUFDaEUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPOzs7OztZQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUNwQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQ2xDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN0QixDQUFDLEVBQUMsQ0FBQztRQUNMLENBQUMsRUFBQyxFQUNMLENBQ0YsQ0FBQztJQUNKLENBQUM7OztZQTFERixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7WUFsR1EsdUJBQXVCO1lBQ3ZCLGtCQUFrQjtZQUNsQixhQUFhO1lBTEQsTUFBTTs7Ozs7Ozs7SUF1R3pCLHFDQUFnQjs7Ozs7SUFDaEIsc0NBQXdDOzs7OztJQUd0Qyx5Q0FBdUM7Ozs7O0lBQ3ZDLHlDQUFrQzs7Ozs7SUFDbEMseUNBQTZCOzs7OztJQUM3Qix5Q0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmliZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQW1hcFBsdWdpbkxvYWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvYW1hcC1wbHVnaW4tbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXZlbnRCaW5kZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2V2ZW50LWJpbmRlci5zZXJ2aWNlJztcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IEdldHRlciB9IGZyb20gJy4uLy4uL2Jhc2UvaW50ZXJmYWNlcyc7XG5kZWNsYXJlIGNvbnN0IEFNYXA6IGFueTtcblxuY29uc3QgVEFHID0gJ0FtYXBBdXRvY29tcGxldGUnO1xuXG5leHBvcnQgbmFtZXNwYWNlIEFNYXBBdXRvY29tcGxldGUge1xuICBleHBvcnQgdHlwZSBEYXRhVHlwZSA9ICdhbGwnIHwgJ2J1cycgfCAncG9pJyB8ICdidXNsaW5lJztcbiAgZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcbiAgICAvKipcbiAgICAgKiDovpPlhaXmj5DnpLrml7bpmZDlrppQT0nnsbvlnovvvIzlpJrkuKrnsbvlnovnlKjigJx84oCd5YiG6ZqUXG4gICAgICovXG4gICAgdHlwZT86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiDovpPlhaXmj5DnpLrml7bpmZDlrprln47luIJcbiAgICAgKi9cbiAgICBjaXR5Pzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIOi/lOWbnueahOaVsOaNruexu+Wei1xuICAgICAqL1xuICAgIGRhdGF0eXBlPzogRGF0YVR5cGU7XG4gICAgLyoqXG4gICAgICog5piv5ZCm5by65Yi26ZmQ5Yi25Zyo6K6+572u55qE5Z+O5biC5YaF5pCc57SiXG4gICAgICovXG4gICAgY2l0eWxpbWl0PzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiDmjIflrprovpPlhaXmoYZcbiAgICAgKi9cbiAgICBpbnB1dD86IHN0cmluZyB8IEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgLyoqXG4gICAgICog5oyH5a6a6L6T5Ye66Z2i5p2/XG4gICAgICovXG4gICAgb3V0cHV0Pzogc3RyaW5nIHwgSFRNTERpdkVsZW1lbnQ7XG4gICAgLyoqXG4gICAgICog5piv5ZCm5ZyoaW5wdXTkvY3kuo7pobXpnaLovoPkuIvmlrnnmoTml7blgJnoh6rliqjlsIbovpPlhaXpnaLmnb/mmL7npLrlnKhpbnB1dOS4iuaWueS7pemBv+WFjeiiq+mBruaMoVxuICAgICAqL1xuICAgIG91dFB1dERpckF1dG8/OiBib29sZWFuO1xuICB9XG4gIGV4cG9ydCBpbnRlcmZhY2UgVGlwIHtcbiAgICAvKipcbiAgICAgKiDlkI3np7BcbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICog5omA5bGe5Yy65Z+fXG4gICAgICovXG4gICAgZGlzdHJpY3Q6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiDljLrln5/nvJbnoIFcbiAgICAgKi9cbiAgICBhZGNvZGU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiDlnLDlnYBcbiAgICAgKi9cbiAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICog5Z+O5biCXG4gICAgICovXG4gICAgY2l0eTogYW55W107XG4gICAgLyoqXG4gICAgICogSURcbiAgICAgKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIOWdkOagh+e7j+e6rOW6plxuICAgICAqL1xuICAgIGxvY2F0aW9uOiBBTWFwLkxuZ0xhdDtcbiAgICAvKipcbiAgICAgKiDnsbvlnovnvJbnoIFcbiAgICAgKi9cbiAgICB0eXBlY29kZTogc3RyaW5nO1xuICB9XG4gIGV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUmVzdWx0IHtcbiAgICAvKipcbiAgICAgKiDmn6Xor6LnirbmgIHor7TmmI5cbiAgICAgKi9cbiAgICBpbmZvOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICog6L6T5YWl5o+Q56S65p2h5pWwXG4gICAgICovXG4gICAgY291bnQ6IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiDovpPlhaXmj5DnpLrliJfooahcbiAgICAgKi9cbiAgICB0aXBzOiBUaXBbXTtcbiAgfVxuICBleHBvcnQgdHlwZSBTZWFyY2hTdGF0dXMgPSAnY29tcGxldGUnIHwgJ2Vycm9yJyB8ICdub19kYXRhJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRvY29tcGxldGVTZWFyY2hSZXN1bHQge1xuICBzdGF0dXM6IEFNYXBBdXRvY29tcGxldGUuU2VhcmNoU3RhdHVzO1xuICByZXN1bHQ6IHN0cmluZyB8IEFNYXBBdXRvY29tcGxldGUuU2VhcmNoUmVzdWx0O1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQW1hcEF1dG9jb21wbGV0ZVNlcnZpY2UgaW1wbGVtZW50cyBHZXR0ZXI8YW55PiB7XG4gIHByaXZhdGUgYWM6IGFueTtcbiAgcHJpdmF0ZSBhYyQgPSBuZXcgUmVwbGF5U3ViamVjdDxhbnk+KDEpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGx1Z2luOiBBbWFwUGx1Z2luTG9hZGVyU2VydmljZSxcbiAgICBwcml2YXRlIGJpbmRlcjogRXZlbnRCaW5kZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICkge31cblxuICAvKipcbiAgICog6I635Y+W5o+S5Lu2XG4gICAqL1xuICBnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIOS+puWQrOS6i+S7tlxuICAgKi9cbiAgb24oZXZlbnQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmJpbmRlci5iaW5kRXZlbnQodGhpcy5nZXQoKSwgZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIOWIm+W7uuaPkuS7tlxuICAgKi9cbiAgY3JlYXRlKG9wdGlvbnM6IEFNYXBBdXRvY29tcGxldGUuT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnBsdWdpbi5sb2FkKCdBTWFwLkF1dG9jb21wbGV0ZScpLnBpcGUoXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICB0aGlzLmFjID0gdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gbmV3IEFNYXAuQXV0b2NvbXBsZXRlKG9wdGlvbnMpKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZChUQUcsICduZXcgYXV0b2NvbXBsZXRlIGNyZWF0ZWQuJyk7XG4gICAgICAgIHRoaXMuYWMkLm5leHQodGhpcy5hYyk7XG4gICAgICAgIHRoaXMuYWMkLmNvbXBsZXRlKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmFjO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmkJzntKJcbiAgICovXG4gIHNlYXJjaChhZGRyZXNzOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5nZXQoKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKFxuICAgICAgICBhYyA9PlxuICAgICAgICAgIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcjogU3Vic2NyaWJlcjxBdXRvY29tcGxldGVTZWFyY2hSZXN1bHQ+KSA9PiB7XG4gICAgICAgICAgICBhYy5zZWFyY2goYWRkcmVzcywgKHN0YXR1cywgcmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoeyBzdGF0dXMsIHJlc3VsdCB9KTtcbiAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pLFxuICAgICAgKSxcbiAgICApO1xuICB9XG59XG4iXX0=