@fancyapps/ui
Version:
Robust JavaScript UI Component Library
1 lines • 1.98 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=e=>"object"==typeof e&&null!==e&&e.constructor===Object&&"[object Object]"===Object.prototype.toString.call(e),n=function(e){var t=new DOMParser().parseFromString(e,"text/html").body;if(t.childElementCount>1){for(var n=document.createElement("div");t.firstChild;)n.appendChild(t.firstChild);return n}let o=t.firstChild;if(o&&!(o instanceof HTMLElement)){var n=document.createElement("div");return n.appendChild(o),n}return o},o=(e,t="",n)=>{e&&e.classList&&t.split(" ").forEach(t=>{t&&e.classList.toggle(t,n||!1)})},r={prevTpl:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M15 3l-9 9 9 9"></path></svg>',nextTpl:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M9 3l9 9-9 9"></path></svg>'};e.Arrows=()=>{let e,i,s;function a(o){if(!e)return;let i=`<button data-carousel-go-${o} tabindex="0" class="f-button is-arrow is-${o}" title="{{${o.toUpperCase()}}}">`+function(){let n=e?.getOptions().Arrows;return t(n)?{...r,...n}:r}()[`${o}Tpl`]+"</button";return n(e.localize(i))||void 0}function l(){i?.remove(),i=void 0,s?.remove(),s=void 0,e?.getContainer()?.classList.remove("has-arrows")}function d(){e&&!1!==e.getOptions().Arrows&&e.getPages().length>1?(!function(){if(!e)return;let t=e.getViewport();t&&(!i&&(i=a("prev"))&&t.insertAdjacentElement("beforebegin",i),!s&&(s=a("next"))&&t.insertAdjacentElement("afterend",s),o(e.getContainer(),"has-arrows",!!(i||s)))}(),e&&(i?.toggleAttribute("aria-disabled",!e.canGoPrev()),s?.toggleAttribute("aria-disabled",!e.canGoNext()))):l()}return{init:function(t){e=t.on(["change","refresh"],d)},destroy:function(){l(),e?.off(["change","refresh"],d),e=void 0}}}});