aero-slider 1.0.0-beta.8 → 1.0.0-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- var we={loop:!1,autoplay:!1,autoplayInterval:5e3,draggable:!0,alignment:"center",maxDots:0,noDrag:"",perMove:0,direction:"ltr"},re={slidesPerView:1,gap:0,aspectRatio:"16 / 9"},Ie=5,me=.3,pe=80,Ce=250,Pe=300,ve=100,_e=250,Z="data-aero-slider-index",W="data-aero-slider-clone";function De(e,f,i,d={}){let r=d.debounceMs??100,p=d.maxWaitMs??250,n="",u=null,S=null;function l(){let y=getComputedStyle(e);return f.map(I=>y.getPropertyValue(I).trim()).join("\0")}function t(){u!==null&&(clearTimeout(u),u=null),S=null;let y=l();y!==n&&(n=y,i())}function T(){let y=Date.now();if(S===null&&(S=y),y-S>=p){t();return}u!==null&&clearTimeout(u),u=setTimeout(t,r)}return n=l(),window.addEventListener("resize",T),()=>{window.removeEventListener("resize",T),u!==null&&(clearTimeout(u),u=null)}}var Je=50,Qe=2,ke=3;function He(e){let{track:f,state:i}=e,d=null,r=ke;function p(){let b=Math.ceil(e.config.slidesPerView)+Qe;return Math.max(ke,Math.ceil(b/e.slideCount))}function n(){return r*e.slideCount*i.slideWidthPx}function u(){return(r+1)*e.slideCount*i.slideWidthPx}function S(b){i.isProgrammaticScroll=!0,i.suppressSettleEmit=!0,f.style.scrollBehavior="auto",f.style.scrollSnapType="none",e.setScrollPos(b),requestAnimationFrame(()=>{requestAnimationFrame(()=>{f.style.scrollBehavior="",f.style.scrollSnapType="",i.isProgrammaticScroll=!1})})}function l(){if(!i.loopModeActive||i.isProgrammaticScroll||i.isDragging)return;let b=i.slideWidthPx;if(b===0)return;let s=e.slideCount*b,c=n(),m=u(),v=e.getScrollPos(),E=2;if(v<c-E||v>=m+E){for(;v<c;)v+=s;for(;v>=m;)v-=s;S(v)}}function t(){d!==null&&clearTimeout(d),d=setTimeout(()=>{d=null,l()},Je)}function T(){d!==null&&(clearTimeout(d),d=null)}function y(){let b=i.slideWidthPx;if(b===0)return i.currentIndex;let s=e.getScrollPos()-n()+e.getAlignmentOffset();return(Math.round(s/b)%e.slideCount+e.slideCount)%e.slideCount}function I(b){if(!e.isLoopEnabled()){i.loopModeActive&&M(b);return}r=p(),f.querySelectorAll(`[${W}]`).forEach(m=>m.remove());let{slides:s,slideCount:c}=e;for(let m=0;m<r;m++)for(let v=c-1;v>=0;v--){let E=s[v].cloneNode(!0);E.setAttribute(W,""),E.removeAttribute(Z),f.prepend(E)}for(let m=0;m<r;m++)for(let v=0;v<c;v++){let E=s[v].cloneNode(!0);E.setAttribute(W,""),E.removeAttribute(Z),f.append(E)}i.loopModeActive=!0,e.applySnapAlignment(),requestAnimationFrame(()=>{e.recalcSlideMetrics();let m=e.normalizeIndex(b);i.currentIndex=m;let v=i.slideWidthPx;if(v===0)return;let h=n()+m*v-e.getAlignmentOffset();i.isProgrammaticScroll=!0,i.suppressSettleEmit=!0,f.style.scrollBehavior="auto",f.style.scrollSnapType="none",e.setScrollPos(h),requestAnimationFrame(()=>{requestAnimationFrame(()=>{f.style.scrollBehavior="",f.style.scrollSnapType="",i.isProgrammaticScroll=!1})})})}function M(b){T(),f.querySelectorAll(`[${W}]`).forEach(s=>s.remove()),i.loopModeActive=!1,e.recalcSlideMetrics(),i.currentIndex=Math.max(0,Math.min(b,e.getMaxIndex())),S(e.getScrollPosForIndex(i.currentIndex))}return{getLoopRealStart:n,getLoopRealEnd:u,getLoopIndexFromScroll:y,instantScrollTo:S,teleportIfNeeded:l,scheduleTeleport:t,setupLoopTrack:I,teardownLoopTrack:M,cancelTeleport:T}}function Re(e,f,i,d,r){let{container:p,track:n,state:u}=e,S=!1,l=!1;function t(s){return e.isVertical()?s.clientY:s.clientX}function T(){return e.config.direction==="rtl"?-1:1}function y(s){if(s.button!==0||s.pointerType==="touch"||e.config.noDrag&&s.target.closest(e.config.noDrag))return;l=!1;let c=T(),m=t(s),v=e.getScrollPos(),E=v,h=null,C=0,F=m,L=performance.now(),P=!1,_=u.currentIndex;function z(){h=null,e.setScrollPos(E)}function K(D){let R=t(D);if(!P){if(Math.abs(R-m)<Ie)return;P=!0,l=!0,n.setPointerCapture(D.pointerId),u.isDragging=!0,u.suppressSettleEmit=!1,n.style.scrollBehavior="auto",n.style.scrollSnapType="none",p.classList.add("aero-slider--dragging"),e.emit("dragStart",{index:_}),d()}D.preventDefault(),E=v+(m-R)*c,h===null&&(h=requestAnimationFrame(z));let V=performance.now(),k=V-L;if(k>0){if(k<100){let H=(F-R)*c/k;C=me*H+(1-me)*C}else C*=.5;F=R,L=V}}function O(){if(n.removeEventListener("pointermove",K),n.removeEventListener("pointerup",O),n.removeEventListener("pointercancel",O),!P)return;u.isDragging=!1,p.classList.remove("aero-slider--dragging"),h!==null&&(cancelAnimationFrame(h),h=null,e.setScrollPos(E));let D=performance.now()-L;D>50&&(C*=Math.max(0,1-D/200));let R=e.getSlideSize();if(n.style.scrollBehavior="",R>0)if(u.loopModeActive){f.teleportIfNeeded();let V=f.getLoopRealStart(),k=e.getScrollPos(),H=e.getAlignmentOffset(),q,U,le=k-V+C*pe+H;q=Math.round(le/R),U=V+q*R-H,u.isProgrammaticScroll=!0,u.suppressSettleEmit=!0,e.scrollToPos(U,"smooth");let J=e.normalizeIndex(q);J!==u.currentIndex&&(u.currentIndex=J,e.emit("slideChange",{index:u.currentIndex}),e.refreshPagination(),e.refreshNavState())}else{let V=e.getScrollPos()+C*pe,k=e.getIndexFromScrollPos(V);i(k)}e.emit("dragEnd",{index:u.currentIndex,fromIndex:_}),e.config.autoplay&&r()}n.addEventListener("pointermove",K),n.addEventListener("pointerup",O),n.addEventListener("pointercancel",O)}function I(s){l&&(s.preventDefault(),s.stopPropagation(),l=!1)}function M(s){s.preventDefault()}function b(s){s!==S&&(s?(n.addEventListener("pointerdown",y),n.addEventListener("click",I,{capture:!0}),n.addEventListener("dragstart",M),S=!0):(n.removeEventListener("pointerdown",y),n.removeEventListener("click",I,{capture:!0}),n.removeEventListener("dragstart",M),S=!1))}return{setEnabled:b,isActive:()=>S}}function Oe(e,f,i){let d=null,r=null,p=i,n=f;function u(){d&&(d.removeEventListener("click",p),d=null),r&&(r.removeEventListener("click",n),r=null)}function S(){u(),d=e.container.querySelector(".aero-slider__nav--prev"),r=e.container.querySelector(".aero-slider__nav--next");let t=e.config.direction==="rtl";p=t?f:i,n=t?i:f,d&&d.addEventListener("click",p),r&&r.addEventListener("click",n),l()}function l(){let t=e.getMaxIndex(),T=t>0,y=e.config.direction==="rtl",I=!T||!e.isLoopEnabled()&&e.state.currentIndex===0,M=!T||!e.isLoopEnabled()&&e.state.currentIndex>=t;d&&(d.disabled=y?M:I),r&&(r.disabled=y?I:M)}return{build:S,clear:u,refresh:l}}function Ne(e,f){let i=null,d=null,r=null,p=[],n=!1,u=10,S=8;function l(s){let c=s.target.closest(".aero-slider__dot");if(!c||!i)return;let m=c.getAttribute("data-slide-index");m!==null&&f(Number(m))}function t(){if(i){i.removeEventListener("click",l),d?.remove(),d=null,r&&(r.style.display="");let s=i.querySelectorAll(".aero-slider__dot");for(let c=1;c<s.length;c++)s[c]?.remove();i.querySelectorAll(".aero-slider__pagination-label").forEach(c=>c.remove()),i=null}r=null,p=[],n=!1}function T(){return e.isLoopEnabled()?e.slideCount:e.getMaxIndex()+1}function y(){if(i=e.container.querySelector(".aero-slider__pagination"),!i||(r=i.querySelector(".aero-slider__dot"),!r))return;r.style.display==="none"&&(r.style.display=""),r.style.transform="",r.style.opacity="";let c=getComputedStyle(r),m=parseFloat(c.width);u=m>0?m:r.getBoundingClientRect().width||10;let v=getComputedStyle(i);S=parseInt(v.gap,10)||8,i.setAttribute("role","tablist"),i.addEventListener("click",l);let E=T(),h=e.config.maxDots;n=h>0&&E>h,d?.remove();let C=i.querySelectorAll(".aero-slider__dot");for(let L=1;L<C.length;L++)C[L]?.remove();if(i.querySelectorAll(".aero-slider__pagination-label").forEach(L=>L.remove()),n){i.classList.add("aero-slider__pagination--windowed");let L=h*u+(h-1)*S;i.style.setProperty("--pagination-width",`${L}px`),d=document.createElement("div"),d.className="aero-slider__pagination-track",r.style.display="none";for(let P=0;P<E;P++){let _=r.cloneNode(!0);_.style.display="",d.appendChild(_)}i.appendChild(d)}else{i.classList.remove("aero-slider__pagination--windowed"),i.style.removeProperty("--pagination-width"),r.style.display="";for(let L=1;L<E;L++){let P=r.cloneNode(!0);i.appendChild(P)}}p=Array.from((n&&d?d:i).querySelectorAll(".aero-slider__dot")),p.forEach((L,P)=>{L.setAttribute("role","tab"),L.setAttribute("data-slide-index",String(P)),L.setAttribute("aria-label",`Go to slide ${P+1}`)}),b()}function I(s,c,m,v){if(s<0||s>=c)return"aero-slider__dot--hidden";let E=s===0,h=s===c-1,C=s===1,F=s===c-2;return E&&!m?"aero-slider__dot--edge":C&&!m?"aero-slider__dot--near-edge":h&&!v?"aero-slider__dot--edge":F&&!v?"aero-slider__dot--near-edge":null}function M(s){s.classList.remove("aero-slider__dot--hidden","aero-slider__dot--edge","aero-slider__dot--near-edge")}function b(){let s=T(),c=e.state.currentIndex,m=e.config.maxDots;if(n&&m>0&&d){let v=Math.floor(m/2),E=u+S,h=c-v;h=Math.max(0,Math.min(h,s-m)),d.style.setProperty("--track-offset",`${-h*E}px`);let C=h===0,F=h>=s-m;p.forEach((L,P)=>{let _=P===c;L.classList.toggle("aero-slider__dot--active",_),L.setAttribute("aria-selected",String(_)),M(L);let z=I(P-h,m,C,F);z&&L.classList.add(z)})}else p.forEach((v,E)=>{let h=E===c;v.classList.toggle("aero-slider__dot--active",h),v.setAttribute("aria-selected",String(h)),M(v)})}return{build:y,clear:t,refresh:b}}function Fe(e,f,i){let d=!1;function r(n){let u=e.config.direction;u==="ttb"?n.key==="ArrowUp"?(n.preventDefault(),i()):n.key==="ArrowDown"&&(n.preventDefault(),f()):u==="rtl"?n.key==="ArrowRight"?(n.preventDefault(),i()):n.key==="ArrowLeft"&&(n.preventDefault(),f()):n.key==="ArrowLeft"?(n.preventDefault(),i()):n.key==="ArrowRight"&&(n.preventDefault(),f())}function p(n){n!==d&&(n?(e.container.setAttribute("tabindex","0"),e.container.addEventListener("keydown",r),d=!0):(e.container.removeAttribute("tabindex"),e.container.removeEventListener("keydown",r),d=!1))}return{setEnabled:p}}function ze(e,f){let i=null,d=!1,r=null;function p(){e.config.autoplay&&(n(),i=setInterval(()=>{if(!e.state.loopModeActive&&e.state.currentIndex>=e.getMaxIndex()){n();return}f()},e.config.autoplayInterval),e.emit("autoplayStart",{}))}function n(){i!==null&&(clearInterval(i),i=null,e.emit("autoplayStop",{}))}function u(){n()}function S(){e.config.autoplay&&p()}function l(){r!==null&&(clearTimeout(r),r=null),n()}function t(){e.config.autoplay&&(r=setTimeout(()=>{r=null,e.config.autoplay&&p()},1e3))}function T(y){y!==d&&(y?(e.container.addEventListener("mouseenter",u),e.container.addEventListener("mouseleave",S),e.track.addEventListener("touchstart",l,{passive:!0}),e.track.addEventListener("touchend",t,{passive:!0}),e.track.addEventListener("touchcancel",t,{passive:!0}),d=!0):(e.container.removeEventListener("mouseenter",u),e.container.removeEventListener("mouseleave",S),e.track.removeEventListener("touchstart",l),e.track.removeEventListener("touchend",t),e.track.removeEventListener("touchcancel",t),r!==null&&(clearTimeout(r),r=null),d=!1))}return{start:p,pause:n,setHoverPause:T}}var ie=new WeakMap;function et(e){let f=ie.get(e);return f||(f=document.createElement("div"),f.style.cssText="position:absolute;visibility:hidden;pointer-events:none;height:0;padding:0;margin:0;border:0;top:0;left:0;",e.appendChild(f),ie.set(e,f)),f}function Ve(e){ie.get(e)?.remove(),ie.delete(e)}function ge(e,f,i){let d=e.trim();if(!d||d==="0"||d==="0px")return 0;let r=d.match(/^(-?[\d.]+)px$/);if(r)return parseFloat(r[1]);let p=d.match(/^(-?[\d.]+)rem$/);if(p){let S=parseFloat(getComputedStyle(document.documentElement).fontSize)||16;return parseFloat(p[1])*S}if(d.endsWith("%")){let S=parseFloat(d);return Number.isFinite(S)?S/100*i:0}let n=et(f);n.style.width=d;let u=n.offsetWidth;return n.style.width="",u||0}function We(e,f,i,d,r,p=!0){if(i<=0||d<=0)return 0;let n=i;if(p){let S=f.getPropertyValue("--aero-layout-width").trim()||"100%";n=S==="100%"||S==="100vw"?i:ge(S,e,i)}let u=(n-r*(d-1))/d;return u>0?u+r:0}function qe(e,f={}){let i=e,d=e.querySelector(".aero-slider__track");if(!d)throw new Error("aero-slider: missing .aero-slider__track");let r=d,p=Array.from(r.children).filter(o=>!o.hasAttribute(W)),n=p.length;if(n===0)throw new Error("aero-slider: no slides found");p.forEach((o,a)=>o.setAttribute(Z,String(a)));let u=-1;function S(){u=-1,t.slideWidthPx=0,t.viewportSizePx=0,t.trackScrollSizePx=0}let l={...we,...f,...re},t={currentIndex:0,isDragging:!1,isDestroyed:!1,loopModeActive:!1,isProgrammaticScroll:!1,suppressSettleEmit:!1,slideWidthPx:0,viewportSizePx:0,trackScrollSizePx:0},T=null,y=null,I=null,M=null,b=null,s=typeof window<"u"?window.innerWidth:0;function c(o,a){e.dispatchEvent(new CustomEvent(`aero:${o}`,{detail:a,bubbles:!0}))}function m(){return l.direction==="ttb"}let v=null;function E(){if(v!==null)return v;let o=document.createElement("div"),a=document.createElement("div");o.dir="rtl",o.style.width="4px",o.style.height="1px",o.style.position="absolute",o.style.top="-9999px",o.style.overflow="scroll",o.style.visibility="hidden",a.style.width="8px",a.style.height="1px",o.appendChild(a),document.body.appendChild(o);let g="reverse";return o.scrollLeft>0?g="default":(o.scrollLeft=1,o.scrollLeft===0&&(g="negative")),document.body.removeChild(o),v=g,g}function h(){return u>=0||(u=Math.max(0,R()-D())),u}function C(){return l.alignment!=="left"||F()?Math.max(0,n-1):Math.max(0,Math.floor(n-l.slidesPerView))}function F(){return l.slidesPerView%1!==0}function L(){return l.loop&&C()>0}function P(){return l.perMove>0?l.perMove:1}function _(o){let a=C();return L()?(Math.trunc(o)%n+n)%n:Math.max(0,Math.min(o,a))}function z(){if(l.direction==="rtl"){let o=h();switch(E()){case"default":return o-r.scrollLeft;case"negative":return-r.scrollLeft;default:return r.scrollLeft}}return l.direction==="ttb"?r.scrollTop:r.scrollLeft}function K(o){if(l.direction==="rtl"){let a=h();switch(E()){case"default":r.scrollLeft=a-o;break;case"negative":r.scrollLeft=-o;break;default:r.scrollLeft=o;break}}else l.direction==="ttb"?r.scrollTop=o:r.scrollLeft=o}function O(o,a="auto"){if(l.direction==="ttb")r.scrollTo({top:o,behavior:a});else if(l.direction==="rtl"){let g=h(),x=E()==="default"?g-o:E()==="negative"?-o:o;r.scrollTo({left:x,behavior:a})}else r.scrollTo({left:o,behavior:a})}function D(){return t.viewportSizePx>0?t.viewportSizePx:m()?r.clientHeight:r.clientWidth}function R(){return t.trackScrollSizePx>0?t.trackScrollSizePx:m()?r.scrollHeight:r.scrollWidth}function V(){let o=H();if(o<=0)return D();let g=(o-l.gap)*l.slidesPerView+l.gap*(l.slidesPerView-1);return g>0?g:D()}function k(){let o=H();if(o===0||l.alignment==="left")return 0;let a=V(),g=o-l.gap;return l.alignment==="center"?(a-g)/2:a-g}function H(){return t.slideWidthPx>0?t.slideWidthPx:0}function q(){S();let o=getComputedStyle(e),a=parseFloat(o.getPropertyValue("--slides-per-view")?.trim()||"")||re.slidesPerView,g=o.getPropertyValue("--slide-gap")?.trim()||"0px",x=o.getPropertyValue("--slide-aspect")?.trim()||re.aspectRatio;m()?(t.viewportSizePx=r.clientHeight,t.trackScrollSizePx=r.scrollHeight):(t.viewportSizePx=r.clientWidth,t.trackScrollSizePx=r.scrollWidth);let A=ge(g,e,t.viewportSizePx||re.gap);l.slidesPerView=a,l.gap=A,l.aspectRatio=x,t.slideWidthPx=We(e,o,t.viewportSizePx,a,A,!m())}function U(o){let a=H();if(a===0)return 0;let g=R()-D(),x=o*a-k();return t.loopModeActive?x:g<=0?0:Math.max(0,Math.min(x,g))}function Se(o){let a=H();return a===0?0:w.getLoopRealStart()+o*a-k()}let le=5;function J(o){let a=H();if(a===0)return t.currentIndex;let g=t.loopModeActive?n-1:C(),x=R()-D();if(x<=0)return 0;if(!t.loopModeActive){if(o<=1)return 0;if(o>=x-1)return g}let A=Math.round((o+k())/a);return Math.max(0,Math.min(A,g))}function Q(){$===null&&(r.style.scrollSnapType="")}function se(){e.setAttribute("data-aero-alignment",l.alignment)}function ye(){e.classList.remove("aero-slider--rtl","aero-slider--vertical"),e.removeAttribute("dir"),l.direction==="rtl"?(e.setAttribute("dir","rtl"),e.classList.add("aero-slider--rtl")):l.direction==="ttb"&&e.classList.add("aero-slider--vertical")}let X=new Set;function Ee(){let o=new Set,a=Math.ceil(l.slidesPerView);for(let g=0;g<a;g++){let x=t.currentIndex+g;if(t.loopModeActive)x=(x%n+n)%n;else if(x>=n)break;o.add(x)}return o}function oe(){let o=Ee();for(let a of X)o.has(a)||c("hidden",{index:a});for(let a of o)X.has(a)||c("visible",{index:a});X.clear();for(let a of o)X.add(a)}let G={container:e,track:r,get slides(){return p},get slideCount(){return n},get config(){return l},state:t,emit:c,getSlideSize:H,recalcSlideMetrics:q,normalizeIndex:_,getMaxIndex:C,getEffectivePerMove:P,isLoopEnabled:L,isFractionalView:F,isVertical:m,getAlignmentOffset:k,getLayoutSize:V,getViewportSize:D,getScrollPos:z,setScrollPos:K,scrollToPos:O,getScrollPosForIndex:U,getIndexFromScrollPos:J,refreshPagination:()=>N.refresh(),refreshNavState:()=>Y.refresh(),applySnapAlignment:Q},w=He(G),Y=Oe(G,ne,ce),N=Ne(G,te),ae=Fe(G,ne,ce),B=ze(G,ne),de=Re(G,w,te,B.pause,B.start);function ee(){if(t.isDragging||t.isProgrammaticScroll)return;let o=t.loopModeActive?w.getLoopIndexFromScroll():J(z());o!==t.currentIndex&&(t.currentIndex=o,c("slideChange",{index:t.currentIndex}),N.refresh(),Y.refresh(),oe())}function Ye(){if(y=null,t.isProgrammaticScroll=!1,$===null&&(r.style.scrollSnapType=""),t.suppressSettleEmit){t.suppressSettleEmit=!1,t.loopModeActive&&w.teleportIfNeeded(),N.refresh(),Y.refresh(),ee();return}t.loopModeActive&&w.teleportIfNeeded(),ee()}function be(){t.loopModeActive&&!t.isProgrammaticScroll&&!t.isDragging&&w.scheduleTeleport(),y!==null&&clearTimeout(y),y=setTimeout(Ye,Ce),T===null&&(T=requestAnimationFrame(()=>{T=null,ee()}))}let $=null;function he(){t.isDragging||(t.suppressSettleEmit=!1,r.style.scrollSnapType="none",$!==null&&clearTimeout($),$=setTimeout(()=>{$=null,r.style.scrollSnapType=""},Pe))}function Le(){if(q(),t.loopModeActive){let o=H();if(o>0){let g=w.getLoopRealStart()+t.currentIndex*o-k();K(g)}}else K(U(t.currentIndex))}function Te(){t.isDestroyed||window.innerWidth!==s&&(s=window.innerWidth,M===null&&(r.style.scrollSnapType="none",t.isProgrammaticScroll=!0),b===null&&(b=requestAnimationFrame(()=>{b=null,t.isDestroyed||Le()})),M!==null&&clearTimeout(M),M=setTimeout(()=>{M=null,!t.isDestroyed&&(Le(),t.isProgrammaticScroll=!1,Q())},ve))}let $e=["--slides-per-view","--slide-gap","--slide-aspect","--aero-layout-width"];function Ke(){I?.(),I=De(e,$e,()=>{t.isDestroyed||(c("resize",{}),Me(),c("resized",{}))},{debounceMs:ve,maxWaitMs:_e})}function ne(){t.isDestroyed||te(_(t.currentIndex+P()))}function ce(){t.isDestroyed||te(_(t.currentIndex-P()))}function te(o){if(t.isDestroyed)return;let a=_(o),g=H();if(g!==0){if(a!==t.currentIndex&&(t.currentIndex=a,c("slideChange",{index:t.currentIndex}),N.refresh(),Y.refresh(),oe()),t.loopModeActive){w.cancelTeleport(),w.teleportIfNeeded();let x=w.getLoopIndexFromScroll(),A=(a-x+n)%n,j=A-n,Ae=Math.abs(j)<A?j:A;if(Ae===0){let xe=Se(a)-z();if(Math.abs(xe)<=le)return;t.suppressSettleEmit=!0,t.isProgrammaticScroll=!0,O(z()+xe,"smooth");return}t.suppressSettleEmit=!0,t.isProgrammaticScroll=!0,O(z()+Ae*g,"smooth");return}t.suppressSettleEmit=!0,t.isProgrammaticScroll=!0,O(U(a),"smooth")}}function Me(o){let a={...l};if(o&&Object.assign(l,o),a.direction!==l.direction&&ye(),q(),de.setEnabled(l.draggable),ae.setEnabled(!0),B.setHoverPause(l.autoplay),(a.slidesPerView!==l.slidesPerView||a.loop!==l.loop||a.maxDots!==l.maxDots||a.perMove!==l.perMove||a.alignment!==l.alignment)&&(N.clear(),N.build()),(a.autoplay!==l.autoplay||a.autoplayInterval!==l.autoplayInterval||a.loop!==l.loop)&&(l.autoplay?B.start():B.pause()),a.loop!==l.loop?L()?w.setupLoopTrack(t.currentIndex):w.teardownLoopTrack(t.currentIndex):t.loopModeActive&&a.slidesPerView!==l.slidesPerView&&w.setupLoopTrack(t.currentIndex),se(),Q(),!t.loopModeActive){let g=_(t.currentIndex);t.currentIndex=g,O(U(g))}ee(),N.refresh(),Y.refresh(),oe()}function ue(){if(!t.isDestroyed&&(t.loopModeActive&&w.teardownLoopTrack(t.currentIndex),p=Array.from(r.children).filter(o=>!o.hasAttribute(W)),n=p.length,n!==0)){if(p.forEach((o,a)=>{o.setAttribute(Z,String(a)),o.classList.add("aero-slider__slide")}),q(),L()&&w.setupLoopTrack(t.currentIndex),se(),Q(),!t.loopModeActive){let o=_(t.currentIndex);t.currentIndex=o,O(U(o))}N.clear(),N.build(),Y.build(),ee(),oe()}}function Xe(o,a){if(t.isDestroyed)return;let g=Array.isArray(o)?o:[o];t.loopModeActive&&w.teardownLoopTrack(t.currentIndex);let x=Array.from(r.children).filter(A=>!A.hasAttribute(W));if(a!==void 0&&a<x.length){let A=x[a]??null;for(let j of g)r.insertBefore(j,A)}else for(let A of g)r.appendChild(A);ue()}function Ge(o){if(t.isDestroyed)return;let a=Array.isArray(o)?o:[o];t.loopModeActive&&w.teardownLoopTrack(t.currentIndex);let g=Array.from(r.children).filter(A=>!A.hasAttribute(W)),x=[...a].sort((A,j)=>j-A);for(let A of x)A>=0&&A<g.length&&g[A].remove();ue()}function je(){t.isDestroyed||(c("destroy",{}),t.isDestroyed=!0,B.pause(),t.loopModeActive&&w.teardownLoopTrack(t.currentIndex),w.cancelTeleport(),t.isProgrammaticScroll=!1,I?.(),I=null,window.removeEventListener("resize",Te),M!==null&&(clearTimeout(M),M=null),b!==null&&(cancelAnimationFrame(b),b=null),r.removeEventListener("scroll",be),r.removeEventListener("wheel",he),$!==null&&clearTimeout($),y!==null&&clearTimeout(y),de.setEnabled(!1),ae.setEnabled(!1),B.setHoverPause(!1),T!==null&&cancelAnimationFrame(T),Y.clear(),N.clear(),e.removeAttribute("aria-roledescription"),e.removeAttribute("dir"),e.classList.remove("aero-slider--dragging","aero-slider--rtl","aero-slider--vertical","aero-slider--ready"),e.removeAttribute("data-aero-defer-visibility"),Ve(e),i.aeroSlider===fe&&delete i.aeroSlider)}e.removeAttribute("data-aero-defer-visibility"),e.classList.add("aero-slider"),e.setAttribute("aria-roledescription","carousel"),r.classList.add("aero-slider__track");for(let o of p)o.classList.add("aero-slider__slide");ye(),q(),se(),Q(),r.addEventListener("scroll",be,{passive:!0}),r.addEventListener("wheel",he,{passive:!0}),window.addEventListener("resize",Te),L()?w.setupLoopTrack(0):K(0),Ke(),de.setEnabled(l.draggable),ae.setEnabled(!0),B.setHoverPause(l.autoplay),Y.build(),N.build(),l.autoplay&&B.start();let Ze=Ee();for(let o of Ze)X.add(o);for(let o of X)c("visible",{index:o});let fe={get element(){return e},next:ne,prev:ce,goTo:te,destroy:je,update:Me,refresh:ue,add:Xe,remove:Ge,get currentIndex(){return t.currentIndex},get slideCount(){return n}};return i.aeroSlider=fe,e.classList.add("aero-slider--ready"),c("ready",{}),fe}var Be="aero-slider__thumb--active";function tt(e,f,i){e.querySelectorAll(":scope > *").forEach(r=>{let p=i(r);r.classList.toggle(Be,p===f)})}function Ue(e,f,i){let d=f.element.querySelector(".aero-slider__track");if(!d)return()=>{};let r=d,p=i?.loop??!0;f.update({draggable:!1,loop:p});let n=Array.from(r.children).filter(s=>s.hasAttribute("data-aero-slider-index"));n.sort((s,c)=>Number(s.getAttribute("data-aero-slider-index"))-Number(c.getAttribute("data-aero-slider-index")));let u=n.length,S=Array.from(r.children).indexOf(n[0]??r),l=[];function t(s){let c=s.getAttribute("data-aero-slider-index");if(c!==null)return Number(c);let m=Array.from(r.children).indexOf(s);return m<S?m%u:(m-S-u)%u}let T=e.currentIndex;function y(s){T=s,tt(r,T,t)}function I(s){y(s),f.goTo(s),e.goTo(s)}function M(s){y(s),f.goTo(s)}Array.from(r.children).forEach(s=>{let c=s,m=()=>{let v=t(c);I(v)};c.addEventListener("click",m),c.style.cursor="pointer",l.push({el:c,fn:m})});let b=s=>{let{index:c}=s.detail;c!==T&&M(c)};return e.element.addEventListener("aero:slideChange",b),M(e.currentIndex),()=>{l.forEach(({el:s,fn:c})=>s.removeEventListener("click",c)),r.querySelectorAll(":scope > *").forEach(s=>s.classList.remove(Be)),e.element.removeEventListener("aero:slideChange",b)}}typeof window<"u"&&(window.AeroSlider={createSlider:qe,syncThumbnails:Ue});export{qe as createSlider,Ue as syncThumbnails};
1
+ var _e={loop:!1,autoplay:!1,autoplayInterval:5e3,draggable:!0,alignment:"center",maxDots:0,noDrag:"",perMove:0,direction:"ltr"},ie={slidesPerView:1,gap:0,aspectRatio:"16 / 9"},De=5,Se=.3,ye=80,He=250,Re=300,be=100,ke=250,X="data-aero-slider-index",V="data-aero-slider-clone";function Fe(e,c,i,s={}){let t=s.debounceMs??100,v=s.maxWaitMs??250,o="",u=null,g=null;function a(){let E=getComputedStyle(e);return c.map(P=>E.getPropertyValue(P).trim()).join("\0")}function r(){u!==null&&(clearTimeout(u),u=null),g=null;let E=a();E!==o&&(o=E,i())}function A(){let E=Date.now();if(g===null&&(g=E),E-g>=v){r();return}u!==null&&clearTimeout(u),u=setTimeout(r,t)}return o=a(),window.addEventListener("resize",A),()=>{window.removeEventListener("resize",A),u!==null&&(clearTimeout(u),u=null)}}var it=50,lt=2,Oe=3;function Ne(e){let{track:c,state:i}=e,s=null,t=Oe;function v(){let M=Math.ceil(e.config.slidesPerView)+lt;return Math.max(Oe,Math.ceil(M/e.slideCount))}function o(){return t*e.slideCount*i.slideWidthPx}function u(){return(t+1)*e.slideCount*i.slideWidthPx}function g(M){i.isProgrammaticScroll=!0,i.suppressSettleEmit=!0,c.style.scrollBehavior="auto",c.style.scrollSnapType="none",e.setScrollPos(M),requestAnimationFrame(()=>{requestAnimationFrame(()=>{c.style.scrollBehavior="",c.style.scrollSnapType="",i.isProgrammaticScroll=!1})})}function a(){if(!i.loopModeActive||i.isProgrammaticScroll||i.isDragging)return;let M=i.slideWidthPx;if(M===0)return;let d=e.slideCount*M,f=o(),p=u(),S=e.getScrollPos(),h=2;if(S<f-h||S>=p+h){for(;S<f;)S+=d;for(;S>=p;)S-=d;g(S)}}function r(){s!==null&&clearTimeout(s),s=setTimeout(()=>{s=null,a()},it)}function A(){s!==null&&(clearTimeout(s),s=null)}function E(){return e.getIndexFromScrollPos(e.getScrollPos())}function P(M){if(!e.isLoopEnabled()){i.loopModeActive&&x(M);return}t=v(),c.querySelectorAll(`[${V}]`).forEach(p=>p.remove());let{slides:d,slideCount:f}=e;for(let p=0;p<t;p++)for(let S=f-1;S>=0;S--){let h=d[S].cloneNode(!0);h.setAttribute(V,""),h.removeAttribute(X),c.prepend(h)}for(let p=0;p<t;p++)for(let S=0;S<f;S++){let h=d[S].cloneNode(!0);h.setAttribute(V,""),h.removeAttribute(X),c.append(h)}i.loopModeActive=!0,e.applySnapAlignment(),requestAnimationFrame(()=>{e.recalcSlideMetrics();let p=e.normalizeIndex(M);if(i.currentIndex=p,i.slideWidthPx===0)return;let S=e.getScrollPosForLoopIndex(p);i.isProgrammaticScroll=!0,i.suppressSettleEmit=!0,c.style.scrollBehavior="auto",c.style.scrollSnapType="none",e.setScrollPos(S),requestAnimationFrame(()=>{requestAnimationFrame(()=>{c.style.scrollBehavior="",c.style.scrollSnapType="",i.isProgrammaticScroll=!1})})})}function x(M){A(),c.querySelectorAll(`[${V}]`).forEach(d=>d.remove()),i.loopModeActive=!1,e.recalcSlideMetrics(),i.currentIndex=Math.max(0,Math.min(M,e.getMaxIndex())),g(e.getScrollPosForIndex(i.currentIndex))}return{getLoopRealStart:o,getLoopRealEnd:u,getLoopIndexFromScroll:E,instantScrollTo:g,teleportIfNeeded:a,scheduleTeleport:r,setupLoopTrack:P,teardownLoopTrack:x,cancelTeleport:A}}function ze(e,c,i,s,t){let{container:v,track:o,state:u}=e,g=!1,a=!1;function r(d){return e.isVertical()?d.clientY:d.clientX}function A(){return e.config.direction==="rtl"?-1:1}function E(d){if(d.button!==0||d.pointerType==="touch"||e.config.noDrag&&d.target.closest(e.config.noDrag))return;a=!1;let f=A(),p=r(d),S=e.getScrollPos(),h=S,T=null,C=0,W=p,L=performance.now(),_=!1,D=u.currentIndex;function k(){T=null,e.setScrollPos(h)}function U(H){let N=r(H);if(!_){if(Math.abs(N-p)<De)return;_=!0,a=!0,o.setPointerCapture(H.pointerId),u.isDragging=!0,u.suppressSettleEmit=!1,o.style.scrollBehavior="auto",o.style.scrollSnapType="none",v.classList.add("aero-slider--dragging"),e.emit("dragStart",{index:D}),s()}H.preventDefault(),h=S+(p-N)*f,T===null&&(T=requestAnimationFrame(k));let B=performance.now(),F=B-L;if(F>0){if(F<100){let R=(W-N)*f/F;C=Se*R+(1-Se)*C}else C*=.5;W=N,L=B}}function O(){if(o.removeEventListener("pointermove",U),o.removeEventListener("pointerup",O),o.removeEventListener("pointercancel",O),!_)return;u.isDragging=!1,v.classList.remove("aero-slider--dragging"),T!==null&&(cancelAnimationFrame(T),T=null,e.setScrollPos(h));let H=performance.now()-L;H>50&&(C*=Math.max(0,1-H/200));let N=e.getSlideSize();if(o.style.scrollBehavior="",N>0)if(u.loopModeActive){c.teleportIfNeeded();let B=e.getScrollPos()+C*ye,F=e.getIndexFromScrollPos(B),R=e.normalizeIndex(F),j=e.getScrollPosForLoopIndex(R);u.isProgrammaticScroll=!0,u.suppressSettleEmit=!0,e.scrollToPos(j,"smooth"),R!==u.currentIndex&&(u.currentIndex=R,e.emit("slideChange",{index:u.currentIndex}),e.refreshPagination(),e.refreshNavState())}else{let B=e.getScrollPos()+C*ye,F=e.getIndexFromScrollPos(B);i(F)}e.emit("dragEnd",{index:u.currentIndex,fromIndex:D}),e.config.autoplay&&t()}o.addEventListener("pointermove",U),o.addEventListener("pointerup",O),o.addEventListener("pointercancel",O)}function P(d){a&&(d.preventDefault(),d.stopPropagation(),a=!1)}function x(d){d.preventDefault()}function M(d){d!==g&&(d?(o.addEventListener("pointerdown",E),o.addEventListener("click",P,{capture:!0}),o.addEventListener("dragstart",x),g=!0):(o.removeEventListener("pointerdown",E),o.removeEventListener("click",P,{capture:!0}),o.removeEventListener("dragstart",x),g=!1))}return{setEnabled:M,isActive:()=>g}}function Ve(e,c,i){let s=null,t=null,v=i,o=c;function u(){s&&(s.removeEventListener("click",v),s=null),t&&(t.removeEventListener("click",o),t=null)}function g(){u(),s=e.container.querySelector(".aero-slider__nav--prev"),t=e.container.querySelector(".aero-slider__nav--next");let r=e.config.direction==="rtl";v=r?c:i,o=r?i:c,s&&s.addEventListener("click",v),t&&t.addEventListener("click",o),a()}function a(){let r=e.getMaxIndex(),A=r>0,E=e.config.direction==="rtl",P=!A||!e.isLoopEnabled()&&e.state.currentIndex===0,x=!A||!e.isLoopEnabled()&&e.state.currentIndex>=r;s&&(s.disabled=E?x:P),t&&(t.disabled=E?P:x)}return{build:g,clear:u,refresh:a}}function We(e,c){let i=null,s=null,t=null,v=[],o=!1,u=10,g=8;function a(d){let f=d.target.closest(".aero-slider__dot");if(!f||!i)return;let p=f.getAttribute("data-slide-index");p!==null&&c(Number(p))}function r(){if(i){i.removeEventListener("click",a),s?.remove(),s=null,t&&(t.style.display="");let d=i.querySelectorAll(".aero-slider__dot");for(let f=1;f<d.length;f++)d[f]?.remove();i.querySelectorAll(".aero-slider__pagination-label").forEach(f=>f.remove()),i=null}t=null,v=[],o=!1}function A(){return e.isLoopEnabled()?e.slideCount:e.getMaxIndex()+1}function E(){if(i=e.container.querySelector(".aero-slider__pagination"),!i||(t=i.querySelector(".aero-slider__dot"),!t))return;t.style.display==="none"&&(t.style.display=""),t.style.transform="",t.style.opacity="";let f=getComputedStyle(t),p=parseFloat(f.width);u=p>0?p:t.getBoundingClientRect().width||10;let S=getComputedStyle(i);g=parseInt(S.gap,10)||8,i.setAttribute("role","tablist"),i.addEventListener("click",a);let h=A(),T=e.config.maxDots;o=T>0&&h>T,s?.remove();let C=i.querySelectorAll(".aero-slider__dot");for(let L=1;L<C.length;L++)C[L]?.remove();if(i.querySelectorAll(".aero-slider__pagination-label").forEach(L=>L.remove()),o){i.classList.add("aero-slider__pagination--windowed");let L=T*u+(T-1)*g;i.style.setProperty("--pagination-width",`${L}px`),s=document.createElement("div"),s.className="aero-slider__pagination-track",t.style.display="none";for(let _=0;_<h;_++){let D=t.cloneNode(!0);D.style.display="",s.appendChild(D)}i.appendChild(s)}else{i.classList.remove("aero-slider__pagination--windowed"),i.style.removeProperty("--pagination-width"),t.style.display="";for(let L=1;L<h;L++){let _=t.cloneNode(!0);i.appendChild(_)}}v=Array.from((o&&s?s:i).querySelectorAll(".aero-slider__dot")),v.forEach((L,_)=>{L.setAttribute("role","tab"),L.setAttribute("data-slide-index",String(_)),L.setAttribute("aria-label",`Go to slide ${_+1}`)}),M()}function P(d,f,p,S){if(d<0||d>=f)return"aero-slider__dot--hidden";let h=d===0,T=d===f-1,C=d===1,W=d===f-2;return h&&!p?"aero-slider__dot--edge":C&&!p?"aero-slider__dot--near-edge":T&&!S?"aero-slider__dot--edge":W&&!S?"aero-slider__dot--near-edge":null}function x(d){d.classList.remove("aero-slider__dot--hidden","aero-slider__dot--edge","aero-slider__dot--near-edge")}function M(){let d=A(),f=e.state.currentIndex,p=e.config.maxDots;if(o&&p>0&&s){let S=Math.floor(p/2),h=u+g,T=f-S;T=Math.max(0,Math.min(T,d-p)),s.style.setProperty("--track-offset",`${-T*h}px`);let C=T===0,W=T>=d-p;v.forEach((L,_)=>{let D=_===f;L.classList.toggle("aero-slider__dot--active",D),L.setAttribute("aria-selected",String(D)),x(L);let k=P(_-T,p,C,W);k&&L.classList.add(k)})}else v.forEach((S,h)=>{let T=h===f;S.classList.toggle("aero-slider__dot--active",T),S.setAttribute("aria-selected",String(T)),x(S)})}return{build:E,clear:r,refresh:M}}function Be(e,c,i){let s=!1;function t(o){let u=e.config.direction;u==="ttb"?o.key==="ArrowUp"?(o.preventDefault(),i()):o.key==="ArrowDown"&&(o.preventDefault(),c()):u==="rtl"?o.key==="ArrowRight"?(o.preventDefault(),i()):o.key==="ArrowLeft"&&(o.preventDefault(),c()):o.key==="ArrowLeft"?(o.preventDefault(),i()):o.key==="ArrowRight"&&(o.preventDefault(),c())}function v(o){o!==s&&(o?(e.container.setAttribute("tabindex","0"),e.container.addEventListener("keydown",t),s=!0):(e.container.removeAttribute("tabindex"),e.container.removeEventListener("keydown",t),s=!1))}return{setEnabled:v}}function qe(e,c){let i=null,s=!1,t=null;function v(){e.config.autoplay&&(o(),i=setInterval(()=>{if(!e.state.loopModeActive&&e.state.currentIndex>=e.getMaxIndex()){o();return}c()},e.config.autoplayInterval),e.emit("autoplayStart",{}))}function o(){i!==null&&(clearInterval(i),i=null,e.emit("autoplayStop",{}))}function u(){o()}function g(){e.config.autoplay&&v()}function a(){t!==null&&(clearTimeout(t),t=null),o()}function r(){e.config.autoplay&&(t=setTimeout(()=>{t=null,e.config.autoplay&&v()},1e3))}function A(E){E!==s&&(E?(e.container.addEventListener("mouseenter",u),e.container.addEventListener("mouseleave",g),e.track.addEventListener("touchstart",a,{passive:!0}),e.track.addEventListener("touchend",r,{passive:!0}),e.track.addEventListener("touchcancel",r,{passive:!0}),s=!0):(e.container.removeEventListener("mouseenter",u),e.container.removeEventListener("mouseleave",g),e.track.removeEventListener("touchstart",a),e.track.removeEventListener("touchend",r),e.track.removeEventListener("touchcancel",r),t!==null&&(clearTimeout(t),t=null),s=!1))}return{start:v,pause:o,setHoverPause:A}}var ce=new WeakMap;function st(e){let c=ce.get(e);return c||(c=document.createElement("div"),c.style.cssText="position:absolute;visibility:hidden;pointer-events:none;height:0;padding:0;margin:0;border:0;top:0;left:0;",e.appendChild(c),ce.set(e,c)),c}function Ue(e){ce.get(e)?.remove(),ce.delete(e)}function G(e,c,i){let s=e.trim();if(!s||s==="0"||s==="0px")return 0;let t=s.match(/^(-?[\d.]+)px$/);if(t)return parseFloat(t[1]);let v=s.match(/^(-?[\d.]+)rem$/);if(v){let g=parseFloat(getComputedStyle(document.documentElement).fontSize)||16;return parseFloat(v[1])*g}if(s.endsWith("%")){let g=parseFloat(s);return Number.isFinite(g)?g/100*i:0}let o=st(c);o.style.width=s;let u=o.offsetWidth;return o.style.width="",u||0}function Ye(e,c,i,s,t,v=!0){if(i<=0||s<=0)return 0;let o=i;if(v){let g=c.getPropertyValue("--aero-layout-width").trim()||"100%";o=g==="100%"||g==="100vw"?i:G(g,e,i)}let u=(o-t*(s-1))/s;return u>0?u+t:0}function at(e,c){let i=getComputedStyle(e),s=c?e.clientHeight:e.clientWidth;return c?{start:G(i.scrollPaddingBlockStart||i.scrollPaddingTop||"0",e,s),end:G(i.scrollPaddingBlockEnd||i.scrollPaddingBottom||"0",e,s)}:{start:G(i.scrollPaddingInlineStart||i.scrollPaddingLeft||"0",e,s),end:G(i.scrollPaddingInlineEnd||i.scrollPaddingRight||"0",e,s)}}function dt(e,c,i){if(e.parentElement===c)return i?e.offsetTop:e.offsetLeft;let s=c.getBoundingClientRect(),t=e.getBoundingClientRect();return(i?c.scrollTop:c.scrollLeft)+(i?t.top-s.top:t.left-s.left)}function Ee(e,c,i,s){let t=at(c,s),v=s?c.clientHeight:c.clientWidth,o=dt(e,c,s),u=s?e.offsetHeight:e.offsetWidth;if(i==="center"){let g=t.start+(v-t.start-t.end)/2;return o+u/2-g}return i==="right"?o+u-v+t.end:o-t.start}function $e(e,c={}){let i=e,s=e.querySelector(".aero-slider__track");if(!s)throw new Error("aero-slider: missing .aero-slider__track");let t=s,v=Array.from(t.children).filter(n=>!n.hasAttribute(V)),o=v.length;if(o===0)throw new Error("aero-slider: no slides found");v.forEach((n,l)=>n.setAttribute(X,String(l)));let u=-1;function g(){u=-1,r.slideWidthPx=0,r.viewportSizePx=0,r.trackScrollSizePx=0}let a={..._e,...c,...ie},r={currentIndex:0,isDragging:!1,isDestroyed:!1,loopModeActive:!1,isProgrammaticScroll:!1,suppressSettleEmit:!1,slideWidthPx:0,viewportSizePx:0,trackScrollSizePx:0},A=null,E=null,P=null,x=null,M=null,d=typeof window<"u"?window.innerWidth:0;function f(n,l){e.dispatchEvent(new CustomEvent(`aero:${n}`,{detail:l,bubbles:!0}))}function p(){return a.direction==="ttb"}let S=null;function h(){if(S!==null)return S;let n=document.createElement("div"),l=document.createElement("div");n.dir="rtl",n.style.width="4px",n.style.height="1px",n.style.position="absolute",n.style.top="-9999px",n.style.overflow="scroll",n.style.visibility="hidden",l.style.width="8px",l.style.height="1px",n.appendChild(l),document.body.appendChild(n);let m="reverse";return n.scrollLeft>0?m="default":(n.scrollLeft=1,n.scrollLeft===0&&(m="negative")),document.body.removeChild(n),S=m,m}function T(){return u>=0||(u=Math.max(0,N()-H())),u}function C(){return a.alignment!=="left"||W()?Math.max(0,o-1):Math.max(0,Math.floor(o-a.slidesPerView))}function W(){return a.slidesPerView%1!==0}function L(){return a.loop&&C()>0}function _(){return a.perMove>0?a.perMove:1}function D(n){let l=C();return L()?(Math.trunc(n)%o+o)%o:Math.max(0,Math.min(n,l))}function k(){if(a.direction==="rtl"){let n=T();switch(h()){case"default":return n-t.scrollLeft;case"negative":return-t.scrollLeft;default:return t.scrollLeft}}return a.direction==="ttb"?t.scrollTop:t.scrollLeft}function U(n){if(a.direction==="rtl"){let l=T();switch(h()){case"default":t.scrollLeft=l-n;break;case"negative":t.scrollLeft=-n;break;default:t.scrollLeft=n;break}}else a.direction==="ttb"?t.scrollTop=n:t.scrollLeft=n}function O(n,l="auto"){if(a.direction==="ttb")t.scrollTo({top:n,behavior:l});else if(a.direction==="rtl"){let m=T(),b=h()==="default"?m-n:h()==="negative"?-n:n;t.scrollTo({left:b,behavior:l})}else t.scrollTo({left:n,behavior:l})}function H(){return r.viewportSizePx>0?r.viewportSizePx:p()?t.clientHeight:t.clientWidth}function N(){return r.trackScrollSizePx>0?r.trackScrollSizePx:p()?t.scrollHeight:t.scrollWidth}function B(){let n=R();if(n<=0)return H();let m=(n-a.gap)*a.slidesPerView+a.gap*(a.slidesPerView-1);return m>0?m:H()}function F(){let n=R();if(n===0||a.alignment==="left")return 0;let l=le(0);if(l!==null)return-l;let m=B(),b=n-a.gap;return a.alignment==="center"?(m-b)/2:m-b}function R(){return r.slideWidthPx>0?r.slideWidthPx:0}function j(){g();let n=getComputedStyle(e),l=parseFloat(n.getPropertyValue("--slides-per-view")?.trim()||"")||ie.slidesPerView,m=n.getPropertyValue("--slide-gap")?.trim()||"0px",b=n.getPropertyValue("--slide-aspect")?.trim()||ie.aspectRatio;p()?(r.viewportSizePx=t.clientHeight,r.trackScrollSizePx=t.scrollHeight):(r.viewportSizePx=t.clientWidth,r.trackScrollSizePx=t.scrollWidth);let y=G(m,e,r.viewportSizePx||ie.gap);a.slidesPerView=l,a.gap=y,a.aspectRatio=b,r.slideWidthPx=Ye(e,n,r.viewportSizePx,l,y,!p())}function he(n){let l=n.getAttribute(X);if(l!==null)return Number(l);if(!n.hasAttribute(V))return-1;let m=Array.from(t.children),b=m.indexOf(n),y=m.findIndex(I=>I.hasAttribute(X));return y<0?-1:b<y?b%o:(b-y-o)%o}function Ge(n,l){let m=D(n),b=null,y=1/0;for(let I of Array.from(t.children)){if(he(I)!==m)continue;if(l===void 0)return I;let Z=Ee(I,t,a.alignment,p()),K=Math.abs(Z-l);K<y&&(y=K,b=I)}return b}function le(n,l){let m=Ge(n,l??(r.loopModeActive?k():void 0));return m?Ee(m,t,a.alignment,p()):null}function J(n){let l=le(n);if(l!==null){if(r.loopModeActive)return l;let I=N()-H();return I<=0?0:Math.max(0,Math.min(l,I))}let m=R();if(m===0)return 0;let b=N()-H(),y=n*m-F();return b<=0?0:Math.max(0,Math.min(y,b))}function se(n){let l=le(n,k());if(l!==null)return l;let m=R();return m===0?0:w.getLoopRealStart()+n*m-F()}let je=5;function Le(n){let l=R(),m=r.loopModeActive?o-1:C(),b=N()-H();if(b<=0)return 0;if(!r.loopModeActive){if(n<=1)return 0;if(n>=b-1)return m}let y=0,I=1/0;for(let Z=0;Z<=m;Z++){let K=le(Z,n);if(K===null)continue;let Ce=Math.abs(K-n);Ce<I&&(I=Ce,y=Z)}if(I!==1/0)return y;if(l===0)return r.currentIndex;let oe=Math.round((n+F())/l);return Math.max(0,Math.min(oe,m))}function Ze(n){let l=r.loopModeActive?se(n):J(n);t.style.scrollBehavior="auto",t.style.scrollSnapType="none",U(l),t.style.scrollBehavior=""}function te(){$===null&&(t.style.scrollSnapType="")}function ue(){e.setAttribute("data-aero-alignment",a.alignment)}function Te(){e.classList.remove("aero-slider--rtl","aero-slider--vertical"),e.removeAttribute("dir"),a.direction==="rtl"?(e.setAttribute("dir","rtl"),e.classList.add("aero-slider--rtl")):a.direction==="ttb"&&e.classList.add("aero-slider--vertical")}let Q=new Set;function Me(){let n=new Set,l=Math.ceil(a.slidesPerView);for(let m=0;m<l;m++){let b=r.currentIndex+m;if(r.loopModeActive)b=(b%o+o)%o;else if(b>=o)break;n.add(b)}return n}function ae(){let n=Me();for(let l of Q)n.has(l)||f("hidden",{index:l});for(let l of n)Q.has(l)||f("visible",{index:l});Q.clear();for(let l of n)Q.add(l)}let ee={container:e,track:t,get slides(){return v},get slideCount(){return o},get config(){return a},state:r,emit:f,getSlideSize:R,recalcSlideMetrics:j,normalizeIndex:D,getMaxIndex:C,getEffectivePerMove:_,isLoopEnabled:L,isFractionalView:W,isVertical:p,getAlignmentOffset:F,getLayoutSize:B,getViewportSize:H,getScrollPos:k,setScrollPos:U,scrollToPos:O,getScrollPosForIndex:J,getScrollPosForLoopIndex:se,getIndexFromScrollPos:Le,getLogicalIndexForChild:he,refreshPagination:()=>z.refresh(),refreshNavState:()=>Y.refresh(),applySnapAlignment:te},w=Ne(ee),Y=Ve(ee,de,pe),z=We(ee,ne),fe=Be(ee,de,pe),q=qe(ee,de),me=ze(ee,w,ne,q.pause,q.start);function re(){if(r.isDragging||r.isProgrammaticScroll)return;let n=r.loopModeActive?w.getLoopIndexFromScroll():Le(k());n!==r.currentIndex&&(r.currentIndex=n,f("slideChange",{index:r.currentIndex}),z.refresh(),Y.refresh(),ae())}function Je(){E=null,r.isProgrammaticScroll=!1;let n=r.suppressSettleEmit;n&&(r.suppressSettleEmit=!1,Ze(r.currentIndex),r.loopModeActive&&w.teleportIfNeeded(),z.refresh(),Y.refresh(),re()),$===null&&(t.style.scrollSnapType=""),n||(r.loopModeActive&&w.teleportIfNeeded(),re())}function Ae(){r.loopModeActive&&!r.isProgrammaticScroll&&!r.isDragging&&w.scheduleTeleport(),E!==null&&clearTimeout(E),E=setTimeout(Je,He),A===null&&(A=requestAnimationFrame(()=>{A=null,re()}))}let $=null;function xe(){r.isDragging||(r.suppressSettleEmit=!1,t.style.scrollSnapType="none",$!==null&&clearTimeout($),$=setTimeout(()=>{$=null,t.style.scrollSnapType=""},Re))}function Ie(){j(),r.loopModeActive?U(se(r.currentIndex)):U(J(r.currentIndex))}function Pe(){r.isDestroyed||window.innerWidth!==d&&(d=window.innerWidth,x===null&&(t.style.scrollSnapType="none",r.isProgrammaticScroll=!0),M===null&&(M=requestAnimationFrame(()=>{M=null,r.isDestroyed||Ie()})),x!==null&&clearTimeout(x),x=setTimeout(()=>{x=null,!r.isDestroyed&&(Ie(),r.isProgrammaticScroll=!1,te())},be))}let Qe=["--slides-per-view","--slide-gap","--slide-aspect","--aero-layout-width"];function et(){P?.(),P=Fe(e,Qe,()=>{r.isDestroyed||(f("resize",{}),we(),f("resized",{}))},{debounceMs:be,maxWaitMs:ke})}function de(){r.isDestroyed||ne(D(r.currentIndex+_()))}function pe(){r.isDestroyed||ne(D(r.currentIndex-_()))}function ne(n){if(r.isDestroyed)return;let l=D(n),m=R();if(m!==0){if(l!==r.currentIndex&&(r.currentIndex=l,f("slideChange",{index:r.currentIndex}),z.refresh(),Y.refresh(),ae()),r.loopModeActive){w.cancelTeleport(),w.teleportIfNeeded();let b=w.getLoopIndexFromScroll(),y=(l-b+o)%o,I=y-o,oe=Math.abs(I)<y?I:y;if(oe===0){let K=se(l)-k();if(Math.abs(K)<=je)return;r.suppressSettleEmit=!0,r.isProgrammaticScroll=!0,O(k()+K,"smooth");return}r.suppressSettleEmit=!0,r.isProgrammaticScroll=!0,O(k()+oe*m,"smooth");return}r.suppressSettleEmit=!0,r.isProgrammaticScroll=!0,O(J(l),"smooth")}}function we(n){let l={...a};if(n&&Object.assign(a,n),l.direction!==a.direction&&Te(),j(),me.setEnabled(a.draggable),fe.setEnabled(!0),q.setHoverPause(a.autoplay),(l.slidesPerView!==a.slidesPerView||l.loop!==a.loop||l.maxDots!==a.maxDots||l.perMove!==a.perMove||l.alignment!==a.alignment)&&(z.clear(),z.build()),(l.autoplay!==a.autoplay||l.autoplayInterval!==a.autoplayInterval||l.loop!==a.loop)&&(a.autoplay?q.start():q.pause()),l.loop!==a.loop?L()?w.setupLoopTrack(r.currentIndex):w.teardownLoopTrack(r.currentIndex):r.loopModeActive&&l.slidesPerView!==a.slidesPerView&&w.setupLoopTrack(r.currentIndex),ue(),te(),!r.loopModeActive){let m=D(r.currentIndex);r.currentIndex=m,O(J(m))}re(),z.refresh(),Y.refresh(),ae()}function ve(){if(!r.isDestroyed&&(r.loopModeActive&&w.teardownLoopTrack(r.currentIndex),v=Array.from(t.children).filter(n=>!n.hasAttribute(V)),o=v.length,o!==0)){if(v.forEach((n,l)=>{n.setAttribute(X,String(l)),n.classList.add("aero-slider__slide")}),j(),L()&&w.setupLoopTrack(r.currentIndex),ue(),te(),!r.loopModeActive){let n=D(r.currentIndex);r.currentIndex=n,O(J(n))}z.clear(),z.build(),Y.build(),re(),ae()}}function tt(n,l){if(r.isDestroyed)return;let m=Array.isArray(n)?n:[n];r.loopModeActive&&w.teardownLoopTrack(r.currentIndex);let b=Array.from(t.children).filter(y=>!y.hasAttribute(V));if(l!==void 0&&l<b.length){let y=b[l]??null;for(let I of m)t.insertBefore(I,y)}else for(let y of m)t.appendChild(y);ve()}function rt(n){if(r.isDestroyed)return;let l=Array.isArray(n)?n:[n];r.loopModeActive&&w.teardownLoopTrack(r.currentIndex);let m=Array.from(t.children).filter(y=>!y.hasAttribute(V)),b=[...l].sort((y,I)=>I-y);for(let y of b)y>=0&&y<m.length&&m[y].remove();ve()}function nt(){r.isDestroyed||(f("destroy",{}),r.isDestroyed=!0,q.pause(),r.loopModeActive&&w.teardownLoopTrack(r.currentIndex),w.cancelTeleport(),r.isProgrammaticScroll=!1,P?.(),P=null,window.removeEventListener("resize",Pe),x!==null&&(clearTimeout(x),x=null),M!==null&&(cancelAnimationFrame(M),M=null),t.removeEventListener("scroll",Ae),t.removeEventListener("wheel",xe),$!==null&&clearTimeout($),E!==null&&clearTimeout(E),me.setEnabled(!1),fe.setEnabled(!1),q.setHoverPause(!1),A!==null&&cancelAnimationFrame(A),Y.clear(),z.clear(),e.removeAttribute("aria-roledescription"),e.removeAttribute("dir"),e.classList.remove("aero-slider--dragging","aero-slider--rtl","aero-slider--vertical","aero-slider--ready"),e.removeAttribute("data-aero-defer-visibility"),Ue(e),i.aeroSlider===ge&&delete i.aeroSlider)}e.removeAttribute("data-aero-defer-visibility"),e.classList.add("aero-slider"),e.setAttribute("aria-roledescription","carousel"),t.classList.add("aero-slider__track");for(let n of v)n.classList.add("aero-slider__slide");Te(),j(),ue(),te(),t.addEventListener("scroll",Ae,{passive:!0}),t.addEventListener("wheel",xe,{passive:!0}),window.addEventListener("resize",Pe),L()?w.setupLoopTrack(0):U(0),et(),me.setEnabled(a.draggable),fe.setEnabled(!0),q.setHoverPause(a.autoplay),Y.build(),z.build(),a.autoplay&&q.start();let ot=Me();for(let n of ot)Q.add(n);for(let n of Q)f("visible",{index:n});let ge={get element(){return e},next:de,prev:pe,goTo:ne,destroy:nt,update:we,refresh:ve,add:tt,remove:rt,get currentIndex(){return r.currentIndex},get slideCount(){return o}};return i.aeroSlider=ge,e.classList.add("aero-slider--ready"),f("ready",{}),ge}var Ke="aero-slider__thumb--active";function ct(e,c,i){e.querySelectorAll(":scope > *").forEach(t=>{let v=i(t);t.classList.toggle(Ke,v===c)})}function Xe(e,c,i){let s=c.element.querySelector(".aero-slider__track");if(!s)return()=>{};let t=s,v=i?.loop??!0;c.update({draggable:!1,loop:v});let o=Array.from(t.children).filter(d=>d.hasAttribute("data-aero-slider-index"));o.sort((d,f)=>Number(d.getAttribute("data-aero-slider-index"))-Number(f.getAttribute("data-aero-slider-index")));let u=o.length,g=Array.from(t.children).indexOf(o[0]??t),a=[];function r(d){let f=d.getAttribute("data-aero-slider-index");if(f!==null)return Number(f);let p=Array.from(t.children).indexOf(d);return p<g?p%u:(p-g-u)%u}let A=e.currentIndex;function E(d){A=d,ct(t,A,r)}function P(d){E(d),c.goTo(d),e.goTo(d)}function x(d){E(d),c.goTo(d)}Array.from(t.children).forEach(d=>{let f=d,p=()=>{let S=r(f);P(S)};f.addEventListener("click",p),f.style.cursor="pointer",a.push({el:f,fn:p})});let M=d=>{let{index:f}=d.detail;f!==A&&x(f)};return e.element.addEventListener("aero:slideChange",M),x(e.currentIndex),()=>{a.forEach(({el:d,fn:f})=>d.removeEventListener("click",f)),t.querySelectorAll(":scope > *").forEach(d=>d.classList.remove(Ke)),e.element.removeEventListener("aero:slideChange",M)}}typeof window<"u"&&(window.AeroSlider={createSlider:$e,syncThumbnails:Xe});export{$e as createSlider,Xe as syncThumbnails};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aero-slider",
3
- "version": "1.0.0-beta.8",
3
+ "version": "1.0.0-beta.9",
4
4
  "description": "A lightweight, CSS-first slider library for the modern web",
5
5
  "type": "module",
6
6
  "workspaces": [