@fancyapps/ui
Version:
Robust JavaScript UI Component Library
3 lines (2 loc) • 1.52 kB
JavaScript
/*! License details at fancyapps.com/license */
import{isPlainObject as t}from"../utils/isPlainObject.js";import{stringToHtml as e}from"../utils/strToHtml.js";import{toggleClass as n}from"../utils/toggleClass.js";const o={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>'},r=()=>{let r,i,s;function l(n){if(!r)return;const i=`<button data-carousel-go-${n} tabindex="0" class="f-button is-arrow is-${n}" title="{{${n.toUpperCase()}}}">`+function(){const e=null==r?void 0:r.getOptions().Arrows;return t(e)?Object.assign(Object.assign({},o),e):o}()[`${n}Tpl`]+"</button";return e(r.localize(i))||void 0}function a(){var t;null==i||i.remove(),i=void 0,null==s||s.remove(),s=void 0,null===(t=null==r?void 0:r.getContainer())||void 0===t||t.classList.remove("has-arrows")}function u(){r&&!1!==r.getOptions().Arrows&&r.getPages().length>1?(!function(){if(!r)return;const t=r.getViewport();t&&(i||(i=l("prev"),i&&t.insertAdjacentElement("beforebegin",i)),s||(s=l("next"),s&&t.insertAdjacentElement("afterend",s)),n(r.getContainer(),"has-arrows",!(!i&&!s)))}(),r&&(null==i||i.toggleAttribute("aria-disabled",!r.canGoPrev()),null==s||s.toggleAttribute("aria-disabled",!r.canGoNext()))):a()}return{init:function(t){r=t.on(["change","refresh"],u)},destroy:function(){a(),null==r||r.off(["change","refresh"],u),r=void 0}}};export{r as Arrows};