UNPKG

@fancyapps/ui

Version:

Robust JavaScript UI Component Library

1 lines 2.16 kB
!/*! 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=e=>"object"==typeof e&&null!==e&&e.constructor===Object&&"[object Object]"===Object.prototype.toString.call(e),n={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>'},l="in-fullscreen-mode";e.Fullscreen=()=>{let e;function o(l){let o=e?.getOptions().Fullscreen,u=(t(o)?{...n,...o}:n)[l];return u&&"function"==typeof u&&e?u(e):u}function u(){e?.getPlugins().Toolbar?.add("fullscreen",{tpl:o("btnTpl")})}function c(){if(o("autoStart")){let e=s();e&&a(e)}}function i(e,t){let n=t.target;n&&!t.defaultPrevented&&"toggle"===n.dataset.fullscreenAction&&b()}function r(e){s()&&"Escape"===e.key&&!e.defaultPrevented&&b()}function s(){return o("el")||e?.getContainer()||void 0}function f(){let e=document;return e.fullscreenEnabled?!!e.fullscreenElement:!!e.webkitFullscreenEnabled&&!!e.webkitFullscreenElement}function a(e){let t,n=document;return e||(e=n.documentElement),n.fullscreenEnabled?t=e.requestFullscreen():n.webkitFullscreenEnabled&&(t=e.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)),t&&t.then(()=>{e.classList.add(l)}),t}function d(){let e,t=document;return t.fullscreenEnabled?e=t.fullscreenElement&&t.exitFullscreen():t.webkitFullscreenEnabled&&(e=t.webkitFullscreenElement&&t.webkitExitFullscreen()),e&&e.then(()=>{s()?.classList.remove(l)}),e}function b(){let e=s();e&&(f()?d():a(e))}return{init:function(t){(e=t).on("initPlugins",u),e.on("ready",c),e.on("click",i)},destroy:function(){e?.off("initPlugins",u),e?.off("ready",c),e?.off("click",i),document.removeEventListener("keydown",r,!0)},exit:d,inFullscreen:f,request:a,toggle:b}}});