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