UNPKG

@fancyapps/ui

Version:

Robust JavaScript UI Component Library

1 lines 104 kB
!/*! License details at fancyapps.com/license */function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).window=e.window||{})}(this,function(e){"use strict";let t,n,o,i,r,l=e=>"object"==typeof e&&null!==e&&e.constructor===Object&&"[object Object]"===Object.prototype.toString.call(e),a=e=>"string"==typeof e,s=e=>e&&null!==e&&e instanceof Element&&"nodeType"in e,c=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 o=t.firstChild;if(o&&!(o instanceof HTMLElement)){var n=document.createElement("div");return n.appendChild(o),n}return o},u=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,o=-1!==n.indexOf("hidden"),i=-1!==n.indexOf("clip"),r=-1!==n.indexOf("visible");t=!o&&!i&&!r}if(e.scrollHeight>e.clientHeight){let t=window.getComputedStyle(e).overflowY,o=-1!==t.indexOf("hidden"),i=-1!==t.indexOf("clip"),r=-1!==t.indexOf("visible");n=!o&&!i&&!r}return t||n},d=function(e,t){return!e||e===document.body||t&&e===t?null:u(e)?e:d(e.parentElement,t)},f=(e=!0,t="--f-scrollbar-compensate",n="--f-body-margin",o="hide-scrollbar")=>{let i=document,r=i.body,l=i.documentElement;if(e){if(r.classList.contains(o))return;let e=window.innerWidth-l.getBoundingClientRect().width;e<0&&(e=0),l.style.setProperty(t,`${e}px`);let i=parseFloat(window.getComputedStyle(r).marginRight);i&&r.style.setProperty(n,`${i}px`),r.classList.add(o)}else r.classList.remove(o),r.style.setProperty(n,""),i.documentElement.style.setProperty(t,"")},g=(e,...t)=>{let n=t.length;for(let o=0;o<n;o++)Object.entries(t[o]||{}).forEach(([t,n])=>{let o=Array.isArray(n)?[]:{};e[t]||Object.assign(e,{[t]:o}),l(n)?Object.assign(e[t],g(e[t],n)):Array.isArray(n)?Object.assign(e,{[t]:[...n]}):Object.assign(e,{[t]:n})});return e};function m(){return!!("undefined"!=typeof window&&window.document&&window.document.createElement)}let p=function(e=0,t=0,n=0){return Math.max(Math.min(t,n),e)},h=function(e=0,t=0,n=0,o=0,i=0,r=!1){let l=(e-t)/(n-t)*(i-o)+o;return r?o<i?p(o,l,i):p(i,l,o):l},y=(e,t="")=>{e&&e.classList&&t.split(" ").forEach(t=>{t&&e.classList.add(t)})},v=(e,t="")=>{e&&e.classList&&t.split(" ").forEach(t=>{t&&e.classList.remove(t)})},b=(e,t="",n)=>{e&&e.classList&&t.split(" ").forEach(t=>{t&&e.classList.toggle(t,n||!1)})};function E(e){return l(e)||Array.isArray(e)}function w(e,t){let n=Object.keys(e),o=Object.keys(t);return n.length===o.length&&n.every(n=>{let o=e[n],i=t[n];return"function"==typeof o?`${o}`==`${i}`:E(o)&&E(i)?w(o,i):o===i})}let x=1/60*3e3,M=function(e){for(let t of F)t.getState()===L.Running&&t.tick(D?e-D:0);D=e,H=window.requestAnimationFrame(M)},L=((S={})[S.Initializing=0]="Initializing",S[S.Running=1]="Running",S[S.Paused=2]="Paused",S[S.Completed=3]="Completed",S[S.Destroyed=4]="Destroyed",S);var S,T,P,A,R,C,O,I,z,k,_=((T=_||{})[T.Spring=0]="Spring",T[T.Ease=1]="Ease",T);let $=((P={})[P.Loop=0]="Loop",P[P.Reverse=1]="Reverse",P),F=new Set,H=null,D=0;function V(){let e=L.Initializing,t=_.Ease,n=0,o=0,i=V.Easings.Linear,r=500,l=0,a=0,s=0,c=0,u=1/0,d=.01,f=.01,g=!1,m={},h=null,y={},v={},b={},E=0,S=0,T=$.Loop,P=V.Easings.Linear,A=new Map;function R(e,...t){for(let n of A.get(e)||[])n(...t)}function C(e){return o=0,e?h=setTimeout(()=>{O()},e):O(),z}function O(){e=L.Running,R("start",y,v)}function I(){if(e=L.Completed,b={},R("end",y),e===L.Completed)if(n<E){if(n++,T===$.Reverse){let e={...m};m={...v},v=e}C(S)}else n=0;return z}let z={getState:function(){return e},easing:function(e){return i=e,t=_.Ease,b={},z},duration:function(e){return r=e,z},spring:function(e={}){t=_.Spring;let{velocity:n,mass:o,tension:i,friction:r,restDelta:m,restSpeed:p,maxSpeed:h,clamp:y}={velocity:0,mass:1,tension:170,friction:26,restDelta:.1,restSpeed:.1,maxSpeed:1/0,clamp:!0,...e};return l=n,a=o,s=i,c=r,f=m,d=p,u=h,g=y,b={},z},isRunning:function(){return e===L.Running},isSpring:function(){return t===_.Spring},from:function(e){return y={...e},z},to:function(e){return v=e,z},repeat:function(e,t=0,n=$.Loop,o){return E=e,S=t,T=n,P=o||i,z},on:function(e,t){return A.set(e,[...A.get(e)||[],t]),z},off:function(e,t){return A.has(e)&&A.set(e,A.get(e).filter(e=>e!==t)),z},start:function(t){return w(y,v)||(e=L.Initializing,m={...y},F.add(this),H||(H=window.requestAnimationFrame(M)),C(t)),z},pause:function(){return h&&(clearTimeout(h),h=null),e===L.Running&&(e=L.Paused,R("pause",y)),z},end:I,tick:function(n){n>x&&(n=x),o+=n;let h=0,E=!1;if(e!==L.Running)return z;if(t===_.Ease){E=1===(h=p(0,o/r,1));let e=T===$.Reverse?P:i;for(let t in y)y[t]=m[t]+(v[t]-m[t])*e(h)}if(t===_.Spring){let e=.001*n,t=0;for(let n in y){let o=v[n],i=y[n];if(!("number"==typeof o&&!isNaN(o))||!("number"==typeof i&&!isNaN(i)))continue;if(Math.abs(o-i)<=f){y[n]=o,b[n]=0;continue}b[n]||("object"==typeof l&&"number"==typeof l[n]?b[n]=l[n]:"number"==typeof l?b[n]=l:b[n]=0);let r=b[n],m=(r=p(-1*Math.abs(u),r,Math.abs(u)))*a*c,h=Math.abs(o-i)*s;r+=((i>o?-1:1)*h-m)/a*e,i+=r*e;let E=y[n]>o?i<o:i>o,w=Math.abs(r)<d&&Math.abs(o-i)<=f;g&&E&&(w=!0),w?(i=o,r=0):t++,y[n]=i,b[n]=r}E=!t}let M={...v};return R("step",y,m,v,h),E&&e===L.Running&&w(v,M)&&(e=L.Completed,I()),z},getStartValues:function(){return m},getCurrentValues:function(){return y},getCurrentVelocities:function(){return b},getEndValues:function(){return v},destroy:function(){e=L.Destroyed,h&&(clearTimeout(h),h=null),m=y=v={},F.delete(this)}};return z}function j(e){return"undefined"!=typeof TouchEvent&&e instanceof TouchEvent}function q(e,t){let n=[];for(let o of j(e)?e[t]:e instanceof MouseEvent&&("changedTouches"===t||"mouseup"!==e.type)?[e]:[])n.push({x:o.clientX,y:o.clientY,ts:Date.now()});return n}function N(e){return q(e,"touches")}function B(e){return q(e,"targetTouches")}function W(e){return q(e,"changedTouches")}function Z(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 G(e){let t=e[0],n=e[1]||e[0];return t&&n?-1*Math.sqrt((n.x-t.x)*(n.x-t.x)+(n.y-t.y)*(n.y-t.y)):0}V.destroy=()=>{for(let e of F)e.destroy();H&&(cancelAnimationFrame(H),H=null)},V.Easings={Linear:function(e){return e},EaseIn:function(e){return 0===e?0:Math.pow(2,10*e-10)},EaseOut:function(e){return 1===e?1:1-Math.pow(2,-10*e)},EaseInOut:function(e){return 0===e?0:1===e?1:e<.5?Math.pow(2,20*e-10)/2:(2-Math.pow(2,-20*e+10))/2}};let X=e=>{e.cancelable&&e.preventDefault()},Y={passive:!1},U={panThreshold:5,swipeThreshold:3,ignore:["textarea","input","select","[contenteditable]","[data-selectable]","[data-draggable]"]},K=!1,J=!0,Q=(e,t)=>{let n,o,i,r={...U,...t},l=[],a=[],s=[],c=!1,u=!1,d=!1,f=!1,g=0,m=0,p=0,h=0,y=0,v=0,b=0,E=0,w=0,x=[],M=0,L=0,S=new Map;function T(e){let t=G(a),r=G(s),d=Math.abs(b)>Math.abs(E)?b:E,f={srcEvent:i,isPanRecognized:c,isSwipeRecognized:u,firstTouch:l,previousTouch:s,currentTouch:a,deltaX:p,deltaY:h,offsetX:y,offsetY:v,velocityX:b,velocityY:E,velocity:d,angle:w,axis:o,scale:t&&r?t/r:0,center:n};for(let t of S.get(e)||[])t(f)}function P(e){let t=e.target,n=e.composedPath()[0],o=r.ignore.join(","),i=e=>e&&(e.matches(o)||e.closest(o));if(i(t)||i(n))return!1}function A(e){let t=Date.now();if(x=x.filter(e=>!e.ts||e.ts>t-100),e&&x.push(e),b=0,E=0,x.length>3){let e=x[0],t=x[x.length-1];if(e&&t){let n=t.x-e.x,o=t.y-e.y,i=e.ts&&t.ts?t.ts-e.ts:0;i>0&&(b=Math.abs(n)>3?n/(i/30):0,E=Math.abs(o)>3?o/(i/30):0)}}}function R(e){if(!1===P(e))return;if("undefined"!=typeof MouseEvent&&e instanceof MouseEvent){if(K)return}else K=!0;if("undefined"!=typeof MouseEvent&&e instanceof MouseEvent){if(!e.buttons||0!==e.button)return;X(e)}e instanceof MouseEvent&&(window.addEventListener("mousemove",C),window.addEventListener("mouseup",O)),window.addEventListener("blur",I),i=e,l=[...a=B(e)],s=[],m=a.length,n=Z(a),1===m&&(c=!1,u=!1,d=!1),m&&A(Z(a));let t=Date.now(),o=t-(g||t);f=o>0&&o<=250&&1===m,g=t,clearTimeout(M),T("start")}function C(e){if(!l.length||e.defaultPrevented||!1===P(e))return;i=e,s=[...a],a=N(e);let t=Z(s),u=Z(N(e));if(A(u),m=a.length,n=u,s.length===a.length?(p=u.x-t.x,h=u.y-t.y):(p=0,h=0),l.length){let e=Z(l);y=u.x-e.x,v=u.y-e.y}a.length>1&&Math.abs(G(a)-G(s))>=.1&&(d=!0,T("pinch")),!c&&(c=Math.abs(y)>r.panThreshold||Math.abs(v)>r.panThreshold)&&(J=!1,clearTimeout(L),L=0,o=(w=Math.abs(180*Math.atan2(v,y)/Math.PI))>45&&w<135?"y":"x",l=[...a],s=[...a],y=0,v=0,p=0,h=0,window.getSelection()?.removeAllRanges(),T("panstart")),c&&(p||h)&&T("pan"),T("move")}function O(e){if(i=e,!l.length)return;let t=B(e),o=W(e);if(m=t.length,n=Z(o),o.length&&A(Z(o)),s=[...a],a=[...t],l=[...t],m>0)T("end"),c=!1,u=!1,x=[];else{let e=r.swipeThreshold;(Math.abs(b)>e||Math.abs(E)>e)&&(u=!0),c&&T("panend"),u&&T("swipe"),c||u||d||(T("tap"),f?T("doubleTap"):M=setTimeout(function(){T("singleTap")},250)),T("end"),z()}}function I(){clearTimeout(M),z(),c&&T("panend"),T("end")}function z(){K=!1,c=!1,u=!1,f=!1,m=0,x=[],a=[],s=[],l=[],p=0,h=0,y=0,v=0,b=0,E=0,w=0,o=void 0,window.removeEventListener("mousemove",C),window.removeEventListener("mouseup",O),window.removeEventListener("blur",I),J||L||(L=setTimeout(()=>{J=!0,L=0},100))}function k(e){let t=e.target;K=!1,t&&!e.defaultPrevented&&(J||(X(e),e.stopPropagation()))}let _={init:function(){return e&&(e.addEventListener("click",k,Y),e.addEventListener("mousedown",R,Y),e.addEventListener("touchstart",R,Y),e.addEventListener("touchmove",C,Y),e.addEventListener("touchend",O),e.addEventListener("touchcancel",O)),_},on:function(e,t){return S.set(e,[...S.get(e)||[],t]),_},off:function(e,t){return S.has(e)&&S.set(e,S.get(e).filter(e=>e!==t)),_},isPointerDown:()=>m>0,destroy:function(){clearTimeout(M),clearTimeout(L),L=0,e&&(e.removeEventListener("click",k,Y),e.removeEventListener("mousedown",R,Y),e.removeEventListener("touchstart",R,Y),e.removeEventListener("touchmove",C,Y),e.removeEventListener("touchend",O),e.removeEventListener("touchcancel",O)),e=null,z()}};return _};Q.isClickAllowed=()=>J;let ee={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"},et=1e4,en=e=>{e.cancelable&&e.preventDefault()},eo=(e,t=et)=>Math.round(((e=parseFloat(e+"")||0)+Number.EPSILON)*t)/t,ei=((A={}).Reset="reset",A.Zoom="zoom",A.ZoomIn="zoomIn",A.ZoomOut="zoomOut",A.ZoomTo="zoomTo",A.ToggleCover="toggleCover",A.ToggleFull="toggleFull",A.ToggleMax="toggleMax",A.IterateZoom="iterateZoom",A.Pan="pan",A.Swipe="swipe",A.Move="move",A.MoveLeft="moveLeft",A.MoveRight="moveRight",A.MoveUp="moveUp",A.MoveDown="moveDown",A.RotateCCW="rotateCCW",A.RotateCW="rotateCW",A.FlipX="flipX",A.FlipY="flipY",A.ToggleFS="toggleFS",A),er=((R={}).Cover="cover",R.Full="full",R.Max="max",R),el={x:0,y:0,scale:1,angle:0,flipX:1,flipY:1},ea=((C={})[C.Init=0]="Init",C[C.Loading=1]="Loading",C[C.Error=2]="Error",C[C.Ready=3]="Ready",C[C.Destroyed=4]="Destroyed",C),es={bounds:!0,classes:{container:"f-panzoom",wrapper:"f-panzoom__wrapper",content:"f-panzoom__content",viewport:"f-panzoom__viewport"},clickAction:ei.ToggleFull,dblClickAction:!1,gestures:{},height:"auto",l10n:ee,maxScale:4,minScale:1,mouseMoveFactor:1,panMode:"drag",protected:!1,singleClickAction:!1,spinnerTpl:'<div class="f-spinner"></div>',wheelAction:ei.Zoom,width:"auto"},ec=0,eu=0,ed=0,ef=(e,n={},o={})=>{let i,r,l,u,f,g,m,h,E=ea.Init,x={...es,...n},M={},L={...el},S={...el},T=[];function P(e){let t=x[e];return t&&"function"==typeof t?t(eS):t}function A(){return e&&e.parentElement&&i&&E===ea.Ready}let R=new Map;function C(e,...t){let n=[...R.get(e)||[]];for(let o of(x.on&&n.push(x.on[e]),n))o&&o instanceof Function&&o(eS,...t);"*"!==e&&C("*",e,...t)}function O(e){if(!A()||d(e.target))return;let t=Date.now(),n=p(-1,[-e.deltaX||0,-e.deltaY||0,-e.detail||0].reduce(function(e,t){return Math.abs(t)>Math.abs(e)?t:e}),1);C("wheel",e,n);let o=P("wheelAction");if(!o||e.defaultPrevented)return;let i=S.scale,r=i*(n>0?1.5:.5);if(o===ei.Zoom){let o=100>Math.abs(e.deltaY)&&100>Math.abs(e.deltaX);if(t-eu<(o?200:45))return void en(e);eu=t;let l=B(),a=U();if(eo(r)<eo(l)&&eo(i)<=eo(l)?(ed+=Math.abs(n),r=l):eo(r)>eo(a)&&eo(i)>=eo(a)?(ed+=Math.abs(n),r=a):(ed=0,r=p(l,r,a)),ed>7)return}switch(en(e),o){case ei.Pan:er(o,{srcEvent:e,deltaX:-(2*e.deltaX),deltaY:-(2*e.deltaY)});break;case ei.Zoom:er(ei.ZoomTo,{srcEvent:e,scale:r,center:{x:e.clientX,y:e.clientY}});break;default:er(o,{srcEvent:e})}}function I(n){let o=n.composedPath()[0];if(!Q.isClickAllowed()||!s(o)||n.defaultPrevented||!e?.contains(o)||o.hasAttribute("disabled")||o.hasAttribute("aria-disabled")||o.hasAttribute("data-carousel-go-prev")||o.hasAttribute("data-carousel-go-next"))return;let r=o.closest("[data-panzoom-action]"),l=r?.dataset?.panzoomAction,a=r?.dataset?.panzoomValue||"";if(l){switch(en(n),l){case ei.ZoomTo:case ei.ZoomIn:case ei.ZoomOut:er(l,{scale:parseFloat(a||"")||void 0});break;case ei.MoveLeft:case ei.MoveRight:er(l,{deltaX:parseFloat(a||"")||void 0});break;case ei.MoveUp:case ei.MoveDown:er(l,{deltaY:parseFloat(a||"")||void 0});break;case ei.ToggleFS:eM();break;default:er(l)}return}if(!i?.contains(o))return;let c={srcEvent:n};if(er(P("clickAction"),c),P("dblClickAction")){let e=Date.now(),n=e-(ec||e);ec=e,n>0&&n<=250?(t&&(clearTimeout(t),t=void 0),er(P("dblClickAction"),c)):t=setTimeout(()=>{er(P("singleClickAction"),c)},250)}}function z(e){if(h=e,!A()||!j()||L.scale<=1||S.scale<=1||(i?.dataset.animationName||"").indexOf("zoom")>-1)return;let t=q(S.scale);if(!t)return;let{x:n,y:o}=t;er(ei.Pan,{deltaX:n-S.x,deltaY:o-S.y})}function k(){e&&(v(e,"is-loading"),e.querySelector(".f-spinner")?.remove())}function _(){if(!e||!r)return;if(k(),r instanceof HTMLImageElement&&!(r.complete&&r.naturalWidth)){E=ea.Error,i?.classList.add("has-error"),C("error");return}C("loaded");let{width:t,height:n}=H();r instanceof HTMLImageElement&&(r.setAttribute("width",t+""),r.setAttribute("height",n+"")),i&&(v(i,"has-error"),r instanceof HTMLImageElement&&(i.setAttribute("width",t+""),i.setAttribute("height",n+""),i.style.aspectRatio=`${t/n||""}`)),g=V().on("start",(e,t)=>{void 0!==t.angle&&(t.angle=90*Math.round(t.angle/90)),void 0!==t.flipX&&(t.flipX=t.flipX>0?1:-1),void 0!==t.flipY&&(t.flipY=t.flipY>0?1:-1),S={...el,...t},ee(),C("animationStart")}).on("pause",e=>{S={...el,...e}}).on("step",e=>{if(!A())return void g?.end();if(L={...el,...e},j()||!P("bounds")||eE()||S.scale>L.scale||S.scale<G())return void ef();let t=K(S.scale),n=!1,o=!1,i=!1,r=!1;L.x<t.x[0]&&(n=!0),L.x>t.x[1]&&(o=!0),L.y<t.y[0]&&(r=!0),L.y>t.y[1]&&(i=!0);let l=!1,a=!1,s=!1,c=!1;S.x<t.x[0]&&(l=!0),S.x>t.x[1]&&(a=!0),S.y<t.y[0]&&(c=!0),S.y>t.y[1]&&(s=!0);let u=!1;(o&&a||n&&l)&&(S.x=p(t.x[0],S.x,t.x[1]),u=!0),(i&&s||r&&c)&&(S.y=p(t.y[0],S.y,t.y[1]),u=!0),u&&g&&g.spring({tension:94,friction:17,maxSpeed:555*S.scale,restDelta:.1,restSpeed:.1,velocity:g.getCurrentVelocities()}).from(L).to(S).start(),ef()}).on("end",()=>{f?.isPointerDown()||J(),g?.isRunning()||(ee(),C("animationEnd"))}),function(){let e=P("gestures");if(!e||!u||!r)return;let t=!1;f=Q(u,e).on("start",e=>{if(!P("gestures")||!g||!A()||j())return;let n=e.srcEvent;(L.scale>1||e.currentTouch.length>1)&&(n?.stopPropagation(),g.pause(),t=!0),1===e.currentTouch.length&&C("touchStart")}).on("move",e=>{t&&(1!==S.scale||e.currentTouch.length>1)&&(en(e.srcEvent),e.srcEvent?.stopPropagation())}).on("pan",e=>{if(!t)return;let n=e.srcEvent;(1!==S.scale||e.currentTouch.length>1)&&(en(n),er(ei.Pan,e))}).on("swipe",e=>{t&&S.scale>1&&er(ei.Swipe,e)}).on("tap",e=>{C("click",e)}).on("singleTap",e=>{C("singleClick",e)}).on("doubleTap",e=>{C("dblClick",e)}).on("pinch",e=>{t&&(e.scale>G()?er(ei.ZoomIn,e):e.scale<G()?er(ei.ZoomOut,e):er(ei.Pan,e))}).on("end",e=>{t&&(e.currentTouch.length?(e.srcEvent.stopPropagation(),en(e.srcEvent),g?.end()):(t=!1,ee(),J(),C("touchEnd")))}).init()}(),u&&(u.addEventListener("wheel",O,{passive:!1}),T.push(()=>{u?.removeEventListener("wheel",O,{passive:!1})})),e?.addEventListener("click",I),document?.addEventListener("mousemove",z),T.push(()=>{e?.removeEventListener("click",I),document?.removeEventListener("mousemove",z)});let o=$();L={...o},S={...o},E=ea.Ready,ef(),ee(),C("ready"),requestAnimationFrame(()=>{k(),u&&(u.style.visibility="")})}function $(){let e={...P("startPos")||{}},t=e.scale,n=1;n="string"==typeof t?N(t):"number"==typeof t?t:G();let o={...el,...e,scale:n},i=j()?q(n):void 0;if(i){let{x:e,y:t}=i;o.x=e,o.y=t}return o}function F(){let e={top:0,left:0,width:0,height:0};if(i){let t=i.getBoundingClientRect();S.angle%180==90?(e.top=t.top+.5*t.height-.5*t.width,e.left=t.left+.5*t.width-.5*t.height,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 H(){let e=P("width"),t=P("height");if(r&&"auto"===e){let t=r.getAttribute("width");e=t?parseFloat(t+""):void 0!==r.dataset.width?parseFloat(r.dataset.width+""):u instanceof HTMLImageElement?u.naturalWidth:r instanceof HTMLImageElement?r.naturalWidth:i?.getBoundingClientRect().width||0}else e=a(e)?parseFloat(e):e;if(r&&"auto"===t){let e=r.getAttribute("height");t=e?parseFloat(e+""):void 0!==r.dataset.height?parseFloat(r.dataset.height+""):u instanceof HTMLImageElement?u.naturalHeight:r instanceof HTMLImageElement?r.naturalHeight:i?.getBoundingClientRect().height||0}else t=a(t)?parseFloat(t):t;return{width:e,height:t}}function D(){let e=F();return{width:e.width,height:e.height}}function j(){return"mousemove"===P("panMode")&&matchMedia("(hover: hover)").matches}function q(e){let t=h||P("event"),n=i?.getBoundingClientRect();if(!t||!n||e<=1)return{x:0,y:0};let o=(t.clientX||0)-n.left,r=(t.clientY||0)-n.top,{width:l,height:a}=D(),s=K(e);if(e>1){let t=P("mouseMoveFactor");t>1&&(e*=t)}let c=l*e,u=a*e,d=(c-l)*.5-o/l*100/100*(c-l),f=(u-a)*.5-r/a*100/100*(u-a);return{x:d=p(s.x[0],d,s.x[1]),y:f=p(s.y[0],f,s.y[1])}}function N(t="base"){if(!e)return 1;let n=e.getBoundingClientRect(),o=F(),{width:i,height:r}=H(),l=e=>{if("number"==typeof e)return e;switch(e){case"min":case"base":return 1;case"cover":return Math.max(n.height/o.height,n.width/o.width)||1;case"full":case"max":{let e=S.angle%180==90?r:i;return e&&o.width?e/o.width:1}}},a=P("minScale"),s=P("maxScale"),c=Math.min(l("full"),l(a)),u="number"==typeof s?l("full")*s:Math.min(l("full"),l(s));switch(t){case"min":return c;case"base":return p(c,1,u);case"cover":return l("cover");case"full":return Math.min(u,l("full"));case"max":return u}}function B(){return N("min")}function G(){return N("base")}function X(){return N("cover")}function Y(){return N("full")}function U(){return N("max")}function K(t){let n={x:[0,0],y:[0,0]},o=e?.getBoundingClientRect();if(!o)return n;let i=F(),r=o.width,l=o.height,a=i.width,s=i.height,c=t=void 0===t?S.scale:t,u=t;if(j()&&t>1){let e=P("mouseMoveFactor");e>1&&(a*t>r+.01&&(c*=e),s*t>l+.01&&(u*=e))}return a*=c,s*=u,t>1&&(a>r&&(n.x[0]=(r-a)*.5,n.x[1]=(a-r)*.5),n.x[0]-=(i.left-o.left)*.5,n.x[1]-=(i.left-o.left)*.5,n.x[0]-=(i.left+i.width-o.right)*.5,n.x[1]-=(i.left+i.width-o.right)*.5,s>l&&(n.y[0]=(l-s)*.5,n.y[1]=(s-l)*.5),n.y[0]-=(i.top-o.top)*.5,n.y[1]-=(i.top-o.top)*.5,n.y[0]-=(i.top+i.height-o.bottom)*.5,n.y[1]-=(i.top+i.height-o.bottom)*.5),n}function J(){if(!A()||!P("bounds")||!g)return;let e=B(),t=U(),n=p(e,S.scale,t);if(S.scale<e-.01||S.scale>t+.01)return void er(ei.ZoomTo,{scale:n});if(g.isRunning()||eE())return;let o=K(n);S.x<o.x[0]||S.x>o.x[1]||S.y<o.y[0]||S.y>o.y[1]?(S.x=p(o.x[0],S.x,o.x[1]),S.y=p(o.y[0],S.y,o.y[1]),g.spring({tension:170,friction:17,restDelta:.001,restSpeed:.001,maxSpeed:1/0,velocity:g.getCurrentVelocities()}),g.from(L).to(S).start()):ef()}function ee(t){if(!A())return;let n=eb(),o=eE(),r=ew(),l=ex(),a=em(),s=ep();b(i,"is-fullsize",l),b(i,"is-expanded",r),b(i,"is-dragging",o),b(i,"can-drag",n),b(i,"will-zoom-in",a),b(i,"will-zoom-out",s);let c=ey(),u=ev(),d=eh(),f=!A();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 ei.ZoomIn:c||(t=!0);break;case ei.ZoomOut:d||(t=!0);break;case ei.ToggleFull:{u||d||(t=!0);let e=n.querySelector("g");e&&(e.style.display=l&&!t?"none":"");break}case ei.IterateZoom:{c||d||(t=!0);let e=n.querySelector("g");e&&(e.style.display=c||t?"":"none");break}case ei.ToggleCover:case ei.ToggleMax:c||d||(t=!0)}t?(n.setAttribute("aria-disabled",""),n.setAttribute("tabindex","-1")):(n.removeAttribute("aria-disabled"),n.removeAttribute("tabindex"))}}function er(t,n){if(!t||!e||!r||!g||!A()||t===ei.Swipe&&Math.abs(g.getCurrentVelocities().scale)>.01)return;let o={...S},i={...S},l=K(j()?o.scale:L.scale),a=g.getCurrentVelocities(),s=F();n=n||{};let c=(n.currentTouch?.length||0)>1,u=n.velocityX||0,d=n.velocityY||0,f=n.center;n.srcEvent&&(f=Z(W(n.srcEvent)));let m=n.deltaX||0,h=n.deltaY||0;switch(t){case ei.MoveRight:m=n.deltaX||100;break;case ei.MoveLeft:m=n.deltaX||-100;break;case ei.MoveUp:h=n.deltaY||-100;break;case ei.MoveDown:h=n.deltaY||100}let y=[];switch(t){case ei.Reset:(i={...el}).scale=G();break;case ei.Pan:case ei.Move:case ei.MoveLeft:case ei.MoveRight:case ei.MoveUp:case ei.MoveDown:if(eE()){let e=1,t=1;i.x<=l.x[0]&&u<=0&&(e=.2*Math.max(.01,1-Math.abs(1/s.width*Math.abs(i.x-l.x[0])))),i.x>=l.x[1]&&u>=0&&(e=.2*Math.max(.01,1-Math.abs(1/s.width*Math.abs(i.x-l.x[1])))),i.y<=l.y[0]&&d<=0&&(t=.2*Math.max(.01,1-Math.abs(1/s.height*Math.abs(i.y-l.y[0])))),i.y>=l.y[1]&&d>=0&&(t=.2*Math.max(.01,1-Math.abs(1/s.height*Math.abs(i.y-l.y[1])))),i.x+=m*e,i.y+=h*t}else i.x=p(l.x[0],i.x+m,l.x[1]),i.y=p(l.y[0],i.y+h,l.y[1]);break;case ei.Swipe:let v=(e=0)=>Math.sign(e)*Math.pow(Math.abs(e),1.5);i.x+=p(-1e3,v(u),1e3),i.y+=p(-1e3,v(d),1e3),d&&!u&&(i.x=p(l.x[0],i.x,l.x[1])),!d&&u&&(i.y=p(l.y[0],i.y,l.y[1])),a.x=u,a.y=d;break;case ei.ZoomTo:i.scale=n.scale||1;break;case ei.ZoomIn:i.scale=i.scale*(n.scale||2),c||(i.scale=Math.min(i.scale,U()));break;case ei.ZoomOut:i.scale=i.scale*(n.scale||.5),c||(i.scale=Math.max(i.scale,B()));break;case ei.ToggleCover:y=[G(),X()];break;case ei.ToggleFull:y=[G(),Y()];break;case ei.ToggleMax:y=[G(),U()];break;case ei.IterateZoom:y=[G(),Y(),U()];break;case ei.Zoom:let b=Y();i.scale>=b-.05?i.scale=G():i.scale=Math.min(b,i.scale*(n.scale||2));break;case ei.RotateCW:i.angle+=90;break;case ei.RotateCCW:i.angle-=90;break;case ei.FlipX:i.flipX*=-1;break;case ei.FlipY:i.flipY*=-1}if(void 0!==L.angle&&Math.abs(L.angle)>=360&&(i.angle-=360*Math.floor(L.angle/360),L.angle-=360*Math.floor(L.angle/360)),y.length){let e=y.findIndex(e=>e>i.scale+1/et);i.scale=y[e]||y[0]}if(c&&(i.scale=p(B()*(c?.8:1),i.scale,U()*(c?1.6:1))),j()){let e=q(i.scale);if(e){let{x:t,y:n}=e;i.x=t,i.y=n}}else if(Math.abs(i.scale-o.scale)>1e-4){let t=0,n=0;if(f)t=f.x,n=f.y;else{let o=e.getBoundingClientRect();t=o.x+.5*o.width,n=o.y+.5*o.height}let r=t-s.left,a=n-s.top;r-=.5*s.width,a-=.5*s.height;let u=(r-o.x)/o.scale,d=(a-o.y)/o.scale;i.x=r-u*i.scale,i.y=a-d*i.scale,!c&&P("bounds")&&(l=K(i.scale),i.x=p(l.x[0],i.x,l.x[1]),i.y=p(l.y[0],i.y,l.y[1]))}if(t===ei.Swipe){let e=500*i.scale;g.spring({tension:94,friction:17,maxSpeed:e,restDelta:.1,restSpeed:.1,velocity:a})}else t===ei.Pan||c?g.spring({tension:900,friction:17,restDelta:.01,restSpeed:.01,maxSpeed:1}):g.spring({tension:170,friction:17,restDelta:.001,restSpeed:.001,maxSpeed:1/0,velocity:a});if(0===n.velocity||w(L,i))L={...i},S={...i},g.end(),ef(),ee();else{if(w(S,i))return;g.from(L).to(i).start()}C("action",t)}function ef(){if(!r||!i||!u)return;let{width:t,height:n}=H();Object.assign(i.style,{maxWidth:`min(${t}px, 100%)`,maxHeight:`min(${n}px, 100%)`});let{x:o,y:l,width:a,height:s,scale:c,angle:d,flipX:f,flipY:g}=function(){let{width:t,height:n}=H(),{width:o,height:i}=D();if(!e)return{x:0,y:0,width:0,height:0,scale:0,flipX:0,flipY:0,angle:0,fitWidth:o,fitHeight:i,fullWidth:t,fullHeight:n};let{x:r,y:l,scale:a,angle:s,flipX:c,flipY:u}=L,d=1/Y(),f=t,g=n,m=L.scale*d,p=S.scale*d,h=Math.max(o,i),y=Math.min(o,i);t>n?(f=h,g=y):(f=y,g=h),m=t>n?h*a/t||1:h*a/n||1;let v=f?t*p:0,b=g?n*p:0,E=f&&g?t*m/v:0;return{x:r=r+.5*f-.5*v,y:l=l+.5*g-.5*b,width:v,height:b,scale:E,flipX:c,flipY:u,angle:s,fitWidth:o,fitHeight:i,fullWidth:t,fullHeight:n}}(),m=`translate(${eo(o)}px, ${eo(l)}px)`;1!==f||1!==g?m+=` scaleX(${eo(c*f)}) scaleY(${eo(c*g)})`:m+=` scale(${eo(c)})`,0!==d&&(m+=` rotate(${d}deg)`),u.style.width=`${eo(a)}px`,u.style.height=`${eo(s)}px`,u.style.transform=`${m}`,C("render")}function eg(){let e=S.scale,t,n=P("clickAction"),o=G();if(n){let i=[];switch(n){case ei.ZoomIn:o=e*(t||2);break;case ei.ZoomOut:o=e*(t||.5);break;case ei.ToggleCover:i=[G(),X()];break;case ei.ToggleFull:i=[G(),Y()];break;case ei.ToggleMax:i=[G(),U()];break;case ei.IterateZoom:i=[G(),Y(),U()];break;case ei.Zoom:let r=Y();o=e>=r-.05?G():Math.min(r,e*(t||2))}if(i.length){let t=i.findIndex(t=>t>e+1/et);o=i[t]||G()}}return p(B(),o,U())}function em(){return!!(A()&&eg()>S.scale)}function ep(){return!!(A()&&eg()<S.scale)}function eh(){return!!(A()&&S.scale>B())}function ey(){return!!(A()&&S.scale<U())}function ev(){return!!(A()&&S.scale<Y())}function eb(){return!!(A()&&ew()&&f&&!j())}function eE(){return!!(A()&&f?.isPointerDown()&&!j())}function ew(){return!!(A()&&S.scale>G())}function ex(){return!!(A()&&S.scale>=Y())}function eM(){let t="in-fullscreen",n="with-panzoom-in-fullscreen";e?.classList.toggle(t);let o=e?.classList.contains(t);o?(document.documentElement.classList.add(n),document.addEventListener("keydown",eL,!0)):(document.documentElement.classList.remove(n),document.removeEventListener("keydown",eL,!0)),ef(),C(o?"enterFS":"exitFS")}function eL(e){"Escape"!==e.key||e.defaultPrevented||eM()}let eS={canDrag:eb,canZoomIn:ey,canZoomOut:eh,canZoomToFull:ev,destroy:function(){for(let e of(C("destroy"),Object.values(M)))e?.destroy(eS);for(let e of T)e();return i&&(i.style.aspectRatio="",i.style.maxWidth="",i.style.maxHeight=""),u&&(u.style.width="",u.style.height="",u.style.transform=""),i=void 0,r=void 0,u=void 0,L={...el},S={...el},g?.destroy(),g=void 0,f?.destroy(),f=void 0,E=ea.Destroyed,eS},emit:C,execute:er,getBoundaries:K,getContainer:function(){return e},getContent:function(){return r},getFullDim:H,getGestures:function(){return f},getMousemovePos:q,getOptions:function(){return x},getPlugins:function(){return M},getScale:N,getStartPosition:$,getState:function(){return E},getTransform:function(e){return!0===e?S:L},getTween:function(){return g},getViewport:function(){return u},getWrapper:function(){return i},init:function(){return E=ea.Init,C("init"),function(){for(let[e,t]of Object.entries({...o,...x.plugins||{}}))if(e&&!M[e]&&t instanceof Function){let n=t();n.init(eS),M[e]=n}C("initPlugins")}(),function(){let t={...es.classes,...P("classes")};if(e&&(y(e,t.container),r=e.querySelector("."+t.content))){if(r.setAttribute("draggable","false"),(i=e.querySelector("."+t.wrapper))||(y(i=document.createElement("div"),t.wrapper),r.insertAdjacentElement("beforebegin",i),i.insertAdjacentElement("afterbegin",r)),(u=e.querySelector("."+t.viewport))||(y(u=document.createElement("div"),t.viewport),u.insertAdjacentElement("afterbegin",r),i.insertAdjacentElement("beforeend",u)),(l=r.cloneNode(!0)).removeAttribute("id"),i.insertAdjacentElement("afterbegin",l),r instanceof HTMLPictureElement&&(r=r.querySelector("img")),l instanceof HTMLPictureElement&&(l=l.querySelector("img")),u instanceof HTMLPictureElement&&(u=u.querySelector("img")),u&&(u.style.visibility="hidden",P("protected"))){u.addEventListener("contextmenu",e=>{en(e)});let e=document.createElement("div");y(e,"f-panzoom__protected"),u.appendChild(e)}C("initLayout")}}(),function(){if(e&&i&&!m){let e=null;(m=new ResizeObserver(()=>{A()&&(e=e||requestAnimationFrame(()=>{A()&&(ee(),J(),C("refresh")),e=null}))})).observe(i),T.push(()=>{m?.disconnect(),m=void 0,e&&(cancelAnimationFrame(e),e=null)})}}(),function(){if(!e||!r)return;if(!(r instanceof HTMLImageElement&&l instanceof HTMLImageElement))return _();let t=()=>{r&&r instanceof HTMLImageElement&&r.decode().then(()=>{_()}).catch(()=>{_()})};(E=ea.Loading,e.classList.add("is-loading"),C("loading"),l.src&&l.complete)?t():(function(){if(!e||e?.querySelector(".f-spinner"))return;let t=c(P("spinnerTpl"));t&&(t.classList.add("f-spinner"),e.classList.add("is-loading"),i?.insertAdjacentElement("afterbegin",t))}(),l.addEventListener("load",t,!1),l.addEventListener("error",t,!1),T.push(()=>{l?.removeEventListener("load",t,!1),l?.removeEventListener("error",t,!1)}))}(),eS},isDragging:eE,isExpanded:ew,isFullsize:ex,isMousemoveMode:j,localize:function(e,t=[]){let n=P("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.replace(/\{\{(.*?)\}\}/g,(e,t)=>t)},off:function(e,t){for(let n of e instanceof Array?e:[e])R.has(n)&&R.set(n,R.get(n).filter(e=>e!==t));return eS},on:function(e,t){for(let n of e instanceof Array?e:[e])R.set(n,[...R.get(n)||[],t]);return eS},toggleFS:eM,updateControls:ee,version:"6.1.7",willZoomIn:em,willZoomOut:ep};return eS};ef.l10n={en_EN:ee},ef.getDefaults=()=>es;let eg=(e,t)=>{let n=[];return e.childNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE&&(!t||e.matches(t))&&n.push(e)}),n},em={...ee,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"},ep=e=>{e.cancelable&&e.preventDefault()},eh=((O={})[O.Init=0]="Init",O[O.Ready=1]="Ready",O[O.Destroyed=2]="Destroyed",O),ey=((I={})[I.Loading=0]="Loading",I[I.Loaded=1]="Loaded",I[I.Error=2]="Error",I),ev={adaptiveHeight:!1,center:!0,classes:{container:"f-carousel",isEnabled:"is-enabled",isLTR:"is-ltr",isRTL:"is-rtl",isHorizontal:"is-horizontal",isVertical:"is-vertical",hasAdaptiveHeight:"has-adaptive-height",viewport:"f-carousel__viewport",slide:"f-carousel__slide",isSelected:"is-selected"},dragFree:!1,enabled:!0,errorTpl:'<div class="f-html">{{ERROR}}</div>',fill:!1,infinite:!0,initialPage:0,l10n:em,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},eb=0,eE=(e,t={},o={})=>{let i,r,u,f,m;eb++;let E=eh.Init,w={...ev},x={...ev},M={},L=null,S=null,T=0,P=0,A=0,R=!1,C=!1,O=!1,I="height",z=0,k=!0,_=0,$=0,F=0,H=0,D="*",q=[],N=[],B=new Set,W=[],Z=[],G=0,X=0,Y=0;function U(e,...t){let n=x[e];return n&&n instanceof Function?n(e$,...t):n}function K(e,t=[]){let n=U("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.replace(/\{\{(.*?)\}\}/g,(e,t)=>t)}let J=new Map;function ee(e,...t){let n=[...J.get(e)||[]];for(let o of(x.on&&n.push(x.on[e]),n))o&&o instanceof Function&&o(e$,...t);"*"!==e&&ee("*",e,...t)}function et(){let e=g({},ev,w);g(e,ev,w);let t="",n=w.breakpoints||{};if(n)for(let[o,i]of Object.entries(n))window.matchMedia(o).matches&&(t+=o,g(e,i));if(void 0===m||t!==m){if(m=t,E!==eh.Init){let t=Z[_]?.slides[0]?.index;for(let n of(void 0===t&&(t=x.initialSlide),e.initialSlide=t,e.slides=[],q))n.isVirtual&&e.slides.push(n)}ez(),x=e,!1!==U("enabled")&&(E=eh.Init,ee("init"),function(){for(let[e,t]of Object.entries({...o,...x.plugins||{}}))if(e&&!M[e]&&t instanceof Function){let n=t();n.init(e$,eE),M[e]=n}ee("initPlugins")}(),function(){if(!L)return;let e=U("classes")||{};y(L,e.container);let t=U("style");if(t&&l(t))for(let[e,n]of Object.entries(t))L.style.setProperty(e,n);(S=L.querySelector(`.${e.viewport}`))||(y(S=document.createElement("div"),e.viewport),S.append(...eg(L,`.${e.slide}`)),L.insertAdjacentElement("afterbegin",S)),L.carousel=e$,ee("initLayout")}(),function(){if(!S)return;let e=U("classes")||{};for(let t of(q=[],[...eg(S,`.${e.slide}`)].forEach(e=>{if(e.parentElement){let t=ef({el:e,isVirtual:!1,...e.dataset||{}});ee("createSlide",t),q.push(t)}}),ew(),q))ee("addSlide",t);for(let e of(ed(U("slides")),q)){let t=e.el;t?.parentElement===S&&(y(t,x.classes.slide),y(t,e.class),eR(e),ee("attachSlideEl",e))}ee("initSlides")}(),ex(),E=eh.Ready,y(L,(U("classes")||{}).isEnabled||""),eI(),el(),r=V().on("start",()=>{i&&i.isPointerDown()||(er(),eI())}).on("step",e=>{let t=z;(z=e.pos)!==t&&(k=!1,eI())}).on("end",e=>{!i?.isPointerDown()&&(z=e.pos,r&&!R&&(z<F||z>H)?r.spring({clamp:!0,mass:1,tension:200,friction:25,velocity:0,restDelta:1,restSpeed:1}).from({pos:z}).to({pos:p(F,z,H)}).start():k||(k=!0,ee("settle")))}),eo(),function(){if(!L||!S)return;L.addEventListener("click",eT),document.addEventListener("mousemove",en);let e=S.getBoundingClientRect();if(G=e.height,X=e.width,!u){let e=null;(u=new ResizeObserver(()=>{e||(e=requestAnimationFrame(()=>{(function(){if(E!==eh.Ready||!S)return;let e=Z.length,t=S.getBoundingClientRect(),n=t.height,o=t.width;e>1&&(O&&.5>Math.abs(n-G)||!O&&.5>Math.abs(o-X))||(ex(),eo(),G=n,X=o,O&&!G||!O&&!X||L&&S&&(e===Z.length&&i?.isPointerDown()||(U("dragFree")&&(R||z>F&&z<H)?(er(),eI()):eC(_,{transition:!1}))))})(),e=null}))})).observe(S)}}(),ee("ready"))}}function en(e){n=e}function eo(){if(!1===U("gestures"))i&&(i.destroy(),i=void 0);else{let e;i||(e=U("gestures"),!i&&!1!==e&&S&&(i=Q(S,e).on("start",e=>{if(!r||!1===U("gestures",e))return;let{srcEvent:t}=e;O&&j(t)&&!d(t.target)&&ep(t),r.pause(),r.getCurrentVelocities().pos=0;let n=Z[_]?.slides[0],o=n?.el;if(n&&B.has(n.index)&&o){let e;z=(n.offset||0)+(({width:(e=new DOMMatrixReadOnly(window.getComputedStyle(o).transform)).m41||0,height:e.m42||0})[I]||0)*(C&&!O?1:-1)}eL(),!R&&(z<F||z>H)&&r.spring({clamp:!0,mass:1,tension:500,friction:25,velocity:r.getCurrentVelocities()?.pos||0,restDelta:1,restSpeed:1}).from({pos:z}).to({pos:p(F,z,H)}).start()}).on("move",e=>{if(!1===U("gestures",e))return;let{srcEvent:t,axis:n,deltaX:o,deltaY:i}=e;if(j(t)&&t.touches?.length>1)return;let l=d(t.target),a=l?l.scrollHeight>l.clientHeight?"y":"x":void 0;if(l&&l!==S&&(!n||n===a))return;if(!n){ep(t),t.stopPropagation(),t.stopImmediatePropagation();return}if("y"===n&&!O||"x"===n&&O||(ep(t),t.stopPropagation(),!r))return;let s=C&&!O?1:-1,c=O?i:o,u=r?.isRunning()?r.getEndValues().pos:z,f=1;!R&&(u<=F&&c*s<0?f=.2*Math.max(.01,1-(Math.abs(1/T*Math.abs(u-F))||0)):u>=H&&c*s>0&&(f=.2*Math.max(.01,1-(Math.abs(1/T*Math.abs(u-H))||0)))),u+=c*f*s,r.spring({clamp:!0,mass:1,tension:700,friction:25,velocity:r.getCurrentVelocities()?.pos||0,restDelta:1,restSpeed:1}).from({pos:z}).to({pos:u}).start()}).on("panstart",e=>{!1!==U("gestures",e)&&e?.axis===(O?"y":"x")&&y(S,"is-dragging")}).on("panend",e=>{!1!==U("gestures",e)&&v(S,"is-dragging")}).on("end",e=>{if(!1===U("gestures",e))return;let{srcEvent:t,axis:n,velocityX:o,velocityY:i,currentTouch:l}=e;if(l.length>0||!r)return;let a=d(t.target),s=a?a.scrollHeight>a.clientHeight?"y":"x":void 0,c=a&&(!n||n===s);O&&j(t)&&!e.axis&&eT(t);let u=Z.length,f=U("dragFree");if(!u)return;let g=c?0:U("vertical")?i:o,m=r?.isRunning()?r.getEndValues().pos:z,h=C&&!O?1:-1;if(c||(m+=g*(f?5:1)*h),!R&&(g*h<=0&&m<F||g*h>=0&&m>H)){let e=0;Math.abs(g)>0&&(e=Math.min(.3*T,e=2*Math.abs(g))),m=p(F+-1*e,m,H+e),r.spring({clamp:!0,mass:1,tension:380,friction:25,velocity:-1*g,restDelta:1,restSpeed:1}).from({pos:z}).to({pos:m}).start();return}if(f||M.Autoscroll?.isEnabled())return void(Math.abs(g)>10?r.spring({clamp:!0,mass:1,tension:150,friction:25,velocity:-1*g,restDelta:1,restSpeed:1}).from({pos:z}).to({pos:m}).start():r.isRunning()||k||(k=!0,ee("settle")));if(!(f||M.Autoscroll?.isEnabled())&&(!(e.offsetX||e.offsetY)||"y"===n&&!O||"x"===n&&O))return void eC(_,{transition:"tween"});let y=es(m);Math.abs(g)>10&&y===_&&(g>0?y+=C&&!O?1:-1:y+=C&&!O?-1:1),eC(y,{transition:"tween",tween:{velocity:-1*g}})}).init()))}b(S,"is-draggable",!!i&&Z.length>0)}function ei(e="*"){let t=[];for(let n of q)("*"===e||n.class&&n.class.includes(e)||n.el&&n.el?.classList.contains(e))&&t.push(n);f=void 0,D=e,N=[...t]}function er(){if(!r)return;let e=es(r?.isRunning()?r.getEndValues().pos:z);e!==_&&(f=_,_=e,eR(),el(),ea(),ee("change",_,f))}function el(){if(!L)return;for(let e of L.querySelectorAll("[data-carousel-index]"))e.innerHTML=_+"";for(let e of L.querySelectorAll("[data-carousel-page]"))e.innerHTML=_+1+"";for(let e of L.querySelectorAll("[data-carousel-pages]"))e.innerHTML=Z.length+"";for(let e of L.querySelectorAll("[data-carousel-go-to]"))parseInt(e.dataset?.carouselGoTo||"-1",10)===_?e.setAttribute("aria-current","true"):e.removeAttribute("aria-current");for(let e of L.querySelectorAll("[data-carousel-go-prev]"))e.toggleAttribute("aria-disabled",!ek()),ek()?e.removeAttribute("tabindex"):e.setAttribute("tabindex","-1");for(let e of L.querySelectorAll("[data-carousel-go-next]"))e.toggleAttribute("aria-disabled",!e_()),e_()?e.removeAttribute("tabindex"):e.setAttribute("tabindex","-1");let e=!1,t=Z[_]?.slides[0];for(let n of(t&&(t.downloadSrc||"image"===t.type&&t.src)&&(e=!0),L.querySelectorAll("[data-carousel-download]")))n.toggleAttribute("aria-disabled",!e)}function ea(e){e||(e=Z[_]?.slides[0]);let t=e?.el;if(t)for(let n of t.querySelectorAll("[data-slide-index]"))n.innerHTML=e.index+1+""}function es(e){if(!Z.length)return 0;let t=ec(),n=e;R?n-=Math.floor((e-Z[0]?.pos)/t)*t||0:n=p(Z[0]?.pos,e,Z[Z.length-1]?.pos);let o=new Map,i=0;for(let e of Z){let r=Math.min(Math.abs(e.pos-n),Math.abs(e.pos-n-t),Math.abs(e.pos-n+t));o.set(i,r),i++}return parseInt((o.size>0?[...o.entries()].reduce((e,t)=>t[1]<e[1]?t:e):[_,0])[0])}function ec(e=!0){return N.length?N.reduce((e,t)=>e+t.dim,0)+(N.length-(R&&e?0:1))*Y:0}function eu(e){let t=ec(),n=T;if(!t||!S||!n)return[];let o=[];e=void 0===e?z:e,R&&(e-=Math.floor(e/t)*t||0);let i=0;for(let r of N){let l=(t=0)=>{!(o.indexOf(r)>-1)&&(r.pos=i-e+t||0,r.offset+t>e-r.dim-P+.51&&r.offset+t<e+n+A-.51&&o.push(r))};r.offset=i,R&&(l(t),l(-1*t)),l(),i+=r.dim+Y}return o}function ed(e,t){let n=[];for(let t of Array.isArray(e)?e:[e]){let e=ef({...t,isVirtual:!0});e.el||(e.el=document.createElement("div")),ee("createSlide",e),n.push(e)}for(let e of(q.splice(void 0===t?q.length:t,0,...n),ew(),n))ee("addSlide",e),function(e){let t=e.el;if(!e||!t)return;let n=e.html?e.html instanceof HTMLElement?e.html:c(e.html):void 0;n&&(y(n,"f-html"),e.htmlEl=n,y(t,"has-html"),t.append(n),ee("contentReady",e))}(e);return ei(D),n}function ef(e){return(a(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 em(e){if(!S||!e)return;let t=e.el;if(t){if(t.setAttribute("index",e.index+""),t.parentElement!==S){let n;for(let o of(y(t,x.classes.slide),y(t,e.class),eR(e),q))if(o.index>e.index){n=o.el;break}S.insertBefore(t,n&&S.contains(n)?n:null),ee("attachSlideEl",e)}return ea(e),t}}function ey(e){let t=e?.el;t&&(t.remove(),eM(t),ee("detachSlideEl",e))}function ew(){for(let e=0;e<q.length;e++){let t=q[e],n=t.el;n&&(t.index!==e&&eM(n),n.setAttribute("index",`${e}`)),t.index=e}}function ex(){if(!L||!S)return;C=U("rtl"),I=(O=U("vertical"))?"height":"width";let e=U("classes");if(b(L,e.isLTR,!C),b(L,e.isRTL,C),b(L,e.isHorizontal,!O),b(L,e.isVertical,O),b(L,e.hasAdaptiveHeight,U("adaptiveHeight")),T=0,P=0,A=0,Y=0,S){S.childElementCount||(S.style.display="grid");let e=S.getBoundingClientRect();T=S.getBoundingClientRect()[I]||0;let t=window.getComputedStyle(S);Y=parseFloat(t.getPropertyValue("--f-carousel-gap"))||0,"visible"===t.getPropertyValue("overflow-"+(O?"y":"x"))&&(P=Math.abs(e[O?"top":"left"]),A=Math.abs(window[O?"innerHeight":"innerWidth"]-e[O?"bottom":"right"])),S.style.display=""}if(!T)return;let t=function(){let e=0;if(S){let t=document.createElement("div");t.style.display="block",y(t,x.classes.slide),S.appendChild(t),e=t.getBoundingClientRect()[I],t.remove(),t=void 0}return e}();for(let e of N){let n=e.el,o=0;if(!e.isVirtual&&n&&s(n)){let e=!1;n.parentElement&&n.parentElement===S||(S.appendChild(n),e=!0),o=n.getBoundingClientRect()[I],e&&n.parentElement?.removeChild(n)}else o=t;e.dim=o}if(R=!1,U("infinite")){R=!0;let e=ec(),t=T+P+A;for(let n=0;n<N.length;n++){let o=N[n]?.dim+Y;if(e-o<t&&e-o-t<o){R=!1;break}}}if(!function(){let e;if(!L)return;let t=T,n=ec(!1),o=U("slidesPerPage");o="auto"===o?1/0:parseFloat(o+""),Z=[];let i=0,r=0;for(let e of N)(!Z.length||i+e.dim-t>.05||r>=o)&&(Z.push({index:Z.length,slides:[],dim:0,offset:0,pos:0}),i=0,r=0),Z[Z.length-1]?.slides.push(e),i+=e.dim+Y,r++;let l=U("center"),a=U("fill"),s=0;for(let e of Z){for(let t of(e.dim=(e.slides.length-1)*Y,e.slides))e.dim+=t.dim;e.offset=s,e.pos=s,!1!==l&&(e.pos-=(t-e.dim)*.5),a&&!R&&n>t&&(e.pos=p(0,e.pos,n-t)),s+=e.dim+Y}let c=[];for(let t of Z){let n={...t};e&&.1>Math.abs(n.pos-e.pos)?(e.dim+=n.dim,e.slides=[...e.slides,...n.slides]):(e=n,n.index=c.length,c.push(n))}_=p(0,_,(Z=c).length-1)}(),F=Z[0]?.pos||0,H=Z[Z.length-1]?.pos||0,E===eh.Init){let e;f=void 0,_=U("initialPage"),void 0!==(e=U("initialSlide")||void 0)&&(_=e$.getPageIndex(e)||0),_=p(0,_,Z.length-1),$=z=Z[_]?.pos||0}else $=Z[_||0]?.pos||0;ee("refresh"),el()}function eM(e){if(!e||!s(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 o=[`f-${n}Out`,`f-${n}In`,"to-prev","to-next","from-prev","from-next"];e.removeEventListener("animationend",eS),v(e,o.join(" ")),B.delete(t)}function eL(){if(!S)return;let e=B.size>0;for(let e of N)eM(e.el);B.clear(),e&&eI()}function eS(e){e.animationName?.substring(0,2)==="f-"&&(eM(e.target),!B.size&&(v(L,"in-transition"),!k&&.5>Math.abs(e$.getPosition(!0)-$)&&(k=!0,ee("settle"))),eI())}function eT(e){if(e.defaultPrevented)return;let t=e.composedPath()[0];if(t.closest("[data-carousel-go-prev]")){ep(e),e$.prev();return}if(t.closest("[data-carousel-go-next]")){ep(e),e$.next();return}let n=t.closest("[data-carousel-go-to]");if(n){ep(e),e$.goTo(parseFloat(n.dataset.carouselGoTo||"")||0);return}if(t.closest("[data-carousel-download]")){ep(e);let t=Z[_]?.slides[0];if(t&&(t.downloadSrc||"image"===t.type&&t.src)){let e=t.downloadFilename,n=document.createElement("a"),o=t.downloadSrc||t.src||"";n.href=o,n.target="_blank",n.download=e||o,n.click()}return}ee("click",e)}function eP(e){let t=e.el;t&&t.querySelector(".f-spinner")?.remove()}function eA(e){let t=e.el;t&&(t.querySelector(".f-html.is-error")?.remove(),v(t,"has-error"))}function eR(e){e||(e=Z[_]?.slides[0]);let t=e?.el;if(!t)return;let n=U("formatCaption",e);void 0===n&&(n=e.caption),n=n||"";let o=U("captionEl");if(o&&o instanceof HTMLElement){if(e.index!==_)return;if(a(n)&&(o.innerHTML=K(n+"")),n instanceof HTMLElement){if(n.parentElement===o)return;o.innerHTML="",n.parentElement&&(n=n.cloneNode(!0)),o.append(n)}return}if(!n)return;let i=e.captionEl||t.querySelector(".f-caption");!i&&n instanceof HTMLElement&&n.classList.contains("f-caption")&&(i=n),!i&&(y(i=document.createElement("div"),"f-caption"),a(n)?i.innerHTML=K(n+""):n instanceof HTMLElement&&(n.parentElement&&(n=n.cloneNode(!0)),i.append(n)));let r=`f-caption-${eb}_${e.index}`;i.setAttribute("id",r),i.dataset.selectable="true",y(t,"has-caption"),t.setAttribute("aria-labelledby",r),e.captionEl=i,t.insertAdjacentElement("beforeend",i)}function eC(e,t={}){let{transition:n,tween:o}={...{transition:x.transition,tween:x.tween},...t||{}};if(!L||!r)return;let i=Z.length;if(!i||function(e,t){if(!L||!T||!r||!t||!a(t)||"tween"===t)return!1;for(let e of W)if(T-e.dim>.5)return!1;if(P>.5||A>.5)return;let n=Z.length,o=e>_?1:-1;e=R?(e%n+n)%n:p(0,e,n-1),C&&(o*=-1);let i=Z[_]?.slides[0],l=i?.index,s=Z[e]?.slides[0],c=s?.index,u=Z[e]?.pos;if(void 0===c||void 0===l||l===c||z===u||Math.abs(T-(s?.dim||0))>1)return!1;k=!1,r.pause(),eL(),y(L,"in-transition"),z=$=u;let d=em(i),f=em(s);return er(),d&&(B.add(l),d.style.transform="",d.addEventListener("animationend",eS),v(d,x.classes.isSelected),d.inert=!1,y(d,`f-${t}Out to-${o>0?"next":"prev"}`)),f&&(B.add(c),f.style.transform="",f.addEventListener("animationend",eS),y(f,x.classes.isSelected),f.inert=!1,y(f,`f-${t}In from-${o>0?"prev":"next"}`)),eI(),!0}(e,n))return;e=R?(e%i+i)%i:p(0,e,i-1),$=Z[e||0]?.pos||0;let s=r.isRunning()?r.getEndValues().pos:z;if(1>Math.abs($-s)){z=$,_!==e&&(eR(),f=_,_=e,el(),ea(),ee("change",_,f)),eI(),k||(k=!0,ee("settle"));return}if(r.pause(),eL(),R){let e=ec(),t=Math.floor((s-Z[0]?.pos)/e)||0,n=$+t*e,o=n-e;$=[n+e,n,o].reduce(function(e,t){return Math.abs(t-s)<Math.abs(e-s)?t:e})}!1!==n&&l(o)?r.spring(g({},x.tween,o)).from({pos:z}).to({pos:$}).start():(z=$,er(),eI(),k||(k=!0,ee("settle")))}function eO(e){let t=z;if(R&&!0!==e){let e=ec();t-=(Math.floor((z-Z[0]?.pos||0)/e)||0)*e}return t}function eI(){let e;if(!L||!S)return;W=eu();let t=new Set,n=[],o=Z[_],i=x.setTransform;for(let i of N){let r=B.has(i.index),l=W.indexOf(i)>-1,a=o?.slides?.indexOf(i)>-1;if(i.isVirtual&&!r&&!l)continue;let s=em(i);if(s&&(n.push(i),a&&t.add(s),U("adaptiveHeight")&&a)){let t=(s.firstElementChild||s).getBoundingClientRect().height;e=void 0==e?t:Math.max(e,t)}}S&&e&&(S.style.height=`${e}px`),[...eg(S,`.${x.classes.slide}`)].forEach(e=>{b(e,x.classes.isSelected,t.has(e));let n=q[parseInt(e.getAttribute("index")||"-1")];if(!n){e.remove(),eM(e);return}let o=B.has(n.index),r=W.indexOf(n)>-1;if(n.isVirtual&&!o&&!r)return void ey(n);if(e.inert=!r,!1===i)return;let l=n.pos?Math.round(1e4*n.pos)/1e4:0,a=0,s=0,c=0,u=0;o||(a=O?0:C?-1*l:l,s=O?l:0,c=h(a,0,n.dim,0,100),u=h(s,0,n.dim,0,100)),i instanceof Function&&!o?i(e$,n,{x:a,y:s,xPercent:c,yPercent:u}):e.style.transform=a||s?`translate3d(${c}%, ${u}%,0)`:""}),ee("render",n)}function ez(){for(let e of(L?.removeEventListener("click",eT),document.removeEventListener("mousemove",en),B.clear(),u?.disconnect(),u=void 0,q)){let t=e.el;t&&s(t)&&(e.state=void 0,eP(e),eA(e),e.isVirtual?(ey(e),e.el=void 0):(eM(t),t.style.transform="",S&&!S.contains(t)&&S.appendChild(t)))}for(let e of Object.values(M))e?.destroy();for(let[e,t]of(M={},i?.destroy(),i=void 0,r?.destroy(),r=void 0,Object.entries(x.classes||{})))"container"!==e&&v(L,t);v(S,"is-draggable")}function ek(){return R||_>0}function e_(){return R||_<Z.length-1}let e$={add:function(e,t){let n=z,o=_,i=ec(),l=r?.isRunning()?r.getEndValues().pos:z,a=i&&Math.floor((l-(Z[0]?.pos||0))/i)||0;return ed(e,t),ei(D),ex(),r&&i&&(o===_&&(n-=a*i),n===$?z=$:r.spring({clamp:!0,mass:1,tension:300,friction:25,restDelta:1,restSpeed:1}).from({pos:n}).to({pos:$}).start()),eI(),e$},canGoPrev:ek,canGoNext:e_,destroy:function(){return ee("destroy"),window.removeEventListener("resize",et),ez(),J.clear(),L=null,Z=[],q=[],x={...ev},M={},N=[],m=void 0,D="*",E=eh.Destroyed,e$},emit:ee,filter:function(e="*"){return ei(e),ex(),z=p(F,z,H),eI(),ee("filter",e),e$},getContainer:function(){return L},getGapDim:function(){return Y},getGestures:function(){return i},getLastMouseMove:function(){return n},getOption:function(e){return U(e)},getOptions:function(){return x},getPage:function(){return Z[_]},getPageIndex:function(e){if(void 0!==e){for(let t of Z||[])for(let n of t.slides)if(n.index===e)return t.index;return -1}return _},getPageIndexFromPosition:es,getPageProgress:function(e,t){void 0===e&&(e=_);let n=Z[e];if(!n)return e>_?-1:1;let o=ec(),i=Y,r=n.pos,l=eO();if(R&&!0!==t){let e=Math.floor((l-Z[0]?.pos)/o)||0;l-=e*o,r=[r+o,r,r-o].reduce(function(e,t){return Math.abs(t-l)<Math.abs(e-l)?t:e})}return(l-r)/(n.dim+i)||0},getPageVisibility:function(e){void 0===e&&(e=_);let t=Z[e];if(!t)return e>_?-1:1;let n=eO(),o=T,i=t.pos;if(R){let e=ec(),t=i+(Math.floor((n-Z[0]?.pos)/e)||0)*e,o=t-e;i=[t+e,t,o].reduce(function(e,t){return Math.abs(t-n)<Math.abs(e-n)?t:e})}return i>n&&i+t.dim<n+o?1:i<n?(i+t.dim-n)/t.dim||0:i+t.dim>n+o&&(n+o-i)/t.dim||0},getPages:function(){return Z},getPlugins:function(){return M},getPosition:eO,getSlides:function(){return q},getState:function(){return E},getTotalSlideDim:ec,getTween:function(){return r},getViewport:function(){return S},getViewportDim:function(){return T},getVisibleSlides:function(e){return void 0===e?W:eu(e)},goTo:eC,hasNavigated:function(){return void 0!==f},hideError:eA,hideLoading:eP,init:function(){if(!e||!s(e))throw Error("No Element found");return E!==eh.Init&&(ez(),E=eh.Init),L=e,w=t,window.removeEventListener("resize",et),w.breakpoints&&window.addEventListener("resize",et),et(),e$},isInfinite:function(){return R},isInTransition:function(){return B.size>0},isRTL:function(){return C},isSettled:function(){return k},isVertical:function(){return O},localize:function(e,t=[]){return K(e,t)},next:function(e={}){return eC(_+1,e),e$},off:function(e,t){for(let n of e instanceof Array?e:[e])J.has(n)&&J.set(n,J.get(n).filter(e=>e!==t));return e$},on:function(e,t){for(let n of e instanceof Array?e:[e])J.set(n,[...J.get(n)||[],t]);return e$},prev:function(e={}){return eC(_-1,e),e$},reInit:function(e={},n){return ez(),E=eh.Init,m=void 0,D="*",t=e,w=e,l(n)&&(o=n),et(),e$},remove:function(e){void 0===e&&(e=q.length-1);let t=q[e];return t&&(ee("removeSlide",t),t.el&&(eM(t.el),t.el.remove(),t.el=void 0),q.splice(e,1),ei(D),ex(),z=p(F,z,H),eI()),e$},setPosition:function(e){z=e,er(),eI()},showError:function(e,t){eP(e),eA(e);let n=e.el;if(n){let o=document.createElement("div");y(o,"f-html"),y(o,"is-error"),o.innerHTML=K(t||"<p>{{ERROR}}</p>"),e.htmlEl=o,y(n,"has-html"),y(n,"has-error"),n.insertAdjacentElement("afterbegin",o),ee("contentReady",e)}return e$},showLoading:function(e){let t=e.el,n=t?.querySelector(".f-spinner");if(!t||n)return e$;let o=c(U("spinnerTpl"));return o&&(y(o,"f-spinner"),t.insertAdjacentElement("beforeend",o)),e$},version:"6.1.7"};return e$};eE.l10n={en_EN:em},eE.getDefaults=()=>ev;let ew=function(e="",t="",n=""){return e.split(t).join(n)},ex={tpl:e=>`<img clas