angular-leaflet
Version:
Collection of angular components to build map views faster and with minimal configuration using the most popular library **LeafletJS**.
105 lines • 6.49 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { ContentChildren, QueryList } from '@angular/core';
import { LayerHandler } from './layer-handler';
import { v4 as uuid } from 'uuid';
/**
* @template T
*/
var BaseLayer = /** @class */ (function () {
function BaseLayer() {
this.handlerIds = [];
this.id = uuid();
}
/**
* @param {?} map
* @return {?}
*/
BaseLayer.prototype.addTo = /**
* @param {?} map
* @return {?}
*/
function (map) {
this.mapRef = map;
};
/**
* @return {?}
*/
BaseLayer.prototype.removeFrom = /**
* @return {?}
*/
function () {
if (this.layerRef) {
((/** @type {?} */ (this.mapRef))).removeLayer(this.layerRef);
}
};
/**
* @return {?}
*/
BaseLayer.prototype.ngAfterContentInit = /**
* @return {?}
*/
function () {
this.initHandlers();
this.handlerSubscription = this.handlers.changes.subscribe(this.initHandlers.bind(this));
};
/**
* @return {?}
*/
BaseLayer.prototype.initHandlers = /**
* @return {?}
*/
function () {
var _this = this;
this.handlers.filter((/**
* @param {?} handler
* @return {?}
*/
function (handler) { return !_this.handlerIds.includes(handler.id); })).forEach(this.initHandler.bind(this));
};
/**
* @param {?} handler
* @return {?}
*/
BaseLayer.prototype.initHandler = /**
* @param {?} handler
* @return {?}
*/
function (handler) {
handler.initialize(this.layerRef['_map'], this.layerRef);
this.handlerIds = tslib_1.__spread(this.handlerIds, [handler.id]);
};
/**
* @return {?}
*/
BaseLayer.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.handlerSubscription.unsubscribe();
this.removeFrom();
};
BaseLayer.propDecorators = {
handlers: [{ type: ContentChildren, args: [LayerHandler,] }]
};
return BaseLayer;
}());
export { BaseLayer };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1sYXllci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItbGVhZmxldC8iLCJzb3VyY2VzIjpbImNvcmUvYmFzZS1sYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBb0IsZUFBZSxFQUFhLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFHbEM7SUFRRTtRQUpBLGVBQVUsR0FBYSxFQUFFLENBQUM7UUFLeEIsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUNuQixDQUFDOzs7OztJQUVELHlCQUFLOzs7O0lBQUwsVUFBTSxHQUFxQjtRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUNwQixDQUFDOzs7O0lBRUQsOEJBQVU7OztJQUFWO1FBQ0UsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLENBQUMsbUJBQUEsSUFBSSxDQUFDLE1BQU0sRUFBTyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNqRDtJQUNILENBQUM7Ozs7SUFFRCxzQ0FBa0I7OztJQUFsQjtRQUNFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDM0YsQ0FBQzs7OztJQUVELGdDQUFZOzs7SUFBWjtRQUFBLGlCQUVDO1FBREMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNOzs7O1FBQUMsVUFBQSxPQUFPLElBQUksT0FBQSxDQUFDLEtBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBckMsQ0FBcUMsRUFBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzlHLENBQUM7Ozs7O0lBRUQsK0JBQVc7Ozs7SUFBWCxVQUFZLE9BQTBCO1FBQ3BDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFVBQVUsb0JBQU8sSUFBSSxDQUFDLFVBQVUsR0FBRSxPQUFPLENBQUMsRUFBRSxFQUFDLENBQUM7SUFDckQsQ0FBQzs7OztJQUVELCtCQUFXOzs7SUFBWDtRQUNFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7MkJBakNBLGVBQWUsU0FBQyxZQUFZOztJQWtDL0IsZ0JBQUM7Q0FBQSxBQXhDRCxJQXdDQztTQXhDWSxTQUFTOzs7SUFDcEIsdUJBQVc7O0lBQ1gsMkJBQXlCOztJQUN6Qiw2QkFBWTs7SUFDWiwrQkFBMEI7O0lBQzFCLHdDQUFrQzs7SUFDbEMsNkJBQXNFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGF5ZXIsIExheWVyR3JvdXAsIE1hcCB9IGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29udGVudENoaWxkcmVuLCBPbkRlc3Ryb3ksIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGF5ZXJIYW5kbGVyIH0gZnJvbSAnLi9sYXllci1oYW5kbGVyJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY2xhc3MgQmFzZUxheWVyPFQgZXh0ZW5kcyBMYXllcj4gaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudEluaXQge1xuICBpZDogc3RyaW5nO1xuICBtYXBSZWY6IE1hcCB8IExheWVyR3JvdXA7XG4gIGxheWVyUmVmOiBUO1xuICBoYW5kbGVySWRzOiBzdHJpbmdbXSA9IFtdO1xuICBoYW5kbGVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIEBDb250ZW50Q2hpbGRyZW4oTGF5ZXJIYW5kbGVyKSBoYW5kbGVyczogUXVlcnlMaXN0PExheWVySGFuZGxlcjxhbnk+PjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmlkID0gdXVpZCgpO1xuICB9XG5cbiAgYWRkVG8obWFwOiBNYXAgfCBMYXllckdyb3VwKTogdm9pZCB7XG4gICAgdGhpcy5tYXBSZWYgPSBtYXA7XG4gIH1cblxuICByZW1vdmVGcm9tKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxheWVyUmVmKSB7XG4gICAgICAodGhpcy5tYXBSZWYgYXMgYW55KS5yZW1vdmVMYXllcih0aGlzLmxheWVyUmVmKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0SGFuZGxlcnMoKTtcbiAgICB0aGlzLmhhbmRsZXJTdWJzY3JpcHRpb24gPSB0aGlzLmhhbmRsZXJzLmNoYW5nZXMuc3Vic2NyaWJlKHRoaXMuaW5pdEhhbmRsZXJzLmJpbmQodGhpcykpO1xuICB9XG5cbiAgaW5pdEhhbmRsZXJzKCkge1xuICAgIHRoaXMuaGFuZGxlcnMuZmlsdGVyKGhhbmRsZXIgPT4gIXRoaXMuaGFuZGxlcklkcy5pbmNsdWRlcyhoYW5kbGVyLmlkKSkuZm9yRWFjaCh0aGlzLmluaXRIYW5kbGVyLmJpbmQodGhpcykpO1xuICB9XG5cbiAgaW5pdEhhbmRsZXIoaGFuZGxlcjogTGF5ZXJIYW5kbGVyPGFueT4pIHtcbiAgICBoYW5kbGVyLmluaXRpYWxpemUodGhpcy5sYXllclJlZlsnX21hcCddLCB0aGlzLmxheWVyUmVmKTtcbiAgICB0aGlzLmhhbmRsZXJJZHMgPSBbLi4udGhpcy5oYW5kbGVySWRzLCBoYW5kbGVyLmlkXTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuaGFuZGxlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMucmVtb3ZlRnJvbSgpO1xuICB9XG59XG4iXX0=