UNPKG

@fancyapps/ui

Version:

Robust JavaScript UI Component Library

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