@fancyapps/ui
Version:
Robust JavaScript UI Component Library
2 lines • 2.09 kB
JavaScript
/*! License details at fancyapps.com/license */
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.window=e.window||{}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let t=e=>typeof e==`object`&&!!e&&e.constructor===Object&&Object.prototype.toString.call(e)===`[object Object]`,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>`},r=`in-fullscreen-mode`;e.Fullscreen=()=>{let e;function i(r){let i=e?.getOptions().Fullscreen,a=(t(i)?{...n,...i}:n)[r];return a&&typeof a==`function`&&e?a(e):a}function a(){e?.getPlugins().Toolbar?.add(`fullscreen`,{tpl:i(`btnTpl`)})}function o(){if(i(`autoStart`)){let e=c();e&&u(e)}}function s(e,t){let n=t.target;!n||t.defaultPrevented||n.dataset.fullscreenAction===`toggle`&&f()}function c(){return i(`el`)||e?.getContainer()||void 0}function l(){let e=document;return e.fullscreenEnabled?!!e.fullscreenElement:e.webkitFullscreenEnabled?!!e.webkitFullscreenElement:!1}function u(e){let t=document;e||=t.documentElement;let n;return t.fullscreenEnabled?n=e.requestFullscreen():t.webkitFullscreenEnabled&&(n=e.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)),n&&n.then(()=>{e.classList.add(r)}),n}function d(){let e=document,t;return e.fullscreenEnabled?t=e.fullscreenElement&&e.exitFullscreen():e.webkitFullscreenEnabled&&(t=e.webkitFullscreenElement&&e.webkitExitFullscreen()),t&&t.then(()=>{c()?.classList.remove(r)}),t}function f(){if(l())d();else{let e=c();e&&u(e)}}return{init:function(t){e=t,e.on(`initPlugins`,a),e.on(`ready`,o),e.on(`click`,s)},destroy:function(){e?.off(`initPlugins`,a),e?.off(`ready`,o),e?.off(`click`,s)},exit:d,inFullscreen:l,request:u,toggle:f}}});