UNPKG

@fancyapps/ui

Version:

Robust JavaScript UI Component Library

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