angular-leaflet
Version:
Collection of angular components to build map views faster and with minimal configuration using the most popular library **LeafletJS**.
135 lines • 8.93 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, ContentChildren, ElementRef, Input, QueryList } from '@angular/core';
import { map } from 'leaflet';
import { BaseLayer } from './base-layer';
import { MapHandler } from './map-handler';
var LeafletComponent = /** @class */ (function () {
function LeafletComponent(elementRef) {
this.elementRef = elementRef;
this.layerIds = [];
this.handlerIds = [];
}
/**
* @return {?}
*/
LeafletComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.map = map(this.elementRef.nativeElement, tslib_1.__assign({}, this.options));
};
/**
* @return {?}
*/
LeafletComponent.prototype.ngAfterContentInit = /**
* @return {?}
*/
function () {
this.addLayers();
this.layers.changes.subscribe(this.addLayers.bind(this));
this.addHandlers();
this.handlers.changes.subscribe(this.addHandlers.bind(this));
};
/**
* @private
* @return {?}
*/
LeafletComponent.prototype.addLayers = /**
* @private
* @return {?}
*/
function () {
var _this = this;
this.layers.filter((/**
* @param {?} layer
* @return {?}
*/
function (layer) { return !_this.layerIds.includes(layer.id); })).forEach(this.addLayer.bind(this));
};
/**
* @private
* @param {?} layer
* @return {?}
*/
LeafletComponent.prototype.addLayer = /**
* @private
* @param {?} layer
* @return {?}
*/
function (layer) {
layer.addTo(this.map);
this.layerIds = tslib_1.__spread(this.layerIds, [layer.id]);
};
/**
* @private
* @return {?}
*/
LeafletComponent.prototype.addHandlers = /**
* @private
* @return {?}
*/
function () {
var _this = this;
this.handlers.filter((/**
* @param {?} handler
* @return {?}
*/
function (handler) { return !_this.handlerIds.includes(handler.id); })).forEach(this.addHandler.bind(this));
};
/**
* @private
* @param {?} handler
* @return {?}
*/
LeafletComponent.prototype.addHandler = /**
* @private
* @param {?} handler
* @return {?}
*/
function (handler) {
handler.initialize(this.map);
this.handlerIds = tslib_1.__spread(this.handlerIds, [handler.id]);
};
LeafletComponent.decorators = [
{ type: Component, args: [{
selector: 'ngl-leaflet',
template: '<ng-content></ng-content>',
styles: ["\n :host {\n display: flex;\n flex: 1 1 auto;\n }\n "]
}] }
];
/** @nocollapse */
LeafletComponent.ctorParameters = function () { return [
{ type: ElementRef }
]; };
LeafletComponent.propDecorators = {
options: [{ type: Input }],
layers: [{ type: ContentChildren, args: [BaseLayer,] }],
handlers: [{ type: ContentChildren, args: [MapHandler, { descendants: true },] }]
};
return LeafletComponent;
}());
export { LeafletComponent };
if (false) {
/** @type {?} */
LeafletComponent.prototype.options;
/** @type {?} */
LeafletComponent.prototype.layers;
/** @type {?} */
LeafletComponent.prototype.handlers;
/** @type {?} */
LeafletComponent.prototype.map;
/** @type {?} */
LeafletComponent.prototype.layerIds;
/** @type {?} */
LeafletComponent.prototype.handlerIds;
/**
* @type {?}
* @private
*/
LeafletComponent.prototype.elementRef;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZmxldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLWxlYWZsZXQvIiwic291cmNlcyI6WyJjb3JlL2xlYWZsZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFvQixTQUFTLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxHQUFHLEVBQW1CLE1BQU0sU0FBUyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQztJQXNCRSwwQkFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUgxQyxhQUFRLEdBQWEsRUFBRSxDQUFDO1FBQ3hCLGVBQVUsR0FBYSxFQUFFLENBQUM7SUFFbUIsQ0FBQzs7OztJQUU5QyxtQ0FBUTs7O0lBQVI7UUFDRSxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsdUJBQ3ZDLElBQUksQ0FBQyxPQUFPLEVBQ2YsQ0FBQztJQUNMLENBQUM7Ozs7SUFFRCw2Q0FBa0I7OztJQUFsQjtRQUNFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUV6RCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQzs7Ozs7SUFFTyxvQ0FBUzs7OztJQUFqQjtRQUFBLGlCQUVDO1FBREMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNOzs7O1FBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxDQUFDLEtBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBakMsQ0FBaUMsRUFBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ25HLENBQUM7Ozs7OztJQUVPLG1DQUFROzs7OztJQUFoQixVQUFpQixLQUFxQjtRQUNwQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxvQkFBTyxJQUFJLENBQUMsUUFBUSxHQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUMsQ0FBQztJQUMvQyxDQUFDOzs7OztJQUVPLHNDQUFXOzs7O0lBQW5CO1FBQUEsaUJBRUM7UUFEQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07Ozs7UUFBQyxVQUFBLE9BQU8sSUFBSSxPQUFBLENBQUMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFyQyxDQUFxQyxFQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDN0csQ0FBQzs7Ozs7O0lBRU8scUNBQVU7Ozs7O0lBQWxCLFVBQW1CLE9BQW1CO1FBQ3BDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLG9CQUFPLElBQUksQ0FBQyxVQUFVLEdBQUUsT0FBTyxDQUFDLEVBQUUsRUFBQyxDQUFDO0lBQ3JELENBQUM7O2dCQXRERixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRSwyQkFBMkI7NkJBRW5DLGlGQUtDO2lCQUVKOzs7O2dCQWhCc0QsVUFBVTs7OzBCQWtCOUQsS0FBSzt5QkFFTCxlQUFlLFNBQUMsU0FBUzsyQkFDekIsZUFBZSxTQUFDLFVBQVUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7O0lBdUNwRCx1QkFBQztDQUFBLEFBdkRELElBdURDO1NBM0NZLGdCQUFnQjs7O0lBQzNCLG1DQUE2Qjs7SUFFN0Isa0NBQThEOztJQUM5RCxvQ0FBb0Y7O0lBRXBGLCtCQUFTOztJQUNULG9DQUF3Qjs7SUFDeEIsc0NBQTBCOzs7OztJQUVkLHNDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCwgTWFwLCBNYXBPcHRpb25zIH0gZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgeyBCYXNlTGF5ZXIgfSBmcm9tICcuL2Jhc2UtbGF5ZXInO1xuaW1wb3J0IHsgTWFwSGFuZGxlciB9IGZyb20gJy4vbWFwLWhhbmRsZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ2wtbGVhZmxldCcsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICB9XG4gICAgYFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIExlYWZsZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xuICBASW5wdXQoKSBvcHRpb25zOiBNYXBPcHRpb25zO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oQmFzZUxheWVyKSBsYXllcnM6IFF1ZXJ5TGlzdDxCYXNlTGF5ZXI8YW55Pj47XG4gIEBDb250ZW50Q2hpbGRyZW4oTWFwSGFuZGxlciwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBoYW5kbGVyczogUXVlcnlMaXN0PE1hcEhhbmRsZXI+O1xuXG4gIG1hcDogTWFwO1xuICBsYXllcklkczogc3RyaW5nW10gPSBbXTtcbiAgaGFuZGxlcklkczogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5tYXAgPSBtYXAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIC4uLnRoaXMub3B0aW9uc1xuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuYWRkTGF5ZXJzKCk7XG4gICAgdGhpcy5sYXllcnMuY2hhbmdlcy5zdWJzY3JpYmUodGhpcy5hZGRMYXllcnMuYmluZCh0aGlzKSk7XG5cbiAgICB0aGlzLmFkZEhhbmRsZXJzKCk7XG4gICAgdGhpcy5oYW5kbGVycy5jaGFuZ2VzLnN1YnNjcmliZSh0aGlzLmFkZEhhbmRsZXJzLmJpbmQodGhpcykpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRMYXllcnMoKSB7XG4gICAgdGhpcy5sYXllcnMuZmlsdGVyKGxheWVyID0+ICF0aGlzLmxheWVySWRzLmluY2x1ZGVzKGxheWVyLmlkKSkuZm9yRWFjaCh0aGlzLmFkZExheWVyLmJpbmQodGhpcykpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRMYXllcihsYXllcjogQmFzZUxheWVyPGFueT4pIHtcbiAgICBsYXllci5hZGRUbyh0aGlzLm1hcCk7XG4gICAgdGhpcy5sYXllcklkcyA9IFsuLi50aGlzLmxheWVySWRzLCBsYXllci5pZF07XG4gIH1cblxuICBwcml2YXRlIGFkZEhhbmRsZXJzKCkge1xuICAgIHRoaXMuaGFuZGxlcnMuZmlsdGVyKGhhbmRsZXIgPT4gIXRoaXMuaGFuZGxlcklkcy5pbmNsdWRlcyhoYW5kbGVyLmlkKSkuZm9yRWFjaCh0aGlzLmFkZEhhbmRsZXIuYmluZCh0aGlzKSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEhhbmRsZXIoaGFuZGxlcjogTWFwSGFuZGxlcikge1xuICAgIGhhbmRsZXIuaW5pdGlhbGl6ZSh0aGlzLm1hcCk7XG4gICAgdGhpcy5oYW5kbGVySWRzID0gWy4uLnRoaXMuaGFuZGxlcklkcywgaGFuZGxlci5pZF07XG4gIH1cbn1cbiJdfQ==