UNPKG

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
/** * @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==