1(function($, window, document, undefined) { 2 3 'use strict'; 4 5 var defaults = { 6 fullScreen: true 7 }; 8 9 var Fullscreen = function(element) { 10 11 // get lightGallery core plugin data 12 this.core = $(element).data('lightGallery'); 13 14 this.$el = $(element); 15 16 // extend module defalut settings with lightGallery core settings 17 this.core.s = $.extend({}, defaults, this.core.s); 18 19 this.init(); 20 21 return this; 22 }; 23 24 Fullscreen.prototype.init = function() { 25 var fullScreen = ''; 26 if (this.core.s.fullScreen) { 27 28 // check for fullscreen browser support 29 if (!document.fullscreenEnabled && !document.webkitFullscreenEnabled && 30 !document.mozFullScreenEnabled && !document.msFullscreenEnabled) { 31 return; 32 } else { 33 fullScreen = '<span class="lg-fullscreen lg-icon"></span>'; 34 this.core.$outer.find('.lg-toolbar').append(fullScreen); 35 this.fullScreen(); 36 } 37 } 38 }; 39 40 Fullscreen.prototype.requestFullscreen = function() { 41 var el = document.documentElement; 42 if (el.requestFullscreen) { 43 el.requestFullscreen(); 44 } else if (el.msRequestFullscreen) { 45 el.msRequestFullscreen(); 46 } else if (el.mozRequestFullScreen) { 47 el.mozRequestFullScreen(); 48 } else if (el.webkitRequestFullscreen) { 49 el.webkitRequestFullscreen(); 50 } 51 }; 52 53 Fullscreen.prototype.exitFullscreen = function() { 54 if (document.exitFullscreen) { 55 document.exitFullscreen(); 56 } else if (document.msExitFullscreen) { 57 document.msExitFullscreen(); 58 } else if (document.mozCancelFullScreen) { 59 document.mozCancelFullScreen(); 60 } else if (document.webkitExitFullscreen) { 61 document.webkitExitFullscreen(); 62 } 63 }; 64 65 // https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode 66 Fullscreen.prototype.fullScreen = function() { 67 var _this = this; 68 69 $(document).on('fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg', function() { 70 _this.core.$outer.toggleClass('lg-fullscreen-on'); 71 }); 72 73 this.core.$outer.find('.lg-fullscreen').on('click.lg', function() { 74 if (!document.fullscreenElement && 75 !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement) { 76 _this.requestFullscreen(); 77 } else { 78 _this.exitFullscreen(); 79 } 80 }); 81 82 }; 83 84 Fullscreen.prototype.destroy = function() { 85 86 // exit from fullscreen if activated 87 this.exitFullscreen(); 88 89 $(document).off('fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg'); 90 }; 91 92 $.fn.lightGallery.modules.fullscreen = Fullscreen; 93 94})(jQuery, window, document);
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.