UNPKG

69.7 kBSource Map (JSON)View Raw
1{"version":3,"file":"ngx-leaflet.umd.js","sources":["../leaflet/core/leaflet.util.js","../leaflet/core/leaflet.directive.js","../leaflet/core/leaflet.directive.wrapper.js","../leaflet/layers/leaflet-layer.directive.js","../leaflet/layers/leaflet-layers.directive.js","../leaflet/layers/control/leaflet-control-layers-changes.model.js","../leaflet/layers/control/leaflet-control-layers.wrapper.js","../leaflet/layers/control/leaflet-control-layers-config.model.js","../leaflet/layers/control/leaflet-control-layers.directive.js","../leaflet/layers/base/leaflet-baselayers.directive.js","../leaflet/leaflet.module.js","../leaflet/layers/leaflet-tile-layer-definition.model.js"],"sourcesContent":["var LeafletUtil = /** @class */ (function () {\n function LeafletUtil() {\n }\n LeafletUtil.mapToArray = function (map) {\n var toReturn = [];\n for (var k in map) {\n if (map.hasOwnProperty(k)) {\n toReturn.push(map[k]);\n }\n }\n return toReturn;\n };\n LeafletUtil.handleEvent = function (zone, eventEmitter, event) {\n // Don't want to emit if there are no observers\n if (0 < eventEmitter.observers.length) {\n zone.run(function () {\n eventEmitter.emit(event);\n });\n }\n };\n return LeafletUtil;\n}());\nexport { LeafletUtil };\n//# sourceMappingURL=leaflet.util.js.map","import { Directive, ElementRef, EventEmitter, HostListener, Input, NgZone, Output } from '@angular/core';\nimport { latLng, map } from 'leaflet';\nimport { LeafletUtil } from './leaflet.util';\nvar LeafletDirective = /** @class */ (function () {\n function LeafletDirective(element, zone) {\n this.element = element;\n this.zone = zone;\n this.DEFAULT_ZOOM = 1;\n this.DEFAULT_CENTER = latLng(38.907192, -77.036871);\n this.DEFAULT_FPZ_OPTIONS = {};\n this.fitBoundsOptions = this.DEFAULT_FPZ_OPTIONS;\n this.panOptions = this.DEFAULT_FPZ_OPTIONS;\n this.zoomOptions = this.DEFAULT_FPZ_OPTIONS;\n this.zoomPanOptions = this.DEFAULT_FPZ_OPTIONS;\n // Default configuration\n this.options = {};\n // Configure callback function for the map\n this.mapReady = new EventEmitter();\n this.zoomChange = new EventEmitter();\n this.centerChange = new EventEmitter();\n // Mouse Map Events\n this.onClick = new EventEmitter();\n this.onDoubleClick = new EventEmitter();\n this.onMouseDown = new EventEmitter();\n this.onMouseUp = new EventEmitter();\n this.onMouseMove = new EventEmitter();\n this.onMouseOver = new EventEmitter();\n this.onMouseOut = new EventEmitter();\n // Map Move Events\n this.onMapMove = new EventEmitter();\n this.onMapMoveStart = new EventEmitter();\n this.onMapMoveEnd = new EventEmitter();\n // Map Zoom Events\n this.onMapZoom = new EventEmitter();\n this.onMapZoomStart = new EventEmitter();\n this.onMapZoomEnd = new EventEmitter();\n this.mapEventHandlers = {};\n // Nothing here\n }\n LeafletDirective.prototype.ngOnInit = function () {\n var _this = this;\n // Create the map outside of angular so the various map events don't trigger change detection\n this.zone.runOutsideAngular(function () {\n // Create the map with some reasonable defaults\n _this.map = map(_this.element.nativeElement, _this.options);\n _this.addMapEventListeners();\n });\n // Only setView if there is a center/zoom\n if (null != this.center && null != this.zoom) {\n this.setView(this.center, this.zoom);\n }\n // Set up all the initial settings\n if (null != this.fitBounds) {\n this.setFitBounds(this.fitBounds);\n }\n if (null != this.maxBounds) {\n this.setMaxBounds(this.maxBounds);\n }\n if (null != this.minZoom) {\n this.setMinZoom(this.minZoom);\n }\n if (null != this.maxZoom) {\n this.setMaxZoom(this.maxZoom);\n }\n this.doResize();\n // Fire map ready event\n this.mapReady.emit(this.map);\n };\n LeafletDirective.prototype.ngOnChanges = function (changes) {\n /*\n * The following code is to address an issue with our (basic) implementation of\n * zooming and panning. From our testing, it seems that a pan operation followed\n * by a zoom operation in the same thread will interfere with eachother. The zoom\n * operation interrupts/cancels the pan, resulting in a final center point that is\n * inaccurate. The solution seems to be to either separate them with a timeout or\n * to collapse them into a setView call.\n */\n // Zooming and Panning\n if (changes['zoom'] && changes['center'] && null != this.zoom && null != this.center) {\n this.setView(changes['center'].currentValue, changes['zoom'].currentValue);\n }\n // Set the zoom level\n else if (changes['zoom']) {\n this.setZoom(changes['zoom'].currentValue);\n }\n // Set the map center\n else if (changes['center']) {\n this.setCenter(changes['center'].currentValue);\n }\n // Other options\n if (changes['fitBounds']) {\n this.setFitBounds(changes['fitBounds'].currentValue);\n }\n if (changes['maxBounds']) {\n this.setMaxBounds(changes['maxBounds'].currentValue);\n }\n if (changes['minZoom']) {\n this.setMinZoom(changes['minZoom'].currentValue);\n }\n if (changes['maxZoom']) {\n this.setMaxZoom(changes['maxZoom'].currentValue);\n }\n };\n LeafletDirective.prototype.ngOnDestroy = function () {\n // If this directive is destroyed, the map is too\n this.map.remove();\n };\n LeafletDirective.prototype.getMap = function () {\n return this.map;\n };\n LeafletDirective.prototype.onResize = function () {\n this.delayResize();\n };\n LeafletDirective.prototype.addMapEventListeners = function () {\n var _this = this;\n var registerEventHandler = function (eventName, handler) {\n _this.mapEventHandlers[eventName] = handler;\n _this.map.on(eventName, handler);\n };\n // Add all the pass-through mouse event handlers\n registerEventHandler('click', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onClick, e); });\n registerEventHandler('dblclick', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onDoubleClick, e); });\n registerEventHandler('mousedown', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMouseDown, e); });\n registerEventHandler('mouseup', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMouseUp, e); });\n registerEventHandler('mouseover', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMouseOver, e); });\n registerEventHandler('mouseout', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMouseOut, e); });\n registerEventHandler('mousemove', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMouseMove, e); });\n registerEventHandler('zoomstart', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMapZoomStart, e); });\n registerEventHandler('zoom', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMapZoom, e); });\n registerEventHandler('zoomend', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMapZoomEnd, e); });\n registerEventHandler('movestart', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMapMoveStart, e); });\n registerEventHandler('move', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMapMove, e); });\n registerEventHandler('moveend', function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onMapMoveEnd, e); });\n // Update any things for which we provide output bindings\n var outputUpdateHandler = function () {\n var zoom = _this.map.getZoom();\n if (zoom !== _this.zoom) {\n _this.zoom = zoom;\n LeafletUtil.handleEvent(_this.zone, _this.zoomChange, zoom);\n }\n var center = _this.map.getCenter();\n if (null != center || null != _this.center) {\n if (((null == center || null == _this.center) && center !== _this.center)\n || (center.lat !== _this.center.lat || center.lng !== _this.center.lng)) {\n _this.center = center;\n LeafletUtil.handleEvent(_this.zone, _this.centerChange, center);\n }\n }\n };\n registerEventHandler('moveend', outputUpdateHandler);\n registerEventHandler('zoomend', outputUpdateHandler);\n };\n /**\n * Resize the map to fit it's parent container\n */\n LeafletDirective.prototype.doResize = function () {\n var _this = this;\n // Run this outside of angular so the map events stay outside of angular\n this.zone.runOutsideAngular(function () {\n // Invalidate the map size to trigger it to update itself\n _this.map.invalidateSize({});\n });\n };\n /**\n * Manage a delayed resize of the component\n */\n LeafletDirective.prototype.delayResize = function () {\n if (null != this.resizeTimer) {\n clearTimeout(this.resizeTimer);\n }\n this.resizeTimer = setTimeout(this.doResize.bind(this), 200);\n };\n /**\n * Set the view (center/zoom) all at once\n * @param center The new center\n * @param zoom The new zoom level\n */\n LeafletDirective.prototype.setView = function (center, zoom) {\n if (this.map && null != center && null != zoom) {\n this.map.setView(center, zoom, this.zoomPanOptions);\n }\n };\n /**\n * Set the map zoom level\n * @param zoom the new zoom level for the map\n */\n LeafletDirective.prototype.setZoom = function (zoom) {\n if (this.map && null != zoom) {\n this.map.setZoom(zoom, this.zoomOptions);\n }\n };\n /**\n * Set the center of the map\n * @param center the center point\n */\n LeafletDirective.prototype.setCenter = function (center) {\n if (this.map && null != center) {\n this.map.panTo(center, this.panOptions);\n }\n };\n /**\n * Fit the map to the bounds\n * @param latLngBounds the boundary to set\n */\n LeafletDirective.prototype.setFitBounds = function (latLngBounds) {\n if (this.map && null != latLngBounds) {\n this.map.fitBounds(latLngBounds, this.fitBoundsOptions);\n }\n };\n /**\n * Set the map's max bounds\n * @param latLngBounds the boundary to set\n */\n LeafletDirective.prototype.setMaxBounds = function (latLngBounds) {\n if (this.map && null != latLngBounds) {\n this.map.setMaxBounds(latLngBounds);\n }\n };\n /**\n * Set the map's min zoom\n * @param number the new min zoom\n */\n LeafletDirective.prototype.setMinZoom = function (zoom) {\n if (this.map && null != zoom) {\n this.map.setMinZoom(zoom);\n }\n };\n /**\n * Set the map's min zoom\n * @param number the new min zoom\n */\n LeafletDirective.prototype.setMaxZoom = function (zoom) {\n if (this.map && null != zoom) {\n this.map.setMaxZoom(zoom);\n }\n };\n LeafletDirective.decorators = [\n { type: Directive, args: [{\n selector: '[leaflet]'\n },] }\n ];\n LeafletDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: NgZone }\n ]; };\n LeafletDirective.propDecorators = {\n fitBoundsOptions: [{ type: Input, args: ['leafletFitBoundsOptions',] }],\n panOptions: [{ type: Input, args: ['leafletPanOptions',] }],\n zoomOptions: [{ type: Input, args: ['leafletZoomOptions',] }],\n zoomPanOptions: [{ type: Input, args: ['leafletZoomPanOptions',] }],\n options: [{ type: Input, args: ['leafletOptions',] }],\n mapReady: [{ type: Output, args: ['leafletMapReady',] }],\n zoom: [{ type: Input, args: ['leafletZoom',] }],\n zoomChange: [{ type: Output, args: ['leafletZoomChange',] }],\n center: [{ type: Input, args: ['leafletCenter',] }],\n centerChange: [{ type: Output, args: ['leafletCenterChange',] }],\n fitBounds: [{ type: Input, args: ['leafletFitBounds',] }],\n maxBounds: [{ type: Input, args: ['leafletMaxBounds',] }],\n minZoom: [{ type: Input, args: ['leafletMinZoom',] }],\n maxZoom: [{ type: Input, args: ['leafletMaxZoom',] }],\n onClick: [{ type: Output, args: ['leafletClick',] }],\n onDoubleClick: [{ type: Output, args: ['leafletDoubleClick',] }],\n onMouseDown: [{ type: Output, args: ['leafletMouseDown',] }],\n onMouseUp: [{ type: Output, args: ['leafletMouseUp',] }],\n onMouseMove: [{ type: Output, args: ['leafletMouseMove',] }],\n onMouseOver: [{ type: Output, args: ['leafletMouseOver',] }],\n onMouseOut: [{ type: Output, args: ['leafletMouseOut',] }],\n onMapMove: [{ type: Output, args: ['leafletMapMove',] }],\n onMapMoveStart: [{ type: Output, args: ['leafletMapMoveStart',] }],\n onMapMoveEnd: [{ type: Output, args: ['leafletMapMoveEnd',] }],\n onMapZoom: [{ type: Output, args: ['leafletMapZoom',] }],\n onMapZoomStart: [{ type: Output, args: ['leafletMapZoomStart',] }],\n onMapZoomEnd: [{ type: Output, args: ['leafletMapZoomEnd',] }],\n onResize: [{ type: HostListener, args: ['window:resize', [],] }]\n };\n return LeafletDirective;\n}());\nexport { LeafletDirective };\n//# sourceMappingURL=leaflet.directive.js.map","var LeafletDirectiveWrapper = /** @class */ (function () {\n function LeafletDirectiveWrapper(leafletDirective) {\n this.leafletDirective = leafletDirective;\n }\n LeafletDirectiveWrapper.prototype.init = function () {\n // Nothing for now\n };\n LeafletDirectiveWrapper.prototype.getMap = function () {\n return this.leafletDirective.getMap();\n };\n return LeafletDirectiveWrapper;\n}());\nexport { LeafletDirectiveWrapper };\n//# sourceMappingURL=leaflet.directive.wrapper.js.map","import { Directive, EventEmitter, Input, NgZone, Output } from '@angular/core';\nimport { LeafletDirective } from '../core/leaflet.directive';\nimport { LeafletDirectiveWrapper } from '../core/leaflet.directive.wrapper';\nimport { LeafletUtil } from '../core/leaflet.util';\n/**\n * Layer directive\n *\n * This directive is used to directly control a single map layer. The purpose of this directive is to\n * be used as part of a child structural directive of the map element.\n *\n */\nvar LeafletLayerDirective = /** @class */ (function () {\n function LeafletLayerDirective(leafletDirective, zone) {\n this.zone = zone;\n // Layer Events\n this.onAdd = new EventEmitter();\n this.onRemove = new EventEmitter();\n this.leafletDirective = new LeafletDirectiveWrapper(leafletDirective);\n }\n LeafletLayerDirective.prototype.ngOnInit = function () {\n // Init the map\n this.leafletDirective.init();\n };\n LeafletLayerDirective.prototype.ngOnDestroy = function () {\n if (null != this.layer) {\n // Unregister the event handlers\n this.removeLayerEventListeners(this.layer);\n // Remove the layer from the map\n this.layer.remove();\n }\n };\n LeafletLayerDirective.prototype.ngOnChanges = function (changes) {\n var _this = this;\n if (changes['layer']) {\n // Update the layer\n var p_1 = changes['layer'].previousValue;\n var n_1 = changes['layer'].currentValue;\n this.zone.runOutsideAngular(function () {\n if (null != p_1) {\n _this.removeLayerEventListeners(p_1);\n p_1.remove();\n }\n if (null != n_1) {\n _this.addLayerEventListeners(n_1);\n _this.leafletDirective.getMap().addLayer(n_1);\n }\n });\n }\n };\n LeafletLayerDirective.prototype.addLayerEventListeners = function (l) {\n var _this = this;\n this.onAddLayerHandler = function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onAdd, e); };\n l.on('add', this.onAddLayerHandler);\n this.onRemoveLayerHandler = function (e) { return LeafletUtil.handleEvent(_this.zone, _this.onRemove, e); };\n l.on('remove', this.onRemoveLayerHandler);\n };\n LeafletLayerDirective.prototype.removeLayerEventListeners = function (l) {\n l.off('add', this.onAddLayerHandler);\n l.off('remove', this.onRemoveLayerHandler);\n };\n LeafletLayerDirective.decorators = [\n { type: Directive, args: [{\n selector: '[leafletLayer]'\n },] }\n ];\n LeafletLayerDirective.ctorParameters = function () { return [\n { type: LeafletDirective },\n { type: NgZone }\n ]; };\n LeafletLayerDirective.propDecorators = {\n layer: [{ type: Input, args: ['leafletLayer',] }],\n onAdd: [{ type: Output, args: ['leafletLayerAdd',] }],\n onRemove: [{ type: Output, args: ['leafletLayerRemove',] }]\n };\n return LeafletLayerDirective;\n}());\nexport { LeafletLayerDirective };\n//# sourceMappingURL=leaflet-layer.directive.js.map","import { Directive, Input, IterableDiffers, NgZone } from '@angular/core';\nimport { LeafletDirective } from '../core/leaflet.directive';\nimport { LeafletDirectiveWrapper } from '../core/leaflet.directive.wrapper';\n/**\n * Layers directive\n *\n * This directive is used to directly control map layers. As changes are made to the input array of\n * layers, the map is synched to the array. As layers are added or removed from the input array, they\n * are also added or removed from the map. The input array is treated as immutable. To detect changes,\n * you must change the array instance.\n *\n * Important Note: The input layers array is assumed to be immutable. This means you need to use an\n * immutable array implementation or create a new copy of your array when you make changes, otherwise\n * this directive won't detect the change. This is by design. It's for performance reasons. Change\n * detection of mutable arrays requires diffing the state of the array on every DoCheck cycle, which\n * is extremely expensive from a time complexity perspective.\n *\n */\nvar LeafletLayersDirective = /** @class */ (function () {\n function LeafletLayersDirective(leafletDirective, differs, zone) {\n this.differs = differs;\n this.zone = zone;\n this.leafletDirective = new LeafletDirectiveWrapper(leafletDirective);\n this.layersDiffer = this.differs.find([]).create();\n }\n Object.defineProperty(LeafletLayersDirective.prototype, \"layers\", {\n get: function () {\n return this.layersValue;\n },\n // Set/get the layers\n set: function (v) {\n this.layersValue = v;\n // Now that we have a differ, do an immediate layer update\n this.updateLayers();\n },\n enumerable: false,\n configurable: true\n });\n LeafletLayersDirective.prototype.ngDoCheck = function () {\n this.updateLayers();\n };\n LeafletLayersDirective.prototype.ngOnInit = function () {\n // Init the map\n this.leafletDirective.init();\n // Update layers once the map is ready\n this.updateLayers();\n };\n LeafletLayersDirective.prototype.ngOnDestroy = function () {\n this.layers = [];\n };\n /**\n * Update the state of the layers.\n * We use an iterable differ to synchronize the map layers with the state of the bound layers array.\n * This is important because it allows us to react to changes to the contents of the array as well\n * as changes to the actual array instance.\n */\n LeafletLayersDirective.prototype.updateLayers = function () {\n var map = this.leafletDirective.getMap();\n if (null != map && null != this.layersDiffer) {\n var changes_1 = this.layersDiffer.diff(this.layersValue);\n if (null != changes_1) {\n // Run outside angular to ensure layer events don't trigger change detection\n this.zone.runOutsideAngular(function () {\n changes_1.forEachRemovedItem(function (c) {\n map.removeLayer(c.item);\n });\n changes_1.forEachAddedItem(function (c) {\n map.addLayer(c.item);\n });\n });\n }\n }\n };\n LeafletLayersDirective.decorators = [\n { type: Directive, args: [{\n selector: '[leafletLayers]'\n },] }\n ];\n LeafletLayersDirective.ctorParameters = function () { return [\n { type: LeafletDirective },\n { type: IterableDiffers },\n { type: NgZone }\n ]; };\n LeafletLayersDirective.propDecorators = {\n layers: [{ type: Input, args: ['leafletLayers',] }]\n };\n return LeafletLayersDirective;\n}());\nexport { LeafletLayersDirective };\n//# sourceMappingURL=leaflet-layers.directive.js.map","var LeafletControlLayersChanges = /** @class */ (function () {\n function LeafletControlLayersChanges() {\n this.layersRemoved = 0;\n this.layersChanged = 0;\n this.layersAdded = 0;\n }\n LeafletControlLayersChanges.prototype.changed = function () {\n return !(this.layersRemoved === 0 && this.layersChanged === 0 && this.layersAdded === 0);\n };\n return LeafletControlLayersChanges;\n}());\nexport { LeafletControlLayersChanges };\n//# sourceMappingURL=leaflet-control-layers-changes.model.js.map","import { control } from 'leaflet';\nimport { LeafletControlLayersChanges } from './leaflet-control-layers-changes.model';\nvar LeafletControlLayersWrapper = /** @class */ (function () {\n function LeafletControlLayersWrapper(zone, layersControlReady) {\n this.zone = zone;\n this.layersControlReady = layersControlReady;\n }\n LeafletControlLayersWrapper.prototype.getLayersControl = function () {\n return this.layersControl;\n };\n LeafletControlLayersWrapper.prototype.init = function (controlConfig, controlOptions) {\n var _this = this;\n var baseLayers = controlConfig.baseLayers || {};\n var overlays = controlConfig.overlays || {};\n // Create the control outside of angular to ensure events don't trigger change detection\n this.zone.runOutsideAngular(function () {\n _this.layersControl = control.layers(baseLayers, overlays, controlOptions);\n });\n this.layersControlReady.emit(this.layersControl);\n return this.layersControl;\n };\n LeafletControlLayersWrapper.prototype.applyBaseLayerChanges = function (changes) {\n var results = new LeafletControlLayersChanges();\n if (null != this.layersControl) {\n results = this.applyChanges(changes, this.layersControl.addBaseLayer);\n }\n return results;\n };\n LeafletControlLayersWrapper.prototype.applyOverlayChanges = function (changes) {\n var results = new LeafletControlLayersChanges();\n if (null != this.layersControl) {\n results = this.applyChanges(changes, this.layersControl.addOverlay);\n }\n return results;\n };\n LeafletControlLayersWrapper.prototype.applyChanges = function (changes, addFn) {\n var _this = this;\n var results = new LeafletControlLayersChanges();\n if (null != changes) {\n // All layer management is outside angular to avoid layer events from triggering change detection\n this.zone.runOutsideAngular(function () {\n changes.forEachChangedItem(function (c) {\n _this.layersControl.removeLayer(c.previousValue);\n addFn.call(_this.layersControl, c.currentValue, c.key);\n results.layersChanged++;\n });\n changes.forEachRemovedItem(function (c) {\n _this.layersControl.removeLayer(c.previousValue);\n results.layersRemoved++;\n });\n changes.forEachAddedItem(function (c) {\n addFn.call(_this.layersControl, c.currentValue, c.key);\n results.layersAdded++;\n });\n });\n }\n return results;\n };\n return LeafletControlLayersWrapper;\n}());\nexport { LeafletControlLayersWrapper };\n//# sourceMappingURL=leaflet-control-layers.wrapper.js.map","var LeafletControlLayersConfig = /** @class */ (function () {\n function LeafletControlLayersConfig() {\n this.baseLayers = {};\n this.overlays = {};\n }\n return LeafletControlLayersConfig;\n}());\nexport { LeafletControlLayersConfig };\n//# sourceMappingURL=leaflet-control-layers-config.model.js.map","import { Directive, EventEmitter, Input, KeyValueDiffers, NgZone, Output } from '@angular/core';\nimport { LeafletDirective } from '../../core/leaflet.directive';\nimport { LeafletDirectiveWrapper } from '../../core/leaflet.directive.wrapper';\nimport { LeafletControlLayersWrapper } from './leaflet-control-layers.wrapper';\nimport { LeafletControlLayersConfig } from './leaflet-control-layers-config.model';\n/**\n * Layers Control\n *\n * This directive is used to configure the layers control. The input accepts an object with two\n * key-value maps of layer name -> layer. Mutable changes are detected. On changes, a differ is\n * used to determine what changed so that layers are appropriately added or removed.\n *\n * To specify which layer to show as the 'active' baselayer, you will want to add it to the map\n * using the layers directive. Otherwise, the last one it sees will be used.\n */\nvar LeafletLayersControlDirective = /** @class */ (function () {\n function LeafletLayersControlDirective(leafletDirective, differs, zone) {\n this.differs = differs;\n this.zone = zone;\n this.layersControlReady = new EventEmitter();\n this.leafletDirective = new LeafletDirectiveWrapper(leafletDirective);\n this.controlLayers = new LeafletControlLayersWrapper(this.zone, this.layersControlReady);\n // Generate differs\n this.baseLayersDiffer = this.differs.find({}).create();\n this.overlaysDiffer = this.differs.find({}).create();\n }\n Object.defineProperty(LeafletLayersControlDirective.prototype, \"layersControlConfig\", {\n get: function () {\n return this.layersControlConfigValue;\n },\n set: function (v) {\n // Validation/init stuff\n if (null == v) {\n v = new LeafletControlLayersConfig();\n }\n if (null == v.baseLayers) {\n v.baseLayers = {};\n }\n if (null == v.overlays) {\n v.overlays = {};\n }\n // Store the value\n this.layersControlConfigValue = v;\n // Update the map\n this.updateLayers();\n },\n enumerable: false,\n configurable: true\n });\n LeafletLayersControlDirective.prototype.ngOnInit = function () {\n var _this = this;\n // Init the map\n this.leafletDirective.init();\n // Set up control outside of angular to avoid change detection when using the control\n this.zone.runOutsideAngular(function () {\n // Set up all the initial settings\n _this.controlLayers\n .init({}, _this.layersControlOptions)\n .addTo(_this.leafletDirective.getMap());\n });\n this.updateLayers();\n };\n LeafletLayersControlDirective.prototype.ngOnDestroy = function () {\n this.layersControlConfig = { baseLayers: {}, overlays: {} };\n this.controlLayers.getLayersControl().remove();\n };\n LeafletLayersControlDirective.prototype.ngDoCheck = function () {\n this.updateLayers();\n };\n LeafletLayersControlDirective.prototype.updateLayers = function () {\n var map = this.leafletDirective.getMap();\n var layersControl = this.controlLayers.getLayersControl();\n if (null != map && null != layersControl) {\n // Run the baselayers differ\n if (null != this.baseLayersDiffer && null != this.layersControlConfigValue.baseLayers) {\n var changes = this.baseLayersDiffer.diff(this.layersControlConfigValue.baseLayers);\n this.controlLayers.applyBaseLayerChanges(changes);\n }\n // Run the overlays differ\n if (null != this.overlaysDiffer && null != this.layersControlConfigValue.overlays) {\n var changes = this.overlaysDiffer.diff(this.layersControlConfigValue.overlays);\n this.controlLayers.applyOverlayChanges(changes);\n }\n }\n };\n LeafletLayersControlDirective.decorators = [\n { type: Directive, args: [{\n selector: '[leafletLayersControl]'\n },] }\n ];\n LeafletLayersControlDirective.ctorParameters = function () { return [\n { type: LeafletDirective },\n { type: KeyValueDiffers },\n { type: NgZone }\n ]; };\n LeafletLayersControlDirective.propDecorators = {\n layersControlConfig: [{ type: Input, args: ['leafletLayersControl',] }],\n layersControlOptions: [{ type: Input, args: ['leafletLayersControlOptions',] }],\n layersControlReady: [{ type: Output, args: ['leafletLayersControlReady',] }]\n };\n return LeafletLayersControlDirective;\n}());\nexport { LeafletLayersControlDirective };\n//# sourceMappingURL=leaflet-control-layers.directive.js.map","import { Directive, EventEmitter, Input, KeyValueDiffers, NgZone, Output } from '@angular/core';\nimport { LeafletUtil } from '../../core/leaflet.util';\nimport { LeafletDirective } from '../../core/leaflet.directive';\nimport { LeafletDirectiveWrapper } from '../../core/leaflet.directive.wrapper';\nimport { LeafletControlLayersWrapper } from '../control/leaflet-control-layers.wrapper';\n/**\n * Baselayers directive\n *\n * This directive is provided as a convenient way to add baselayers to the map. The input accepts\n * a key-value map of layer name -> layer. Mutable changed are detected. On changes, a differ is\n * used to determine what changed so that layers are appropriately added or removed. This directive\n * will also add the layers control so users can switch between available base layers.\n *\n * To specify which layer to show as the 'active' baselayer, you will want to add it to the map\n * using the layers directive. Otherwise, the plugin will use the last one it sees.\n */\nvar LeafletBaseLayersDirective = /** @class */ (function () {\n function LeafletBaseLayersDirective(leafletDirective, differs, zone) {\n this.differs = differs;\n this.zone = zone;\n // Output for once the layers control is ready\n this.layersControlReady = new EventEmitter();\n this.leafletDirective = new LeafletDirectiveWrapper(leafletDirective);\n this.controlLayers = new LeafletControlLayersWrapper(this.zone, this.layersControlReady);\n this.baseLayersDiffer = this.differs.find({}).create();\n }\n Object.defineProperty(LeafletBaseLayersDirective.prototype, \"baseLayers\", {\n get: function () {\n return this.baseLayersValue;\n },\n // Set/get baseLayers\n set: function (v) {\n this.baseLayersValue = v;\n this.updateBaseLayers();\n },\n enumerable: false,\n configurable: true\n });\n LeafletBaseLayersDirective.prototype.ngOnDestroy = function () {\n this.baseLayers = {};\n this.controlLayers.getLayersControl().remove();\n };\n LeafletBaseLayersDirective.prototype.ngOnInit = function () {\n var _this = this;\n // Init the map\n this.leafletDirective.init();\n // Create the control outside angular to prevent events from triggering chnage detection\n this.zone.runOutsideAngular(function () {\n // Initially configure the controlLayers\n _this.controlLayers\n .init({}, _this.layersControlOptions)\n .addTo(_this.leafletDirective.getMap());\n });\n this.updateBaseLayers();\n };\n LeafletBaseLayersDirective.prototype.ngDoCheck = function () {\n this.updateBaseLayers();\n };\n LeafletBaseLayersDirective.prototype.updateBaseLayers = function () {\n var map = this.leafletDirective.getMap();\n var layersControl = this.controlLayers.getLayersControl();\n if (null != map && null != layersControl && null != this.baseLayersDiffer) {\n var changes = this.baseLayersDiffer.diff(this.baseLayersValue);\n var results = this.controlLayers.applyBaseLayerChanges(changes);\n if (results.changed()) {\n this.syncBaseLayer();\n }\n }\n };\n /**\n * Check the current base layer and change it to the new one if necessary\n */\n LeafletBaseLayersDirective.prototype.syncBaseLayer = function () {\n var _this = this;\n var map = this.leafletDirective.getMap();\n var layers = LeafletUtil.mapToArray(this.baseLayers);\n var foundLayer;\n // Search all the layers in the map to see if we can find them in the baselayer array\n map.eachLayer(function (l) {\n foundLayer = layers.find(function (bl) { return (l === bl); });\n });\n // Did we find the layer?\n if (null != foundLayer) {\n // Yes - set the baselayer to the one we found\n this.baseLayer = foundLayer;\n }\n else {\n // No - set the baselayer to the first in the array and add it to the map\n if (layers.length > 0) {\n this.baseLayer = layers[0];\n // Add layers outside of angular to prevent events from triggering change detection\n this.zone.runOutsideAngular(function () {\n _this.baseLayer.addTo(map);\n });\n }\n }\n };\n LeafletBaseLayersDirective.decorators = [\n { type: Directive, args: [{\n selector: '[leafletBaseLayers]'\n },] }\n ];\n LeafletBaseLayersDirective.ctorParameters = function () { return [\n { type: LeafletDirective },\n { type: KeyValueDiffers },\n { type: NgZone }\n ]; };\n LeafletBaseLayersDirective.propDecorators = {\n baseLayers: [{ type: Input, args: ['leafletBaseLayers',] }],\n layersControlOptions: [{ type: Input, args: ['leafletLayersControlOptions',] }],\n layersControlReady: [{ type: Output, args: ['leafletLayersControlReady',] }]\n };\n return LeafletBaseLayersDirective;\n}());\nexport { LeafletBaseLayersDirective };\n//# sourceMappingURL=leaflet-baselayers.directive.js.map","import { NgModule } from '@angular/core';\nimport { LeafletDirective } from './core/leaflet.directive';\nimport { LeafletLayerDirective } from './layers/leaflet-layer.directive';\nimport { LeafletLayersDirective } from './layers/leaflet-layers.directive';\nimport { LeafletLayersControlDirective } from './layers/control/leaflet-control-layers.directive';\nimport { LeafletBaseLayersDirective } from './layers/base/leaflet-baselayers.directive';\nvar LeafletModule = /** @class */ (function () {\n function LeafletModule() {\n }\n LeafletModule.decorators = [\n { type: NgModule, args: [{\n exports: [\n LeafletDirective,\n LeafletLayerDirective,\n LeafletLayersDirective,\n LeafletLayersControlDirective,\n LeafletBaseLayersDirective\n ],\n declarations: [\n LeafletDirective,\n LeafletLayerDirective,\n LeafletLayersDirective,\n LeafletLayersControlDirective,\n LeafletBaseLayersDirective\n ]\n },] }\n ];\n return LeafletModule;\n}());\nexport { LeafletModule };\n//# sourceMappingURL=leaflet.module.js.map","import { tileLayer } from 'leaflet';\nvar LeafletTileLayerDefinition = /** @class */ (function () {\n function LeafletTileLayerDefinition(type, url, options) {\n this.type = type;\n this.url = url;\n this.options = options;\n }\n /**\n * Creates a TileLayer from the provided definition. This is a convenience function\n * to help with generating layers from objects.\n *\n * @param layerDef The layer to create\n * @returns {TileLayer} The TileLayer that has been created\n */\n LeafletTileLayerDefinition.createTileLayer = function (layerDef) {\n var layer;\n switch (layerDef.type) {\n case 'xyz':\n layer = tileLayer(layerDef.url, layerDef.options);\n break;\n case 'wms':\n default:\n layer = tileLayer.wms(layerDef.url, layerDef.options);\n break;\n }\n return layer;\n };\n /**\n * Creates a TileLayer for each key in the incoming map. This is a convenience function\n * for generating an associative array of layers from an associative array of objects\n *\n * @param layerDefs A map of key to tile layer definition\n * @returns {{[p: string]: TileLayer}} A new map of key to TileLayer\n */\n LeafletTileLayerDefinition.createTileLayers = function (layerDefs) {\n var layers = {};\n for (var k in layerDefs) {\n if (layerDefs.hasOwnProperty(k)) {\n layers[k] = (LeafletTileLayerDefinition.createTileLayer(layerDefs[k]));\n }\n }\n return layers;\n };\n /**\n * Create a Tile Layer from the current state of this object\n *\n * @returns {TileLayer} A new TileLayer\n */\n LeafletTileLayerDefinition.prototype.createTileLayer = function () {\n return LeafletTileLayerDefinition.createTileLayer(this);\n };\n return LeafletTileLayerDefinition;\n}());\nexport { LeafletTileLayerDefinition };\n//# sourceMappingURL=leaflet-tile-layer-definition.model.js.map"],"names":["latLng","EventEmitter","map","Directive","ElementRef","NgZone","Input","Output","HostListener","IterableDiffers","control","KeyValueDiffers","NgModule","tileLayer"],"mappings":"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"}
\No newline at end of file