UNPKG

@yaga/leaflet-ng2

Version:
67 lines 3.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BaseLayerDirective = 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-base-layer [caption]="'OSM'"></yaga-tile-layer> * </yaga-attribution-control> * </yaga-map> * ``` * * @link http://leafletjs.com/reference-1.2.0.html#control-layers-addbaselayer Original Leaflet documentation * @link https://leaflet-ng2.yagajs.org/latest/browser-test?grep=Base-Layer%20Directive Unit-Test * @link https://leaflet-ng2.yagajs.org/latest/coverage/lcov-report/lib/base-layer.directive.js.html * Test coverage * @link https://leaflet-ng2.yagajs.org/latest/typedoc/classes/baselayerdirective.html API documentation * @example https://leaflet-ng2.yagajs.org/latest/examples/layers-control-directive/ */ class BaseLayerDirective { constructor(layer, layersControlProvider) { this.layer = layer; this.layersControlProvider = layersControlProvider; } set caption(value) { this.layersControlProvider.ref.removeLayer(this.layer.ref); this.layersControlProvider.ref.addBaseLayer(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.BaseLayerDirective = BaseLayerDirective; BaseLayerDirective.ɵfac = function BaseLayerDirective_Factory(t) { return new (t || BaseLayerDirective)(i0.ɵɵdirectiveInject(i1.LayerProvider), i0.ɵɵdirectiveInject(i2.LayersControlProvider)); }; BaseLayerDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: BaseLayerDirective, selectors: [["", "yaga-base-layer", ""]], inputs: { caption: "caption" } }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseLayerDirective, [{ type: core_1.Directive, args: [{ selector: "[yaga-base-layer]", }] }], function () { return [{ type: i1.LayerProvider }, { type: i2.LayersControlProvider }]; }, { caption: [{ type: core_1.Input }] }); })(); //# sourceMappingURL=base-layer.directive.js.map