UNPKG

@fancyapps/ui

Version:

Robust JavaScript UI Component Library

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