angular-leaflet
Version:
Collection of angular components to build map views faster and with minimal configuration using the most popular library **LeafletJS**.
81 lines • 5.73 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { ContentChildren, QueryList } from '@angular/core';
import { LayerHandler } from './layer-handler';
import { v4 as uuid } from 'uuid';
/**
* @template T
*/
export class BaseLayer {
constructor() {
this.handlerIds = [];
this.id = uuid();
}
/**
* @param {?} map
* @return {?}
*/
addTo(map) {
this.mapRef = map;
}
/**
* @return {?}
*/
removeFrom() {
if (this.layerRef) {
((/** @type {?} */ (this.mapRef))).removeLayer(this.layerRef);
}
}
/**
* @return {?}
*/
ngAfterContentInit() {
this.initHandlers();
this.handlerSubscription = this.handlers.changes.subscribe(this.initHandlers.bind(this));
}
/**
* @return {?}
*/
initHandlers() {
this.handlers.filter((/**
* @param {?} handler
* @return {?}
*/
handler => !this.handlerIds.includes(handler.id))).forEach(this.initHandler.bind(this));
}
/**
* @param {?} handler
* @return {?}
*/
initHandler(handler) {
handler.initialize(this.layerRef['_map'], this.layerRef);
this.handlerIds = [...this.handlerIds, handler.id];
}
/**
* @return {?}
*/
ngOnDestroy() {
this.handlerSubscription.unsubscribe();
this.removeFrom();
}
}
BaseLayer.propDecorators = {
handlers: [{ type: ContentChildren, args: [LayerHandler,] }]
};
if (false) {
/** @type {?} */
BaseLayer.prototype.id;
/** @type {?} */
BaseLayer.prototype.mapRef;
/** @type {?} */
BaseLayer.prototype.layerRef;
/** @type {?} */
BaseLayer.prototype.handlerIds;
/** @type {?} */
BaseLayer.prototype.handlerSubscription;
/** @type {?} */
BaseLayer.prototype.handlers;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1sYXllci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItbGVhZmxldC8iLCJzb3VyY2VzIjpbImNvcmUvYmFzZS1sYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFvQixlQUFlLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQUdsQyxNQUFNLE9BQU8sU0FBUztJQVFwQjtRQUpBLGVBQVUsR0FBYSxFQUFFLENBQUM7UUFLeEIsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUNuQixDQUFDOzs7OztJQUVELEtBQUssQ0FBQyxHQUFxQjtRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUNwQixDQUFDOzs7O0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixDQUFDLG1CQUFBLElBQUksQ0FBQyxNQUFNLEVBQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDakQ7SUFDSCxDQUFDOzs7O0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDM0YsQ0FBQzs7OztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07Ozs7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUcsQ0FBQzs7Ozs7SUFFRCxXQUFXLENBQUMsT0FBMEI7UUFDcEMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDOzs7O0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7O3VCQWpDQSxlQUFlLFNBQUMsWUFBWTs7OztJQUw3Qix1QkFBVzs7SUFDWCwyQkFBeUI7O0lBQ3pCLDZCQUFZOztJQUNaLCtCQUEwQjs7SUFDMUIsd0NBQWtDOztJQUNsQyw2QkFBc0UiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYXllciwgTGF5ZXJHcm91cCwgTWFwIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb250ZW50Q2hpbGRyZW4sIE9uRGVzdHJveSwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMYXllckhhbmRsZXIgfSBmcm9tICcuL2xheWVyLWhhbmRsZXInO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBCYXNlTGF5ZXI8VCBleHRlbmRzIExheWVyPiBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIGlkOiBzdHJpbmc7XG4gIG1hcFJlZjogTWFwIHwgTGF5ZXJHcm91cDtcbiAgbGF5ZXJSZWY6IFQ7XG4gIGhhbmRsZXJJZHM6IHN0cmluZ1tdID0gW107XG4gIGhhbmRsZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgQENvbnRlbnRDaGlsZHJlbihMYXllckhhbmRsZXIpIGhhbmRsZXJzOiBRdWVyeUxpc3Q8TGF5ZXJIYW5kbGVyPGFueT4+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaWQgPSB1dWlkKCk7XG4gIH1cblxuICBhZGRUbyhtYXA6IE1hcCB8IExheWVyR3JvdXApOiB2b2lkIHtcbiAgICB0aGlzLm1hcFJlZiA9IG1hcDtcbiAgfVxuXG4gIHJlbW92ZUZyb20oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubGF5ZXJSZWYpIHtcbiAgICAgICh0aGlzLm1hcFJlZiBhcyBhbnkpLnJlbW92ZUxheWVyKHRoaXMubGF5ZXJSZWYpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRIYW5kbGVycygpO1xuICAgIHRoaXMuaGFuZGxlclN1YnNjcmlwdGlvbiA9IHRoaXMuaGFuZGxlcnMuY2hhbmdlcy5zdWJzY3JpYmUodGhpcy5pbml0SGFuZGxlcnMuYmluZCh0aGlzKSk7XG4gIH1cblxuICBpbml0SGFuZGxlcnMoKSB7XG4gICAgdGhpcy5oYW5kbGVycy5maWx0ZXIoaGFuZGxlciA9PiAhdGhpcy5oYW5kbGVySWRzLmluY2x1ZGVzKGhhbmRsZXIuaWQpKS5mb3JFYWNoKHRoaXMuaW5pdEhhbmRsZXIuYmluZCh0aGlzKSk7XG4gIH1cblxuICBpbml0SGFuZGxlcihoYW5kbGVyOiBMYXllckhhbmRsZXI8YW55Pikge1xuICAgIGhhbmRsZXIuaW5pdGlhbGl6ZSh0aGlzLmxheWVyUmVmWydfbWFwJ10sIHRoaXMubGF5ZXJSZWYpO1xuICAgIHRoaXMuaGFuZGxlcklkcyA9IFsuLi50aGlzLmhhbmRsZXJJZHMsIGhhbmRsZXIuaWRdO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5oYW5kbGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5yZW1vdmVGcm9tKCk7XG4gIH1cbn1cbiJdfQ==