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]

162 lines 11.7 kB
/** * @fileoverview added by tsickle * Generated from: directives/amap-ellipse/amap-ellipse.directive.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Input, Directive, NgZone } from '@angular/core'; import { zip } from 'rxjs'; import { AMapPolygon, PolygonOptions } from '../../base/amap-polygon'; import { AmapEllipseService } from './amap-ellipse.service'; import { LoggerService } from '../../shared/logger/logger.service'; import { EventBinderService } from '../../shared/event-binder.service'; import { getOptions, ChangeFilter } from '../../utils'; /** @type {?} */ const TAG = 'amap-ellipse'; /** @type {?} */ const EllipseOptions = [...PolygonOptions, 'center', 'radius']; export class AmapEllipseDirective extends AMapPolygon { /** * @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 ellipse = this.get(); if (!this.inited) { this.logger.d(TAG, 'initializing ...'); /** @type {?} */ const options = this.options || getOptions(this, EllipseOptions); 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, 'ellipse is ready.'); })); this.inited = true; } else { zip(filter.has('center'), ellipse).subscribe((/** * @param {?} __0 * @return {?} */ ([v, p]) => p.setCenter(v))); zip(filter.has('options'), ellipse).subscribe((/** * @param {?} __0 * @return {?} */ ([v, p]) => p.setOptions(v || {}))); zip(filter.has('extData'), ellipse).subscribe((/** * @param {?} __0 * @return {?} */ ([v, p]) => p.setExtData(v))); } zip(filter.has('hidden'), ellipse).subscribe((/** * @param {?} __0 * @return {?} */ ([v, p]) => (v ? p.hide() : p.show()))); filter.has('editor').subscribe((/** * @param {?} v * @return {?} */ v => this.os.toggleEditor(v))); } /** * 获取已创建的 AMap.Ellipse 对象 * @return {?} */ get() { return this.os.get(); } } AmapEllipseDirective.decorators = [ { type: Directive, args: [{ selector: 'amap-ellipse', exportAs: 'ellipse', providers: [AmapEllipseService], },] } ]; /** @nocollapse */ AmapEllipseDirective.ctorParameters = () => [ { type: AmapEllipseService }, { type: EventBinderService }, { type: LoggerService }, { type: NgZone } ]; AmapEllipseDirective.propDecorators = { center: [{ type: Input }], radius: [{ type: Input }], options: [{ type: Input }] }; if (false) { /** * 椭圆的中心 * @type {?} */ AmapEllipseDirective.prototype.center; /** * 椭圆半径 * @type {?} */ AmapEllipseDirective.prototype.radius; /** * 额外: 会覆盖其他属性的配置方式 * @type {?} */ AmapEllipseDirective.prototype.options; /** * @type {?} * @private */ AmapEllipseDirective.prototype.inited; /** * @type {?} * @protected */ AmapEllipseDirective.prototype.os; /** * @type {?} * @protected */ AmapEllipseDirective.prototype.binder; /** * @type {?} * @private */ AmapEllipseDirective.prototype.logger; /** * @type {?} * @private */ AmapEllipseDirective.prototype.ngZone; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hcC1lbGxpcHNlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1hbWFwLyIsInNvdXJjZXMiOlsiZGlyZWN0aXZlcy9hbWFwLWVsbGlwc2UvYW1hcC1lbGxpcHNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUF1QyxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQzs7TUFFakQsR0FBRyxHQUFHLGNBQWM7O01BQ3BCLGNBQWMsR0FBRyxDQUFDLEdBQUcsY0FBYyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUM7QUFPOUQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFdBQThCOzs7Ozs7O0lBa0J0RSxZQUNZLEVBQXNCLEVBQ3RCLE1BQTBCLEVBQzVCLE1BQXFCLEVBQ3JCLE1BQWM7UUFFdEIsS0FBSyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUxSLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQU5oQixXQUFNLEdBQUcsS0FBSyxDQUFDO0lBU3ZCLENBQUM7Ozs7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEVBQUUsQ0FB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O3NCQUlMLEtBQUs7Ozs7Ozs7SUFSTixzQ0FBb0M7Ozs7O0lBSXBDLHNDQUFrQzs7Ozs7SUFJbEMsdUNBQXVDOzs7OztJQUV2QyxzQ0FBdUI7Ozs7O0lBR3JCLGtDQUFnQzs7Ozs7SUFDaEMsc0NBQW9DOzs7OztJQUNwQyxzQ0FBNkI7Ozs7O0lBQzdCLHNDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0LCBEaXJlY3RpdmUsIE9uRGVzdHJveSwgU2ltcGxlQ2hhbmdlcywgT25DaGFuZ2VzLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQU1hcFBvbHlnb24sIFBvbHlnb25PcHRpb25zIH0gZnJvbSAnLi4vLi4vYmFzZS9hbWFwLXBvbHlnb24nO1xuaW1wb3J0IHsgQW1hcEVsbGlwc2VTZXJ2aWNlIH0gZnJvbSAnLi9hbWFwLWVsbGlwc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBFdmVudEJpbmRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvZXZlbnQtYmluZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0T3B0aW9ucywgQ2hhbmdlRmlsdGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5jb25zdCBUQUcgPSAnYW1hcC1lbGxpcHNlJztcbmNvbnN0IEVsbGlwc2VPcHRpb25zID0gWy4uLlBvbHlnb25PcHRpb25zLCAnY2VudGVyJywgJ3JhZGl1cyddO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhbWFwLWVsbGlwc2UnLFxuICBleHBvcnRBczogJ2VsbGlwc2UnLFxuICBwcm92aWRlcnM6IFtBbWFwRWxsaXBzZVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBBbWFwRWxsaXBzZURpcmVjdGl2ZSBleHRlbmRzIEFNYXBQb2x5Z29uPEFNYXAuRWxsaXBzZSwgYW55PlxuICBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgLy8gLS0tLSBPcHRpb25zIC0tLS1cbiAgLyoqXG4gICAqIOakreWchueahOS4reW/g1xuICAgKi9cbiAgQElucHV0KCkgY2VudGVyOiBBTWFwLkxvY2F0aW9uVmFsdWU7XG4gIC8qKlxuICAgKiDmpK3lnIbljYrlvoRcbiAgICovXG4gIEBJbnB1dCgpIHJhZGl1czogW251bWJlciwgbnVtYmVyXTtcbiAgLyoqXG4gICAqIOmineWkljog5Lya6KaG55uW5YW25LuW5bGe5oCn55qE6YWN572u5pa55byPXG4gICAqL1xuICBASW5wdXQoKSBvcHRpb25zOiBBTWFwLkVsbGlwc2UuT3B0aW9ucztcblxuICBwcml2YXRlIGluaXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvczogQW1hcEVsbGlwc2VTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBiaW5kZXI6IEV2ZW50QmluZGVyU2VydmljZSxcbiAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICApIHtcbiAgICBzdXBlcihvcywgYmluZGVyKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub3MuZGVzdHJveSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IGZpbHRlciA9IENoYW5nZUZpbHRlci5vZihjaGFuZ2VzKTtcbiAgICBjb25zdCBlbGxpcHNlID0gdGhpcy5nZXQoKTtcbiAgICBpZiAoIXRoaXMuaW5pdGVkKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kKFRBRywgJ2luaXRpYWxpemluZyAuLi4nKTtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMgfHwgZ2V0T3B0aW9uczxBTWFwLkVsbGlwc2UuT3B0aW9ucz4odGhpcywgRWxsaXBzZU9wdGlvbnMpO1xuICAgICAgdGhpcy5sb2dnZXIuZChUQUcsICdvcHRpb25zOicsIG9wdGlvbnMpO1xuICAgICAgdGhpcy5vcy5jcmVhdGUob3B0aW9ucykuc3Vic2NyaWJlKG0gPT4ge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5uYVJlYWR5LmVtaXQobSkpO1xuICAgICAgICB0aGlzLmxvZ2dlci5kKFRBRywgJ2VsbGlwc2UgaXMgcmVhZHkuJyk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuaW5pdGVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgemlwKGZpbHRlci5oYXM8QU1hcC5Mb2NhdGlvblZhbHVlPignY2VudGVyJyksIGVsbGlwc2UpLnN1YnNjcmliZSgoW3YsIHBdKSA9PiBwLnNldENlbnRlcih2KSk7XG4gICAgICB6aXAoZmlsdGVyLmhhczxBTWFwLkVsbGlwc2UuT3B0aW9ucz4oJ29wdGlvbnMnKSwgZWxsaXBzZSkuc3Vic2NyaWJlKChbdiwgcF0pID0+XG4gICAgICAgIHAuc2V0T3B0aW9ucyh2IHx8IHt9KSxcbiAgICAgICk7XG4gICAgICB6aXAoZmlsdGVyLmhhczxhbnk+KCdleHREYXRhJyksIGVsbGlwc2UpLnN1YnNjcmliZSgoW3YsIHBdKSA9PiBwLnNldEV4dERhdGEodikpO1xuICAgIH1cblxuICAgIHppcChmaWx0ZXIuaGFzPGJvb2xlYW4+KCdoaWRkZW4nKSwgZWxsaXBzZSkuc3Vic2NyaWJlKChbdiwgcF0pID0+ICh2ID8gcC5oaWRlKCkgOiBwLnNob3coKSkpO1xuICAgIGZpbHRlci5oYXM8Ym9vbGVhbj4oJ2VkaXRvcicpLnN1YnNjcmliZSh2ID0+IHRoaXMub3MudG9nZ2xlRWRpdG9yKHYpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5blt7LliJvlu7rnmoQgQU1hcC5FbGxpcHNlIOWvueixoVxuICAgKi9cbiAgZ2V0KCkge1xuICAgIHJldHVybiB0aGlzLm9zLmdldCgpO1xuICB9XG59XG4iXX0=