@yaga/leaflet-ng2
Version:
Angular2 module for Leaflet
67 lines • 3.1 kB
JavaScript
;
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