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]

161 lines 12.1 kB
/** * @fileoverview added by tsickle * Generated from: directives/amap-rectangle/amap-rectangle.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 { AmapRectangleService } from './amap-rectangle.service'; import { LoggerService } from '../../shared/logger/logger.service'; import { EventBinderService } from '../../shared/event-binder.service'; import { getOptions, ChangeFilter } from '../../utils'; /** @type {?} */ const TAG = 'amap-rectangle'; /** @type {?} */ const RectangleOptions = [...PolygonOptions, 'bounds']; export class AmapRectangleDirective 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 rectangle = this.get(); if (!this.inited) { this.logger.d(TAG, 'initializing ...'); /** @type {?} */ const options = this.options || getOptions(this, RectangleOptions); 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, 'rectangle is ready.'); })); this.inited = true; } else { zip(filter.has('path'), rectangle).subscribe((/** * @param {?} __0 * @return {?} */ ([v, p]) => p.setPath(v))); zip(filter.has('options'), rectangle).subscribe((/** * @param {?} __0 * @return {?} */ ([v, p]) => p.setOptions(v || {}))); zip(filter.has('bounds'), rectangle).subscribe((/** * @param {?} __0 * @return {?} */ ([v, p]) => p.setBounds(v))); zip(filter.has('extData'), rectangle).subscribe((/** * @param {?} __0 * @return {?} */ ([v, p]) => p.setExtData(v))); } zip(filter.has('hidden'), rectangle).subscribe((/** * @param {?} __0 * @return {?} */ ([v, p]) => (v ? p.hide() : p.show()))); filter.has('editor').subscribe((/** * @param {?} v * @return {?} */ v => this.os.toggleEditor(v))); } /** * 获取已创建的 AMap.Rectangle 对象 * @return {?} */ get() { return this.os.get(); } } AmapRectangleDirective.decorators = [ { type: Directive, args: [{ selector: 'amap-rectangle', exportAs: 'rectangle', providers: [AmapRectangleService], },] } ]; /** @nocollapse */ AmapRectangleDirective.ctorParameters = () => [ { type: AmapRectangleService }, { type: EventBinderService }, { type: LoggerService }, { type: NgZone } ]; AmapRectangleDirective.propDecorators = { bounds: [{ type: Input }], options: [{ type: Input }] }; if (false) { /** * 矩形的范围 * @type {?} */ AmapRectangleDirective.prototype.bounds; /** * 额外: 会覆盖其他属性的配置方式 * @type {?} */ AmapRectangleDirective.prototype.options; /** * @type {?} * @private */ AmapRectangleDirective.prototype.inited; /** * @type {?} * @protected */ AmapRectangleDirective.prototype.os; /** * @type {?} * @protected */ AmapRectangleDirective.prototype.binder; /** * @type {?} * @private */ AmapRectangleDirective.prototype.logger; /** * @type {?} * @private */ AmapRectangleDirective.prototype.ngZone; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hcC1yZWN0YW5nbGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWFtYXAvIiwic291cmNlcyI6WyJkaXJlY3RpdmVzL2FtYXAtcmVjdGFuZ2xlL2FtYXAtcmVjdGFuZ2xlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUF1QyxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQzs7TUFFakQsR0FBRyxHQUFHLGdCQUFnQjs7TUFDdEIsZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLGNBQWMsRUFBRSxRQUFRLENBQUM7QUFPdEQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFdBQWdDOzs7Ozs7O0lBYzFFLFlBQ1ksRUFBd0IsRUFDeEIsTUFBMEIsRUFDNUIsTUFBcUIsRUFDckIsTUFBYztRQUV0QixLQUFLLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBTFIsT0FBRSxHQUFGLEVBQUUsQ0FBc0I7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFDNUIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBTmhCLFdBQU0sR0FBRyxLQUFLLENBQUM7SUFTdkIsQ0FBQzs7OztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsRUFBRSxDQUFD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QVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQixRQUFRLEVBQUUsV0FBVztnQkFDckIsU0FBUyxFQUFFLENBQUMsb0JBQW9CLENBQUM7YUFDbEM7Ozs7WUFaUSxvQkFBb0I7WUFFcEIsa0JBQWtCO1lBRGxCLGFBQWE7WUFKMEMsTUFBTTs7O3FCQXNCbkUsS0FBSztzQkFJTCxLQUFLOzs7Ozs7O0lBSk4sd0NBQThCOzs7OztJQUk5Qix5Q0FBeUM7Ozs7O0lBRXpDLHdDQUF1Qjs7Ozs7SUFHckIsb0NBQWtDOzs7OztJQUNsQyx3Q0FBb0M7Ozs7O0lBQ3BDLHdDQUE2Qjs7Ozs7SUFDN0Isd0NBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIERpcmVjdGl2ZSwgT25EZXN0cm95LCBTaW1wbGVDaGFuZ2VzLCBPbkNoYW5nZXMsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgemlwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBTWFwUG9seWdvbiwgUG9seWdvbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9iYXNlL2FtYXAtcG9seWdvbic7XG5pbXBvcnQgeyBBbWFwUmVjdGFuZ2xlU2VydmljZSB9IGZyb20gJy4vYW1hcC1yZWN0YW5nbGUuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBFdmVudEJpbmRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvZXZlbnQtYmluZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0T3B0aW9ucywgQ2hhbmdlRmlsdGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5jb25zdCBUQUcgPSAnYW1hcC1yZWN0YW5nbGUnO1xuY29uc3QgUmVjdGFuZ2xlT3B0aW9ucyA9IFsuLi5Qb2x5Z29uT3B0aW9ucywgJ2JvdW5kcyddO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhbWFwLXJlY3RhbmdsZScsXG4gIGV4cG9ydEFzOiAncmVjdGFuZ2xlJyxcbiAgcHJvdmlkZXJzOiBbQW1hcFJlY3RhbmdsZVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBBbWFwUmVjdGFuZ2xlRGlyZWN0aXZlIGV4dGVuZHMgQU1hcFBvbHlnb248QU1hcC5SZWN0YW5nbGUsIGFueT5cbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIC8vIC0tLS0gT3B0aW9ucyAtLS0tXG4gIC8qKlxuICAgKiDnn6nlvaLnmoTojIPlm7RcbiAgICovXG4gIEBJbnB1dCgpIGJvdW5kcz86IEFNYXAuQm91bmRzO1xuICAvKipcbiAgICog6aKd5aSWOiDkvJropobnm5blhbbku5blsZ7mgKfnmoTphY3nva7mlrnlvI9cbiAgICovXG4gIEBJbnB1dCgpIG9wdGlvbnM6IEFNYXAuUmVjdGFuZ2xlLk9wdGlvbnM7XG5cbiAgcHJpdmF0ZSBpbml0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgb3M6IEFtYXBSZWN0YW5nbGVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBiaW5kZXI6IEV2ZW50QmluZGVyU2VydmljZSxcbiAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICApIHtcbiAgICBzdXBlcihvcywgYmluZGVyKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMub3MuZGVzdHJveSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IGZpbHRlciA9IENoYW5nZUZpbHRlci5vZihjaGFuZ2VzKTtcbiAgICBjb25zdCByZWN0YW5nbGUgPSB0aGlzLmdldCgpO1xuICAgIGlmICghdGhpcy5pbml0ZWQpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmQoVEFHLCAnaW5pdGlhbGl6aW5nIC4uLicpO1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucyB8fCBnZXRPcHRpb25zPEFNYXAuUmVjdGFuZ2xlLk9wdGlvbnM+KHRoaXMsIFJlY3RhbmdsZU9wdGlvbnMpO1xuICAgICAgdGhpcy5sb2dnZXIuZChUQUcsICdvcHRpb25zOicsIG9wdGlvbnMpO1xuICAgICAgdGhpcy5vcy5jcmVhdGUob3B0aW9ucykuc3Vic2NyaWJlKG0gPT4ge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5uYVJlYWR5LmVtaXQobSkpO1xuICAgICAgICB0aGlzLmxvZ2dlci5kKFRBRywgJ3JlY3RhbmdsZSBpcyByZWFkeS4nKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5pbml0ZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB6aXAoXG4gICAgICAgIGZpbHRlci5oYXM8QU1hcC5Mb2NhdGlvblZhbHVlW10gfCBBTWFwLkxvY2F0aW9uVmFsdWVbXVtdPigncGF0aCcpLFxuICAgICAgICByZWN0YW5nbGUsXG4gICAgICApLnN1YnNjcmliZSgoW3YsIHBdKSA9PiBwLnNldFBhdGgodikpO1xuICAgICAgemlwKGZpbHRlci5oYXM8QU1hcC5SZWN0YW5nbGUuT3B0aW9ucz4oJ29wdGlvbnMnKSwgcmVjdGFuZ2xlKS5zdWJzY3JpYmUoKFt2LCBwXSkgPT5cbiAgICAgICAgcC5zZXRPcHRpb25zKHYgfHwge30pLFxuICAgICAgKTtcbiAgICAgIHppcChmaWx0ZXIuaGFzPEFNYXAuQm91bmRzPignYm91bmRzJyksIHJlY3RhbmdsZSkuc3Vic2NyaWJlKChbdiwgcF0pID0+IHAuc2V0Qm91bmRzKHYpKTtcbiAgICAgIHppcChmaWx0ZXIuaGFzPGFueT4oJ2V4dERhdGEnKSwgcmVjdGFuZ2xlKS5zdWJzY3JpYmUoKFt2LCBwXSkgPT4gcC5zZXRFeHREYXRhKHYpKTtcbiAgICB9XG5cbiAgICB6aXAoZmlsdGVyLmhhczxib29sZWFuPignaGlkZGVuJyksIHJlY3RhbmdsZSkuc3Vic2NyaWJlKChbdiwgcF0pID0+ICh2ID8gcC5oaWRlKCkgOiBwLnNob3coKSkpO1xuICAgIGZpbHRlci5oYXM8Ym9vbGVhbj4oJ2VkaXRvcicpLnN1YnNjcmliZSh2ID0+IHRoaXMub3MudG9nZ2xlRWRpdG9yKHYpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDojrflj5blt7LliJvlu7rnmoQgQU1hcC5SZWN0YW5nbGUg5a+56LGhXG4gICAqL1xuICBnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMub3MuZ2V0KCk7XG4gIH1cbn1cbiJdfQ==