ngx-amap
Version:
[][npm-badge-url] [][npm-badge-url] [][ci-url]
162 lines • 11.7 kB
JavaScript
/**
* @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=