UNPKG

@fancyapps/ui

Version:

Robust JavaScript UI Component Library

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