@jmarcelof/leaflet-ng2
Version:
Angular2 module for Leaflet
80 lines • 3.75 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = require("@angular/core");
var layer_provider_1 = require("./layer.provider");
var layers_control_provider_1 = require("./layers-control.provider");
/**
* Angular2 directive for adding layers to the layers-control of Leaflet as base-layer.
*
* *You can use this directive in an Angular2 template after importing `YagaModule`.*
*
* How to use in a template:
* ```html
* <yaga-map>
* <yaga-layers-control>
* <!-- This can be any other layer... -->
* <yaga-tile-layer yaga-overlay-layer [caption]="'Transparent OSM'"></yaga-tile-layer>
* </yaga-attribution-control>
* </yaga-map>
* ```
*
* @link http://leafletjs.com/reference-1.2.0.html#control-layers-addoverlay Original Leaflet documentation
* @link https://leaflet-ng2.yagajs.org/latest/browser-test?grep=Overlay-Layer%20Directive Unit-Test
* @link https://leaflet-ng2.yagajs.org/latest/coverage/lcov-report/lib/overlay-layer.directive.js.html
* Test coverage
* @link https://leaflet-ng2.yagajs.org/latest/typedoc/classes/overlaylayerdirective.html API documentation
* @example https://leaflet-ng2.yagajs.org/latest/examples/layers-control-directive/
*/
var OverlayLayerDirective = /** @class */ (function () {
function OverlayLayerDirective(layer, layersControlProvider) {
this.layer = layer;
this.layersControlProvider = layersControlProvider;
}
Object.defineProperty(OverlayLayerDirective.prototype, "caption", {
get: function () {
for (var _i = 0, _a = this.layersControlProvider.ref._layers; _i < _a.length; _i++) {
var layer = _a[_i];
if (layer.layer === this.layer.ref) {
return layer.name;
}
}
return "";
},
set: function (value) {
this.layersControlProvider.ref.removeLayer(this.layer.ref);
this.layersControlProvider.ref.addOverlay(this.layer.ref, value);
},
enumerable: true,
configurable: true
});
/**
* Internal method to provide the removal from the control in Leaflet, when removing it from the Angular template
*/
OverlayLayerDirective.prototype.ngOnDestroy = function () {
this.layersControlProvider.ref.removeLayer(this.layer.ref);
};
__decorate([
core_1.Input(),
__metadata("design:type", String),
__metadata("design:paramtypes", [String])
], OverlayLayerDirective.prototype, "caption", null);
OverlayLayerDirective = __decorate([
core_1.Directive({
selector: "[yaga-overlay-layer]",
}),
__metadata("design:paramtypes", [layer_provider_1.LayerProvider,
layers_control_provider_1.LayersControlProvider])
], OverlayLayerDirective);
return OverlayLayerDirective;
}());
exports.OverlayLayerDirective = OverlayLayerDirective;
//# sourceMappingURL=overlay-layer.directive.js.map