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