diff options
Diffstat (limited to 'srcs/phpmyadmin/js/vendor/jquery/jquery.fullscreen.js')
| -rw-r--r-- | srcs/phpmyadmin/js/vendor/jquery/jquery.fullscreen.js | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/js/vendor/jquery/jquery.fullscreen.js b/srcs/phpmyadmin/js/vendor/jquery/jquery.fullscreen.js new file mode 100644 index 0000000..a9ada18 --- /dev/null +++ b/srcs/phpmyadmin/js/vendor/jquery/jquery.fullscreen.js @@ -0,0 +1,184 @@ +/** + * @preserve jquery.fullscreen 1.1.5 + * https://github.com/kayahr/jquery-fullscreen-plugin + * Copyright (C) 2012-2013 Klaus Reimer <k@ailis.de> + * Licensed under the MIT license + * (See http://www.opensource.org/licenses/mit-license) + */ + +(function(jQuery) { + +/** + * Sets or gets the fullscreen state. + * + * @param {boolean=} state + * True to enable fullscreen mode, false to disable it. If not + * specified then the current fullscreen state is returned. + * @return {boolean|Element|jQuery|null} + * When querying the fullscreen state then the current fullscreen + * element (or true if browser doesn't support it) is returned + * when browser is currently in full screen mode. False is returned + * if browser is not in full screen mode. Null is returned if + * browser doesn't support fullscreen mode at all. When setting + * the fullscreen state then the current jQuery selection is + * returned for chaining. + * @this {jQuery} + */ +function fullScreen(state) +{ + var e, func, doc; + + // Do nothing when nothing was selected + if (!this.length) return this; + + // We only use the first selected element because it doesn't make sense + // to fullscreen multiple elements. + e = (/** @type {Element} */ this[0]); + + // Find the real element and the document (Depends on whether the + // document itself or a HTML element was selected) + if (e.ownerDocument) + { + doc = e.ownerDocument; + } + else + { + doc = e; + e = doc.documentElement; + } + + // When no state was specified then return the current state. + if (state == null) + { + // When fullscreen mode is not supported then return null + if (!((/** @type {?Function} */ doc["exitFullscreen"]) + || (/** @type {?Function} */ doc["webkitExitFullscreen"]) + || (/** @type {?Function} */ doc["webkitCancelFullScreen"]) + || (/** @type {?Function} */ doc["msExitFullscreen"]) + || (/** @type {?Function} */ doc["mozCancelFullScreen"]))) + { + return null; + } + + // Check fullscreen state + state = !!doc["fullscreenElement"] + || !!doc["msFullscreenElement"] + || !!doc["webkitIsFullScreen"] + || !!doc["mozFullScreen"]; + if (!state) return state; + + // Return current fullscreen element or "true" if browser doesn't + // support this + return (/** @type {?Element} */ doc["fullscreenElement"]) + || (/** @type {?Element} */ doc["webkitFullscreenElement"]) + || (/** @type {?Element} */ doc["webkitCurrentFullScreenElement"]) + || (/** @type {?Element} */ doc["msFullscreenElement"]) + || (/** @type {?Element} */ doc["mozFullScreenElement"]) + || state; + } + + // When state was specified then enter or exit fullscreen mode. + if (state) + { + // Enter fullscreen + func = (/** @type {?Function} */ e["requestFullscreen"]) + || (/** @type {?Function} */ e["webkitRequestFullscreen"]) + || (/** @type {?Function} */ e["webkitRequestFullScreen"]) + || (/** @type {?Function} */ e["msRequestFullscreen"]) + || (/** @type {?Function} */ e["mozRequestFullScreen"]); + if (func) + { + func.call(e); + } + return this; + } + else + { + // Exit fullscreen + func = (/** @type {?Function} */ doc["exitFullscreen"]) + || (/** @type {?Function} */ doc["webkitExitFullscreen"]) + || (/** @type {?Function} */ doc["webkitCancelFullScreen"]) + || (/** @type {?Function} */ doc["msExitFullscreen"]) + || (/** @type {?Function} */ doc["mozCancelFullScreen"]); + if (func) func.call(doc); + return this; + } +} + +/** + * Toggles the fullscreen mode. + * + * @return {!jQuery} + * The jQuery selection for chaining. + * @this {jQuery} + */ +function toggleFullScreen() +{ + return (/** @type {!jQuery} */ fullScreen.call(this, + !fullScreen.call(this))); +} + +/** + * Handles the browser-specific fullscreenchange event and triggers + * a jquery event for it. + * + * @param {?Event} event + * The fullscreenchange event. + */ +function fullScreenChangeHandler(event) +{ + jQuery(document).trigger(new jQuery.Event("fullscreenchange")); +} + +/** + * Handles the browser-specific fullscreenerror event and triggers + * a jquery event for it. + * + * @param {?Event} event + * The fullscreenerror event. + */ +function fullScreenErrorHandler(event) +{ + jQuery(document).trigger(new jQuery.Event("fullscreenerror")); +} + +/** + * Installs the fullscreenchange event handler. + */ +function installFullScreenHandlers() +{ + var e, change, error; + + // Determine event name + e = document; + if (e["webkitCancelFullScreen"]) + { + change = "webkitfullscreenchange"; + error = "webkitfullscreenerror"; + } + else if (e["msExitFullscreen"]) + { + change = "MSFullscreenChange"; + error = "MSFullscreenError"; + } + else if (e["mozCancelFullScreen"]) + { + change = "mozfullscreenchange"; + error = "mozfullscreenerror"; + } + else + { + change = "fullscreenchange"; + error = "fullscreenerror"; + } + + // Install the event handlers + jQuery(document).bind(change, fullScreenChangeHandler); + jQuery(document).bind(error, fullScreenErrorHandler); +} + +jQuery.fn["fullScreen"] = fullScreen; +jQuery.fn["toggleFullScreen"] = toggleFullScreen; +installFullScreenHandlers(); + +})(jQuery); |
