1L.Control.Fullscreen = L.Control.extend({ 2 options: { 3 position: 'topleft', 4 title: { 5 false: 'Prikaz preko cijelog zaslona', 6 true: 'Povratak' 7 } 8 }, 9 10 onAdd: function (map) { 11 var container = L.DomUtil.create('div', 'leaflet-control-fullscreen leaflet-bar leaflet-control'); 12 13 this.link = L.DomUtil.create('a', 'leaflet-control-fullscreen-button leaflet-bar-part', container); 14 this.link.href = '#'; 15 16 this._map = map; 17 this._map.on('fullscreenchange', this._toggleTitle, this); 18 this._toggleTitle(); 19 20 L.DomEvent.on(this.link, 'click', this._click, this); 21 22 return container; 23 }, 24 25 _click: function (e) { 26 L.DomEvent.stopPropagation(e); 27 L.DomEvent.preventDefault(e); 28 this._map.toggleFullscreen(); 29 }, 30 31 _toggleTitle: function() { 32 this.link.title = this.options.title[this._map.isFullscreen()]; 33 } 34}); 35 36L.Map.include({ 37 isFullscreen: function () { 38 return this._isFullscreen || false; 39 }, 40 41 toggleFullscreen: function () { 42 var container = this.getContainer(); 43 if (this.isFullscreen()) { 44 if (document.exitFullscreen) { 45 document.exitFullscreen(); 46 } else if (document.mozCancelFullScreen) { 47 document.mozCancelFullScreen(); 48 } else if (document.webkitCancelFullScreen) { 49 document.webkitCancelFullScreen(); 50 } else if (document.msExitFullscreen) { 51 document.msExitFullscreen(); 52 } else { 53 L.DomUtil.removeClass(container, 'leaflet-pseudo-fullscreen'); 54 this._toggleFullscreenClass(); 55 this.invalidateSize(); 56 this._isFullscreen = false; 57 this.fire('fullscreenchange'); 58 } 59 } else { 60 if (container.requestFullscreen) { 61 container.requestFullscreen(); 62 } else if (container.mozRequestFullScreen) { 63 container.mozRequestFullScreen(); 64 } else if (container.webkitRequestFullscreen) { 65 container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); 66 } else if (container.msRequestFullscreen) { 67 container.msRequestFullscreen(); 68 } else { 69 L.DomUtil.addClass(container, 'leaflet-pseudo-fullscreen'); 70 this._toggleFullscreenClass(); 71 this.invalidateSize(); 72 this._isFullscreen = true; 73 this.fire('fullscreenchange'); 74 } 75 } 76 }, 77 78 _toggleFullscreenClass: function() { 79 var container = this.getContainer(); 80 if (this.isFullscreen()) { 81 L.DomUtil.removeClass(container, 'leaflet-fullscreen-on'); 82 } else { 83 L.DomUtil.addClass(container, 'leaflet-fullscreen-on'); 84 } 85 }, 86 87 _onFullscreenChange: function () { 88 var fullscreenElement = 89 document.fullscreenElement || 90 document.mozFullScreenElement || 91 document.webkitFullscreenElement || 92 document.msFullscreenElement; 93 94 this._toggleFullscreenClass(); 95 if (fullscreenElement === this.getContainer()) { 96 this._isFullscreen = true; 97 this.fire('fullscreenchange'); 98 } else if (this._isFullscreen) { 99 this._isFullscreen = false; 100 this.fire('fullscreenchange'); 101 } 102 } 103}); 104 105L.Map.mergeOptions({ 106 fullscreenControl: false 107}); 108 109L.Map.addInitHook(function () { 110 if (this.options.fullscreenControl) { 111 this.fullscreenControl = new L.Control.Fullscreen(); 112 this.addControl(this.fullscreenControl); 113 } 114 115 var fullscreenchange; 116 117 if ('onfullscreenchange' in document) { 118 fullscreenchange = 'fullscreenchange'; 119 } else if ('onmozfullscreenchange' in document) { 120 fullscreenchange = 'mozfullscreenchange'; 121 } else if ('onwebkitfullscreenchange' in document) { 122 fullscreenchange = 'webkitfullscreenchange'; 123 } else if ('onmsfullscreenchange' in document) { 124 fullscreenchange = 'MSFullscreenChange'; 125 } 126 127 if (fullscreenchange) { 128 this.whenReady(function () { 129 L.DomEvent.on(document, fullscreenchange, this._onFullscreenChange, this); 130 }); 131 132 this.on('unload', function () { 133 L.DomEvent.off(document, fullscreenchange, this._onFullscreenChange); 134 }); 135 } 136}); 137 138L.control.fullscreen = function (options) { 139 return new L.Control.Fullscreen(options); 140};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.