UNPKG

@jmarcelof/leaflet-ng2

Version:
80 lines 3.75 kB
"use strict"; 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