@fancyapps/ui
Version:
Robust JavaScript UI Component Library
1 lines • 1.56 kB
JavaScript
!/*! License details at fancyapps.com/license */function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).window=t.window||{})}(this,function(t){"use strict";let e={btnTpl:'<button data-expand-action="toggle" class="f-button" title="{{TOGGLE_EXPAND}}"><svg><g><path d="M14.5 9.5 21 3m0 0h-6m6 0v6M3 21l6.5-6.5M3 21v-6m0 6h6"/></g><g><path d="m14 10 7-7m-7 7h6m-6 0V4M3 21l7-7m0 0v6m0-6H4"/></g></svg></button>'},n="in-expanded-mode",o="with-expanded-carousel";t.Expand=()=>{let t;function i(n){let o=t?.getOptions().Expand,i=("object"==typeof o&&null!==o&&o.constructor===Object&&"[object Object]"===Object.prototype.toString.call(o)?{...e,...o}:e)[n];return i&&"function"==typeof i&&t?i(t):i}function d(){t?.getPlugins().Toolbar?.add("expand",{tpl:i("btnTpl")})}function c(t,e){let n=e.target;n&&!e.defaultPrevented&&"toggle"===n.dataset.expandAction&&s()}function l(t){"Escape"!==t.key||t.defaultPrevented||s()}function s(){let e=i("el")||t?.getContainer();e&&(e.classList.toggle(n),e.classList.contains(n)?(document.documentElement.classList.add(o),document.addEventListener("keydown",l,!0)):(document.documentElement.classList.remove(o),document.removeEventListener("keydown",l,!0)))}return{init:function(e){(t=e).on("initPlugins",d),t.on("click",c)},destroy:function(){t?.off("initPlugins",d),t?.off("click",c),t=void 0,document.documentElement.classList.remove(o),document.removeEventListener("keydown",l,!0)},toggle:s}}});