vendor: 3,457 bytes, lines 1-163
1(function () { 2 'use strict'; 3 4 var document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {}; 5 var isCommonjs = typeof module !== 'undefined' && module.exports; 6 var keyboardAllowed = typeof Element !== 'undefined' && 'ALLOW_KEYBOARD_INPUT' in Element; 7 8 var fn = (function () { 9 var val; 10 11 var fnMap = [ 12 [ 13 'requestFullscreen', 14 'exitFullscreen', 15 'fullscreenElement', 16 'fullscreenEnabled', 17 'fullscreenchange', 18 'fullscreenerror' 19 ], 20 // New WebKit 21 [ 22 'webkitRequestFullscreen', 23 'webkitExitFullscreen', 24 'webkitFullscreenElement', 25 'webkitFullscreenEnabled', 26 'webkitfullscreenchange', 27 'webkitfullscreenerror' 28 29 ], 30 // Old WebKit (Safari 5.1) 31 [ 32 'webkitRequestFullScreen', 33 'webkitCancelFullScreen', 34 'webkitCurrentFullScreenElement', 35 'webkitCancelFullScreen', 36 'webkitfullscreenchange', 37 'webkitfullscreenerror' 38 39 ], 40 [ 41 'mozRequestFullScreen', 42 'mozCancelFullScreen', 43 'mozFullScreenElement', 44 'mozFullScreenEnabled', 45 'mozfullscreenchange', 46 'mozfullscreenerror' 47 ], 48 [ 49 'msRequestFullscreen', 50 'msExitFullscreen', 51 'msFullscreenElement', 52 'msFullscreenEnabled', 53 'MSFullscreenChange', 54 'MSFullscreenError' 55 ] 56 ]; 57 58 var i = 0; 59 var l = fnMap.length; 60 var ret = {}; 61 62 for (; i < l; i++) { 63 val = fnMap[i]; 64 if (val && val[1] in document) { 65 for (i = 0; i < val.length; i++) { 66 ret[fnMap[0][i]] = val[i]; 67 } 68 return ret; 69 } 70 } 71 72 return false; 73 })(); 74 75 var eventNameMap = { 76 change: fn.fullscreenchange, 77 error: fn.fullscreenerror 78 }; 79 80 var screenfull = { 81 request: function (elem) { 82 var request = fn.requestFullscreen; 83 84 elem = elem || document.documentElement; 85 86 // Work around Safari 5.1 bug: reports support for 87 // keyboard in fullscreen even though it doesn't. 88 // Browser sniffing, since the alternative with 89 // setTimeout is even worse. 90 if (/ Version\/5\.1(?:\.\d+)? Safari\//.test(navigator.userAgent)) { 91 elem[request](); 92 } else { 93 elem[request](keyboardAllowed ? Element.ALLOW_KEYBOARD_INPUT : {}); 94 } 95 }, 96 exit: function () { 97 document[fn.exitFullscreen](); 98 }, 99 toggle: function (elem) { 100 if (this.isFullscreen) { 101 this.exit(); 102 } else { 103 this.request(elem); 104 } 105 }, 106 onchange: function (callback) { 107 this.on('change', callback); 108 }, 109 onerror: function (callback) { 110 this.on('error', callback); 111 }, 112 on: function (event, callback) { 113 var eventName = eventNameMap[event]; 114 if (eventName) { 115 document.addEventListener(eventName, callback, false); 116 } 117 }, 118 off: function (event, callback) { 119 var eventName = eventNameMap[event]; 120 if (eventName) { 121 document.removeEventListener(eventName, callback, false); 122 } 123 }, 124 raw: fn 125 }; 126 127 if (!fn) { 128 if (isCommonjs) { 129 module.exports = false; 130 } else { 131 window.screenfull = false; 132 } 133 134 return; 135 } 136 137 Object.defineProperties(screenfull, { 138 isFullscreen: { 139 get: function () { 140 return Boolean(document[fn.fullscreenElement]); 141 } 142 }, 143 element: { 144 enumerable: true, 145 get: function () { 146 return document[fn.fullscreenElement]; 147 } 148 }, 149 enabled: { 150 enumerable: true, 151 get: function () { 152 // Coerce to boolean in case of old WebKit 153 return Boolean(document[fn.fullscreenEnabled]); 154 } 155 } 156 }); 157 158 if (isCommonjs) { 159 module.exports = screenfull; 160 } else { 161 window.screenfull = screenfull; 162 } 163})();
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.