server/python2/django/renkanmanager/static/renkanmanager/lib/screenfull/screenfull.js
changeset 587 fb0041aa74d3
equal deleted inserted replaced
586:e2e952fcaf7c 587:fb0041aa74d3
       
     1 /*!
       
     2 * screenfull
       
     3 * v2.0.0 - 2014-12-22
       
     4 * (c) Sindre Sorhus; MIT License
       
     5 */
       
     6 (function () {
       
     7 	'use strict';
       
     8 
       
     9 	var isCommonjs = typeof module !== 'undefined' && module.exports;
       
    10 	var keyboardAllowed = typeof Element !== 'undefined' && 'ALLOW_KEYBOARD_INPUT' in Element;
       
    11 
       
    12 	var fn = (function () {
       
    13 		var val;
       
    14 		var valLength;
       
    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, valLength = val.length; i < valLength; i++) {
       
    71 					ret[fnMap[0][i]] = val[i];
       
    72 				}
       
    73 				return ret;
       
    74 			}
       
    75 		}
       
    76 
       
    77 		return false;
       
    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 (/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 		raw: fn
       
   107 	};
       
   108 
       
   109 	if (!fn) {
       
   110 		if (isCommonjs) {
       
   111 			module.exports = false;
       
   112 		} else {
       
   113 			window.screenfull = false;
       
   114 		}
       
   115 
       
   116 		return;
       
   117 	}
       
   118 
       
   119 	Object.defineProperties(screenfull, {
       
   120 		isFullscreen: {
       
   121 			get: function () {
       
   122 				return !!document[fn.fullscreenElement];
       
   123 			}
       
   124 		},
       
   125 		element: {
       
   126 			enumerable: true,
       
   127 			get: function () {
       
   128 				return document[fn.fullscreenElement];
       
   129 			}
       
   130 		},
       
   131 		enabled: {
       
   132 			enumerable: true,
       
   133 			get: function () {
       
   134 				// Coerce to boolean in case of old WebKit
       
   135 				return !!document[fn.fullscreenEnabled];
       
   136 			}
       
   137 		}
       
   138 	});
       
   139 
       
   140 	if (isCommonjs) {
       
   141 		module.exports = screenfull;
       
   142 	} else {
       
   143 		window.screenfull = screenfull;
       
   144 	}
       
   145 })();