UNPKG

@fancyapps/ui

Version:

Robust JavaScript UI Component Library

3 lines (2 loc) 1.6 kB
/*! 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={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>'},s=()=>{let s,i,l;function a(){const t=null==s?void 0:s.getOptions().Arrows;return e(t)?Object.assign(Object.assign({},r),t):r}function u(e){if(!s)return;const o=`<button data-carousel-go-${e} tabindex="0" class="f-button is-arrow is-${e}" title="{{${e.toUpperCase()}}}">`+a()[`${e}Tpl`]+"</button",r=n(s.localize(o))||void 0;return r&&t(r,a()[`${e}Class`]),r}function g(){var t;null==i||i.remove(),i=void 0,null==l||l.remove(),l=void 0,null===(t=null==s?void 0:s.getContainer())||void 0===t||t.classList.remove("has-arrows")}function c(){s&&!1!==s.getOptions().Arrows&&s.getPages().length>1?(!function(){if(!s)return;const t=s.getViewport();t&&(i||(i=u("prev"),i&&t.insertAdjacentElement("beforebegin",i)),l||(l=u("next"),l&&t.insertAdjacentElement("afterend",l)),o(s.getContainer(),"has-arrows",!(!i&&!l)))}(),s&&(null==i||i.toggleAttribute("aria-disabled",!s.canGoPrev()),null==l||l.toggleAttribute("aria-disabled",!s.canGoNext()))):g()}return{init:function(t){s=t.on(["change","refresh"],c)},destroy:function(){g(),null==s||s.off(["change","refresh"],c),s=void 0}}};export{s as Arrows};