diff --git a/assets/leaflet-fullscreen/Control.FullScreen.css b/assets/leaflet-fullscreen/Control.FullScreen.css index 9d429b6..96ae11e 100644 --- a/assets/leaflet-fullscreen/Control.FullScreen.css +++ b/assets/leaflet-fullscreen/Control.FullScreen.css @@ -1,4 +1,8 @@ .fullscreen-icon { background-image: url(icon-fullscreen.png); } .leaflet-retina .fullscreen-icon { background-image: url(icon-fullscreen-2x.png); background-size: 26px 26px; } +/* one selector per rule as explained here : http://www.sitepoint.com/html5-full-screen-api/ */ .leaflet-container:-webkit-full-screen { width: 100% !important; height: 100% !important; z-index: 99999; } +.leaflet-container:-ms-fullscreen { width: 100% !important; height: 100% !important; z-index: 99999; } +.leaflet-container:full-screen { width: 100% !important; height: 100% !important; z-index: 99999; } +.leaflet-container:fullscreen { width: 100% !important; height: 100% !important; z-index: 99999; } .leaflet-pseudo-fullscreen { position: fixed !important; width: 100% !important; height: 100% !important; top: 0px !important; left: 0px !important; z-index: 99999; } \ No newline at end of file diff --git a/assets/leaflet-fullscreen/Control.FullScreen.js b/assets/leaflet-fullscreen/Control.FullScreen.js index 561869a..093ea8b 100644 --- a/assets/leaflet-fullscreen/Control.FullScreen.js +++ b/assets/leaflet-fullscreen/Control.FullScreen.js @@ -1,4 +1,4 @@ -(function() { +(function () { L.Control.FullScreen = L.Control.extend({ options: { @@ -6,7 +6,8 @@ L.Control.FullScreen = L.Control.extend({ title: 'Full Screen', titleCancel: 'Exit Full Screen', forceSeparateButton: false, - forcePseudoFullscreen: false + forcePseudoFullscreen: false, + fullscreenElement: false }, onAdd: function (map) { @@ -60,7 +61,7 @@ L.Control.FullScreen = L.Control.extend({ map._exitFired = false; if (map._isFullscreen) { if (fullScreenApi.supportsFullScreen && !this.options.forcePseudoFullscreen) { - fullScreenApi.cancelFullScreen(map._container); + fullScreenApi.cancelFullScreen(this.options.fullscreenElement ? this.options.fullscreenElement : map._container); } else { L.DomUtil.removeClass(map._container, 'leaflet-pseudo-fullscreen'); } @@ -71,7 +72,7 @@ L.Control.FullScreen = L.Control.extend({ } else { if (fullScreenApi.supportsFullScreen && !this.options.forcePseudoFullscreen) { - fullScreenApi.requestFullScreen(map._container); + fullScreenApi.requestFullScreen(this.options.fullscreenElement ? this.options.fullscreenElement : map._container); } else { L.DomUtil.addClass(map._container, 'leaflet-pseudo-fullscreen'); } @@ -81,7 +82,7 @@ L.Control.FullScreen = L.Control.extend({ } }, - _toggleTitle: function() { + _toggleTitle: function () { this.link.title = this._map._isFullscreen ? this.options.title : this.options.titleCancel; }, @@ -118,9 +119,9 @@ source : http://johndyer.name/native-fullscreen-javascript-api-plus-jquery-plugi var fullScreenApi = { supportsFullScreen: false, - isFullScreen: function() { return false; }, - requestFullScreen: function() {}, - cancelFullScreen: function() {}, + isFullScreen: function () { return false; }, + requestFullScreen: function () {}, + cancelFullScreen: function () {}, fullScreenEventName: '', prefix: '' }, @@ -131,40 +132,64 @@ source : http://johndyer.name/native-fullscreen-javascript-api-plus-jquery-plugi fullScreenApi.supportsFullScreen = true; } else { // check for fullscreen support by vendor prefix - for (var i = 0, il = browserPrefixes.length; i < il; i++ ) { + for (var i = 0, il = browserPrefixes.length; i < il; i++) { fullScreenApi.prefix = browserPrefixes[i]; - if (typeof document[fullScreenApi.prefix + 'CancelFullScreen' ] !== 'undefined' ) { + if (typeof document[fullScreenApi.prefix + 'CancelFullScreen'] !== 'undefined') { fullScreenApi.supportsFullScreen = true; break; } } + if (typeof document['msExitFullscreen'] !== 'undefined') { + fullScreenApi.prefix = 'ms'; + fullScreenApi.supportsFullScreen = true; + } } // update methods to do something useful if (fullScreenApi.supportsFullScreen) { - fullScreenApi.fullScreenEventName = fullScreenApi.prefix + 'fullscreenchange'; - fullScreenApi.isFullScreen = function() { - switch (this.prefix) { + if (fullScreenApi.prefix === 'ms') { + fullScreenApi.fullScreenEventName = 'MSFullscreenChange'; + } else { + fullScreenApi.fullScreenEventName = fullScreenApi.prefix + 'fullscreenchange'; + } + fullScreenApi.isFullScreen = function () { + switch (this.prefix) { case '': return document.fullScreen; case 'webkit': return document.webkitIsFullScreen; + case 'ms': + return document.msFullscreenElement; default: return document[this.prefix + 'FullScreen']; } }; - fullScreenApi.requestFullScreen = function(el) { - return (this.prefix === '') ? el.requestFullscreen() : el[this.prefix + 'RequestFullScreen'](); + fullScreenApi.requestFullScreen = function (el) { + switch (this.prefix) { + case '': + return el.requestFullscreen(); + case 'ms': + return el.msRequestFullscreen(); + default: + return el[this.prefix + 'RequestFullScreen'](); + } }; - fullScreenApi.cancelFullScreen = function(el) { - return (this.prefix === '') ? document.exitFullscreen() : document[this.prefix + 'CancelFullScreen'](); + fullScreenApi.cancelFullScreen = function () { + switch (this.prefix) { + case '': + return document.exitFullscreen(); + case 'ms': + return document.msExitFullscreen(); + default: + return document[this.prefix + 'CancelFullScreen'](); + } }; } // jQuery plugin if (typeof jQuery !== 'undefined') { - jQuery.fn.requestFullScreen = function() { - return this.each(function() { + jQuery.fn.requestFullScreen = function () { + return this.each(function () { var el = jQuery(this); if (fullScreenApi.supportsFullScreen) { fullScreenApi.requestFullScreen(el); diff --git a/assets/leaflet-fullscreen/Control.FullScreen.min.css b/assets/leaflet-fullscreen/Control.FullScreen.min.css index 7981977..17873f2 100644 --- a/assets/leaflet-fullscreen/Control.FullScreen.min.css +++ b/assets/leaflet-fullscreen/Control.FullScreen.min.css @@ -1 +1 @@ -.fullscreen-icon{background-image:url('icon-fullscreen.png')}.leaflet-retina .fullscreen-icon{background-image:url('icon-fullscreen-2x.png');background-size:26px 26px}.leaflet-container:-webkit-full-screen{width:100%!important;height:100%!important;z-index:99999}.leaflet-pseudo-fullscreen{position:fixed!important;width:100%!important;height:100%!important;top:0!important;left:0!important;z-index:99999} \ No newline at end of file +.leaflet-container:full-screen,.leaflet-pseudo-fullscreen{width:100%!important;height:100%!important;z-index:99999}.fullscreen-icon{background-image:url('icon-fullscreen.png')}.leaflet-retina .fullscreen-icon{background-image:url('icon-fullscreen-2x.png');background-size:26px 26px}.leaflet-container:-webkit-full-screen{width:100%!important;height:100%!important;z-index:99999}.leaflet-container:-ms-fullscreen{width:100%!important;height:100%!important;z-index:99999}.leaflet-container:fullscreen{width:100%!important;height:100%!important;z-index:99999}.leaflet-pseudo-fullscreen{position:fixed!important;top:0!important;left:0!important} \ No newline at end of file diff --git a/assets/leaflet-fullscreen/Control.FullScreen.min.js b/assets/leaflet-fullscreen/Control.FullScreen.min.js index 28c840d..d0ffd6c 100644 --- a/assets/leaflet-fullscreen/Control.FullScreen.min.js +++ b/assets/leaflet-fullscreen/Control.FullScreen.min.js @@ -1 +1 @@ -!function(){L.Control.FullScreen=L.Control.extend({options:{position:"topleft",title:"Full Screen",titleCancel:"Exit Full Screen",forceSeparateButton:!1,forcePseudoFullscreen:!1},onAdd:function(e){var n,t="leaflet-control-zoom-fullscreen",l="";return n=e.zoomControl&&!this.options.forceSeparateButton?e.zoomControl._container:L.DomUtil.create("div","leaflet-bar"),this.options.content?l=this.options.content:t+=" fullscreen-icon",this._createButton(this.options.title,t,l,n,this.toggleFullScreen,this),this._map.on("enterFullscreen exitFullscreen",this._toggleTitle,this),n},_createButton:function(n,t,l,r,i,o){return this.link=L.DomUtil.create("a",t,r),this.link.href="#",this.link.title=n,this.link.innerHTML=l,L.DomEvent.addListener(this.link,"click",L.DomEvent.stopPropagation).addListener(this.link,"click",L.DomEvent.preventDefault).addListener(this.link,"click",i,o),L.DomEvent.addListener(r,e.fullScreenEventName,L.DomEvent.stopPropagation).addListener(r,e.fullScreenEventName,L.DomEvent.preventDefault).addListener(r,e.fullScreenEventName,this._handleEscKey,o),L.DomEvent.addListener(document,e.fullScreenEventName,L.DomEvent.stopPropagation).addListener(document,e.fullScreenEventName,L.DomEvent.preventDefault).addListener(document,e.fullScreenEventName,this._handleEscKey,o),this.link},toggleFullScreen:function(){var n=this._map;n._exitFired=!1,n._isFullscreen?(e.supportsFullScreen&&!this.options.forcePseudoFullscreen?e.cancelFullScreen(n._container):L.DomUtil.removeClass(n._container,"leaflet-pseudo-fullscreen"),n.invalidateSize(),n.fire("exitFullscreen"),n._exitFired=!0,n._isFullscreen=!1):(e.supportsFullScreen&&!this.options.forcePseudoFullscreen?e.requestFullScreen(n._container):L.DomUtil.addClass(n._container,"leaflet-pseudo-fullscreen"),n.invalidateSize(),n.fire("enterFullscreen"),n._isFullscreen=!0)},_toggleTitle:function(){this.link.title=this._map._isFullscreen?this.options.title:this.options.titleCancel},_handleEscKey:function(){var n=this._map;e.isFullScreen(n)||n._exitFired||(n.fire("exitFullscreen"),n._exitFired=!0,n._isFullscreen=!1)}}),L.Map.addInitHook(function(){this.options.fullscreenControl&&(this.fullscreenControl=L.control.fullscreen(this.options.fullscreenControlOptions),this.addControl(this.fullscreenControl))}),L.control.fullscreen=function(e){return new L.Control.FullScreen(e)};var e={supportsFullScreen:!1,isFullScreen:function(){return!1},requestFullScreen:function(){},cancelFullScreen:function(){},fullScreenEventName:"",prefix:""},n="webkit moz o ms khtml".split(" ");if("undefined"!=typeof document.exitFullscreen)e.supportsFullScreen=!0;else for(var t=0,l=n.length;l>t;t++)if(e.prefix=n[t],"undefined"!=typeof document[e.prefix+"CancelFullScreen"]){e.supportsFullScreen=!0;break}e.supportsFullScreen&&(e.fullScreenEventName=e.prefix+"fullscreenchange",e.isFullScreen=function(){switch(this.prefix){case"":return document.fullScreen;case"webkit":return document.webkitIsFullScreen;default:return document[this.prefix+"FullScreen"]}},e.requestFullScreen=function(e){return""===this.prefix?e.requestFullscreen():e[this.prefix+"RequestFullScreen"]()},e.cancelFullScreen=function(){return""===this.prefix?document.exitFullscreen():document[this.prefix+"CancelFullScreen"]()}),"undefined"!=typeof jQuery&&(jQuery.fn.requestFullScreen=function(){return this.each(function(){var n=jQuery(this);e.supportsFullScreen&&e.requestFullScreen(n)})}),window.fullScreenApi=e}(); \ No newline at end of file +!function(){L.Control.FullScreen=L.Control.extend({options:{position:"topleft",title:"Full Screen",titleCancel:"Exit Full Screen",forceSeparateButton:!1,forcePseudoFullscreen:!1,fullscreenElement:!1},onAdd:function(e){var n,t="leaflet-control-zoom-fullscreen",l="";return n=e.zoomControl&&!this.options.forceSeparateButton?e.zoomControl._container:L.DomUtil.create("div","leaflet-bar"),this.options.content?l=this.options.content:t+=" fullscreen-icon",this._createButton(this.options.title,t,l,n,this.toggleFullScreen,this),this._map.on("enterFullscreen exitFullscreen",this._toggleTitle,this),n},_createButton:function(n,t,l,r,i,s){return this.link=L.DomUtil.create("a",t,r),this.link.href="#",this.link.title=n,this.link.innerHTML=l,L.DomEvent.addListener(this.link,"click",L.DomEvent.stopPropagation).addListener(this.link,"click",L.DomEvent.preventDefault).addListener(this.link,"click",i,s),L.DomEvent.addListener(r,e.fullScreenEventName,L.DomEvent.stopPropagation).addListener(r,e.fullScreenEventName,L.DomEvent.preventDefault).addListener(r,e.fullScreenEventName,this._handleEscKey,s),L.DomEvent.addListener(document,e.fullScreenEventName,L.DomEvent.stopPropagation).addListener(document,e.fullScreenEventName,L.DomEvent.preventDefault).addListener(document,e.fullScreenEventName,this._handleEscKey,s),this.link},toggleFullScreen:function(){var n=this._map;n._exitFired=!1,n._isFullscreen?(e.supportsFullScreen&&!this.options.forcePseudoFullscreen?e.cancelFullScreen(this.options.fullscreenElement?this.options.fullscreenElement:n._container):L.DomUtil.removeClass(n._container,"leaflet-pseudo-fullscreen"),n.invalidateSize(),n.fire("exitFullscreen"),n._exitFired=!0,n._isFullscreen=!1):(e.supportsFullScreen&&!this.options.forcePseudoFullscreen?e.requestFullScreen(this.options.fullscreenElement?this.options.fullscreenElement:n._container):L.DomUtil.addClass(n._container,"leaflet-pseudo-fullscreen"),n.invalidateSize(),n.fire("enterFullscreen"),n._isFullscreen=!0)},_toggleTitle:function(){this.link.title=this._map._isFullscreen?this.options.title:this.options.titleCancel},_handleEscKey:function(){var n=this._map;e.isFullScreen(n)||n._exitFired||(n.fire("exitFullscreen"),n._exitFired=!0,n._isFullscreen=!1)}}),L.Map.addInitHook(function(){this.options.fullscreenControl&&(this.fullscreenControl=L.control.fullscreen(this.options.fullscreenControlOptions),this.addControl(this.fullscreenControl))}),L.control.fullscreen=function(e){return new L.Control.FullScreen(e)};var e={supportsFullScreen:!1,isFullScreen:function(){return!1},requestFullScreen:function(){},cancelFullScreen:function(){},fullScreenEventName:"",prefix:""},n="webkit moz o ms khtml".split(" ");if("undefined"!=typeof document.exitFullscreen)e.supportsFullScreen=!0;else{for(var t=0,l=n.length;t" ], @@ -12,13 +13,15 @@ "icon-fullscreen.png", "icon-fullscreen-2x.png" ], + "devDependencies": { + "eslint": "2.3.0" + }, "keywords": [ "leaflet", "plugins", "maps", "fullscreen" ], - "license": "MIT", "ignore": [ "**/.*", "node_modules", diff --git a/assets/leaflet-fullscreen/icon-fullscreen-2x.png b/assets/leaflet-fullscreen/icon-fullscreen-2x.png index 7320d95..efc0dfb 100644 Binary files a/assets/leaflet-fullscreen/icon-fullscreen-2x.png and b/assets/leaflet-fullscreen/icon-fullscreen-2x.png differ diff --git a/assets/leaflet-fullscreen/icon-fullscreen.png b/assets/leaflet-fullscreen/icon-fullscreen.png index 1747814..8ee2447 100644 Binary files a/assets/leaflet-fullscreen/icon-fullscreen.png and b/assets/leaflet-fullscreen/icon-fullscreen.png differ diff --git a/assets/leaflet-fullscreen/index.html b/assets/leaflet-fullscreen/index.html index 6ce37c7..c9fc429 100644 --- a/assets/leaflet-fullscreen/index.html +++ b/assets/leaflet-fullscreen/index.html @@ -3,17 +3,18 @@ Leaflet.Control.FullScreen Demo - + - + diff --git a/assets/leaflet-fullscreen/package.json b/assets/leaflet-fullscreen/package.json index 381d897..d8bb521 100644 --- a/assets/leaflet-fullscreen/package.json +++ b/assets/leaflet-fullscreen/package.json @@ -1,6 +1,6 @@ { "name": "leaflet.fullscreen", - "version": "1.3.0", + "version": "1.4.2", "description": "Simple plugin for Leaflet that adds fullscreen button to your maps.", "main": "Control.FullScreen.js", "scripts": { @@ -17,7 +17,7 @@ "fullscreen" ], "devDependencies": { - "jshint": "2.5.0" + "eslint": "2.3.0" }, "author": "b_b", "license": "MIT License", diff --git a/module/config/config.php b/module/config/config.php index 1a23dc6..2de3289 100644 --- a/module/config/config.php +++ b/module/config/config.php @@ -65,7 +65,7 @@ $GLOBALS['LEAFLET_LIBRARIES']['leaflet-loading'] = array $GLOBALS['LEAFLET_LIBRARIES']['leaflet-fullscreen'] = array ( 'name' => 'Leaflet.Control.FullScreen', - 'version' => '1.3.0', + 'version' => '1.4.2', 'license' => 'MIT', 'homepage' => 'https://github.com/brunob/leaflet.fullscreen', 'css' => 'assets/leaflet/libs/leaflet-fullscreen/Control.FullScreen.min.css',