@fancyapps/ui
Version:
Robust JavaScript UI Component Library
1 lines • 2.15 kB
JavaScript
!/*! License details at fancyapps.com/license */function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).window=e.window||{})}(this,function(e){"use strict";let t={autoStart:!1,btnTpl:'<button data-fullscreen-action="toggle" class="f-button" title="{{TOGGLE_FULLSCREEN}}"><svg><g><path d="M8 3H5a2 2 0 0 0-2 2v3M21 8V5a2 2 0 0 0-2-2h-3M3 16v3a2 2 0 0 0 2 2h3M16 21h3a2 2 0 0 0 2-2v-3"/></g><g><path d="M15 19v-2a2 2 0 0 1 2-2h2M15 5v2a2 2 0 0 0 2 2h2M5 15h2a2 2 0 0 1 2 2v2M5 9h2a2 2 0 0 0 2-2V5"/></g></svg></button>'},n="in-fullscreen-mode";e.Fullscreen=()=>{let e;function l(n){let l=e?.getOptions().Fullscreen,o=("object"==typeof l&&null!==l&&l.constructor===Object&&"[object Object]"===Object.prototype.toString.call(l)?{...t,...l}:t)[n];return o&&"function"==typeof o&&e?o(e):o}function o(){e?.getPlugins().Toolbar?.add("fullscreen",{tpl:l("btnTpl")})}function u(){if(l("autoStart")){let e=r();e&&f(e)}}function c(e,t){let n=t.target;n&&!t.defaultPrevented&&"toggle"===n.dataset.fullscreenAction&&d()}function i(e){r()&&"Escape"===e.key&&!e.defaultPrevented&&d()}function r(){return l("el")||e?.getContainer()||void 0}function s(){let e=document;return e.fullscreenEnabled?!!e.fullscreenElement:!!e.webkitFullscreenEnabled&&!!e.webkitFullscreenElement}function f(e){let t,l=document;return e||(e=l.documentElement),l.fullscreenEnabled?t=e.requestFullscreen():l.webkitFullscreenEnabled&&(t=e.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)),t&&t.then(()=>{e.classList.add(n)}),t}function a(){let e,t=document;return t.fullscreenEnabled?e=t.fullscreenElement&&t.exitFullscreen():t.webkitFullscreenEnabled&&(e=t.webkitFullscreenElement&&t.webkitExitFullscreen()),e&&e.then(()=>{r()?.classList.remove(n)}),e}function d(){let e=r();e&&(s()?a():f(e))}return{init:function(t){(e=t).on("initPlugins",o),e.on("ready",u),e.on("click",c)},destroy:function(){e?.off("initPlugins",o),e?.off("ready",u),e?.off("click",c),document.removeEventListener("keydown",i,!0)},exit:a,inFullscreen:s,request:f,toggle:d}}});