!function(e){"function"==typeof define&&define.amd?define(["leaflet"],e):"object"==typeof modules&&module.exports?module.exports=e(require("leaflet")):e(L)}(function(i){"use strict";return i.Control.FullScreen=i.Control.extend({options:{position:"topleft",title:"Full Screen",titleCancel:"Exit Full Screen",forceSeparateButton:!1,forcePseudoFullscreen:!1,fullscreenElement:!1},onAdd:function(e){var n="leaflet-control-zoom-fullscreen",l="",e=e.zoomControl&&!this.options.forceSeparateButton?e.zoomControl._container:i.DomUtil.create("div","leaflet-bar");return this.options.content?l=this.options.content:n+=" fullscreen-icon",this._createButton(this.options.title,n,l,e,this.toggleFullScreen,this),(this._map.fullscreenControl=this)._map.on("enterFullscreen exitFullscreen",this._toggleTitle,this),e},onRemove:function(e){i.DomEvent.off(this.link,"click",i.DomEvent.stopPropagation).off(this.link,"click",i.DomEvent.preventDefault).off(this.link,"click",this.toggleFullScreen,this),i.DomEvent.off(this._container,screenfull.raw.fullscreenchange,i.DomEvent.stopPropagation).off(this._container,screenfull.raw.fullscreenchange,i.DomEvent.preventDefault).off(this._container,screenfull.raw.fullscreenchange,this._handleFullscreenChange,this),i.DomEvent.off(document,screenfull.raw.fullscreenchange,i.DomEvent.stopPropagation).off(document,screenfull.raw.fullscreenchange,i.DomEvent.preventDefault).off(document,screenfull.raw.fullscreenchange,this._handleFullscreenChange,this)},_createButton:function(e,n,l,t,r,o){return this.link=i.DomUtil.create("a",n,t),this.link.href="#",this.link.title=e,this.link.innerHTML=l,this.link.setAttribute("role","button"),this.link.setAttribute("aria-label",e),i.DomEvent.on(this.link,"click",i.DomEvent.stopPropagation).on(this.link,"click",i.DomEvent.preventDefault).on(this.link,"click",r,o),i.DomEvent.on(t,screenfull.raw.fullscreenchange,i.DomEvent.stopPropagation).on(t,screenfull.raw.fullscreenchange,i.DomEvent.preventDefault).on(t,screenfull.raw.fullscreenchange,this._handleFullscreenChange,o),i.DomEvent.on(document,screenfull.raw.fullscreenchange,i.DomEvent.stopPropagation).on(document,screenfull.raw.fullscreenchange,i.DomEvent.preventDefault).on(document,screenfull.raw.fullscreenchange,this._handleFullscreenChange,o),this.link},toggleFullScreen:function(){var e=this._map;e._exitFired=!1,e._isFullscreen?(screenfull.isEnabled&&!this.options.forcePseudoFullscreen?screenfull.exit():(i.DomUtil.removeClass(this.options.fullscreenElement||e._container,"leaflet-pseudo-fullscreen"),e.invalidateSize()),e.fire("exitFullscreen"),e._exitFired=!0,e._isFullscreen=!1):(screenfull.isEnabled&&!this.options.forcePseudoFullscreen?screenfull.request(this.options.fullscreenElement||e._container):(i.DomUtil.addClass(this.options.fullscreenElement||e._container,"leaflet-pseudo-fullscreen"),e.invalidateSize()),e.fire("enterFullscreen"),e._isFullscreen=!0)},_toggleTitle:function(){this.link.title=this._map._isFullscreen?this.options.title:this.options.titleCancel},_handleFullscreenChange:function(){var e=this._map;e.invalidateSize(),screenfull.isFullscreen||e._exitFired||(e.fire("exitFullscreen"),e._exitFired=!0,e._isFullscreen=!1)}}),i.Map.include({toggleFullscreen:function(){this.fullscreenControl.toggleFullScreen()}}),i.Map.addInitHook(function(){this.options.fullscreenControl&&this.addControl(i.control.fullscreen(this.options.fullscreenControlOptions))}),i.control.fullscreen=function(e){return new i.Control.FullScreen(e)},i}),function(){"use strict";var i="undefined"!=typeof window&&void 0!==window.document?window.document:{},e="undefined"!=typeof module&&module.exports,s=function(){for(var e,n=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],l=0,t=n.length,r={};l