UNPKG

swiper

Version:

Most modern mobile touch slider and framework with hardware accelerated transitions

13 lines (12 loc) 74.8 kB
/** * Swiper Custom Element 9.0.4 * Most modern mobile touch slider and framework with hardware accelerated transitions * https://swiperjs.com * * Copyright 2014-2023 Vladimir Kharlampidi * * Released under the MIT License * * Released on: February 10, 2023 */ !function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(i,s){void 0===i&&(i={}),void 0===s&&(s={}),Object.keys(s).forEach((r=>{void 0===i[r]?i[r]=s[r]:e(s[r])&&e(i[r])&&Object.keys(s[r]).length>0&&t(i[r],s[r])}))}const i={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector:()=>null,querySelectorAll:()=>[],getElementById:()=>null,createEvent:()=>({initEvent(){}}),createElement:()=>({children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName:()=>[]}),createElementNS:()=>({}),importNode:()=>null,location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function s(){const e="undefined"!=typeof document?document:{};return t(e,i),e}const r={document:i,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle:()=>({getPropertyValue:()=>""}),Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia:()=>({}),requestAnimationFrame:e=>"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0),cancelAnimationFrame(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function n(){const e="undefined"!=typeof window?window:{};return t(e,r),e}function a(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function o(){return Date.now()}function l(e,t){void 0===t&&(t="x");const i=n();let s,r,a;const o=function(e){const t=n();let i;return t.getComputedStyle&&(i=t.getComputedStyle(e,null)),!i&&e.currentStyle&&(i=e.currentStyle),i||(i=e.style),i}(e);return i.WebKitCSSMatrix?(r=o.transform||o.webkitTransform,r.split(",").length>6&&(r=r.split(", ").map((e=>e.replace(",","."))).join(", ")),a=new i.WebKitCSSMatrix("none"===r?"":r)):(a=o.MozTransform||o.OTransform||o.MsTransform||o.msTransform||o.transform||o.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),s=a.toString().split(",")),"x"===t&&(r=i.WebKitCSSMatrix?a.m41:16===s.length?parseFloat(s[12]):parseFloat(s[4])),"y"===t&&(r=i.WebKitCSSMatrix?a.m42:16===s.length?parseFloat(s[13]):parseFloat(s[5])),r||0}function d(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function c(e){return"undefined"!=typeof window&&void 0!==window.HTMLElement?e instanceof HTMLElement:e&&(1===e.nodeType||11===e.nodeType)}function p(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let i=1;i<arguments.length;i+=1){const s=i<0||arguments.length<=i?void 0:arguments[i];if(null!=s&&!c(s)){const i=Object.keys(Object(s)).filter((e=>t.indexOf(e)<0));for(let t=0,r=i.length;t<r;t+=1){const r=i[t],n=Object.getOwnPropertyDescriptor(s,r);void 0!==n&&n.enumerable&&(d(e[r])&&d(s[r])?s[r].__swiper__?e[r]=s[r]:p(e[r],s[r]):!d(e[r])&&d(s[r])?(e[r]={},s[r].__swiper__?e[r]=s[r]:p(e[r],s[r])):e[r]=s[r])}}}return e}function u(e,t,i){e.style.setProperty(t,i)}function h(e){let{swiper:t,targetPosition:i,side:s}=e;const r=n(),a=-t.translate;let o,l=null;const d=t.params.speed;t.wrapperEl.style.scrollSnapType="none",r.cancelAnimationFrame(t.cssModeFrameID);const c=i>a?"next":"prev",p=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,u=()=>{o=(new Date).getTime(),null===l&&(l=o);const e=Math.max(Math.min((o-l)/d,1),0),n=.5-Math.cos(e*Math.PI)/2;let c=a+n*(i-a);if(p(c,i)&&(c=i),t.wrapperEl.scrollTo({[s]:c}),p(c,i))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[s]:c})})),void r.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=r.requestAnimationFrame(u)};u()}function f(e,t){return void 0===t&&(t=""),[...e.children].filter((e=>e.matches(t)))}function m(e,t){return n().getComputedStyle(e,null).getPropertyValue(t)}function v(e){let t,i=e;if(i){for(t=0;null!==(i=i.previousSibling);)1===i.nodeType&&(t+=1);return t}}function g(e,t,i){const s=n();return i?e["width"===t?"offsetWidth":"offsetHeight"]+parseFloat(s.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-right":"margin-top"))+parseFloat(s.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-left":"margin-bottom")):e.offsetWidth}let w,A,b;function S(){return w||(w=function(){const e=n(),t=s();return{smoothScroll:t.documentElement&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch)}}()),w}function T(e){return void 0===e&&(e={}),A||(A=function(e){let{userAgent:t}=void 0===e?{}:e;const i=S(),s=n(),r=s.navigator.platform,a=t||s.navigator.userAgent,o={ios:!1,android:!1},l=s.screen.width,d=s.screen.height,c=a.match(/(Android);?[\s\/]+([\d.]+)?/);let p=a.match(/(iPad).*OS\s([\d_]+)/);const u=a.match(/(iPod)(.*OS\s([\d_]+))?/),h=!p&&a.match(/(iPhone\sOS|iOS)\s([\d_]+)/),f="Win32"===r;let m="MacIntel"===r;return!p&&m&&i.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${l}x${d}`)>=0&&(p=a.match(/(Version)\/([\d.]+)/),p||(p=[0,1,"13_0_0"]),m=!1),c&&!f&&(o.os="android",o.android=!0),(p||h||u)&&(o.os="ios",o.ios=!0),o}(e)),A}function E(){return b||(b=function(){const e=n();let t=!1;function i(){const t=e.navigator.userAgent.toLowerCase();return t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}if(i()){const i=String(e.navigator.userAgent);if(i.includes("Version/")){const[e,s]=i.split("Version/")[1].split(" ")[0].split(".").map((e=>Number(e)));t=e<16||16===e&&s<2}}return{isSafari:t||i(),needPerspectiveFix:t,isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}()),b}var y={on(e,t,i){const s=this;if(!s.eventsListeners||s.destroyed)return s;if("function"!=typeof t)return s;const r=i?"unshift":"push";return e.split(" ").forEach((e=>{s.eventsListeners[e]||(s.eventsListeners[e]=[]),s.eventsListeners[e][r](t)})),s},once(e,t,i){const s=this;if(!s.eventsListeners||s.destroyed)return s;if("function"!=typeof t)return s;function r(){s.off(e,r),r.__emitterProxy&&delete r.__emitterProxy;for(var i=arguments.length,n=new Array(i),a=0;a<i;a++)n[a]=arguments[a];t.apply(s,n)}return r.__emitterProxy=t,s.on(e,r,i)},onAny(e,t){const i=this;if(!i.eventsListeners||i.destroyed)return i;if("function"!=typeof e)return i;const s=t?"unshift":"push";return i.eventsAnyListeners.indexOf(e)<0&&i.eventsAnyListeners[s](e),i},offAny(e){const t=this;if(!t.eventsListeners||t.destroyed)return t;if(!t.eventsAnyListeners)return t;const i=t.eventsAnyListeners.indexOf(e);return i>=0&&t.eventsAnyListeners.splice(i,1),t},off(e,t){const i=this;return!i.eventsListeners||i.destroyed?i:i.eventsListeners?(e.split(" ").forEach((e=>{void 0===t?i.eventsListeners[e]=[]:i.eventsListeners[e]&&i.eventsListeners[e].forEach(((s,r)=>{(s===t||s.__emitterProxy&&s.__emitterProxy===t)&&i.eventsListeners[e].splice(r,1)}))})),i):i},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,i,s;for(var r=arguments.length,n=new Array(r),a=0;a<r;a++)n[a]=arguments[a];"string"==typeof n[0]||Array.isArray(n[0])?(t=n[0],i=n.slice(1,n.length),s=e):(t=n[0].events,i=n[0].data,s=n[0].context||e),i.unshift(s);return(Array.isArray(t)?t:t.split(" ")).forEach((t=>{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(s,[t,...i])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(s,i)}))})),e}};var x={updateSize:function(){const e=this;let t,i;const s=e.el;t=void 0!==e.params.width&&null!==e.params.width?e.params.width:s.clientWidth,i=void 0!==e.params.height&&null!==e.params.height?e.params.height:s.clientHeight,0===t&&e.isHorizontal()||0===i&&e.isVertical()||(t=t-parseInt(m(s,"padding-left")||0,10)-parseInt(m(s,"padding-right")||0,10),i=i-parseInt(m(s,"padding-top")||0,10)-parseInt(m(s,"padding-bottom")||0,10),Number.isNaN(t)&&(t=0),Number.isNaN(i)&&(i=0),Object.assign(e,{width:t,height:i,size:e.isHorizontal()?t:i}))},updateSlides:function(){const e=this;function t(t){return e.isHorizontal()?t:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[t]}function i(e,i){return parseFloat(e.getPropertyValue(t(i))||0)}const s=e.params,{wrapperEl:r,slidesEl:n,size:a,rtlTranslate:o,wrongRTL:l}=e,d=e.virtual&&s.virtual.enabled,c=d?e.virtual.slides.length:e.slides.length,p=f(n,`.${e.params.slideClass}, swiper-slide`),h=d?e.virtual.slides.length:p.length;let v=[];const w=[],A=[];let b=s.slidesOffsetBefore;"function"==typeof b&&(b=s.slidesOffsetBefore.call(e));let S=s.slidesOffsetAfter;"function"==typeof S&&(S=s.slidesOffsetAfter.call(e));const T=e.snapGrid.length,E=e.slidesGrid.length;let y=s.spaceBetween,x=-b,C=0,M=0;if(void 0===a)return;"string"==typeof y&&y.indexOf("%")>=0&&(y=parseFloat(y.replace("%",""))/100*a),e.virtualSize=-y,p.forEach((e=>{o?e.style.marginLeft="":e.style.marginRight="",e.style.marginBottom="",e.style.marginTop=""})),s.centeredSlides&&s.cssMode&&(u(r,"--swiper-centered-offset-before",""),u(r,"--swiper-centered-offset-after",""));const P=s.grid&&s.grid.rows>1&&e.grid;let k;P&&e.grid.initSlides(h);const z="auto"===s.slidesPerView&&s.breakpoints&&Object.keys(s.breakpoints).filter((e=>void 0!==s.breakpoints[e].slidesPerView)).length>0;for(let r=0;r<h;r+=1){let n;if(k=0,p[r]&&(n=p[r]),P&&e.grid.updateSlide(r,n,h,t),!p[r]||"none"!==m(n,"display")){if("auto"===s.slidesPerView){z&&(p[r].style[t("width")]="");const a=getComputedStyle(n),o=n.style.transform,l=n.style.webkitTransform;if(o&&(n.style.transform="none"),l&&(n.style.webkitTransform="none"),s.roundLengths)k=e.isHorizontal()?g(n,"width",!0):g(n,"height",!0);else{const e=i(a,"width"),t=i(a,"padding-left"),s=i(a,"padding-right"),r=i(a,"margin-left"),o=i(a,"margin-right"),l=a.getPropertyValue("box-sizing");if(l&&"border-box"===l)k=e+r+o;else{const{clientWidth:i,offsetWidth:a}=n;k=e+t+s+r+o+(a-i)}}o&&(n.style.transform=o),l&&(n.style.webkitTransform=l),s.roundLengths&&(k=Math.floor(k))}else k=(a-(s.slidesPerView-1)*y)/s.slidesPerView,s.roundLengths&&(k=Math.floor(k)),p[r]&&(p[r].style[t("width")]=`${k}px`);p[r]&&(p[r].swiperSlideSize=k),A.push(k),s.centeredSlides?(x=x+k/2+C/2+y,0===C&&0!==r&&(x=x-a/2-y),0===r&&(x=x-a/2-y),Math.abs(x)<.001&&(x=0),s.roundLengths&&(x=Math.floor(x)),M%s.slidesPerGroup==0&&v.push(x),w.push(x)):(s.roundLengths&&(x=Math.floor(x)),(M-Math.min(e.params.slidesPerGroupSkip,M))%e.params.slidesPerGroup==0&&v.push(x),w.push(x),x=x+k+y),e.virtualSize+=k+y,C=k,M+=1}}if(e.virtualSize=Math.max(e.virtualSize,a)+S,o&&l&&("slide"===s.effect||"coverflow"===s.effect)&&(r.style.width=`${e.virtualSize+s.spaceBetween}px`),s.setWrapperSize&&(r.style[t("width")]=`${e.virtualSize+s.spaceBetween}px`),P&&e.grid.updateWrapperSize(k,v,t),!s.centeredSlides){const t=[];for(let i=0;i<v.length;i+=1){let r=v[i];s.roundLengths&&(r=Math.floor(r)),v[i]<=e.virtualSize-a&&t.push(r)}v=t,Math.floor(e.virtualSize-a)-Math.floor(v[v.length-1])>1&&v.push(e.virtualSize-a)}if(d&&s.loop){const t=A[0]+y;if(s.slidesPerGroup>1){const i=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/s.slidesPerGroup),r=t*s.slidesPerGroup;for(let e=0;e<i;e+=1)v.push(v[v.length-1]+r)}for(let i=0;i<e.virtual.slidesBefore+e.virtual.slidesAfter;i+=1)1===s.slidesPerGroup&&v.push(v[v.length-1]+t),w.push(w[w.length-1]+t),e.virtualSize+=t}if(0===v.length&&(v=[0]),0!==s.spaceBetween){const i=e.isHorizontal()&&o?"marginLeft":t("marginRight");p.filter(((e,t)=>!(s.cssMode&&!s.loop)||t!==p.length-1)).forEach((e=>{e.style[i]=`${y}px`}))}if(s.centeredSlides&&s.centeredSlidesBounds){let e=0;A.forEach((t=>{e+=t+(s.spaceBetween?s.spaceBetween:0)})),e-=s.spaceBetween;const t=e-a;v=v.map((e=>e<0?-b:e>t?t+S:e))}if(s.centerInsufficientSlides){let e=0;if(A.forEach((t=>{e+=t+(s.spaceBetween?s.spaceBetween:0)})),e-=s.spaceBetween,e<a){const t=(a-e)/2;v.forEach(((e,i)=>{v[i]=e-t})),w.forEach(((e,i)=>{w[i]=e+t}))}}if(Object.assign(e,{slides:p,snapGrid:v,slidesGrid:w,slidesSizesGrid:A}),s.centeredSlides&&s.cssMode&&!s.centeredSlidesBounds){u(r,"--swiper-centered-offset-before",-v[0]+"px"),u(r,"--swiper-centered-offset-after",e.size/2-A[A.length-1]/2+"px");const t=-e.snapGrid[0],i=-e.slidesGrid[0];e.snapGrid=e.snapGrid.map((e=>e+t)),e.slidesGrid=e.slidesGrid.map((e=>e+i))}if(h!==c&&e.emit("slidesLengthChange"),v.length!==T&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),w.length!==E&&e.emit("slidesGridLengthChange"),s.watchSlidesProgress&&e.updateSlidesOffset(),!(d||s.cssMode||"slide"!==s.effect&&"fade"!==s.effect)){const t=`${s.containerModifierClass}backface-hidden`,i=e.el.classList.contains(t);h<=s.maxBackfaceHiddenSlides?i||e.el.classList.add(t):i&&e.el.classList.remove(t)}},updateAutoHeight:function(e){const t=this,i=[],s=t.virtual&&t.params.virtual.enabled;let r,n=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const a=e=>s?t.slides.filter((t=>parseInt(t.getAttribute("data-swiper-slide-index"),10)===e))[0]:t.slides[e];if("auto"!==t.params.slidesPerView&&t.params.slidesPerView>1)if(t.params.centeredSlides)(t.visibleSlides||[]).forEach((e=>{i.push(e)}));else for(r=0;r<Math.ceil(t.params.slidesPerView);r+=1){const e=t.activeIndex+r;if(e>t.slides.length&&!s)break;i.push(a(e))}else i.push(a(t.activeIndex));for(r=0;r<i.length;r+=1)if(void 0!==i[r]){const e=i[r].offsetHeight;n=e>n?e:n}(n||0===n)&&(t.wrapperEl.style.height=`${n}px`)},updateSlidesOffset:function(){const e=this,t=e.slides,i=e.isElement?e.isHorizontal()?e.wrapperEl.offsetLeft:e.wrapperEl.offsetTop:0;for(let s=0;s<t.length;s+=1)t[s].swiperSlideOffset=(e.isHorizontal()?t[s].offsetLeft:t[s].offsetTop)-i},updateSlidesProgress:function(e){void 0===e&&(e=this&&this.translate||0);const t=this,i=t.params,{slides:s,rtlTranslate:r,snapGrid:n}=t;if(0===s.length)return;void 0===s[0].swiperSlideOffset&&t.updateSlidesOffset();let a=-e;r&&(a=e),s.forEach((e=>{e.classList.remove(i.slideVisibleClass)})),t.visibleSlidesIndexes=[],t.visibleSlides=[];for(let e=0;e<s.length;e+=1){const o=s[e];let l=o.swiperSlideOffset;i.cssMode&&i.centeredSlides&&(l-=s[0].swiperSlideOffset);const d=(a+(i.centeredSlides?t.minTranslate():0)-l)/(o.swiperSlideSize+i.spaceBetween),c=(a-n[0]+(i.centeredSlides?t.minTranslate():0)-l)/(o.swiperSlideSize+i.spaceBetween),p=-(a-l),u=p+t.slidesSizesGrid[e];(p>=0&&p<t.size-1||u>1&&u<=t.size||p<=0&&u>=t.size)&&(t.visibleSlides.push(o),t.visibleSlidesIndexes.push(e),s[e].classList.add(i.slideVisibleClass)),o.progress=r?-d:d,o.originalProgress=r?-c:c}},updateProgress:function(e){const t=this;if(void 0===e){const i=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*i||0}const i=t.params,s=t.maxTranslate()-t.minTranslate();let{progress:r,isBeginning:n,isEnd:a,progressLoop:o}=t;const l=n,d=a;if(0===s)r=0,n=!0,a=!0;else{r=(e-t.minTranslate())/s;const i=Math.abs(e-t.minTranslate())<1,o=Math.abs(e-t.maxTranslate())<1;n=i||r<=0,a=o||r>=1,i&&(r=0),o&&(r=1)}if(i.loop){const i=v(t.slides.filter((e=>"0"===e.getAttribute("data-swiper-slide-index")))[0]),s=v(t.slides.filter((e=>1*e.getAttribute("data-swiper-slide-index")==t.slides.length-1))[0]),r=t.slidesGrid[i],n=t.slidesGrid[s],a=t.slidesGrid[t.slidesGrid.length-1],l=Math.abs(e);o=l>=r?(l-r)/a:(l+a-n)/a,o>1&&(o-=1)}Object.assign(t,{progress:r,progressLoop:o,isBeginning:n,isEnd:a}),(i.watchSlidesProgress||i.centeredSlides&&i.autoHeight)&&t.updateSlidesProgress(e),n&&!l&&t.emit("reachBeginning toEdge"),a&&!d&&t.emit("reachEnd toEdge"),(l&&!n||d&&!a)&&t.emit("fromEdge"),t.emit("progress",r)},updateSlidesClasses:function(){const e=this,{slides:t,params:i,slidesEl:s,activeIndex:r}=e,n=e.virtual&&i.virtual.enabled,a=e=>f(s,`.${i.slideClass}${e}, swiper-slide${e}`)[0];let o;if(t.forEach((e=>{e.classList.remove(i.slideActiveClass,i.slideNextClass,i.slidePrevClass)})),n)if(i.loop){let t=r-e.virtual.slidesBefore;t<0&&(t=e.virtual.slides.length+t),t>=e.virtual.slides.length&&(t-=e.virtual.slides.length),o=a(`[data-swiper-slide-index="${t}"]`)}else o=a(`[data-swiper-slide-index="${r}"]`);else o=t[r];if(o){o.classList.add(i.slideActiveClass);let e=function(e,t){const i=[];for(;e.nextElementSibling;){const s=e.nextElementSibling;t?s.matches(t)&&i.push(s):i.push(s),e=s}return i}(o,`.${i.slideClass}, swiper-slide`)[0];i.loop&&!e&&(e=t[0]),e&&e.classList.add(i.slideNextClass);let s=function(e,t){const i=[];for(;e.previousElementSibling;){const s=e.previousElementSibling;t?s.matches(t)&&i.push(s):i.push(s),e=s}return i}(o,`.${i.slideClass}, swiper-slide`)[0];i.loop&&0===!s&&(s=t[t.length-1]),s&&s.classList.add(i.slidePrevClass)}e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,i=t.rtlTranslate?t.translate:-t.translate,{snapGrid:s,params:r,activeIndex:n,realIndex:a,snapIndex:o}=t;let l,d=e;const c=e=>{let i=e-t.virtual.slidesBefore;return i<0&&(i=t.virtual.slides.length+i),i>=t.virtual.slides.length&&(i-=t.virtual.slides.length),i};if(void 0===d&&(d=function(e){const{slidesGrid:t,params:i}=e,s=e.rtlTranslate?e.translate:-e.translate;let r;for(let e=0;e<t.length;e+=1)void 0!==t[e+1]?s>=t[e]&&s<t[e+1]-(t[e+1]-t[e])/2?r=e:s>=t[e]&&s<t[e+1]&&(r=e+1):s>=t[e]&&(r=e);return i.normalizeSlideIndex&&(r<0||void 0===r)&&(r=0),r}(t)),s.indexOf(i)>=0)l=s.indexOf(i);else{const e=Math.min(r.slidesPerGroupSkip,d);l=e+Math.floor((d-e)/r.slidesPerGroup)}if(l>=s.length&&(l=s.length-1),d===n)return l!==o&&(t.snapIndex=l,t.emit("snapIndexChange")),void(t.params.loop&&t.virtual&&t.params.virtual.enabled&&(t.realIndex=c(d)));let p;p=t.virtual&&r.virtual.enabled&&r.loop?c(d):t.slides[d]?parseInt(t.slides[d].getAttribute("data-swiper-slide-index")||d,10):d,Object.assign(t,{snapIndex:l,realIndex:p,previousIndex:n,activeIndex:d}),t.emit("activeIndexChange"),t.emit("snapIndexChange"),a!==p&&t.emit("realIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&t.emit("slideChange")},updateClickedSlide:function(e){const t=this,i=t.params,s=e.closest(`.${i.slideClass}, swiper-slide`);let r,n=!1;if(s)for(let e=0;e<t.slides.length;e+=1)if(t.slides[e]===s){n=!0,r=e;break}if(!s||!n)return t.clickedSlide=void 0,void(t.clickedIndex=void 0);t.clickedSlide=s,t.virtual&&t.params.virtual.enabled?t.clickedIndex=parseInt(s.getAttribute("data-swiper-slide-index"),10):t.clickedIndex=r,i.slideToClickedSlide&&void 0!==t.clickedIndex&&t.clickedIndex!==t.activeIndex&&t.slideToClickedSlide()}};var C={getTranslate:function(e){void 0===e&&(e=this.isHorizontal()?"x":"y");const{params:t,rtlTranslate:i,translate:s,wrapperEl:r}=this;if(t.virtualTranslate)return i?-s:s;if(t.cssMode)return s;let n=l(r,e);return i&&(n=-n),n||0},setTranslate:function(e,t){const i=this,{rtlTranslate:s,params:r,wrapperEl:n,progress:a}=i;let o,l=0,d=0;i.isHorizontal()?l=s?-e:e:d=e,r.roundLengths&&(l=Math.floor(l),d=Math.floor(d)),r.cssMode?n[i.isHorizontal()?"scrollLeft":"scrollTop"]=i.isHorizontal()?-l:-d:r.virtualTranslate||(n.style.transform=`translate3d(${l}px, ${d}px, 0px)`),i.previousTranslate=i.translate,i.translate=i.isHorizontal()?l:d;const c=i.maxTranslate()-i.minTranslate();o=0===c?0:(e-i.minTranslate())/c,o!==a&&i.updateProgress(e),i.emit("setTranslate",i.translate,t)},minTranslate:function(){return-this.snapGrid[0]},maxTranslate:function(){return-this.snapGrid[this.snapGrid.length-1]},translateTo:function(e,t,i,s,r){void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===i&&(i=!0),void 0===s&&(s=!0);const n=this,{params:a,wrapperEl:o}=n;if(n.animating&&a.preventInteractionOnTransition)return!1;const l=n.minTranslate(),d=n.maxTranslate();let c;if(c=s&&e>l?l:s&&e<d?d:e,n.updateProgress(c),a.cssMode){const e=n.isHorizontal();if(0===t)o[e?"scrollLeft":"scrollTop"]=-c;else{if(!n.support.smoothScroll)return h({swiper:n,targetPosition:-c,side:e?"left":"top"}),!0;o.scrollTo({[e?"left":"top"]:-c,behavior:"smooth"})}return!0}return 0===t?(n.setTransition(0),n.setTranslate(c),i&&(n.emit("beforeTransitionStart",t,r),n.emit("transitionEnd"))):(n.setTransition(t),n.setTranslate(c),i&&(n.emit("beforeTransitionStart",t,r),n.emit("transitionStart")),n.animating||(n.animating=!0,n.onTranslateToWrapperTransitionEnd||(n.onTranslateToWrapperTransitionEnd=function(e){n&&!n.destroyed&&e.target===this&&(n.wrapperEl.removeEventListener("transitionend",n.onTranslateToWrapperTransitionEnd),n.onTranslateToWrapperTransitionEnd=null,delete n.onTranslateToWrapperTransitionEnd,i&&n.emit("transitionEnd"))}),n.wrapperEl.addEventListener("transitionend",n.onTranslateToWrapperTransitionEnd))),!0}};function M(e){let{swiper:t,runCallbacks:i,direction:s,step:r}=e;const{activeIndex:n,previousIndex:a}=t;let o=s;if(o||(o=n>a?"next":n<a?"prev":"reset"),t.emit(`transition${r}`),i&&n!==a){if("reset"===o)return void t.emit(`slideResetTransition${r}`);t.emit(`slideChangeTransition${r}`),"next"===o?t.emit(`slideNextTransition${r}`):t.emit(`slidePrevTransition${r}`)}}var P={slideTo:function(e,t,i,s,r){void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===i&&(i=!0),"string"==typeof e&&(e=parseInt(e,10));const n=this;let a=e;a<0&&(a=0);const{params:o,snapGrid:l,slidesGrid:d,previousIndex:c,activeIndex:p,rtlTranslate:u,wrapperEl:f,enabled:m}=n;if(n.animating&&o.preventInteractionOnTransition||!m&&!s&&!r)return!1;const v=Math.min(n.params.slidesPerGroupSkip,a);let g=v+Math.floor((a-v)/n.params.slidesPerGroup);g>=l.length&&(g=l.length-1);const w=-l[g];if(o.normalizeSlideIndex)for(let e=0;e<d.length;e+=1){const t=-Math.floor(100*w),i=Math.floor(100*d[e]),s=Math.floor(100*d[e+1]);void 0!==d[e+1]?t>=i&&t<s-(s-i)/2?a=e:t>=i&&t<s&&(a=e+1):t>=i&&(a=e)}if(n.initialized&&a!==p){if(!n.allowSlideNext&&w<n.translate&&w<n.minTranslate())return!1;if(!n.allowSlidePrev&&w>n.translate&&w>n.maxTranslate()&&(p||0)!==a)return!1}let A;if(a!==(c||0)&&i&&n.emit("beforeSlideChangeStart"),n.updateProgress(w),A=a>p?"next":a<p?"prev":"reset",u&&-w===n.translate||!u&&w===n.translate)return n.updateActiveIndex(a),o.autoHeight&&n.updateAutoHeight(),n.updateSlidesClasses(),"slide"!==o.effect&&n.setTranslate(w),"reset"!==A&&(n.transitionStart(i,A),n.transitionEnd(i,A)),!1;if(o.cssMode){const e=n.isHorizontal(),i=u?w:-w;if(0===t){const t=n.virtual&&n.params.virtual.enabled;t&&(n.wrapperEl.style.scrollSnapType="none",n._immediateVirtual=!0),t&&!n._cssModeVirtualInitialSet&&n.params.initialSlide>0?(n._cssModeVirtualInitialSet=!0,requestAnimationFrame((()=>{f[e?"scrollLeft":"scrollTop"]=i}))):f[e?"scrollLeft":"scrollTop"]=i,t&&requestAnimationFrame((()=>{n.wrapperEl.style.scrollSnapType="",n._immediateVirtual=!1}))}else{if(!n.support.smoothScroll)return h({swiper:n,targetPosition:i,side:e?"left":"top"}),!0;f.scrollTo({[e?"left":"top"]:i,behavior:"smooth"})}return!0}return n.setTransition(t),n.setTranslate(w),n.updateActiveIndex(a),n.updateSlidesClasses(),n.emit("beforeTransitionStart",t,s),n.transitionStart(i,A),0===t?n.transitionEnd(i,A):n.animating||(n.animating=!0,n.onSlideToWrapperTransitionEnd||(n.onSlideToWrapperTransitionEnd=function(e){n&&!n.destroyed&&e.target===this&&(n.wrapperEl.removeEventListener("transitionend",n.onSlideToWrapperTransitionEnd),n.onSlideToWrapperTransitionEnd=null,delete n.onSlideToWrapperTransitionEnd,n.transitionEnd(i,A))}),n.wrapperEl.addEventListener("transitionend",n.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,i,s){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===i&&(i=!0),"string"==typeof e){e=parseInt(e,10)}const r=this;let n=e;return r.params.loop&&(r.virtual&&r.params.virtual.enabled?n+=r.virtual.slidesBefore:n=v(r.slides.filter((e=>1*e.getAttribute("data-swiper-slide-index")===n))[0])),r.slideTo(n,t,i,s)},slideNext:function(e,t,i){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const s=this,{enabled:r,params:n,animating:a}=s;if(!r)return s;let o=n.slidesPerGroup;"auto"===n.slidesPerView&&1===n.slidesPerGroup&&n.slidesPerGroupAuto&&(o=Math.max(s.slidesPerViewDynamic("current",!0),1));const l=s.activeIndex<n.slidesPerGroupSkip?1:o,d=s.virtual&&n.virtual.enabled;if(n.loop){if(a&&!d&&n.loopPreventsSliding)return!1;s.loopFix({direction:"next"}),s._clientLeft=s.wrapperEl.clientLeft}return n.rewind&&s.isEnd?s.slideTo(0,e,t,i):s.slideTo(s.activeIndex+l,e,t,i)},slidePrev:function(e,t,i){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const s=this,{params:r,snapGrid:n,slidesGrid:a,rtlTranslate:o,enabled:l,animating:d}=s;if(!l)return s;const c=s.virtual&&r.virtual.enabled;if(r.loop){if(d&&!c&&r.loopPreventsSliding)return!1;s.loopFix({direction:"prev"}),s._clientLeft=s.wrapperEl.clientLeft}function p(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}const u=p(o?s.translate:-s.translate),h=n.map((e=>p(e)));let f=n[h.indexOf(u)-1];if(void 0===f&&r.cssMode){let e;n.forEach(((t,i)=>{u>=t&&(e=i)})),void 0!==e&&(f=n[e>0?e-1:e])}let m=0;if(void 0!==f&&(m=a.indexOf(f),m<0&&(m=s.activeIndex-1),"auto"===r.slidesPerView&&1===r.slidesPerGroup&&r.slidesPerGroupAuto&&(m=m-s.slidesPerViewDynamic("previous",!0)+1,m=Math.max(m,0))),r.rewind&&s.isBeginning){const r=s.params.virtual&&s.params.virtual.enabled&&s.virtual?s.virtual.slides.length-1:s.slides.length-1;return s.slideTo(r,e,t,i)}return s.slideTo(m,e,t,i)},slideReset:function(e,t,i){return void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),this.slideTo(this.activeIndex,e,t,i)},slideToClosest:function(e,t,i,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===s&&(s=.5);const r=this;let n=r.activeIndex;const a=Math.min(r.params.slidesPerGroupSkip,n),o=a+Math.floor((n-a)/r.params.slidesPerGroup),l=r.rtlTranslate?r.translate:-r.translate;if(l>=r.snapGrid[o]){const e=r.snapGrid[o];l-e>(r.snapGrid[o+1]-e)*s&&(n+=r.params.slidesPerGroup)}else{const e=r.snapGrid[o-1];l-e<=(r.snapGrid[o]-e)*s&&(n-=r.params.slidesPerGroup)}return n=Math.max(n,0),n=Math.min(n,r.slidesGrid.length-1),r.slideTo(n,e,t,i)},slideToClickedSlide:function(){const e=this,{params:t,slidesEl:i}=e,s="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let r,n=e.clickedIndex;const o=e.isElement?"swiper-slide":`.${t.slideClass}`;if(t.loop){if(e.animating)return;r=parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10),t.centeredSlides?n<e.loopedSlides-s/2||n>e.slides.length-e.loopedSlides+s/2?(e.loopFix(),n=v(f(i,`${o}[data-swiper-slide-index="${r}"]`)[0]),a((()=>{e.slideTo(n)}))):e.slideTo(n):n>e.slides.length-s?(e.loopFix(),n=v(f(i,`${o}[data-swiper-slide-index="${r}"]`)[0]),a((()=>{e.slideTo(n)}))):e.slideTo(n)}else e.slideTo(n)}};var k={loopCreate:function(e){const t=this,{params:i,slidesEl:s}=t;if(!i.loop||t.virtual&&t.params.virtual.enabled)return;f(s,`.${i.slideClass}, swiper-slide`).forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t)})),t.loopFix({slideRealIndex:e,direction:i.centeredSlides?void 0:"next"})},loopFix:function(e){let{slideRealIndex:t,slideTo:i=!0,direction:s,setTranslate:r,activeSlideIndex:n,byController:a,byMousewheel:o}=void 0===e?{}:e;const l=this;if(!l.params.loop)return;l.emit("beforeLoopFix");const{slides:d,allowSlidePrev:c,allowSlideNext:p,slidesEl:u,params:h}=l;if(l.allowSlidePrev=!0,l.allowSlideNext=!0,l.virtual&&h.virtual.enabled)return i&&(h.centeredSlides||0!==l.snapIndex?h.centeredSlides&&l.snapIndex<h.slidesPerView?l.slideTo(l.virtual.slides.length+l.snapIndex,0,!1,!0):l.snapIndex===l.snapGrid.length-1&&l.slideTo(l.virtual.slidesBefore,0,!1,!0):l.slideTo(l.virtual.slides.length,0,!1,!0)),l.allowSlidePrev=c,l.allowSlideNext=p,void l.emit("loopFix");const f="auto"===h.slidesPerView?l.slidesPerViewDynamic():Math.ceil(parseFloat(h.slidesPerView,10));let m=h.loopedSlides||f;m%h.slidesPerGroup!=0&&(m+=h.slidesPerGroup-m%h.slidesPerGroup),l.loopedSlides=m;const g=[],w=[];let A=l.activeIndex;void 0===n?n=v(l.slides.filter((e=>e.classList.contains("swiper-slide-active")))[0]):A=n;const b="next"===s||!s,S="prev"===s||!s;let T=0,E=0;if(n<m){T=m-n;for(let e=0;e<m-n;e+=1){const t=e-Math.floor(e/d.length)*d.length;g.push(d.length-t-1)}}else if(n>l.slides.length-2*m){E=n-(l.slides.length-2*m);for(let e=0;e<E;e+=1){const t=e-Math.floor(e/d.length)*d.length;w.push(t)}}if(S&&g.forEach((e=>{u.prepend(l.slides[e])})),b&&w.forEach((e=>{u.append(l.slides[e])})),l.recalcSlides(),h.watchSlidesProgress&&l.updateSlidesOffset(),i)if(g.length>0&&S)if(void 0===t){const e=l.slidesGrid[A],t=l.slidesGrid[A+T]-e;o?l.setTranslate(l.translate-t):(l.slideTo(A+T,0,!1,!0),r&&(l.touches[l.isHorizontal()?"startX":"startY"]+=t))}else r&&l.slideToLoop(t,0,!1,!0);else if(w.length>0&&b)if(void 0===t){const e=l.slidesGrid[A],t=l.slidesGrid[A-E]-e;o?l.setTranslate(l.translate-t):(l.slideTo(A-E,0,!1,!0),r&&(l.touches[l.isHorizontal()?"startX":"startY"]+=t))}else l.slideToLoop(t,0,!1,!0);if(l.allowSlidePrev=c,l.allowSlideNext=p,l.controller&&l.controller.control&&!a){const e={slideRealIndex:t,slideTo:!1,direction:s,setTranslate:r,activeSlideIndex:n,byController:!0};Array.isArray(l.controller.control)?l.controller.control.forEach((t=>{t.params.loop&&t.loopFix(e)})):l.controller.control instanceof l.constructor&&l.controller.control.params.loop&&l.controller.control.loopFix(e)}l.emit("loopFix")},loopDestroy:function(){const e=this,{slides:t,params:i,slidesEl:s}=e;if(!i.loop||e.virtual&&e.params.virtual.enabled)return;e.recalcSlides();const r=[];t.forEach((e=>{const t=void 0===e.swiperSlideIndex?1*e.getAttribute("data-swiper-slide-index"):e.swiperSlideIndex;r[t]=e})),t.forEach((e=>{e.removeAttribute("data-swiper-slide-index")})),r.forEach((e=>{s.append(e)})),e.recalcSlides(),e.slideTo(e.realIndex,0)}};function z(e){const t=this,i=s(),r=n(),a=t.touchEventsData;a.evCache.push(e);const{params:l,touches:d,enabled:c}=t;if(!c)return;if(!l.simulateTouch&&"mouse"===e.pointerType)return;if(t.animating&&l.preventInteractionOnTransition)return;!t.animating&&l.cssMode&&l.loop&&t.loopFix();let p=e;p.originalEvent&&(p=p.originalEvent);let u=p.target;if("wrapper"===l.touchEventsTarget&&!t.wrapperEl.contains(u))return;if("which"in p&&3===p.which)return;if("button"in p&&p.button>0)return;if(a.isTouched&&a.isMoved)return;const h=!!l.noSwipingClass&&""!==l.noSwipingClass,f=e.composedPath?e.composedPath():e.path;h&&p.target&&p.target.shadowRoot&&f&&(u=f[0]);const m=l.noSwipingSelector?l.noSwipingSelector:`.${l.noSwipingClass}`,v=!(!p.target||!p.target.shadowRoot);if(l.noSwiping&&(v?function(e,t){return void 0===t&&(t=this),function t(i){if(!i||i===s()||i===n())return null;i.assignedSlot&&(i=i.assignedSlot);const r=i.closest(e);return r||i.getRootNode?r||t(i.getRootNode().host):null}(t)}(m,u):u.closest(m)))return void(t.allowClick=!0);if(l.swipeHandler&&!u.closest(l.swipeHandler))return;d.currentX=p.pageX,d.currentY=p.pageY;const g=d.currentX,w=d.currentY,A=l.edgeSwipeDetection||l.iOSEdgeSwipeDetection,b=l.edgeSwipeThreshold||l.iOSEdgeSwipeThreshold;if(A&&(g<=b||g>=r.innerWidth-b)){if("prevent"!==A)return;e.preventDefault()}Object.assign(a,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),d.startX=g,d.startY=w,a.touchStartTime=o(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,l.threshold>0&&(a.allowThresholdMove=!1);let S=!0;u.matches(a.focusableElements)&&(S=!1,"SELECT"===u.nodeName&&(a.isTouched=!1)),i.activeElement&&i.activeElement.matches(a.focusableElements)&&i.activeElement!==u&&i.activeElement.blur();const T=S&&t.allowTouchMove&&l.touchStartPreventDefault;!l.touchStartForcePreventDefault&&!T||u.isContentEditable||p.preventDefault(),t.params.freeMode&&t.params.freeMode.enabled&&t.freeMode&&t.animating&&!l.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",p)}function L(e){const t=s(),i=this,r=i.touchEventsData,{params:n,touches:a,rtlTranslate:l,enabled:d}=i;if(!d)return;if(!n.simulateTouch&&"mouse"===e.pointerType)return;let c=e;if(c.originalEvent&&(c=c.originalEvent),!r.isTouched)return void(r.startMoving&&r.isScrolling&&i.emit("touchMoveOpposite",c));const p=r.evCache.findIndex((e=>e.pointerId===c.pointerId));p>=0&&(r.evCache[p]=c);const u=r.evCache.length>1?r.evCache[0]:c,h=u.pageX,f=u.pageY;if(c.preventedByNestedSwiper)return a.startX=h,void(a.startY=f);if(!i.allowTouchMove)return c.target.matches(r.focusableElements)||(i.allowClick=!1),void(r.isTouched&&(Object.assign(a,{startX:h,startY:f,prevX:i.touches.currentX,prevY:i.touches.currentY,currentX:h,currentY:f}),r.touchStartTime=o()));if(n.touchReleaseOnEdges&&!n.loop)if(i.isVertical()){if(f<a.startY&&i.translate<=i.maxTranslate()||f>a.startY&&i.translate>=i.minTranslate())return r.isTouched=!1,void(r.isMoved=!1)}else if(h<a.startX&&i.translate<=i.maxTranslate()||h>a.startX&&i.translate>=i.minTranslate())return;if(t.activeElement&&c.target===t.activeElement&&c.target.matches(r.focusableElements))return r.isMoved=!0,void(i.allowClick=!1);if(r.allowTouchCallbacks&&i.emit("touchMove",c),c.targetTouches&&c.targetTouches.length>1)return;a.currentX=h,a.currentY=f;const m=a.currentX-a.startX,v=a.currentY-a.startY;if(i.params.threshold&&Math.sqrt(m**2+v**2)<i.params.threshold)return;if(void 0===r.isScrolling){let e;i.isHorizontal()&&a.currentY===a.startY||i.isVertical()&&a.currentX===a.startX?r.isScrolling=!1:m*m+v*v>=25&&(e=180*Math.atan2(Math.abs(v),Math.abs(m))/Math.PI,r.isScrolling=i.isHorizontal()?e>n.touchAngle:90-e>n.touchAngle)}if(r.isScrolling&&i.emit("touchMoveOpposite",c),void 0===r.startMoving&&(a.currentX===a.startX&&a.currentY===a.startY||(r.startMoving=!0)),r.isScrolling||i.zoom&&i.params.zoom&&i.params.zoom.enabled&&r.evCache.length>1)return void(r.isTouched=!1);if(!r.startMoving)return;i.allowClick=!1,!n.cssMode&&c.cancelable&&c.preventDefault(),n.touchMoveStopPropagation&&!n.nested&&c.stopPropagation();let g=i.isHorizontal()?m:v,w=i.isHorizontal()?a.currentX-a.previousX:a.currentY-a.previousY;n.oneWayMovement&&(g=Math.abs(g)*(l?1:-1),w=Math.abs(w)*(l?1:-1)),a.diff=g,g*=n.touchRatio,l&&(g=-g,w=-w);const A=i.touchesDirection;i.swipeDirection=g>0?"prev":"next",i.touchesDirection=w>0?"prev":"next";const b=i.params.loop&&!n.cssMode;if(!r.isMoved){if(b&&i.loopFix({direction:i.swipeDirection}),r.startTranslate=i.getTranslate(),i.setTransition(0),i.animating){const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});i.wrapperEl.dispatchEvent(e)}r.allowMomentumBounce=!1,!n.grabCursor||!0!==i.allowSlideNext&&!0!==i.allowSlidePrev||i.setGrabCursor(!0),i.emit("sliderFirstMove",c)}let S;r.isMoved&&A!==i.touchesDirection&&b&&Math.abs(g)>=1&&(i.loopFix({direction:i.swipeDirection,setTranslate:!0}),S=!0),i.emit("sliderMove",c),r.isMoved=!0,r.currentTranslate=g+r.startTranslate;let T=!0,E=n.resistanceRatio;if(n.touchReleaseOnEdges&&(E=0),g>0?(b&&!S&&r.currentTranslate>(n.centeredSlides?i.minTranslate()-i.size/2:i.minTranslate())&&i.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),r.currentTranslate>i.minTranslate()&&(T=!1,n.resistance&&(r.currentTranslate=i.minTranslate()-1+(-i.minTranslate()+r.startTranslate+g)**E))):g<0&&(b&&!S&&r.currentTranslate<(n.centeredSlides?i.maxTranslate()+i.size/2:i.maxTranslate())&&i.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:i.slides.length-("auto"===n.slidesPerView?i.slidesPerViewDynamic():Math.ceil(parseFloat(n.slidesPerView,10)))}),r.currentTranslate<i.maxTranslate()&&(T=!1,n.resistance&&(r.currentTranslate=i.maxTranslate()+1-(i.maxTranslate()-r.startTranslate-g)**E))),T&&(c.preventedByNestedSwiper=!0),!i.allowSlideNext&&"next"===i.swipeDirection&&r.currentTranslate<r.startTranslate&&(r.currentTranslate=r.startTranslate),!i.allowSlidePrev&&"prev"===i.swipeDirection&&r.currentTranslate>r.startTranslate&&(r.currentTranslate=r.startTranslate),i.allowSlidePrev||i.allowSlideNext||(r.currentTranslate=r.startTranslate),n.threshold>0){if(!(Math.abs(g)>n.threshold||r.allowThresholdMove))return void(r.currentTranslate=r.startTranslate);if(!r.allowThresholdMove)return r.allowThresholdMove=!0,a.startX=a.currentX,a.startY=a.currentY,r.currentTranslate=r.startTranslate,void(a.diff=i.isHorizontal()?a.currentX-a.startX:a.currentY-a.startY)}n.followFinger&&!n.cssMode&&((n.freeMode&&n.freeMode.enabled&&i.freeMode||n.watchSlidesProgress)&&(i.updateActiveIndex(),i.updateSlidesClasses()),i.params.freeMode&&n.freeMode.enabled&&i.freeMode&&i.freeMode.onTouchMove(),i.updateProgress(r.currentTranslate),i.setTranslate(r.currentTranslate))}function O(e){const t=this,i=t.touchEventsData,s=i.evCache.findIndex((t=>t.pointerId===e.pointerId));if(s>=0&&i.evCache.splice(s,1),["pointercancel","pointerout","pointerleave"].includes(e.type))return;const{params:r,touches:n,rtlTranslate:l,slidesGrid:d,enabled:c}=t;if(!c)return;if(!r.simulateTouch&&"mouse"===e.pointerType)return;let p=e;if(p.originalEvent&&(p=p.originalEvent),i.allowTouchCallbacks&&t.emit("touchEnd",p),i.allowTouchCallbacks=!1,!i.isTouched)return i.isMoved&&r.grabCursor&&t.setGrabCursor(!1),i.isMoved=!1,void(i.startMoving=!1);r.grabCursor&&i.isMoved&&i.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const u=o(),h=u-i.touchStartTime;if(t.allowClick){const e=p.path||p.composedPath&&p.composedPath();t.updateClickedSlide(e&&e[0]||p.target),t.emit("tap click",p),h<300&&u-i.lastClickTime<300&&t.emit("doubleTap doubleClick",p)}if(i.lastClickTime=o(),a((()=>{t.destroyed||(t.allowClick=!0)})),!i.isTouched||!i.isMoved||!t.swipeDirection||0===n.diff||i.currentTranslate===i.startTranslate)return i.isTouched=!1,i.isMoved=!1,void(i.startMoving=!1);let f;if(i.isTouched=!1,i.isMoved=!1,i.startMoving=!1,f=r.followFinger?l?t.translate:-t.translate:-i.currentTranslate,r.cssMode)return;if(t.params.freeMode&&r.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:f});let m=0,v=t.slidesSizesGrid[0];for(let e=0;e<d.length;e+=e<r.slidesPerGroupSkip?1:r.slidesPerGroup){const t=e<r.slidesPerGroupSkip-1?1:r.slidesPerGroup;void 0!==d[e+t]?f>=d[e]&&f<d[e+t]&&(m=e,v=d[e+t]-d[e]):f>=d[e]&&(m=e,v=d[d.length-1]-d[d.length-2])}let g=null,w=null;r.rewind&&(t.isBeginning?w=t.params.virtual&&t.params.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(g=0));const A=(f-d[m])/v,b=m<r.slidesPerGroupSkip-1?1:r.slidesPerGroup;if(h>r.longSwipesMs){if(!r.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(A>=r.longSwipesRatio?t.slideTo(r.rewind&&t.isEnd?g:m+b):t.slideTo(m)),"prev"===t.swipeDirection&&(A>1-r.longSwipesRatio?t.slideTo(m+b):null!==w&&A<0&&Math.abs(A)>r.longSwipesRatio?t.slideTo(w):t.slideTo(m))}else{if(!r.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(p.target===t.navigation.nextEl||p.target===t.navigation.prevEl)?p.target===t.navigation.nextEl?t.slideTo(m+b):t.slideTo(m):("next"===t.swipeDirection&&t.slideTo(null!==g?g:m+b),"prev"===t.swipeDirection&&t.slideTo(null!==w?w:m))}}let G;function I(){const e=this,{params:t,el:i}=e;if(i&&0===i.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:s,allowSlidePrev:r,snapGrid:n}=e,a=e.virtual&&e.params.virtual.enabled;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses();const o=a&&t.loop;!("auto"===t.slidesPerView||t.slidesPerView>1)||!e.isEnd||e.isBeginning||e.params.centeredSlides||o?e.params.loop&&!a?e.slideToLoop(e.realIndex,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0):e.slideTo(e.slides.length-1,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&(clearTimeout(G),G=setTimeout((()=>{e.autoplay.resume()}),500)),e.allowSlidePrev=r,e.allowSlideNext=s,e.params.watchOverflow&&n!==e.snapGrid&&e.checkOverflow()}function B(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function _(){const e=this,{wrapperEl:t,rtlTranslate:i,enabled:s}=e;if(!s)return;let r;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();const n=e.maxTranslate()-e.minTranslate();r=0===n?0:(e.translate-e.minTranslate())/n,r!==e.progress&&e.updateProgress(i?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}const D=(e,t)=>{if(!e||e.destroyed||!e.params)return;const i=t.closest(e.isElement?"swiper-slide":`.${e.params.slideClass}`);if(i){const t=i.querySelector(`.${e.params.lazyPreloaderClass}`);t&&t.remove()}};function Y(e){D(this,e.target),this.update()}let N=!1;function F(){}const j=(e,t)=>{const i=s(),{params:r,el:n,wrapperEl:a,device:o}=e,l=!!r.nested,d="on"===t?"addEventListener":"removeEventListener",c=t;n[d]("pointerdown",e.onTouchStart,{passive:!1}),i[d]("pointermove",e.onTouchMove,{passive:!1,capture:l}),i[d]("pointerup",e.onTouchEnd,{passive:!0}),i[d]("pointercancel",e.onTouchEnd,{passive:!0}),i[d]("pointerout",e.onTouchEnd,{passive:!0}),i[d]("pointerleave",e.onTouchEnd,{passive:!0}),(r.preventClicks||r.preventClicksPropagation)&&n[d]("click",e.onClick,!0),r.cssMode&&a[d]("scroll",e.onScroll),r.updateOnWindowResize?e[c](o.ios||o.android?"resize orientationchange observerUpdate":"resize observerUpdate",I,!0):e[c]("observerUpdate",I,!0),n[d]("load",e.onLoad,{capture:!0})};const H=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var V={init:!0,direction:"horizontal",oneWayMovement:!1,touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:5,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,loop:!1,loopedSlides:null,loopPreventsSliding:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",runCallbacksOnInit:!0,_emitClasses:!1};function R(e,t){return function(i){void 0===i&&(i={});const s=Object.keys(i)[0],r=i[s];"object"==typeof r&&null!==r?(["navigation","pagination","scrollbar"].indexOf(s)>=0&&!0===e[s]&&(e[s]={auto:!0}),s in e&&"enabled"in r?(!0===e[s]&&(e[s]={enabled:!0}),"object"!=typeof e[s]||"enabled"in e[s]||(e[s].enabled=!0),e[s]||(e[s]={enabled:!1}),p(t,i)):p(t,i)):p(t,i)}}const W={eventsEmitter:y,update:x,translate:C,transition:{setTransition:function(e,t){const i=this;i.params.cssMode||(i.wrapperEl.style.transitionDuration=`${e}ms`),i.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);const i=this,{params:s}=i;s.cssMode||(s.autoHeight&&i.updateAutoHeight(),M({swiper:i,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const i=this,{params:s}=i;i.animating=!1,s.cssMode||(i.setTransition(0),M({swiper:i,runCallbacks:e,direction:t,step:"End"}))}},slide:P,loop:k,grabCursor:{setGrabCursor:function(e){const t=this;if(!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const i="container"===t.params.touchEventsTarget?t.el:t.wrapperEl;i.style.cursor="move",i.style.cursor=e?"grabbing":"grab"},unsetGrabCursor:function(){const e=this;e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e["container"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="")}},events:{attachEvents:function(){const e=this,t=s(),{params:i}=e;e.onTouchStart=z.bind(e),e.onTouchMove=L.bind(e),e.onTouchEnd=O.bind(e),i.cssMode&&(e.onScroll=_.bind(e)),e.onClick=B.bind(e),e.onLoad=Y.bind(e),N||(t.addEventListener("touchstart",F),N=!0),j(e,"on")},detachEvents:function(){j(this,"off")}},breakpoints:{setBreakpoint:function(){const e=this,{realIndex:t,initialized:i,params:s,el:r}=e,n=s.breakpoints;if(!n||n&&0===Object.keys(n).length)return;const a=e.getBreakpoint(n,e.params.breakpointsBase,e.el);if(!a||e.currentBreakpoint===a)return;const o=(a in n?n[a]:void 0)||e.originalParams,l=H(e,s),d=H(e,o),c=s.enabled;l&&!d?(r.classList.remove(`${s.containerModifierClass}grid`,`${s.containerModifierClass}grid-column`),e.emitContainerClasses()):!l&&d&&(r.classList.add(`${s.containerModifierClass}grid`),(o.grid.fill&&"column"===o.grid.fill||!o.grid.fill&&"column"===s.grid.fill)&&r.classList.add(`${s.containerModifierClass}grid-column`),e.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach((t=>{const i=s[t]&&s[t].enabled,r=o[t]&&o[t].enabled;i&&!r&&e[t].disable(),!i&&r&&e[t].enable()}));const u=o.direction&&o.direction!==s.direction,h=s.loop&&(o.slidesPerView!==s.slidesPerView||u);u&&i&&e.changeDirection(),p(e.params,o);const f=e.params.enabled;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),c&&!f?e.disable():!c&&f&&e.enable(),e.currentBreakpoint=a,e.emit("_beforeBreakpoint",o),h&&i&&(e.loopDestroy(),e.loopCreate(t),e.updateSlides()),e.emit("breakpoint",o)},getBreakpoint:function(e,t,i){if(void 0===t&&(t="window"),!e||"container"===t&&!i)return;let s=!1;const r=n(),a="window"===t?r.innerHeight:i.clientHeight,o=Object.keys(e).map((e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:a*t,point:e}}return{value:e,point:e}}));o.sort(((e,t)=>parseInt(e.value,10)-parseInt(t.value,10)));for(let e=0;e<o.length;e+=1){const{point:n,value:a}=o[e];"window"===t?r.matchMedia(`(min-width: ${a}px)`).matches&&(s=n):a<=i.clientWidth&&(s=n)}return s||"max"}},checkOverflow:{checkOverflow:function(){const e=this,{isLocked:t,params:i}=e,{slidesOffsetBefore:s}=i;if(s){const t=e.slides.length-1,i=e.slidesGrid[t]+e.slidesSizesGrid[t]+2*s;e.isLocked=e.size>i}else e.isLocked=1===e.snapGrid.length;!0===i.allowSlideNext&&(e.allowSlideNext=!e.isLocked),!0===i.allowSlidePrev&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}},classes:{addClasses:function(){const e=this,{classNames:t,params:i,rtl:s,el:r,device:n}=e,a=function(e,t){const i=[];return e.forEach((e=>{"object"==typeof e?Object.keys(e).forEach((s=>{e[s]&&i.push(t+s)})):"string"==typeof e&&i.push(t+e)})),i}(["initialized",i.direction,{"free-mode":e.params.freeMode&&i.freeMode.enabled},{autoheight:i.autoHeight},{rtl:s},{grid:i.grid&&i.grid.rows>1},{"grid-column":i.grid&&i.grid.rows>1&&"column"===i.grid.fill},{android:n.android},{ios:n.ios},{"css-mode":i.cssMode},{centered:i.cssMode&&i.centeredSlides},{"watch-progress":i.watchSlidesProgress}],i.containerModifierClass);t.push(...a),r.classList.add(...t),e.emitContainerClasses()},removeClasses:function(){const{el:e,classNames:t}=this;e.classList.remove(...t),this.emitContainerClasses()}}},$={};class X{constructor(){let e,t;for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];1===r.length&&r[0].constructor&&"Object"===Object.prototype.toString.call(r[0]).slice(8,-1)?t=r[0]:[e,t]=r,t||(t={}),t=p({},t),e&&!t.el&&(t.el=e);const a=s();if(t.el&&"string"==typeof t.el&&a.querySelectorAll(t.el).length>1){const e=[];return a.querySelectorAll(t.el).forEach((i=>{const s=p({},t,{el:i});e.push(new X(s))})),e}const l=this;l.__swiper__=!0,l.support=S(),l.device=T({userAgent:t.userAgent}),l.browser=E(),l.eventsListeners={},l.eventsAnyListeners=[],l.modules=[...l.__modules__],t.modules&&Array.isArray(t.modules)&&l.modules.push(...t.modules);const d={};l.modules.forEach((e=>{e({params:t,swiper:l,extendParams:R(t,d),on:l.on.bind(l),once:l.once.bind(l),off:l.off.bind(l),emit:l.emit.bind(l)})}));const c=p({},V,d);return l.params=p({},c,$,t),l.originalParams=p({},l.params),l.passedParams=p({},t),l.params&&l.params.on&&Object.keys(l.params.on).forEach((e=>{l.on(e,l.params.on[e])})),l.params&&l.params.onAny&&l.onAny(l.params.onAny),Object.assign(l,{enabled:l.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===l.params.direction,isVertical:()=>"vertical"===l.params.direction,activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:l.params.allowSlideNext,allowSlidePrev:l.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:l.params.focusableElements,lastClickTime:o(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,evCache:[]},allowClick:!0,allowTouchMove:l.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),l.emit("_swiper"),l.params.init&&l.init(),l}recalcSlides(){const{slidesEl:e,params:t}=this;this.slides=f(e,