mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-08-02 15:39:31 +08:00
1 line
5.5 KiB
JavaScript
1 line
5.5 KiB
JavaScript
!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<t;l++)if((e=n[l])&&e[1]in i){for(l=0;l<e.length;l++)r[n[0][l]]=e[l];return r}return!1}(),l={change:s.fullscreenchange,error:s.fullscreenerror},n={request:function(r,o){return new Promise(function(e,n){var l=function(){this.off("change",l),e()}.bind(this);this.on("change",l);var t=(r=r||i.documentElement)[s.requestFullscreen](o);t instanceof Promise&&t.then(l).catch(n)}.bind(this))},exit:function(){return new Promise(function(e,n){var l,t;this.isFullscreen?(l=function(){this.off("change",l),e()}.bind(this),this.on("change",l),(t=i[s.exitFullscreen]())instanceof Promise&&t.then(l).catch(n)):e()}.bind(this))},toggle:function(e,n){return this.isFullscreen?this.exit():this.request(e,n)},onchange:function(e){this.on("change",e)},onerror:function(e){this.on("error",e)},on:function(e,n){e=l[e];e&&i.addEventListener(e,n,!1)},off:function(e,n){e=l[e];e&&i.removeEventListener(e,n,!1)},raw:s};s?(Object.defineProperties(n,{isFullscreen:{get:function(){return Boolean(i[s.fullscreenElement])}},element:{enumerable:!0,get:function(){return i[s.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return Boolean(i[s.fullscreenEnabled])}}}),e?module.exports=n:window.screenfull=n):e?module.exports={isEnabled:!1}:window.screenfull={isEnabled:!1}}(); |