angular-leaflet
Version:
Collection of angular components to build map views faster and with minimal configuration using the most popular library **LeafletJS**.
91 lines • 6.45 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, forwardRef, QueryList } from '@angular/core';
import { BaseLayer } from '../../core/base-layer';
import { FeatureGroup } from 'leaflet';
var FeatureGroupComponent = /** @class */ (function (_super) {
tslib_1.__extends(FeatureGroupComponent, _super);
function FeatureGroupComponent() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.layerIds = [];
return _this;
}
/**
* @param {?} map
* @return {?}
*/
FeatureGroupComponent.prototype.addTo = /**
* @param {?} map
* @return {?}
*/
function (map) {
_super.prototype.addTo.call(this, map);
this.layerRef = new FeatureGroup();
this.mapRef.addLayer(this.layerRef);
this.addLayers();
this.initHandlers();
this.layers.changes.subscribe(this.addLayers.bind(this));
};
/**
* @private
* @return {?}
*/
FeatureGroupComponent.prototype.addLayers = /**
* @private
* @return {?}
*/
function () {
var _this = this;
this.layers
.filter((/**
* @param {?} layer
* @return {?}
*/
function (layer) { return layer.id !== _this.id; }))
.filter((/**
* @param {?} layer
* @return {?}
*/
function (layer) { return !_this.layerIds.includes(layer.id); }))
.forEach(this.addLayer.bind(this));
};
/**
* @private
* @param {?} layer
* @return {?}
*/
FeatureGroupComponent.prototype.addLayer = /**
* @private
* @param {?} layer
* @return {?}
*/
function (layer) {
layer.addTo(this.layerRef);
this.layerIds = tslib_1.__spread(this.layerIds, [layer.id]);
};
FeatureGroupComponent.decorators = [
{ type: Component, args: [{
selector: 'ngl-feature-group',
template: '',
providers: [{ provide: BaseLayer, useExisting: forwardRef((/**
* @return {?}
*/
function () { return FeatureGroupComponent; })) }]
}] }
];
FeatureGroupComponent.propDecorators = {
layers: [{ type: ContentChildren, args: [BaseLayer,] }]
};
return FeatureGroupComponent;
}(BaseLayer));
export { FeatureGroupComponent };
if (false) {
/** @type {?} */
FeatureGroupComponent.prototype.layers;
/** @type {?} */
FeatureGroupComponent.prototype.layerIds;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLWxlYWZsZXQvIiwic291cmNlcyI6WyJncm91cHMvZmVhdHVyZS1ncm91cC9mZWF0dXJlLWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQW1CLE1BQU0sU0FBUyxDQUFDO0FBRXhEO0lBSzJDLGlEQUF1QjtJQUxsRTtRQUFBLHFFQWlDQztRQXpCQyxjQUFRLEdBQWEsRUFBRSxDQUFDOztJQXlCMUIsQ0FBQzs7Ozs7SUF2QkMscUNBQUs7Ozs7SUFBTCxVQUFNLEdBQXFCO1FBQ3pCLGlCQUFNLEtBQUssWUFBQyxHQUFHLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXBDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVqQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQzs7Ozs7SUFFTyx5Q0FBUzs7OztJQUFqQjtRQUFBLGlCQUtDO1FBSkMsSUFBSSxDQUFDLE1BQU07YUFDUixNQUFNOzs7O1FBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxLQUFLLENBQUMsRUFBRSxLQUFLLEtBQUksQ0FBQyxFQUFFLEVBQXBCLENBQW9CLEVBQUM7YUFDckMsTUFBTTs7OztRQUFDLFVBQUEsS0FBSyxJQUFJLE9BQUEsQ0FBQyxLQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQWpDLENBQWlDLEVBQUM7YUFDbEQsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQzs7Ozs7O0lBRU8sd0NBQVE7Ozs7O0lBQWhCLFVBQWlCLEtBQXFCO1FBQ3BDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLG9CQUFPLElBQUksQ0FBQyxRQUFRLEdBQUUsS0FBSyxDQUFDLEVBQUUsRUFBQyxDQUFDO0lBQy9DLENBQUM7O2dCQWhDRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFLEVBQUU7b0JBQ1osU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVOzs7NEJBQUMsY0FBTSxPQUFBLHFCQUFxQixFQUFyQixDQUFxQixFQUFDLEVBQUUsQ0FBQztpQkFDMUY7Ozt5QkFFRSxlQUFlLFNBQUMsU0FBUzs7SUEyQjVCLDRCQUFDO0NBQUEsQUFqQ0QsQ0FLMkMsU0FBUyxHQTRCbkQ7U0E1QlkscUJBQXFCOzs7SUFDaEMsdUNBQThEOztJQUU5RCx5Q0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgZm9yd2FyZFJlZiwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlTGF5ZXIgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtbGF5ZXInO1xuaW1wb3J0IHsgRmVhdHVyZUdyb3VwLCBMYXllckdyb3VwLCBNYXAgfSBmcm9tICdsZWFmbGV0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmdsLWZlYXR1cmUtZ3JvdXAnLFxuICB0ZW1wbGF0ZTogJycsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQmFzZUxheWVyLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGZWF0dXJlR3JvdXBDb21wb25lbnQpIH1dXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVHcm91cENvbXBvbmVudCBleHRlbmRzIEJhc2VMYXllcjxGZWF0dXJlR3JvdXA+IHtcbiAgQENvbnRlbnRDaGlsZHJlbihCYXNlTGF5ZXIpIGxheWVyczogUXVlcnlMaXN0PEJhc2VMYXllcjxhbnk+PjtcblxuICBsYXllcklkczogc3RyaW5nW10gPSBbXTtcblxuICBhZGRUbyhtYXA6IE1hcCB8IExheWVyR3JvdXApOiB2b2lkIHtcbiAgICBzdXBlci5hZGRUbyhtYXApO1xuICAgIHRoaXMubGF5ZXJSZWYgPSBuZXcgRmVhdHVyZUdyb3VwKCk7XG4gICAgdGhpcy5tYXBSZWYuYWRkTGF5ZXIodGhpcy5sYXllclJlZik7XG5cbiAgICB0aGlzLmFkZExheWVycygpO1xuXG4gICAgdGhpcy5pbml0SGFuZGxlcnMoKTtcblxuICAgIHRoaXMubGF5ZXJzLmNoYW5nZXMuc3Vic2NyaWJlKHRoaXMuYWRkTGF5ZXJzLmJpbmQodGhpcykpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRMYXllcnMoKSB7XG4gICAgdGhpcy5sYXllcnNcbiAgICAgIC5maWx0ZXIobGF5ZXIgPT4gbGF5ZXIuaWQgIT09IHRoaXMuaWQpXG4gICAgICAuZmlsdGVyKGxheWVyID0+ICF0aGlzLmxheWVySWRzLmluY2x1ZGVzKGxheWVyLmlkKSlcbiAgICAgIC5mb3JFYWNoKHRoaXMuYWRkTGF5ZXIuYmluZCh0aGlzKSk7XG4gIH1cblxuICBwcml2YXRlIGFkZExheWVyKGxheWVyOiBCYXNlTGF5ZXI8YW55Pikge1xuICAgIGxheWVyLmFkZFRvKHRoaXMubGF5ZXJSZWYpO1xuICAgIHRoaXMubGF5ZXJJZHMgPSBbLi4udGhpcy5sYXllcklkcywgbGF5ZXIuaWRdO1xuICB9XG59XG4iXX0=