UNPKG

@yaga/leaflet-ng2

Version:
67 lines 3.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OverlayLayerDirective = void 0; const core_1 = require("@angular/core"); const layer_provider_1 = require("./layer.provider"); const layers_control_provider_1 = require("./layers-control.provider"); const i0 = require("@angular/core"); const i1 = require("./layer.provider"); const i2 = 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/ */ class OverlayLayerDirective { constructor(layer, layersControlProvider) { this.layer = layer; this.layersControlProvider = layersControlProvider; } set caption(value) { this.layersControlProvider.ref.removeLayer(this.layer.ref); this.layersControlProvider.ref.addOverlay(this.layer.ref, value); } get caption() { for (const layer of this.layersControlProvider.ref._layers) { if (layer.layer === this.layer.ref) { return layer.name; } } return ""; } /** * Internal method to provide the removal from the control in Leaflet, when removing it from the Angular template */ ngOnDestroy() { this.layersControlProvider.ref.removeLayer(this.layer.ref); } } exports.OverlayLayerDirective = OverlayLayerDirective; OverlayLayerDirective.ɵfac = function OverlayLayerDirective_Factory(t) { return new (t || OverlayLayerDirective)(i0.ɵɵdirectiveInject(i1.LayerProvider), i0.ɵɵdirectiveInject(i2.LayersControlProvider)); }; OverlayLayerDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: OverlayLayerDirective, selectors: [["", "yaga-overlay-layer", ""]], inputs: { caption: "caption" } }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OverlayLayerDirective, [{ type: core_1.Directive, args: [{ selector: "[yaga-overlay-layer]", }] }], function () { return [{ type: i1.LayerProvider }, { type: i2.LayersControlProvider }]; }, { caption: [{ type: core_1.Input }] }); })(); //# sourceMappingURL=overlay-layer.directive.js.map