@fancyapps/ui
Version:
Robust JavaScript UI Component Library
2 lines • 108 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=>typeof e==`string`,r=e=>e&&e!==null&&e instanceof Element&&`nodeType`in e,i=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},a=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},o=function(e,t=void 0){return!e||e===document.body||t&&e===t?null:a(e)?e:o(e.parentElement,t)},s=(e=!0,t=`--f-scrollbar-compensate`,n=`--f-body-margin`,r=`hide-scrollbar`)=>{let i=document,a=i.body,o=i.documentElement;if(e){if(a.classList.contains(r))return;let e=window.innerWidth-o.getBoundingClientRect().width;e<0&&(e=0),o.style.setProperty(t,`${e}px`);let i=parseFloat(window.getComputedStyle(a).marginRight);i&&a.style.setProperty(n,`${i}px`),a.classList.add(r)}else a.classList.remove(r),a.style.setProperty(n,``),i.documentElement.style.setProperty(t,``)},c=(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],c(e[n],r)):Array.isArray(r)?Object.assign(e,{[n]:[...r]}):Object.assign(e,{[n]:r})})}return e};function l(){return!!(typeof window<`u`&&window.document&&window.document.createElement)}let u=function(e=0,t=0,n=0){return Math.max(Math.min(t,n),e)},d=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?u(r,o,i):u(i,o,r):o},f=(e,t=``)=>{e&&e.classList&&t.split(` `).forEach(t=>{t&&e.classList.add(t)})},p=(e,t=``)=>{e&&e.classList&&t.split(` `).forEach(t=>{t&&e.classList.remove(t)})},m=(e,t=``,n)=>{e&&e.classList&&t.split(` `).forEach(t=>{t&&e.classList.toggle(t,n||!1)})};function h(e){return t(e)||Array.isArray(e)}function g(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}`:!h(r)||!h(i)?r===i:g(r,i)}):!1}let _=function(e){for(let t of x)t.getState()===v.Running&&t.tick(C?e-C:0);C=e,S=window.requestAnimationFrame(_)},v=function(e){return 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`,e}({});var y=function(e){return e[e.Spring=0]=`Spring`,e[e.Ease=1]=`Ease`,e}(y||{});let b=function(e){return e[e.Loop=0]=`Loop`,e[e.Reverse=1]=`Reverse`,e}({}),x=new Set,S=null,C=0;function w(){let e=v.Initializing,t=y.Ease,n=0,r=0,i=w.Easings.Linear,a=500,o=0,s=0,c=0,l=0,d=1/0,f=.01,p=.01,m=!1,h={},C=null,T={},E={},D={},O=0,k=0,A=b.Loop,j=w.Easings.Linear,M=new Map;function N(e,t){M.set(e,[...M.get(e)||[],t])}function ee(e,t){M.has(e)&&M.set(e,M.get(e).filter(e=>e!==t))}function P(e,...t){for(let n of M.get(e)||[])n(...t)}function F(e){return r=0,e?C=setTimeout(()=>{I()},e):I(),B}function I(){e=v.Running,P(`start`,T,E)}function L(){return C&&=(clearTimeout(C),null),e===v.Running&&(e=v.Paused,P(`pause`,T)),B}function R(n){n>50&&(n=50),r+=n;let _=0,x=!1;if(e!==v.Running)return B;if(t===y.Ease){_=u(0,r/a,1),x=_===1;let e=A===b.Reverse?j:i;for(let t in T)T[t]=h[t]+(E[t]-h[t])*e(_)}if(t===y.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=u(Math.abs(d)*-1,a,Math.abs(d));let h=a*s*l,g=Math.abs(r-i)*c,_=((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}x=!t}let S={...E};return P(`step`,T,h,E,_),x&&e===v.Running&&g(E,S)&&(e=v.Completed,z()),B}function z(){if(e=v.Completed,D={},P(`end`,T),e===v.Completed)if(n<O){if(n++,A===b.Reverse){let e={...h};h={...E},E=e}F(k)}else n=0;return B}let B={getState:function(){return e},easing:function(e){return i=e,t=y.Ease,D={},B},duration:function(e){return a=e,B},spring:function(e={}){t=y.Spring;let{velocity:n,mass:r,tension:i,friction:a,restDelta:u,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,c=i,l=a,p=u,f=h,d=g,m=_,D={},B},isRunning:function(){return e===v.Running},isSpring:function(){return t===y.Spring},from:function(e){return T={...e},B},to:function(e){return E=e,B},repeat:function(e,t=0,n=b.Loop,r){return O=e,k=t,A=n,j=r||i,B},on:function(e,t){return N(e,t),B},off:function(e,t){return ee(e,t),B},start:function(t){return g(T,E)||(e=v.Initializing,h={...T},x.add(this),S||=window.requestAnimationFrame(_),F(t)),B},pause:L,end:z,tick:R,getStartValues:function(){return h},getCurrentValues:function(){return T},getCurrentVelocities:function(){return D},getEndValues:function(){return E},destroy:function(){e=v.Destroyed,C&&=(clearTimeout(C),null),h=T=E={},x.delete(this)}};return B}w.destroy=()=>{for(let e of x)e.destroy();S&&=(cancelAnimationFrame(S),null)},w.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 T(e){return typeof TouchEvent<`u`&&e instanceof TouchEvent}function E(e,t){let n=[],r=T(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 D(e){return E(e,`touches`)}function O(e){return E(e,`targetTouches`)}function k(e){return E(e,`changedTouches`)}function A(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 j(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 M=e=>{e.cancelable&&e.preventDefault()},N={passive:!1},ee={panThreshold:5,swipeThreshold:3,ignore:[`textarea`,`input`,`select`,`[contenteditable]`,`[data-selectable]`,`[data-draggable]`]},P=!1,F=!0,I=(e,t)=>{let n={...ee,...t},r,i=[],a=[],o=[],s=!1,c=!1,l=!1,u=!1,d=0,f=0,p,m=0,h=0,g=0,_=0,v=0,y=0,b=0,x,S=[],C,w,T=new Map;function E(e,t){T.set(e,[...T.get(e)||[],t])}function I(e){let t=j(a),n=j(o),l=t&&n?t/n:0,u={srcEvent:r,isPanRecognized:s,isSwipeRecognized:c,firstTouch:i,previousTouch:o,currentTouch:a,deltaX:m,deltaY:h,offsetX:g,offsetY:_,velocityX:v,velocityY:y,velocity:Math.abs(v)>Math.abs(y)?v:y,angle:b,axis:x,scale:l,center:p};for(let t of T.get(e)||[])t(u)}function L(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 R(e){let t=Date.now();if(S=S.filter(e=>!e.ts||e.ts>t-100),e&&S.push(e),v=0,y=0,S.length>3){let e=S[0],t=S[S.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&&(v=Math.abs(n)>3?n/(i/30):0,y=Math.abs(r)>3?r/(i/30):0)}}}function z(e){if(L(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;M(e)}e instanceof MouseEvent&&(window.addEventListener(`mousemove`,B),window.addEventListener(`mouseup`,V)),window.addEventListener(`blur`,H),r=e,a=O(e),i=[...a],o=[],f=a.length,p=A(a),f===1&&(s=!1,c=!1,l=!1),f&&R(A(a));let t=Date.now(),n=t-(d||t);u=n>0&&n<=250&&f===1,d=t,clearTimeout(C),I(`start`)}function B(e){if(!i.length||e.defaultPrevented||L(e)===!1)return;r=e,o=[...a],a=D(e);let t=A(o),c=A(D(e));if(R(c),f=a.length,p=c,o.length===a.length?(m=c.x-t.x,h=c.y-t.y):(m=0,h=0),i.length){let e=A(i);g=c.x-e.x,_=c.y-e.y}if(a.length>1){let e=j(a),t=j(o);Math.abs(e-t)>=.1&&(l=!0,I(`pinch`))}s||(s=Math.abs(g)>=n.panThreshold||Math.abs(_)>=n.panThreshold,s&&(F=!1,clearTimeout(w),w=void 0,b=Math.abs(Math.atan2(_,g)*180/Math.PI),x=b>45&&b<135?`y`:`x`,i=[...a],o=[...a],g=0,_=0,m=0,h=0,window.getSelection()?.removeAllRanges(),I(`panstart`))),s&&(m||h)&&I(`pan`),I(`move`)}function V(e){if(r=e,!i.length)return;let t=O(e),d=k(e);if(f=t.length,p=A(d),d.length&&R(A(d)),o=[...a],a=[...t],i=[...t],f>0)I(`end`),s=!1,c=!1,S=[];else{let e=n.swipeThreshold;(Math.abs(v)>e||Math.abs(y)>e)&&(c=!0),s&&I(`panend`),c&&I(`swipe`),!s&&!c&&!l&&(I(`tap`),u?I(`doubleTap`):C=setTimeout(function(){I(`singleTap`)},250)),I(`end`),te()}}function H(){clearTimeout(C),te(),s&&I(`panend`),I(`end`)}function te(){P=!1,s=!1,c=!1,u=!1,f=0,S=[],a=[],o=[],i=[],m=0,h=0,g=0,_=0,v=0,y=0,b=0,x=void 0,window.removeEventListener(`mousemove`,B),window.removeEventListener(`mouseup`,V),window.removeEventListener(`blur`,H),!F&&!w&&(w=setTimeout(()=>{F=!0,w=void 0},100))}function U(e){let t=e.target;P=!1,!(!t||e.defaultPrevented)&&(F||(M(e),e.stopPropagation()))}function W(){return e&&(e.addEventListener(`click`,U,N),e.addEventListener(`mousedown`,z,N),e.addEventListener(`touchstart`,z,N),e.addEventListener(`touchmove`,B,N),e.addEventListener(`touchend`,V),e.addEventListener(`touchcancel`,V)),ne}let ne={init:W,on:function(e,t){return E(e,t),ne},off:function(e,t){return T.has(e)&&T.set(e,T.get(e).filter(e=>e!==t)),ne},isPointerDown:()=>f>0,destroy:function(){clearTimeout(C),clearTimeout(w),w=void 0,e&&(e.removeEventListener(`click`,U,N),e.removeEventListener(`mousedown`,z,N),e.removeEventListener(`touchstart`,z,N),e.removeEventListener(`touchmove`,B,N),e.removeEventListener(`touchend`,V),e.removeEventListener(`touchcancel`,V)),e=null,te()}};return ne};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`},R=1e4,z=e=>{e.cancelable&&e.preventDefault()},B=(e,t=R)=>(e=parseFloat(e+``)||0,Math.round((e+2**-52)*t)/t),V=e=>e instanceof HTMLImageElement,H=function(e){return e.Reset=`reset`,e.Zoom=`zoom`,e.ZoomIn=`zoomIn`,e.ZoomOut=`zoomOut`,e.ZoomTo=`zoomTo`,e.ToggleCover=`toggleCover`,e.ToggleFull=`toggleFull`,e.ToggleMax=`toggleMax`,e.IterateZoom=`iterateZoom`,e.Pan=`pan`,e.Swipe=`swipe`,e.Move=`move`,e.MoveLeft=`moveLeft`,e.MoveRight=`moveRight`,e.MoveUp=`moveUp`,e.MoveDown=`moveDown`,e.RotateCCW=`rotateCCW`,e.RotateCW=`rotateCW`,e.FlipX=`flipX`,e.FlipY=`flipY`,e.ToggleFS=`toggleFS`,e}({}),te=function(e){return e.Cover=`cover`,e.Full=`full`,e.Max=`max`,e}({}),U={x:0,y:0,scale:1,angle:0,flipX:1,flipY:1},W=function(e){return e[e.Init=0]=`Init`,e[e.Loading=1]=`Loading`,e[e.Error=2]=`Error`,e[e.Ready=3]=`Ready`,e[e.Destroyed=4]=`Destroyed`,e}({}),ne={bounds:!0,classes:{container:`f-panzoom`,wrapper:`f-panzoom__wrapper`,content:`f-panzoom__content`,viewport:`f-panzoom__viewport`},clickAction:H.ToggleFull,dblClickAction:!1,gestures:{},height:`auto`,l10n:L,maxScale:4,minScale:1,mouseMoveFactor:1,panMode:`drag`,protected:!1,singleClickAction:!1,spinnerTpl:`<div class="f-spinner"></div>`,wheelAction:H.Zoom,width:`auto`},re=0,ie,G=0,ae=0,oe=(e,t={},a={})=>{let s=W.Init,c={...ne,...t},l={},d,h,_,v,y={...U},b={...U},x,S,C,T,E=[];function D(e){let t=c[e];return t&&typeof t==`function`?t(Ze):t}function O(e,t=[]){let n=D(`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}function j(){return e&&e.parentElement&&d&&s===W.Ready}let M=new Map;function N(e,t){for(let n of e instanceof Array?e:[e])M.set(n,[...M.get(n)||[],t]);return Ze}function ee(e,t){for(let n of e instanceof Array?e:[e])M.has(n)&&M.set(n,M.get(n).filter(e=>e!==t));return Ze}function P(e,...t){let n=[...M.get(e)||[]];c.on&&n.push(c.on[e]);for(let e of n)e&&typeof e==`function`&&e(Ze,...t);e!==`*`&&P(`*`,e,...t)}function F(){return s=W.Init,P(`init`),L(),te(),oe(),se(),Ze}function L(){for(let[e,t]of Object.entries({...a,...c.plugins||{}}))if(e&&!l[e]&&t instanceof Function){let n=t();n.init(Ze),l[e]=n}P(`initPlugins`)}function te(){let t={...ne.classes,...D(`classes`)},n=t.content?.split(` `).shift(),r=t.wrapper?.split(` `).shift(),i=t.viewport?.split(` `).shift();if(!(!n||!r||!i)&&e&&(f(e,t.container),h=e.querySelector(`.${n}:not(.is-clone)`),h)){if(h.setAttribute(`draggable`,`false`),d=e.querySelector(`.${r}`),d||(d=document.createElement(`div`),f(d,t.wrapper),h.insertAdjacentElement(`beforebegin`,d),d.insertAdjacentElement(`afterbegin`,h)),v=e.querySelector(`.${i}`),v||(v=document.createElement(`div`),f(v,t.viewport),d.insertAdjacentElement(`beforeend`,v)),v.contains(h)||v.insertAdjacentElement(`afterbegin`,h),_=e.querySelector(`.${n}.is-clone`),_||(_=h.cloneNode(!0),_.removeAttribute(`id`),f(_,`is-clone`),d.insertAdjacentElement(`afterbegin`,_)),h instanceof HTMLPictureElement&&(h=h.querySelector(`img`)),_ instanceof HTMLPictureElement&&(_=_.querySelector(`img`)),v instanceof HTMLPictureElement&&(v=v.querySelector(`img`)),v&&(v.style.visibility=`hidden`,D(`protected`))){v.addEventListener(`contextmenu`,e=>{z(e)});let e=document.createElement(`div`);f(e,`f-panzoom__protected`),v.appendChild(e)}P(`initLayout`)}}function oe(){if(e&&d&&!C){let e=null;C=new ResizeObserver(()=>{j()&&(e||=requestAnimationFrame(()=>{j()&&(Ae(),ke(),P(`refresh`)),e=null}))}),C.observe(d),E.push(()=>{C?.disconnect(),C=void 0,e&&=(cancelAnimationFrame(e),null)})}}function se(){if(!e||!h)return;if(!(V(h)&&V(_))){ge();return}let t=()=>{h&&V(h)&&h.decode().then(()=>{ge()}).catch(()=>{ge()})};if(s=W.Loading,e.classList.add(`is-loading`),P(`loading`),_.src&&_.complete){t();return}me(),_.addEventListener(`load`,t,!1),_.addEventListener(`error`,t,!1),E.push(()=>{_?.removeEventListener(`load`,t,!1),_?.removeEventListener(`error`,t,!1)})}function K(){S=w().on(`start`,(e,t)=>{t.angle!==void 0&&(t.angle=Math.round(t.angle/90)*90),t.flipX!==void 0&&(t.flipX=t.flipX>0?1:-1),t.flipY!==void 0&&(t.flipY=t.flipY>0?1:-1),b={...U,...t},Ae(),P(`animationStart`)}).on(`pause`,e=>{b={...U,...e}}).on(`step`,e=>{if(!j()){S?.end();return}if(y={...U,...e},xe()||!D(`bounds`)||X()||b.scale>y.scale||b.scale<q()){Y();return}let t=Oe(b.scale),n=!1,r=!1,i=!1,a=!1;y.x<t.x[0]&&(n=!0),y.x>t.x[1]&&(r=!0),y.y<t.y[0]&&(a=!0),y.y>t.y[1]&&(i=!0);let o=!1,s=!1,c=!1,l=!1;b.x<t.x[0]&&(o=!0),b.x>t.x[1]&&(s=!0),b.y<t.y[0]&&(l=!0),b.y>t.y[1]&&(c=!0);let d=!1;(r&&s||n&&o)&&(b.x=u(t.x[0],b.x,t.x[1]),d=!0),(i&&c||a&&l)&&(b.y=u(t.y[0],b.y,t.y[1]),d=!0),d&&S&&S.spring({tension:94,friction:17,maxSpeed:555*b.scale,restDelta:.1,restSpeed:.1,velocity:S.getCurrentVelocities()}).from(y).to(b).start(),Y()}).on(`end`,()=>{x?.isPointerDown()||ke(),S?.isRunning()||(Ae(),P(`animationEnd`))})}function ce(){let e=D(`gestures`);if(!e||!v||!h)return;let t=!1;x=I(v,e).on(`start`,e=>{if(!D(`gestures`)||!S||!j()||xe())return;let n=e.srcEvent;(y.scale>1||Ke(y.angle)||e.currentTouch.length>1)&&(n?.stopPropagation(),S.pause(),t=!0),e.currentTouch.length===1&&P(`touchStart`)}).on(`move`,e=>{t&&(b.scale!==1||Ke(b.angle)||e.currentTouch.length>1)&&(z(e.srcEvent),e.srcEvent?.stopPropagation())}).on(`pan`,e=>{if(!t)return;let n=e.srcEvent;(b.scale!==1||Ke(b.angle)||e.currentTouch.length>1)&&(z(n),J(H.Pan,e))}).on(`swipe`,e=>{t&&(b.scale>1||Ke(b.angle))&&J(H.Swipe,e)}).on(`tap`,e=>{P(`click`,e)}).on(`singleTap`,e=>{P(`singleClick`,e)}).on(`doubleTap`,e=>{P(`dblClick`,e)}).on(`pinch`,e=>{t&&(e.scale>q()?J(H.ZoomIn,e):e.scale<q()?J(H.ZoomOut,e):J(H.Pan,e))}).on(`end`,e=>{t&&(e.currentTouch.length?(e.srcEvent.stopPropagation(),z(e.srcEvent),S?.end()):(t=!1,Ae(),ke(),P(`touchEnd`)))}).init()}function le(){v&&(v.addEventListener(`wheel`,ue,{passive:!1}),E.push(()=>{v?.removeEventListener(`wheel`,ue,{passive:!1})}))}function ue(e){if(!j())return;let t=e.target;if(o(t))return;let n=Date.now(),r=u(-1,[-e.deltaX||0,-e.deltaY||0,-e.detail||0].reduce(function(e,t){return Math.abs(t)>Math.abs(e)?t:e}),1);P(`wheel`,e,r);let i=D(`wheelAction`);if(!i||e.defaultPrevented)return;let a=b.scale,s=a*(r>0?1.5:.5);if(i===H.Zoom){let t=Math.abs(e.deltaY)<100&&Math.abs(e.deltaX)<100?200:45;if(n-G<t){z(e);return}G=n;let i=we(),o=De();if(B(s)<B(i)&&B(a)<=B(i)?(ae+=Math.abs(r),s=i):B(s)>B(o)&&B(a)>=B(o)?(ae+=Math.abs(r),s=o):(ae=0,s=u(i,s,o)),ae>7)return}switch(z(e),i){case H.Pan:J(i,{srcEvent:e,deltaX:-e.deltaX*2,deltaY:-e.deltaY*2});break;case H.Zoom:J(H.ZoomTo,{srcEvent:e,scale:s,center:{x:e.clientX,y:e.clientY}});break;default:J(i,{srcEvent:e})}}function de(t){let n=t.composedPath()[0];if(!I.isClickAllowed()||!r(n)||t.defaultPrevented||!e?.contains(n)||n.hasAttribute(`disabled`)||n.hasAttribute(`aria-disabled`)||n.hasAttribute(`data-carousel-go-prev`)||n.hasAttribute(`data-carousel-go-next`))return;let i=n.closest(`[data-panzoom-action]`),a=i?.dataset?.panzoomAction,o=i?.dataset?.panzoomValue||``;if(a){switch(z(t),a){case H.ZoomTo:case H.ZoomIn:case H.ZoomOut:J(a,{scale:parseFloat(o||``)||void 0});break;case H.MoveLeft:case H.MoveRight:J(a,{deltaX:parseFloat(o||``)||void 0});break;case H.MoveUp:case H.MoveDown:J(a,{deltaY:parseFloat(o||``)||void 0});break;case H.ToggleFS:Ye();break;default:J(a);break}return}if(!d?.contains(n))return;let s={srcEvent:t};if(J(D(`clickAction`),s),D(`dblClickAction`)){let e=Date.now(),t=e-(re||e),n=t>0&&t<=250;re=e,n?(ie&&=(clearTimeout(ie),void 0),J(D(`dblClickAction`),s)):ie=setTimeout(()=>{J(D(`singleClickAction`),s)},250)}}function fe(e){if(T=e,!j()||!xe()||y.scale<=1||b.scale<=1||(d?.dataset.animationName||``).indexOf(`zoom`)>-1)return;let t=Se(b.scale);if(!t)return;let{x:n,y:r}=t;J(H.Pan,{deltaX:n-b.x,deltaY:r-b.y})}function pe(){e?.addEventListener(`click`,de),document?.addEventListener(`mousemove`,fe),E.push(()=>{e?.removeEventListener(`click`,de),document?.removeEventListener(`mousemove`,fe)})}function me(){if(!e||e?.querySelector(`.f-spinner`))return;let t=i(D(`spinnerTpl`));t&&(t.classList.add(`f-spinner`),e.classList.add(`is-loading`),d?.insertAdjacentElement(`afterbegin`,t))}function he(){e&&(p(e,`is-loading`),e.querySelector(`.f-spinner`)?.remove())}function ge(){if(!e||!h)return;if(he(),V(h)&&!(h.complete&&h.naturalWidth)){s=W.Error,d?.classList.add(`has-error`),P(`error`);return}P(`loaded`);let{width:t,height:n}=ye();V(h)&&(h.setAttribute(`width`,t+``),h.setAttribute(`height`,n+``)),d&&(p(d,`has-error`),V(h)&&(d.setAttribute(`width`,t+``),d.setAttribute(`height`,n+``),d.style.aspectRatio=`${t/n||``}`)),K(),ce(),le(),pe();let r=_e();y={...r},b={...r},s=W.Ready,Y(),Ae(),P(`ready`),requestAnimationFrame(()=>{s===W.Ready&&(he(),v&&(v.style.visibility=``))})}function _e(){let e={...D(`startPos`)||{}},t=e.scale,n=1;n=typeof t==`string`?Ce(t):typeof t==`number`?t:q();let r={...U,...e,scale:n},i=xe()?Se(n):void 0;if(i){let{x:e,y:t}=i;r.x=e,r.y=t}return r}function ve(){let e={top:0,left:0,width:0,height:0};if(d){let t=d.getBoundingClientRect();Ke(b.angle)?(e.top=t.top+t.height*.5-t.width*.5,e.left=t.left+t.width*.5-t.height*.5,e.width=t.height,e.height=t.width):(e.top=t.top,e.left=t.left,e.width=t.width,e.height=t.height)}return e}function ye(){let e=D(`width`),t=D(`height`);if(h&&e===`auto`){let t=h.getAttribute(`width`);e=t?parseFloat(t+``):h.dataset.width===void 0?V(v)?v.naturalWidth:V(h)?h.naturalWidth:d?.getBoundingClientRect().width||0:parseFloat(h.dataset.width+``)}else e=n(e)?parseFloat(e):e;if(h&&t===`auto`){let e=h.getAttribute(`height`);t=e?parseFloat(e+``):h.dataset.height===void 0?V(v)?v.naturalHeight:V(h)?h.naturalHeight:d?.getBoundingClientRect().height||0:parseFloat(h.dataset.height+``)}else t=n(t)?parseFloat(t):t;return{width:e,height:t}}function be(){let e=ve();return{width:e.width,height:e.height}}function xe(){return D(`panMode`)===`mousemove`&&matchMedia(`(hover: hover)`).matches}function Se(e){let t=T||D(`event`),n=d?.getBoundingClientRect();if(!t||!n||e<=1)return{x:0,y:0};let r=(t.clientX||0)-n.left,i=(t.clientY||0)-n.top,{width:a,height:o}=be(),s=Oe(e);if(e>1){let t=D(`mouseMoveFactor`);t>1&&(e*=t)}let c=a*e,l=o*e,f=(c-a)*.5-(c-a)*(r/a*100/100),p=(l-o)*.5-(l-o)*(i/o*100/100);return f=u(s.x[0],f,s.x[1]),p=u(s.y[0],p,s.y[1]),{x:f,y:p}}function Ce(t){if(!t)return b.scale;if(!e)return 1;let n=e.getBoundingClientRect(),r=ve(),{width:i,height:a}=ye(),o=e=>{if(typeof e==`number`)return e;switch(e){case`min`:return 1;case`base`:return 1;case`cover`:return Math.max(n.height/r.height,n.width/r.width)||1;case`full`:case`max`:{let e=Ke(b.angle)?a:i;return e&&r.width?e/r.width:1}}},s=D(`minScale`),c=D(`maxScale`),l=Math.min(o(`full`),o(s)),d=typeof c==`number`?o(`full`)*c:Math.min(o(`full`),o(c));switch(t){case`min`:return l;case`base`:return u(l,1,d);case`cover`:return o(`cover`);case`full`:return Math.min(d,o(`full`));case`max`:return d}}function we(){return Ce(`min`)}function q(){return Ce(`base`)}function Te(){return Ce(`cover`)}function Ee(){return Ce(`full`)}function De(){return Ce(`max`)}function Oe(t){let n={x:[0,0],y:[0,0]},r=e?.getBoundingClientRect();if(!r)return n;let i=ve(),a=r.width,o=r.height,s=i.width,c=i.height;t=t===void 0?b.scale:t;let l=t,u=t;if(xe()&&t>1){let e=D(`mouseMoveFactor`);e>1&&(s*t>a+.01&&(l*=e),c*t>o+.01&&(u*=e))}if(s*=l,c*=u,s>a){n.x[0]=(a-s)*.5,n.x[1]=(s-a)*.5;let e=(i.left-r.left)*.5,t=(i.left+i.width-r.right)*.5;n.x[0]-=e+t,n.x[1]-=e+t}if(c>o){n.y[0]=(o-c)*.5,n.y[1]=(c-o)*.5;let e=(i.top-r.top)*.5,t=(i.top+i.height-r.bottom)*.5;n.y[0]-=e+t,n.y[1]-=e+t}return n}function ke(){if(!j()||!D(`bounds`)||!S)return;let e=we(),t=De(),n=u(e,b.scale,t);if(b.scale<e-.01||b.scale>t+.01){J(H.ZoomTo,{scale:n});return}if(S.isRunning()||X())return;let r=Oe(n);b.x<r.x[0]||b.x>r.x[1]||b.y<r.y[0]||b.y>r.y[1]?(b.x=u(r.x[0],b.x,r.x[1]),b.y=u(r.y[0],b.y,r.y[1]),S.spring({tension:170,friction:17,restDelta:.001,restSpeed:.001,maxSpeed:1/0,velocity:S.getCurrentVelocities()}),S.from(y).to(b).start()):Y()}function Ae(t){if(!j())return;let n=Ge(),r=X(),i=qe(),a=Je(),o=Be(),s=Ve();m(d,`is-fullsize`,a),m(d,`is-expanded`,i),m(d,`is-dragging`,r),m(d,`can-drag`,n),m(d,`will-zoom-in`,o),m(d,`will-zoom-out`,s);let c=Ue(),l=We(),u=He(),f=!j();for(let n of(t||e)?.querySelectorAll(`[data-panzoom-action]`)||[]){let e=n.dataset.panzoomAction,t=!1;if(f)t=!0;else switch(e){case H.ZoomIn:c||(t=!0);break;case H.ZoomOut:u||(t=!0);break;case H.ToggleFull:{l||u||(t=!0);let e=n.querySelector(`g`);e&&(e.style.display=a&&!t?`none`:``);break}case H.IterateZoom:{c||u||(t=!0);let e=n.querySelector(`g`);e&&(e.style.display=!c&&!t?`none`:``);break}case H.ToggleCover:case H.ToggleMax:c||u||(t=!0);break}t?(n.setAttribute(`aria-disabled`,``),n.setAttribute(`tabindex`,`-1`)):(n.removeAttribute(`aria-disabled`),n.removeAttribute(`tabindex`))}}function J(t,n){if(!t||!e||!h||!S||!j()||t===H.Swipe&&Math.abs(S.getCurrentVelocities().scale)>.01)return;let r={...b},i={...b},a=Oe(xe()?r.scale:y.scale),o=S.getCurrentVelocities(),s=ve();n||={};let c=(n.currentTouch?.length||0)>1,l=n.velocityX||0,d=n.velocityY||0,f=n.center;n.srcEvent&&(f=A(k(n.srcEvent)));let p=n.deltaX||0,m=n.deltaY||0;switch(t){case H.MoveRight:p=n.deltaX||100;break;case H.MoveLeft:p=n.deltaX||-100;break;case H.MoveUp:m=n.deltaY||-100;break;case H.MoveDown:m=n.deltaY||100;break}let _=[];if(typeof t==`number`)i.scale=t;else switch(t){case H.Reset:i={...U},i.scale=q();break;case H.ZoomTo:case H.ZoomIn:case H.ZoomOut:case H.ToggleCover:case H.ToggleFull:case H.ToggleMax:case H.IterateZoom:case H.Zoom:i.scale=ze(t,n);break;case H.Pan:case H.Move:case H.MoveLeft:case H.MoveRight:case H.MoveUp:case H.MoveDown:if(X()){let e=1,t=1;i.x<=a.x[0]&&l<=0&&(e=Math.max(.01,1-Math.abs(1/s.width*Math.abs(i.x-a.x[0]))),e*=.2),i.x>=a.x[1]&&l>=0&&(e=Math.max(.01,1-Math.abs(1/s.width*Math.abs(i.x-a.x[1]))),e*=.2),i.y<=a.y[0]&&d<=0&&(t=Math.max(.01,1-Math.abs(1/s.height*Math.abs(i.y-a.y[0]))),t*=.2),i.y>=a.y[1]&&d>=0&&(t=Math.max(.01,1-Math.abs(1/s.height*Math.abs(i.y-a.y[1]))),t*=.2),i.x+=p*e,i.y+=m*t}else i.x=u(a.x[0],i.x+p,a.x[1]),i.y=u(a.y[0],i.y+m,a.y[1]);break;case H.Swipe:let e=(e=0)=>Math.sign(e)*Math.abs(e)**1.5;i.x+=u(-1e3,e(l),1e3),i.y+=u(-1e3,e(d),1e3),d&&!l&&(i.x=u(a.x[0],i.x,a.x[1])),!d&&l&&(i.y=u(a.y[0],i.y,a.y[1])),o.x=l,o.y=d;break;case H.RotateCW:i.angle+=90;break;case H.RotateCCW:i.angle-=90;break;case H.FlipX:i.flipX*=-1;break;case H.FlipY:i.flipY*=-1;break}if(y.angle!==void 0&&Math.abs(y.angle)>=360&&(i.angle-=Math.floor(y.angle/360)*360,y.angle-=Math.floor(y.angle/360)*360),_.length){let e=_.findIndex(e=>e>i.scale+1/R);i.scale=_[e]||_[0]}if(c&&(i.scale=u(we()*(c?.8:1),i.scale,De()*(c?1.6:1))),xe()){let e=Se(i.scale);if(e){let{x:t,y:n}=e;i.x=t,i.y=n}}else if(Math.abs(i.scale-r.scale)>1e-4){let t=0,n=0;if(f)t=f.x,n=f.y;else{let r=e.getBoundingClientRect();t=r.x+r.width*.5,n=r.y+r.height*.5}let o=t-s.left,l=n-s.top;o-=s.width*.5,l-=s.height*.5;let d=(o-r.x)/r.scale,p=(l-r.y)/r.scale;i.x=o-d*i.scale,i.y=l-p*i.scale,!c&&D(`bounds`)&&(a=Oe(i.scale),i.x=u(a.x[0],i.x,a.x[1]),i.y=u(a.y[0],i.y,a.y[1]))}if(t===H.Swipe){let e=500*i.scale,t=o;S.spring({tension:94,friction:17,maxSpeed:e,restDelta:.1,restSpeed:.1,velocity:t})}else t===H.Pan||c?S.spring({tension:900,friction:17,restDelta:.01,restSpeed:.01,maxSpeed:1}):S.spring({tension:170,friction:17,restDelta:.001,restSpeed:.001,maxSpeed:1/0,velocity:o});if(n.velocity===0||g(y,i))y={...i},b={...i},S.end(),Y(),Ae();else{if(g(b,i))return;S.from(y).to(i).start()}P(`action`,t)}function Y(){if(!h||!d||!v)return;let{width:e,height:t}=ye();Object.assign(d.style,{maxWidth:`min(${e}px, 100%)`,maxHeight:`min(${t}px, 100%)`});let{x:n,y:r,width:i,height:a,scale:o,angle:s,flipX:c,flipY:l}=je(),u=`translate(${B(n,100)}px, ${B(r,100)}px)`;c!==1||l!==1?u+=` scaleX(${B(o*c)}) scaleY(${B(o*l)})`:u+=` scale(${B(o)})`,s!==0&&(u+=` rotate(${s}deg)`),v.style.width=`${B(i)}px`,v.style.height=`${B(a)}px`,v.style.transform=`${u}`,P(`render`)}function je(){let{width:t,height:n}=ye(),{width:r,height:i}=be();if(!e)return{x:0,y:0,width:0,height:0,scale:0,flipX:0,flipY:0,angle:0,fitWidth:r,fitHeight:i,fullWidth:t,fullHeight:n};let{x:a,y:o,scale:s,angle:c,flipX:l,flipY:u}=y,d=1/Ee(),f=t,p=n,m=y.scale*d,h=b.scale*d,g=Math.max(r,i),_=Math.min(r,i);t>n?(f=g,p=_):(f=_,p=g),m=t>n?g*s/t||1:g*s/n||1;let v=f?t*h:0,x=p?n*h:0,S=f&&p?t*m/v:0;return a=a+f*.5-v*.5,o=o+p*.5-x*.5,{x:a,y:o,width:v,height:x,scale:S,flipX:l,flipY:u,angle:c,fitWidth:r,fitHeight:i,fullWidth:t,fullHeight:n}}function Me(){return S}function Ne(){return x}function Pe(){return e}function Fe(){return h}function Ie(){return d}function Le(){return v}function Re(){P(`destroy`);for(let e of Object.values(l))e?.destroy(Ze);for(let e of E)e();return d&&(d.style.aspectRatio=``,d.style.maxWidth=``,d.style.maxHeight=``),v&&(v.style.width=``,v.style.height=``,v.style.transform=``),d=void 0,h=void 0,v=void 0,y={...U},b={...U},S?.destroy(),S=void 0,x?.destroy(),x=void 0,s=W.Destroyed,Ze}function ze(e=D(`clickAction`),t={}){let n=b.scale,r=q(),i=[];if(typeof e==`number`)r=e;else if(e){switch(e){case H.ZoomTo:r=t.scale||1;break;case H.ZoomIn:r=n*(t.scale||2);break;case H.ZoomOut:r=n*(t.scale||.5);break;case H.ToggleCover:i=[q(),Te()];break;case H.ToggleFull:i=[q(),Ee()];break;case H.ToggleMax:i=[q(),De()];break;case H.IterateZoom:i=[q(),Ee(),De()];break;case H.Zoom:{let e=Ee();r=n>=e-.05?q():Math.min(e,n*(t.scale||2));break}}i.length&&(r=i.find(e=>e>n+1/R)??q())}return e!==H.ZoomTo&&(r=u(we(),r,De())),r}function Be(){return!!(j()&&ze()>b.scale)}function Ve(){return!!(j()&&ze()<b.scale)}function He(){return!!(j()&&b.scale>we())}function Ue(){return!!(j()&&b.scale<De())}function We(){return!!(j()&&b.scale<Ee())}function Ge(){return!!(j()&&(qe()||Ke(b.angle))&&x&&!xe())}function Ke(e){return Math.abs(e%180)===90}function X(){return!!(j()&&x?.isPointerDown()&&!xe())}function qe(){return!!(j()&&b.scale>q())}function Je(){return!!(j()&&b.scale>=Ee())}function Ye(){let t=`in-fullscreen`,n=`with-panzoom-in-fullscreen`;e?.classList.toggle(t);let r=e?.classList.contains(t);r?(document.documentElement.classList.add(n),document.addEventListener(`keydown`,Xe,!0)):(document.documentElement.classList.remove(n),document.removeEventListener(`keydown`,Xe,!0)),Y(),P(r?`enterFS`:`exitFS`)}function Xe(e){e.key===`Escape`&&!e.defaultPrevented&&Ye()}let Ze={canDrag:Ge,canZoomIn:Ue,canZoomOut:He,canZoomToFull:We,destroy:Re,emit:P,execute:J,getBoundaries:Oe,getContainer:Pe,getContent:Fe,getFullDim:ye,getGestures:Ne,getMousemovePos:Se,getOptions:function(){return c},getPlugins:function(){return l},getScale:Ce,getStartPosition:_e,getState:function(){return s},getTransform:function(e){return e===!0?b:y},getTween:Me,getViewport:Le,getWrapper:Ie,init:F,isDragging:X,isExpanded:qe,isFullsize:Je,isMousemoveMode:xe,localize:O,off:ee,on:N,toggleFS:Ye,updateControls:Ae,version:`6.1.14`,willZoomIn:Be,willZoomOut:Ve};return Ze};oe.l10n={en_EN:L},oe.getDefaults=()=>ne;let se=(e,t)=>{let n=[];return e.childNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE&&(!t||e.matches(t))&&n.push(e)}),n},K={...L,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`},ce=function(e){return e[e.Init=0]=`Init`,e[e.Ready=1]=`Ready`,e[e.Destroyed=2]=`Destroyed`,e}({}),le=function(e){return e[e.Loading=0]=`Loading`,e[e.Loaded=1]=`Loaded`,e[e.Error=2]=`Error`,e}({}),ue=e=>{e.cancelable&&e.preventDefault()},de={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:K,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},fe=0,pe,me,he=(e,a={},s={})=>{fe++;let l=ce.Init,h={...de},g={...de},_={},v,y,b,x=null,S=null,C=0,E=0,D=0,O=!1,k=!1,A=!1,j=`height`,M=0,N=!0,ee,P=0,F=0,L=0,R=0,z,B=`*`,V=[],H=[],te=new Set,U=[],W=[],ne=0,re=0,ie=0;function G(e,...t){let n=g[e];return n&&n instanceof Function?n(Z,...t):n}function ae(e,t=[]){let n=G(`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 oe=new Map;function K(e,...t){let n=[...oe.get(e)||[]];g.on&&n.push(g.on[e]);for(let e of n)e&&e instanceof Function&&e(Z,...t);e===`click`&&Ye(t[0]),e!==`*`&&K(`*`,e,...t)}function le(e,t){for(let n of e instanceof Array?e:[e])oe.set(n,[...oe.get(n)||[],t]);return Z}function ge(e,t){for(let n of e instanceof Array?e:[e])oe.has(n)&&oe.set(n,oe.get(n).filter(e=>e!==t));return Z}function _e(){if(!e||!r(e))throw Error(`No Element found`);return l!==ce.Init&&(ot(),l=ce.Init),x=e,h=a,window.removeEventListener(`resize`,ye),h.breakpoints&&window.addEventListener(`resize`,ye),ye(),Z}function ve(e={},n){return ot(),l=ce.Init,z=void 0,B=`*`,a=e,h=e,t(n)&&(s=n),ye(),Z}function ye(){let e=c({},de,h),t=``,n=h.breakpoints||{};for(let[r,i]of Object.entries(n))window.matchMedia(r).matches&&(t+=r,c(e,i));if(!(z!==void 0&&t===z)){if(z=t,l!==ce.Init){let t=W[P]?.slides[0]?.index;t===void 0&&(t=g.initialSlide),e.initialSlide=t,e.slides=[];for(let t of V)t.isVirtual&&e.slides.push(t)}ot(),g=e,G(`enabled`)!==!1&&be()}}function be(){l=ce.Init,K(`init`),xe(),Se(),Ce(),Ge(),l=ce.Ready,f(x,(G(`classes`)||{}).isEnabled||``),at(),Y(),Ee(),Oe(),we(),K(`ready`)}function xe(){for(let[e,t]of Object.entries({...s,...g.plugins||{}}))if(e&&!_[e]&&t instanceof Function){let n=t();n.init(Z,he),_[e]=n}K(`initPlugins`)}function Se(){if(!x)return;let e=G(`classes`)||{};f(x,e.container);let n=G(`style`);if(n&&t(n))for(let[e,t]of Object.entries(n))x.style.setProperty(e,t);S=Array.from(x.querySelectorAll(`.${e.viewport}`)).filter(t=>t.closest(`.${e.container}`)===x).pop()||null,S||(S=document.createElement(`div`),f(S,e.viewport),S.append(...se(x,`.${e.slide}`)),x.insertAdjacentElement(`afterbegin`,S)),x.carousel=Z,K(`initLayout`)}function Ce(){if(!S)return;let e=G(`classes`)||{};V=[],[...se(S,`.${e.slide}`)].forEach(e=>{if(e.parentElement){let t=Be({el:e,isVirtual:!1,...e.dataset||{}});K(`createSlide`,t),V.push(t)}}),We();for(let e of V)K(`addSlide`,e);ze(G(`slides`));for(let e of V){let t=e.el;t?.parentElement===S&&(f(t,g.classes.slide),f(t,e.class),et(e),K(`attachSlideEl`,e))}K(`initSlides`)}function we(){if(!x||!S)return;x.addEventListener(`click`,Je),document.addEventListener(`mousemove`,q),me||(me=function(e){let t=e.target?.dataset?.carouselTarget;t&&(document.getElementById(`${t.split(`#`).pop()}`)?.carousel)?.emit(`click`,e)},document.addEventListener(`click`,me));let e=S.getBoundingClientRect();if(ne=e.height,re=e.width,!b){let e=null;b=new ResizeObserver(()=>{e||=requestAnimationFrame(()=>{Te(),e=null})}),b.observe(S)}}function q(e){pe=e}function Te(){if(l!==ce.Ready||!S)return;let e=W.length,t=S.getBoundingClientRect(),n=t.height,r=t.width;e>1&&(A&&Math.abs(n-ne)<.5||!A&&Math.abs(r-re)<.5)||(Ge(),Oe(),ne=n,re=r,!(A&&!ne||!A&&!re)&&(!x||!S||(e!==W.length||!v?.isPointerDown())&&(G(`dragFree`)&&(O||M>L&&M<R)?(J(),at()):nt(P,{transition:!1}))))}function Ee(){y=w().on(`start`,()=>{(!v||!v.isPointerDown())&&(J(),at())}).on(`step`,e=>{let t=M;M=e.pos,M!==t&&(N=!1,at())}).on(`end`,e=>{v?.isPointerDown()||(M=e.pos,y&&!O&&(M<L||M>R)?y.spring({clamp:!0,mass:1,tension:200,friction:25,velocity:0,restDelta:1,restSpeed:1}).from({pos:M}).to({pos:u(L,M,R)}).start():N||(N=!0,K(`settle`)))})}function De(){let e=G(`gestures`);v||e===!1||!S||(v=I(S,e).on(`start`,e=>{if(!y||G(`gestures`,e)===!1)return;let{srcEvent:t}=e;A&&T(t)&&!o(t.target)&&ue(t),y.pause(),y.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=W[P]?.slides[0],i=r?.el;r&&te.has(r.index)&&i&&(M=r.offset||0,M+=(n(i)[j]||0)*(k&&!A?1:-1)),X(),O||(M<L||M>R)&&y.spring({clamp:!0,mass:1,tension:500,friction:25,velocity:y.getCurrentVelocities()?.pos||0,restDelta:1,restSpeed:1}).from({pos:M}).to({pos:u(L,M,R)}).start()}).on(`move`,e=>{if(G(`gestures`,e)===!1)return;let{srcEvent:t,axis:n,deltaX:r,deltaY:i}=e;if(T(t)&&t.touches?.length>1)return;let a=t.target,s=o(a),c=s?s.scrollHeight>s.clientHeight?`y`:`x`:void 0;if(s&&s!==S&&(!n||n===c))return;if(!n){ue(t),t.stopPropagation(),t.stopImmediatePropagation();return}if(n===`y`&&!A||n===`x`&&A||(ue(t),t.stopPropagation(),!y))return;let l=k&&!A?1:-1,u=A?i:r,d=y?.isRunning()?y.getEndValues().pos:M,f=1;O||(d<=L&&u*l<0?(f=Math.max(.01,1-(Math.abs(1/Pe()*Math.abs(d-L))||0)),f*=.2):d>=R&&u*l>0&&(f=Math.max(.01,1-(Math.abs(1/Pe()*Math.abs(d-R))||0)),f*=.2)),d+=u*f*l,y.spring({clamp:!0,mass:1,tension:700,friction:25,velocity:y.getCurrentVelocities()?.pos||0,restDelta:1,restSpeed:1}).from({pos:M}).to({pos:d}).start()}).on(`panstart`,e=>{G(`gestures`,e)!==!1&&e?.axis===(A?`y`:`x`)&&f(S,`is-dragging`)}).on(`panend`,e=>{G(`gestures`,e)!==!1&&p(S,`is-dragging`)}).on(`end`,e=>{if(G(`gestures`,e)===!1)return;let{srcEvent:t,axis:n,velocityX:r,velocityY:i,currentTouch:a}=e;if(a.length>0||!y)return;let s=t.target,c=o(s),l=c?c.scrollHeight>c.clientHeight?`y`:`x`:void 0,d=c&&(!n||n===l);A&&T(t)&&!n&&Je(t);let f=W.length,p=G(`dragFree`);if(!f)return;let m=d?0:G(`vertical`)?i:r;n!==(A?`y`:`x`)&&(m=0);let h=y?.isRunning()?y.getEndValues().pos:M,g=k&&!A?1:-1;if(d||(h+=m*(p?5:1)*g),!O&&(m*g<=0&&h<L||m*g>=0&&h>R)){let e=0;Math.abs(m)>0&&(e=Math.abs(m)*2,e=Math.min(Pe()*.3,e)),h=u(L+e*-1,h,R+e),y.spring({clamp:!0,mass:1,tension:380,friction:25,velocity:m*-1,restDelta:1,restSpeed:1}).from({pos:M}).to({pos:h}).start();return}if(p||_.Autoscroll?.isEnabled()){Math.abs(m)>10?y.spring({clamp:!0,mass:1,tension:150,friction:25,velocity:m*-1,restDelta:1,restSpeed:1}).from({pos:M}).to({pos:h}).start():y.isRunning()||N||(N=!0,K(`settle`));return}if(!(p||_.Autoscroll?.isEnabled())&&(!(e.offsetX||e.offsetY)||n===`y`&&!A||n===`x`&&A)){nt(P,{transition:`tween`});return}let v=Me(h);Math.abs(m)>10&&v===P&&(m>0?v+=k&&!A?1:-1:v+=k&&!A?-1:1),nt(v,{transition:`tween`,tween:{velocity:m*-1}})}).init())}function Oe(){G(`gestures`)===!1?v&&=(v.destroy(),void 0):v||De(),m(S,`is-draggable`,!!v&&W.length>0)}function ke(e=`*`){let t=[];for(let n of V)(e===`*`||n.class&&n.class.includes(e)||n.el&&n.el?.classList.contains(e))&&t.push(n);ee=void 0,B=e,H=[...t]}function Ae(){ee=void 0,P=G(`initialPage`);let e=G(`initialSlide`)||void 0;e!==void 0&&(P=Z.getPageIndex(e)||0),P=u(0,P,W.length-1),M=W[P]?.pos||0,F=M}function J(){if(!y)return;let e=Me(y?.isRunning()?y.getEndValues().pos:M);e!==P&&(ee=P,P=e,et(),Y(),je(),K(`change`,P,ee))}function Y(){if(!x)return;for(let e of x.querySelectorAll(`[data-carousel-index]`))e.innerHTML=P+``;for(let e of x.querySelectorAll(`[data-carousel-page]`))e.innerHTML=P+1+``;for(let e of x.querySelectorAll(`[data-carousel-pages]`))e.innerHTML=W.length+``;let e=G(`classes`)||{},t=Array.from(x.querySelectorAll(`[data-carousel-go-to]`)).filter(t=>t.closest(`.${e.container}`)===x);for(let e of t)parseInt(e.dataset?.carouselGoTo||`-1`,10)===P?e.setAttribute(`aria-current`,`true`):e.removeAttribute(`aria-current`);for(let e of x.querySelectorAll(`[data-carousel-go-prev]`))e.toggleAttribute(`aria-disabled`,!st()),st()?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,`-1`);for(let e of x.querySelectorAll(`[data-carousel-go-next]`))e.toggleAttribute(`aria-disabled`,!ct()),ct()?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,`-1`);let n=!1,r=W[P]?.slides[0];r&&(r.downloadSrc||r.type===`image`&&r.src)&&(n=!0);for(let e of x.querySelectorAll(`[data-carousel-download]`))e.toggleAttribute(`aria-disabled`,!n)}function je(e){e||=W[P]?.slides[0];let t=e?.el;if(t)for(let n of t.querySelectorAll(`[data-slide-index]`))n.innerHTML=e.index+1+``}function Me(e){if(!W.length)return 0;let t=Ie(),n=e;O?n-=Math.floor((e-W[0]?.pos)/t)*t||0:n=u(W[0]?.pos,e,W[W.length-1]?.pos);let r=new Map,i=0;for(let e of W){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):[P,0];return parseInt(a[0])}function Ne(){return ie}function Pe(){return C}function Fe(){let e=0;if(S){let t=document.createElement(`div`);t.style.display=`block`,f(t,g.classes.slide),S.appendChild(t),e=t.getBoundingClientRect()[j],t.remove(),t=void 0}return e}function Ie(e=!0){return H.length?H.reduce((e,t)=>e+t.dim,0)+(H.length-(O&&e?0:1))*ie:0}function Le(e){let t=Ie(),n=Pe();if(!t||!S||!n)return[];let r=[];e=e===void 0?M:e,O&&(e-=Math.floor(e/t)*t||0);let i=0;for(let a of H){let o=(t=0)=>{r.indexOf(a)>-1||(a.pos=i-e+t||0,a.offset+t>e-a.dim-E+.51&&a.offset+t<e+n+D-.51&&r.push(a))};a.offset=i,O&&(o(t),o(t*-1)),o(),i+=a.dim+ie}return r}function Re(){if(!x)return;let e=Pe(),t=Ie(!1),n=G(`slidesPerPage`);n=n===`auto`?1/0:parseFloat(n+``),W=[];let r=0,i=0;for(let t of H)(!W.length||r+t.dim-e>.05||i>=n)&&(W.push({index:W.length,slides:[],dim:0,offset:0,pos:0}),r=0,i=0),W[W.length-1]?.slides.push(t),r+=t.dim+ie,i++;let a=G(`center`),o=G(`fill`),s=0;for(let n of W){n.dim=(n.slides.length-1)*ie;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&&!O&&t>e&&(n.pos=u(0,n.pos,t-e)),s+=n.dim+ie}let c=[],l;for(let e of W){let t={...e};l&&Math.abs(t.pos-l.pos)<.1?(l.dim+=t.dim,l.slides=[...l.slides,...t.slides]):(l=t,t.index=c.length,c.push(t))}W=c,P=u(0,P,W.length-1)}function ze(e,t){let n=[];for(let t of Array.isArray(e)?e:[e]){let e=Be({...t,isVirtual:!0});e.el||=document.createElement(`div`),K(`createSlide`,e),n.push(e)}V.splice(t===void 0?V.length:t,0,...n),We();for(let e of n)K(`addSlide`,e),Ve(e);return ke(B),n}function Be(e){return(n(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 Ve(e){let t=e.el;if(!e||!t)return;let n=e.html?e.html instanceof HTMLElement?e.html:i(e.html):void 0;n&&(f(n,`f-html`),e.htmlEl=n,f(t,`has-html`),t.append(n),K(`contentReady`,e))}function He(e){if(!S||!e)return;let t=e.el;if(t){if(t.setAttribute(`index`,e.index+``),t.parentElement!==S){f(t,g.classes.slide),f(t,e.class),et(e);let n;for(let t of V)if(t.index>e.index){n=t.el;break}S.insertBefore(t,n&&S.contains(n)?n:null),K(`attachSlideEl`,e)}return je(e),t}}function Ue(e){let t=e?.el;t&&(t.remove(),Ke(t),K(`detachSlideEl`,e))}function We(){for(let e=0;e<V.length;e++){let t=V[e],n=t.el;n&&(t.index!==e&&Ke(n),n.setAttribute(`index`,`${e}`)),t.index=e}}function Ge(){if(!x||!S)return;k=G(`rtl`),A=G(`vertical`),j=A?`height`:`width`;let e=G(`classes`);if(m(x,e.isLTR,!k),m(x,e.isRTL,k),m(x,e.isHorizontal,!A),m(x,e.isVertical,A),m(x,e.hasAdaptiveHeight,G(`adaptiveHeight`)),C=0,E=0,D=0,ie=0,S){S.childElementCount||(S.style.display=`grid`);let e=S.getBoundingClientRect();C=S.getBoundingClientRect()[j]||0;let t=window.getComputedStyle(S);ie=parseFloat(t.getPropertyValue(`--f-carousel-gap`))||0,t.getPropertyValue(`overflow-`+(A?`y`:`x`))===`visible`&&(E=Math.abs(e[A?`top`:`left`]),D=Math.abs(window[A?`innerHeight`:`innerWidth`]-e[A?`bottom`:`right`])),S.style.display=``}if(!C)return;let t=Fe();for(let e of H){let n=e.el,i=0;if(e.isVirtual||!n||!r(n))i=t;else{let e=!1;(!n.parentElement||n.parentElement!==S)&&(S.appendChild(n),e=!0),i=n.getBoundingClientRect()[j],e&&n.parentElement?.removeChild(n)}e.dim=i}if(O=!1,G(`infinite`)){O=!0;let e=Ie(),t=C+E+D;for(let n=0;n<H.length;n++){let r=H[n]?.dim+ie;if(e-r<t&&e-r-t<r){O=!1;break}}}Re(),L=W[0]?.pos||0,R=W[W.length-1]?.pos||0,l===ce.Init?Ae():F=W[P||0]?.pos||0,K(`refresh`),Y()}function Ke(e){if(!e||!r(e))return;let t=parseInt(e.getAttribute(`index`)||`-1`),n=``;for(let t of Array.from(e.classList)){let e=t.match(/^f-(\w+)(Out|In)$/);e&&e[1]&&(n=e[1]+``)}if(!e||!n)return;let i=[`f-${n}Out`,`f-${n}In`,`to-prev`,`to-next`,`from-prev`,`from-next`];e.removeEventListener(`animationend`,qe),p(e,i.join(` `)),te.delete(t)}function X(){if(!S)return;let e=te.size>0;for(let e of H)Ke(e.el);te.clear(),e&&at()}function qe(e){e.animationName?.substring(0,2)===`f-`&&(Ke(e.target),te.size||(p(x,`in-transition`),!N&&Math.abs(Z.getPosition(!0)-F)<.5&&(N=!0,K(`settle`))),at())}function Je(e){Ye(e),K(`click`,e)}function Ye(e){if(e.defaultPrevented)return;let t=e.composedPath()[0];if(t.closest(`[data-carousel-go-prev]`)){ue(e),Z.prev();return}if(t.closest(`[data-carousel-go-next]`)){ue(e),Z.next();return}let n=t.closest(`[data-carousel-go-to]`);if(n){ue(e),Z.goTo(parseFloat(n.dataset.carouselGoTo||``)||0);return}if(t.closest(`[data-carousel-download]`)){ue(e);let t=W[P]?.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 Xe(e){let t=e.el,n=t?.querySelector(`.f-spinner`);if(!t||n)return Z;let r=i(G(`spinnerTpl`));return r&&(f(r,`f-spinner`),t.insertAdjacentElement(`beforeend`,r)),Z}function Ze(e){let t=e.el;t&&t.querySelector(`.f-spinner`)?.remove()}function Qe(e,t){if(l===ce.Ready){Ze(e),$e(e);let n=e.el;if(n){let r=document.createElement(`div`);f(r,`f-html`),f(r,`is-error`),r.innerHTML=ae(t||`<p>{{ERROR}}</p>`),e.htmlEl=r,f(n,`has-html has-error`),n.insertAdjacentElement(`afterbegin`,r),K(`contentReady`,e)}}return Z}function $e(e){let t=e.el;t&&(t.querySelector(`.f-html.is-error`)?.remove(),p(t,`has-error`))}function et(e){e||=W[P]?.slides[0];let t=e?.el;if(!t)return;let r=G(`formatCaption`,e);r===void 0&&(r=e.caption),r||=``;let i=G(`captionEl`);if(i&&i instanceof HTMLElement){if(e.index!==P)return;if(n(r)&&(i.innerHTML=ae(r+``)),r instanceof HTMLElement){if(r.parentElement===i)return;i.innerHTML=``,r.parentElement&&(r=r.cloneNode(!0)),i.append(r)}return}if(!r)return;let a=e.captionEl||t.querySelector(`.f-caption`);!a&&r instanceof HTMLElement&&r.classList.contains(`f-caption`)&&(a=r),a||(a=document.createElement(`div`),f(a,`f-caption`),n(r)?a.innerHTML=ae(r+``):r instanceof HTMLElement&&(r.parentElement&&(r=r.cloneNode(!0)),a.append(r)));let o=`f-caption-${fe}_${e.index}`;a.setAttribute(`id`,o),a.dataset.selectable=`true`,f(t,`has-caption`),t.setAttribute(`aria-labelledby`,o),e.captionEl=a,t.insertAdjacentElement(`beforeend`,a)}function tt(e,t){if(!x||!C||!y||!t||!n(t)||t===`tween`)return!1;for(let e of U)if(C-e.dim>.5)return!1;if(E>.5||D>.5)return;let r=W.length,i=e>P?1:-1;e=O?(e%r+r)%r:u(0,e,r-1),k&&(i*=-1);let a=W[P]?.slides[0],o=a?.index,s=W[e]?.slides[0],c=s?.index,l=W[e]?.pos;if(c===void 0||o===void 0||o===c||M===l||Math.abs(C-(s?.dim||0))>1)return!1;N=!1,y.pause(),X(),f(x,`in-transition`),M=F=l;let d=He(a),m=He(s);return J(),d&&(te.add(o),d.style.transform=``,d.addEventListener(`animationend`,qe),p(d,g.classes.isSelected),d.inert=!1,f(d,`f-${t}Out to-${i>0?`next`:`prev`}`)),m&&(te.add(c),m.style.transform=``,m.addEventListener(`animationend`,qe),f(m,g.classes.isSelected),m.inert=!1,f(m,`f-${t}In from-${i>0?`prev`:`next`}`)),at(),!0}function nt(e,n={}){let{transition:r,tween:i}={transition:g.transition,tween:g.tween,...n||{}};if(!x||!y)return;let a=W.length;if(!a||tt(e,r))return;e=O?(e%a+a)%a:u(0,e,a-1),F=W[e||0]?.pos||0;let o=y.isRunning()?y.getEndValues().pos:M;if(Math.abs(F-o)<1){M=F,P!==e&&(et(),ee=P,P=e,Y(),je(),K(`change`,P,ee)),at(),N||(N=!0,K(`settle`));return}if(y.pause(),X(),O){let e=Ie(),t=Math.floor((o-W[0]?.pos)/e)||0,n=F+t*e,r=n-e;F=[n+e,n,r].reduce(function(e,t){return Math.abs(t-o)<Math.abs(e-o)?t:e})}if(r!==!1&&t(i)){y.spring(c({},g.tween,i)).from({pos:M}).to({pos:F}).start();return}M=F,J(),at(),N||(N=!0,K(`settle`))}function rt(e){let t=M;if(O&&e!==!0){let e=Ie(),n=Math.floor((M-W[0]?.pos||0)/e)||0;t-=n*e}return t}function it(e){M=e,J(),at()}function at(){if(!x||!S)return;U=Le();let e=new Set,t=[],n=W[P],r=g.setTransform,i;for(let r of H){let a=te.has(r.index),o=U.indexOf(r)>-1,s=n?.slides?.indexOf(r)>-1;if(r.isVirtual&&!a&&!o)continue;let c=He(r);if(c&&(t.push(r),s&&e.add(c),G(`adaptiveHeight`)&&s)){let e=(c.lastElementChild||c).getBoundingClientRect().height;i=i==null?e:Math.max(i,e)}}S&&i&&(S.style.height=`${i}px`),[...se(S,`.${g.classes.slide}`)].forEach(t=>{m(t,g.classes.isSelected,e.has(t));let n=V[parseInt(t.getAttribute(`index`)||`-1`)];if(!n){t.remove(),Ke(t);return}let i=te.has(n.index),a=U.indexOf(n)>-1;if(n.isVirtual&&!i&&!a){Ue(n);return}if(t.inert=!a,r===!1)return;let o=n.pos?Math.round(n.pos*1e4)/1e4:0,s=0,c=0,l=0,u=0;i||(s=A?0:k?o*-1:o,c=A?o:0,l=d(s,0,n.dim,0,100),u=d(c,0,n.dim,0,100)),r instanceof Function&&!i?r(Z,n,{x:s,y:c,xPercent:l,yPercent:u}):t.style.transform=s||c?`translate3d(${l}%, ${u}%,0)`:``}),K(`render`,t)}function ot(){x?.removeEventListener(`click`,Je),document.removeEventListener(`mousemove`,q),te.clear(),b?.disconnect(),b=void 0;for(let e of V){let t=e.el;t&&r(t)&&(e.state=void 0,Ze(e),$e(e),e.isVirtual?(Ue(e),e.el=void 0):(Ke(t),t.style.transform=``,S&&!S.contains(t)&&S.appendChild(t)))}for(let e of Object.values(_))e?.destroy();_={},v?.destroy(),v=void 0,y?.destroy(),y=void 0;for(let[e,t]of Object.entries(g.classes||{}))e!==`container`&&p(x,t);p(S,`is-draggable`)}function st(){return O||P>0}function ct(){return O||P<W.length-1}let Z={add:function(e,t){let n=M,r=P,i=Ie(),a=y?.isRunning()?y.getEndValues().pos:M,o=i&&Math.floor((a-(W[0]?.pos||0))/i)||0;return ze(e,t),ke(B),Ge(),y&&i&&(r===P&&(n-=o*i),n===F?M=F:y.spring({clamp:!0,mass:1,tension:300,friction:25,restDelta:1,restSpeed:1}).from({pos:n}).to({pos:F}).start()),at(),Z},canGoPrev:st,canGoNext:ct,destroy:function(){return K(`destroy`),window.removeEventListener(`resize`,ye),ot(),oe.clear(),x=null,W=[],V=[],g={...de},_={},H=[],z=void 0,B=`*`,l=ce.Destroyed,Z},emit:K,filter:function(e=`*`){return ke(e),Ge(),M=u(L,M,R),at(),K(`filter`,e),Z},getContainer:function(){return x},getGapDim:Ne,getGestures:function(){return v},getLastMouseMove:function(){return pe},getOption:function(e){return G(e)},getOptions:function(){return g},getPage:function(){return W[P]},getPageIndex:function(e){if(e!==void 0){for(let t of W||[])for(let n of t.slides)if(n.index===e)return t.index;return-1}return P},getPageIndexFromPosition:Me,getPageProgress:function(e,t){e===void 0&&(e=P);let n=W[e];if(!n)return e>P?-1:1;let r=Ie(),i=Ne(),a=n.pos,o=rt();if(O&&t!==!0){let e=Math.floor((o-W[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=P);let t=W[e];if(!t)return e>P?-1:1;let n=rt(),r=Pe(),i=t.pos;if(O){let e=Ie(),t=Math.floor((n-W[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 W},getPlugins:function(){return _},getPosition:rt,getSlides:function(){return V},getState:function(){return l},getTotalSlideDim:Ie,getTween:function(){return y},getViewport:function(){return S},getViewportDim:Pe,getVisibleSlides