@fancyapps/ui
Version:
Robust JavaScript UI Component Library
2 lines • 31.6 kB
JavaScript
/*! License details at fancyapps.com/license */
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.window=e.window||{}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let t=e=>typeof e==`object`&&!!e&&e.constructor===Object&&Object.prototype.toString.call(e)===`[object Object]`,n=e=>e&&e!==null&&e instanceof Element&&`nodeType`in e,r=e=>typeof e==`string`,i=function(e){if(!(e&&e instanceof Element&&e.offsetParent))return!1;let t=!1,n=!1;if(e.scrollWidth>e.clientWidth){let n=window.getComputedStyle(e).overflowX,r=n.indexOf(`hidden`)!==-1,i=n.indexOf(`clip`)!==-1,a=n.indexOf(`visible`)!==-1;t=!r&&!i&&!a}if(e.scrollHeight>e.clientHeight){let t=window.getComputedStyle(e).overflowY,r=t.indexOf(`hidden`)!==-1,i=t.indexOf(`clip`)!==-1,a=t.indexOf(`visible`)!==-1;n=!r&&!i&&!a}return t||n},a=function(e,t=void 0){return!e||e===document.body||t&&e===t?null:i(e)?e:a(e.parentElement,t)},o=(e,t)=>{let n=[];return e.childNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE&&(!t||e.matches(t))&&n.push(e)}),n},s=(e,...n)=>{let r=n.length;for(let i=0;i<r;i++){let r=n[i]||{};Object.entries(r).forEach(([n,r])=>{let i=Array.isArray(r)?[]:{};e[n]||Object.assign(e,{[n]:i}),t(r)?Object.assign(e[n],s(e[n],r)):Array.isArray(r)?Object.assign(e,{[n]:[...r]}):Object.assign(e,{[n]:r})})}return e},c=function(e=0,t=0,n=0){return Math.max(Math.min(t,n),e)},l=function(e=0,t=0,n=0,r=0,i=0,a=!1){let o=(e-t)/(n-t)*(i-r)+r;return a?r<i?c(r,o,i):c(i,o,r):o},u=function(e){var t=new DOMParser().parseFromString(e,`text/html`).body;if(t.childElementCount>1){for(var n=document.createElement(`div`);t.firstChild;)n.appendChild(t.firstChild);return n}let r=t.firstChild;if(r&&!(r instanceof HTMLElement)){var n=document.createElement(`div`);return n.appendChild(r),n}return r},d=(e,t=``)=>{e&&e.classList&&t.split(` `).forEach(t=>{t&&e.classList.add(t)})},f=(e,t=``)=>{e&&e.classList&&t.split(` `).forEach(t=>{t&&e.classList.remove(t)})},p=(e,t=``,n)=>{e&&e.classList&&t.split(` `).forEach(t=>{t&&e.classList.toggle(t,n||!1)})};function m(e){return t(e)||Array.isArray(e)}function h(e,t){let n=Object.keys(e),r=Object.keys(t);return n.length===r.length&&n.every(n=>{let r=e[n],i=t[n];return typeof r==`function`?`${r}`==`${i}`:!m(r)||!m(i)?r===i:h(r,i)})}let g=function(e){for(let t of b)t.getState()===_.Running&&t.tick(S?e-S:0);S=e,x=window.requestAnimationFrame(g)};var _;(function(e){e[e.Initializing=0]=`Initializing`,e[e.Running=1]=`Running`,e[e.Paused=2]=`Paused`,e[e.Completed=3]=`Completed`,e[e.Destroyed=4]=`Destroyed`})(_||={});var v;(function(e){e[e.Spring=0]=`Spring`,e[e.Ease=1]=`Ease`})(v||={});var y;(function(e){e[e.Loop=0]=`Loop`,e[e.Reverse=1]=`Reverse`})(y||={});let b=new Set,x=null,S=0;function C(){let e=_.Initializing,t=v.Ease,n=0,r=0,i=C.Easings.Linear,a=500,o=0,s=0,l=0,u=0,d=1/0,f=.01,p=.01,m=!1,S={},w=null,T={},E={},D={},O=0,k=0,A=y.Loop,j=C.Easings.Linear,M=new Map;function N(e,t){M.set(e,[...M.get(e)||[],t])}function P(e,t){M.has(e)&&M.set(e,M.get(e).filter(e=>e!==t))}function F(e,...t){for(let n of M.get(e)||[])n(...t)}function I(e){return r=0,e?w=setTimeout(()=>{L()},e):L(),V}function L(){e=_.Running,F(`start`,T,E)}function R(){return w&&=(clearTimeout(w),null),e===_.Running&&(e=_.Paused,F(`pause`,T)),V}function z(n){n>50&&(n=50),r+=n;let g=0,b=!1;if(e!==_.Running)return V;if(t===v.Ease){g=c(0,r/a,1),b=g===1;let e=A===y.Reverse?j:i;for(let t in T)T[t]=S[t]+(E[t]-S[t])*e(g)}if(t===v.Spring){let e=n*.001,t=0;for(let n in T){let r=E[n],i=T[n];if(typeof r!=`number`||isNaN(r)||typeof i!=`number`||isNaN(i))continue;if(Math.abs(r-i)<=p){T[n]=r,D[n]=0;continue}D[n]||(typeof o==`object`&&typeof o[n]==`number`?D[n]=o[n]:typeof o==`number`?D[n]=o:D[n]=0);let a=D[n];a=c(Math.abs(d)*-1,a,Math.abs(d));let h=a*s*u,g=Math.abs(r-i)*l,_=((i>r?-1:1)*g-h)/s;a+=_*e,i+=a*e;let v=T[n]>r?i<r:i>r,y=Math.abs(a)<f&&Math.abs(r-i)<=p;m&&v&&(y=!0),y?(i=r,a=0):t++,T[n]=i,D[n]=a}b=!t}let x={...E};return F(`step`,T,S,E,g),b&&e===_.Running&&h(E,x)&&(e=_.Completed,B()),V}function B(){if(e=_.Completed,D={},F(`end`,T),e===_.Completed){if(n<O){if(n++,A===y.Reverse){let e={...S};S={...E},E=e}I(k)}else n=0}return V}let V={getState:function(){return e},easing:function(e){return i=e,t=v.Ease,D={},V},duration:function(e){return a=e,V},spring:function(e={}){t=v.Spring;let{velocity:n,mass:r,tension:i,friction:a,restDelta:c,restSpeed:h,maxSpeed:g,clamp:_}={velocity:0,mass:1,tension:170,friction:26,restDelta:.1,restSpeed:.1,maxSpeed:1/0,clamp:!0,...e};return o=n,s=r,l=i,u=a,p=c,f=h,d=g,m=_,D={},V},isRunning:function(){return e===_.Running},isSpring:function(){return t===v.Spring},from:function(e){return T={...e},V},to:function(e){return E=e,V},repeat:function(e,t=0,n=y.Loop,r){return O=e,k=t,A=n,j=r||i,V},on:function(e,t){return N(e,t),V},off:function(e,t){return P(e,t),V},start:function(t){return h(T,E)||(e=_.Initializing,S={...T},b.add(this),x||=window.requestAnimationFrame(g),I(t)),V},pause:R,end:B,tick:z,getStartValues:function(){return S},getCurrentValues:function(){return T},getCurrentVelocities:function(){return D},getEndValues:function(){return E},destroy:function(){e=_.Destroyed,w&&=(clearTimeout(w),null),S=T=E={},b.delete(this)}};return V}C.destroy=()=>{for(let e of b)e.destroy();x&&=(cancelAnimationFrame(x),null)},C.Easings={Linear:function(e){return e},EaseIn:function(e){return e===0?0:2**(10*e-10)},EaseOut:function(e){return e===1?1:1-2**(-10*e)},EaseInOut:function(e){return e===0?0:e===1?1:e<.5?2**(20*e-10)/2:(2-2**(-20*e+10))/2}};function w(e){return typeof TouchEvent<`u`&&e instanceof TouchEvent}function T(e,t){let n=[],r=w(e)?e[t]:e instanceof MouseEvent&&(t===`changedTouches`||e.type!==`mouseup`)?[e]:[];for(let e of r)n.push({x:e.clientX,y:e.clientY,ts:Date.now()});return n}function E(e){return T(e,`touches`)}function D(e){return T(e,`targetTouches`)}function O(e){return T(e,`changedTouches`)}function k(e){let t=e[0],n=e[1]||t;return{x:(t.x+n.x)/2,y:(t.y+n.y)/2,ts:n.ts}}function A(e){let t=e[0],n=e[1]||e[0];return t&&n?Math.sqrt((n.x-t.x)*(n.x-t.x)+(n.y-t.y)*(n.y-t.y))*-1:0}let j=e=>{e.cancelable&&e.preventDefault()},M={passive:!1},N={panThreshold:5,swipeThreshold:3,ignore:[`textarea`,`input`,`select`,`[contenteditable]`,`[data-selectable]`,`[data-draggable]`]},P=!1,F=!0,I=(e,t)=>{let n={...N,...t},r=!0,i,a=[],o=[],s=[],c=!1,l=!1,u=!1,d=!1,f=0,p=0,m,h=0,g=0,_=0,v=0,y=0,b=0,x=0,S,C=[],w,T,I=new Map;function L(e,t){I.set(e,[...I.get(e)||[],t])}function R(e){let t=A(o),n=A(s),r=t&&n?t/n:0,u={srcEvent:i,isPanRecognized:c,isSwipeRecognized:l,firstTouch:a,previousTouch:s,currentTouch:o,deltaX:h,deltaY:g,offsetX:_,offsetY:v,velocityX:y,velocityY:b,velocity:Math.abs(y)>Math.abs(b)?y:b,angle:x,axis:S,scale:r,center:m};for(let t of I.get(e)||[])t(u)}function z(e){let t=e.target,r=e.composedPath()[0],i=n.ignore.join(`,`),a=e=>e&&e instanceof HTMLElement&&(e.matches(i)||e.closest(i));if(a(t)||a(r))return!1}function B(e){let t=Date.now();if(C=C.filter(e=>!e.ts||e.ts>t-100),e&&C.push(e),y=0,b=0,C.length>3){let e=C[0],t=C[C.length-1];if(e&&t){let n=t.x-e.x,r=t.y-e.y,i=e.ts&&t.ts?t.ts-e.ts:0;i>0&&(y=Math.abs(n)>3?n/(i/30):0,b=Math.abs(r)>3?r/(i/30):0)}}}function V(e){if(!r||z(e)===!1)return;if(typeof MouseEvent<`u`&&e instanceof MouseEvent){if(P)return}else P=!0;if(typeof MouseEvent<`u`&&e instanceof MouseEvent){if(!e.buttons||e.button!==0)return;j(e)}e instanceof MouseEvent&&(window.addEventListener(`mousemove`,ee),window.addEventListener(`mouseup`,te)),window.addEventListener(`blur`,ne),i=e,o=D(e),a=[...o],s=[],p=o.length,m=k(o),p===1&&(c=!1,l=!1,u=!1),p&&B(k(o));let t=Date.now(),n=t-(f||t);d=n>0&&n<=250&&p===1,f=t,clearTimeout(w),R(`start`)}function ee(e){if(!a.length||e.defaultPrevented||z(e)===!1)return;i=e,s=[...o],o=E(e);let t=k(s),r=k(E(e));if(B(r),p=o.length,m=r,s.length===o.length?(h=r.x-t.x,g=r.y-t.y):(h=0,g=0),a.length){let e=k(a);_=r.x-e.x,v=r.y-e.y}if(o.length>1){let e=A(o),t=A(s);Math.abs(e-t)>=.1&&(u=!0,R(`pinch`))}c||(c=Math.abs(_)>=n.panThreshold||Math.abs(v)>=n.panThreshold,c&&(F=!1,clearTimeout(T),T=void 0,x=Math.abs(Math.atan2(v,_)*180/Math.PI),S=x>45&&x<135?`y`:`x`,a=[...o],s=[...o],_=0,v=0,h=0,g=0,window.getSelection()?.removeAllRanges(),R(`panstart`))),c&&(h||g)&&R(`pan`),R(`move`)}function te(e){if(i=e,!a.length)return;let t=D(e),r=O(e);if(p=t.length,m=k(r),r.length&&B(k(r)),s=[...o],o=[...t],a=[...t],p>0)R(`end`),c=!1,l=!1,C=[];else{let e=n.swipeThreshold;(Math.abs(y)>e||Math.abs(b)>e)&&(l=!0),c&&R(`panend`),l&&R(`swipe`),!c&&!l&&!u&&(R(`tap`),d?R(`doubleTap`):w=setTimeout(function(){R(`singleTap`)},250)),R(`end`),re()}}function ne(){clearTimeout(w),re(),c&&R(`panend`),R(`end`)}function re(){P=!1,c=!1,l=!1,d=!1,p=0,C=[],o=[],s=[],a=[],h=0,g=0,_=0,v=0,y=0,b=0,x=0,S=void 0,window.removeEventListener(`mousemove`,ee),window.removeEventListener(`mouseup`,te),window.removeEventListener(`blur`,ne),!F&&!T&&(T=setTimeout(()=>{F=!0,T=void 0},100))}function ie(e){let t=e.target;P=!1,t&&!e.defaultPrevented&&(F||(j(e),e.stopPropagation()))}function H(){return e&&(e.addEventListener(`click`,ie,M),e.addEventListener(`mousedown`,V,M),e.addEventListener(`touchstart`,V,M),e.addEventListener(`touchmove`,ee,M),e.addEventListener(`touchend`,te),e.addEventListener(`touchcancel`,te)),U}let U={init:H,on:function(e,t){return L(e,t),U},off:function(e,t){return I.has(e)&&I.set(e,I.get(e).filter(e=>e!==t)),U},enable:function(){return r=!0,U},disable:function(){return r=!1,a.length&&(l=!1,y=0,b=0,h=0,g=0,R(`end`)),re(),U},isPointerDown:()=>p>0,destroy:function(){clearTimeout(w),clearTimeout(T),T=void 0,e&&(e.removeEventListener(`click`,ie,M),e.removeEventListener(`mousedown`,V,M),e.removeEventListener(`touchstart`,V,M),e.removeEventListener(`touchmove`,ee,M),e.removeEventListener(`touchend`,te),e.removeEventListener(`touchcancel`,te)),e=null,re()}};return U};I.isClickAllowed=()=>F;let L={IMAGE_ERROR:`This image couldn't be loaded. <br /> Please try again later.`,MOVE_UP:`Move up`,MOVE_DOWN:`Move down`,MOVE_LEFT:`Move left`,MOVE_RIGHT:`Move right`,ZOOM_IN:`Zoom in`,ZOOM_OUT:`Zoom out`,TOGGLE_FULL:`Toggle zoom level`,TOGGLE_1TO1:`Toggle zoom level`,ITERATE_ZOOM:`Toggle zoom level`,ROTATE_CCW:`Rotate counterclockwise`,ROTATE_CW:`Rotate clockwise`,FLIP_X:`Flip horizontally`,FLIP_Y:`Flip vertically`,RESET:`Reset`,TOGGLE_FS:`Toggle fullscreen`,ERROR:`Something went wrong. <br /> Please try again later.`,NEXT:`Next page`,PREV:`Previous page`,GOTO:`Go to page #%d`,DOWNLOAD:`Download`,TOGGLE_FULLSCREEN:`Toggle full-screen mode`,TOGGLE_EXPAND:`Toggle full-size mode`,TOGGLE_THUMBS:`Toggle thumbnails`,TOGGLE_AUTOPLAY:`Toggle slideshow`};var R;(function(e){e[e.Init=0]=`Init`,e[e.Ready=1]=`Ready`,e[e.Destroyed=2]=`Destroyed`})(R||={});var z;(function(e){e[e.Loading=0]=`Loading`,e[e.Loaded=1]=`Loaded`,e[e.Error=2]=`Error`})(z||={});let B=e=>{e.cancelable&&e.preventDefault()},V={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:!0,infinite:!0,initialPage:0,l10n:L,rtl:!1,slides:[],slidesPerPage:`auto`,spinnerTpl:`<div class="f-spinner"></div>`,transition:`fade`,tween:{clamp:!0,mass:1,tension:160,friction:25,restDelta:1,restSpeed:1,velocity:0},vertical:!1},ee=0,te,ne,re=e=>document.getElementById(`${e.split(`#`).pop()}`),ie=(e,i={},m={})=>{ee++;let h=0,g={...V},_={...V},v={},y,b,x,S=null,T=null,E=0,D=0,O=0,k=!1,A=!1,j=!1,M=`height`,N=0,P=!0,F,L=0,R=0,z=0,H=0,U,ae=`*`,W=[],G=[],K=new Set,oe=[],q=[],se=0,ce=0,J=0;function Y(e,...t){let n=_[e];return n&&n instanceof Function?n($,...t):n}function le(e,t=[]){let n=Y(`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),e}let ue=new Map;function X(e,...t){let n=[...ue.get(e)||[]];_.on&&n.push(_.on[e]);for(let e of n)e&&e instanceof Function&&e($,...t);e===`click`&&Je(t[0]),e!==`*`&&X(`*`,e,...t)}function de(e,t){for(let n of e instanceof Array?e:[e])ue.set(n,[...ue.get(n)||[],t]);return $}function fe(e,t){for(let n of e instanceof Array?e:[e])ue.has(n)&&ue.set(n,ue.get(n).filter(e=>e!==t));return $}function pe(){if(!e||!n(e))throw Error(`No Element found`);return h!==0&&(it(),h=0),S=e,g=i,window.removeEventListener(`resize`,he),g.breakpoints&&window.addEventListener(`resize`,he),he(),$}function me(e={},n){return it(),h=0,U=void 0,ae=`*`,i=e,g=e,t(n)&&(m=n),he(),$}function he(){let e=s({},V,g),t=``,n=g.breakpoints||{};for(let[r,i]of Object.entries(n))window.matchMedia(r).matches&&(t+=r,s(e,i));if(U===void 0||t!==U){if(U=t,h!==0){let t=q[L]?.slides[0]?.index;t===void 0&&(t=_.initialSlide),e.initialSlide=t,e.slides=[];for(let t of W)t.isVirtual&&e.slides.push(t)}it(),_=e,Y(`enabled`)!==!1&&ge()}}function ge(){h=0,X(`init`),_e(),ve(),ye(),Ue(),h=1,d(S,(Y(`classes`)||{}).isEnabled||``),Q(),ke(),Ce(),Te(),be(),X(`ready`)}function _e(){for(let[e,t]of Object.entries({...m,..._.plugins||{}}))if(e&&!v[e]&&t instanceof Function){let n=t();n.init($,ie),v[e]=n}X(`initPlugins`)}function ve(){if(!S)return;let e=Y(`classes`)||{};d(S,e.container);let n=Y(`style`);if(n&&t(n))for(let[e,t]of Object.entries(n))S.style.setProperty(e,t);T=Array.from(S.querySelectorAll(`.${e.viewport}`)).filter(t=>t.closest(`.${e.container}`)===S).pop()||null,T||(T=document.createElement(`div`),d(T,e.viewport),T.append(...o(S,`.${e.slide}`)),S.insertAdjacentElement(`afterbegin`,T)),S.carousel=$,X(`initLayout`)}function ye(){if(!T)return;let e=Y(`classes`)||{};W=[],[...o(T,`.${e.slide}`)].forEach(e=>{if(e.parentElement){let t=Re({el:e,isVirtual:!1,...e.dataset||{}});X(`createSlide`,t),W.push(t)}}),He();for(let e of W)X(`addSlide`,e);Le(Y(`slides`));for(let e of W){let t=e.el;t?.parentElement===T&&(d(t,_.classes.slide),d(t,e.class),$e(e),X(`attachSlideEl`,e))}X(`initSlides`)}function be(){if(!S||!T)return;S.addEventListener(`click`,qe),document.addEventListener(`mousemove`,xe),ne||(ne=function(e){let t=e.target;if(!(t instanceof Element))return;let n=t.closest(`[data-carousel-target]`)?.dataset?.carouselTarget;n&&(re(n)?.carousel)?.emit(`click`,e)},document.addEventListener(`click`,ne));let e=T.getBoundingClientRect();if(se=e.height,ce=e.width,!x){let e=null;x=new ResizeObserver(()=>{e||=requestAnimationFrame(()=>{Se(),e=null})}),x.observe(T)}}function xe(e){te=e}function Se(){if(h!==1||!T)return;let e=q.length,t=T.getBoundingClientRect(),n=t.height,r=t.width;e>1&&(j&&Math.abs(n-se)<.5||!j&&Math.abs(r-ce)<.5)||(Ue(),Te(),se=n,ce=r,!(j&&!se||!j&&!ce)&&S&&T&&(e!==q.length||!y?.isPointerDown())&&(Y(`dragFree`)&&(k||N>z&&N<H)?(Oe(),Q()):tt(L,{transition:!1})))}function Ce(){b=C().on(`start`,()=>{(!y||!y.isPointerDown())&&(Oe(),Q())}).on(`step`,e=>{let t=N;N=e.pos,N!==t&&(P=!1,Q())}).on(`end`,e=>{y?.isPointerDown()||(N=e.pos,b&&!k&&(N<z||N>H)?b.spring({clamp:!0,mass:1,tension:200,friction:25,velocity:0,restDelta:1,restSpeed:1}).from({pos:N}).to({pos:c(z,N,H)}).start():P||(P=!0,X(`settle`)))})}function we(){let e=Y(`gestures`);!y&&e!==!1&&T&&(y=I(T,e).on(`start`,e=>{if(!b||Y(`gestures`,e)===!1)return;let{srcEvent:t}=e;j&&w(t)&&!a(t.target)&&B(t),b.pause(),b.getCurrentVelocities().pos=0;function n(e){let t=window.getComputedStyle(e),n=new DOMMatrixReadOnly(t.transform);return{width:n.m41||0,height:n.m42||0}}let r=q[L]?.slides[0],i=r?.el;r&&K.has(r.index)&&i&&(N=r.offset||0,N+=(n(i)[M]||0)*(A&&!j?1:-1)),Ge(),k||(N<z||N>H)&&b.spring({clamp:!0,mass:1,tension:500,friction:25,velocity:b.getCurrentVelocities()?.pos||0,restDelta:1,restSpeed:1}).from({pos:N}).to({pos:c(z,N,H)}).start()}).on(`move`,e=>{if(Y(`gestures`,e)===!1)return;let{srcEvent:t,axis:n,deltaX:r,deltaY:i}=e;if(w(t)&&t.touches?.length>1)return;let o=t.target,s=a(o),c=s?s.scrollHeight>s.clientHeight?`y`:`x`:void 0;if(s&&s!==T&&(!n||n===c))return;if(!n){B(t),t.stopPropagation(),t.stopImmediatePropagation();return}if(n===`y`&&!j||n===`x`&&j||(B(t),t.stopPropagation(),!b))return;let l=A&&!j?1:-1,u=j?i:r,d=b?.isRunning()?b.getEndValues().pos:N,f=1;k||(d<=z&&u*l<0?(f=Math.max(.01,1-(Math.abs(1/Ne()*Math.abs(d-z))||0)),f*=.2):d>=H&&u*l>0&&(f=Math.max(.01,1-(Math.abs(1/Ne()*Math.abs(d-H))||0)),f*=.2)),d+=u*f*l,b.spring({clamp:!0,mass:1,tension:700,friction:25,velocity:b.getCurrentVelocities()?.pos||0,restDelta:1,restSpeed:1}).from({pos:N}).to({pos:d}).start()}).on(`panstart`,e=>{Y(`gestures`,e)!==!1&&e?.axis===(j?`y`:`x`)&&d(T,`is-dragging`)}).on(`panend`,e=>{Y(`gestures`,e)!==!1&&f(T,`is-dragging`)}).on(`end`,e=>{if(Y(`gestures`,e)===!1)return;let{srcEvent:t,axis:n,velocityX:r,velocityY:i,currentTouch:o}=e;if(o.length>0||!b)return;let s=t.target,l=a(s),u=l?l.scrollHeight>l.clientHeight?`y`:`x`:void 0,d=l&&(!n||n===u);j&&w(t)&&!n&&qe(t);let f=q.length,p=Y(`dragFree`);if(!f)return;let m=d?0:Y(`vertical`)?i:r;n!==(j?`y`:`x`)&&(m=0);let h=b?.isRunning()?b.getEndValues().pos:N,g=A&&!j?1:-1;if(d||(h+=m*(p?5:1)*g),!k&&(m*g<=0&&h<z||m*g>=0&&h>H)){let e=0;Math.abs(m)>0&&(e=Math.abs(m)*2,e=Math.min(Ne()*.3,e)),h=c(z+e*-1,h,H+e),b.spring({clamp:!0,mass:1,tension:380,friction:25,velocity:m*-1,restDelta:1,restSpeed:1}).from({pos:N}).to({pos:h}).start();return}if(p||v.Autoscroll?.isEnabled()){Math.abs(m)>10?b.spring({clamp:!0,mass:1,tension:150,friction:25,velocity:m*-1,restDelta:1,restSpeed:1}).from({pos:N}).to({pos:h}).start():b.isRunning()||P||(P=!0,X(`settle`));return}if(!(p||v.Autoscroll?.isEnabled())&&(!(e.offsetX||e.offsetY)||n===`y`&&!j||n===`x`&&j)){tt(L,{transition:`tween`});return}let _=je(h);Math.abs(m)>10&&_===L&&(_+=m>0?A&&!j?1:-1:A&&!j?-1:1),tt(_,{transition:`tween`,tween:{velocity:m*-1}})}).init())}function Te(){Y(`gestures`)===!1?y&&=(y.destroy(),void 0):y||we(),p(T,`is-draggable`,!!y&&q.length>0)}function Ee(e=`*`){let t=[];for(let n of W)(e===`*`||n.class&&n.class.includes(e)||n.el&&n.el?.classList.contains(e))&&t.push(n);F=void 0,ae=e,G=[...t]}function De(){F=void 0,L=Y(`initialPage`);let e=Y(`initialSlide`)||void 0;e!==void 0&&(L=$.getPageIndex(e)||0),L=c(0,L,q.length-1),N=q[L]?.pos||0,R=N}function Oe(){if(!b)return;let e=je(b?.isRunning()?b.getEndValues().pos:N);e!==L&&(F=L,L=e,$e(),ke(),Ae(),X(`change`,L,F))}function ke(){if(!S)return;for(let e of S.querySelectorAll(`[data-carousel-index]`))e.innerHTML=L+``;for(let e of S.querySelectorAll(`[data-carousel-page]`))e.innerHTML=L+1+``;for(let e of S.querySelectorAll(`[data-carousel-pages]`))e.innerHTML=q.length+``;let e=Y(`classes`)||{},t=Array.from(S.querySelectorAll(`[data-carousel-go-to]`)).filter(t=>t.closest(`.${e.container}`)===S);for(let e of t)parseInt(e.dataset?.carouselGoTo||`-1`,10)===L?e.setAttribute(`aria-current`,`true`):e.removeAttribute(`aria-current`);for(let e of S.querySelectorAll(`[data-carousel-go-prev]`))e.toggleAttribute(`aria-disabled`,!at()),at()?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,`-1`);for(let e of S.querySelectorAll(`[data-carousel-go-next]`))e.toggleAttribute(`aria-disabled`,!ot()),ot()?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,`-1`);let n=!1,r=q[L]?.slides[0];r&&(r.downloadSrc||r.type===`image`&&r.src)&&(n=!0);for(let e of S.querySelectorAll(`[data-carousel-download]`))e.toggleAttribute(`aria-disabled`,!n)}function Ae(e){e||=q[L]?.slides[0];let t=e?.el;if(t)for(let n of t.querySelectorAll(`[data-slide-index]`))n.innerHTML=e.index+1+``}function je(e){if(!q.length)return 0;let t=Z(),n=e;k?n-=Math.floor((e-q[0]?.pos)/t)*t||0:n=c(q[0]?.pos,e,q[q.length-1]?.pos);let r=new Map,i=0;for(let e of q){let a=Math.abs(e.pos-n),o=Math.abs(e.pos-n-t),s=Math.abs(e.pos-n+t),c=Math.min(a,o,s);r.set(i,c),i++}let a=r.size>0?[...r.entries()].reduce((e,t)=>t[1]<e[1]?t:e):[L,0];return parseInt(a[0])}function Me(){return J}function Ne(){return E}function Pe(){let e=0;if(T){let t=document.createElement(`div`);t.style.display=`block`,d(t,_.classes.slide),T.appendChild(t),e=t.getBoundingClientRect()[M],t.remove(),t=void 0}return e}function Z(e=!0){return G.length?G.reduce((e,t)=>e+t.dim,0)+(G.length-(k&&e?0:1))*J:0}function Fe(e){let t=Z(),n=Ne();if(!t||!T||!n)return[];let r=[];e=e===void 0?N:e,k&&(e-=Math.floor(e/t)*t||0);let i=0;for(let a of G){let o=(t=0)=>{r.indexOf(a)>-1||(a.pos=i-e+t||0,a.offset+t>e-a.dim-D+.51&&a.offset+t<e+n+O-.51&&r.push(a))};a.offset=i,k&&(o(t),o(t*-1)),o(),i+=a.dim+J}return r}function Ie(){if(!S)return;let e=Ne(),t=Z(!1),n=Y(`slidesPerPage`);n=n===`auto`?1/0:parseFloat(n+``),q=[];let r=0,i=0;for(let t of G)(!q.length||r+t.dim-e>.05||i>=n)&&(q.push({index:q.length,slides:[],dim:0,offset:0,pos:0}),r=0,i=0),q[q.length-1]?.slides.push(t),r+=t.dim+J,i++;let a=Y(`center`),o=Y(`fill`),s=0;for(let n of q){n.dim=(n.slides.length-1)*J;for(let e of n.slides)n.dim+=e.dim;n.offset=s,n.pos=s,a!==!1&&(n.pos-=(e-n.dim)*.5),o&&!k&&t>e&&(n.pos=c(0,n.pos,t-e)),s+=n.dim+J}let l=[],u;for(let e of q){let t={...e};u&&Math.abs(t.pos-u.pos)<.1?(u.dim+=t.dim,u.slides=[...u.slides,...t.slides]):(u=t,t.index=l.length,l.push(t))}q=l,L=c(0,L,q.length-1)}function Le(e,t){let n=[];for(let t of Array.isArray(e)?e:[e]){let e=Re({...t,isVirtual:!0});e.el||=document.createElement(`div`),X(`createSlide`,e),n.push(e)}W.splice(t===void 0?W.length:t,0,...n),He();for(let e of n)X(`addSlide`,e),ze(e);return Ee(ae),n}function Re(e){return(r(e)||e instanceof HTMLElement)&&(e={html:e}),{index:-1,el:void 0,class:``,isVirtual:!0,dim:0,pos:0,offset:0,html:``,src:``,...e}}function ze(e){let t=e.el;if(!e||!t)return;let n=e.html?e.html instanceof HTMLElement?e.html:u(e.html):void 0;n&&(d(n,`f-html`),e.htmlEl=n,d(t,`has-html`),t.append(n),X(`contentReady`,e))}function Be(e){if(!T||!e)return;let t=e.el;if(t){if(t.setAttribute(`index`,e.index+``),t.parentElement!==T){d(t,_.classes.slide),d(t,e.class),$e(e);let n;for(let t of W)if(t.index>e.index){n=t.el;break}T.insertBefore(t,n&&T.contains(n)?n:null),X(`attachSlideEl`,e)}return Ae(e),t}}function Ve(e){let t=e?.el;t&&(t.remove(),We(t),X(`detachSlideEl`,e))}function He(){for(let e=0;e<W.length;e++){let t=W[e],n=t.el;n&&(t.index!==e&&We(n),n.setAttribute(`index`,`${e}`)),t.index=e}}function Ue(){if(!S||!T)return;A=Y(`rtl`),j=Y(`vertical`),M=j?`height`:`width`;let e=Y(`classes`);if(p(S,e.isLTR,!A),p(S,e.isRTL,A),p(S,e.isHorizontal,!j),p(S,e.isVertical,j),p(S,e.hasAdaptiveHeight,Y(`adaptiveHeight`)),E=0,D=0,O=0,J=0,T){T.childElementCount||(T.style.display=`grid`);let e=T.getBoundingClientRect();E=T.getBoundingClientRect()[M]||0;let t=window.getComputedStyle(T);J=parseFloat(t.getPropertyValue(`--f-carousel-gap`))||0,t.getPropertyValue(`overflow-`+(j?`y`:`x`))===`visible`&&(D=Math.abs(e[j?`top`:`left`]),O=Math.abs(window[j?`innerHeight`:`innerWidth`]-e[j?`bottom`:`right`])),T.style.display=``}if(!E)return;let t=Pe();for(let e of G){let r=e.el,i=0;if(e.isVirtual||!r||!n(r))i=t;else{let e=!1;(!r.parentElement||r.parentElement!==T)&&(T.appendChild(r),e=!0),i=r.getBoundingClientRect()[M],e&&r.parentElement?.removeChild(r)}e.dim=i}if(k=!1,Y(`infinite`)){k=!0;let e=Z(),t=E+D+O;for(let n=0;n<G.length;n++){let r=G[n]?.dim+J;if(e-r<t&&e-r-t<r){k=!1;break}}}Ie(),z=q[0]?.pos||0,H=q[q.length-1]?.pos||0,h===0?De():R=q[L||0]?.pos||0,X(`refresh`),ke()}function We(e){if(!e||!n(e))return;let t=parseInt(e.getAttribute(`index`)||`-1`),r=``;for(let t of Array.from(e.classList)){let e=t.match(/^f-(\w+)(Out|In)$/);e&&e[1]&&(r=e[1]+``)}if(!e||!r)return;let i=[`f-${r}Out`,`f-${r}In`,`to-prev`,`to-next`,`from-prev`,`from-next`];e.removeEventListener(`animationend`,Ke),f(e,i.join(` `)),K.delete(t)}function Ge(){if(!T)return;let e=K.size>0;for(let e of G)We(e.el);K.clear(),e&&Q()}function Ke(e){e.animationName?.substring(0,2)===`f-`&&(We(e.target),K.size||(f(S,`in-transition`),!P&&Math.abs($.getPosition(!0)-R)<.5&&(P=!0,X(`settle`))),Q())}function qe(e){Je(e),X(`click`,e)}function Je(e){if(e.defaultPrevented)return;let t=e.composedPath()[0],n=t.closest(`[data-carousel-target]`)?.dataset?.carouselTarget;if(n&&re(n)!==S)return;if(t.closest(`[data-carousel-go-prev]`)){B(e),$.prev();return}if(t.closest(`[data-carousel-go-next]`)){B(e),$.next();return}let r=t.closest(`[data-carousel-go-to]`);if(r){B(e),$.goTo(parseFloat(r.dataset.carouselGoTo||``)||0);return}if(t.closest(`[data-carousel-download]`)){B(e);let t=q[L]?.slides[0];if(t&&(t.downloadSrc||t.type===`image`&&t.src)){let e=t.downloadFilename,n=document.createElement(`a`),r=t.downloadSrc||t.src||``;n.href=r,n.target=`_blank`,n.download=e||r,n.click()}return}}function Ye(e){let t=e.el,n=t?.querySelector(`.f-spinner`);if(!t||n)return $;let r=Y(`spinnerTpl`),i=u(r);return i&&(d(i,`f-spinner`),t.insertAdjacentElement(`beforeend`,i)),$}function Xe(e){let t=e.el;t&&t.querySelector(`.f-spinner`)?.remove()}function Ze(e,t){if(h===1){Xe(e),Qe(e);let n=e.el;if(n){let r=document.createElement(`div`);d(r,`f-html`),d(r,`is-error`),r.innerHTML=le(t||`<p>{{ERROR}}</p>`),e.htmlEl=r,d(n,`has-html has-error`),n.insertAdjacentElement(`afterbegin`,r),X(`contentReady`,e)}}return $}function Qe(e){let t=e.el;t&&(t.querySelector(`.f-html.is-error`)?.remove(),f(t,`has-error`))}function $e(e){e||=q[L]?.slides[0];let t=e?.el;if(!t)return;let n=Y(`formatCaption`,e);n===void 0&&(n=e.caption),n||=``;let i=Y(`captionEl`);if(i&&i instanceof HTMLElement){if(e.index!==L)return;if(r(n)&&(i.innerHTML=le(n+``)),n instanceof HTMLElement){if(n.parentElement===i)return;i.innerHTML=``,n.parentElement&&(n=n.cloneNode(!0)),i.append(n)}return}if(!n)return;let a=e.captionEl||t.querySelector(`.f-caption`);!a&&n instanceof HTMLElement&&n.classList.contains(`f-caption`)&&(a=n),a||(a=document.createElement(`div`),d(a,`f-caption`),r(n)?a.innerHTML=le(n+``):n instanceof HTMLElement&&(n.parentElement&&(n=n.cloneNode(!0)),a.append(n)));let o=`f-caption-${ee}_${e.index}`;a.setAttribute(`id`,o),a.dataset.selectable=`true`,d(t,`has-caption`),t.setAttribute(`aria-labelledby`,o),e.captionEl=a,t.insertAdjacentElement(`beforeend`,a)}function et(e,t){if(!S||!E||!b||!t||!r(t)||t===`tween`)return!1;for(let e of oe)if(E-e.dim>.5)return!1;if(D>.5||O>.5)return;let n=q.length,i=e>L?1:-1;e=k?(e%n+n)%n:c(0,e,n-1),A&&(i*=-1);let a=q[L]?.slides[0],o=a?.index,s=q[e]?.slides[0],l=s?.index,u=q[e]?.pos;if(l===void 0||o===void 0||o===l||N===u||Math.abs(E-(s?.dim||0))>1)return!1;P=!1,b.pause(),Ge(),d(S,`in-transition`),N=R=u;let p=Be(a),m=Be(s);return Oe(),p&&(K.add(o),p.style.transform=``,p.addEventListener(`animationend`,Ke),f(p,_.classes.isSelected),p.inert=!1,d(p,`f-${t}Out to-${i>0?`next`:`prev`}`)),m&&(K.add(l),m.style.transform=``,m.addEventListener(`animationend`,Ke),d(m,_.classes.isSelected),m.inert=!1,d(m,`f-${t}In from-${i>0?`prev`:`next`}`)),Q(),!0}function tt(e,n={}){let{transition:r,tween:i}={transition:_.transition,tween:_.tween,...n||{}};if(!S||!b)return;let a=q.length;if(!a||et(e,r))return;e=k?(e%a+a)%a:c(0,e,a-1),R=q[e||0]?.pos||0;let o=b.isRunning()?b.getEndValues().pos:N;if(Math.abs(R-o)<1){N=R,L!==e&&($e(),F=L,L=e,ke(),Ae(),X(`change`,L,F)),Q(),P||(P=!0,X(`settle`));return}if(b.pause(),Ge(),k){let e=Z(),t=Math.floor((o-q[0]?.pos)/e)||0,n=R+t*e,r=n-e;R=[n+e,n,r].reduce(function(e,t){return Math.abs(t-o)<Math.abs(e-o)?t:e})}if(r!==!1&&t(i)){b.spring(s({},_.tween,i)).from({pos:N}).to({pos:R}).start();return}N=R,Oe(),Q(),P||(P=!0,X(`settle`))}function nt(e){let t=N;if(k&&e!==!0){let e=Z(),n=Math.floor((N-q[0]?.pos||0)/e)||0;t-=n*e}return t}function rt(e){N=e,Oe(),Q()}function Q(){if(!S||!T)return;oe=Fe();let e=new Set,t=[],n=q[L],r=_.setTransform,i;for(let r of G){let a=K.has(r.index),o=oe.indexOf(r)>-1,s=n?.slides?.indexOf(r)>-1;if(r.isVirtual&&!a&&!o)continue;let c=Be(r);if(c&&(t.push(r),s&&e.add(c),Y(`adaptiveHeight`)&&s)){let e=(c.lastElementChild||c).getBoundingClientRect().height;i=i==null?e:Math.max(i,e)}}T&&i&&(T.style.height=`${i}px`),[...o(T,`.${_.classes.slide}`)].forEach(t=>{p(t,_.classes.isSelected,e.has(t));let n=W[parseInt(t.getAttribute(`index`)||`-1`)];if(!n){t.remove(),We(t);return}let i=K.has(n.index),a=oe.indexOf(n)>-1;if(n.isVirtual&&!i&&!a){Ve(n);return}if(t.inert=!a,r===!1)return;let o=n.pos?Math.round(n.pos*1e4)/1e4:0,s=0,c=0,u=0,d=0;i||(s=j?0:A?o*-1:o,c=j?o:0,u=l(s,0,n.dim,0,100),d=l(c,0,n.dim,0,100)),r instanceof Function&&!i?r($,n,{x:s,y:c,xPercent:u,yPercent:d}):t.style.transform=s||c?`translate3d(${u}%, ${d}%,0)`:``}),X(`render`,t)}function it(){S?.removeEventListener(`click`,qe),document.removeEventListener(`mousemove`,xe),K.clear(),x?.disconnect(),x=void 0;for(let e of W){let t=e.el;t&&n(t)&&(e.state=void 0,Xe(e),Qe(e),e.isVirtual?(Ve(e),e.el=void 0):(We(t),t.style.transform=``,T&&!T.contains(t)&&T.appendChild(t)))}for(let e of Object.values(v))e?.destroy();v={},y?.destroy(),y=void 0,b?.destroy(),b=void 0;for(let[e,t]of Object.entries(_.classes||{}))e!==`container`&&f(S,t);f(T,`is-draggable`)}function at(){return k||L>0}function ot(){return k||L<q.length-1}let $={add:function(e,t){let n=N,r=L,i=Z(),a=b?.isRunning()?b.getEndValues().pos:N,o=i&&Math.floor((a-(q[0]?.pos||0))/i)||0;return Le(e,t),Ee(ae),Ue(),b&&i&&(r===L&&(n-=o*i),n===R?N=R:b.spring({clamp:!0,mass:1,tension:300,friction:25,restDelta:1,restSpeed:1}).from({pos:n}).to({pos:R}).start()),Q(),$},canGoPrev:at,canGoNext:ot,destroy:function(){return X(`destroy`),window.removeEventListener(`resize`,he),it(),ue.clear(),S=null,q=[],W=[],_={...V},v={},G=[],U=void 0,ae=`*`,h=2,$},emit:X,filter:function(e=`*`){return Ee(e),Ue(),N=c(z,N,H),Q(),X(`filter`,e),$},getContainer:function(){return S},getGapDim:Me,getGestures:function(){return y},getLastMouseMove:function(){return te},getOption:function(e){return Y(e)},getOptions:function(){return _},getPage:function(){return q[L]},getPageIndex:function(e){if(e!==void 0){for(let t of q||[])for(let n of t.slides)if(n.index===e)return t.index;return-1}return L},getPageIndexFromPosition:je,getPageProgress:function(e,t){e===void 0&&(e=L);let n=q[e];if(!n)return e>L?-1:1;let r=Z(),i=Me(),a=n.pos,o=nt();if(k&&t!==!0){let e=Math.floor((o-q[0]?.pos)/r)||0;o-=e*r,a=[a+r,a,a-r].reduce(function(e,t){return Math.abs(t-o)<Math.abs(e-o)?t:e})}return(o-a)/(n.dim+i)||0},getPageVisibility:function(e){e===void 0&&(e=L);let t=q[e];if(!t)return e>L?-1:1;let n=nt(),r=Ne(),i=t.pos;if(k){let e=Z(),t=Math.floor((n-q[0]?.pos)/e)||0,r=i+t*e,a=r-e;i=[r+e,r,a].reduce(function(e,t){return Math.abs(t-n)<Math.abs(e-n)?t:e})}return i>n&&i+t.dim<n+r?1:i<n?(i+t.dim-n)/t.dim||0:i+t.dim>n+r&&(n+r-i)/t.dim||0},getPages:function(){return q},getPlugins:function(){return v},getPosition:nt,getSlides:function(){return W},getState:function(){return h},getTotalSlideDim:Z,getTween:function(){return b},getViewport:function(){return T},getViewportDim:Ne,getVisibleSlides:function(e){return e===void 0?oe:Fe(e)},goTo:tt,hasNavigated:function(){return F!==void 0},hideError:Qe,hideLoading:Xe,init:pe,isInfinite:function(){return k},isInTransition:function(){return K.size>0},isRTL:function(){return A},isSettled:function(){return P},isVertical:function(){return j},localize:le,next:function(e={}){return tt(L+1,e),$},off:fe,on:de,prev:function(e={}){return tt(L-1,e),$},reInit:me,remove:function(e){e===void 0&&(e=W.length-1);let t=W[e];return t&&(X(`removeSlide`,t),t.el&&=(We(t.el),t.el.remove(),void 0),W.splice(e,1),Ee(ae),Ue(),N=c(z,N,H),Q()),$},setPosition:rt,showError:Ze,showLoading:Ye,version:`6.1.15`};return $};ie.l10n={en_EN:L},ie.getDefaults=()=>V,e.Carousel=ie,Object.defineProperty(e,"CarouselSlideContentState",{enumerable:!0,get:function(){return z}}),Object.defineProperty(e,"CarouselState",{enumerable:!0,get:function(){return R}})});