ngx-amap
Version:
[][npm-badge-url] [][npm-badge-url] [][ci-url]
178 lines • 12 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: directives/amap-heatmap/amap-heatmap.directive.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Input, Output, EventEmitter, Directive, NgZone, } from '@angular/core';
import { zip } from 'rxjs';
import { AmapHeatmapService } from './amap-heatmap.service';
import { LoggerService } from '../../shared/logger/logger.service';
import { getOptions, ChangeFilter } from '../../utils';
/** @type {?} */
const TAG = 'amap-heatmap';
/** @type {?} */
const HeatmapOptions = ['radius', 'gradient', 'opacity', 'zooms'];
export class AmapHeatmapDirective {
/**
* @param {?} os
* @param {?} logger
* @param {?} ngZone
*/
constructor(os, logger, ngZone) {
this.os = os;
this.logger = logger;
this.ngZone = ngZone;
/**
* 额外: 是否隐藏
*/
this.hidden = false;
// ---- Events ----
this.naReady = new EventEmitter();
this.inited = false;
}
/**
* @return {?}
*/
ngOnDestroy() {
this.os.destroy();
}
/**
* @param {?} changes
* @return {?}
*/
ngOnChanges(changes) {
/** @type {?} */
const filter = ChangeFilter.of(changes);
/** @type {?} */
const heatmap = this.get();
if (!this.inited) {
this.logger.d(TAG, 'initializing ...');
/** @type {?} */
const options = this.options || getOptions(this, HeatmapOptions);
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, 'heatmap is ready.');
}));
this.inited = true;
}
else {
zip(filter.has('options'), heatmap).subscribe((/**
* @param {?} __0
* @return {?}
*/
([v, p]) => p.setOptions(v || {})));
}
zip(filter.notEmpty('dataset'), heatmap).subscribe((/**
* @param {?} __0
* @return {?}
*/
([v, p]) => {
p.setDataSet(v);
}));
zip(filter.has('hidden'), heatmap).subscribe((/**
* @param {?} __0
* @return {?}
*/
([v, p]) => (v ? p.hide() : p.show())));
}
/**
* 获取已创建的 AMap.Heatmap 对象
* @return {?}
*/
get() {
return this.os.get();
}
}
AmapHeatmapDirective.decorators = [
{ type: Directive, args: [{
selector: 'amap-heatmap',
exportAs: 'heatmap',
providers: [AmapHeatmapService],
},] }
];
/** @nocollapse */
AmapHeatmapDirective.ctorParameters = () => [
{ type: AmapHeatmapService },
{ type: LoggerService },
{ type: NgZone }
];
AmapHeatmapDirective.propDecorators = {
radius: [{ type: Input }],
gradient: [{ type: Input }],
opacity: [{ type: Input }],
zooms: [{ type: Input }],
hidden: [{ type: Input }],
options: [{ type: Input }],
dataset: [{ type: Input }],
naReady: [{ type: Output }]
};
if (false) {
/**
* 热力图中单个点的半径,默认:30,单位:pixel
* @type {?}
*/
AmapHeatmapDirective.prototype.radius;
/**
* 热力图的渐变区间
* @type {?}
*/
AmapHeatmapDirective.prototype.gradient;
/**
* 热力图透明度数组,取值范围[0,1],0表示完全透明,1表示不透明
* 默认:[0,1]
* @type {?}
*/
AmapHeatmapDirective.prototype.opacity;
/**
* 支持的缩放级别范围,取值范围[3-18]
* 默认:[3,18]
* @type {?}
*/
AmapHeatmapDirective.prototype.zooms;
/**
* 额外: 是否隐藏
* @type {?}
*/
AmapHeatmapDirective.prototype.hidden;
/**
* 额外: 会覆盖其他属性的配置方式
* @type {?}
*/
AmapHeatmapDirective.prototype.options;
/**
* 额外: 坐标数据集
* @type {?}
*/
AmapHeatmapDirective.prototype.dataset;
/** @type {?} */
AmapHeatmapDirective.prototype.naReady;
/**
* @type {?}
* @private
*/
AmapHeatmapDirective.prototype.inited;
/**
* @type {?}
* @protected
*/
AmapHeatmapDirective.prototype.os;
/**
* @type {?}
* @private
*/
AmapHeatmapDirective.prototype.logger;
/**
* @type {?}
* @private
*/
AmapHeatmapDirective.prototype.ngZone;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hcC1oZWF0bWFwLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1hbWFwLyIsInNvdXJjZXMiOlsiZGlyZWN0aXZlcy9hbWFwLWhlYXRtYXAvYW1hcC1oZWF0bWFwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBSVQsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0IsT0FBTyxFQUFFLGtCQUFrQixFQUFlLE1BQU0sd0JBQXdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDOztNQUVqRCxHQUFHLEdBQUcsY0FBYzs7TUFDcEIsY0FBYyxHQUFHLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDO0FBT2pFLE1BQU0sT0FBTyxvQkFBb0I7Ozs7OztJQXNDL0IsWUFDWSxFQUFzQixFQUN4QixNQUFxQixFQUNyQixNQUFjO1FBRlosT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFROzs7O1FBbEJmLFdBQU0sR0FBRyxLQUFLLENBQUM7O1FBV2QsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFL0IsV0FBTSxHQUFHLEtBQUssQ0FBQztJQU1wQixDQUFDOzs7O0lBRUosV0FBVztRQUNULElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsT0FBc0I7O2NBQzFCLE1BQU0sR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQzs7Y0FDakMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLENBQUM7O2tCQUNqQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQXNCLElBQUksRUFBRSxjQUFjLENBQUM7WUFDckYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTOzs7O1lBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRzs7O2dCQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1lBQzFDLENBQUMsRUFBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDcEI7YUFBTTtZQUNMLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFzQixTQUFTLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTOzs7O1lBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQzVFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUN0QixDQUFDO1NBQ0g7UUFFRCxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBc0IsU0FBUyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUzs7OztRQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNqRixDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLENBQUMsRUFBQyxDQUFDO1FBQ0gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQVUsUUFBUSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUzs7OztRQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFDLENBQUM7SUFDL0YsQ0FBQzs7Ozs7SUFLRCxHQUFHO1FBQ0QsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OztZQWxGRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzthQUNoQzs7OztZQVhRLGtCQUFrQjtZQUNsQixhQUFhO1lBSnBCLE1BQU07OztxQkFvQkwsS0FBSzt1QkFJTCxLQUFLO3NCQUtMLEtBQUs7b0JBS0wsS0FBSztxQkFJTCxLQUFLO3NCQUlMLEtBQUs7c0JBSUwsS0FBSztzQkFHTCxNQUFNOzs7Ozs7O0lBN0JQLHNDQUF3Qjs7Ozs7SUFJeEIsd0NBQTZDOzs7Ozs7SUFLN0MsdUNBQW1DOzs7Ozs7SUFLbkMscUNBQWlDOzs7OztJQUlqQyxzQ0FBd0I7Ozs7O0lBSXhCLHVDQUFzQzs7Ozs7SUFJdEMsdUNBQXNDOztJQUd0Qyx1Q0FBdUM7Ozs7O0lBRXZDLHNDQUF1Qjs7Ozs7SUFHckIsa0NBQWdDOzs7OztJQUNoQyxzQ0FBNkI7Ozs7O0lBQzdCLHNDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgRGlyZWN0aXZlLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIE9uQ2hhbmdlcyxcbiAgTmdab25lLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHppcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQW1hcEhlYXRtYXBTZXJ2aWNlLCBBTWFwSGVhdG1hcCB9IGZyb20gJy4vYW1hcC1oZWF0bWFwLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0T3B0aW9ucywgQ2hhbmdlRmlsdGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5jb25zdCBUQUcgPSAnYW1hcC1oZWF0bWFwJztcbmNvbnN0IEhlYXRtYXBPcHRpb25zID0gWydyYWRpdXMnLCAnZ3JhZGllbnQnLCAnb3BhY2l0eScsICd6b29tcyddO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhbWFwLWhlYXRtYXAnLFxuICBleHBvcnRBczogJ2hlYXRtYXAnLFxuICBwcm92aWRlcnM6IFtBbWFwSGVhdG1hcFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBBbWFwSGVhdG1hcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgLy8gLS0tLSBPcHRpb25zIC0tLS1cbiAgLyoqXG4gICAqIOeDreWKm+WbvuS4reWNleS4queCueeahOWNiuW+hO+8jOm7mOiupO+8mjMw77yM5Y2V5L2N77yacGl4ZWxcbiAgICovXG4gIEBJbnB1dCgpIHJhZGl1czogbnVtYmVyO1xuICAvKipcbiAgICog54Ot5Yqb5Zu+55qE5riQ5Y+Y5Yy66Ze0XG4gICAqL1xuICBASW5wdXQoKSBncmFkaWVudDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgLyoqXG4gICAqIOeDreWKm+WbvumAj+aYjuW6puaVsOe7hO+8jOWPluWAvOiMg+WbtFswLDFd77yMMOihqOekuuWujOWFqOmAj+aYju+8jDHooajnpLrkuI3pgI/mmI5cbiAgICog6buY6K6k77yaWzAsMV1cbiAgICovXG4gIEBJbnB1dCgpIG9wYWNpdHk6IFtudW1iZXIsIG51bWJlcl07XG4gIC8qKlxuICAgKiDmlK/mjIHnmoTnvKnmlL7nuqfliKvojIPlm7TvvIzlj5blgLzojIPlm7RbMy0xOF1cbiAgICog6buY6K6k77yaWzMsMThdXG4gICAqL1xuICBASW5wdXQoKSB6b29tczogW251bWJlciwgbnVtYmVyXTtcbiAgLyoqXG4gICAqIOmineWkljog5piv5ZCm6ZqQ6JePXG4gICAqL1xuICBASW5wdXQoKSBoaWRkZW4gPSBmYWxzZTtcbiAgLyoqXG4gICAqIOmineWkljog5Lya6KaG55uW5YW25LuW5bGe5oCn55qE6YWN572u5pa55byPXG4gICAqL1xuICBASW5wdXQoKSBvcHRpb25zOiBBTWFwSGVhdG1hcC5PcHRpb25zO1xuICAvKipcbiAgICog6aKd5aSWOiDlnZDmoIfmlbDmja7pm4ZcbiAgICovXG4gIEBJbnB1dCgpIGRhdGFzZXQ6IEFNYXBIZWF0bWFwLkRhdGFTZXQ7XG5cbiAgLy8gLS0tLSBFdmVudHMgLS0tLVxuICBAT3V0cHV0KCkgbmFSZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIGluaXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvczogQW1hcEhlYXRtYXBTZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICkge31cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9zLmRlc3Ryb3koKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBjb25zdCBmaWx0ZXIgPSBDaGFuZ2VGaWx0ZXIub2YoY2hhbmdlcyk7XG4gICAgY29uc3QgaGVhdG1hcCA9IHRoaXMuZ2V0KCk7XG4gICAgaWYgKCF0aGlzLmluaXRlZCkge1xuICAgICAgdGhpcy5sb2dnZXIuZChUQUcsICdpbml0aWFsaXppbmcgLi4uJyk7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zIHx8IGdldE9wdGlvbnM8QU1hcEhlYXRtYXAuT3B0aW9ucz4odGhpcywgSGVhdG1hcE9wdGlvbnMpO1xuICAgICAgdGhpcy5sb2dnZXIuZChUQUcsICdvcHRpb25zOicsIG9wdGlvbnMpO1xuICAgICAgdGhpcy5vcy5jcmVhdGUob3B0aW9ucykuc3Vic2NyaWJlKG0gPT4ge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5uYVJlYWR5LmVtaXQobSkpO1xuICAgICAgICB0aGlzLmxvZ2dlci5kKFRBRywgJ2hlYXRtYXAgaXMgcmVhZHkuJyk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuaW5pdGVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgemlwKGZpbHRlci5oYXM8QU1hcEhlYXRtYXAuT3B0aW9ucz4oJ29wdGlvbnMnKSwgaGVhdG1hcCkuc3Vic2NyaWJlKChbdiwgcF0pID0+XG4gICAgICAgIHAuc2V0T3B0aW9ucyh2IHx8IHt9KSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgemlwKGZpbHRlci5ub3RFbXB0eTxBTWFwSGVhdG1hcC5EYXRhU2V0PignZGF0YXNldCcpLCBoZWF0bWFwKS5zdWJzY3JpYmUoKFt2LCBwXSkgPT4ge1xuICAgICAgcC5zZXREYXRhU2V0KHYpO1xuICAgIH0pO1xuICAgIHppcChmaWx0ZXIuaGFzPGJvb2xlYW4+KCdoaWRkZW4nKSwgaGVhdG1hcCkuc3Vic2NyaWJlKChbdiwgcF0pID0+ICh2ID8gcC5oaWRlKCkgOiBwLnNob3coKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIOiOt+WPluW3suWIm+W7uueahCBBTWFwLkhlYXRtYXAg5a+56LGhXG4gICAqL1xuICBnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMub3MuZ2V0KCk7XG4gIH1cbn1cbiJdfQ==