UNPKG

@fancyapps/ui

Version:

Robust JavaScript UI Component Library

3 lines (2 loc) 1.35 kB
/*! License details at fancyapps.com/license */ import{isPlainObject as t}from"../utils/isPlainObject.js";import{stringToHtml as e}from"../utils/strToHtml.js";const n={dotTpl:'<button class="f-carousel__dot" data-carousel-go-to="%i" aria-label="{{GOTO}}"></button>',maxCount:1/0,minCount:2},o=()=>{let o,i;function s(e){const i=null==o?void 0:o.getOptions().Dots;return(t(i)?Object.assign(Object.assign({},n),i):n)[e]}function l(){var t;i&&(i.replaceChildren(),i.style.display="none"),null===(t=null==o?void 0:o.getContainer())||void 0===t||t.classList.remove("has-dots")}function r(){o&&o.getPages().length!==(i?i.childElementCount:-1)&&(l(),function(){var t,n;if(!o)return;if(!1===o.getOptions().Dots)return;const l=o.getPages().length,r=o.getContainer();if(!(l<s("minCount")||l>s("maxCount"))&&r){i||(i=(null===(t=o.getContainer())||void 0===t?void 0:t.querySelector(".f-carousel__dots"))||void 0),i||(i=document.createElement("div"),i.classList.add("f-carousel__dots"),null===(n=o.getViewport())||void 0===n||n.insertAdjacentElement("afterend",i));for(let t=0;t<l;t++){const n=s("dotTpl")||"%d",l=e(o.localize(n,[["%d",t+1]]).replace(/\%i/g,t+""));l&&i.appendChild(l)}i.style.display="",r.classList.add("has-dots")}}())}return{init:function(t){o=t,o.on("refresh",r)},destroy:function(){l(),null==o||o.off("refresh",r),o=void 0}}};export{o as Dots};