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]

140 lines 10.8 kB
/** * @fileoverview added by tsickle * Generated from: directives/amap-circle-marker/amap-circle-marker.directive.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, NgZone, } from '@angular/core'; import { zip } from 'rxjs'; import { AMapCircle, CircleOptions } from '../../base/amap-circle'; import { AmapCircleMarkerService } from './amap-circle-marker.service'; import { LoggerService } from '../../shared/logger/logger.service'; import { EventBinderService } from '../../shared/event-binder.service'; import { getOptions, ChangeFilter } from '../../utils'; /** @type {?} */ const TAG = 'amap-circle-marker'; export class AmapCircleMarkerDirective extends AMapCircle { /** * @param {?} os * @param {?} binder * @param {?} logger * @param {?} ngZone */ constructor(os, binder, logger, ngZone) { super(os, binder); this.os = os; this.binder = binder; this.logger = logger; this.ngZone = ngZone; this.inited = false; } /** * @return {?} */ ngOnDestroy() { this.os.destroy(); } /** * @param {?} changes * @return {?} */ ngOnChanges(changes) { /** @type {?} */ const filter = ChangeFilter.of(changes); /** @type {?} */ const circle = this.get(); if (!this.inited) { this.logger.d(TAG, 'initializing ...'); /** @type {?} */ const options = this.options || getOptions(this, CircleOptions); 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, 'circle marker is ready.'); })); this.inited = true; } else { zip(filter.has('center'), circle).subscribe((/** * @param {?} __0 * @return {?} */ ([v, p]) => p.setCenter(v))); zip(filter.has('options'), circle).subscribe((/** * @param {?} __0 * @return {?} */ ([v, p]) => p.setOptions(v || {}))); zip(filter.has('radius'), circle).subscribe((/** * @param {?} __0 * @return {?} */ ([v, p]) => p.setRadius(v))); zip(filter.has('extData'), circle).subscribe((/** * @param {?} __0 * @return {?} */ ([v, p]) => p.setExtData(v))); } zip(filter.has('hidden'), circle).subscribe((/** * @param {?} __0 * @return {?} */ ([v, p]) => (v ? p.hide() : p.show()))); } /** * 获取已创建的 AMap.CircleMarker 对象 * @return {?} */ get() { return this.os.get(); } } AmapCircleMarkerDirective.decorators = [ { type: Directive, args: [{ selector: 'amap-circle-marker', exportAs: 'circle-marker', providers: [AmapCircleMarkerService], },] } ]; /** @nocollapse */ AmapCircleMarkerDirective.ctorParameters = () => [ { type: AmapCircleMarkerService }, { type: EventBinderService }, { type: LoggerService }, { type: NgZone } ]; if (false) { /** * @type {?} * @private */ AmapCircleMarkerDirective.prototype.inited; /** * @type {?} * @protected */ AmapCircleMarkerDirective.prototype.os; /** * @type {?} * @protected */ AmapCircleMarkerDirective.prototype.binder; /** * @type {?} * @private */ AmapCircleMarkerDirective.prototype.logger; /** * @type {?} * @private */ AmapCircleMarkerDirective.prototype.ngZone; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hcC1jaXJjbGUtbWFya2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1hbWFwLyIsInNvdXJjZXMiOlsiZGlyZWN0aXZlcy9hbWFwLWNpcmNsZS1tYXJrZXIvYW1hcC1jaXJjbGUtbWFya2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFHTCxTQUFTLEVBSVQsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7O01BRWpELEdBQUcsR0FBRyxvQkFBb0I7QUFPaEMsTUFBTSxPQUFPLHlCQUEwQixTQUFRLFVBQTZCOzs7Ozs7O0lBSTFFLFlBQ1ksRUFBMkIsRUFDM0IsTUFBMEIsRUFDNUIsTUFBcUIsRUFDckIsTUFBYztRQUV0QixLQUFLLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBTFIsT0FBRSxHQUFGLEVBQUUsQ0FBeUI7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFDNUIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBTmhCLFdBQU0sR0FBRyxLQUFLLENBQUM7SUFTdkIsQ0FBQzs7OztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BCLENBQUM7Ozs7O0lBRUQsV0FBVyxDQUFDLE9B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QXFDOzs7OztJQUNyQywyQ0FBb0M7Ozs7O0lBQ3BDLDJDQUE2Qjs7Ozs7SUFDN0IsMkNBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIERpcmVjdGl2ZSxcbiAgT25EZXN0cm95LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBPbkNoYW5nZXMsXG4gIE5nWm9uZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB6aXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFNYXBDaXJjbGUsIENpcmNsZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9iYXNlL2FtYXAtY2lyY2xlJztcbmltcG9ydCB7IEFtYXBDaXJjbGVNYXJrZXJTZXJ2aWNlIH0gZnJvbSAnLi9hbWFwLWNpcmNsZS1tYXJrZXIuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBFdmVudEJpbmRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvZXZlbnQtYmluZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0T3B0aW9ucywgQ2hhbmdlRmlsdGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5jb25zdCBUQUcgPSAnYW1hcC1jaXJjbGUtbWFya2VyJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnYW1hcC1jaXJjbGUtbWFya2VyJyxcbiAgZXhwb3J0QXM6ICdjaXJjbGUtbWFya2VyJyxcbiAgcHJvdmlkZXJzOiBbQW1hcENpcmNsZU1hcmtlclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBBbWFwQ2lyY2xlTWFya2VyRGlyZWN0aXZlIGV4dGVuZHMgQU1hcENpcmNsZTxBTWFwLkNpcmNsZU1hcmtlcj5cbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgaW5pdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG9zOiBBbWFwQ2lyY2xlTWFya2VyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYmluZGVyOiBFdmVudEJpbmRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgKSB7XG4gICAgc3VwZXIob3MsIGJpbmRlcik7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9zLmRlc3Ryb3koKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBjb25zdCBmaWx0ZXIgPSBDaGFuZ2VGaWx0ZXIub2YoY2hhbmdlcyk7XG4gICAgY29uc3QgY2lyY2xlID0gdGhpcy5nZXQoKTtcbiAgICBpZiAoIXRoaXMuaW5pdGVkKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kKFRBRywgJ2luaXRpYWxpemluZyAuLi4nKTtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMgfHwgZ2V0T3B0aW9uczxBTWFwLkNpcmNsZS5PcHRpb25zPih0aGlzLCBDaXJjbGVPcHRpb25zKTtcbiAgICAgIHRoaXMubG9nZ2VyLmQoVEFHLCAnb3B0aW9uczonLCBvcHRpb25zKTtcbiAgICAgIHRoaXMub3MuY3JlYXRlKG9wdGlvbnMpLnN1YnNjcmliZShtID0+IHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMubmFSZWFkeS5lbWl0KG0pKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZChUQUcsICdjaXJjbGUgbWFya2VyIGlzIHJlYWR5LicpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmluaXRlZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHppcChmaWx0ZXIuaGFzPEFNYXAuTG9jYXRpb25WYWx1ZT4oJ2NlbnRlcicpLCBjaXJjbGUpLnN1YnNjcmliZSgoW3YsIHBdKSA9PiBwLnNldENlbnRlcih2KSk7XG4gICAgICB6aXAoZmlsdGVyLmhhczxBTWFwLkNpcmNsZS5PcHRpb25zPignb3B0aW9ucycpLCBjaXJjbGUpLnN1YnNjcmliZSgoW3YsIHBdKSA9PlxuICAgICAgICBwLnNldE9wdGlvbnModiB8fCB7fSksXG4gICAgICApO1xuICAgICAgemlwKGZpbHRlci5oYXM8bnVtYmVyPigncmFkaXVzJyksIGNpcmNsZSkuc3Vic2NyaWJlKChbdiwgcF0pID0+IHAuc2V0UmFkaXVzKHYpKTtcbiAgICAgIHppcChmaWx0ZXIuaGFzPGFueT4oJ2V4dERhdGEnKSwgY2lyY2xlKS5zdWJzY3JpYmUoKFt2LCBwXSkgPT4gcC5zZXRFeHREYXRhKHYpKTtcbiAgICB9XG5cbiAgICB6aXAoZmlsdGVyLmhhczxib29sZWFuPignaGlkZGVuJyksIGNpcmNsZSkuc3Vic2NyaWJlKChbdiwgcF0pID0+ICh2ID8gcC5oaWRlKCkgOiBwLnNob3coKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIOiOt+WPluW3suWIm+W7uueahCBBTWFwLkNpcmNsZU1hcmtlciDlr7nosaFcbiAgICovXG4gIGdldCgpIHtcbiAgICByZXR1cm4gdGhpcy5vcy5nZXQoKTtcbiAgfVxufVxuIl19