@fancyapps/ui
Version:
Robust JavaScript UI Component Library
3 lines (2 loc) • 20.9 kB
JavaScript
/*! License details at fancyapps.com/license */
import{isPlainObject as e}from"../utils/isPlainObject.js";import{isNode as t}from"../utils/isNode.js";import{isString as n}from"../utils/isString.js";import{getScrollableParent as i}from"../utils/getScrollableParent.js";import{getDirectChildren as o}from"../utils/getDirectChildren.js";import{extend as s}from"../utils/extend.js";import{map as r}from"../utils/map.js";import{stringToHtml as l}from"../utils/strToHtml.js";import{clamp as a}from"../utils/clamp.js";import{addClass as c}from"../utils/addClass.js";import{removeClass as d}from"../utils/removeClass.js";import{toggleClass as u}from"../utils/toggleClass.js";import{Tween as f}from"../libs/tween.js";import{Gestures as p}from"../libs/gestures.js";import{en_EN as v}from"./l10n/en_EN.js";const m=e=>{e.cancelable&&e.preventDefault()},g={adaptiveHeight:!1,center:!0,classes:{container:"f-carousel",isEnabled:"is-enabled",isLTR:"is-ltr",isRTL:"is-rtl",isHorizontal:"is-horizontal",isVertical:"is-vertical",hasAdaptiveHeight:"has-adaptive-height",viewport:"f-carousel__viewport",slide:"f-carousel__slide",isSelected:"is-selected"},dragFree:!1,enabled:!0,errorTpl:'<div class="f-html">{{ERROR}}</div>',fill:!1,infinite:!0,initialPage:0,l10n:v,rtl:!1,slides:[],slidesPerPage:"auto",spinnerTpl:'<div class="f-spinner"></div>',transition:"fade",tween:{clamp:!0,mass:1,tension:200,friction:25,restDelta:1,restSpeed:1,velocity:0},vertical:!1};let h,b=0;const E=(v,x={},y={})=>{b++;let w,M,S,j,P,L=0,T=Object.assign({},g),O=Object.assign({},g),R={},A=null,C=null,V=!1,H=!1,D=!1,$=!1,z="height",F=0,q=!0,I=0,B=0,k=0,N=0,_="*",G=[],X=[];const Y=new Set;let J=[],K=[],Q=0,U=0;function W(e,...t){let n=O[e];return n&&n instanceof Function?n(Re,...t):n}function Z(e,t=[]){const n=W("l10n")||{};e=String(e).replace(/\{\{(\w+)\}\}/g,((e,t)=>n[t]||e));for(let n=0;n<t.length;n++)e=e.split(t[n][0]).join(t[n][1]);return e=e.replace(/\{\{(.*?)\}\}/g,((e,t)=>t))}const ee=new Map;function te(e,...t){const n=ee.get(e)||[];O.on&&n.push(O.on[e]);for(const e of n)e&&e instanceof Function&&e(Re,...t);"*"!==e&&te("*",e,...t)}function ne(){var t,n;const r=s({},g,T);s(r,g,T);let l="";const u=T.breakpoints||{};if(u)for(const[e,t]of Object.entries(u))window.matchMedia(e).matches&&(l+=e,s(r,t));if(void 0===P||l!==P){if(P=l,0!==L){let e=null===(n=null===(t=K[I])||void 0===t?void 0:t.slides[0])||void 0===n?void 0:n.index;void 0===e&&(e=O.initialSlide),r.initialSlide=e,r.slides=[];for(const e of G)e.isVirtual&&r.slides.push(e)}Oe(),O=r,!1!==O.enabled&&(L=0,te("init"),function(){for(const[e,t]of Object.entries(Object.assign(Object.assign({},y),O.plugins||{})))if(e&&!R[e]&&t instanceof Function){const n=t();n.init(Re,E),R[e]=n}te("initPlugins")}(),function(){if(!A)return;const t=W("classes")||{};c(A,t.container),c(A,t.isEnabled);const n=W("style");if(n&&e(n))for(const[e,t]of Object.entries(n))A.style.setProperty(e,t);C=A.querySelector(`.${t.viewport}`),C||(C=document.createElement("div"),c(C,t.viewport),C.append(...o(A,`.${t.slide}`)),A.insertAdjacentElement("afterbegin",C)),V="visible"===window.getComputedStyle(C).getPropertyValue("overflow"),A.carousel=Re,te("initLayout")}(),function(){if(!C)return;const e=W("classes")||{};G=[],[...o(C,`.${e.slide}`)].forEach((e=>{e.parentElement&&(G.push(ve(Object.assign({el:e,isVirtual:!1},e.dataset||{}))),e.parentElement.removeChild(e))})),pe(W("slides"));for(const e of G)te("addSlide",e);te("initSlides")}(),M=f().on("start",(()=>{q=!1,w&&w.isPointerDown()||(se(),Te())})).on("step",(e=>{F=e.pos,Te()})).on("end",(e=>{(null==w?void 0:w.isPointerDown())||(F=e.pos,M&&!H&&(F<k||F>N)?M.spring({clamp:!0,mass:1,tension:200,friction:25,velocity:0,restDelta:1,restSpeed:1}).from({pos:F}).to({pos:a(k,F,N)}).start():q||(q=!0,te("settle")))})),function(){const e=W("gestures");C&&!1!==e&&(w=p(C,e).on("start",(e=>{var t,n;if(!M)return;const{srcEvent:i}=e;function o(e){const t=window.getComputedStyle(e),n=new DOMMatrixReadOnly(t.transform);return{width:n.m41||0,height:n.m42||0}}$&&m(i),M.pause(),M.getCurrentVelocities().pos=0;const s=null===(t=K[I])||void 0===t?void 0:t.slides[0];s&&Y.has(s.index)&&s.el&&(F=s.offset||0,F+=(o(s.el)[z]||0)*(D&&!$?1:-1)),ye(),H||(F<k||F>N)&&M.spring({clamp:!0,mass:1,tension:500,friction:25,velocity:(null===(n=M.getCurrentVelocities())||void 0===n?void 0:n.pos)||0,restDelta:1,restSpeed:1}).from({pos:F}).to({pos:a(k,F,N)}).start()})).on("move",(e=>{const{srcEvent:t,axis:n}=e,o=e.srcEvent.target;o&&i(o)||(n||(t.stopPropagation(),t.stopImmediatePropagation()),("y"===n&&$||"x"===n&&!$)&&(m(t),t.stopPropagation()))})).on("panstart",(e=>{(null==e?void 0:e.axis)===($?"y":"x")&&c(C,"is-dragging")})).on("panend",(()=>{d(C,"is-dragging")})).on("pan",(e=>{var t;const{deltaX:n,deltaY:i,currentTouch:o,axis:s}=e;if(!M)return;if(o.length>1)return;if("y"===s&&!$||"x"===s&&$)return;const r=D&&!$?1:-1;let l=$?i:n,a=(null==M?void 0:M.isRunning())?M.getEndValues().pos:F,c=1;H||(a<=k&&l*r<0?(c=Math.max(.01,1-Math.abs(1/de()*Math.abs(a-k))),c*=.2):a>=N&&l*r>0&&(c=Math.max(.01,1-Math.abs(1/de()*Math.abs(a-N))),c*=.2)),a+=l*c*r,M.spring({clamp:!0,mass:1,tension:700,friction:25,velocity:(null===(t=M.getCurrentVelocities())||void 0===t?void 0:t.pos)||0,restDelta:1,restSpeed:1}).from({pos:F}).to({pos:a}).start()})).on("end",(e=>{var t,n;const{axis:i,velocityX:o,velocityY:s,currentTouch:r}=e,l=K.length,c=W("dragFree");if(r.length>0||!M)return;if(!l)return;const d=W("vertical")?s:o;let u=(null==M?void 0:M.isRunning())?M.getEndValues().pos:F;const f=D&&!$?1:-1;if(u+=d*(c?5:1)*f,!H&&(d*f<=0&&u<k||d*f>=0&&u>N)){let e=0;return Math.abs(d)>0&&(e=2*Math.abs(d),e=Math.min(.3*de(),e)),u=a(k+-1*e,u,N+e),void M.spring({clamp:!0,mass:1,tension:380,friction:25,velocity:-1*d,restDelta:1,restSpeed:1}).from({pos:F}).to({pos:u}).start()}if(c||(null===(t=R.Autoscroll)||void 0===t?void 0:t.isEnabled()))return void(Math.abs(d)>10?M.spring({clamp:!0,mass:1,tension:150,friction:25,velocity:-1*d,restDelta:1,restSpeed:1}).from({pos:F}).to({pos:u}).start():M.isRunning()||q||(q=!0,te("settle")));if(!c&&!(null===(n=R.Autoscroll)||void 0===n?void 0:n.isEnabled())&&(!e.offsetX&&!e.offsetY||"y"===i&&!$||"x"===i&&$))return void Le(I,{transition:"tween"});let p=ae(u);Math.abs(d)>10&&p===I&&(p+=d>0?D&&!$?1:-1:D&&!$?-1:1),Le(p,{transition:"tween",tween:{tension:160,friction:25,velocity:-1*d}})})).init())}(),Ee(),function(){if(A&&(A.addEventListener("click",Me,{passive:!1}),document.addEventListener("mousemove",ie),!S)){let e=null;S=new ResizeObserver((t=>{e||(e=requestAnimationFrame((()=>{!function(e){if(!A)return;let t=e[0].contentBoxSize[0].blockSize,n=e[0].contentBoxSize[0].inlineSize;if(0===L)return Q=t,U=n,L=1,Te(),re(),void te("ready");if(1!==L)return;const i=K.length;Ee();const o=A.getBoundingClientRect();t=o.height,n=o.width,i>1&&($&&Math.abs(t-Q)<.5||!$&&Math.abs(n-U)<.5)||(Q=t,U=n,$&&!t||!$&&!n||A&&C&&(i===K.length&&(null==w?void 0:w.isPointerDown())||(W("dragFree")&&(H||F>k&&F<N)?(se(),Te()):Le(I,{transition:!1}))))}(t),e=null})))})),S.observe(A)}}())}}function ie(e){h=e}function oe(e="*"){var t;const n=[];for(const i of G)("*"===e||i.class&&i.class.includes(e)||i.el&&(null===(t=i.el)||void 0===t?void 0:t.classList.contains(e)))&&n.push(i);j=void 0,_=e,X=[...n]}function se(){if(!M)return;const e=ae((null==M?void 0:M.isRunning())?M.getEndValues().pos:F);e!==I&&(j=I,I=e,Pe(),re(),le(),te("change",I,j))}function re(){var e;if(!A)return;u(C,"is-draggable",!!w&&K.length>0);for(const e of A.querySelectorAll("[data-carousel-index]"))e.innerHTML=I+"";for(const e of A.querySelectorAll("[data-carousel-page]"))e.innerHTML=I+1+"";for(const e of A.querySelectorAll("[data-carousel-pages]"))e.innerHTML=K.length+"";let t=!1;const n=null===(e=K[I])||void 0===e?void 0:e.slides[0];n&&(n.downloadSrc||"image"===n.type&&n.src)&&(t=!0);for(const e of A.querySelectorAll("[data-carousel-download]"))e.toggleAttribute("aria-disabled",!t)}function le(e){var t;if(!A)return;e||(e=null===(t=K[I])||void 0===t?void 0:t.slides[0]);const n=e.el;if(n)for(const t of n.querySelectorAll("[data-slide-index]"))t.innerHTML=e.index+1+""}function ae(e){if(!K.length||!M)return 0;const t=ue();let n=e;H?n-=Math.floor((e-K[0].pos)/t)*t:n=a(K[0].pos,e,K[K.length-1].pos);const i=new Map;let o=0;for(const e of K){const s=Math.abs(e.pos-n),r=Math.abs(e.pos-n-t),l=Math.abs(e.pos-n+t),a=Math.min(s,r,l);i.set(o,a),o++}const s=i.size>0?[...i.entries()].reduce(((e,t)=>t[1]<e[1]?t:e)):[I,0];return parseInt(s[0])}function ce(){return C&&parseFloat(getComputedStyle(C).getPropertyValue("--f-carousel-gap"))||0}function de(){return C&&C.getBoundingClientRect()[z]||0}function ue(e=!0){const t=ce();return X.reduce(((e,t)=>e+t.dim),0)+(X.length-(H&&e?0:1))*t}function fe(e){const t=ce(),n=ue();let i=de();if(!C)return[];const o=[];if(!n||!i)return[];e=void 0===e?F:e,H&&(e-=Math.floor(e/n)*n);let s=0,r=0;if(V){const e=C.getBoundingClientRect();s=e.left,r=e.right-e.width}let l=0;for(let a of X){const c=(t=0)=>{o.indexOf(a)>-1||(a.pos=l-e+t||0,a.offset+t>e-a.dim-s+.51&&a.offset+t<e+i+r-.51&&o.push(a))};if(a.offset=l,H)for(let e=-1;e<=1;e++)c(n*e);else c();l+=a.dim+t}return o}function pe(e,t){const n=[];for(const t of Array.isArray(e)?e:[e]){const e=ve(Object.assign(Object.assign({},t),{isVirtual:!0}));n.push(e)}G.splice(void 0===t?G.length:t,0,...n),be();for(const e of n)me(e);return oe(_),n}function ve(e){return(n(e)||e instanceof HTMLElement)&&(e={html:e}),Object.assign({index:-1,el:void 0,class:"",isVirtual:!0,dim:0,pos:0,offset:0,html:"",src:""},e)}function me(e){if(!e)return;let t=e.el;t||(t=document.createElement("div"),e.el=t);const n=e.html?e.html instanceof HTMLElement?e.html:l(e.html):void 0;n&&(c(n,"f-html"),e.htmlEl=n,c(t,"has-html"),t.append(n),te("contentReady",e))}function ge(e){if(!C||!e)return;let t=e.el;if(t){if(t.setAttribute("index",e.index+""),t.parentElement!==C){let n;c(t,O.classes.slide),c(t,e.class),Pe(e);for(const t of G)if(t.index>e.index){n=t.el;break}C.insertBefore(t,n&&C.contains(n)?n:null),te("attachSlideEl",e)}return t}}function he(e){const t=null==e?void 0:e.el;t&&(t.remove(),xe(t),te("detachSlideEl",e))}function be(){for(let e=0;e<G.length;e++){const t=G[e],n=t.el;n&&(t.index!==e&&xe(n),n.setAttribute("index",`${e}`)),t.index=e}}function Ee(){var e,n,i,o;if(!A||!C)return;D=W("rtl"),$=W("vertical"),z=$?"height":"width";const s=W("classes");u(A,s.isLTR,!D),u(A,s.isRTL,D),u(A,s.isHorizontal,!$),u(A,s.isVertical,$),u(A,s.hasAdaptiveHeight,W("adaptiveHeight"));const r=C.getBoundingClientRect();if(!r.width&&!r.height)return;const l=function(){let e=0;if(C){let t=document.createElement("div");c(t,O.classes.slide),C.appendChild(t),e=t.getBoundingClientRect()[z],t.remove(),t=void 0}return e}();for(const n of X){const i=n.el;let o=0;if(!n.isVirtual&&i&&t(i)){let t=!1;i.parentElement&&i.parentElement===C||(C.appendChild(i),t=!0),o=i.getBoundingClientRect()[z],t&&(null===(e=i.parentElement)||void 0===e||e.removeChild(i))}else o=l;n.dim=o}if(function(){if(!A)return;be();const e=de(),t=ce(),n=ue(!1);let i=W("slidesPerPage");i="auto"===i?1/0:parseFloat(i+""),K=[];let o=0,s=0;for(const n of X)(!K.length||o+n.dim-e>.05||s>=i)&&(K.push({index:K.length,slides:[],dim:0,offset:0,pos:0}),o=0,s=0),K[K.length-1].slides.push(n),o+=n.dim+t,s++;const r=W("center"),l=W("fill"),c=W("infinite");let d=0;for(const i of K){i.dim=(i.slides.length-1)*t;for(const e of i.slides)i.dim+=e.dim;i.offset=d,i.pos=d,!1!==r&&(i.pos-=.5*(e-i.dim)),l&&!c&&n>e&&(i.pos=a(0,i.pos,n-e)),d+=i.dim+t}const u=[];let f;for(const e of K){const t=Object.assign({},e);f&&t.pos===f.pos?(f.dim+=t.dim,f.slides=[...f.slides,...t.slides]):(f=t,t.index=u.length,u.push(t))}K=u,re()}(),H=W("infinite")&&K.length>1&&ue()-(de()+((null===(n=X[0])||void 0===n?void 0:n.dim)||0))>-.5,k=(null===(i=K[0])||void 0===i?void 0:i.pos)||0,N=(null===(o=K[K.length-1])||void 0===o?void 0:o.pos)||0,0===L)!function(){var e;j=void 0,I=W("initialPage");const t=W("initialSlide")||void 0;void 0!==t&&(I=Re.getPageIndex(t)||0),I=a(0,I,K.length-1),F=(null===(e=K[I])||void 0===e?void 0:e.pos)||0,B=F}();else{const e=(null==M?void 0:M.isRunning())?M.getEndValues().pos:F;(e<k||e>N)&&(I=a(0,I,K.length-1),B=K[I||0].pos||0)}te("refresh")}function xe(e){if(!e||!t(e))return;const n=parseInt(e.getAttribute("index")||"-1");let i="";for(const t of Array.from(e.classList)){const e=t.match(/^f-(\w+)(Out|In)$/);e&&e[1]&&(i=e[1]+"")}if(!e||!i)return;const o=[`f-${i}Out`,`f-${i}In`,"to-prev","to-next","from-prev","from-next"];e.removeEventListener("animationend",we),d(e,o.join(" ")),Y.delete(n)}function ye(){if(!C)return;const e=Y.size;for(const e of X)xe(e.el);Y.clear(),e&&Te()}function we(e){"f-"===e.animationName.substring(0,2)&&(xe(e.target),Y.size||(d(A,"in-transition"),!q&&Math.abs(Re.getPosition(!0)-B)<.5&&(q=!0,te("settle"))),Te())}function Me(e){if(e.defaultPrevented)return;const t=e.composedPath()[0];if(t.closest("[data-carousel-go-prev]"))return m(e),void Re.prev();if(t.closest("[data-carousel-go-next]"))return m(e),void Re.next();const n=t.closest("[data-carousel-go-to]");if(n)return m(e),void Re.goTo(parseFloat(n.dataset.carouselGoTo||"")||0);if(t.closest("[data-carousel-download]")){m(e);const t=K[I].slides[0];if(t.downloadSrc||"image"===t.type&&t.src){const e=t.downloadFilename,n=document.createElement("a"),i=t.downloadSrc||t.src||"";n.href=i,n.target="_blank",n.download=e||i,n.click()}}else te("click",e)}function Se(e){var t;const n=e.el;n&&(null===(t=n.querySelector(".f-spinner"))||void 0===t||t.remove(),d(n,"is-loading"))}function je(e){var t;const n=e.el;n&&(null===(t=n.querySelector(".f-html.is-error"))||void 0===t||t.remove(),d(n,"has-error"))}function Pe(e){var t;e||(e=null===(t=K[I])||void 0===t?void 0:t.slides[0]);const i=null==e?void 0:e.el;if(!i)return;let o=W("formatCaption",e);void 0===o&&(o=e.caption),o=o||"";const s=W("captionEl");if(s&&s instanceof HTMLElement){if(e.index!==I)return;if(n(o)&&(s.innerHTML=Z(o+"")),o instanceof HTMLElement){if(o.parentElement===s)return;s.innerHTML="",o.parentElement&&(o=o.cloneNode(!0)),s.append(o)}return}if(!o)return;let r=e.captionEl||i.querySelector(".f-caption");!r&&o instanceof HTMLElement&&o.classList.contains("f-caption")&&(r=o),r||(r=document.createElement("div"),c(r,"f-caption"),n(o)?r.innerHTML=Z(o+""):o instanceof HTMLElement&&(o.parentElement&&(o=o.cloneNode(!0)),r.append(o)));const l=`f-caption-${b}_${e.index}`;r.setAttribute("id",l),r.dataset.selectable="true",c(i,"has-caption"),i.setAttribute("aria-labelledby",l),e.captionEl=r,i.insertAdjacentElement("beforeend",r)}function Le(t,i){let{transition:o,tween:s}=Object.assign({transition:O.transition,tween:O.tween},i||{});if(!A||!M)return;const r=K.length;if(!r)return;if(function(e,t){var i,o,s,r;if(!(A&&M&&t&&n(t)&&"tween"!==t))return!1;if((null===(i=K[I])||void 0===i?void 0:i.slides.length)>1)return!1;const l=K.length;let u=e>I?1:-1;e=H?(e%l+l)%l:a(0,e,l-1),D&&(u*=-1);const f=null===(o=K[I])||void 0===o?void 0:o.slides[0],p=null==f?void 0:f.index,v=null===(s=K[e])||void 0===s?void 0:s.slides[0],m=null==v?void 0:v.index,g=null===(r=K[e])||void 0===r?void 0:r.pos;if(void 0===m||void 0===p||p===m||F===g||Math.abs(de()-((null==v?void 0:v.dim)||0))>1)return!1;q=!1,M.pause(),ye(),c(A,"in-transition"),F=B=g;const h=ge(f),b=ge(v);return se(),h&&(Y.add(p),h.style.transform="",h.addEventListener("animationend",we),d(h,O.classes.isSelected),c(h,`f-${t}Out to-${u>0?"next":"prev"}`)),b&&(Y.add(m),b.style.transform="",b.addEventListener("animationend",we),c(b,O.classes.isSelected),c(b,`f-${t}In from-${u>0?"prev":"next"}`)),Te(),!0}(t,o))return;t=H?(t%r+r)%r:a(0,t,r-1),B=K[t||0].pos||0;const l=M.isRunning()?M.getEndValues().pos:F;if(Math.abs(B-l)<1)return F=B,I!==t&&(Pe(),re(),le(),j=I,I=t,te("change",I,j)),Te(),void(q||(q=!0,te("settle")));if(M.pause(),ye(),H){const e=ue(),t=Math.floor((l-K[0].pos)/e),n=B+t*e;B=[n+e,n,n-e].reduce((function(e,t){return Math.abs(t-l)<Math.abs(e-l)?t:e}))}!1!==o&&e(s)?M.spring(s).from({pos:F}).to({pos:B}).start():(F=B,se(),Te(),q||(q=!0,te("settle")))}function Te(){var e;if(!A||!C)return;const t=K[I];J=fe();const n=new Set;let i;const s=[];for(const o of X){if(o.isVirtual&&!Y.has(o.index)&&J.indexOf(o)<0)continue;let l=ge(o);if(!l)continue;s.push(o);const a=(null===(e=null==t?void 0:t.slides)||void 0===e?void 0:e.indexOf(o))>-1;if(a&&n.add(l),!Y.has(o.index)){const e=o.pos?Math.round(1e4*o.pos)/1e4:0,t=$?0:D?-1*e:e,n=$?e:0,i=r(t,0,o.dim,0,100),s=r(n,0,o.dim,0,100),a=O.setTransform||void 0;a instanceof Function?a(Re,o,{x:t,y:n,xPercent:i,yPercent:s}):l.style.transform=t||n?`translate3d(${i}%, ${s}%,0)`:""}if(W("adaptiveHeight")&&a){const e=(l.firstElementChild||l).getBoundingClientRect().height;i=null==i?e:Math.max(i,e)}}[...o(C,`.${O.classes.slide}`)].forEach((e=>{const t=parseInt(e.getAttribute("index")||"-1"),i=G[t];i||e.remove(),u(e,O.classes.isSelected,n.has(e)),i.isVirtual&&!Y.has(i.index)&&J.indexOf(i)<0&&he(i)})),C&&i&&(C.style.height=`${i}px`),te("render",s)}function Oe(){var e;null==A||A.removeEventListener("click",Me),ye(),document.removeEventListener("mousemove",ie),null==S||S.disconnect(),S=void 0;for(const n of G)n.el&&t(n.el)&&(n.state=void 0,Se(n),je(n),he(n),n.isVirtual?(null===(e=n.el)||void 0===e||e.remove(),n.el=void 0):(n.el.style.transform="",null==C||C.appendChild(n.el)));for(const e of Object.values(R))null==e||e.destroy();R={},null==w||w.destroy(),w=void 0,null==M||M.destroy(),M=void 0;for(const e of Object.values(O.classes||{}))d(A,e);d(C,"is-draggable")}const Re={add:function(e,t){const n=F,i=B,o=pe(e,t);for(const e of o)te("addSlide",e);return oe(_),Ee(),M&&i!==B&&M.spring({clamp:!0,mass:1,tension:300,friction:25,restDelta:1,restSpeed:1}).from({pos:n}).to({pos:B}).start(),Te(),Re},canGoPrev:function(){return H||I>0},canGoNext:function(){return H||I<K.length-1},destroy:function(){return te("destroy"),window.removeEventListener("resize",ne),Oe(),ee.clear(),A=null,K=[],G=[],O=Object.assign({},g),R={},X=[],P="",_="*",L=2,Re},emit:te,filter:function(e="*"){return oe(e),Ee(),Te(),te("filter",e),Re},getContainer:function(){return A},getGapDim:ce,getGestures:function(){return w},getLastMouseMove:function(){return h},getOptions:function(){return O},getPage:function(){return K[I]},getPageIndex:function(e){if(void 0!==e){for(const t of K||[])for(const n of t.slides)if(n.index===e)return t.index;return-1}return I},getPageProgress:function(e,t){void 0===e&&(e=I);const n=K[e];if(!n)return e>I?-1:1;let i=n.pos;const o=ce(),s=Re.getPosition(),r=ue();if(H&&!0!==t){const e=i+r*Math.floor((s-K[0].pos)/r);i=[e+r,e,e-r].reduce((function(e,t){return Math.abs(t-s)<Math.abs(e-s)?t:e}))}return(s-i)/(n.dim+o)},getPageVisibility:function(e){void 0===e&&(e=I);const t=K[e];if(!t)return e>I?-1:1;const n=Re.getPosition(),i=de();let o=t.pos;if(H){const e=Re.getPosition(),t=ue(),n=o+Math.floor((e-K[0].pos)/t)*t;o=[n+t,n,n-t].reduce((function(t,n){return Math.abs(n-e)<Math.abs(t-e)?n:t}))}return o>n&&o+t.dim<n+i?1:o<n?(o+t.dim-n)/t.dim:o+t.dim>n+i?(n+i-o)/t.dim:0},getPages:function(){return K},getPlugins:function(){return R},getPosition:function(e){var t;let n=F;if(H&&!0!==e){const e=ue();n-=Math.floor((F-(null===(t=K[0])||void 0===t?void 0:t.pos)||0)/e)*e}return n},getSlides:function(){return G},getState:function(){return L},getTotalSlideDim:ue,getTween:function(){return M},getViewport:function(){return C},getViewportDim:de,getVisibleSlides:function(e){return void 0===e?J:fe(e)},goTo:Le,hasNavigated:function(){return void 0!==j},hideError:je,hideLoading:Se,init:function(){if(!v||!t(v))throw new Error("No Element found");return 0!==L&&(Oe(),L=0),A=v,T=x,window.removeEventListener("resize",ne),T.breakpoints&&window.addEventListener("resize",ne),ne(),Re},isInfinite:function(){return H},isInTransition:function(){return Y.size>0},isRTL:function(){return D},isSettled:function(){return q},localize:function(e,t=[]){return Z(e,t)},next:function(e={}){return Le(I+1,e),Re},off:function(e,t){for(const n of e instanceof Array?e:[e])ee.has(n)&&ee.set(n,ee.get(n).filter((e=>e!==t)));return Re},on:function(e,t){for(const n of e instanceof Array?e:[e])ee.set(n,[...ee.get(n)||[],t]);return Re},prev:function(e={}){return Le(I-1,e),Re},remove:function(e){void 0===e&&(e=G.length-1);const t=G[e];return t&&(te("removeSlide",t),t.el&&(xe(t.el),t.el.remove(),t.el=void 0),G.splice(e,1),oe(_),Ee(),Te()),Re},setPosition:function(e){F=e,se(),Te()},showError:function(e,t){Se(e),je(e);const n=e.el;if(n){const i=document.createElement("div");c(i,"f-html"),c(i,"is-error"),i.innerHTML=Z(t||"<p>{{ERROR}}</p>"),e.htmlEl=i,c(n,"has-html"),c(n,"has-error"),n.insertAdjacentElement("afterbegin",i),te("contentReady",e)}return Re},showLoading:function(e){const t=e.el,n=null==t?void 0:t.querySelector(".f-spinner");if(!t||n)return Re;const i=W("spinnerTpl"),o=l(i);return o&&(c(o,"f-spinner"),c(t,"is-loading"),t.insertAdjacentElement("beforeend",o)),Re},version:"6.0.14"};return Re};E.l10n={en_EN:v},E.getDefaults=()=>g;export{E as Carousel};