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]

82 lines 5.54 kB
/** * @fileoverview added by tsickle * Generated from: shared/event-binder.service.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable, NgZone } from '@angular/core'; import { Observable } from 'rxjs'; import { switchMap } from 'rxjs/operators'; import { LoggerService } from './logger/logger.service'; /** @type {?} */ const TAG = 'EventBinder'; export class EventBinderService { /** * @param {?} logger * @param {?} ngZone */ constructor(logger, ngZone) { this.logger = logger; this.ngZone = ngZone; } /** * 注册事件 * @template T * @param {?} target * @param {?} eventName 事件名 * @return {?} */ bindEvent(target, eventName) { return (/** @type {?} */ (target.pipe(switchMap((/** * @param {?} t * @return {?} */ (t) => new Observable((/** * @param {?} observer * @return {?} */ observer => { /** @type {?} */ let handler = AMap.event.addListener(t, eventName, (/** * @param {?} e * @return {?} */ e => { this.ngZone.run((/** * @return {?} */ () => observer.next(e))); }), this); this.logger.d(TAG, `subscribed event: ${eventName}`); return (/** * @return {?} */ () => { AMap.event.removeListener(handler); this.logger.d(TAG, `unsubscribed event: ${eventName}`); eventName = null; handler = null; }); }))))))); } } EventBinderService.decorators = [ { type: Injectable } ]; /** @nocollapse */ EventBinderService.ctorParameters = () => [ { type: LoggerService }, { type: NgZone } ]; if (false) { /** * @type {?} * @private */ EventBinderService.prototype.logger; /** * @type {?} * @private */ EventBinderService.prototype.ngZone; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtYmluZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYW1hcC8iLCJzb3VyY2VzIjpbInNoYXJlZC9ldmVudC1iaW5kZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O01BRWxELEdBQUcsR0FBRyxhQUFhO0FBR3pCLE1BQU0sT0FBTyxrQkFBa0I7Ozs7O0lBQzdCLFlBQW9CLE1BQXFCLEVBQVUsTUFBYztRQUE3QyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7Ozs7Ozs7O0lBTXJFLFNBQVMsQ0FDUCxNQUFxQixFQUNyQixTQUFpQjtRQUVqQixPQUFPLG1CQUFBLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLFNBQVM7Ozs7UUFDUCxDQUFDLENBQUksRUFBRSxFQUFFLENBQ1AsSUFBSSxVQUFVOzs7O1FBQUMsUUFBUSxDQUFDLEVBQUU7O2dCQUNwQixPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQ2xDLENBQUMsRUFDRCxTQUFTOzs7O1lBQ1QsQ0FBQyxDQUFDLEVBQUU7Z0JBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHOzs7Z0JBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO1lBQzFDLENBQUMsR0FDRCxJQUFJLENBQ0w7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDckQ7OztZQUFPLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLHVCQUF1QixTQUFTLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RCxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLENBQUMsRUFBQztRQUNKLENBQUMsRUFBQyxFQUNMLENBQ0YsRUFBcUIsQ0FBQztJQUN6QixDQUFDOzs7WUFsQ0YsVUFBVTs7OztZQUpGLGFBQWE7WUFIRCxNQUFNOzs7Ozs7O0lBU2Isb0NBQTZCOzs7OztJQUFFLG9DQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuXG5jb25zdCBUQUcgPSAnRXZlbnRCaW5kZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRXZlbnRCaW5kZXJTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsIHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHt9XG5cbiAgLyoqXG4gICAqIOazqOWGjOS6i+S7tlxuICAgKiBAcGFyYW0gZXZlbnROYW1lIOS6i+S7tuWQjVxuICAgKi9cbiAgYmluZEV2ZW50PFQgZXh0ZW5kcyBBTWFwLkV2ZW50RW1pdHRlcj4oXG4gICAgdGFyZ2V0OiBPYnNlcnZhYmxlPFQ+LFxuICAgIGV2ZW50TmFtZTogc3RyaW5nLFxuICApOiBFdmVudEVtaXR0ZXI8YW55PiB7XG4gICAgcmV0dXJuIHRhcmdldC5waXBlKFxuICAgICAgc3dpdGNoTWFwKFxuICAgICAgICAodDogVCkgPT5cbiAgICAgICAgICBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICAgICAgICBsZXQgaGFuZGxlciA9IEFNYXAuZXZlbnQuYWRkTGlzdGVuZXIoXG4gICAgICAgICAgICAgIHQsXG4gICAgICAgICAgICAgIGV2ZW50TmFtZSxcbiAgICAgICAgICAgICAgZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IG9ic2VydmVyLm5leHQoZSkpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0aGlzLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmQoVEFHLCBgc3Vic2NyaWJlZCBldmVudDogJHtldmVudE5hbWV9YCk7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICBBTWFwLmV2ZW50LnJlbW92ZUxpc3RlbmVyKGhhbmRsZXIpO1xuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kKFRBRywgYHVuc3Vic2NyaWJlZCBldmVudDogJHtldmVudE5hbWV9YCk7XG4gICAgICAgICAgICAgIGV2ZW50TmFtZSA9IG51bGw7XG4gICAgICAgICAgICAgIGhhbmRsZXIgPSBudWxsO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKSBhcyBFdmVudEVtaXR0ZXI8YW55PjtcbiAgfVxufVxuIl19