diff --git a/dist/388.9557b9f6869a693261d8.js b/dist/388.9557b9f6869a693261d8.js new file mode 100644 index 0000000..a09d228 --- /dev/null +++ b/dist/388.9557b9f6869a693261d8.js @@ -0,0 +1,3 @@ +/*! For license information please see 388.9557b9f6869a693261d8.js.LICENSE.txt */ +(self.webpackChunk=self.webpackChunk||[]).push([[388],{233:()=>{!function(e){"use strict";e.fn.fitVids=function(t){var i={customSelector:null,ignore:null};if(!document.getElementById("fit-vids-style")){var s=document.head||document.getElementsByTagName("head")[0],a=document.createElement("div");a.innerHTML='

x

',s.appendChild(a.childNodes[1])}return t&&e.extend(i,t),this.each((function(){var t=['iframe[src*="player.vimeo.com"]','iframe[src*="youtube.com"]','iframe[src*="youtube-nocookie.com"]','iframe[src*="kickstarter.com"][src*="video.html"]',"object","embed"];i.customSelector&&t.push(i.customSelector);var s=".fitvidsignore";i.ignore&&(s=s+", "+i.ignore);var a=e(this).find(t.join(","));(a=(a=a.not("object object")).not(s)).each((function(){var t=e(this);if(!(t.parents(s).length>0||"embed"===this.tagName.toLowerCase()&&t.parent("object").length||t.parent(".fluid-width-video-wrapper").length)){t.css("height")||t.css("width")||!isNaN(t.attr("height"))&&!isNaN(t.attr("width"))||(t.attr("height",9),t.attr("width",16));var i=("object"===this.tagName.toLowerCase()||t.attr("height")&&!isNaN(parseInt(t.attr("height"),10))?parseInt(t.attr("height"),10):t.height())/(isNaN(parseInt(t.attr("width"),10))?t.width():parseInt(t.attr("width"),10));if(!t.attr("name")){var a="fitvid"+e.fn.fitVids._count;t.attr("name",a),e.fn.fitVids._count++}t.wrap('
').parent(".fluid-width-video-wrapper").css("padding-top",100*i+"%"),t.removeAttr("height").removeAttr("width")}}))}))},e.fn.fitVids._count=0}(window.jQuery||window.Zepto)},729:(e,t,i)=>{var s,a,r;a=[i(567)],s=function(e){var t,i,s,a,r,n,o="Close",l="BeforeClose",d="MarkupParse",c="Open",p="Change",u="mfp",f="."+u,m="mfp-ready",g="mfp-removing",h="mfp-prevent-close",v=function(){},w=!!window.jQuery,b=e(window),y=function(e,i){t.ev.on(u+e+f,i)},x=function(t,i,s,a){var r=document.createElement("div");return r.className="mfp-"+t,s&&(r.innerHTML=s),a?i&&i.appendChild(r):(r=e(r),i&&r.appendTo(i)),r},S=function(i,s){t.ev.triggerHandler(u+i,s),t.st.callbacks&&(i=i.charAt(0).toLowerCase()+i.slice(1),t.st.callbacks[i]&&t.st.callbacks[i].apply(t,e.isArray(s)?s:[s]))},T=function(i){return i===n&&t.currTemplate.closeBtn||(t.currTemplate.closeBtn=e(t.st.closeMarkup.replace("%title%",t.st.tClose)),n=i),t.currTemplate.closeBtn},E=function(){e.magnificPopup.instance||((t=new v).init(),e.magnificPopup.instance=t)};v.prototype={constructor:v,init:function(){var i=navigator.appVersion;t.isLowIE=t.isIE8=document.all&&!document.addEventListener,t.isAndroid=/android/gi.test(i),t.isIOS=/iphone|ipad|ipod/gi.test(i),t.supportsTransition=function(){var e=document.createElement("p").style,t=["ms","O","Moz","Webkit"];if(void 0!==e.transition)return!0;for(;t.length;)if(t.pop()+"Transition"in e)return!0;return!1}(),t.probablyMobile=t.isAndroid||t.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),s=e(document),t.popupsCache={}},open:function(i){var a;if(!1===i.isObj){t.items=i.items.toArray(),t.index=0;var n,o=i.items;for(a=0;a(e||b.height())},_setFocus:function(){(t.st.focus?t.content.find(t.st.focus).eq(0):t.wrap).focus()},_onFocusIn:function(i){if(i.target!==t.wrap[0]&&!e.contains(t.wrap[0],i.target))return t._setFocus(),!1},_parseMarkup:function(t,i,s){var a;s.data&&(i=e.extend(s.data,i)),S(d,[t,i,s]),e.each(i,(function(i,s){if(void 0===s||!1===s)return!0;if((a=i.split("_")).length>1){var r=t.find(f+"-"+a[0]);if(r.length>0){var n=a[1];"replaceWith"===n?r[0]!==s[0]&&r.replaceWith(s):"img"===n?r.is("img")?r.attr("src",s):r.replaceWith(e("").attr("src",s).attr("class",r.attr("class"))):r.attr(a[1],s)}}else t.find(f+"-"+i).html(s)}))},_getScrollbarSize:function(){if(void 0===t.scrollbarSize){var e=document.createElement("div");e.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(e),t.scrollbarSize=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}return t.scrollbarSize}},e.magnificPopup={instance:null,proto:v.prototype,modules:[],open:function(t,i){return E(),(t=t?e.extend(!0,{},t):{}).isObj=!0,t.index=i||0,this.instance.open(t)},close:function(){return e.magnificPopup.instance&&e.magnificPopup.instance.close()},registerModule:function(t,i){i.options&&(e.magnificPopup.defaults[t]=i.options),e.extend(this.proto,i.proto),this.modules.push(t)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},e.fn.magnificPopup=function(i){E();var s=e(this);if("string"==typeof i)if("open"===i){var a,r=w?s.data("magnificPopup"):s[0].magnificPopup,n=parseInt(arguments[1],10)||0;r.items?a=r.items[n]:(a=s,r.delegate&&(a=a.find(r.delegate)),a=a.eq(n)),t._openClick({mfpEl:a},s,r)}else t.isOpen&&t[i].apply(t,Array.prototype.slice.call(arguments,1));else i=e.extend(!0,{},i),w?s.data("magnificPopup",i):s[0].magnificPopup=i,t.addGroup(s,i);return s};var C,M,P,k="inline",I=function(){P&&(M.after(P.addClass(C)).detach(),P=null)};e.magnificPopup.registerModule(k,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){t.types.push(k),y(o+"."+k,(function(){I()}))},getInline:function(i,s){if(I(),i.src){var a=t.st.inline,r=e(i.src);if(r.length){var n=r[0].parentNode;n&&n.tagName&&(M||(C=a.hiddenClass,M=x(C),C="mfp-"+C),P=r.after(M).detach().removeClass(C)),t.updateStatus("ready")}else t.updateStatus("error",a.tNotFound),r=e("
");return i.inlineElement=r,r}return t.updateStatus("ready"),t._parseMarkup(s,{},i),s}}});var L,A="ajax",O=function(){L&&e(document.body).removeClass(L)},z=function(){O(),t.req&&t.req.abort()};e.magnificPopup.registerModule(A,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'The content could not be loaded.'},proto:{initAjax:function(){t.types.push(A),L=t.st.ajax.cursor,y(o+"."+A,z),y("BeforeChange."+A,z)},getAjax:function(i){L&&e(document.body).addClass(L),t.updateStatus("loading");var s=e.extend({url:i.src,success:function(s,a,r){var n={data:s,xhr:r};S("ParseAjax",n),t.appendContent(e(n.data),A),i.finished=!0,O(),t._setFocus(),setTimeout((function(){t.wrap.addClass(m)}),16),t.updateStatus("ready"),S("AjaxContentAdded")},error:function(){O(),i.finished=i.loadError=!0,t.updateStatus("error",t.st.ajax.tError.replace("%url%",i.src))}},t.st.ajax.settings);return t.req=e.ajax(s),""}}});var _,B=function(i){if(i.data&&void 0!==i.data.title)return i.data.title;var s=t.st.image.titleSrc;if(s){if(e.isFunction(s))return s.call(t,i);if(i.el)return i.el.attr(s)||""}return""};e.magnificPopup.registerModule("image",{options:{markup:'
',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'The image could not be loaded.'},proto:{initImage:function(){var i=t.st.image,s=".image";t.types.push("image"),y(c+s,(function(){"image"===t.currItem.type&&i.cursor&&e(document.body).addClass(i.cursor)})),y(o+s,(function(){i.cursor&&e(document.body).removeClass(i.cursor),b.off("resize"+f)})),y("Resize"+s,t.resizeImage),t.isLowIE&&y("AfterChange",t.resizeImage)},resizeImage:function(){var e=t.currItem;if(e&&e.img&&t.st.image.verticalFit){var i=0;t.isLowIE&&(i=parseInt(e.img.css("padding-top"),10)+parseInt(e.img.css("padding-bottom"),10)),e.img.css("max-height",t.wH-i)}},_onImageHasSize:function(e){e.img&&(e.hasSize=!0,_&&clearInterval(_),e.isCheckingImgSize=!1,S("ImageHasSize",e),e.imgHidden&&(t.content&&t.content.removeClass("mfp-loading"),e.imgHidden=!1))},findImageSize:function(e){var i=0,s=e.img[0],a=function(r){_&&clearInterval(_),_=setInterval((function(){s.naturalWidth>0?t._onImageHasSize(e):(i>200&&clearInterval(_),3==++i?a(10):40===i?a(50):100===i&&a(500))}),r)};a(1)},getImage:function(i,s){var a=0,r=function(){i&&(i.img[0].complete?(i.img.off(".mfploader"),i===t.currItem&&(t._onImageHasSize(i),t.updateStatus("ready")),i.hasSize=!0,i.loaded=!0,S("ImageLoadComplete")):++a<200?setTimeout(r,100):n())},n=function(){i&&(i.img.off(".mfploader"),i===t.currItem&&(t._onImageHasSize(i),t.updateStatus("error",o.tError.replace("%url%",i.src))),i.hasSize=!0,i.loaded=!0,i.loadError=!0)},o=t.st.image,l=s.find(".mfp-img");if(l.length){var d=document.createElement("img");d.className="mfp-img",i.el&&i.el.find("img").length&&(d.alt=i.el.find("img").attr("alt")),i.img=e(d).on("load.mfploader",r).on("error.mfploader",n),d.src=i.src,l.is("img")&&(i.img=i.img.clone()),(d=i.img[0]).naturalWidth>0?i.hasSize=!0:d.width||(i.hasSize=!1)}return t._parseMarkup(s,{title:B(i),img_replaceWith:i.img},i),t.resizeImage(),i.hasSize?(_&&clearInterval(_),i.loadError?(s.addClass("mfp-loading"),t.updateStatus("error",o.tError.replace("%url%",i.src))):(s.removeClass("mfp-loading"),t.updateStatus("ready")),s):(t.updateStatus("loading"),i.loading=!0,i.hasSize||(i.imgHidden=!0,s.addClass("mfp-loading"),t.findImageSize(i)),s)}}});var G;e.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(e){return e.is("img")?e:e.find("img")}},proto:{initZoom:function(){var e,i=t.st.zoom,s=".zoom";if(i.enabled&&t.supportsTransition){var a,r,n=i.duration,d=function(e){var t=e.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),s="all "+i.duration/1e3+"s "+i.easing,a={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},r="transition";return a["-webkit-"+r]=a["-moz-"+r]=a["-o-"+r]=a[r]=s,t.css(a),t},c=function(){t.content.css("visibility","visible")};y("BuildControls"+s,(function(){if(t._allowZoom()){if(clearTimeout(a),t.content.css("visibility","hidden"),!(e=t._getItemToZoom()))return void c();(r=d(e)).css(t._getOffset()),t.wrap.append(r),a=setTimeout((function(){r.css(t._getOffset(!0)),a=setTimeout((function(){c(),setTimeout((function(){r.remove(),e=r=null,S("ZoomAnimationEnded")}),16)}),n)}),16)}})),y(l+s,(function(){if(t._allowZoom()){if(clearTimeout(a),t.st.removalDelay=n,!e){if(!(e=t._getItemToZoom()))return;r=d(e)}r.css(t._getOffset(!0)),t.wrap.append(r),t.content.css("visibility","hidden"),setTimeout((function(){r.css(t._getOffset())}),16)}})),y(o+s,(function(){t._allowZoom()&&(c(),r&&r.remove(),e=null)}))}},_allowZoom:function(){return"image"===t.currItem.type},_getItemToZoom:function(){return!!t.currItem.hasSize&&t.currItem.img},_getOffset:function(i){var s,a=(s=i?t.currItem.img:t.st.zoom.opener(t.currItem.el||t.currItem)).offset(),r=parseInt(s.css("padding-top"),10),n=parseInt(s.css("padding-bottom"),10);a.top-=e(window).scrollTop()-r;var o={width:s.width(),height:(w?s.innerHeight():s[0].offsetHeight)-n-r};return void 0===G&&(G=void 0!==document.createElement("p").style.MozTransform),G?o["-moz-transform"]=o.transform="translate("+a.left+"px,"+a.top+"px)":(o.left=a.left,o.top=a.top),o}}});var D="iframe",$=function(e){if(t.currTemplate[D]){var i=t.currTemplate[D].find("iframe");i.length&&(e||(i[0].src="//about:blank"),t.isIE8&&i.css("display",e?"block":"none"))}};e.magnificPopup.registerModule(D,{options:{markup:'
',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){t.types.push(D),y("BeforeChange",(function(e,t,i){t!==i&&(t===D?$():i===D&&$(!0))})),y(o+"."+D,(function(){$()}))},getIframe:function(i,s){var a=i.src,r=t.st.iframe;e.each(r.patterns,(function(){if(a.indexOf(this.index)>-1)return this.id&&(a="string"==typeof this.id?a.substr(a.lastIndexOf(this.id)+this.id.length,a.length):this.id.call(this,a)),a=this.src.replace("%id%",a),!1}));var n={};return r.srcAction&&(n[r.srcAction]=a),t._parseMarkup(s,n,i),t.updateStatus("ready"),s}}});var F=function(e){var i=t.items.length;return e>i-1?e-i:e<0?i+e:e},H=function(e,t,i){return e.replace(/%curr%/gi,t+1).replace(/%total%/gi,i)};e.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var i=t.st.gallery,a=".mfp-gallery";if(t.direction=!0,!i||!i.enabled)return!1;r+=" mfp-gallery",y(c+a,(function(){i.navigateByImgClick&&t.wrap.on("click"+a,".mfp-img",(function(){if(t.items.length>1)return t.next(),!1})),s.on("keydown"+a,(function(e){37===e.keyCode?t.prev():39===e.keyCode&&t.next()}))})),y("UpdateStatus"+a,(function(e,i){i.text&&(i.text=H(i.text,t.currItem.index,t.items.length))})),y(d+a,(function(e,s,a,r){var n=t.items.length;a.counter=n>1?H(i.tCounter,r.index,n):""})),y("BuildControls"+a,(function(){if(t.items.length>1&&i.arrows&&!t.arrowLeft){var s=i.arrowMarkup,a=t.arrowLeft=e(s.replace(/%title%/gi,i.tPrev).replace(/%dir%/gi,"left")).addClass(h),r=t.arrowRight=e(s.replace(/%title%/gi,i.tNext).replace(/%dir%/gi,"right")).addClass(h);a.click((function(){t.prev()})),r.click((function(){t.next()})),t.container.append(a.add(r))}})),y(p+a,(function(){t._preloadTimeout&&clearTimeout(t._preloadTimeout),t._preloadTimeout=setTimeout((function(){t.preloadNearbyImages(),t._preloadTimeout=null}),16)})),y(o+a,(function(){s.off(a),t.wrap.off("click"+a),t.arrowRight=t.arrowLeft=null}))},next:function(){t.direction=!0,t.index=F(t.index+1),t.updateItemHTML()},prev:function(){t.direction=!1,t.index=F(t.index-1),t.updateItemHTML()},goTo:function(e){t.direction=e>=t.index,t.index=e,t.updateItemHTML()},preloadNearbyImages:function(){var e,i=t.st.gallery.preload,s=Math.min(i[0],t.items.length),a=Math.min(i[1],t.items.length);for(e=1;e<=(t.direction?a:s);e++)t._preloadItem(t.index+e);for(e=1;e<=(t.direction?s:a);e++)t._preloadItem(t.index-e)},_preloadItem:function(i){if(i=F(i),!t.items[i].preloaded){var s=t.items[i];s.parsed||(s=t.parseEl(i)),S("LazyLoad",s),"image"===s.type&&(s.img=e('').on("load.mfploader",(function(){s.hasSize=!0})).on("error.mfploader",(function(){s.hasSize=!0,s.loadError=!0,S("LazyLoadError",s)})).attr("src",s.src)),s.preloaded=!0}}}});var N="retina";e.magnificPopup.registerModule(N,{options:{replaceSrc:function(e){return e.src.replace(/\.\w+$/,(function(e){return"@2x"+e}))},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var e=t.st.retina,i=e.ratio;(i=isNaN(i)?i():i)>1&&(y("ImageHasSize."+N,(function(e,t){t.img.css({"max-width":t.img[0].naturalWidth/i,width:"100%"})})),y("ElementParse."+N,(function(t,s){s.src=e.replaceSrc(s,i)})))}}}}),E()},void 0===(r=s.apply(t,a))||(e.exports=r)},554:(e,t,i)=>{"use strict";function s(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function a(e={},t={}){Object.keys(t).forEach((i=>{void 0===e[i]?e[i]=t[i]:s(t[i])&&s(e[i])&&Object.keys(t[i]).length>0&&a(e[i],t[i])}))}i.d(t,{s5:()=>te,xW:()=>se,W_:()=>Z,tl:()=>J,VS:()=>ee,ZP:()=>U});const r={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 n(){const e="undefined"!=typeof document?document:{};return a(e,r),e}const o={document:r,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 l(){const e="undefined"!=typeof window?window:{};return a(e,o),e}function d(e,t=0){return setTimeout(e,t)}function c(){return Date.now()}function p(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function u(...e){const t=Object(e[0]),i=["__proto__","constructor","prototype"];for(let a=1;ai.indexOf(e)<0));for(let i=0,s=e.length;ia?"next":"prev",c=(e,t)=>"next"===d&&e>=t||"prev"===d&&e<=t,p=()=>{r=(new Date).getTime(),null===n&&(n=r);const l=Math.max(Math.min((r-n)/o,1),0),d=.5-Math.cos(l*Math.PI)/2;let u=a+d*(t-a);if(c(u,t)&&(u=t),e.wrapperEl.scrollTo({[i]:u}),c(u,t))return e.wrapperEl.style.overflow="hidden",e.wrapperEl.style.scrollSnapType="",setTimeout((()=>{e.wrapperEl.style.overflow="",e.wrapperEl.scrollTo({[i]:u})})),void s.cancelAnimationFrame(e.cssModeFrameID);e.cssModeFrameID=s.requestAnimationFrame(p)};p()}function g(e){return e.querySelector(".swiper-slide-transform")||e.shadowEl&&e.shadowEl.querySelector(".swiper-slide-transform")||e}function h(e,t=""){return[...e.children].filter((e=>e.matches(t)))}function v(e,t=[]){const i=document.createElement(e);return i.classList.add(...Array.isArray(t)?t:[t]),i}function w(e,t){return l().getComputedStyle(e,null).getPropertyValue(t)}function b(e){let t,i=e;if(i){for(t=0;null!==(i=i.previousSibling);)1===i.nodeType&&(t+=1);return t}}function y(e,t){const i=[];let s=e.parentElement;for(;s;)t?s.matches(t)&&i.push(s):i.push(s),s=s.parentElement;return i}function x(e,t,i){const s=l();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 S,T,E;function C(){return S||(S=function(){const e=l(),t=n();return{smoothScroll:t.documentElement&&t.documentElement.style&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch)}}()),S}const M={on(e,t,i){const s=this;if(!s.eventsListeners||s.destroyed)return s;if("function"!=typeof t)return s;const a=i?"unshift":"push";return e.split(" ").forEach((e=>{s.eventsListeners[e]||(s.eventsListeners[e]=[]),s.eventsListeners[e][a](t)})),s},once(e,t,i){const s=this;if(!s.eventsListeners||s.destroyed)return s;if("function"!=typeof t)return s;function a(...i){s.off(e,a),a.__emitterProxy&&delete a.__emitterProxy,t.apply(s,i)}return a.__emitterProxy=t,s.on(e,a,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,a)=>{(s===t||s.__emitterProxy&&s.__emitterProxy===t)&&i.eventsListeners[e].splice(a,1)}))})),i):i},emit(...e){const t=this;if(!t.eventsListeners||t.destroyed)return t;if(!t.eventsListeners)return t;let i,s,a;return"string"==typeof e[0]||Array.isArray(e[0])?(i=e[0],s=e.slice(1,e.length),a=t):(i=e[0].events,s=e[0].data,a=e[0].context||t),s.unshift(a),(Array.isArray(i)?i:i.split(" ")).forEach((e=>{t.eventsAnyListeners&&t.eventsAnyListeners.length&&t.eventsAnyListeners.forEach((t=>{t.apply(a,[e,...s])})),t.eventsListeners&&t.eventsListeners[e]&&t.eventsListeners[e].forEach((e=>{e.apply(a,s)}))})),t}},P=(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()}},k=(e,t)=>{if(!e.slides[t])return;const i=e.slides[t].querySelector('[loading="lazy"]');i&&i.removeAttribute("loading")},I=e=>{if(!e||e.destroyed||!e.params)return;let t=e.params.lazyPreloadPrevNext;const i=e.slides.length;if(!i||!t||t<0)return;t=Math.min(t,i);const s="auto"===e.params.slidesPerView?e.slidesPerViewDynamic():Math.ceil(e.params.slidesPerView),a=e.activeIndex,r=a+s-1;if(e.params.rewind)for(let s=a-t;s<=r+t;s+=1){const t=(s%i+i)%i;t!==a&&t>r&&k(e,t)}else for(let s=Math.max(r-t,0);s<=Math.min(r+t,i-1);s+=1)s!==a&&s>r&&k(e,s)},L={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(w(s,"padding-left")||0,10)-parseInt(w(s,"padding-right")||0,10),i=i-parseInt(w(s,"padding-top")||0,10)-parseInt(w(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:a,slidesEl:r,size:n,rtlTranslate:o,wrongRTL:l}=e,d=e.virtual&&s.virtual.enabled,c=d?e.virtual.slides.length:e.slides.length,p=h(r,`.${e.params.slideClass}, swiper-slide`),u=d?e.virtual.slides.length:p.length;let m=[];const g=[],v=[];let b=s.slidesOffsetBefore;"function"==typeof b&&(b=s.slidesOffsetBefore.call(e));let y=s.slidesOffsetAfter;"function"==typeof y&&(y=s.slidesOffsetAfter.call(e));const S=e.snapGrid.length,T=e.slidesGrid.length;let E=s.spaceBetween,C=-b,M=0,P=0;if(void 0===n)return;"string"==typeof E&&E.indexOf("%")>=0?E=parseFloat(E.replace("%",""))/100*n:"string"==typeof E&&(E=parseFloat(E)),e.virtualSize=-E,p.forEach((e=>{o?e.style.marginLeft="":e.style.marginRight="",e.style.marginBottom="",e.style.marginTop=""})),s.centeredSlides&&s.cssMode&&(f(a,"--swiper-centered-offset-before",""),f(a,"--swiper-centered-offset-after",""));const k=s.grid&&s.grid.rows>1&&e.grid;let I;k&&e.grid.initSlides(u);const L="auto"===s.slidesPerView&&s.breakpoints&&Object.keys(s.breakpoints).filter((e=>void 0!==s.breakpoints[e].slidesPerView)).length>0;for(let a=0;a1&&m.push(e.virtualSize-n)}if(d&&s.loop){const t=v[0]+E;if(s.slidesPerGroup>1){const i=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/s.slidesPerGroup),a=t*s.slidesPerGroup;for(let e=0;e!(s.cssMode&&!s.loop)||t!==p.length-1)).forEach((e=>{e.style[i]=`${E}px`}))}if(s.centeredSlides&&s.centeredSlidesBounds){let e=0;v.forEach((t=>{e+=t+(E||0)})),e-=E;const t=e-n;m=m.map((e=>e<0?-b:e>t?t+y:e))}if(s.centerInsufficientSlides){let e=0;if(v.forEach((t=>{e+=t+(E||0)})),e-=E,e{m[i]=e-t})),g.forEach(((e,i)=>{g[i]=e+t}))}}if(Object.assign(e,{slides:p,snapGrid:m,slidesGrid:g,slidesSizesGrid:v}),s.centeredSlides&&s.cssMode&&!s.centeredSlidesBounds){f(a,"--swiper-centered-offset-before",-m[0]+"px"),f(a,"--swiper-centered-offset-after",e.size/2-v[v.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(u!==c&&e.emit("slidesLengthChange"),m.length!==S&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),g.length!==T&&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);u<=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 a,r=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const n=e=>s?t.slides[t.getSlideIndexByData(e)]: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(a=0;at.slides.length&&!s)break;i.push(n(e))}else i.push(n(t.activeIndex));for(a=0;ar?e:r}(r||0===r)&&(t.wrapperEl.style.height=`${r}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{e.classList.remove(i.slideVisibleClass)})),t.visibleSlidesIndexes=[],t.visibleSlides=[];let o=i.spaceBetween;"string"==typeof o&&o.indexOf("%")>=0?o=parseFloat(o.replace("%",""))/100*t.size:"string"==typeof o&&(o=parseFloat(o));for(let e=0;e=0&&u1&&f<=t.size||u<=0&&f>=t.size)&&(t.visibleSlides.push(l),t.visibleSlidesIndexes.push(e),s[e].classList.add(i.slideVisibleClass)),l.progress=a?-c:c,l.originalProgress=a?-p:p}},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:a,isBeginning:r,isEnd:n,progressLoop:o}=t;const l=r,d=n;if(0===s)a=0,r=!0,n=!0;else{a=(e-t.minTranslate())/s;const i=Math.abs(e-t.minTranslate())<1,o=Math.abs(e-t.maxTranslate())<1;r=i||a<=0,n=o||a>=1,i&&(a=0),o&&(a=1)}if(i.loop){const i=t.getSlideIndexByData(0),s=t.getSlideIndexByData(t.slides.length-1),a=t.slidesGrid[i],r=t.slidesGrid[s],n=t.slidesGrid[t.slidesGrid.length-1],l=Math.abs(e);o=l>=a?(l-a)/n:(l+n-r)/n,o>1&&(o-=1)}Object.assign(t,{progress:a,progressLoop:o,isBeginning:r,isEnd:n}),(i.watchSlidesProgress||i.centeredSlides&&i.autoHeight)&&t.updateSlidesProgress(e),r&&!l&&t.emit("reachBeginning toEdge"),n&&!d&&t.emit("reachEnd toEdge"),(l&&!r||d&&!n)&&t.emit("fromEdge"),t.emit("progress",a)},updateSlidesClasses:function(){const e=this,{slides:t,params:i,slidesEl:s,activeIndex:a}=e,r=e.virtual&&i.virtual.enabled,n=e=>h(s,`.${i.slideClass}${e}, swiper-slide${e}`)[0];let o;if(t.forEach((e=>{e.classList.remove(i.slideActiveClass,i.slideNextClass,i.slidePrevClass)})),r)if(i.loop){let t=a-e.virtual.slidesBefore;t<0&&(t=e.virtual.slides.length+t),t>=e.virtual.slides.length&&(t-=e.virtual.slides.length),o=n(`[data-swiper-slide-index="${t}"]`)}else o=n(`[data-swiper-slide-index="${a}"]`);else o=t[a];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:a,activeIndex:r,realIndex:n,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 a;for(let e=0;e=t[e]&&s=t[e]&&s=t[e]&&(a=e);return i.normalizeSlideIndex&&(a<0||void 0===a)&&(a=0),a}(t)),s.indexOf(i)>=0)l=s.indexOf(i);else{const e=Math.min(a.slidesPerGroupSkip,d);l=e+Math.floor((d-e)/a.slidesPerGroup)}if(l>=s.length&&(l=s.length-1),d===r)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&&a.virtual.enabled&&a.loop?c(d):t.slides[d]?parseInt(t.slides[d].getAttribute("data-swiper-slide-index")||d,10):d,Object.assign(t,{previousSnapIndex:o,snapIndex:l,previousRealIndex:n,realIndex:p,previousIndex:r,activeIndex:d}),t.initialized&&I(t),t.emit("activeIndexChange"),t.emit("snapIndexChange"),n!==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 a,r=!1;if(s)for(let e=0;er?"next":a=l.length&&(v=l.length-1);const w=-l[v];if(o.normalizeSlideIndex)for(let e=0;e=i&&t=i&&t=i&&(n=e)}if(r.initialized&&n!==p){if(!r.allowSlideNext&&wr.translate&&w>r.maxTranslate()&&(p||0)!==n)return!1}let b;if(n!==(c||0)&&i&&r.emit("beforeSlideChangeStart"),r.updateProgress(w),b=n>p?"next":n0?(r._cssModeVirtualInitialSet=!0,requestAnimationFrame((()=>{f[e?"scrollLeft":"scrollTop"]=i}))):f[e?"scrollLeft":"scrollTop"]=i,t&&requestAnimationFrame((()=>{r.wrapperEl.style.scrollSnapType="",r._immediateVirtual=!1}))}else{if(!r.support.smoothScroll)return m({swiper:r,targetPosition:i,side:e?"left":"top"}),!0;f.scrollTo({[e?"left":"top"]:i,behavior:"smooth"})}return!0}return r.setTransition(t),r.setTranslate(w),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,s),r.transitionStart(i,b),0===t?r.transitionEnd(i,b):r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.wrapperEl.removeEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(i,b))}),r.wrapperEl.addEventListener("transitionend",r.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e=0,t=this.params.speed,i=!0,s){"string"==typeof e&&(e=parseInt(e,10));const a=this;let r=e;return a.params.loop&&(a.virtual&&a.params.virtual.enabled?r+=a.virtual.slidesBefore:r=a.getSlideIndexByData(r)),a.slideTo(r,t,i,s)},slideNext:function(e=this.params.speed,t=!0,i){const s=this,{enabled:a,params:r,animating:n}=s;if(!a)return s;let o=r.slidesPerGroup;"auto"===r.slidesPerView&&1===r.slidesPerGroup&&r.slidesPerGroupAuto&&(o=Math.max(s.slidesPerViewDynamic("current",!0),1));const l=s.activeIndexp(e)));let m=r[f.indexOf(u)-1];if(void 0===m&&a.cssMode){let e;r.forEach(((t,i)=>{u>=t&&(e=i)})),void 0!==e&&(m=r[e>0?e-1:e])}let g=0;if(void 0!==m&&(g=n.indexOf(m),g<0&&(g=s.activeIndex-1),"auto"===a.slidesPerView&&1===a.slidesPerGroup&&a.slidesPerGroupAuto&&(g=g-s.slidesPerViewDynamic("previous",!0)+1,g=Math.max(g,0))),a.rewind&&s.isBeginning){const a=s.params.virtual&&s.params.virtual.enabled&&s.virtual?s.virtual.slides.length-1:s.slides.length-1;return s.slideTo(a,e,t,i)}return s.slideTo(g,e,t,i)},slideReset:function(e=this.params.speed,t=!0,i){return this.slideTo(this.activeIndex,e,t,i)},slideToClosest:function(e=this.params.speed,t=!0,i,s=.5){const a=this;let r=a.activeIndex;const n=Math.min(a.params.slidesPerGroupSkip,r),o=n+Math.floor((r-n)/a.params.slidesPerGroup),l=a.rtlTranslate?a.translate:-a.translate;if(l>=a.snapGrid[o]){const e=a.snapGrid[o];l-e>(a.snapGrid[o+1]-e)*s&&(r+=a.params.slidesPerGroup)}else{const e=a.snapGrid[o-1];l-e<=(a.snapGrid[o]-e)*s&&(r-=a.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,a.slidesGrid.length-1),a.slideTo(r,e,t,i)},slideToClickedSlide:function(){const e=this,{params:t,slidesEl:i}=e,s="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let a,r=e.clickedIndex;const n=e.isElement?"swiper-slide":`.${t.slideClass}`;if(t.loop){if(e.animating)return;a=parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10),t.centeredSlides?re.slides.length-e.loopedSlides+s/2?(e.loopFix(),r=e.getSlideIndex(h(i,`${n}[data-swiper-slide-index="${a}"]`)[0]),d((()=>{e.slideTo(r)}))):e.slideTo(r):r>e.slides.length-s?(e.loopFix(),r=e.getSlideIndex(h(i,`${n}[data-swiper-slide-index="${a}"]`)[0]),d((()=>{e.slideTo(r)}))):e.slideTo(r)}else e.slideTo(r)}};function z(e){const t=this,i=n(),s=l(),a=t.touchEventsData;a.evCache.push(e);const{params:r,touches:o,enabled:d}=t;if(!d)return;if(!r.simulateTouch&&"mouse"===e.pointerType)return;if(t.animating&&r.preventInteractionOnTransition)return;!t.animating&&r.cssMode&&r.loop&&t.loopFix();let p=e;p.originalEvent&&(p=p.originalEvent);let u=p.target;if("wrapper"===r.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 f=!!r.noSwipingClass&&""!==r.noSwipingClass,m=e.composedPath?e.composedPath():e.path;f&&p.target&&p.target.shadowRoot&&m&&(u=m[0]);const g=r.noSwipingSelector?r.noSwipingSelector:`.${r.noSwipingClass}`,h=!(!p.target||!p.target.shadowRoot);if(r.noSwiping&&(h?function(e,t=this){return function t(i){if(!i||i===n()||i===l())return null;i.assignedSlot&&(i=i.assignedSlot);const s=i.closest(e);return s||i.getRootNode?s||t(i.getRootNode().host):null}(t)}(g,u):u.closest(g)))return void(t.allowClick=!0);if(r.swipeHandler&&!u.closest(r.swipeHandler))return;o.currentX=p.pageX,o.currentY=p.pageY;const v=o.currentX,w=o.currentY,b=r.edgeSwipeDetection||r.iOSEdgeSwipeDetection,y=r.edgeSwipeThreshold||r.iOSEdgeSwipeThreshold;if(b&&(v<=y||v>=s.innerWidth-y)){if("prevent"!==b)return;e.preventDefault()}Object.assign(a,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),o.startX=v,o.startY=w,a.touchStartTime=c(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,r.threshold>0&&(a.allowThresholdMove=!1);let x=!0;u.matches(a.focusableElements)&&(x=!1,"SELECT"===u.nodeName&&(a.isTouched=!1)),i.activeElement&&i.activeElement.matches(a.focusableElements)&&i.activeElement!==u&&i.activeElement.blur();const S=x&&t.allowTouchMove&&r.touchStartPreventDefault;!r.touchStartForcePreventDefault&&!S||u.isContentEditable||p.preventDefault(),t.params.freeMode&&t.params.freeMode.enabled&&t.freeMode&&t.animating&&!r.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",p)}function _(e){const t=n(),i=this,s=i.touchEventsData,{params:a,touches:r,rtlTranslate:o,enabled:l}=i;if(!l)return;if(!a.simulateTouch&&"mouse"===e.pointerType)return;let d=e;if(d.originalEvent&&(d=d.originalEvent),!s.isTouched)return void(s.startMoving&&s.isScrolling&&i.emit("touchMoveOpposite",d));const p=s.evCache.findIndex((e=>e.pointerId===d.pointerId));p>=0&&(s.evCache[p]=d);const u=s.evCache.length>1?s.evCache[0]:d,f=u.pageX,m=u.pageY;if(d.preventedByNestedSwiper)return r.startX=f,void(r.startY=m);if(!i.allowTouchMove)return d.target.matches(s.focusableElements)||(i.allowClick=!1),void(s.isTouched&&(Object.assign(r,{startX:f,startY:m,prevX:i.touches.currentX,prevY:i.touches.currentY,currentX:f,currentY:m}),s.touchStartTime=c()));if(a.touchReleaseOnEdges&&!a.loop)if(i.isVertical()){if(mr.startY&&i.translate>=i.minTranslate())return s.isTouched=!1,void(s.isMoved=!1)}else if(fr.startX&&i.translate>=i.minTranslate())return;if(t.activeElement&&d.target===t.activeElement&&d.target.matches(s.focusableElements))return s.isMoved=!0,void(i.allowClick=!1);if(s.allowTouchCallbacks&&i.emit("touchMove",d),d.targetTouches&&d.targetTouches.length>1)return;r.currentX=f,r.currentY=m;const g=r.currentX-r.startX,h=r.currentY-r.startY;if(i.params.threshold&&Math.sqrt(g**2+h**2)=25&&(e=180*Math.atan2(Math.abs(h),Math.abs(g))/Math.PI,s.isScrolling=i.isHorizontal()?e>a.touchAngle:90-e>a.touchAngle)}if(s.isScrolling&&i.emit("touchMoveOpposite",d),void 0===s.startMoving&&(r.currentX===r.startX&&r.currentY===r.startY||(s.startMoving=!0)),s.isScrolling||i.zoom&&i.params.zoom&&i.params.zoom.enabled&&s.evCache.length>1)return void(s.isTouched=!1);if(!s.startMoving)return;i.allowClick=!1,!a.cssMode&&d.cancelable&&d.preventDefault(),a.touchMoveStopPropagation&&!a.nested&&d.stopPropagation();let v=i.isHorizontal()?g:h,w=i.isHorizontal()?r.currentX-r.previousX:r.currentY-r.previousY;a.oneWayMovement&&(v=Math.abs(v)*(o?1:-1),w=Math.abs(w)*(o?1:-1)),r.diff=v,v*=a.touchRatio,o&&(v=-v,w=-w);const b=i.touchesDirection;i.swipeDirection=v>0?"prev":"next",i.touchesDirection=w>0?"prev":"next";const y=i.params.loop&&!a.cssMode;if(!s.isMoved){if(y&&i.loopFix({direction:i.swipeDirection}),s.startTranslate=i.getTranslate(),i.setTransition(0),i.animating){const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});i.wrapperEl.dispatchEvent(e)}s.allowMomentumBounce=!1,!a.grabCursor||!0!==i.allowSlideNext&&!0!==i.allowSlidePrev||i.setGrabCursor(!0),i.emit("sliderFirstMove",d)}let x;s.isMoved&&b!==i.touchesDirection&&y&&Math.abs(v)>=1&&(i.loopFix({direction:i.swipeDirection,setTranslate:!0}),x=!0),i.emit("sliderMove",d),s.isMoved=!0,s.currentTranslate=v+s.startTranslate;let S=!0,T=a.resistanceRatio;if(a.touchReleaseOnEdges&&(T=0),v>0?(y&&!x&&s.currentTranslate>(a.centeredSlides?i.minTranslate()-i.size/2:i.minTranslate())&&i.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),s.currentTranslate>i.minTranslate()&&(S=!1,a.resistance&&(s.currentTranslate=i.minTranslate()-1+(-i.minTranslate()+s.startTranslate+v)**T))):v<0&&(y&&!x&&s.currentTranslate<(a.centeredSlides?i.maxTranslate()+i.size/2:i.maxTranslate())&&i.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:i.slides.length-("auto"===a.slidesPerView?i.slidesPerViewDynamic():Math.ceil(parseFloat(a.slidesPerView,10)))}),s.currentTranslates.startTranslate&&(s.currentTranslate=s.startTranslate),i.allowSlidePrev||i.allowSlideNext||(s.currentTranslate=s.startTranslate),a.threshold>0){if(!(Math.abs(v)>a.threshold||s.allowThresholdMove))return void(s.currentTranslate=s.startTranslate);if(!s.allowThresholdMove)return s.allowThresholdMove=!0,r.startX=r.currentX,r.startY=r.currentY,s.currentTranslate=s.startTranslate,void(r.diff=i.isHorizontal()?r.currentX-r.startX:r.currentY-r.startY)}a.followFinger&&!a.cssMode&&((a.freeMode&&a.freeMode.enabled&&i.freeMode||a.watchSlidesProgress)&&(i.updateActiveIndex(),i.updateSlidesClasses()),i.params.freeMode&&a.freeMode.enabled&&i.freeMode&&i.freeMode.onTouchMove(),i.updateProgress(s.currentTranslate),i.setTranslate(s.currentTranslate))}function B(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)&&("pointercancel"!==e.type||!t.browser.isSafari&&!t.browser.isWebView))return;const{params:a,touches:r,rtlTranslate:n,slidesGrid:o,enabled:l}=t;if(!l)return;if(!a.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&&a.grabCursor&&t.setGrabCursor(!1),i.isMoved=!1,void(i.startMoving=!1);a.grabCursor&&i.isMoved&&i.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const u=c(),f=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),f<300&&u-i.lastClickTime<300&&t.emit("doubleTap doubleClick",p)}if(i.lastClickTime=c(),d((()=>{t.destroyed||(t.allowClick=!0)})),!i.isTouched||!i.isMoved||!t.swipeDirection||0===r.diff||i.currentTranslate===i.startTranslate)return i.isTouched=!1,i.isMoved=!1,void(i.startMoving=!1);let m;if(i.isTouched=!1,i.isMoved=!1,i.startMoving=!1,m=a.followFinger?n?t.translate:-t.translate:-i.currentTranslate,a.cssMode)return;if(t.params.freeMode&&a.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:m});let g=0,h=t.slidesSizesGrid[0];for(let e=0;e=o[e]&&m=o[e]&&(g=e,h=o[o.length-1]-o[o.length-2])}let v=null,w=null;a.rewind&&(t.isBeginning?w=t.params.virtual&&t.params.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(v=0));const b=(m-o[g])/h,y=ga.longSwipesMs){if(!a.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(b>=a.longSwipesRatio?t.slideTo(a.rewind&&t.isEnd?v:g+y):t.slideTo(g)),"prev"===t.swipeDirection&&(b>1-a.longSwipesRatio?t.slideTo(g+y):null!==w&&b<0&&Math.abs(b)>a.longSwipesRatio?t.slideTo(w):t.slideTo(g))}else{if(!a.shortSwipes)return void t.slideTo(t.activeIndex);!t.navigation||p.target!==t.navigation.nextEl&&p.target!==t.navigation.prevEl?("next"===t.swipeDirection&&t.slideTo(null!==v?v:g+y),"prev"===t.swipeDirection&&t.slideTo(null!==w?w:g)):p.target===t.navigation.nextEl?t.slideTo(g+y):t.slideTo(g)}}function G(){const e=this,{params:t,el:i}=e;if(i&&0===i.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:s,allowSlidePrev:a,snapGrid:r}=e,n=e.virtual&&e.params.virtual.enabled;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses();const o=n&&t.loop;!("auto"===t.slidesPerView||t.slidesPerView>1)||!e.isEnd||e.isBeginning||e.params.centeredSlides||o?e.params.loop&&!n?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(e.autoplay.resizeTimeout),e.autoplay.resizeTimeout=setTimeout((()=>{e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.resume()}),500)),e.allowSlidePrev=a,e.allowSlideNext=s,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}function D(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 a;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 r=e.maxTranslate()-e.minTranslate();a=0===r?0:(e.translate-e.minTranslate())/r,a!==e.progress&&e.updateProgress(i?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}function F(e){const t=this;P(t,e.target),t.params.cssMode||"auto"!==t.params.slidesPerView&&!t.params.autoHeight||t.update()}let H=!1;function N(){}const j=(e,t)=>{const i=n(),{params:s,el:a,wrapperEl:r,device:o}=e,l=!!s.nested,d="on"===t?"addEventListener":"removeEventListener",c=t;a[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}),(s.preventClicks||s.preventClicksPropagation)&&a[d]("click",e.onClick,!0),s.cssMode&&r[d]("scroll",e.onScroll),s.updateOnWindowResize?e[c](o.ios||o.android?"resize orientationchange observerUpdate":"resize observerUpdate",G,!0):e[c]("observerUpdate",G,!0),a[d]("load",e.onLoad,{capture:!0})},V=(e,t)=>e.grid&&t.grid&&t.grid.rows>1,R={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",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function W(e,t){return function(i={}){const s=Object.keys(i)[0],a=i[s];"object"==typeof a&&null!==a?(["navigation","pagination","scrollbar"].indexOf(s)>=0&&!0===e[s]&&(e[s]={auto:!0}),s in e&&"enabled"in a?(!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}),u(t,i)):u(t,i)):u(t,i)}}const q={eventsEmitter:M,update:L,translate:{getTranslate:function(e=(this.isHorizontal()?"x":"y")){const{params:t,rtlTranslate:i,translate:s,wrapperEl:a}=this;if(t.virtualTranslate)return i?-s:s;if(t.cssMode)return s;let r=function(e,t="x"){const i=l();let s,a,r;const n=function(e){const t=l();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?(a=n.transform||n.webkitTransform,a.split(",").length>6&&(a=a.split(", ").map((e=>e.replace(",","."))).join(", ")),r=new i.WebKitCSSMatrix("none"===a?"":a)):(r=n.MozTransform||n.OTransform||n.MsTransform||n.msTransform||n.transform||n.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),s=r.toString().split(",")),"x"===t&&(a=i.WebKitCSSMatrix?r.m41:16===s.length?parseFloat(s[12]):parseFloat(s[4])),"y"===t&&(a=i.WebKitCSSMatrix?r.m42:16===s.length?parseFloat(s[13]):parseFloat(s[5])),a||0}(a,e);return r+=this.cssOverflowAdjustment(),i&&(r=-r),r||0},setTranslate:function(e,t){const i=this,{rtlTranslate:s,params:a,wrapperEl:r,progress:n}=i;let o,l=0,d=0;i.isHorizontal()?l=s?-e:e:d=e,a.roundLengths&&(l=Math.floor(l),d=Math.floor(d)),i.previousTranslate=i.translate,i.translate=i.isHorizontal()?l:d,a.cssMode?r[i.isHorizontal()?"scrollLeft":"scrollTop"]=i.isHorizontal()?-l:-d:a.virtualTranslate||(i.isHorizontal()?l-=i.cssOverflowAdjustment():d-=i.cssOverflowAdjustment(),r.style.transform=`translate3d(${l}px, ${d}px, 0px)`);const c=i.maxTranslate()-i.minTranslate();o=0===c?0:(e-i.minTranslate())/c,o!==n&&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=0,t=this.params.speed,i=!0,s=!0,a){const r=this,{params:n,wrapperEl:o}=r;if(r.animating&&n.preventInteractionOnTransition)return!1;const l=r.minTranslate(),d=r.maxTranslate();let c;if(c=s&&e>l?l:s&&e{e.setAttribute("data-swiper-slide-index",t)})),t.loopFix({slideRealIndex:e,direction:i.centeredSlides?void 0:"next"}))},loopFix:function({slideRealIndex:e,slideTo:t=!0,direction:i,setTranslate:s,activeSlideIndex:a,byController:r,byMousewheel:n}={}){const o=this;if(!o.params.loop)return;o.emit("beforeLoopFix");const{slides:l,allowSlidePrev:d,allowSlideNext:c,slidesEl:p,params:u}=o;if(o.allowSlidePrev=!0,o.allowSlideNext=!0,o.virtual&&u.virtual.enabled)return t&&(u.centeredSlides||0!==o.snapIndex?u.centeredSlides&&o.snapIndexe.classList.contains(u.slideActiveClass)))[0]):v=a;const w="next"===i||!i,b="prev"===i||!i;let y=0,x=0;if(ao.slides.length-2*m){x=Math.max(a-(o.slides.length-2*m),u.slidesPerGroup);for(let e=0;e{o.slides[e].swiperLoopMoveDOM=!0,p.prepend(o.slides[e]),o.slides[e].swiperLoopMoveDOM=!1})),w&&h.forEach((e=>{o.slides[e].swiperLoopMoveDOM=!0,p.append(o.slides[e]),o.slides[e].swiperLoopMoveDOM=!1})),o.recalcSlides(),"auto"===u.slidesPerView&&o.updateSlides(),u.watchSlidesProgress&&o.updateSlidesOffset(),t)if(g.length>0&&b)if(void 0===e){const e=o.slidesGrid[v],t=o.slidesGrid[v+y]-e;n?o.setTranslate(o.translate-t):(o.slideTo(v+y,0,!1,!0),s&&(o.touches[o.isHorizontal()?"startX":"startY"]+=t))}else s&&o.slideToLoop(e,0,!1,!0);else if(h.length>0&&w)if(void 0===e){const e=o.slidesGrid[v],t=o.slidesGrid[v-x]-e;n?o.setTranslate(o.translate-t):(o.slideTo(v-x,0,!1,!0),s&&(o.touches[o.isHorizontal()?"startX":"startY"]+=t))}else o.slideToLoop(e,0,!1,!0);if(o.allowSlidePrev=d,o.allowSlideNext=c,o.controller&&o.controller.control&&!r){const t={slideRealIndex:e,slideTo:!1,direction:i,setTranslate:s,activeSlideIndex:a,byController:!0};Array.isArray(o.controller.control)?o.controller.control.forEach((e=>{!e.destroyed&&e.params.loop&&e.loopFix(t)})):o.controller.control instanceof o.constructor&&o.controller.control.params.loop&&o.controller.control.loopFix(t)}o.emit("loopFix")},loopDestroy:function(){const e=this,{params:t,slidesEl:i}=e;if(!t.loop||e.virtual&&e.params.virtual.enabled)return;e.recalcSlides();const s=[];e.slides.forEach((e=>{const t=void 0===e.swiperSlideIndex?1*e.getAttribute("data-swiper-slide-index"):e.swiperSlideIndex;s[t]=e})),e.slides.forEach((e=>{e.removeAttribute("data-swiper-slide-index")})),s.forEach((e=>{i.append(e)})),e.recalcSlides(),e.slideTo(e.realIndex,0)}},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;t.isElement&&(t.__preventObserver__=!0),i.style.cursor="move",i.style.cursor=e?"grabbing":"grab",t.isElement&&requestAnimationFrame((()=>{t.__preventObserver__=!1}))},unsetGrabCursor:function(){const e=this;e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e.isElement&&(e.__preventObserver__=!0),e["container"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="",e.isElement&&requestAnimationFrame((()=>{e.__preventObserver__=!1})))}},events:{attachEvents:function(){const e=this,t=n(),{params:i}=e;e.onTouchStart=z.bind(e),e.onTouchMove=_.bind(e),e.onTouchEnd=B.bind(e),i.cssMode&&(e.onScroll=$.bind(e)),e.onClick=D.bind(e),e.onLoad=F.bind(e),H||(t.addEventListener("touchstart",N),H=!0),j(e,"on")},detachEvents:function(){j(this,"off")}},breakpoints:{setBreakpoint:function(){const e=this,{realIndex:t,initialized:i,params:s,el:a}=e,r=s.breakpoints;if(!r||r&&0===Object.keys(r).length)return;const n=e.getBreakpoint(r,e.params.breakpointsBase,e.el);if(!n||e.currentBreakpoint===n)return;const o=(n in r?r[n]:void 0)||e.originalParams,l=V(e,s),d=V(e,o),c=s.enabled;l&&!d?(a.classList.remove(`${s.containerModifierClass}grid`,`${s.containerModifierClass}grid-column`),e.emitContainerClasses()):!l&&d&&(a.classList.add(`${s.containerModifierClass}grid`),(o.grid.fill&&"column"===o.grid.fill||!o.grid.fill&&"column"===s.grid.fill)&&a.classList.add(`${s.containerModifierClass}grid-column`),e.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach((t=>{const i=s[t]&&s[t].enabled,a=o[t]&&o[t].enabled;i&&!a&&e[t].disable(),!i&&a&&e[t].enable()}));const p=o.direction&&o.direction!==s.direction,f=s.loop&&(o.slidesPerView!==s.slidesPerView||p);p&&i&&e.changeDirection(),u(e.params,o);const m=e.params.enabled;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),c&&!m?e.disable():!c&&m&&e.enable(),e.currentBreakpoint=n,e.emit("_beforeBreakpoint",o),f&&i&&(e.loopDestroy(),e.loopCreate(t),e.updateSlides()),e.emit("breakpoint",o)},getBreakpoint:function(e,t="window",i){if(!e||"container"===t&&!i)return;let s=!1;const a=l(),r="window"===t?a.innerHeight:i.clientHeight,n=Object.keys(e).map((e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:r*t,point:e}}return{value:e,point:e}}));n.sort(((e,t)=>parseInt(e.value,10)-parseInt(t.value,10)));for(let e=0;ei}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:a,device:r}=e,n=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:r.android},{ios:r.ios},{"css-mode":i.cssMode},{centered:i.cssMode&&i.centeredSlides},{"watch-progress":i.watchSlidesProgress}],i.containerModifierClass);t.push(...n),a.classList.add(...t),e.emitContainerClasses()},removeClasses:function(){const{el:e,classNames:t}=this;e.classList.remove(...t),this.emitContainerClasses()}}},Y={};class X{constructor(...e){let t,i;1===e.length&&e[0].constructor&&"Object"===Object.prototype.toString.call(e[0]).slice(8,-1)?i=e[0]:[t,i]=e,i||(i={}),i=u({},i),t&&!i.el&&(i.el=t);const s=n();if(i.el&&"string"==typeof i.el&&s.querySelectorAll(i.el).length>1){const e=[];return s.querySelectorAll(i.el).forEach((t=>{const s=u({},i,{el:t});e.push(new X(s))})),e}const a=this;a.__swiper__=!0,a.support=C(),a.device=function(e={}){return T||(T=function({userAgent:e}={}){const t=C(),i=l(),s=i.navigator.platform,a=e||i.navigator.userAgent,r={ios:!1,android:!1},n=i.screen.width,o=i.screen.height,d=a.match(/(Android);?[\s\/]+([\d.]+)?/);let c=a.match(/(iPad).*OS\s([\d_]+)/);const p=a.match(/(iPod)(.*OS\s([\d_]+))?/),u=!c&&a.match(/(iPhone\sOS|iOS)\s([\d_]+)/),f="Win32"===s;let m="MacIntel"===s;return!c&&m&&t.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${n}x${o}`)>=0&&(c=a.match(/(Version)\/([\d.]+)/),c||(c=[0,1,"13_0_0"]),m=!1),d&&!f&&(r.os="android",r.android=!0),(c||u||p)&&(r.os="ios",r.ios=!0),r}(e)),T}({userAgent:i.userAgent}),a.browser=(E||(E=function(){const e=l();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)}}()),E),a.eventsListeners={},a.eventsAnyListeners=[],a.modules=[...a.__modules__],i.modules&&Array.isArray(i.modules)&&a.modules.push(...i.modules);const r={};a.modules.forEach((e=>{e({params:i,swiper:a,extendParams:W(i,r),on:a.on.bind(a),once:a.once.bind(a),off:a.off.bind(a),emit:a.emit.bind(a)})}));const o=u({},R,r);return a.params=u({},o,Y,i),a.originalParams=u({},a.params),a.passedParams=u({},i),a.params&&a.params.on&&Object.keys(a.params.on).forEach((e=>{a.on(e,a.params.on[e])})),a.params&&a.params.onAny&&a.onAny(a.params.onAny),Object.assign(a,{enabled:a.params.enabled,el:t,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===a.params.direction,isVertical:()=>"vertical"===a.params.direction,activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,cssOverflowAdjustment(){return Math.trunc(this.translate/2**23)*2**23},allowSlideNext:a.params.allowSlideNext,allowSlidePrev:a.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:a.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,evCache:[]},allowClick:!0,allowTouchMove:a.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),a.emit("_swiper"),a.params.init&&a.init(),a}getSlideIndex(e){const{slidesEl:t,params:i}=this,s=b(h(t,`.${i.slideClass}, swiper-slide`)[0]);return b(e)-s}getSlideIndexByData(e){return this.getSlideIndex(this.slides.filter((t=>1*t.getAttribute("data-swiper-slide-index")===e))[0])}recalcSlides(){const{slidesEl:e,params:t}=this;this.slides=h(e,`.${t.slideClass}, swiper-slide`)}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,t){const i=this;e=Math.min(Math.max(e,0),1);const s=i.minTranslate(),a=(i.maxTranslate()-s)*e+s;i.translateTo(a,void 0===t?0:t),i.updateActiveIndex(),i.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split(" ").filter((t=>0===t.indexOf("swiper")||0===t.indexOf(e.params.containerModifierClass)));e.emit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return t.destroyed?"":e.className.split(" ").filter((e=>0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass))).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.forEach((i=>{const s=e.getSlideClasses(i);t.push({slideEl:i,classNames:s}),e.emit("_slideClass",i,s)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e="current",t=!1){const{params:i,slides:s,slidesGrid:a,slidesSizesGrid:r,size:n,activeIndex:o}=this;let l=1;if(i.centeredSlides){let e,t=s[o].swiperSlideSize;for(let i=o+1;in&&(e=!0));for(let i=o-1;i>=0;i-=1)s[i]&&!e&&(t+=s[i].swiperSlideSize,l+=1,t>n&&(e=!0))}else if("current"===e)for(let e=o+1;e=0;e-=1)a[o]-a[e]{t.complete&&P(e,t)})),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),e.params.freeMode&&e.params.freeMode.enabled)s(),e.params.autoHeight&&e.updateAutoHeight();else{if(("auto"===e.params.slidesPerView||e.params.slidesPerView>1)&&e.isEnd&&!e.params.centeredSlides){const t=e.virtual&&e.params.virtual.enabled?e.virtual.slides:e.slides;a=e.slideTo(t.length-1,0,!1,!0)}else a=e.slideTo(e.activeIndex,0,!1,!0);a||s()}i.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t=!0){const i=this,s=i.params.direction;return e||(e="horizontal"===s?"vertical":"horizontal"),e===s||"horizontal"!==e&&"vertical"!==e||(i.el.classList.remove(`${i.params.containerModifierClass}${s}`),i.el.classList.add(`${i.params.containerModifierClass}${e}`),i.emitContainerClasses(),i.params.direction=e,i.slides.forEach((t=>{"vertical"===e?t.style.width="":t.style.height=""})),i.emit("changeDirection"),t&&i.update()),i}changeLanguageDirection(e){const t=this;t.rtl&&"rtl"===e||!t.rtl&&"ltr"===e||(t.rtl="rtl"===e,t.rtlTranslate="horizontal"===t.params.direction&&t.rtl,t.rtl?(t.el.classList.add(`${t.params.containerModifierClass}rtl`),t.el.dir="rtl"):(t.el.classList.remove(`${t.params.containerModifierClass}rtl`),t.el.dir="ltr"),t.update())}mount(e){const t=this;if(t.mounted)return!0;let i=e||t.params.el;if("string"==typeof i&&(i=document.querySelector(i)),!i)return!1;i.swiper=t,i.shadowEl&&(t.isElement=!0);const s=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let a=i&&i.shadowRoot&&i.shadowRoot.querySelector?i.shadowRoot.querySelector(s()):h(i,s())[0];return!a&&t.params.createElements&&(a=v("div",t.params.wrapperClass),i.append(a),h(i,`.${t.params.slideClass}`).forEach((e=>{a.append(e)}))),Object.assign(t,{el:i,wrapperEl:a,slidesEl:t.isElement?i:a,mounted:!0,rtl:"rtl"===i.dir.toLowerCase()||"rtl"===w(i,"direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===i.dir.toLowerCase()||"rtl"===w(i,"direction")),wrongRTL:"-webkit-box"===w(a,"display")}),!0}init(e){const t=this;return t.initialized||!1===t.mount(e)||(t.emit("beforeInit"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.loop&&t.virtual&&t.params.virtual.enabled?t.slideTo(t.params.initialSlide+t.virtual.slidesBefore,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.params.loop&&t.loopCreate(),t.attachEvents(),[...t.el.querySelectorAll('[loading="lazy"]')].forEach((e=>{e.complete?P(t,e):e.addEventListener("load",(e=>{P(t,e.target)}))})),I(t),t.initialized=!0,I(t),t.emit("init"),t.emit("afterInit")),t}destroy(e=!0,t=!0){const i=this,{params:s,el:a,wrapperEl:r,slides:n}=i;return void 0===i.params||i.destroyed||(i.emit("beforeDestroy"),i.initialized=!1,i.detachEvents(),s.loop&&i.loopDestroy(),t&&(i.removeClasses(),a.removeAttribute("style"),r.removeAttribute("style"),n&&n.length&&n.forEach((e=>{e.classList.remove(s.slideVisibleClass,s.slideActiveClass,s.slideNextClass,s.slidePrevClass),e.removeAttribute("style"),e.removeAttribute("data-swiper-slide-index")}))),i.emit("destroy"),Object.keys(i.eventsListeners).forEach((e=>{i.off(e)})),!1!==e&&(i.el.swiper=null,function(e){const t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}(i)),i.destroyed=!0),null}static extendDefaults(e){u(Y,e)}static get extendedDefaults(){return Y}static get defaults(){return R}static installModule(e){X.prototype.__modules__||(X.prototype.__modules__=[]);const t=X.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>X.installModule(e))),X):(X.installModule(e),X)}}Object.keys(q).forEach((e=>{Object.keys(q[e]).forEach((t=>{X.prototype[t]=q[e][t]}))})),X.use([function({swiper:e,on:t,emit:i}){const s=l();let a=null,r=null;const n=()=>{e&&!e.destroyed&&e.initialized&&(i("beforeResize"),i("resize"))},o=()=>{e&&!e.destroyed&&e.initialized&&i("orientationchange")};t("init",(()=>{e.params.resizeObserver&&void 0!==s.ResizeObserver?e&&!e.destroyed&&e.initialized&&(a=new ResizeObserver((t=>{r=s.requestAnimationFrame((()=>{const{width:i,height:s}=e;let a=i,r=s;t.forEach((({contentBoxSize:t,contentRect:i,target:s})=>{s&&s!==e.el||(a=i?i.width:(t[0]||t).inlineSize,r=i?i.height:(t[0]||t).blockSize)})),a===i&&r===s||n()}))})),a.observe(e.el)):(s.addEventListener("resize",n),s.addEventListener("orientationchange",o))})),t("destroy",(()=>{r&&s.cancelAnimationFrame(r),a&&a.unobserve&&e.el&&(a.unobserve(e.el),a=null),s.removeEventListener("resize",n),s.removeEventListener("orientationchange",o)}))},function({swiper:e,extendParams:t,on:i,emit:s}){const a=[],r=l(),n=(t,i={})=>{const n=new(r.MutationObserver||r.WebkitMutationObserver)((t=>{if(e.__preventObserver__)return;if(1===t.length)return void s("observerUpdate",t[0]);const i=function(){s("observerUpdate",t[0])};r.requestAnimationFrame?r.requestAnimationFrame(i):r.setTimeout(i,0)}));n.observe(t,{attributes:void 0===i.attributes||i.attributes,childList:void 0===i.childList||i.childList,characterData:void 0===i.characterData||i.characterData}),a.push(n)};t({observer:!1,observeParents:!1,observeSlideChildren:!1}),i("init",(()=>{if(e.params.observer){if(e.params.observeParents){const t=y(e.el);for(let e=0;e{a.forEach((e=>{e.disconnect()})),a.splice(0,a.length)}))}]);const U=X;function K(e,t,i,s){return e.params.createElements&&Object.keys(s).forEach((a=>{if(!i[a]&&!0===i.auto){let r=h(e.el,`.${s[a]}`)[0];r||(r=v("div",s[a]),r.className=s[a],e.el.append(r)),i[a]=r,t[a]=r}})),i}function Z({swiper:e,extendParams:t,on:i,emit:s}){t({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),e.navigation={nextEl:null,prevEl:null};const a=e=>(Array.isArray(e)||(e=[e].filter((e=>!!e))),e);function r(t){let i;return t&&"string"==typeof t&&e.isElement&&(i=e.el.shadowRoot.querySelector(t),i)?i:(t&&("string"==typeof t&&(i=[...document.querySelectorAll(t)]),e.params.uniqueNavElements&&"string"==typeof t&&i.length>1&&1===e.el.querySelectorAll(t).length&&(i=e.el.querySelector(t))),t&&!i?t:i)}function n(t,i){const s=e.params.navigation;(t=a(t)).forEach((t=>{t&&(t.classList[i?"add":"remove"](...s.disabledClass.split(" ")),"BUTTON"===t.tagName&&(t.disabled=i),e.params.watchOverflow&&e.enabled&&t.classList[e.isLocked?"add":"remove"](s.lockClass))}))}function o(){const{nextEl:t,prevEl:i}=e.navigation;if(e.params.loop)return n(i,!1),void n(t,!1);n(i,e.isBeginning&&!e.params.rewind),n(t,e.isEnd&&!e.params.rewind)}function l(t){t.preventDefault(),(!e.isBeginning||e.params.loop||e.params.rewind)&&(e.slidePrev(),s("navigationPrev"))}function d(t){t.preventDefault(),(!e.isEnd||e.params.loop||e.params.rewind)&&(e.slideNext(),s("navigationNext"))}function c(){const t=e.params.navigation;if(e.params.navigation=K(e,e.originalParams.navigation,e.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!t.nextEl&&!t.prevEl)return;let i=r(t.nextEl),s=r(t.prevEl);Object.assign(e.navigation,{nextEl:i,prevEl:s}),i=a(i),s=a(s);const n=(i,s)=>{i&&i.addEventListener("click","next"===s?d:l),!e.enabled&&i&&i.classList.add(...t.lockClass.split(" "))};i.forEach((e=>n(e,"next"))),s.forEach((e=>n(e,"prev")))}function p(){let{nextEl:t,prevEl:i}=e.navigation;t=a(t),i=a(i);const s=(t,i)=>{t.removeEventListener("click","next"===i?d:l),t.classList.remove(...e.params.navigation.disabledClass.split(" "))};t.forEach((e=>s(e,"next"))),i.forEach((e=>s(e,"prev")))}i("init",(()=>{!1===e.params.navigation.enabled?u():(c(),o())})),i("toEdge fromEdge lock unlock",(()=>{o()})),i("destroy",(()=>{p()})),i("enable disable",(()=>{let{nextEl:t,prevEl:i}=e.navigation;t=a(t),i=a(i),[...t,...i].filter((e=>!!e)).forEach((t=>t.classList[e.enabled?"remove":"add"](e.params.navigation.lockClass)))})),i("click",((t,i)=>{let{nextEl:r,prevEl:n}=e.navigation;r=a(r),n=a(n);const o=i.target;if(e.params.navigation.hideOnClick&&!n.includes(o)&&!r.includes(o)){if(e.pagination&&e.params.pagination&&e.params.pagination.clickable&&(e.pagination.el===o||e.pagination.el.contains(o)))return;let t;r.length?t=r[0].classList.contains(e.params.navigation.hiddenClass):n.length&&(t=n[0].classList.contains(e.params.navigation.hiddenClass)),s(!0===t?"navigationShow":"navigationHide"),[...r,...n].filter((e=>!!e)).forEach((t=>t.classList.toggle(e.params.navigation.hiddenClass)))}}));const u=()=>{e.el.classList.add(...e.params.navigation.navigationDisabledClass.split(" ")),p()};Object.assign(e.navigation,{enable:()=>{e.el.classList.remove(...e.params.navigation.navigationDisabledClass.split(" ")),c(),o()},disable:u,update:o,init:c,destroy:p})}function Q(e=""){return`.${e.trim().replace(/([\.:!+\/])/g,"\\$1").replace(/ /g,".")}`}function J({swiper:e,extendParams:t,on:i,emit:s}){const a="swiper-pagination";let r;t({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:e=>e,formatFractionTotal:e=>e,bulletClass:`${a}-bullet`,bulletActiveClass:`${a}-bullet-active`,modifierClass:`${a}-`,currentClass:`${a}-current`,totalClass:`${a}-total`,hiddenClass:`${a}-hidden`,progressbarFillClass:`${a}-progressbar-fill`,progressbarOppositeClass:`${a}-progressbar-opposite`,clickableClass:`${a}-clickable`,lockClass:`${a}-lock`,horizontalClass:`${a}-horizontal`,verticalClass:`${a}-vertical`,paginationDisabledClass:`${a}-disabled`}}),e.pagination={el:null,bullets:[]};let n=0;const o=e=>(Array.isArray(e)||(e=[e].filter((e=>!!e))),e);function l(){return!e.params.pagination.el||!e.pagination.el||Array.isArray(e.pagination.el)&&0===e.pagination.el.length}function d(t,i){const{bulletActiveClass:s}=e.params.pagination;t&&(t=t[("prev"===i?"previous":"next")+"ElementSibling"])&&(t.classList.add(`${s}-${i}`),(t=t[("prev"===i?"previous":"next")+"ElementSibling"])&&t.classList.add(`${s}-${i}-${i}`))}function c(t){const i=t.target.closest(Q(e.params.pagination.bulletClass));if(!i)return;t.preventDefault();const s=b(i)*e.params.slidesPerGroup;if(e.params.loop){if(e.realIndex===s)return;const t=e.getSlideIndexByData(s),i=e.getSlideIndexByData(e.realIndex);t>e.slides.length-e.loopedSlides&&e.loopFix({direction:t>i?"next":"prev",activeSlideIndex:t,slideTo:!1}),e.slideToLoop(s)}else e.slideTo(s)}function p(){const t=e.rtl,i=e.params.pagination;if(l())return;let a,c,p=e.pagination.el;p=o(p);const u=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,f=e.params.loop?Math.ceil(u/e.params.slidesPerGroup):e.snapGrid.length;if(e.params.loop?(c=e.previousRealIndex||0,a=e.params.slidesPerGroup>1?Math.floor(e.realIndex/e.params.slidesPerGroup):e.realIndex):void 0!==e.snapIndex?(a=e.snapIndex,c=e.previousSnapIndex):(c=e.previousIndex||0,a=e.activeIndex||0),"bullets"===i.type&&e.pagination.bullets&&e.pagination.bullets.length>0){const s=e.pagination.bullets;let o,l,u;if(i.dynamicBullets&&(r=x(s[0],e.isHorizontal()?"width":"height",!0),p.forEach((t=>{t.style[e.isHorizontal()?"width":"height"]=r*(i.dynamicMainBullets+4)+"px"})),i.dynamicMainBullets>1&&void 0!==c&&(n+=a-(c||0),n>i.dynamicMainBullets-1?n=i.dynamicMainBullets-1:n<0&&(n=0)),o=Math.max(a-n,0),l=o+(Math.min(s.length,i.dynamicMainBullets)-1),u=(l+o)/2),s.forEach((e=>{const t=[...["","-next","-next-next","-prev","-prev-prev","-main"].map((e=>`${i.bulletActiveClass}${e}`))].map((e=>"string"==typeof e&&e.includes(" ")?e.split(" "):e)).flat();e.classList.remove(...t)})),p.length>1)s.forEach((e=>{const t=b(e);t===a&&e.classList.add(...i.bulletActiveClass.split(" ")),i.dynamicBullets&&(t>=o&&t<=l&&e.classList.add(...`${i.bulletActiveClass}-main`.split(" ")),t===o&&d(e,"prev"),t===l&&d(e,"next"))}));else{const e=s[a];if(e&&e.classList.add(...i.bulletActiveClass.split(" ")),i.dynamicBullets){const e=s[o],t=s[l];for(let e=o;e<=l;e+=1)s[e]&&s[e].classList.add(...`${i.bulletActiveClass}-main`.split(" "));d(e,"prev"),d(t,"next")}}if(i.dynamicBullets){const a=Math.min(s.length,i.dynamicMainBullets+4),n=(r*a-r)/2-u*r,o=t?"right":"left";s.forEach((t=>{t.style[e.isHorizontal()?o:"top"]=`${n}px`}))}}p.forEach(((t,r)=>{if("fraction"===i.type&&(t.querySelectorAll(Q(i.currentClass)).forEach((e=>{e.textContent=i.formatFractionCurrent(a+1)})),t.querySelectorAll(Q(i.totalClass)).forEach((e=>{e.textContent=i.formatFractionTotal(f)}))),"progressbar"===i.type){let s;s=i.progressbarOpposite?e.isHorizontal()?"vertical":"horizontal":e.isHorizontal()?"horizontal":"vertical";const r=(a+1)/f;let n=1,o=1;"horizontal"===s?n=r:o=r,t.querySelectorAll(Q(i.progressbarFillClass)).forEach((t=>{t.style.transform=`translate3d(0,0,0) scaleX(${n}) scaleY(${o})`,t.style.transitionDuration=`${e.params.speed}ms`}))}"custom"===i.type&&i.renderCustom?(t.innerHTML=i.renderCustom(e,a+1,f),0===r&&s("paginationRender",t)):(0===r&&s("paginationRender",t),s("paginationUpdate",t)),e.params.watchOverflow&&e.enabled&&t.classList[e.isLocked?"add":"remove"](i.lockClass)}))}function u(){const t=e.params.pagination;if(l())return;const i=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length;let a=e.pagination.el;a=o(a);let r="";if("bullets"===t.type){let s=e.params.loop?Math.ceil(i/e.params.slidesPerGroup):e.snapGrid.length;e.params.freeMode&&e.params.freeMode.enabled&&s>i&&(s=i);for(let i=0;i`}"fraction"===t.type&&(r=t.renderFraction?t.renderFraction.call(e,t.currentClass,t.totalClass):` / `),"progressbar"===t.type&&(r=t.renderProgressbar?t.renderProgressbar.call(e,t.progressbarFillClass):``),e.pagination.bullets=[],a.forEach((i=>{"custom"!==t.type&&(i.innerHTML=r||""),"bullets"===t.type&&e.pagination.bullets.push(...i.querySelectorAll(Q(t.bulletClass)))})),"custom"!==t.type&&s("paginationRender",a[0])}function f(){e.params.pagination=K(e,e.originalParams.pagination,e.params.pagination,{el:"swiper-pagination"});const t=e.params.pagination;if(!t.el)return;let i;"string"==typeof t.el&&e.isElement&&(i=e.el.shadowRoot.querySelector(t.el)),i||"string"!=typeof t.el||(i=[...document.querySelectorAll(t.el)]),i||(i=t.el),i&&0!==i.length&&(e.params.uniqueNavElements&&"string"==typeof t.el&&Array.isArray(i)&&i.length>1&&(i=[...e.el.querySelectorAll(t.el)],i.length>1&&(i=i.filter((t=>y(t,".swiper")[0]===e.el))[0])),Array.isArray(i)&&1===i.length&&(i=i[0]),Object.assign(e.pagination,{el:i}),i=o(i),i.forEach((i=>{"bullets"===t.type&&t.clickable&&i.classList.add(t.clickableClass),i.classList.add(t.modifierClass+t.type),i.classList.add(e.isHorizontal()?t.horizontalClass:t.verticalClass),"bullets"===t.type&&t.dynamicBullets&&(i.classList.add(`${t.modifierClass}${t.type}-dynamic`),n=0,t.dynamicMainBullets<1&&(t.dynamicMainBullets=1)),"progressbar"===t.type&&t.progressbarOpposite&&i.classList.add(t.progressbarOppositeClass),t.clickable&&i.addEventListener("click",c),e.enabled||i.classList.add(t.lockClass)})))}function m(){const t=e.params.pagination;if(l())return;let i=e.pagination.el;i&&(i=o(i),i.forEach((i=>{i.classList.remove(t.hiddenClass),i.classList.remove(t.modifierClass+t.type),i.classList.remove(e.isHorizontal()?t.horizontalClass:t.verticalClass),t.clickable&&i.removeEventListener("click",c)}))),e.pagination.bullets&&e.pagination.bullets.forEach((e=>e.classList.remove(...t.bulletActiveClass.split(" "))))}i("changeDirection",(()=>{if(!e.pagination||!e.pagination.el)return;const t=e.params.pagination;let{el:i}=e.pagination;i=o(i),i.forEach((i=>{i.classList.remove(t.horizontalClass,t.verticalClass),i.classList.add(e.isHorizontal()?t.horizontalClass:t.verticalClass)}))})),i("init",(()=>{!1===e.params.pagination.enabled?g():(f(),u(),p())})),i("activeIndexChange",(()=>{void 0===e.snapIndex&&p()})),i("snapIndexChange",(()=>{p()})),i("snapGridLengthChange",(()=>{u(),p()})),i("destroy",(()=>{m()})),i("enable disable",(()=>{let{el:t}=e.pagination;t&&(t=o(t),t.forEach((t=>t.classList[e.enabled?"remove":"add"](e.params.pagination.lockClass))))})),i("lock unlock",(()=>{p()})),i("click",((t,i)=>{const a=i.target;let{el:r}=e.pagination;if(Array.isArray(r)||(r=[r].filter((e=>!!e))),e.params.pagination.el&&e.params.pagination.hideOnClick&&r&&r.length>0&&!a.classList.contains(e.params.pagination.bulletClass)){if(e.navigation&&(e.navigation.nextEl&&a===e.navigation.nextEl||e.navigation.prevEl&&a===e.navigation.prevEl))return;const t=r[0].classList.contains(e.params.pagination.hiddenClass);s(!0===t?"paginationShow":"paginationHide"),r.forEach((t=>t.classList.toggle(e.params.pagination.hiddenClass)))}}));const g=()=>{e.el.classList.add(e.params.pagination.paginationDisabledClass);let{el:t}=e.pagination;t&&(t=o(t),t.forEach((t=>t.classList.add(e.params.pagination.paginationDisabledClass)))),m()};Object.assign(e.pagination,{enable:()=>{e.el.classList.remove(e.params.pagination.paginationDisabledClass);let{el:t}=e.pagination;t&&(t=o(t),t.forEach((t=>t.classList.remove(e.params.pagination.paginationDisabledClass)))),f(),u(),p()},disable:g,render:u,update:p,init:f,destroy:m})}function ee({swiper:e,extendParams:t,on:i}){t({parallax:{enabled:!1}});const s=(t,i)=>{const{rtl:s}=e,a=s?-1:1,r=t.getAttribute("data-swiper-parallax")||"0";let n=t.getAttribute("data-swiper-parallax-x"),o=t.getAttribute("data-swiper-parallax-y");const l=t.getAttribute("data-swiper-parallax-scale"),d=t.getAttribute("data-swiper-parallax-opacity"),c=t.getAttribute("data-swiper-parallax-rotate");if(n||o?(n=n||"0",o=o||"0"):e.isHorizontal()?(n=r,o="0"):(o=r,n="0"),n=n.indexOf("%")>=0?parseInt(n,10)*i*a+"%":n*i*a+"px",o=o.indexOf("%")>=0?parseInt(o,10)*i+"%":o*i+"px",null!=d){const e=d-(d-1)*(1-Math.abs(i));t.style.opacity=e}let p=`translate3d(${n}, ${o}, 0px)`;null!=l&&(p+=` scale(${l-(l-1)*(1-Math.abs(i))})`),c&&null!=c&&(p+=` rotate(${c*i*-1}deg)`),t.style.transform=p},a=()=>{const{el:t,slides:i,progress:a,snapGrid:r}=e;h(t,"[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").forEach((e=>{s(e,a)})),i.forEach(((t,i)=>{let n=t.progress;e.params.slidesPerGroup>1&&"auto"!==e.params.slidesPerView&&(n+=Math.ceil(i/2)-a*(r.length-1)),n=Math.min(Math.max(n,-1),1),t.querySelectorAll("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale], [data-swiper-parallax-rotate]").forEach((e=>{s(e,n)}))}))};i("beforeInit",(()=>{e.params.parallax.enabled&&(e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)})),i("init",(()=>{e.params.parallax.enabled&&a()})),i("setTranslate",(()=>{e.params.parallax.enabled&&a()})),i("setTransition",((t,i)=>{e.params.parallax.enabled&&((t=e.params.speed)=>{const{el:i}=e;i.querySelectorAll("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").forEach((e=>{let i=parseInt(e.getAttribute("data-swiper-parallax-duration"),10)||t;0===t&&(i=0),e.style.transitionDuration=`${i}ms`}))})(i)}))}function te({swiper:e,extendParams:t,on:i}){t({a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",slideLabelMessage:"{{index}} / {{slidesLength}}",containerMessage:null,containerRoleDescriptionMessage:null,itemRoleDescriptionMessage:null,slideRole:"group",id:null}}),e.a11y={clicked:!1};let s=null;function a(e){const t=s;0!==t.length&&(t.innerHTML="",t.innerHTML=e)}const r=e=>(Array.isArray(e)||(e=[e].filter((e=>!!e))),e);function n(e){(e=r(e)).forEach((e=>{e.setAttribute("tabIndex","0")}))}function o(e){(e=r(e)).forEach((e=>{e.setAttribute("tabIndex","-1")}))}function l(e,t){(e=r(e)).forEach((e=>{e.setAttribute("role",t)}))}function d(e,t){(e=r(e)).forEach((e=>{e.setAttribute("aria-roledescription",t)}))}function c(e,t){(e=r(e)).forEach((e=>{e.setAttribute("aria-label",t)}))}function p(e){(e=r(e)).forEach((e=>{e.setAttribute("aria-disabled",!0)}))}function u(e){(e=r(e)).forEach((e=>{e.setAttribute("aria-disabled",!1)}))}function f(t){if(13!==t.keyCode&&32!==t.keyCode)return;const i=e.params.a11y,s=t.target;e.pagination&&e.pagination.el&&(s===e.pagination.el||e.pagination.el.contains(t.target))&&!t.target.matches(Q(e.params.pagination.bulletClass))||(e.navigation&&e.navigation.nextEl&&s===e.navigation.nextEl&&(e.isEnd&&!e.params.loop||e.slideNext(),e.isEnd?a(i.lastSlideMessage):a(i.nextSlideMessage)),e.navigation&&e.navigation.prevEl&&s===e.navigation.prevEl&&(e.isBeginning&&!e.params.loop||e.slidePrev(),e.isBeginning?a(i.firstSlideMessage):a(i.prevSlideMessage)),e.pagination&&s.matches(Q(e.params.pagination.bulletClass))&&s.click())}function m(){return e.pagination&&e.pagination.bullets&&e.pagination.bullets.length}function g(){return m()&&e.params.pagination.clickable}const h=(e,t,i)=>{n(e),"BUTTON"!==e.tagName&&(l(e,"button"),e.addEventListener("keydown",f)),c(e,i),function(e,t){(e=r(e)).forEach((e=>{e.setAttribute("aria-controls",t)}))}(e,t)},w=()=>{e.a11y.clicked=!0},y=()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{e.destroyed||(e.a11y.clicked=!1)}))}))},x=t=>{if(e.a11y.clicked)return;const i=t.target.closest(`.${e.params.slideClass}, swiper-slide`);if(!i||!e.slides.includes(i))return;const s=e.slides.indexOf(i)===e.activeIndex,a=e.params.watchSlidesProgress&&e.visibleSlides&&e.visibleSlides.includes(i);s||a||t.sourceCapabilities&&t.sourceCapabilities.firesTouchEvents||(e.isHorizontal()?e.el.scrollLeft=0:e.el.scrollTop=0,e.slideTo(e.slides.indexOf(i),0))},S=()=>{const t=e.params.a11y;t.itemRoleDescriptionMessage&&d(e.slides,t.itemRoleDescriptionMessage),t.slideRole&&l(e.slides,t.slideRole);const i=e.slides.length;t.slideLabelMessage&&e.slides.forEach(((s,a)=>{const r=e.params.loop?parseInt(s.getAttribute("data-swiper-slide-index"),10):a;c(s,t.slideLabelMessage.replace(/\{\{index\}\}/,r+1).replace(/\{\{slidesLength\}\}/,i))}))};i("beforeInit",(()=>{s=v("span",e.params.a11y.notificationClass),s.setAttribute("aria-live","assertive"),s.setAttribute("aria-atomic","true")})),i("afterInit",(()=>{e.params.a11y.enabled&&(()=>{const t=e.params.a11y;e.isElement?e.el.shadowEl.append(s):e.el.append(s);const i=e.el;t.containerRoleDescriptionMessage&&d(i,t.containerRoleDescriptionMessage),t.containerMessage&&c(i,t.containerMessage);const a=e.wrapperEl,n=t.id||a.getAttribute("id")||`swiper-wrapper-${function(e=16){return"x".repeat(e).replace(/x/g,(()=>Math.round(16*Math.random()).toString(16)))}(16)}`,o=e.params.autoplay&&e.params.autoplay.enabled?"off":"polite";var l;l=n,r(a).forEach((e=>{e.setAttribute("id",l)})),function(e,t){(e=r(e)).forEach((e=>{e.setAttribute("aria-live",t)}))}(a,o),S();let{nextEl:p,prevEl:u}=e.navigation?e.navigation:{};p=r(p),u=r(u),p&&p.forEach((e=>h(e,n,t.nextSlideMessage))),u&&u.forEach((e=>h(e,n,t.prevSlideMessage))),g()&&(Array.isArray(e.pagination.el)?e.pagination.el:[e.pagination.el]).forEach((e=>{e.addEventListener("keydown",f)})),e.el.addEventListener("focus",x,!0),e.el.addEventListener("pointerdown",w,!0),e.el.addEventListener("pointerup",y,!0)})()})),i("slidesLengthChange snapGridLengthChange slidesGridLengthChange",(()=>{e.params.a11y.enabled&&S()})),i("fromEdge toEdge afterInit lock unlock",(()=>{e.params.a11y.enabled&&function(){if(e.params.loop||e.params.rewind||!e.navigation)return;const{nextEl:t,prevEl:i}=e.navigation;i&&(e.isBeginning?(p(i),o(i)):(u(i),n(i))),t&&(e.isEnd?(p(t),o(t)):(u(t),n(t)))}()})),i("paginationUpdate",(()=>{e.params.a11y.enabled&&function(){const t=e.params.a11y;m()&&e.pagination.bullets.forEach((i=>{e.params.pagination.clickable&&(n(i),e.params.pagination.renderBullet||(l(i,"button"),c(i,t.paginationBulletMessage.replace(/\{\{index\}\}/,b(i)+1)))),i.matches(Q(e.params.pagination.bulletActiveClass))?i.setAttribute("aria-current","true"):i.removeAttribute("aria-current")}))}()})),i("destroy",(()=>{e.params.a11y.enabled&&function(){s&&s.remove();let{nextEl:t,prevEl:i}=e.navigation?e.navigation:{};t=r(t),i=r(i),t&&t.forEach((e=>e.removeEventListener("keydown",f))),i&&i.forEach((e=>e.removeEventListener("keydown",f))),g()&&(Array.isArray(e.pagination.el)?e.pagination.el:[e.pagination.el]).forEach((e=>{e.removeEventListener("keydown",f)})),e.el.removeEventListener("focus",x,!0),e.el.removeEventListener("pointerdown",w,!0),e.el.removeEventListener("pointerup",y,!0)}()}))}function ie(e,t){const i=g(t);return i!==t&&(i.style.backfaceVisibility="hidden",i.style["-webkit-backface-visibility"]="hidden"),i}function se({swiper:e,extendParams:t,on:i}){t({fadeEffect:{crossFade:!1}}),function(e){const{effect:t,swiper:i,on:s,setTranslate:a,setTransition:r,overwriteParams:n,perspective:o,recreateShadows:l,getEffectParams:d}=e;let c;s("beforeInit",(()=>{if(i.params.effect!==t)return;i.classNames.push(`${i.params.containerModifierClass}${t}`),o&&o()&&i.classNames.push(`${i.params.containerModifierClass}3d`);const e=n?n():{};Object.assign(i.params,e),Object.assign(i.originalParams,e)})),s("setTranslate",(()=>{i.params.effect===t&&a()})),s("setTransition",((e,s)=>{i.params.effect===t&&r(s)})),s("transitionEnd",(()=>{if(i.params.effect===t&&l){if(!d||!d().slideShadows)return;i.slides.forEach((e=>{e.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((e=>e.remove()))})),l()}})),s("virtualUpdate",(()=>{i.params.effect===t&&(i.slides.length||(c=!0),requestAnimationFrame((()=>{c&&i.slides&&i.slides.length&&(a(),c=!1)})))}))}({effect:"fade",swiper:e,on:i,setTranslate:()=>{const{slides:t}=e;e.params.fadeEffect;for(let i=0;i{const i=e.slides.map((e=>g(e)));i.forEach((e=>{e.style.transitionDuration=`${t}ms`})),function({swiper:e,duration:t,transformElements:i,allSlides:s}){const{activeIndex:a}=e;if(e.params.virtualTranslate&&0!==t){let t,r=!1;t=s?i:i.filter((t=>{const i=t.classList.contains("swiper-slide-transform")?(t=>t.parentElement?t.parentElement:e.slides.filter((e=>e.shadowEl&&e.shadowEl===t.parentNode))[0])(t):t;return e.getSlideIndex(i)===a})),t.forEach((t=>{!function(e,t){t&&e.addEventListener("transitionend",(function i(s){s.target===e&&(t.call(e,s),e.removeEventListener("transitionend",i))}))}(t,(()=>{if(r)return;if(!e||e.destroyed)return;r=!0,e.animating=!1;const t=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});e.wrapperEl.dispatchEvent(t)}))}))}}({swiper:e,duration:t,transformElements:i,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!e.params.cssMode})})}},856:(e,t,i)=>{"use strict";function s(e,t,i){var s=(i||{}).atBegin;return function(e,t,i){var s,a=i||{},r=a.noTrailing,n=void 0!==r&&r,o=a.noLeading,l=void 0!==o&&o,d=a.debounceMode,c=void 0===d?void 0:d,p=!1,u=0;function f(){s&&clearTimeout(s)}function m(){for(var i=arguments.length,a=new Array(i),r=0;re?l?(u=Date.now(),n||(s=setTimeout(c?g:m,e))):m():!0!==n&&(s=setTimeout(c?g:m,void 0===c?e-d:e)))}return m.cancel=function(e){var t=(e||{}).upcomingOnly,i=void 0!==t&&t;f(),p=!i},m}(e,t,{debounceMode:!1!==(void 0!==s&&s)})}i.d(t,{D:()=>s})}}]); +//# sourceMappingURL=388.9557b9f6869a693261d8.js.map \ No newline at end of file diff --git a/dist/388.9557b9f6869a693261d8.js.LICENSE.txt b/dist/388.9557b9f6869a693261d8.js.LICENSE.txt new file mode 100644 index 0000000..6be1eb8 --- /dev/null +++ b/dist/388.9557b9f6869a693261d8.js.LICENSE.txt @@ -0,0 +1,3 @@ +/*! Magnific Popup - v1.1.0 - 2016-02-20 +* http://dimsemenov.com/plugins/magnific-popup/ +* Copyright (c) 2016 Dmitry Semenov; */ diff --git a/dist/388.9557b9f6869a693261d8.js.map b/dist/388.9557b9f6869a693261d8.js.map new file mode 100644 index 0000000..f79714a --- /dev/null +++ b/dist/388.9557b9f6869a693261d8.js.map @@ -0,0 +1 @@ +{"version":3,"file":"388.9557b9f6869a693261d8.js","mappings":"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","sources":["webpack:///./node_modules/fitvids.1.1.0/jquery.fitvids.js","webpack:///./node_modules/magnific-popup/dist/jquery.magnific-popup.js","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/swiper/shared/utils.js","webpack:///./node_modules/swiper/shared/get-support.js","webpack:///./node_modules/swiper/shared/get-device.js","webpack:///./node_modules/swiper/shared/get-browser.js","webpack:///./node_modules/swiper/core/events-emitter.js","webpack:///./node_modules/swiper/shared/process-lazy-preloader.js","webpack:///./node_modules/swiper/core/update/index.js","webpack:///./node_modules/swiper/core/update/updateSize.js","webpack:///./node_modules/swiper/core/update/updateSlides.js","webpack:///./node_modules/swiper/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/core/update/updateProgress.js","webpack:///./node_modules/swiper/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/core/transition/transitionEmit.js","webpack:///./node_modules/swiper/core/slide/index.js","webpack:///./node_modules/swiper/core/slide/slideTo.js","webpack:///./node_modules/swiper/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/core/slide/slideNext.js","webpack:///./node_modules/swiper/core/slide/slidePrev.js","webpack:///./node_modules/swiper/core/slide/slideReset.js","webpack:///./node_modules/swiper/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/core/events/onTouchStart.js","webpack:///./node_modules/swiper/core/events/onTouchMove.js","webpack:///./node_modules/swiper/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/core/events/onResize.js","webpack:///./node_modules/swiper/core/events/onClick.js","webpack:///./node_modules/swiper/core/events/onScroll.js","webpack:///./node_modules/swiper/core/events/onLoad.js","webpack:///./node_modules/swiper/core/events/index.js","webpack:///./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/core/defaults.js","webpack:///./node_modules/swiper/core/moduleExtendParams.js","webpack:///./node_modules/swiper/core/core.js","webpack:///./node_modules/swiper/core/translate/index.js","webpack:///./node_modules/swiper/core/translate/getTranslate.js","webpack:///./node_modules/swiper/core/translate/setTranslate.js","webpack:///./node_modules/swiper/core/translate/minTranslate.js","webpack:///./node_modules/swiper/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/core/translate/translateTo.js","webpack:///./node_modules/swiper/core/transition/index.js","webpack:///./node_modules/swiper/core/transition/setTransition.js","webpack:///./node_modules/swiper/core/transition/transitionStart.js","webpack:///./node_modules/swiper/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/core/loop/index.js","webpack:///./node_modules/swiper/core/loop/loopCreate.js","webpack:///./node_modules/swiper/core/loop/loopFix.js","webpack:///./node_modules/swiper/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/core/grab-cursor/index.js","webpack:///./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/core/breakpoints/index.js","webpack:///./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/core/check-overflow/index.js","webpack:///./node_modules/swiper/core/classes/index.js","webpack:///./node_modules/swiper/core/classes/addClasses.js","webpack:///./node_modules/swiper/core/classes/removeClasses.js","webpack:///./node_modules/swiper/core/modules/resize/resize.js","webpack:///./node_modules/swiper/core/modules/observer/observer.js","webpack:///./node_modules/swiper/shared/create-element-if-not-defined.js","webpack:///./node_modules/swiper/modules/navigation/navigation.js","webpack:///./node_modules/swiper/shared/classes-to-selector.js","webpack:///./node_modules/swiper/modules/pagination/pagination.js","webpack:///./node_modules/swiper/modules/parallax/parallax.js","webpack:///./node_modules/swiper/modules/a11y/a11y.js","webpack:///./node_modules/swiper/shared/effect-target.js","webpack:///./node_modules/swiper/modules/effect-fade/effect-fade.js","webpack:///./node_modules/swiper/shared/effect-init.js","webpack:///./node_modules/swiper/shared/effect-virtual-transition-end.js","webpack:///./node_modules/throttle-debounce/esm/index.js"],"sourcesContent":["/*jshint browser:true */\n/*!\n* FitVids 1.1\n*\n* Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com\n* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/\n* Released under the WTFPL license - http://sam.zoy.org/wtfpl/\n*\n*/\n\n;(function( $ ){\n\n 'use strict';\n\n $.fn.fitVids = function( options ) {\n var settings = {\n customSelector: null,\n ignore: null\n };\n\n if(!document.getElementById('fit-vids-style')) {\n // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js\n var head = document.head || document.getElementsByTagName('head')[0];\n var css = '.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}';\n var div = document.createElement(\"div\");\n div.innerHTML = '

x

';\n head.appendChild(div.childNodes[1]);\n }\n\n if ( options ) {\n $.extend( settings, options );\n }\n\n return this.each(function(){\n var selectors = [\n 'iframe[src*=\"player.vimeo.com\"]',\n 'iframe[src*=\"youtube.com\"]',\n 'iframe[src*=\"youtube-nocookie.com\"]',\n 'iframe[src*=\"kickstarter.com\"][src*=\"video.html\"]',\n 'object',\n 'embed'\n ];\n\n if (settings.customSelector) {\n selectors.push(settings.customSelector);\n }\n\n var ignoreList = '.fitvidsignore';\n\n if(settings.ignore) {\n ignoreList = ignoreList + ', ' + settings.ignore;\n }\n\n var $allVideos = $(this).find(selectors.join(','));\n $allVideos = $allVideos.not('object object'); // SwfObj conflict patch\n $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video.\n\n $allVideos.each(function(){\n var $this = $(this);\n if($this.parents(ignoreList).length > 0) {\n return; // Disable FitVids on this video.\n }\n if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; }\n if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width'))))\n {\n $this.attr('height', 9);\n $this.attr('width', 16);\n }\n var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(),\n width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(),\n aspectRatio = height / width;\n if(!$this.attr('name')){\n var videoName = 'fitvid' + $.fn.fitVids._count;\n $this.attr('name', videoName);\n $.fn.fitVids._count++;\n }\n $this.wrap('
').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%');\n $this.removeAttr('height').removeAttr('width');\n });\n });\n };\n \n // Internal counter for unique video names.\n $.fn.fitVids._count = 0;\n \n// Works with either jQuery or Zepto\n})( window.jQuery || window.Zepto );\n","/*! Magnific Popup - v1.1.0 - 2016-02-20\n* http://dimsemenov.com/plugins/magnific-popup/\n* Copyright (c) 2016 Dmitry Semenov; */\n;(function (factory) { \nif (typeof define === 'function' && define.amd) { \n // AMD. Register as an anonymous module. \n define(['jquery'], factory); \n } else if (typeof exports === 'object') { \n // Node/CommonJS \n factory(require('jquery')); \n } else { \n // Browser globals \n factory(window.jQuery || window.Zepto); \n } \n }(function($) { \n\n/*>>core*/\n/**\n * \n * Magnific Popup Core JS file\n * \n */\n\n\n/**\n * Private static constants\n */\nvar CLOSE_EVENT = 'Close',\n\tBEFORE_CLOSE_EVENT = 'BeforeClose',\n\tAFTER_CLOSE_EVENT = 'AfterClose',\n\tBEFORE_APPEND_EVENT = 'BeforeAppend',\n\tMARKUP_PARSE_EVENT = 'MarkupParse',\n\tOPEN_EVENT = 'Open',\n\tCHANGE_EVENT = 'Change',\n\tNS = 'mfp',\n\tEVENT_NS = '.' + NS,\n\tREADY_CLASS = 'mfp-ready',\n\tREMOVING_CLASS = 'mfp-removing',\n\tPREVENT_CLOSE_CLASS = 'mfp-prevent-close';\n\n\n/**\n * Private vars \n */\n/*jshint -W079 */\nvar mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this'\n\tMagnificPopup = function(){},\n\t_isJQ = !!(window.jQuery),\n\t_prevStatus,\n\t_window = $(window),\n\t_document,\n\t_prevContentType,\n\t_wrapClasses,\n\t_currPopupType;\n\n\n/**\n * Private functions\n */\nvar _mfpOn = function(name, f) {\n\t\tmfp.ev.on(NS + name + EVENT_NS, f);\n\t},\n\t_getEl = function(className, appendTo, html, raw) {\n\t\tvar el = document.createElement('div');\n\t\tel.className = 'mfp-'+className;\n\t\tif(html) {\n\t\t\tel.innerHTML = html;\n\t\t}\n\t\tif(!raw) {\n\t\t\tel = $(el);\n\t\t\tif(appendTo) {\n\t\t\t\tel.appendTo(appendTo);\n\t\t\t}\n\t\t} else if(appendTo) {\n\t\t\tappendTo.appendChild(el);\n\t\t}\n\t\treturn el;\n\t},\n\t_mfpTrigger = function(e, data) {\n\t\tmfp.ev.triggerHandler(NS + e, data);\n\n\t\tif(mfp.st.callbacks) {\n\t\t\t// converts \"mfpEventName\" to \"eventName\" callback and triggers it if it's present\n\t\t\te = e.charAt(0).toLowerCase() + e.slice(1);\n\t\t\tif(mfp.st.callbacks[e]) {\n\t\t\t\tmfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]);\n\t\t\t}\n\t\t}\n\t},\n\t_getCloseBtn = function(type) {\n\t\tif(type !== _currPopupType || !mfp.currTemplate.closeBtn) {\n\t\t\tmfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace('%title%', mfp.st.tClose ) );\n\t\t\t_currPopupType = type;\n\t\t}\n\t\treturn mfp.currTemplate.closeBtn;\n\t},\n\t// Initialize Magnific Popup only when called at least once\n\t_checkInstance = function() {\n\t\tif(!$.magnificPopup.instance) {\n\t\t\t/*jshint -W020 */\n\t\t\tmfp = new MagnificPopup();\n\t\t\tmfp.init();\n\t\t\t$.magnificPopup.instance = mfp;\n\t\t}\n\t},\n\t// CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr\n\tsupportsTransitions = function() {\n\t\tvar s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist\n\t\t\tv = ['ms','O','Moz','Webkit']; // 'v' for vendor\n\n\t\tif( s['transition'] !== undefined ) {\n\t\t\treturn true; \n\t\t}\n\t\t\t\n\t\twhile( v.length ) {\n\t\t\tif( v.pop() + 'Transition' in s ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t\t\t\n\t\treturn false;\n\t};\n\n\n\n/**\n * Public functions\n */\nMagnificPopup.prototype = {\n\n\tconstructor: MagnificPopup,\n\n\t/**\n\t * Initializes Magnific Popup plugin. \n\t * This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed\n\t */\n\tinit: function() {\n\t\tvar appVersion = navigator.appVersion;\n\t\tmfp.isLowIE = mfp.isIE8 = document.all && !document.addEventListener;\n\t\tmfp.isAndroid = (/android/gi).test(appVersion);\n\t\tmfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion);\n\t\tmfp.supportsTransition = supportsTransitions();\n\n\t\t// We disable fixed positioned lightbox on devices that don't handle it nicely.\n\t\t// If you know a better way of detecting this - let me know.\n\t\tmfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent) );\n\t\t_document = $(document);\n\n\t\tmfp.popupsCache = {};\n\t},\n\n\t/**\n\t * Opens popup\n\t * @param data [description]\n\t */\n\topen: function(data) {\n\n\t\tvar i;\n\n\t\tif(data.isObj === false) { \n\t\t\t// convert jQuery collection to array to avoid conflicts later\n\t\t\tmfp.items = data.items.toArray();\n\n\t\t\tmfp.index = 0;\n\t\t\tvar items = data.items,\n\t\t\t\titem;\n\t\t\tfor(i = 0; i < items.length; i++) {\n\t\t\t\titem = items[i];\n\t\t\t\tif(item.parsed) {\n\t\t\t\t\titem = item.el[0];\n\t\t\t\t}\n\t\t\t\tif(item === data.el[0]) {\n\t\t\t\t\tmfp.index = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tmfp.items = $.isArray(data.items) ? data.items : [data.items];\n\t\t\tmfp.index = data.index || 0;\n\t\t}\n\n\t\t// if popup is already opened - we just update the content\n\t\tif(mfp.isOpen) {\n\t\t\tmfp.updateItemHTML();\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tmfp.types = []; \n\t\t_wrapClasses = '';\n\t\tif(data.mainEl && data.mainEl.length) {\n\t\t\tmfp.ev = data.mainEl.eq(0);\n\t\t} else {\n\t\t\tmfp.ev = _document;\n\t\t}\n\n\t\tif(data.key) {\n\t\t\tif(!mfp.popupsCache[data.key]) {\n\t\t\t\tmfp.popupsCache[data.key] = {};\n\t\t\t}\n\t\t\tmfp.currTemplate = mfp.popupsCache[data.key];\n\t\t} else {\n\t\t\tmfp.currTemplate = {};\n\t\t}\n\n\n\n\t\tmfp.st = $.extend(true, {}, $.magnificPopup.defaults, data ); \n\t\tmfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos;\n\n\t\tif(mfp.st.modal) {\n\t\t\tmfp.st.closeOnContentClick = false;\n\t\t\tmfp.st.closeOnBgClick = false;\n\t\t\tmfp.st.showCloseBtn = false;\n\t\t\tmfp.st.enableEscapeKey = false;\n\t\t}\n\t\t\n\n\t\t// Building markup\n\t\t// main containers are created only once\n\t\tif(!mfp.bgOverlay) {\n\n\t\t\t// Dark overlay\n\t\t\tmfp.bgOverlay = _getEl('bg').on('click'+EVENT_NS, function() {\n\t\t\t\tmfp.close();\n\t\t\t});\n\n\t\t\tmfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click'+EVENT_NS, function(e) {\n\t\t\t\tif(mfp._checkIfClose(e.target)) {\n\t\t\t\t\tmfp.close();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tmfp.container = _getEl('container', mfp.wrap);\n\t\t}\n\n\t\tmfp.contentContainer = _getEl('content');\n\t\tif(mfp.st.preloader) {\n\t\t\tmfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading);\n\t\t}\n\n\n\t\t// Initializing modules\n\t\tvar modules = $.magnificPopup.modules;\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar n = modules[i];\n\t\t\tn = n.charAt(0).toUpperCase() + n.slice(1);\n\t\t\tmfp['init'+n].call(mfp);\n\t\t}\n\t\t_mfpTrigger('BeforeOpen');\n\n\n\t\tif(mfp.st.showCloseBtn) {\n\t\t\t// Close button\n\t\t\tif(!mfp.st.closeBtnInside) {\n\t\t\t\tmfp.wrap.append( _getCloseBtn() );\n\t\t\t} else {\n\t\t\t\t_mfpOn(MARKUP_PARSE_EVENT, function(e, template, values, item) {\n\t\t\t\t\tvalues.close_replaceWith = _getCloseBtn(item.type);\n\t\t\t\t});\n\t\t\t\t_wrapClasses += ' mfp-close-btn-in';\n\t\t\t}\n\t\t}\n\n\t\tif(mfp.st.alignTop) {\n\t\t\t_wrapClasses += ' mfp-align-top';\n\t\t}\n\n\t\n\n\t\tif(mfp.fixedContentPos) {\n\t\t\tmfp.wrap.css({\n\t\t\t\toverflow: mfp.st.overflowY,\n\t\t\t\toverflowX: 'hidden',\n\t\t\t\toverflowY: mfp.st.overflowY\n\t\t\t});\n\t\t} else {\n\t\t\tmfp.wrap.css({ \n\t\t\t\ttop: _window.scrollTop(),\n\t\t\t\tposition: 'absolute'\n\t\t\t});\n\t\t}\n\t\tif( mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos) ) {\n\t\t\tmfp.bgOverlay.css({\n\t\t\t\theight: _document.height(),\n\t\t\t\tposition: 'absolute'\n\t\t\t});\n\t\t}\n\n\t\t\n\n\t\tif(mfp.st.enableEscapeKey) {\n\t\t\t// Close on ESC key\n\t\t\t_document.on('keyup' + EVENT_NS, function(e) {\n\t\t\t\tif(e.keyCode === 27) {\n\t\t\t\t\tmfp.close();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t_window.on('resize' + EVENT_NS, function() {\n\t\t\tmfp.updateSize();\n\t\t});\n\n\n\t\tif(!mfp.st.closeOnContentClick) {\n\t\t\t_wrapClasses += ' mfp-auto-cursor';\n\t\t}\n\t\t\n\t\tif(_wrapClasses)\n\t\t\tmfp.wrap.addClass(_wrapClasses);\n\n\n\t\t// this triggers recalculation of layout, so we get it once to not to trigger twice\n\t\tvar windowHeight = mfp.wH = _window.height();\n\n\t\t\n\t\tvar windowStyles = {};\n\n\t\tif( mfp.fixedContentPos ) {\n if(mfp._hasScrollBar(windowHeight)){\n var s = mfp._getScrollbarSize();\n if(s) {\n windowStyles.marginRight = s;\n }\n }\n }\n\n\t\tif(mfp.fixedContentPos) {\n\t\t\tif(!mfp.isIE7) {\n\t\t\t\twindowStyles.overflow = 'hidden';\n\t\t\t} else {\n\t\t\t\t// ie7 double-scroll bug\n\t\t\t\t$('body, html').css('overflow', 'hidden');\n\t\t\t}\n\t\t}\n\n\t\t\n\t\t\n\t\tvar classesToadd = mfp.st.mainClass;\n\t\tif(mfp.isIE7) {\n\t\t\tclassesToadd += ' mfp-ie7';\n\t\t}\n\t\tif(classesToadd) {\n\t\t\tmfp._addClassToMFP( classesToadd );\n\t\t}\n\n\t\t// add content\n\t\tmfp.updateItemHTML();\n\n\t\t_mfpTrigger('BuildControls');\n\n\t\t// remove scrollbar, add margin e.t.c\n\t\t$('html').css(windowStyles);\n\t\t\n\t\t// add everything to DOM\n\t\tmfp.bgOverlay.add(mfp.wrap).prependTo( mfp.st.prependTo || $(document.body) );\n\n\t\t// Save last focused element\n\t\tmfp._lastFocusedEl = document.activeElement;\n\t\t\n\t\t// Wait for next cycle to allow CSS transition\n\t\tsetTimeout(function() {\n\t\t\t\n\t\t\tif(mfp.content) {\n\t\t\t\tmfp._addClassToMFP(READY_CLASS);\n\t\t\t\tmfp._setFocus();\n\t\t\t} else {\n\t\t\t\t// if content is not defined (not loaded e.t.c) we add class only for BG\n\t\t\t\tmfp.bgOverlay.addClass(READY_CLASS);\n\t\t\t}\n\t\t\t\n\t\t\t// Trap the focus in popup\n\t\t\t_document.on('focusin' + EVENT_NS, mfp._onFocusIn);\n\n\t\t}, 16);\n\n\t\tmfp.isOpen = true;\n\t\tmfp.updateSize(windowHeight);\n\t\t_mfpTrigger(OPEN_EVENT);\n\n\t\treturn data;\n\t},\n\n\t/**\n\t * Closes the popup\n\t */\n\tclose: function() {\n\t\tif(!mfp.isOpen) return;\n\t\t_mfpTrigger(BEFORE_CLOSE_EVENT);\n\n\t\tmfp.isOpen = false;\n\t\t// for CSS3 animation\n\t\tif(mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition ) {\n\t\t\tmfp._addClassToMFP(REMOVING_CLASS);\n\t\t\tsetTimeout(function() {\n\t\t\t\tmfp._close();\n\t\t\t}, mfp.st.removalDelay);\n\t\t} else {\n\t\t\tmfp._close();\n\t\t}\n\t},\n\n\t/**\n\t * Helper for close() function\n\t */\n\t_close: function() {\n\t\t_mfpTrigger(CLOSE_EVENT);\n\n\t\tvar classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' ';\n\n\t\tmfp.bgOverlay.detach();\n\t\tmfp.wrap.detach();\n\t\tmfp.container.empty();\n\n\t\tif(mfp.st.mainClass) {\n\t\t\tclassesToRemove += mfp.st.mainClass + ' ';\n\t\t}\n\n\t\tmfp._removeClassFromMFP(classesToRemove);\n\n\t\tif(mfp.fixedContentPos) {\n\t\t\tvar windowStyles = {marginRight: ''};\n\t\t\tif(mfp.isIE7) {\n\t\t\t\t$('body, html').css('overflow', '');\n\t\t\t} else {\n\t\t\t\twindowStyles.overflow = '';\n\t\t\t}\n\t\t\t$('html').css(windowStyles);\n\t\t}\n\t\t\n\t\t_document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS);\n\t\tmfp.ev.off(EVENT_NS);\n\n\t\t// clean up DOM elements that aren't removed\n\t\tmfp.wrap.attr('class', 'mfp-wrap').removeAttr('style');\n\t\tmfp.bgOverlay.attr('class', 'mfp-bg');\n\t\tmfp.container.attr('class', 'mfp-container');\n\n\t\t// remove close button from target element\n\t\tif(mfp.st.showCloseBtn &&\n\t\t(!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) {\n\t\t\tif(mfp.currTemplate.closeBtn)\n\t\t\t\tmfp.currTemplate.closeBtn.detach();\n\t\t}\n\n\n\t\tif(mfp.st.autoFocusLast && mfp._lastFocusedEl) {\n\t\t\t$(mfp._lastFocusedEl).focus(); // put tab focus back\n\t\t}\n\t\tmfp.currItem = null;\t\n\t\tmfp.content = null;\n\t\tmfp.currTemplate = null;\n\t\tmfp.prevHeight = 0;\n\n\t\t_mfpTrigger(AFTER_CLOSE_EVENT);\n\t},\n\t\n\tupdateSize: function(winHeight) {\n\n\t\tif(mfp.isIOS) {\n\t\t\t// fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2\n\t\t\tvar zoomLevel = document.documentElement.clientWidth / window.innerWidth;\n\t\t\tvar height = window.innerHeight * zoomLevel;\n\t\t\tmfp.wrap.css('height', height);\n\t\t\tmfp.wH = height;\n\t\t} else {\n\t\t\tmfp.wH = winHeight || _window.height();\n\t\t}\n\t\t// Fixes #84: popup incorrectly positioned with position:relative on body\n\t\tif(!mfp.fixedContentPos) {\n\t\t\tmfp.wrap.css('height', mfp.wH);\n\t\t}\n\n\t\t_mfpTrigger('Resize');\n\n\t},\n\n\t/**\n\t * Set content of popup based on current index\n\t */\n\tupdateItemHTML: function() {\n\t\tvar item = mfp.items[mfp.index];\n\n\t\t// Detach and perform modifications\n\t\tmfp.contentContainer.detach();\n\n\t\tif(mfp.content)\n\t\t\tmfp.content.detach();\n\n\t\tif(!item.parsed) {\n\t\t\titem = mfp.parseEl( mfp.index );\n\t\t}\n\n\t\tvar type = item.type;\n\n\t\t_mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]);\n\t\t// BeforeChange event works like so:\n\t\t// _mfpOn('BeforeChange', function(e, prevType, newType) { });\n\n\t\tmfp.currItem = item;\n\n\t\tif(!mfp.currTemplate[type]) {\n\t\t\tvar markup = mfp.st[type] ? mfp.st[type].markup : false;\n\n\t\t\t// allows to modify markup\n\t\t\t_mfpTrigger('FirstMarkupParse', markup);\n\n\t\t\tif(markup) {\n\t\t\t\tmfp.currTemplate[type] = $(markup);\n\t\t\t} else {\n\t\t\t\t// if there is no markup found we just define that template is parsed\n\t\t\t\tmfp.currTemplate[type] = true;\n\t\t\t}\n\t\t}\n\n\t\tif(_prevContentType && _prevContentType !== item.type) {\n\t\t\tmfp.container.removeClass('mfp-'+_prevContentType+'-holder');\n\t\t}\n\n\t\tvar newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]);\n\t\tmfp.appendContent(newContent, type);\n\n\t\titem.preloaded = true;\n\n\t\t_mfpTrigger(CHANGE_EVENT, item);\n\t\t_prevContentType = item.type;\n\n\t\t// Append container back after its content changed\n\t\tmfp.container.prepend(mfp.contentContainer);\n\n\t\t_mfpTrigger('AfterChange');\n\t},\n\n\n\t/**\n\t * Set HTML content of popup\n\t */\n\tappendContent: function(newContent, type) {\n\t\tmfp.content = newContent;\n\n\t\tif(newContent) {\n\t\t\tif(mfp.st.showCloseBtn && mfp.st.closeBtnInside &&\n\t\t\t\tmfp.currTemplate[type] === true) {\n\t\t\t\t// if there is no markup, we just append close button element inside\n\t\t\t\tif(!mfp.content.find('.mfp-close').length) {\n\t\t\t\t\tmfp.content.append(_getCloseBtn());\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmfp.content = newContent;\n\t\t\t}\n\t\t} else {\n\t\t\tmfp.content = '';\n\t\t}\n\n\t\t_mfpTrigger(BEFORE_APPEND_EVENT);\n\t\tmfp.container.addClass('mfp-'+type+'-holder');\n\n\t\tmfp.contentContainer.append(mfp.content);\n\t},\n\n\n\t/**\n\t * Creates Magnific Popup data object based on given data\n\t * @param {int} index Index of item to parse\n\t */\n\tparseEl: function(index) {\n\t\tvar item = mfp.items[index],\n\t\t\ttype;\n\n\t\tif(item.tagName) {\n\t\t\titem = { el: $(item) };\n\t\t} else {\n\t\t\ttype = item.type;\n\t\t\titem = { data: item, src: item.src };\n\t\t}\n\n\t\tif(item.el) {\n\t\t\tvar types = mfp.types;\n\n\t\t\t// check for 'mfp-TYPE' class\n\t\t\tfor(var i = 0; i < types.length; i++) {\n\t\t\t\tif( item.el.hasClass('mfp-'+types[i]) ) {\n\t\t\t\t\ttype = types[i];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\titem.src = item.el.attr('data-mfp-src');\n\t\t\tif(!item.src) {\n\t\t\t\titem.src = item.el.attr('href');\n\t\t\t}\n\t\t}\n\n\t\titem.type = type || mfp.st.type || 'inline';\n\t\titem.index = index;\n\t\titem.parsed = true;\n\t\tmfp.items[index] = item;\n\t\t_mfpTrigger('ElementParse', item);\n\n\t\treturn mfp.items[index];\n\t},\n\n\n\t/**\n\t * Initializes single popup or a group of popups\n\t */\n\taddGroup: function(el, options) {\n\t\tvar eHandler = function(e) {\n\t\t\te.mfpEl = this;\n\t\t\tmfp._openClick(e, el, options);\n\t\t};\n\n\t\tif(!options) {\n\t\t\toptions = {};\n\t\t}\n\n\t\tvar eName = 'click.magnificPopup';\n\t\toptions.mainEl = el;\n\n\t\tif(options.items) {\n\t\t\toptions.isObj = true;\n\t\t\tel.off(eName).on(eName, eHandler);\n\t\t} else {\n\t\t\toptions.isObj = false;\n\t\t\tif(options.delegate) {\n\t\t\t\tel.off(eName).on(eName, options.delegate , eHandler);\n\t\t\t} else {\n\t\t\t\toptions.items = el;\n\t\t\t\tel.off(eName).on(eName, eHandler);\n\t\t\t}\n\t\t}\n\t},\n\t_openClick: function(e, el, options) {\n\t\tvar midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick;\n\n\n\t\tif(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn;\n\n\t\tif(disableOn) {\n\t\t\tif($.isFunction(disableOn)) {\n\t\t\t\tif( !disableOn.call(mfp) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else { // else it's number\n\t\t\t\tif( _window.width() < disableOn ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif(e.type) {\n\t\t\te.preventDefault();\n\n\t\t\t// This will prevent popup from closing if element is inside and popup is already opened\n\t\t\tif(mfp.isOpen) {\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t}\n\n\t\toptions.el = $(e.mfpEl);\n\t\tif(options.delegate) {\n\t\t\toptions.items = el.find(options.delegate);\n\t\t}\n\t\tmfp.open(options);\n\t},\n\n\n\t/**\n\t * Updates text on preloader\n\t */\n\tupdateStatus: function(status, text) {\n\n\t\tif(mfp.preloader) {\n\t\t\tif(_prevStatus !== status) {\n\t\t\t\tmfp.container.removeClass('mfp-s-'+_prevStatus);\n\t\t\t}\n\n\t\t\tif(!text && status === 'loading') {\n\t\t\t\ttext = mfp.st.tLoading;\n\t\t\t}\n\n\t\t\tvar data = {\n\t\t\t\tstatus: status,\n\t\t\t\ttext: text\n\t\t\t};\n\t\t\t// allows to modify status\n\t\t\t_mfpTrigger('UpdateStatus', data);\n\n\t\t\tstatus = data.status;\n\t\t\ttext = data.text;\n\n\t\t\tmfp.preloader.html(text);\n\n\t\t\tmfp.preloader.find('a').on('click', function(e) {\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t});\n\n\t\t\tmfp.container.addClass('mfp-s-'+status);\n\t\t\t_prevStatus = status;\n\t\t}\n\t},\n\n\n\t/*\n\t\t\"Private\" helpers that aren't private at all\n\t */\n\t// Check to close popup or not\n\t// \"target\" is an element that was clicked\n\t_checkIfClose: function(target) {\n\n\t\tif($(target).hasClass(PREVENT_CLOSE_CLASS)) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar closeOnContent = mfp.st.closeOnContentClick;\n\t\tvar closeOnBg = mfp.st.closeOnBgClick;\n\n\t\tif(closeOnContent && closeOnBg) {\n\t\t\treturn true;\n\t\t} else {\n\n\t\t\t// We close the popup if click is on close button or on preloader. Or if there is no content.\n\t\t\tif(!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0]) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// if click is outside the content\n\t\t\tif( (target !== mfp.content[0] && !$.contains(mfp.content[0], target)) ) {\n\t\t\t\tif(closeOnBg) {\n\t\t\t\t\t// last check, if the clicked element is in DOM, (in case it's removed onclick)\n\t\t\t\t\tif( $.contains(document, target) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if(closeOnContent) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t}\n\t\treturn false;\n\t},\n\t_addClassToMFP: function(cName) {\n\t\tmfp.bgOverlay.addClass(cName);\n\t\tmfp.wrap.addClass(cName);\n\t},\n\t_removeClassFromMFP: function(cName) {\n\t\tthis.bgOverlay.removeClass(cName);\n\t\tmfp.wrap.removeClass(cName);\n\t},\n\t_hasScrollBar: function(winHeight) {\n\t\treturn ( (mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()) );\n\t},\n\t_setFocus: function() {\n\t\t(mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus();\n\t},\n\t_onFocusIn: function(e) {\n\t\tif( e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target) ) {\n\t\t\tmfp._setFocus();\n\t\t\treturn false;\n\t\t}\n\t},\n\t_parseMarkup: function(template, values, item) {\n\t\tvar arr;\n\t\tif(item.data) {\n\t\t\tvalues = $.extend(item.data, values);\n\t\t}\n\t\t_mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item] );\n\n\t\t$.each(values, function(key, value) {\n\t\t\tif(value === undefined || value === false) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tarr = key.split('_');\n\t\t\tif(arr.length > 1) {\n\t\t\t\tvar el = template.find(EVENT_NS + '-'+arr[0]);\n\n\t\t\t\tif(el.length > 0) {\n\t\t\t\t\tvar attr = arr[1];\n\t\t\t\t\tif(attr === 'replaceWith') {\n\t\t\t\t\t\tif(el[0] !== value[0]) {\n\t\t\t\t\t\t\tel.replaceWith(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if(attr === 'img') {\n\t\t\t\t\t\tif(el.is('img')) {\n\t\t\t\t\t\t\tel.attr('src', value);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tel.replaceWith( $('').attr('src', value).attr('class', el.attr('class')) );\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tel.attr(arr[1], value);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\ttemplate.find(EVENT_NS + '-'+key).html(value);\n\t\t\t}\n\t\t});\n\t},\n\n\t_getScrollbarSize: function() {\n\t\t// thx David\n\t\tif(mfp.scrollbarSize === undefined) {\n\t\t\tvar scrollDiv = document.createElement(\"div\");\n\t\t\tscrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';\n\t\t\tdocument.body.appendChild(scrollDiv);\n\t\t\tmfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n\t\t\tdocument.body.removeChild(scrollDiv);\n\t\t}\n\t\treturn mfp.scrollbarSize;\n\t}\n\n}; /* MagnificPopup core prototype end */\n\n\n\n\n/**\n * Public static functions\n */\n$.magnificPopup = {\n\tinstance: null,\n\tproto: MagnificPopup.prototype,\n\tmodules: [],\n\n\topen: function(options, index) {\n\t\t_checkInstance();\n\n\t\tif(!options) {\n\t\t\toptions = {};\n\t\t} else {\n\t\t\toptions = $.extend(true, {}, options);\n\t\t}\n\n\t\toptions.isObj = true;\n\t\toptions.index = index || 0;\n\t\treturn this.instance.open(options);\n\t},\n\n\tclose: function() {\n\t\treturn $.magnificPopup.instance && $.magnificPopup.instance.close();\n\t},\n\n\tregisterModule: function(name, module) {\n\t\tif(module.options) {\n\t\t\t$.magnificPopup.defaults[name] = module.options;\n\t\t}\n\t\t$.extend(this.proto, module.proto);\n\t\tthis.modules.push(name);\n\t},\n\n\tdefaults: {\n\n\t\t// Info about options is in docs:\n\t\t// http://dimsemenov.com/plugins/magnific-popup/documentation.html#options\n\n\t\tdisableOn: 0,\n\n\t\tkey: null,\n\n\t\tmidClick: false,\n\n\t\tmainClass: '',\n\n\t\tpreloader: true,\n\n\t\tfocus: '', // CSS selector of input to focus after popup is opened\n\n\t\tcloseOnContentClick: false,\n\n\t\tcloseOnBgClick: true,\n\n\t\tcloseBtnInside: true,\n\n\t\tshowCloseBtn: true,\n\n\t\tenableEscapeKey: true,\n\n\t\tmodal: false,\n\n\t\talignTop: false,\n\n\t\tremovalDelay: 0,\n\n\t\tprependTo: null,\n\n\t\tfixedContentPos: 'auto',\n\n\t\tfixedBgPos: 'auto',\n\n\t\toverflowY: 'auto',\n\n\t\tcloseMarkup: '',\n\n\t\ttClose: 'Close (Esc)',\n\n\t\ttLoading: 'Loading...',\n\n\t\tautoFocusLast: true\n\n\t}\n};\n\n\n\n$.fn.magnificPopup = function(options) {\n\t_checkInstance();\n\n\tvar jqEl = $(this);\n\n\t// We call some API method of first param is a string\n\tif (typeof options === \"string\" ) {\n\n\t\tif(options === 'open') {\n\t\t\tvar items,\n\t\t\t\titemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup,\n\t\t\t\tindex = parseInt(arguments[1], 10) || 0;\n\n\t\t\tif(itemOpts.items) {\n\t\t\t\titems = itemOpts.items[index];\n\t\t\t} else {\n\t\t\t\titems = jqEl;\n\t\t\t\tif(itemOpts.delegate) {\n\t\t\t\t\titems = items.find(itemOpts.delegate);\n\t\t\t\t}\n\t\t\t\titems = items.eq( index );\n\t\t\t}\n\t\t\tmfp._openClick({mfpEl:items}, jqEl, itemOpts);\n\t\t} else {\n\t\t\tif(mfp.isOpen)\n\t\t\t\tmfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1));\n\t\t}\n\n\t} else {\n\t\t// clone options obj\n\t\toptions = $.extend(true, {}, options);\n\n\t\t/*\n\t\t * As Zepto doesn't support .data() method for objects\n\t\t * and it works only in normal browsers\n\t\t * we assign \"options\" object directly to the DOM element. FTW!\n\t\t */\n\t\tif(_isJQ) {\n\t\t\tjqEl.data('magnificPopup', options);\n\t\t} else {\n\t\t\tjqEl[0].magnificPopup = options;\n\t\t}\n\n\t\tmfp.addGroup(jqEl, options);\n\n\t}\n\treturn jqEl;\n};\n\n/*>>core*/\n\n/*>>inline*/\n\nvar INLINE_NS = 'inline',\n\t_hiddenClass,\n\t_inlinePlaceholder,\n\t_lastInlineElement,\n\t_putInlineElementsBack = function() {\n\t\tif(_lastInlineElement) {\n\t\t\t_inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach();\n\t\t\t_lastInlineElement = null;\n\t\t}\n\t};\n\n$.magnificPopup.registerModule(INLINE_NS, {\n\toptions: {\n\t\thiddenClass: 'hide', // will be appended with `mfp-` prefix\n\t\tmarkup: '',\n\t\ttNotFound: 'Content not found'\n\t},\n\tproto: {\n\n\t\tinitInline: function() {\n\t\t\tmfp.types.push(INLINE_NS);\n\n\t\t\t_mfpOn(CLOSE_EVENT+'.'+INLINE_NS, function() {\n\t\t\t\t_putInlineElementsBack();\n\t\t\t});\n\t\t},\n\n\t\tgetInline: function(item, template) {\n\n\t\t\t_putInlineElementsBack();\n\n\t\t\tif(item.src) {\n\t\t\t\tvar inlineSt = mfp.st.inline,\n\t\t\t\t\tel = $(item.src);\n\n\t\t\t\tif(el.length) {\n\n\t\t\t\t\t// If target element has parent - we replace it with placeholder and put it back after popup is closed\n\t\t\t\t\tvar parent = el[0].parentNode;\n\t\t\t\t\tif(parent && parent.tagName) {\n\t\t\t\t\t\tif(!_inlinePlaceholder) {\n\t\t\t\t\t\t\t_hiddenClass = inlineSt.hiddenClass;\n\t\t\t\t\t\t\t_inlinePlaceholder = _getEl(_hiddenClass);\n\t\t\t\t\t\t\t_hiddenClass = 'mfp-'+_hiddenClass;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// replace target inline element with placeholder\n\t\t\t\t\t\t_lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);\n\t\t\t\t\t}\n\n\t\t\t\t\tmfp.updateStatus('ready');\n\t\t\t\t} else {\n\t\t\t\t\tmfp.updateStatus('error', inlineSt.tNotFound);\n\t\t\t\t\tel = $('
');\n\t\t\t\t}\n\n\t\t\t\titem.inlineElement = el;\n\t\t\t\treturn el;\n\t\t\t}\n\n\t\t\tmfp.updateStatus('ready');\n\t\t\tmfp._parseMarkup(template, {}, item);\n\t\t\treturn template;\n\t\t}\n\t}\n});\n\n/*>>inline*/\n\n/*>>ajax*/\nvar AJAX_NS = 'ajax',\n\t_ajaxCur,\n\t_removeAjaxCursor = function() {\n\t\tif(_ajaxCur) {\n\t\t\t$(document.body).removeClass(_ajaxCur);\n\t\t}\n\t},\n\t_destroyAjaxRequest = function() {\n\t\t_removeAjaxCursor();\n\t\tif(mfp.req) {\n\t\t\tmfp.req.abort();\n\t\t}\n\t};\n\n$.magnificPopup.registerModule(AJAX_NS, {\n\n\toptions: {\n\t\tsettings: null,\n\t\tcursor: 'mfp-ajax-cur',\n\t\ttError: 'The content could not be loaded.'\n\t},\n\n\tproto: {\n\t\tinitAjax: function() {\n\t\t\tmfp.types.push(AJAX_NS);\n\t\t\t_ajaxCur = mfp.st.ajax.cursor;\n\n\t\t\t_mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest);\n\t\t\t_mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);\n\t\t},\n\t\tgetAjax: function(item) {\n\n\t\t\tif(_ajaxCur) {\n\t\t\t\t$(document.body).addClass(_ajaxCur);\n\t\t\t}\n\n\t\t\tmfp.updateStatus('loading');\n\n\t\t\tvar opts = $.extend({\n\t\t\t\turl: item.src,\n\t\t\t\tsuccess: function(data, textStatus, jqXHR) {\n\t\t\t\t\tvar temp = {\n\t\t\t\t\t\tdata:data,\n\t\t\t\t\t\txhr:jqXHR\n\t\t\t\t\t};\n\n\t\t\t\t\t_mfpTrigger('ParseAjax', temp);\n\n\t\t\t\t\tmfp.appendContent( $(temp.data), AJAX_NS );\n\n\t\t\t\t\titem.finished = true;\n\n\t\t\t\t\t_removeAjaxCursor();\n\n\t\t\t\t\tmfp._setFocus();\n\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tmfp.wrap.addClass(READY_CLASS);\n\t\t\t\t\t}, 16);\n\n\t\t\t\t\tmfp.updateStatus('ready');\n\n\t\t\t\t\t_mfpTrigger('AjaxContentAdded');\n\t\t\t\t},\n\t\t\t\terror: function() {\n\t\t\t\t\t_removeAjaxCursor();\n\t\t\t\t\titem.finished = item.loadError = true;\n\t\t\t\t\tmfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));\n\t\t\t\t}\n\t\t\t}, mfp.st.ajax.settings);\n\n\t\t\tmfp.req = $.ajax(opts);\n\n\t\t\treturn '';\n\t\t}\n\t}\n});\n\n/*>>ajax*/\n\n/*>>image*/\nvar _imgInterval,\n\t_getTitle = function(item) {\n\t\tif(item.data && item.data.title !== undefined)\n\t\t\treturn item.data.title;\n\n\t\tvar src = mfp.st.image.titleSrc;\n\n\t\tif(src) {\n\t\t\tif($.isFunction(src)) {\n\t\t\t\treturn src.call(mfp, item);\n\t\t\t} else if(item.el) {\n\t\t\t\treturn item.el.attr(src) || '';\n\t\t\t}\n\t\t}\n\t\treturn '';\n\t};\n\n$.magnificPopup.registerModule('image', {\n\n\toptions: {\n\t\tmarkup: '
'+\n\t\t\t\t\t'
'+\n\t\t\t\t\t'
'+\n\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t'
'+\n\t\t\t\t\t'
'+\n\t\t\t\t'
',\n\t\tcursor: 'mfp-zoom-out-cur',\n\t\ttitleSrc: 'title',\n\t\tverticalFit: true,\n\t\ttError: 'The image could not be loaded.'\n\t},\n\n\tproto: {\n\t\tinitImage: function() {\n\t\t\tvar imgSt = mfp.st.image,\n\t\t\t\tns = '.image';\n\n\t\t\tmfp.types.push('image');\n\n\t\t\t_mfpOn(OPEN_EVENT+ns, function() {\n\t\t\t\tif(mfp.currItem.type === 'image' && imgSt.cursor) {\n\t\t\t\t\t$(document.body).addClass(imgSt.cursor);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\n\t\t\t\tif(imgSt.cursor) {\n\t\t\t\t\t$(document.body).removeClass(imgSt.cursor);\n\t\t\t\t}\n\t\t\t\t_window.off('resize' + EVENT_NS);\n\t\t\t});\n\n\t\t\t_mfpOn('Resize'+ns, mfp.resizeImage);\n\t\t\tif(mfp.isLowIE) {\n\t\t\t\t_mfpOn('AfterChange', mfp.resizeImage);\n\t\t\t}\n\t\t},\n\t\tresizeImage: function() {\n\t\t\tvar item = mfp.currItem;\n\t\t\tif(!item || !item.img) return;\n\n\t\t\tif(mfp.st.image.verticalFit) {\n\t\t\t\tvar decr = 0;\n\t\t\t\t// fix box-sizing in ie7/8\n\t\t\t\tif(mfp.isLowIE) {\n\t\t\t\t\tdecr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10);\n\t\t\t\t}\n\t\t\t\titem.img.css('max-height', mfp.wH-decr);\n\t\t\t}\n\t\t},\n\t\t_onImageHasSize: function(item) {\n\t\t\tif(item.img) {\n\n\t\t\t\titem.hasSize = true;\n\n\t\t\t\tif(_imgInterval) {\n\t\t\t\t\tclearInterval(_imgInterval);\n\t\t\t\t}\n\n\t\t\t\titem.isCheckingImgSize = false;\n\n\t\t\t\t_mfpTrigger('ImageHasSize', item);\n\n\t\t\t\tif(item.imgHidden) {\n\t\t\t\t\tif(mfp.content)\n\t\t\t\t\t\tmfp.content.removeClass('mfp-loading');\n\n\t\t\t\t\titem.imgHidden = false;\n\t\t\t\t}\n\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Function that loops until the image has size to display elements that rely on it asap\n\t\t */\n\t\tfindImageSize: function(item) {\n\n\t\t\tvar counter = 0,\n\t\t\t\timg = item.img[0],\n\t\t\t\tmfpSetInterval = function(delay) {\n\n\t\t\t\t\tif(_imgInterval) {\n\t\t\t\t\t\tclearInterval(_imgInterval);\n\t\t\t\t\t}\n\t\t\t\t\t// decelerating interval that checks for size of an image\n\t\t\t\t\t_imgInterval = setInterval(function() {\n\t\t\t\t\t\tif(img.naturalWidth > 0) {\n\t\t\t\t\t\t\tmfp._onImageHasSize(item);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(counter > 200) {\n\t\t\t\t\t\t\tclearInterval(_imgInterval);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcounter++;\n\t\t\t\t\t\tif(counter === 3) {\n\t\t\t\t\t\t\tmfpSetInterval(10);\n\t\t\t\t\t\t} else if(counter === 40) {\n\t\t\t\t\t\t\tmfpSetInterval(50);\n\t\t\t\t\t\t} else if(counter === 100) {\n\t\t\t\t\t\t\tmfpSetInterval(500);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, delay);\n\t\t\t\t};\n\n\t\t\tmfpSetInterval(1);\n\t\t},\n\n\t\tgetImage: function(item, template) {\n\n\t\t\tvar guard = 0,\n\n\t\t\t\t// image load complete handler\n\t\t\t\tonLoadComplete = function() {\n\t\t\t\t\tif(item) {\n\t\t\t\t\t\tif (item.img[0].complete) {\n\t\t\t\t\t\t\titem.img.off('.mfploader');\n\n\t\t\t\t\t\t\tif(item === mfp.currItem){\n\t\t\t\t\t\t\t\tmfp._onImageHasSize(item);\n\n\t\t\t\t\t\t\t\tmfp.updateStatus('ready');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\titem.hasSize = true;\n\t\t\t\t\t\t\titem.loaded = true;\n\n\t\t\t\t\t\t\t_mfpTrigger('ImageLoadComplete');\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// if image complete check fails 200 times (20 sec), we assume that there was an error.\n\t\t\t\t\t\t\tguard++;\n\t\t\t\t\t\t\tif(guard < 200) {\n\t\t\t\t\t\t\t\tsetTimeout(onLoadComplete,100);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tonLoadError();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t// image error handler\n\t\t\t\tonLoadError = function() {\n\t\t\t\t\tif(item) {\n\t\t\t\t\t\titem.img.off('.mfploader');\n\t\t\t\t\t\tif(item === mfp.currItem){\n\t\t\t\t\t\t\tmfp._onImageHasSize(item);\n\t\t\t\t\t\t\tmfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\titem.hasSize = true;\n\t\t\t\t\t\titem.loaded = true;\n\t\t\t\t\t\titem.loadError = true;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\timgSt = mfp.st.image;\n\n\n\t\t\tvar el = template.find('.mfp-img');\n\t\t\tif(el.length) {\n\t\t\t\tvar img = document.createElement('img');\n\t\t\t\timg.className = 'mfp-img';\n\t\t\t\tif(item.el && item.el.find('img').length) {\n\t\t\t\t\timg.alt = item.el.find('img').attr('alt');\n\t\t\t\t}\n\t\t\t\titem.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);\n\t\t\t\timg.src = item.src;\n\n\t\t\t\t// without clone() \"error\" event is not firing when IMG is replaced by new IMG\n\t\t\t\t// TODO: find a way to avoid such cloning\n\t\t\t\tif(el.is('img')) {\n\t\t\t\t\titem.img = item.img.clone();\n\t\t\t\t}\n\n\t\t\t\timg = item.img[0];\n\t\t\t\tif(img.naturalWidth > 0) {\n\t\t\t\t\titem.hasSize = true;\n\t\t\t\t} else if(!img.width) {\n\t\t\t\t\titem.hasSize = false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tmfp._parseMarkup(template, {\n\t\t\t\ttitle: _getTitle(item),\n\t\t\t\timg_replaceWith: item.img\n\t\t\t}, item);\n\n\t\t\tmfp.resizeImage();\n\n\t\t\tif(item.hasSize) {\n\t\t\t\tif(_imgInterval) clearInterval(_imgInterval);\n\n\t\t\t\tif(item.loadError) {\n\t\t\t\t\ttemplate.addClass('mfp-loading');\n\t\t\t\t\tmfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );\n\t\t\t\t} else {\n\t\t\t\t\ttemplate.removeClass('mfp-loading');\n\t\t\t\t\tmfp.updateStatus('ready');\n\t\t\t\t}\n\t\t\t\treturn template;\n\t\t\t}\n\n\t\t\tmfp.updateStatus('loading');\n\t\t\titem.loading = true;\n\n\t\t\tif(!item.hasSize) {\n\t\t\t\titem.imgHidden = true;\n\t\t\t\ttemplate.addClass('mfp-loading');\n\t\t\t\tmfp.findImageSize(item);\n\t\t\t}\n\n\t\t\treturn template;\n\t\t}\n\t}\n});\n\n/*>>image*/\n\n/*>>zoom*/\nvar hasMozTransform,\n\tgetHasMozTransform = function() {\n\t\tif(hasMozTransform === undefined) {\n\t\t\thasMozTransform = document.createElement('p').style.MozTransform !== undefined;\n\t\t}\n\t\treturn hasMozTransform;\n\t};\n\n$.magnificPopup.registerModule('zoom', {\n\n\toptions: {\n\t\tenabled: false,\n\t\teasing: 'ease-in-out',\n\t\tduration: 300,\n\t\topener: function(element) {\n\t\t\treturn element.is('img') ? element : element.find('img');\n\t\t}\n\t},\n\n\tproto: {\n\n\t\tinitZoom: function() {\n\t\t\tvar zoomSt = mfp.st.zoom,\n\t\t\t\tns = '.zoom',\n\t\t\t\timage;\n\n\t\t\tif(!zoomSt.enabled || !mfp.supportsTransition) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar duration = zoomSt.duration,\n\t\t\t\tgetElToAnimate = function(image) {\n\t\t\t\t\tvar newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),\n\t\t\t\t\t\ttransition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing,\n\t\t\t\t\t\tcssObj = {\n\t\t\t\t\t\t\tposition: 'fixed',\n\t\t\t\t\t\t\tzIndex: 9999,\n\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\t'-webkit-backface-visibility': 'hidden'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tt = 'transition';\n\n\t\t\t\t\tcssObj['-webkit-'+t] = cssObj['-moz-'+t] = cssObj['-o-'+t] = cssObj[t] = transition;\n\n\t\t\t\t\tnewImg.css(cssObj);\n\t\t\t\t\treturn newImg;\n\t\t\t\t},\n\t\t\t\tshowMainContent = function() {\n\t\t\t\t\tmfp.content.css('visibility', 'visible');\n\t\t\t\t},\n\t\t\t\topenTimeout,\n\t\t\t\tanimatedImg;\n\n\t\t\t_mfpOn('BuildControls'+ns, function() {\n\t\t\t\tif(mfp._allowZoom()) {\n\n\t\t\t\t\tclearTimeout(openTimeout);\n\t\t\t\t\tmfp.content.css('visibility', 'hidden');\n\n\t\t\t\t\t// Basically, all code below does is clones existing image, puts in on top of the current one and animated it\n\n\t\t\t\t\timage = mfp._getItemToZoom();\n\n\t\t\t\t\tif(!image) {\n\t\t\t\t\t\tshowMainContent();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tanimatedImg = getElToAnimate(image);\n\n\t\t\t\t\tanimatedImg.css( mfp._getOffset() );\n\n\t\t\t\t\tmfp.wrap.append(animatedImg);\n\n\t\t\t\t\topenTimeout = setTimeout(function() {\n\t\t\t\t\t\tanimatedImg.css( mfp._getOffset( true ) );\n\t\t\t\t\t\topenTimeout = setTimeout(function() {\n\n\t\t\t\t\t\t\tshowMainContent();\n\n\t\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\t\tanimatedImg.remove();\n\t\t\t\t\t\t\t\timage = animatedImg = null;\n\t\t\t\t\t\t\t\t_mfpTrigger('ZoomAnimationEnded');\n\t\t\t\t\t\t\t}, 16); // avoid blink when switching images\n\n\t\t\t\t\t\t}, duration); // this timeout equals animation duration\n\n\t\t\t\t\t}, 16); // by adding this timeout we avoid short glitch at the beginning of animation\n\n\n\t\t\t\t\t// Lots of timeouts...\n\t\t\t\t}\n\t\t\t});\n\t\t\t_mfpOn(BEFORE_CLOSE_EVENT+ns, function() {\n\t\t\t\tif(mfp._allowZoom()) {\n\n\t\t\t\t\tclearTimeout(openTimeout);\n\n\t\t\t\t\tmfp.st.removalDelay = duration;\n\n\t\t\t\t\tif(!image) {\n\t\t\t\t\t\timage = mfp._getItemToZoom();\n\t\t\t\t\t\tif(!image) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tanimatedImg = getElToAnimate(image);\n\t\t\t\t\t}\n\n\t\t\t\t\tanimatedImg.css( mfp._getOffset(true) );\n\t\t\t\t\tmfp.wrap.append(animatedImg);\n\t\t\t\t\tmfp.content.css('visibility', 'hidden');\n\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tanimatedImg.css( mfp._getOffset() );\n\t\t\t\t\t}, 16);\n\t\t\t\t}\n\n\t\t\t});\n\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\n\t\t\t\tif(mfp._allowZoom()) {\n\t\t\t\t\tshowMainContent();\n\t\t\t\t\tif(animatedImg) {\n\t\t\t\t\t\tanimatedImg.remove();\n\t\t\t\t\t}\n\t\t\t\t\timage = null;\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_allowZoom: function() {\n\t\t\treturn mfp.currItem.type === 'image';\n\t\t},\n\n\t\t_getItemToZoom: function() {\n\t\t\tif(mfp.currItem.hasSize) {\n\t\t\t\treturn mfp.currItem.img;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Get element postion relative to viewport\n\t\t_getOffset: function(isLarge) {\n\t\t\tvar el;\n\t\t\tif(isLarge) {\n\t\t\t\tel = mfp.currItem.img;\n\t\t\t} else {\n\t\t\t\tel = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem);\n\t\t\t}\n\n\t\t\tvar offset = el.offset();\n\t\t\tvar paddingTop = parseInt(el.css('padding-top'),10);\n\t\t\tvar paddingBottom = parseInt(el.css('padding-bottom'),10);\n\t\t\toffset.top -= ( $(window).scrollTop() - paddingTop );\n\n\n\t\t\t/*\n\n\t\t\tAnimating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.\n\n\t\t\t */\n\t\t\tvar obj = {\n\t\t\t\twidth: el.width(),\n\t\t\t\t// fix Zepto height+padding issue\n\t\t\t\theight: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop\n\t\t\t};\n\n\t\t\t// I hate to do this, but there is no another option\n\t\t\tif( getHasMozTransform() ) {\n\t\t\t\tobj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)';\n\t\t\t} else {\n\t\t\t\tobj.left = offset.left;\n\t\t\t\tobj.top = offset.top;\n\t\t\t}\n\t\t\treturn obj;\n\t\t}\n\n\t}\n});\n\n\n\n/*>>zoom*/\n\n/*>>iframe*/\n\nvar IFRAME_NS = 'iframe',\n\t_emptyPage = '//about:blank',\n\n\t_fixIframeBugs = function(isShowing) {\n\t\tif(mfp.currTemplate[IFRAME_NS]) {\n\t\t\tvar el = mfp.currTemplate[IFRAME_NS].find('iframe');\n\t\t\tif(el.length) {\n\t\t\t\t// reset src after the popup is closed to avoid \"video keeps playing after popup is closed\" bug\n\t\t\t\tif(!isShowing) {\n\t\t\t\t\tel[0].src = _emptyPage;\n\t\t\t\t}\n\n\t\t\t\t// IE8 black screen bug fix\n\t\t\t\tif(mfp.isIE8) {\n\t\t\t\t\tel.css('display', isShowing ? 'block' : 'none');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n$.magnificPopup.registerModule(IFRAME_NS, {\n\n\toptions: {\n\t\tmarkup: '
'+\n\t\t\t\t\t'
'+\n\t\t\t\t\t''+\n\t\t\t\t'
',\n\n\t\tsrcAction: 'iframe_src',\n\n\t\t// we don't care and support only one default type of URL by default\n\t\tpatterns: {\n\t\t\tyoutube: {\n\t\t\t\tindex: 'youtube.com',\n\t\t\t\tid: 'v=',\n\t\t\t\tsrc: '//www.youtube.com/embed/%id%?autoplay=1'\n\t\t\t},\n\t\t\tvimeo: {\n\t\t\t\tindex: 'vimeo.com/',\n\t\t\t\tid: '/',\n\t\t\t\tsrc: '//player.vimeo.com/video/%id%?autoplay=1'\n\t\t\t},\n\t\t\tgmaps: {\n\t\t\t\tindex: '//maps.google.',\n\t\t\t\tsrc: '%id%&output=embed'\n\t\t\t}\n\t\t}\n\t},\n\n\tproto: {\n\t\tinitIframe: function() {\n\t\t\tmfp.types.push(IFRAME_NS);\n\n\t\t\t_mfpOn('BeforeChange', function(e, prevType, newType) {\n\t\t\t\tif(prevType !== newType) {\n\t\t\t\t\tif(prevType === IFRAME_NS) {\n\t\t\t\t\t\t_fixIframeBugs(); // iframe if removed\n\t\t\t\t\t} else if(newType === IFRAME_NS) {\n\t\t\t\t\t\t_fixIframeBugs(true); // iframe is showing\n\t\t\t\t\t}\n\t\t\t\t}// else {\n\t\t\t\t\t// iframe source is switched, don't do anything\n\t\t\t\t//}\n\t\t\t});\n\n\t\t\t_mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() {\n\t\t\t\t_fixIframeBugs();\n\t\t\t});\n\t\t},\n\n\t\tgetIframe: function(item, template) {\n\t\t\tvar embedSrc = item.src;\n\t\t\tvar iframeSt = mfp.st.iframe;\n\n\t\t\t$.each(iframeSt.patterns, function() {\n\t\t\t\tif(embedSrc.indexOf( this.index ) > -1) {\n\t\t\t\t\tif(this.id) {\n\t\t\t\t\t\tif(typeof this.id === 'string') {\n\t\t\t\t\t\t\tembedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tembedSrc = this.id.call( this, embedSrc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tembedSrc = this.src.replace('%id%', embedSrc );\n\t\t\t\t\treturn false; // break;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tvar dataObj = {};\n\t\t\tif(iframeSt.srcAction) {\n\t\t\t\tdataObj[iframeSt.srcAction] = embedSrc;\n\t\t\t}\n\t\t\tmfp._parseMarkup(template, dataObj, item);\n\n\t\t\tmfp.updateStatus('ready');\n\n\t\t\treturn template;\n\t\t}\n\t}\n});\n\n\n\n/*>>iframe*/\n\n/*>>gallery*/\n/**\n * Get looped index depending on number of slides\n */\nvar _getLoopedId = function(index) {\n\t\tvar numSlides = mfp.items.length;\n\t\tif(index > numSlides - 1) {\n\t\t\treturn index - numSlides;\n\t\t} else if(index < 0) {\n\t\t\treturn numSlides + index;\n\t\t}\n\t\treturn index;\n\t},\n\t_replaceCurrTotal = function(text, curr, total) {\n\t\treturn text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);\n\t};\n\n$.magnificPopup.registerModule('gallery', {\n\n\toptions: {\n\t\tenabled: false,\n\t\tarrowMarkup: '',\n\t\tpreload: [0,2],\n\t\tnavigateByImgClick: true,\n\t\tarrows: true,\n\n\t\ttPrev: 'Previous (Left arrow key)',\n\t\ttNext: 'Next (Right arrow key)',\n\t\ttCounter: '%curr% of %total%'\n\t},\n\n\tproto: {\n\t\tinitGallery: function() {\n\n\t\t\tvar gSt = mfp.st.gallery,\n\t\t\t\tns = '.mfp-gallery';\n\n\t\t\tmfp.direction = true; // true - next, false - prev\n\n\t\t\tif(!gSt || !gSt.enabled ) return false;\n\n\t\t\t_wrapClasses += ' mfp-gallery';\n\n\t\t\t_mfpOn(OPEN_EVENT+ns, function() {\n\n\t\t\t\tif(gSt.navigateByImgClick) {\n\t\t\t\t\tmfp.wrap.on('click'+ns, '.mfp-img', function() {\n\t\t\t\t\t\tif(mfp.items.length > 1) {\n\t\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t_document.on('keydown'+ns, function(e) {\n\t\t\t\t\tif (e.keyCode === 37) {\n\t\t\t\t\t\tmfp.prev();\n\t\t\t\t\t} else if (e.keyCode === 39) {\n\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t_mfpOn('UpdateStatus'+ns, function(e, data) {\n\t\t\t\tif(data.text) {\n\t\t\t\t\tdata.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) {\n\t\t\t\tvar l = mfp.items.length;\n\t\t\t\tvalues.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';\n\t\t\t});\n\n\t\t\t_mfpOn('BuildControls' + ns, function() {\n\t\t\t\tif(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {\n\t\t\t\t\tvar markup = gSt.arrowMarkup,\n\t\t\t\t\t\tarrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),\n\t\t\t\t\t\tarrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS);\n\n\t\t\t\t\tarrowLeft.click(function() {\n\t\t\t\t\t\tmfp.prev();\n\t\t\t\t\t});\n\t\t\t\t\tarrowRight.click(function() {\n\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t});\n\n\t\t\t\t\tmfp.container.append(arrowLeft.add(arrowRight));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_mfpOn(CHANGE_EVENT+ns, function() {\n\t\t\t\tif(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);\n\n\t\t\t\tmfp._preloadTimeout = setTimeout(function() {\n\t\t\t\t\tmfp.preloadNearbyImages();\n\t\t\t\t\tmfp._preloadTimeout = null;\n\t\t\t\t}, 16);\n\t\t\t});\n\n\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\n\t\t\t\t_document.off(ns);\n\t\t\t\tmfp.wrap.off('click'+ns);\n\t\t\t\tmfp.arrowRight = mfp.arrowLeft = null;\n\t\t\t});\n\n\t\t},\n\t\tnext: function() {\n\t\t\tmfp.direction = true;\n\t\t\tmfp.index = _getLoopedId(mfp.index + 1);\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tprev: function() {\n\t\t\tmfp.direction = false;\n\t\t\tmfp.index = _getLoopedId(mfp.index - 1);\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tgoTo: function(newIndex) {\n\t\t\tmfp.direction = (newIndex >= mfp.index);\n\t\t\tmfp.index = newIndex;\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tpreloadNearbyImages: function() {\n\t\t\tvar p = mfp.st.gallery.preload,\n\t\t\t\tpreloadBefore = Math.min(p[0], mfp.items.length),\n\t\t\t\tpreloadAfter = Math.min(p[1], mfp.items.length),\n\t\t\t\ti;\n\n\t\t\tfor(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {\n\t\t\t\tmfp._preloadItem(mfp.index+i);\n\t\t\t}\n\t\t\tfor(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {\n\t\t\t\tmfp._preloadItem(mfp.index-i);\n\t\t\t}\n\t\t},\n\t\t_preloadItem: function(index) {\n\t\t\tindex = _getLoopedId(index);\n\n\t\t\tif(mfp.items[index].preloaded) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar item = mfp.items[index];\n\t\t\tif(!item.parsed) {\n\t\t\t\titem = mfp.parseEl( index );\n\t\t\t}\n\n\t\t\t_mfpTrigger('LazyLoad', item);\n\n\t\t\tif(item.type === 'image') {\n\t\t\t\titem.img = $('').on('load.mfploader', function() {\n\t\t\t\t\titem.hasSize = true;\n\t\t\t\t}).on('error.mfploader', function() {\n\t\t\t\t\titem.hasSize = true;\n\t\t\t\t\titem.loadError = true;\n\t\t\t\t\t_mfpTrigger('LazyLoadError', item);\n\t\t\t\t}).attr('src', item.src);\n\t\t\t}\n\n\n\t\t\titem.preloaded = true;\n\t\t}\n\t}\n});\n\n/*>>gallery*/\n\n/*>>retina*/\n\nvar RETINA_NS = 'retina';\n\n$.magnificPopup.registerModule(RETINA_NS, {\n\toptions: {\n\t\treplaceSrc: function(item) {\n\t\t\treturn item.src.replace(/\\.\\w+$/, function(m) { return '@2x' + m; });\n\t\t},\n\t\tratio: 1 // Function or number. Set to 1 to disable.\n\t},\n\tproto: {\n\t\tinitRetina: function() {\n\t\t\tif(window.devicePixelRatio > 1) {\n\n\t\t\t\tvar st = mfp.st.retina,\n\t\t\t\t\tratio = st.ratio;\n\n\t\t\t\tratio = !isNaN(ratio) ? ratio : ratio();\n\n\t\t\t\tif(ratio > 1) {\n\t\t\t\t\t_mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) {\n\t\t\t\t\t\titem.img.css({\n\t\t\t\t\t\t\t'max-width': item.img[0].naturalWidth / ratio,\n\t\t\t\t\t\t\t'width': '100%'\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\t_mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) {\n\t\t\t\t\t\titem.src = st.replaceSrc(item, ratio);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n});\n\n/*>>retina*/\n _checkInstance(); }));","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import { getWindow, getDocument } from 'ssr-window';\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowEl && slideEl.shadowEl.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction findElementsInElements(elements = [], selector = '') {\n const found = [];\n elements.forEach(el => {\n found.push(...el.querySelectorAll(selector));\n });\n return found;\n}\nfunction elementChildren(element, selector = '') {\n return [...element.children].filter(el => el.matches(selector));\n}\nfunction createElement(tag, classes = []) {\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : [classes]));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty, getSlideTransformEl,\n// dom\nfindElementsInElements, createElement, elementChildren, elementOffset, elementPrevAll, elementNextAll, elementStyle, elementIndex, elementParents, elementTransitionEnd, elementOuterSize };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n return {\n isSafari: needPerspectiveFix || isSafari(),\n needPerspectiveFix,\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\nexport { getBrowser };","/* eslint-disable no-underscore-dangle */\n\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit(...args) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","export const processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n const lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nexport const preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex !== activeIndex && realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(slideIndexLastInView - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && i > slideIndexLastInView) unlazy(swiper, i);\n }\n }\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","import { elementStyle } from '../../shared/utils.js';\nexport default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { elementChildren, elementOuterSize, elementStyle, setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}","export default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}","export default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass);\n });\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides[i].classList.add(params.slideVisibleClass);\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}","export default function updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}","import { elementChildren, elementNextAll, elementPrevAll } from '../../shared/utils.js';\nexport default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n });\n let activeSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n activeSlide = slides[activeIndex];\n }\n if (activeSlide) {\n // Active classes\n activeSlide.classList.add(params.slideActiveClass);\n\n // Next Slide\n let nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\n }\n swiper.emitSlidesClasses();\n}","import { preload } from '../../shared/process-lazy-preloader.js';\nexport function getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nexport default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n }\n return;\n }\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (swiper.slides[activeIndex]) {\n realIndex = parseInt(swiper.slides[activeIndex].getAttribute('data-swiper-slide-index') || activeIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","export default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = e.closest(`.${params.slideClass}, swiper-slide`);\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled) return swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import { elementChildren, nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import { getWindow, getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.js';\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n data.evCache.push(event);\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = event.composedPath ? event.composedPath() : event.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) data.evCache[pointerIndex] = e;\n const targetTouch = data.evCache.length > 1 ? data.evCache[0] : e;\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n prevX: swiper.touches.currentX,\n prevY: swiper.touches.currentY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || swiper.zoom && swiper.params.zoom && swiper.params.zoom.enabled && data.evCache.length > 1) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n if (!data.isMoved) {\n if (isLoop) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n if (data.isMoved && prevTouchesDirection !== swiper.touchesDirection && isLoop && Math.abs(diff) >= 1) {\n // need another loop fix\n swiper.loopFix({\n direction: swiper.swipeDirection,\n setTranslate: true\n });\n loopFixed = true;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && !loopFixed && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.size / 2 : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && !loopFixed && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.size / 2 : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === event.pointerId);\n if (pointerIndex >= 0) {\n data.evCache.splice(pointerIndex, 1);\n }\n if (['pointercancel', 'pointerout', 'pointerleave'].includes(event.type)) {\n const proceed = event.type === 'pointercancel' && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { processLazyPreloader } from '../../shared/process-lazy-preloader.js';\nexport default function onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nimport onLoad from './onLoad.js';\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n\n // Touch Events\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n }\n swiper.emit('breakpoint', breakpointParams);\n}","export default {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopedSlides: null,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { extend, deleteProps, createElement, elementChildren, elementStyle, elementIndex } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nimport { processLazyPreloader, preload } from '../shared/process-lazy-preloader.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n evCache: []\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n const slides = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.shadowEl) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement ? el : wrapperEl,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n el.removeAttribute('style');\n wrapperEl.removeAttribute('style');\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.el.swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n }\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { elementChildren } from '../../shared/utils.js';\nexport default function loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}","export default function loopFix({\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n} = {}) {\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10));\n let loopedSlides = params.loopedSlides || slidesPerView;\n if (loopedSlides % params.slidesPerGroup !== 0) {\n loopedSlides += params.slidesPerGroup - loopedSlides % params.slidesPerGroup;\n }\n swiper.loopedSlides = loopedSlides;\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(swiper.slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n // prepend last slides before start\n if (activeSlideIndex < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeSlideIndex, params.slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeSlideIndex; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n prependSlidesIndexes.push(slides.length - index - 1);\n }\n } else if (activeSlideIndex /* + slidesPerView */ > swiper.slides.length - loopedSlides * 2) {\n slidesAppended = Math.max(activeSlideIndex - (swiper.slides.length - loopedSlides * 2), params.slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlidesIndexes.push(index);\n }\n }\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + slidesPrepended, 0, false, true);\n if (setTranslate) {\n swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n }\n }\n } else {\n if (setTranslate) {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n }\n }\n } else {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n slideTo: false,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix(loopParams);\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix(loopParams);\n }\n }\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}","export default function unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nexport default {\n checkOverflow\n};","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nimport { elementParents } from '../../../shared/utils.js';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.el);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.el, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { createElement, elementChildren } from './utils.js';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n const makeElementsArray = el => {\n if (!Array.isArray(el)) el = [el].filter(e => !!e);\n return el;\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.shadowRoot.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport { elementIndex, elementOuterSize, elementParents } from '../../shared/utils.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n const makeElementsArray = el => {\n if (!Array.isArray(el)) el = [el].filter(e => !!e);\n return el;\n };\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n const newSlideIndex = swiper.getSlideIndexByData(index);\n const currentSlideIndex = swiper.getSlideIndexByData(swiper.realIndex);\n if (newSlideIndex > swiper.slides.length - swiper.loopedSlides) {\n swiper.loopFix({\n direction: newSlideIndex > currentSlideIndex ? 'next' : 'prev',\n activeSlideIndex: newSlideIndex,\n slideTo: false\n });\n }\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.shadowRoot.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(params.clickableClass);\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n let {\n el\n } = swiper.pagination;\n if (!Array.isArray(el)) el = [el].filter(element => !!element);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}","import { elementChildren } from '../../shared/utils.js';\nexport default function Parallax({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n parallax: {\n enabled: false\n }\n });\n const setTransform = (el, progress) => {\n const {\n rtl\n } = swiper;\n const rtlFactor = rtl ? -1 : 1;\n const p = el.getAttribute('data-swiper-parallax') || '0';\n let x = el.getAttribute('data-swiper-parallax-x');\n let y = el.getAttribute('data-swiper-parallax-y');\n const scale = el.getAttribute('data-swiper-parallax-scale');\n const opacity = el.getAttribute('data-swiper-parallax-opacity');\n const rotate = el.getAttribute('data-swiper-parallax-rotate');\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n el.style.opacity = currentOpacity;\n }\n let transform = `translate3d(${x}, ${y}, 0px)`;\n if (typeof scale !== 'undefined' && scale !== null) {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n transform += ` scale(${currentScale})`;\n }\n if (rotate && typeof rotate !== 'undefined' && rotate !== null) {\n const currentRotate = rotate * progress * -1;\n transform += ` rotate(${currentRotate}deg)`;\n }\n el.style.transform = transform;\n };\n const setTranslate = () => {\n const {\n el,\n slides,\n progress,\n snapGrid\n } = swiper;\n elementChildren(el, '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').forEach(subEl => {\n setTransform(subEl, progress);\n });\n slides.forEach((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n slideEl.querySelectorAll('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale], [data-swiper-parallax-rotate]').forEach(subEl => {\n setTransform(subEl, slideProgress);\n });\n });\n };\n const setTransition = (duration = swiper.params.speed) => {\n const {\n el\n } = swiper;\n el.querySelectorAll('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').forEach(parallaxEl => {\n let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n parallaxEl.style.transitionDuration = `${parallaxDuration}ms`;\n });\n };\n on('beforeInit', () => {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', (_swiper, duration) => {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}","import classesToSelector from '../../shared/classes-to-selector.js';\nimport { createElement, elementIndex } from '../../shared/utils.js';\nexport default function A11y({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group',\n id: null\n }\n });\n swiper.a11y = {\n clicked: false\n };\n let liveRegion = null;\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.innerHTML = '';\n notification.innerHTML = message;\n }\n const makeElementsArray = el => {\n if (!Array.isArray(el)) el = [el].filter(e => !!e);\n return el;\n };\n function getRandomNumber(size = 16) {\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n function makeElFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '0');\n });\n }\n function makeElNotFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '-1');\n });\n }\n function addElRole(el, role) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('role', role);\n });\n }\n function addElRoleDescription(el, description) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-roledescription', description);\n });\n }\n function addElControls(el, controls) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-controls', controls);\n });\n }\n function addElLabel(el, label) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-label', label);\n });\n }\n function addElId(el, id) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('id', id);\n });\n }\n function addElLive(el, live) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-live', live);\n });\n }\n function disableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', true);\n });\n }\n function enableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', false);\n });\n }\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const targetEl = e.target;\n if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {\n if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return;\n }\n if (swiper.navigation && swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))) {\n targetEl.click();\n }\n }\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (prevEl) {\n if (swiper.isBeginning) {\n disableEl(prevEl);\n makeElNotFocusable(prevEl);\n } else {\n enableEl(prevEl);\n makeElFocusable(prevEl);\n }\n }\n if (nextEl) {\n if (swiper.isEnd) {\n disableEl(nextEl);\n makeElNotFocusable(nextEl);\n } else {\n enableEl(nextEl);\n makeElFocusable(nextEl);\n }\n }\n }\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.forEach(bulletEl => {\n if (swiper.params.pagination.clickable) {\n makeElFocusable(bulletEl);\n if (!swiper.params.pagination.renderBullet) {\n addElRole(bulletEl, 'button');\n addElLabel(bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, elementIndex(bulletEl) + 1));\n }\n }\n if (bulletEl.matches(classesToSelector(swiper.params.pagination.bulletActiveClass))) {\n bulletEl.setAttribute('aria-current', 'true');\n } else {\n bulletEl.removeAttribute('aria-current');\n }\n });\n }\n const initNavEl = (el, wrapperId, message) => {\n makeElFocusable(el);\n if (el.tagName !== 'BUTTON') {\n addElRole(el, 'button');\n el.addEventListener('keydown', onEnterOrSpaceKey);\n }\n addElLabel(el, message);\n addElControls(el, wrapperId);\n };\n const handlePointerDown = () => {\n swiper.a11y.clicked = true;\n };\n const handlePointerUp = () => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (!swiper.destroyed) {\n swiper.a11y.clicked = false;\n }\n });\n });\n };\n const handleFocus = e => {\n if (swiper.a11y.clicked) return;\n const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;\n if (swiper.isHorizontal()) {\n swiper.el.scrollLeft = 0;\n } else {\n swiper.el.scrollTop = 0;\n }\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n };\n const initSlides = () => {\n const params = swiper.params.a11y;\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);\n }\n if (params.slideRole) {\n addElRole(swiper.slides, params.slideRole);\n }\n const slidesLength = swiper.slides.length;\n if (params.slideLabelMessage) {\n swiper.slides.forEach((slideEl, index) => {\n const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel(slideEl, ariaLabelMessage);\n });\n }\n };\n const init = () => {\n const params = swiper.params.a11y;\n if (swiper.isElement) {\n swiper.el.shadowEl.append(liveRegion);\n } else {\n swiper.el.append(liveRegion);\n }\n\n // Container\n const containerEl = swiper.el;\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);\n }\n if (params.containerMessage) {\n addElLabel(containerEl, params.containerMessage);\n }\n\n // Wrapper\n const wrapperEl = swiper.wrapperEl;\n const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId(wrapperEl, wrapperId);\n addElLive(wrapperEl, live);\n\n // Slide\n initSlides();\n\n // Navigation\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));\n }\n if (prevEl) {\n prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = Array.isArray(swiper.pagination.el) ? swiper.pagination.el : [swiper.pagination.el];\n paginationEl.forEach(el => {\n el.addEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n\n // Tab focus\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('pointerdown', handlePointerDown, true);\n swiper.el.addEventListener('pointerup', handlePointerUp, true);\n };\n function destroy() {\n if (liveRegion) liveRegion.remove();\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n if (prevEl) {\n prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = Array.isArray(swiper.pagination.el) ? swiper.pagination.el : [swiper.pagination.el];\n paginationEl.forEach(el => {\n el.removeEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n\n // Tab focus\n swiper.el.removeEventListener('focus', handleFocus, true);\n swiper.el.removeEventListener('pointerdown', handlePointerDown, true);\n swiper.el.removeEventListener('pointerup', handlePointerUp, true);\n }\n on('beforeInit', () => {\n liveRegion = createElement('span', swiper.params.a11y.notificationClass);\n liveRegion.setAttribute('aria-live', 'assertive');\n liveRegion.setAttribute('aria-atomic', 'true');\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\n if (!swiper.params.a11y.enabled) return;\n initSlides();\n });\n on('fromEdge toEdge afterInit lock unlock', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}","import { getSlideTransformEl } from './utils.js';\nexport default function effectTarget(effectParams, slideEl) {\n const transformEl = getSlideTransformEl(slideEl);\n if (transformEl !== slideEl) {\n transformEl.style.backfaceVisibility = 'hidden';\n transformEl.style['-webkit-backface-visibility'] = 'hidden';\n }\n return transformEl;\n}","import effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nimport { getSlideTransformEl } from '../../shared/utils.js';\nexport default function EffectFade({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n fadeEffect: {\n crossFade: false\n }\n });\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = swiper.slides[i];\n const offset = slideEl.swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.opacity = slideOpacity;\n targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","export default function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective,\n recreateShadows,\n getEffectParams\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n on('transitionEnd', () => {\n if (swiper.params.effect !== effect) return;\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return;\n // remove shadows\n swiper.slides.forEach(slideEl => {\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());\n });\n // create new one\n recreateShadows();\n }\n });\n let requireUpdateOnVirtual;\n on('virtualUpdate', () => {\n if (swiper.params.effect !== effect) return;\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}","import { elementTransitionEnd } from './utils.js';\nexport default function effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides\n}) {\n const {\n activeIndex\n } = swiper;\n const getSlide = el => {\n if (!el.parentElement) {\n // assume shadow root\n const slide = swiper.slides.filter(slideEl => slideEl.shadowEl && slideEl.shadowEl === el.parentNode)[0];\n return slide;\n }\n return el.parentElement;\n };\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let transitionEndTarget;\n if (allSlides) {\n transitionEndTarget = transformElements;\n } else {\n transitionEndTarget = transformElements.filter(transformEl => {\n const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;\n return swiper.getSlideIndex(el) === activeIndex;\n });\n }\n transitionEndTarget.forEach(el => {\n elementTransitionEnd(el, () => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n });\n });\n }\n}","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)\n * are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,\n * as-is, to `callback` when the throttled-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds\n * while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed\n * one final time after the last throttled-function call. (After the throttled-function has not been called for\n * `delay` milliseconds, the internal counter is reset).\n * @param {boolean} [options.noLeading] - Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback\n * immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that\n * callback will never executed if both noLeading = true and noTrailing = true.\n * @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is\n * false (at end), schedule `callback` to execute after `delay` ms.\n *\n * @returns {Function} A new, throttled, function.\n */\nfunction throttle (delay, callback, options) {\n var _ref = options || {},\n _ref$noTrailing = _ref.noTrailing,\n noTrailing = _ref$noTrailing === void 0 ? false : _ref$noTrailing,\n _ref$noLeading = _ref.noLeading,\n noLeading = _ref$noLeading === void 0 ? false : _ref$noLeading,\n _ref$debounceMode = _ref.debounceMode,\n debounceMode = _ref$debounceMode === void 0 ? undefined : _ref$debounceMode;\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n\n\n var timeoutID;\n var cancelled = false; // Keep track of the last time `callback` was executed.\n\n var lastExec = 0; // Function to clear existing timeout\n\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n } // Function to cancel next exec\n\n\n function cancel(options) {\n var _ref2 = options || {},\n _ref2$upcomingOnly = _ref2.upcomingOnly,\n upcomingOnly = _ref2$upcomingOnly === void 0 ? false : _ref2$upcomingOnly;\n\n clearExistingTimeout();\n cancelled = !upcomingOnly;\n }\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n\n\n function wrapper() {\n for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {\n arguments_[_key] = arguments[_key];\n }\n\n var self = this;\n var elapsed = Date.now() - lastExec;\n\n if (cancelled) {\n return;\n } // Execute `callback` and update the `lastExec` timestamp.\n\n\n function exec() {\n lastExec = Date.now();\n callback.apply(self, arguments_);\n }\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n\n\n function clear() {\n timeoutID = undefined;\n }\n\n if (!noLeading && debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`\n * and noLeading != true.\n */\n exec();\n }\n\n clearExistingTimeout();\n\n if (debounceMode === undefined && elapsed > delay) {\n if (noLeading) {\n /*\n * In throttle mode with noLeading, if `delay` time has\n * been exceeded, update `lastExec` and schedule `callback`\n * to execute after `delay` ms.\n */\n lastExec = Date.now();\n\n if (!noTrailing) {\n timeoutID = setTimeout(debounceMode ? clear : exec, delay);\n }\n } else {\n /*\n * In throttle mode without noLeading, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n }\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n\n wrapper.cancel = cancel; // Return the wrapper function.\n\n return wrapper;\n}\n\n/* eslint-disable no-undefined */\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n *\n * @returns {Function} A new, debounced function.\n */\n\nfunction debounce (delay, callback, options) {\n var _ref = options || {},\n _ref$atBegin = _ref.atBegin,\n atBegin = _ref$atBegin === void 0 ? false : _ref$atBegin;\n\n return throttle(delay, callback, {\n debounceMode: atBegin !== false\n });\n}\n\nexport { debounce, throttle };\n//# sourceMappingURL=index.js.map\n"],"names":["$","fn","fitVids","options","settings","customSelector","ignore","document","getElementById","head","getElementsByTagName","div","createElement","innerHTML","appendChild","childNodes","extend","this","each","selectors","push","ignoreList","$allVideos","find","join","not","$this","parents","length","tagName","toLowerCase","parent","css","isNaN","attr","aspectRatio","parseInt","height","width","videoName","_count","wrap","removeAttr","window","jQuery","Zepto","mfp","_prevStatus","_document","_prevContentType","_wrapClasses","_currPopupType","CLOSE_EVENT","BEFORE_CLOSE_EVENT","MARKUP_PARSE_EVENT","OPEN_EVENT","CHANGE_EVENT","NS","EVENT_NS","READY_CLASS","REMOVING_CLASS","PREVENT_CLOSE_CLASS","MagnificPopup","_isJQ","_window","_mfpOn","name","f","ev","on","_getEl","className","appendTo","html","raw","el","_mfpTrigger","e","data","triggerHandler","st","callbacks","charAt","slice","apply","isArray","_getCloseBtn","type","currTemplate","closeBtn","closeMarkup","replace","tClose","_checkInstance","magnificPopup","instance","init","prototype","constructor","appVersion","navigator","isLowIE","isIE8","all","addEventListener","isAndroid","test","isIOS","supportsTransition","s","style","v","undefined","pop","supportsTransitions","probablyMobile","userAgent","popupsCache","open","i","isObj","items","toArray","index","item","parsed","isOpen","types","mainEl","eq","key","defaults","fixedContentPos","modal","closeOnContentClick","closeOnBgClick","showCloseBtn","enableEscapeKey","bgOverlay","close","_checkIfClose","target","container","contentContainer","preloader","tLoading","modules","n","toUpperCase","call","closeBtnInside","template","values","close_replaceWith","append","alignTop","overflow","overflowY","overflowX","top","scrollTop","position","fixedBgPos","keyCode","updateSize","addClass","windowHeight","wH","windowStyles","_hasScrollBar","_getScrollbarSize","marginRight","isIE7","classesToadd","mainClass","_addClassToMFP","updateItemHTML","add","prependTo","body","_lastFocusedEl","activeElement","setTimeout","content","_setFocus","_onFocusIn","removalDelay","_close","classesToRemove","detach","empty","_removeClassFromMFP","off","currItem","autoFocusLast","focus","prevHeight","winHeight","zoomLevel","documentElement","clientWidth","innerWidth","innerHeight","parseEl","markup","removeClass","newContent","appendContent","preloaded","prepend","src","hasClass","addGroup","eHandler","mfpEl","_openClick","eName","delegate","midClick","which","ctrlKey","metaKey","altKey","shiftKey","disableOn","isFunction","preventDefault","stopPropagation","updateStatus","status","text","stopImmediatePropagation","closeOnContent","closeOnBg","contains","cName","scrollHeight","_parseMarkup","arr","value","split","replaceWith","is","scrollbarSize","scrollDiv","cssText","offsetWidth","removeChild","proto","registerModule","module","jqEl","itemOpts","arguments","Array","_hiddenClass","_inlinePlaceholder","_lastInlineElement","INLINE_NS","_putInlineElementsBack","after","hiddenClass","tNotFound","initInline","getInline","inlineSt","inline","parentNode","inlineElement","_ajaxCur","AJAX_NS","_removeAjaxCursor","_destroyAjaxRequest","req","abort","cursor","tError","initAjax","ajax","getAjax","opts","url","success","textStatus","jqXHR","temp","xhr","finished","error","loadError","_imgInterval","_getTitle","title","image","titleSrc","verticalFit","initImage","imgSt","ns","resizeImage","img","decr","_onImageHasSize","hasSize","clearInterval","isCheckingImgSize","imgHidden","findImageSize","counter","mfpSetInterval","delay","setInterval","naturalWidth","getImage","guard","onLoadComplete","complete","loaded","onLoadError","alt","clone","img_replaceWith","loading","hasMozTransform","enabled","easing","duration","opener","element","initZoom","zoomSt","zoom","openTimeout","animatedImg","getElToAnimate","newImg","transition","cssObj","zIndex","left","t","showMainContent","_allowZoom","clearTimeout","_getItemToZoom","_getOffset","remove","isLarge","offset","paddingTop","paddingBottom","obj","offsetHeight","MozTransform","IFRAME_NS","_fixIframeBugs","isShowing","srcAction","patterns","youtube","id","vimeo","gmaps","initIframe","prevType","newType","getIframe","embedSrc","iframeSt","iframe","indexOf","substr","lastIndexOf","dataObj","_getLoopedId","numSlides","_replaceCurrTotal","curr","total","arrowMarkup","preload","navigateByImgClick","arrows","tPrev","tNext","tCounter","initGallery","gSt","gallery","direction","next","prev","l","arrowLeft","arrowRight","click","_preloadTimeout","preloadNearbyImages","goTo","newIndex","p","preloadBefore","Math","min","preloadAfter","_preloadItem","RETINA_NS","replaceSrc","m","ratio","initRetina","devicePixelRatio","retina","Object","keys","forEach","ssrDocument","removeEventListener","blur","nodeName","querySelector","querySelectorAll","createEvent","initEvent","children","setAttribute","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","doc","ssrWindow","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","win","now","o","toString","args","to","noExtend","nextSource","node","HTMLElement","nodeType","keysArray","filter","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","side","startPosition","translate","time","startTime","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","progress","max","easeProgress","cos","PI","currentPosition","scrollTo","slideEl","shadowEl","selector","matches","tag","classes","classList","elementStyle","prop","elementIndex","child","previousSibling","parentElement","elementOuterSize","size","includeMargins","parseFloat","support","deviceCached","browser","getSupport","smoothScroll","touch","DocumentTouch","calcSupport","events","handler","priority","self","eventsListeners","destroyed","method","event","once","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","splice","eventHandler","emit","context","unshift","processLazyPreloader","imageEl","closest","isElement","slideClass","lazyEl","lazyPreloaderClass","unlazy","slides","removeAttribute","amount","lazyPreloadPrevNext","slidesPerView","slidesPerViewDynamic","ceil","activeIndex","slideIndexLastInView","rewind","realIndex","clientHeight","isHorizontal","isVertical","Number","assign","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","label","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","previousSlidesLength","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","grid","rows","slideSize","initSlides","shouldResetSlideSize","breakpoints","slide","updateSlide","slideStyles","currentTransform","transform","currentWebKitTransform","webkitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","loop","groups","slidesBefore","slidesAfter","groupSize","_","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","map","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","activeSlide","slideActiveClass","slideNextClass","slidePrevClass","nextSlide","nextEls","nextElementSibling","elementNextAll","prevSlide","prevEls","previousElementSibling","elementPrevAll","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","getAttribute","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","transitionEmit","runCallbacks","step","slideTo","internal","initial","animating","preventInteractionOnTransition","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","setTranslate","transitionStart","transitionEnd","isH","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","behavior","onSlideToWrapperTransitionEnd","slideToLoop","slideNext","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","loopFix","_clientLeft","clientLeft","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","slideSelector","loopedSlides","getSlideIndex","onTouchStart","touchEventsData","evCache","touches","simulateTouch","pointerType","originalEvent","targetEl","touchEventsTarget","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","path","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","found","getRootNode","closestElement","allowClick","swipeHandler","currentX","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","pointerIndex","findIndex","cachedEv","pointerId","targetTouch","preventedByNestedSwiper","prevX","prevY","touchReleaseOnEdges","targetTouches","diffX","diffY","sqrt","touchAngle","atan2","cancelable","touchMoveStopPropagation","nested","diff","touchesDiff","previousX","previousY","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","startTranslate","getTranslate","evt","bubbles","dispatchEvent","allowMomentumBounce","grabCursor","setGrabCursor","loopFixed","currentTranslate","disableParentSwiper","resistanceRatio","activeSlideIndex","resistance","followFinger","onTouchEnd","includes","isSafari","isWebView","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","stopIndex","rewindFirstIndex","rewindLastIndex","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","resizeTimeout","resume","onClick","preventClicks","preventClicksPropagation","onScroll","newProgress","previousTranslate","scrollLeft","onLoad","update","dummyEventAttached","dummyEventListener","device","capture","domMethod","swiperMethod","passive","updateOnWindowResize","ios","android","isGridEnabled","resizeObserver","createElements","virtualTranslate","breakpointsBase","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","a","OTransform","MsTransform","msTransform","m41","m42","byController","x","y","translateTo","translateBounds","newTranslate","onTranslateToWrapperTransitionEnd","transitionDuration","loopCreate","slideRealIndex","byMousewheel","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","swiperLoopMoveDOM","recalcSlides","currentSlideTranslate","controller","control","loopParams","c","loopDestroy","newSlidesOrder","swiperSlideIndex","moving","isLocked","__preventObserver__","unsetGrabCursor","attachEvents","bind","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","points","point","minRatio","sort","b","wasLocked","lastSlideRightEdge","addClasses","classNames","suffixes","entries","prefix","resultClasses","prepareClasses","removeClasses","extendedDefaults","Swiper","swipers","newParams","overrides","platform","ua","screenWidth","screenHeight","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getDevice","needPerspectiveFix","String","major","minor","num","calcBrowser","__modules__","mod","extendParams","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","setProgress","cls","getSlideClasses","updates","view","exact","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","getWrapperSelector","trim","destroy","deleteInstance","cleanStyles","object","deleteProps","static","newDefaults","installModule","prototypeGroup","protoMethod","use","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","checkProps","Navigation","hideOnClick","disabledClass","lockClass","navigationDisabledClass","makeElementsArray","getEl","res","toggleEl","disabled","subEl","onPrevClick","onNextClick","initButton","destroyButton","_s","pagination","clickable","isHidden","toggle","classesToSelector","Pagination","pfx","bulletSize","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","onBulletClick","newSlideIndex","currentSlideIndex","firstIndex","midIndex","suffix","flat","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","fractionEl","textContent","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","render","paginationHTML","numberOfBullets","Parallax","parallax","setTransform","rtlFactor","opacity","rotate","currentOpacity","_swiper","parallaxEl","parallaxDuration","A11y","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","clicked","liveRegion","notify","message","notification","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElLabel","disableEl","enableEl","onEnterOrSpaceKey","hasPagination","hasClickablePagination","initNavEl","wrapperId","controls","addElControls","handlePointerDown","handlePointerUp","handleFocus","isActive","isVisible","sourceCapabilities","firesTouchEvents","repeat","round","random","getRandomNumber","live","addElLive","updateNavigation","updatePagination","effectParams","transformEl","backfaceVisibility","EffectFade","fadeEffect","crossFade","overwriteParams","perspective","recreateShadows","getEffectParams","requireUpdateOnVirtual","overwriteParamsResult","slideShadows","tx","ty","slideOpacity","transformElements","allSlides","transitionEndTarget","eventTriggered","getSlide","fireCallBack","debounce","_ref$atBegin","atBegin","timeoutID","_ref","_ref$noTrailing","noTrailing","_ref$noLeading","noLeading","_ref$debounceMode","debounceMode","cancelled","lastExec","clearExistingTimeout","wrapper","_len","arguments_","_key","elapsed","exec","clear","cancel","_ref2$upcomingOnly","upcomingOnly","throttle"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/assets.json b/dist/assets.json new file mode 100644 index 0000000..3b1da14 --- /dev/null +++ b/dist/assets.json @@ -0,0 +1 @@ +{"388.9557b9f6869a693261d8.js":{"dependencies":[],"version":"7e71eccf0dc66ad47371"},"common.07c672c5fbadf7b78d2a.js":{"dependencies":["jquery"],"version":"dd232014ac60701cd53b"}} \ No newline at end of file diff --git a/dist/common.07c672c5fbadf7b78d2a.js b/dist/common.07c672c5fbadf7b78d2a.js new file mode 100644 index 0000000..4f8325f --- /dev/null +++ b/dist/common.07c672c5fbadf7b78d2a.js @@ -0,0 +1,2 @@ +(()=>{"use strict";var e,n={977:(e,n,t)=>{t(233),t(729);var s=t(554);s.ZP.use([s.W_,s.tl,s.xW,s.VS,s.s5]),jQuery,new s.ZP(".js-home-slideshow",{effect:"fade",loop:!0,parallax:!0,autoplay:{delay:7e3,disableOnInteraction:!1},navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},pagination:{el:".swiper-pagination",type:"bullets",hideOnclick:!1,clickable:!0}}),new s.ZP(".js-testimonial-slideshow",{loop:!0,pagination:{el:".swiper-pagination",type:"bullets",hideOnclick:!1,clickable:!0}}),document.querySelectorAll(".gallery").forEach((function(e,n){var t=e.querySelector(".js-gallery-slides"),a=e.querySelector(".js-gallery-thumbs"),o=new s.ZP(a,{spaceBetween:10,slidesPerView:"auto",loop:!1,freeMode:!0});new s.ZP(t,{loop:!1,fadeEffect:{crossFade:!0},effect:"fade",navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},thumbs:{swiper:o}})}));var a=t(856);const o=(i=jQuery,function(e){e=i.extend({},{wrapperSelector:".site-wrapper",menuButtonSelector:".menu-btn",menuOpenWrapperClass:"menu-open",activeClass:"active",dropdownSelector:"",navType:"offCanvas",debounceTime:150,closeOnOutsideClick:!1,showTabsOnFocus:!0},e);var n=i(this),t=i(e.wrapperSelector),s=i(e.menuButtonSelector),o=e.dropdownSelector?i(e.dropdownSelector):n;function r(){return s.hasClass(e.activeClass)}function l(){t.removeClass(e.menuOpenWrapperClass)}var c={dropdown:function(){o.slideUp()},offCanvas:l}[e.navType]||l;function u(){c(),s.removeClass(e.activeClass)}function p(){t.addClass(e.menuOpenWrapperClass)}var d={dropdown:function(){o.slideDown()},offCanvas:p}[e.navType]||p;e.showTabsOnFocus&&(i("nav.main-nav > ul > li.menu-item-has-children > a").on("focus",(function(){i(this).siblings("ul").addClass("tab-show")})).on("blur",(function(){i(this).siblings("ul").removeClass("tab-show")})),i("nav.main-nav > ul > li.menu-item-has-children > ul > li > a").on("focus",(function(){i(this).parent().parent("ul").addClass("tab-show")})).on("blur",(function(){i(this).parent().parent("ul").removeClass("tab-show")})));var v=function(){s.is(":visible")&&n.find("li.current_page_item, li.current_page_ancestor").each((function(){i(this).hasClass("toggle")||i(this).addClass("toggle"),i(this).children("ul").is(":visible")||i(this).children("ul").show()}))};return s.on("touchstart, click",(function(t){t.stopPropagation(),t.preventDefault(),r()?u():(d(),s.addClass(e.activeClass),e.closeOnOutsideClick&&i(e.wrapperSelector).on("touchstart, click",(function(e){n.is(e.target)||0!==n.has(e.target).length||u()})))})),n.find(".nav-expander").each((function(){i(this).on("touchstart, click",(function(e){e.stopPropagation(),e.preventDefault(),r()&&!i(this).parent().next().is(":visible")&&i(this).parent().next().length>0?(i(this).parent().parent().siblings().removeClass("toggle").children("ul").slideUp(250),i(this).parent().parent().addClass("toggle"),i(this).parent().next("ul").slideDown(250)):r()&&i(this).parent().next("ul").is(":visible")&&(i(this).parent().parent().removeClass("toggle"),i(this).parent().next("ul").slideUp(250))}))})),v(),i(window).on("resize",(0,a.D)(e.debounceTime,(function(){s.is(":visible")?v():(r()&&(s.removeClass(e.activeClass),t.removeClass(e.menuOpenWrapperClass),n.removeAttr("style")),n.find("ul").removeAttr("style"),n.find(".menu-item-has-children").removeClass("toggle"),n.removeAttr("style"))}))),this});var i;const r=function(e){return function(){var n=e("dl.accordion dt"),t=window.location.hash,s=window.location.hash.replace("#",""),a=function(e,n,t){n.hasClass("active")&&t.is(":visible")?(t.slideUp(),n.removeClass("active").addClass("inactive")):(t.slideDown(),n.addClass("active").removeClass("inactive"),window.location.hash=e)};if(n.find("a").on("click",(function(n){n.preventDefault();var t=e(this).attr("href"),s=e(this).closest("dt"),o=s.next();a(t,s,o)})),t&&e('dl.accordion dt[data-id="'+s+'"]').length>0){var o=e('dl.accordion dt[data-id="'+s+'"]'),i=o.next(),r=o.offset().top;a(t,o,i),e(document).scrollTop(r)}}}(jQuery);!function(e){e.fn.responsiveNav=o,e.fn.accordion=r;var n=document.querySelector("html");n.classList.remove("no-js"),n.classList.add("js"),e("nav.main-nav").responsiveNav({navType:"offCanvas",closeOnOutsideClick:!0}),e("nav.subnav").responsiveNav({navType:"dropdown",menuButtonSelector:".subnav__mobile-toggle",dropdownSelector:".subnav__menu"}),e(".rtecontent").fitVids(),e("dl.accordion").accordion(),e("#categoryFilter").on("change",(function(){var n=e(this).val();window.location=n})),e(".js-open-search").magnificPopup({type:"inline",alignTop:!0,modal:!0,midClick:!0,mainClass:"mfp-fade",focus:"#s",callbacks:{beforeOpen:function(){e(window).width()<700?this.st.focus=!1:this.st.focus="#s"}}}),e(document).on("click",".js-close-popup",(function(n){n.preventDefault(),e.magnificPopup.close()}))}(jQuery)},567:e=>{e.exports=window.jQuery}},t={};function s(e){var a=t[e];if(void 0!==a)return a.exports;var o=t[e]={exports:{}};return n[e](o,o.exports,s),o.exports}s.m=n,e=[],s.O=(n,t,a,o)=>{if(!t){var i=1/0;for(u=0;u=o)&&Object.keys(s.O).every((e=>s.O[e](t[l])))?t.splice(l--,1):(r=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[t,a,o]},s.d=(e,n)=>{for(var t in n)s.o(n,t)&&!s.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},s.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),(()=>{var e={592:0};s.O.j=n=>0===e[n];var n=(n,t)=>{var a,o,[i,r,l]=t,c=0;if(i.some((n=>0!==e[n]))){for(a in r)s.o(r,a)&&(s.m[a]=r[a]);if(l)var u=l(s)}for(n&&n(t);cs(977)));a=s.O(a)})(); +//# sourceMappingURL=common.07c672c5fbadf7b78d2a.js.map \ No newline at end of file diff --git a/dist/common.07c672c5fbadf7b78d2a.js.map b/dist/common.07c672c5fbadf7b78d2a.js.map new file mode 100644 index 0000000..71fc123 --- /dev/null +++ b/dist/common.07c672c5fbadf7b78d2a.js.map @@ -0,0 +1 @@ +{"version":3,"file":"common.07c672c5fbadf7b78d2a.js","mappings":"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","sources":["webpack:///webpack/runtime/chunk loaded","webpack:///./js/src/slideshows.js","webpack:///./js/src/responsive-nav.jquery.js","webpack:///./js/src/jquery.accordion.js","webpack:///./js/src/common.js","webpack:///external window \"jQuery\"","webpack:///webpack/bootstrap","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/jsonp chunk loading","webpack:///webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","/* globals jQuery */\n//https://swiperjs.com/\nimport Swiper, {Navigation, Pagination, EffectFade, Parallax, A11y,} from 'swiper';\n\nSwiper.use([Navigation,Pagination,EffectFade,Parallax,A11y]);\n\n(($) => {\n\n //MAIN HERO SLIDESHOW\n const mainSwiper = new Swiper('.js-home-slideshow', {\n effect: 'fade',\n loop: true,\n parallax: true,\n autoplay:{\n delay: 7000, //7 seconds per slide\n disableOnInteraction: false\n },\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev'\n },\n pagination: {\n el: '.swiper-pagination',\n type: 'bullets',\n hideOnclick: false,\n clickable: true\n }\n });\n\n //TESTIMONIAL SLIDESHOW\n\tconst testimonialSwiper = new Swiper('.js-testimonial-slideshow', {\n\t\tloop: true,\n\t\tpagination: {\n\t\t\tel: '.swiper-pagination',\n\t\t\ttype: 'bullets',\n\t\t\thideOnclick: false,\n\t\t\tclickable: true\n\t\t}\n });\n\n // //INTERIOR GALLERY w/ THUMBNAILS\n const galleries = document.querySelectorAll('.gallery');\n\n galleries.forEach((gallery, index) => {\n\n let slider = gallery.querySelector('.js-gallery-slides');\n let thumbs = gallery.querySelector('.js-gallery-thumbs');\n\n const galleryThumbs = new Swiper(thumbs, {\n spaceBetween: 10,\n slidesPerView: 'auto',\n loop: false,\n freeMode: true\n });\n\n const galleryTop = new Swiper(slider, {\n loop: false,\n fadeEffect: { crossFade: true },\n effect: 'fade',\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev',\n },\n thumbs: {\n swiper: galleryThumbs,\n },\n });\n\n });\n \n\n})(jQuery)","/* globals jQuery */\n\nimport { debounce } from 'throttle-debounce'\n\n/**\n * jQueryResponsiveNav module\n *\n * Usage:\n *\n * ```js\n * $.fn.responsiveNav = require('./responsive-nav.jquery.js')\n *\n * $('.my-nav-element').responsiveNav({\n * navType: 'offCanvas'\n * })\n * ```\n */\nexport default (($) => {\n\nreturn function jQueryResponsiveNav( options ) {\n\n options = $.extend({}, {\n wrapperSelector: '.site-wrapper',\n menuButtonSelector: '.menu-btn',\n menuOpenWrapperClass: 'menu-open',\n activeClass: 'active',\n dropdownSelector: '',\n navType: 'offCanvas',\n debounceTime: 150,\n closeOnOutsideClick: false,\n showTabsOnFocus: true,\n }, options)\n\n const $this = $(this),\n $wrapper = $( options.wrapperSelector ),\n $menuButton = $( options.menuButtonSelector )\n\n // target dropdown element, which may be distinct from $this\n const $dropdownElem = options.dropdownSelector ?\n $(options.dropdownSelector) :\n $this\n\n function _menuIsOpen() {\n //site wrapper has the menu-open class\n return $menuButton.hasClass( options.activeClass )\n }\n\n /*\n * CLOSE NAVIGATION SETUP\n */\n function _closeDropdownNav() {\n $dropdownElem.slideUp()\n }\n\n function _closeOffCanvasNav() {\n $wrapper.removeClass( options.menuOpenWrapperClass )\n }\n\n const closeNavStrategies = {\n dropdown: _closeDropdownNav,\n offCanvas: _closeOffCanvasNav,\n }\n\n //set what type of closeNav we want\n const closeNavStrategy = closeNavStrategies[options.navType] || _closeOffCanvasNav\n\n //THIS IS THE ACTUAL FUNCTION THAT GETS CALLED TO CLOSE THE NAV\n function closeNav() {\n closeNavStrategy()\n $menuButton.removeClass( options.activeClass )\n }\n\n /*\n * OPEN NAVIGATION SETUP\n */\n function _openDropdownNav() {\n $dropdownElem.slideDown()\n }\n\n function _openOffCanvasNav() {\n $wrapper.addClass( options.menuOpenWrapperClass )\n }\n\n const openNavStrategies = {\n dropdown: _openDropdownNav,\n offCanvas: _openOffCanvasNav,\n }\n //set what type of closeNav we want\n const openNavStrategy = openNavStrategies[options.navType] || _openOffCanvasNav\n\n //THIS IS THE ACTUAL FUNCTION THAT GETS CALLED TO OPEN THE NAV\n function openNav() {\n\n openNavStrategy();\n $menuButton.addClass( options.activeClass );\n\n if (options.closeOnOutsideClick) {\n // close the menu when the user clicks anywhere outside it\n $(options.wrapperSelector).on('touchstart, click', function _onOutsideClick(evt) {\n //if not nav container or a decendant of nav container\n if( !$this.is(evt.target) && $this.has(evt.target).length === 0 ) {\n closeNav();\n }\n });\n }\n }\n\n //KEYBOARD FUNCTIONALITY\n if( options.showTabsOnFocus ) {\n // Adding quick Tab Functionality for Navigation\n $('nav.main-nav > ul > li.menu-item-has-children > a').on('focus', function () {\n $(this).siblings('ul').addClass('tab-show');\n }).on('blur',function(){\n $(this).siblings('ul').removeClass('tab-show');\n });\n\n // focusing on sub menu item show its dropdown\n $('nav.main-nav > ul > li.menu-item-has-children > ul > li > a').on('focus', function () {\n $(this).parent().parent('ul').addClass('tab-show');\n }).on('blur',function(){\n $(this).parent().parent('ul').removeClass('tab-show');\n });\n }\n\n const sublevelNav = function() {\n\t\t$this.find('.nav-expander').each(function(){\n\t\t\t$(this).on('touchstart, click', function(event) {\n\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t//if menu is open and the subnav is not visible and subnav exists\n\t\t\t\tif ( _menuIsOpen() && !$(this).parent().next().is(':visible') && $(this).parent().next().length > 0) {\n\n\t\t\t\t\t//close what's already open at the same level\n\t\t\t\t\t//remove toggle class from the li and slide up its child ul\n\t\t\t\t\t$(this).parent().parent().siblings().removeClass('toggle').children('ul').slideUp(250);\n\n\t\t\t\t\t//expand current click\n\t\t\t\t\t$(this).parent().parent().addClass('toggle');\n\t\t\t\t\t$(this).parent().next('ul').slideDown(250);\n\n\t\t\t\t}\n\t\t\t\telse if ( _menuIsOpen() && $(this).parent().next('ul').is(':visible') ) {\n\t\t\t\t\t\t//close this item\n\t\t\t\t\t\t$(this).parent().parent().removeClass('toggle');\n\t\t\t\t\t\t$(this).parent().next('ul').slideUp(250);\n\t\t\t\t}\n\n\t\t\t}); //end bind\n\t\t});//end find span.dropper\n\t};//end sublevelNav\n\n const activeToggleFn = function(){\n //on mobile check for active navigation and set open accordingly\n if( $menuButton.is(':visible') ){\n\n $this.find('li.current_page_item, li.current_page_ancestor').each(function(){\n if( !$(this).hasClass('toggle') ){\n $(this).addClass('toggle');\n }\n if( !$(this).children('ul').is(':visible') ){\n $(this).children('ul').show();\n }\n });\n }\n } //end activeToggleFn\n\n\n $menuButton.on( 'touchstart, click', function(event) {\n\n event.stopPropagation();\n event.preventDefault();\n\n if ( _menuIsOpen() ) {\n closeNav();\n }\n else{\n openNav();\n }\n }) //end button on\n\n sublevelNav()\n activeToggleFn()\n\n $(window).on('resize', debounce(options.debounceTime, function() {\n\n if( !$menuButton.is(':visible') ) {\n //close mobile menu\n if ( _menuIsOpen() ) {\n //closeNav() - we dont want to run the function cause we dont want all transitions with the dropdown\n $menuButton.removeClass( options.activeClass );\n $wrapper.removeClass( options.menuOpenWrapperClass );\n $this.removeAttr('style');\n }\n //remove any inline styles from subnavigation\n $this.find( 'ul' ).removeAttr( 'style' )\n $this.find('.menu-item-has-children').removeClass('toggle')\n $this.removeAttr('style')\n }\n else{\n activeToggleFn()\n }\n\n }));\n\n return this;\n}\n\n})(jQuery)\n","/**\n * ## jQueryAccordion module Usage\n *\n * ### Markup:\n *
\n *

Tab Title

\n *
Panel Content
\n *

Tab Title

\n *
Panel Content
\n *
\n *\n * ### JS:\n * $.fn.accordion = require('./jquery.accordion.js');\n * $('dl.accordion').accordion();\n */\nexport default (($) => {\n\n return function() {\n\n //VARIABLES\n const $tabs = $('dl.accordion dt'),\n hashtag = window.location.hash,\n panelId = window.location.hash.replace('#','');\n\n //FUNCTIONS\n const toggleAccPanelFn = function( $this_hash, $this_tab, $this_panel ){\n if( $this_tab.hasClass('active') && $this_panel.is(':visible') ){\n $this_panel.slideUp();\n $this_tab.removeClass('active').addClass('inactive');\n }\n else{\n $this_panel.slideDown();\n $this_tab.addClass('active').removeClass('inactive');\n window.location.hash = $this_hash;\n }\n\n }\n\n //TAB ANCHOR CLICKS\n $tabs.find('a').on('click', function(e){\n e.preventDefault()\n const this_hash = $(this).attr('href');\n const this_tab = $(this).closest('dt');\n const this_panel = this_tab.next();\n\n toggleAccPanelFn(this_hash, this_tab, this_panel);\n });\n\n //PRESELECTED OPEN PANEL (USE OF HASHTAGS)\n if( hashtag && $('dl.accordion dt[data-id=\"'+panelId+'\"]').length>0 ){\n \n const selected_tab = $('dl.accordion dt[data-id=\"'+panelId+'\"]');\n const selected_panel = selected_tab.next();\n const accordionPos = selected_tab.offset().top;\n \n //open panel\n toggleAccPanelFn(hashtag, selected_tab, selected_panel)\n\n //set scroll position to the open accordion panel\n $(document).scrollTop(accordionPos);\n //$('html, body').animate({ scrollTop: accordionPos }, 500);\n\n }\n }\n\n})(jQuery)\n","/* globals jQuery */\nimport 'fitvids.1.1.0'\nimport 'magnific-popup'\n\nimport './slideshows.js'\nimport responsiveNav from './responsive-nav.jquery.js'\nimport accordion from './jquery.accordion.js'\n\n(($) => {\n\n $.fn.responsiveNav = responsiveNav\n $.fn.accordion = accordion\n\n const html = document.querySelector('html');\n html.classList.remove('no-js')\n html.classList.add('js');\n\n // Make nav menu nice & responsive\n $('nav.main-nav').responsiveNav({\n navType: 'offCanvas',\n closeOnOutsideClick: true\n });\n\t$('nav.subnav').responsiveNav({\n\t\tnavType: 'dropdown',\n\t\tmenuButtonSelector: '.subnav__mobile-toggle',\n\t\tdropdownSelector: '.subnav__menu'\n\t});\n\n // Responsive Videos\n $('.rtecontent').fitVids();\n\n // Accordions\n $('dl.accordion').accordion();\n\n $('#categoryFilter').on('change',function(){\n\t\tvar catLink = $(this).val();\n\t\twindow.location = catLink;\n\t});\n\n\t//SEARCH POPUP\n $('.js-open-search').magnificPopup({\n\t\ttype:'inline',\n\t\talignTop: true,\n\t\tmodal: true,\n\t\tmidClick: true, // Allow opening popup on middle mouse click. Always set it to true if you don't provide alternative source in href.\n\t\tmainClass: 'mfp-fade',\n\t\tfocus : '#s',\n\t\tcallbacks: {\n\t\t\t // When elemened is focused, some mobile browsers in some cases zoom in\n\t\t\t\t// It looks not nice, so we disable it:\n\t\t\t beforeOpen: function() {\n\t\t\t\t if($(window).width() < 700) {\n\t\t\t\t\t this.st.focus = false;\n\t\t\t\t } else {\n\t\t\t\t\t this.st.focus = '#s';\n\t\t\t\t }\n\t\t\t }\n\t\t}\n\t });\n\t $(document).on('click', '.js-close-popup', function (e) {\n\t\t e.preventDefault();\n\t\t $.magnificPopup.close();\n\t });\n\t /* END SEARCH CONTROLS */\n\n})(jQuery)\n","module.exports = window[\"jQuery\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t592: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk\"] = self[\"webpackChunk\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [388], () => (__webpack_require__(977)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","Swiper","Navigation","Pagination","EffectFade","Parallax","A11y","jQuery","effect","loop","parallax","autoplay","delay","disableOnInteraction","navigation","nextEl","prevEl","pagination","el","type","hideOnclick","clickable","document","querySelectorAll","forEach","gallery","index","slider","querySelector","thumbs","galleryThumbs","spaceBetween","slidesPerView","freeMode","fadeEffect","crossFade","swiper","$","options","extend","wrapperSelector","menuButtonSelector","menuOpenWrapperClass","activeClass","dropdownSelector","navType","debounceTime","closeOnOutsideClick","showTabsOnFocus","$this","this","$wrapper","$menuButton","$dropdownElem","_menuIsOpen","hasClass","_closeOffCanvasNav","removeClass","closeNavStrategy","dropdown","slideUp","offCanvas","closeNav","_openOffCanvasNav","addClass","openNavStrategy","slideDown","on","siblings","parent","activeToggleFn","is","find","each","children","show","event","stopPropagation","preventDefault","evt","target","has","length","next","window","debounce","removeAttr","$tabs","hashtag","location","hash","panelId","replace","toggleAccPanelFn","$this_hash","$this_tab","$this_panel","e","this_hash","attr","this_tab","closest","this_panel","selected_tab","selected_panel","accordionPos","offset","top","scrollTop","fn","responsiveNav","accordion","html","classList","remove","add","fitVids","catLink","val","magnificPopup","alignTop","modal","midClick","mainClass","focus","callbacks","beforeOpen","width","st","close","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","m","O","result","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","Object","keys","every","key","splice","r","d","definition","o","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","id","chunkLoadingGlobal","self","bind","push","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/common.js b/dist/common.js deleted file mode 100644 index 71f97a5..0000000 --- a/dist/common.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see common.js.LICENSE.txt */ -(()=>{var e={233:(e,t,n)=>{!function(e){"use strict";e.fn.fitVids=function(t){var n={customSelector:null,ignore:null};if(!document.getElementById("fit-vids-style")){var i=document.head||document.getElementsByTagName("head")[0],r=document.createElement("div");r.innerHTML='

x

',i.appendChild(r.childNodes[1])}return t&&e.extend(n,t),this.each((function(){var t=['iframe[src*="player.vimeo.com"]','iframe[src*="youtube.com"]','iframe[src*="youtube-nocookie.com"]','iframe[src*="kickstarter.com"][src*="video.html"]',"object","embed"];n.customSelector&&t.push(n.customSelector);var i=".fitvidsignore";n.ignore&&(i=i+", "+n.ignore);var r=e(this).find(t.join(","));(r=(r=r.not("object object")).not(i)).each((function(){var t=e(this);if(!(t.parents(i).length>0||"embed"===this.tagName.toLowerCase()&&t.parent("object").length||t.parent(".fluid-width-video-wrapper").length)){t.css("height")||t.css("width")||!isNaN(t.attr("height"))&&!isNaN(t.attr("width"))||(t.attr("height",9),t.attr("width",16));var n=("object"===this.tagName.toLowerCase()||t.attr("height")&&!isNaN(parseInt(t.attr("height"),10))?parseInt(t.attr("height"),10):t.height())/(isNaN(parseInt(t.attr("width"),10))?t.width():parseInt(t.attr("width"),10));if(!t.attr("name")){var r="fitvid"+e.fn.fitVids._count;t.attr("name",r),e.fn.fitVids._count++}t.wrap('
').parent(".fluid-width-video-wrapper").css("padding-top",100*n+"%"),t.removeAttr("height").removeAttr("width")}}))}))},e.fn.fitVids._count=0}(n(755)||window.Zepto)},755:function(e,t){var n;!function(t,n){"use strict";"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,(function(i,r){"use strict";var s=[],a=Object.getPrototypeOf,o=s.slice,l=s.flat?function(e){return s.flat.call(e)}:function(e){return s.concat.apply([],e)},c=s.push,d=s.indexOf,u={},p=u.toString,f=u.hasOwnProperty,h=f.toString,m=h.call(Object),g={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},b=i.document,w={type:!0,src:!0,nonce:!0,noModule:!0};function x(e,t,n){var i,r,s=(n=n||b).createElement("script");if(s.text=e,t)for(i in w)(r=t[i]||t.getAttribute&&t.getAttribute(i))&&s.setAttribute(i,r);n.head.appendChild(s).parentNode.removeChild(s)}function T(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?u[p.call(e)]||"object":typeof e}var C="3.7.0",S=/HTML$/i,E=function(e,t){return new E.fn.init(e,t)};function k(e){var t=!!e&&"length"in e&&e.length,n=T(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function M(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}E.fn=E.prototype={jquery:C,constructor:E,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=E.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return E.each(this,e)},map:function(e){return this.pushStack(E.map(this,(function(t,n){return e.call(t,n,t)})))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(E.grep(this,(function(e,t){return(t+1)%2})))},odd:function(){return this.pushStack(E.grep(this,(function(e,t){return t%2})))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n+~]|"+I+")"+I+"*"),F=new RegExp(I+"|>"),$=new RegExp(H),R=new RegExp("^"+D+"$"),G={ID:new RegExp("^#("+D+")"),CLASS:new RegExp("^\\.("+D+")"),TAG:new RegExp("^("+D+"|[*])"),ATTR:new RegExp("^"+j),PSEUDO:new RegExp("^"+H),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+I+"*(even|odd|(([+-]|)(\\d*)n|)"+I+"*(?:([+-]|)"+I+"*(\\d+)|))"+I+"*\\)|)","i"),bool:new RegExp("^(?:"+k+")$","i"),needsContext:new RegExp("^"+I+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+I+"*((?:-\\d)?\\d*)"+I+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,V=/^h\d$/i,X=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Y=/[+~]/,U=new RegExp("\\\\[\\da-fA-F]{1,6}"+I+"?|\\\\([^\\r\\n\\f])","g"),K=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},Z=function(){le()},Q=pe((function(e){return!0===e.disabled&&M(e,"fieldset")}),{dir:"parentNode",next:"legend"});try{m.apply(s=o.call(N.childNodes),N.childNodes),s[N.childNodes.length].nodeType}catch(e){m={apply:function(e,t){z.apply(e,o.call(t))},call:function(e){z.apply(e,o.call(arguments,1))}}}function J(e,t,n,i){var r,s,a,o,c,d,f,h=t&&t.ownerDocument,y=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==y&&9!==y&&11!==y)return n;if(!i&&(le(t),t=t||l,u)){if(11!==y&&(c=X.exec(e)))if(r=c[1]){if(9===y){if(!(a=t.getElementById(r)))return n;if(a.id===r)return m.call(n,a),n}else if(h&&(a=h.getElementById(r))&&J.contains(t,a)&&a.id===r)return m.call(n,a),n}else{if(c[2])return m.apply(n,t.getElementsByTagName(e)),n;if((r=c[3])&&t.getElementsByClassName)return m.apply(n,t.getElementsByClassName(r)),n}if(!(C[e+" "]||p&&p.test(e))){if(f=e,h=t,1===y&&(F.test(e)||q.test(e))){for((h=Y.test(e)&&oe(t.parentNode)||t)==t&&g.scope||((o=t.getAttribute("id"))?o=E.escapeSelector(o):t.setAttribute("id",o=v)),s=(d=de(e)).length;s--;)d[s]=(o?"#"+o:":scope")+" "+ue(d[s]);f=d.join(",")}try{return m.apply(n,h.querySelectorAll(f)),n}catch(t){C(e,!0)}finally{o===v&&t.removeAttribute("id")}}}return ye(e.replace(O,"$1"),t,n,i)}function ee(){var e=[];return function n(i,r){return e.push(i+" ")>t.cacheLength&&delete n[e.shift()],n[i+" "]=r}}function te(e){return e[v]=!0,e}function ne(e){var t=l.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ie(e){return function(t){return M(t,"input")&&t.type===e}}function re(e){return function(t){return(M(t,"input")||M(t,"button"))&&t.type===e}}function se(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&Q(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function ae(e){return te((function(t){return t=+t,te((function(n,i){for(var r,s=e([],n.length,t),a=s.length;a--;)n[r=s[a]]&&(n[r]=!(i[r]=n[r]))}))}))}function oe(e){return e&&void 0!==e.getElementsByTagName&&e}function le(e){var n,i=e?e.ownerDocument||e:N;return i!=l&&9===i.nodeType&&i.documentElement?(c=(l=i).documentElement,u=!E.isXMLDoc(l),h=c.matches||c.webkitMatchesSelector||c.msMatchesSelector,N!=l&&(n=l.defaultView)&&n.top!==n&&n.addEventListener("unload",Z),g.getById=ne((function(e){return c.appendChild(e).id=E.expando,!l.getElementsByName||!l.getElementsByName(E.expando).length})),g.disconnectedMatch=ne((function(e){return h.call(e,"*")})),g.scope=ne((function(){return l.querySelectorAll(":scope")})),g.cssHas=ne((function(){try{return l.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}})),g.getById?(t.filter.ID=function(e){var t=e.replace(U,K);return function(e){return e.getAttribute("id")===t}},t.find.ID=function(e,t){if(void 0!==t.getElementById&&u){var n=t.getElementById(e);return n?[n]:[]}}):(t.filter.ID=function(e){var t=e.replace(U,K);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},t.find.ID=function(e,t){if(void 0!==t.getElementById&&u){var n,i,r,s=t.getElementById(e);if(s){if((n=s.getAttributeNode("id"))&&n.value===e)return[s];for(r=t.getElementsByName(e),i=0;s=r[i++];)if((n=s.getAttributeNode("id"))&&n.value===e)return[s]}return[]}}),t.find.TAG=function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},t.find.CLASS=function(e,t){if(void 0!==t.getElementsByClassName&&u)return t.getElementsByClassName(e)},p=[],ne((function(e){var t;c.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||p.push("\\["+I+"*(?:value|"+k+")"),e.querySelectorAll("[id~="+v+"-]").length||p.push("~="),e.querySelectorAll("a#"+v+"+*").length||p.push(".#.+[+~]"),e.querySelectorAll(":checked").length||p.push(":checked"),(t=l.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),c.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&p.push(":enabled",":disabled"),(t=l.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||p.push("\\["+I+"*name"+I+"*="+I+"*(?:''|\"\")")})),g.cssHas||p.push(":has"),p=p.length&&new RegExp(p.join("|")),S=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!g.sortDetached&&t.compareDocumentPosition(e)===n?e===l||e.ownerDocument==N&&J.contains(N,e)?-1:t===l||t.ownerDocument==N&&J.contains(N,t)?1:r?d.call(r,e)-d.call(r,t):0:4&n?-1:1)},l):l}for(e in J.matches=function(e,t){return J(e,null,null,t)},J.matchesSelector=function(e,t){if(le(e),u&&!C[t+" "]&&(!p||!p.test(t)))try{var n=h.call(e,t);if(n||g.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){C(t,!0)}return J(t,l,null,[e]).length>0},J.contains=function(e,t){return(e.ownerDocument||e)!=l&&le(e),E.contains(e,t)},J.attr=function(e,n){(e.ownerDocument||e)!=l&&le(e);var i=t.attrHandle[n.toLowerCase()],r=i&&f.call(t.attrHandle,n.toLowerCase())?i(e,n,!u):void 0;return void 0!==r?r:e.getAttribute(n)},J.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},E.uniqueSort=function(e){var t,n=[],i=0,s=0;if(a=!g.sortStable,r=!g.sortStable&&o.call(e,0),L.call(e,S),a){for(;t=e[s++];)t===e[s]&&(i=n.push(s));for(;i--;)P.call(e,n[i],1)}return r=null,e},E.fn.uniqueSort=function(){return this.pushStack(E.uniqueSort(o.apply(this)))},t=E.expr={cacheLength:50,createPseudo:te,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(U,K),e[3]=(e[3]||e[4]||e[5]||"").replace(U,K),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||J.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&J.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&$.test(n)&&(t=de(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(U,K).toLowerCase();return"*"===e?function(){return!0}:function(e){return M(e,t)}},CLASS:function(e){var t=w[e+" "];return t||(t=new RegExp("(^|"+I+")"+e+"("+I+"|$)"))&&w(e,(function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")}))},ATTR:function(e,t,n){return function(i){var r=J.attr(i,e);return null==r?"!="===t:!t||(r+="","="===t?r===n:"!="===t?r!==n:"^="===t?n&&0===r.indexOf(n):"*="===t?n&&r.indexOf(n)>-1:"$="===t?n&&r.slice(-n.length)===n:"~="===t?(" "+r.replace(_," ")+" ").indexOf(n)>-1:"|="===t&&(r===n||r.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,i,r){var s="nth"!==e.slice(0,3),a="last"!==e.slice(-4),o="of-type"===t;return 1===i&&0===r?function(e){return!!e.parentNode}:function(t,n,l){var c,d,u,p,f,h=s!==a?"nextSibling":"previousSibling",m=t.parentNode,g=o&&t.nodeName.toLowerCase(),b=!l&&!o,w=!1;if(m){if(s){for(;h;){for(u=t;u=u[h];)if(o?M(u,g):1===u.nodeType)return!1;f=h="only"===e&&!f&&"nextSibling"}return!0}if(f=[a?m.firstChild:m.lastChild],a&&b){for(w=(p=(c=(d=m[v]||(m[v]={}))[e]||[])[0]===y&&c[1])&&c[2],u=p&&m.childNodes[p];u=++p&&u&&u[h]||(w=p=0)||f.pop();)if(1===u.nodeType&&++w&&u===t){d[e]=[y,p,w];break}}else if(b&&(w=p=(c=(d=t[v]||(t[v]={}))[e]||[])[0]===y&&c[1]),!1===w)for(;(u=++p&&u&&u[h]||(w=p=0)||f.pop())&&(!(o?M(u,g):1===u.nodeType)||!++w||(b&&((d=u[v]||(u[v]={}))[e]=[y,w]),u!==t)););return(w-=r)===i||w%i==0&&w/i>=0}}},PSEUDO:function(e,n){var i,r=t.pseudos[e]||t.setFilters[e.toLowerCase()]||J.error("unsupported pseudo: "+e);return r[v]?r(n):r.length>1?(i=[e,e,"",n],t.setFilters.hasOwnProperty(e.toLowerCase())?te((function(e,t){for(var i,s=r(e,n),a=s.length;a--;)e[i=d.call(e,s[a])]=!(t[i]=s[a])})):function(e){return r(e,0,i)}):r}},pseudos:{not:te((function(e){var t=[],n=[],i=ve(e.replace(O,"$1"));return i[v]?te((function(e,t,n,r){for(var s,a=i(e,null,r,[]),o=e.length;o--;)(s=a[o])&&(e[o]=!(t[o]=s))})):function(e,r,s){return t[0]=e,i(t,null,s,n),t[0]=null,!n.pop()}})),has:te((function(e){return function(t){return J(e,t).length>0}})),contains:te((function(e){return e=e.replace(U,K),function(t){return(t.textContent||E.text(t)).indexOf(e)>-1}})),lang:te((function(e){return R.test(e||"")||J.error("unsupported lang: "+e),e=e.replace(U,K).toLowerCase(),function(t){var n;do{if(n=u?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(e){var t=i.location&&i.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===c},focus:function(e){return e===function(){try{return l.activeElement}catch(e){}}()&&l.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:se(!1),disabled:se(!0),checked:function(e){return M(e,"input")&&!!e.checked||M(e,"option")&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!t.pseudos.empty(e)},header:function(e){return V.test(e.nodeName)},input:function(e){return W.test(e.nodeName)},button:function(e){return M(e,"input")&&"button"===e.type||M(e,"button")},text:function(e){var t;return M(e,"input")&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ae((function(){return[0]})),last:ae((function(e,t){return[t-1]})),eq:ae((function(e,t,n){return[n<0?n+t:n]})),even:ae((function(e,t){for(var n=0;nt?t:n;--i>=0;)e.push(i);return e})),gt:ae((function(e,t,n){for(var i=n<0?n+t:n;++i1?function(t,n,i){for(var r=e.length;r--;)if(!e[r](t,n,i))return!1;return!0}:e[0]}function he(e,t,n,i,r){for(var s,a=[],o=0,l=e.length,c=null!=t;o-1&&(s[c]=!(a[c]=p))}}else f=he(f===a?f.splice(v,f.length):f),r?r(null,a,f,l):m.apply(a,f)}))}function ge(e){for(var i,r,s,a=e.length,o=t.relative[e[0].type],l=o||t.relative[" "],c=o?1:0,u=pe((function(e){return e===i}),l,!0),p=pe((function(e){return d.call(i,e)>-1}),l,!0),f=[function(e,t,r){var s=!o&&(r||t!=n)||((i=t).nodeType?u(e,t,r):p(e,t,r));return i=null,s}];c1&&fe(f),c>1&&ue(e.slice(0,c-1).concat({value:" "===e[c-2].type?"*":""})).replace(O,"$1"),r,c0,s=e.length>0,a=function(a,o,c,d,p){var f,h,g,v=0,b="0",w=a&&[],x=[],T=n,C=a||s&&t.find.TAG("*",p),S=y+=null==T?1:Math.random()||.1,k=C.length;for(p&&(n=o==l||o||p);b!==k&&null!=(f=C[b]);b++){if(s&&f){for(h=0,o||f.ownerDocument==l||(le(f),c=!u);g=e[h++];)if(g(f,o||l,c)){m.call(d,f);break}p&&(y=S)}r&&((f=!g&&f)&&v--,a&&w.push(f))}if(v+=b,r&&b!==v){for(h=0;g=i[h++];)g(w,x,o,c);if(a){if(v>0)for(;b--;)w[b]||x[b]||(x[b]=A.call(d));x=he(x)}m.apply(d,x),p&&!a&&x.length>0&&v+i.length>1&&E.uniqueSort(d)}return p&&(y=S,n=T),w};return r?te(a):a}(a,s)),o.selector=e}return o}function ye(e,n,i,r){var s,a,o,l,c,d="function"==typeof e&&e,p=!r&&de(e=d.selector||e);if(i=i||[],1===p.length){if((a=p[0]=p[0].slice(0)).length>2&&"ID"===(o=a[0]).type&&9===n.nodeType&&u&&t.relative[a[1].type]){if(!(n=(t.find.ID(o.matches[0].replace(U,K),n)||[])[0]))return i;d&&(n=n.parentNode),e=e.slice(a.shift().value.length)}for(s=G.needsContext.test(e)?0:a.length;s--&&(o=a[s],!t.relative[l=o.type]);)if((c=t.find[l])&&(r=c(o.matches[0].replace(U,K),Y.test(a[0].type)&&oe(n.parentNode)||n))){if(a.splice(s,1),!(e=r.length&&ue(a)))return m.apply(i,r),i;break}}return(d||ve(e,p))(r,n,!u,i,!n||Y.test(e)&&oe(n.parentNode)||n),i}ce.prototype=t.filters=t.pseudos,t.setFilters=new ce,g.sortStable=v.split("").sort(S).join("")===v,le(),g.sortDetached=ne((function(e){return 1&e.compareDocumentPosition(l.createElement("fieldset"))})),E.find=J,E.expr[":"]=E.expr.pseudos,E.unique=E.uniqueSort,J.compile=ve,J.select=ye,J.setDocument=le,J.escape=E.escapeSelector,J.getText=E.text,J.isXML=E.isXMLDoc,J.selectors=E.expr,J.support=E.support,J.uniqueSort=E.uniqueSort}();var H=function(e,t,n){for(var i=[],r=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(r&&E(e).is(n))break;i.push(e)}return i},_=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},B=E.expr.match.needsContext,q=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function F(e,t,n){return v(t)?E.grep(e,(function(e,i){return!!t.call(e,i,e)!==n})):t.nodeType?E.grep(e,(function(e){return e===t!==n})):"string"!=typeof t?E.grep(e,(function(e){return d.call(t,e)>-1!==n})):E.filter(t,e,n)}E.filter=function(e,t,n){var i=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===i.nodeType?E.find.matchesSelector(i,e)?[i]:[]:E.find.matches(e,E.grep(t,(function(e){return 1===e.nodeType})))},E.fn.extend({find:function(e){var t,n,i=this.length,r=this;if("string"!=typeof e)return this.pushStack(E(e).filter((function(){for(t=0;t1?E.uniqueSort(n):n},filter:function(e){return this.pushStack(F(this,e||[],!1))},not:function(e){return this.pushStack(F(this,e||[],!0))},is:function(e){return!!F(this,"string"==typeof e&&B.test(e)?E(e):e||[],!1).length}});var $,R=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(E.fn.init=function(e,t,n){var i,r;if(!e)return this;if(n=n||$,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:R.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof E?t[0]:t,E.merge(this,E.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:b,!0)),q.test(i[1])&&E.isPlainObject(t))for(i in t)v(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(r=b.getElementById(i[2]))&&(this[0]=r,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(E):E.makeArray(e,this)}).prototype=E.fn,$=E(b);var G=/^(?:parents|prev(?:Until|All))/,W={children:!0,contents:!0,next:!0,prev:!0};function V(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter((function(){for(var e=0;e-1:1===n.nodeType&&E.find.matchesSelector(n,e))){s.push(n);break}return this.pushStack(s.length>1?E.uniqueSort(s):s)},index:function(e){return e?"string"==typeof e?d.call(E(e),this[0]):d.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(E.uniqueSort(E.merge(this.get(),E(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),E.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return H(e,"parentNode")},parentsUntil:function(e,t,n){return H(e,"parentNode",n)},next:function(e){return V(e,"nextSibling")},prev:function(e){return V(e,"previousSibling")},nextAll:function(e){return H(e,"nextSibling")},prevAll:function(e){return H(e,"previousSibling")},nextUntil:function(e,t,n){return H(e,"nextSibling",n)},prevUntil:function(e,t,n){return H(e,"previousSibling",n)},siblings:function(e){return _((e.parentNode||{}).firstChild,e)},children:function(e){return _(e.firstChild)},contents:function(e){return null!=e.contentDocument&&a(e.contentDocument)?e.contentDocument:(M(e,"template")&&(e=e.content||e),E.merge([],e.childNodes))}},(function(e,t){E.fn[e]=function(n,i){var r=E.map(this,t,n);return"Until"!==e.slice(-5)&&(i=n),i&&"string"==typeof i&&(r=E.filter(i,r)),this.length>1&&(W[e]||E.uniqueSort(r),G.test(e)&&r.reverse()),this.pushStack(r)}}));var X=/[^\x20\t\r\n\f]+/g;function Y(e){return e}function U(e){throw e}function K(e,t,n,i){var r;try{e&&v(r=e.promise)?r.call(e).done(t).fail(n):e&&v(r=e.then)?r.call(e,t,n):t.apply(void 0,[e].slice(i))}catch(e){n.apply(void 0,[e])}}E.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return E.each(e.match(X)||[],(function(e,n){t[n]=!0})),t}(e):E.extend({},e);var t,n,i,r,s=[],a=[],o=-1,l=function(){for(r=r||e.once,i=t=!0;a.length;o=-1)for(n=a.shift();++o-1;)s.splice(n,1),n<=o&&o--})),this},has:function(e){return e?E.inArray(e,s)>-1:s.length>0},empty:function(){return s&&(s=[]),this},disable:function(){return r=a=[],s=n="",this},disabled:function(){return!s},lock:function(){return r=a=[],n||t||(s=n=""),this},locked:function(){return!!r},fireWith:function(e,n){return r||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!i}};return c},E.extend({Deferred:function(e){var t=[["notify","progress",E.Callbacks("memory"),E.Callbacks("memory"),2],["resolve","done",E.Callbacks("once memory"),E.Callbacks("once memory"),0,"resolved"],["reject","fail",E.Callbacks("once memory"),E.Callbacks("once memory"),1,"rejected"]],n="pending",r={state:function(){return n},always:function(){return s.done(arguments).fail(arguments),this},catch:function(e){return r.then(null,e)},pipe:function(){var e=arguments;return E.Deferred((function(n){E.each(t,(function(t,i){var r=v(e[i[4]])&&e[i[4]];s[i[1]]((function(){var e=r&&r.apply(this,arguments);e&&v(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[i[0]+"With"](this,r?[e]:arguments)}))})),e=null})).promise()},then:function(e,n,r){var s=0;function a(e,t,n,r){return function(){var o=this,l=arguments,c=function(){var i,c;if(!(e=s&&(n!==U&&(o=void 0,l=[i]),t.rejectWith(o,l))}};e?d():(E.Deferred.getErrorHook?d.error=E.Deferred.getErrorHook():E.Deferred.getStackHook&&(d.error=E.Deferred.getStackHook()),i.setTimeout(d))}}return E.Deferred((function(i){t[0][3].add(a(0,i,v(r)?r:Y,i.notifyWith)),t[1][3].add(a(0,i,v(e)?e:Y)),t[2][3].add(a(0,i,v(n)?n:U))})).promise()},promise:function(e){return null!=e?E.extend(e,r):r}},s={};return E.each(t,(function(e,i){var a=i[2],o=i[5];r[i[1]]=a.add,o&&a.add((function(){n=o}),t[3-e][2].disable,t[3-e][3].disable,t[0][2].lock,t[0][3].lock),a.add(i[3].fire),s[i[0]]=function(){return s[i[0]+"With"](this===s?void 0:this,arguments),this},s[i[0]+"With"]=a.fireWith})),r.promise(s),e&&e.call(s,s),s},when:function(e){var t=arguments.length,n=t,i=Array(n),r=o.call(arguments),s=E.Deferred(),a=function(e){return function(n){i[e]=this,r[e]=arguments.length>1?o.call(arguments):n,--t||s.resolveWith(i,r)}};if(t<=1&&(K(e,s.done(a(n)).resolve,s.reject,!t),"pending"===s.state()||v(r[n]&&r[n].then)))return s.then();for(;n--;)K(r[n],a(n),s.reject);return s.promise()}});var Z=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;E.Deferred.exceptionHook=function(e,t){i.console&&i.console.warn&&e&&Z.test(e.name)&&i.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},E.readyException=function(e){i.setTimeout((function(){throw e}))};var Q=E.Deferred();function J(){b.removeEventListener("DOMContentLoaded",J),i.removeEventListener("load",J),E.ready()}E.fn.ready=function(e){return Q.then(e).catch((function(e){E.readyException(e)})),this},E.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--E.readyWait:E.isReady)||(E.isReady=!0,!0!==e&&--E.readyWait>0||Q.resolveWith(b,[E]))}}),E.ready.then=Q.then,"complete"===b.readyState||"loading"!==b.readyState&&!b.documentElement.doScroll?i.setTimeout(E.ready):(b.addEventListener("DOMContentLoaded",J),i.addEventListener("load",J));var ee=function(e,t,n,i,r,s,a){var o=0,l=e.length,c=null==n;if("object"===T(n))for(o in r=!0,n)ee(e,t,o,n[o],!0,s,a);else if(void 0!==i&&(r=!0,v(i)||(a=!0),c&&(a?(t.call(e,i),t=null):(c=t,t=function(e,t,n){return c.call(E(e),n)})),t))for(;o1,null,!0)},removeData:function(e){return this.each((function(){le.remove(this,e)}))}}),E.extend({queue:function(e,t,n){var i;if(e)return t=(t||"fx")+"queue",i=oe.get(e,t),n&&(!i||Array.isArray(n)?i=oe.access(e,t,E.makeArray(n)):i.push(n)),i||[]},dequeue:function(e,t){t=t||"fx";var n=E.queue(e,t),i=n.length,r=n.shift(),s=E._queueHooks(e,t);"inprogress"===r&&(r=n.shift(),i--),r&&("fx"===t&&n.unshift("inprogress"),delete s.stop,r.call(e,(function(){E.dequeue(e,t)}),s)),!i&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return oe.get(e,n)||oe.access(e,n,{empty:E.Callbacks("once memory").add((function(){oe.remove(e,[t+"queue",n])}))})}}),E.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]*)/i,Me=/^$|^module$|\/(?:java|ecma)script/i;Ce=b.createDocumentFragment().appendChild(b.createElement("div")),(Se=b.createElement("input")).setAttribute("type","radio"),Se.setAttribute("checked","checked"),Se.setAttribute("name","t"),Ce.appendChild(Se),g.checkClone=Ce.cloneNode(!0).cloneNode(!0).lastChild.checked,Ce.innerHTML="",g.noCloneChecked=!!Ce.cloneNode(!0).lastChild.defaultValue,Ce.innerHTML="",g.option=!!Ce.lastChild;var Ae={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Le(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&M(e,t)?E.merge([e],n):n}function Pe(e,t){for(var n=0,i=e.length;n",""]);var Ie=/<|&#?\w+;/;function Oe(e,t,n,i,r){for(var s,a,o,l,c,d,u=t.createDocumentFragment(),p=[],f=0,h=e.length;f-1)r&&r.push(s);else if(c=ge(s),a=Le(u.appendChild(s),"script"),c&&Pe(a),n)for(d=0;s=a[d++];)Me.test(s.type||"")&&n.push(s);return u}var De=/^([^.]*)(?:\.(.+)|)/;function je(){return!0}function Ne(){return!1}function ze(e,t,n,i,r,s){var a,o;if("object"==typeof t){for(o in"string"!=typeof n&&(i=i||n,n=void 0),t)ze(e,o,n,i,t[o],s);return e}if(null==i&&null==r?(r=n,i=n=void 0):null==r&&("string"==typeof n?(r=i,i=void 0):(r=i,i=n,n=void 0)),!1===r)r=Ne;else if(!r)return e;return 1===s&&(a=r,r=function(e){return E().off(e),a.apply(this,arguments)},r.guid=a.guid||(a.guid=E.guid++)),e.each((function(){E.event.add(this,t,r,i,n)}))}function He(e,t,n){n?(oe.set(e,t,!1),E.event.add(e,t,{namespace:!1,handler:function(e){var n,i=oe.get(this,t);if(1&e.isTrigger&&this[t]){if(i)(E.event.special[t]||{}).delegateType&&e.stopPropagation();else if(i=o.call(arguments),oe.set(this,t,i),this[t](),n=oe.get(this,t),oe.set(this,t,!1),i!==n)return e.stopImmediatePropagation(),e.preventDefault(),n}else i&&(oe.set(this,t,E.event.trigger(i[0],i.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=je)}})):void 0===oe.get(e,t)&&E.event.add(e,t,je)}E.event={global:{},add:function(e,t,n,i,r){var s,a,o,l,c,d,u,p,f,h,m,g=oe.get(e);if(se(e))for(n.handler&&(n=(s=n).handler,r=s.selector),r&&E.find.matchesSelector(me,r),n.guid||(n.guid=E.guid++),(l=g.events)||(l=g.events=Object.create(null)),(a=g.handle)||(a=g.handle=function(t){return void 0!==E&&E.event.triggered!==t.type?E.event.dispatch.apply(e,arguments):void 0}),c=(t=(t||"").match(X)||[""]).length;c--;)f=m=(o=De.exec(t[c])||[])[1],h=(o[2]||"").split(".").sort(),f&&(u=E.event.special[f]||{},f=(r?u.delegateType:u.bindType)||f,u=E.event.special[f]||{},d=E.extend({type:f,origType:m,data:i,handler:n,guid:n.guid,selector:r,needsContext:r&&E.expr.match.needsContext.test(r),namespace:h.join(".")},s),(p=l[f])||((p=l[f]=[]).delegateCount=0,u.setup&&!1!==u.setup.call(e,i,h,a)||e.addEventListener&&e.addEventListener(f,a)),u.add&&(u.add.call(e,d),d.handler.guid||(d.handler.guid=n.guid)),r?p.splice(p.delegateCount++,0,d):p.push(d),E.event.global[f]=!0)},remove:function(e,t,n,i,r){var s,a,o,l,c,d,u,p,f,h,m,g=oe.hasData(e)&&oe.get(e);if(g&&(l=g.events)){for(c=(t=(t||"").match(X)||[""]).length;c--;)if(f=m=(o=De.exec(t[c])||[])[1],h=(o[2]||"").split(".").sort(),f){for(u=E.event.special[f]||{},p=l[f=(i?u.delegateType:u.bindType)||f]||[],o=o[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=s=p.length;s--;)d=p[s],!r&&m!==d.origType||n&&n.guid!==d.guid||o&&!o.test(d.namespace)||i&&i!==d.selector&&("**"!==i||!d.selector)||(p.splice(s,1),d.selector&&p.delegateCount--,u.remove&&u.remove.call(e,d));a&&!p.length&&(u.teardown&&!1!==u.teardown.call(e,h,g.handle)||E.removeEvent(e,f,g.handle),delete l[f])}else for(f in l)E.event.remove(e,f+t[c],n,i,!0);E.isEmptyObject(l)&&oe.remove(e,"handle events")}},dispatch:function(e){var t,n,i,r,s,a,o=new Array(arguments.length),l=E.event.fix(e),c=(oe.get(this,"events")||Object.create(null))[l.type]||[],d=E.event.special[l.type]||{};for(o[0]=l,t=1;t=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||!0!==c.disabled)){for(s=[],a={},n=0;n-1:E.find(r,this,null,[c]).length),a[r]&&s.push(i);s.length&&o.push({elem:c,handlers:s})}return c=this,l\s*$/g;function Fe(e,t){return M(e,"table")&&M(11!==t.nodeType?t:t.firstChild,"tr")&&E(e).children("tbody")[0]||e}function $e(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Ge(e,t){var n,i,r,s,a,o;if(1===t.nodeType){if(oe.hasData(e)&&(o=oe.get(e).events))for(r in oe.remove(t,"handle events"),o)for(n=0,i=o[r].length;n1&&"string"==typeof h&&!g.checkClone&&Be.test(h))return e.each((function(r){var s=e.eq(r);m&&(t[0]=h.call(this,r,s.html())),Ve(s,t,n,i)}));if(p&&(s=(r=Oe(t,e[0].ownerDocument,!1,e,i)).firstChild,1===r.childNodes.length&&(r=s),s||i)){for(o=(a=E.map(Le(r,"script"),$e)).length;u0&&Pe(a,!l&&Le(e,"script")),o},cleanData:function(e){for(var t,n,i,r=E.event.special,s=0;void 0!==(n=e[s]);s++)if(se(n)){if(t=n[oe.expando]){if(t.events)for(i in t.events)r[i]?E.event.remove(n,i):E.removeEvent(n,i,t.handle);n[oe.expando]=void 0}n[le.expando]&&(n[le.expando]=void 0)}}}),E.fn.extend({detach:function(e){return Xe(this,e,!0)},remove:function(e){return Xe(this,e)},text:function(e){return ee(this,(function(e){return void 0===e?E.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return Ve(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Fe(this,e).appendChild(e)}))},prepend:function(){return Ve(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Fe(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return Ve(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return Ve(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(E.cleanData(Le(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return E.clone(this,e,t)}))},html:function(e){return ee(this,(function(e){var t=this[0]||{},n=0,i=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!_e.test(e)&&!Ae[(ke.exec(e)||["",""])[1].toLowerCase()]){e=E.htmlPrefilter(e);try{for(;n=0&&(l+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-s-l-o-.5))||0),l+c}function dt(e,t,n){var i=Ke(e),r=(!g.boxSizingReliable()||n)&&"border-box"===E.css(e,"boxSizing",!1,i),s=r,a=Je(e,t,i),o="offset"+t[0].toUpperCase()+t.slice(1);if(Ye.test(a)){if(!n)return a;a="auto"}return(!g.boxSizingReliable()&&r||!g.reliableTrDimensions()&&M(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===E.css(e,"display",!1,i))&&e.getClientRects().length&&(r="border-box"===E.css(e,"boxSizing",!1,i),(s=o in e)&&(a=e[o])),(a=parseFloat(a)||0)+ct(e,t,n||(r?"border":"content"),s,i,a)+"px"}function ut(e,t,n,i,r){return new ut.prototype.init(e,t,n,i,r)}E.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Je(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var r,s,a,o=re(t),l=Ue.test(t),c=e.style;if(l||(t=rt(o)),a=E.cssHooks[t]||E.cssHooks[o],void 0===n)return a&&"get"in a&&void 0!==(r=a.get(e,!1,i))?r:c[t];"string"==(s=typeof n)&&(r=fe.exec(n))&&r[1]&&(n=be(e,t,r),s="number"),null!=n&&n==n&&("number"!==s||l||(n+=r&&r[3]||(E.cssNumber[o]?"":"px")),g.clearCloneStyle||""!==n||0!==t.indexOf("background")||(c[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,i))||(l?c.setProperty(t,n):c[t]=n))}},css:function(e,t,n,i){var r,s,a,o=re(t);return Ue.test(t)||(t=rt(o)),(a=E.cssHooks[t]||E.cssHooks[o])&&"get"in a&&(r=a.get(e,!0,n)),void 0===r&&(r=Je(e,t,i)),"normal"===r&&t in ot&&(r=ot[t]),""===n||n?(s=parseFloat(r),!0===n||isFinite(s)?s||0:r):r}}),E.each(["height","width"],(function(e,t){E.cssHooks[t]={get:function(e,n,i){if(n)return!st.test(E.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?dt(e,t,i):Ze(e,at,(function(){return dt(e,t,i)}))},set:function(e,n,i){var r,s=Ke(e),a=!g.scrollboxSize()&&"absolute"===s.position,o=(a||i)&&"border-box"===E.css(e,"boxSizing",!1,s),l=i?ct(e,t,i,o,s):0;return o&&a&&(l-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(s[t])-ct(e,t,"border",!1,s)-.5)),l&&(r=fe.exec(n))&&"px"!==(r[3]||"px")&&(e.style[t]=n,n=E.css(e,t)),lt(0,n,l)}}})),E.cssHooks.marginLeft=et(g.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(Je(e,"marginLeft"))||e.getBoundingClientRect().left-Ze(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),E.each({margin:"",padding:"",border:"Width"},(function(e,t){E.cssHooks[e+t]={expand:function(n){for(var i=0,r={},s="string"==typeof n?n.split(" "):[n];i<4;i++)r[e+he[i]+t]=s[i]||s[i-2]||s[0];return r}},"margin"!==e&&(E.cssHooks[e+t].set=lt)})),E.fn.extend({css:function(e,t){return ee(this,(function(e,t,n){var i,r,s={},a=0;if(Array.isArray(t)){for(i=Ke(e),r=t.length;a1)}}),E.Tween=ut,ut.prototype={constructor:ut,init:function(e,t,n,i,r,s){this.elem=e,this.prop=n,this.easing=r||E.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=i,this.unit=s||(E.cssNumber[n]?"":"px")},cur:function(){var e=ut.propHooks[this.prop];return e&&e.get?e.get(this):ut.propHooks._default.get(this)},run:function(e){var t,n=ut.propHooks[this.prop];return this.options.duration?this.pos=t=E.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):ut.propHooks._default.set(this),this}},ut.prototype.init.prototype=ut.prototype,ut.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=E.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){E.fx.step[e.prop]?E.fx.step[e.prop](e):1!==e.elem.nodeType||!E.cssHooks[e.prop]&&null==e.elem.style[rt(e.prop)]?e.elem[e.prop]=e.now:E.style(e.elem,e.prop,e.now+e.unit)}}},ut.propHooks.scrollTop=ut.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},E.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},E.fx=ut.prototype.init,E.fx.step={};var pt,ft,ht=/^(?:toggle|show|hide)$/,mt=/queueHooks$/;function gt(){ft&&(!1===b.hidden&&i.requestAnimationFrame?i.requestAnimationFrame(gt):i.setTimeout(gt,E.fx.interval),E.fx.tick())}function vt(){return i.setTimeout((function(){pt=void 0})),pt=Date.now()}function yt(e,t){var n,i=0,r={height:e};for(t=t?1:0;i<4;i+=2-t)r["margin"+(n=he[i])]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function bt(e,t,n){for(var i,r=(wt.tweeners[t]||[]).concat(wt.tweeners["*"]),s=0,a=r.length;s1)},removeAttr:function(e){return this.each((function(){E.removeAttr(this,e)}))}}),E.extend({attr:function(e,t,n){var i,r,s=e.nodeType;if(3!==s&&8!==s&&2!==s)return void 0===e.getAttribute?E.prop(e,t,n):(1===s&&E.isXMLDoc(e)||(r=E.attrHooks[t.toLowerCase()]||(E.expr.match.bool.test(t)?xt:void 0)),void 0!==n?null===n?void E.removeAttr(e,t):r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:(e.setAttribute(t,n+""),n):r&&"get"in r&&null!==(i=r.get(e,t))?i:null==(i=E.find.attr(e,t))?void 0:i)},attrHooks:{type:{set:function(e,t){if(!g.radioValue&&"radio"===t&&M(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,i=0,r=t&&t.match(X);if(r&&1===e.nodeType)for(;n=r[i++];)e.removeAttribute(n)}}),xt={set:function(e,t,n){return!1===t?E.removeAttr(e,n):e.setAttribute(n,n),n}},E.each(E.expr.match.bool.source.match(/\w+/g),(function(e,t){var n=Tt[t]||E.find.attr;Tt[t]=function(e,t,i){var r,s,a=t.toLowerCase();return i||(s=Tt[a],Tt[a]=r,r=null!=n(e,t,i)?a:null,Tt[a]=s),r}}));var Ct=/^(?:input|select|textarea|button)$/i,St=/^(?:a|area)$/i;function Et(e){return(e.match(X)||[]).join(" ")}function kt(e){return e.getAttribute&&e.getAttribute("class")||""}function Mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(X)||[]}E.fn.extend({prop:function(e,t){return ee(this,E.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[E.propFix[e]||e]}))}}),E.extend({prop:function(e,t,n){var i,r,s=e.nodeType;if(3!==s&&8!==s&&2!==s)return 1===s&&E.isXMLDoc(e)||(t=E.propFix[t]||t,r=E.propHooks[t]),void 0!==n?r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:e[t]=n:r&&"get"in r&&null!==(i=r.get(e,t))?i:e[t]},propHooks:{tabIndex:{get:function(e){var t=E.find.attr(e,"tabindex");return t?parseInt(t,10):Ct.test(e.nodeName)||St.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),g.optSelected||(E.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),E.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){E.propFix[this.toLowerCase()]=this})),E.fn.extend({addClass:function(e){var t,n,i,r,s,a;return v(e)?this.each((function(t){E(this).addClass(e.call(this,t,kt(this)))})):(t=Mt(e)).length?this.each((function(){if(i=kt(this),n=1===this.nodeType&&" "+Et(i)+" "){for(s=0;s-1;)n=n.replace(" "+r+" "," ");a=Et(n),i!==a&&this.setAttribute("class",a)}})):this:this.attr("class","")},toggleClass:function(e,t){var n,i,r,s,a=typeof e,o="string"===a||Array.isArray(e);return v(e)?this.each((function(n){E(this).toggleClass(e.call(this,n,kt(this),t),t)})):"boolean"==typeof t&&o?t?this.addClass(e):this.removeClass(e):(n=Mt(e),this.each((function(){if(o)for(s=E(this),r=0;r-1)return!0;return!1}});var At=/\r/g;E.fn.extend({val:function(e){var t,n,i,r=this[0];return arguments.length?(i=v(e),this.each((function(n){var r;1===this.nodeType&&(null==(r=i?e.call(this,n,E(this).val()):e)?r="":"number"==typeof r?r+="":Array.isArray(r)&&(r=E.map(r,(function(e){return null==e?"":e+""}))),(t=E.valHooks[this.type]||E.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,r,"value")||(this.value=r))}))):r?(t=E.valHooks[r.type]||E.valHooks[r.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(r,"value"))?n:"string"==typeof(n=r.value)?n.replace(At,""):null==n?"":n:void 0}}),E.extend({valHooks:{option:{get:function(e){var t=E.find.attr(e,"value");return null!=t?t:Et(E.text(e))}},select:{get:function(e){var t,n,i,r=e.options,s=e.selectedIndex,a="select-one"===e.type,o=a?null:[],l=a?s+1:r.length;for(i=s<0?l:a?s:0;i-1)&&(n=!0);return n||(e.selectedIndex=-1),s}}}}),E.each(["radio","checkbox"],(function(){E.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=E.inArray(E(e).val(),t)>-1}},g.checkOn||(E.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}));var Lt=i.location,Pt={guid:Date.now()},It=/\?/;E.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new i.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||E.error("Invalid XML: "+(n?E.map(n.childNodes,(function(e){return e.textContent})).join("\n"):e)),t};var Ot=/^(?:focusinfocus|focusoutblur)$/,Dt=function(e){e.stopPropagation()};E.extend(E.event,{trigger:function(e,t,n,r){var s,a,o,l,c,d,u,p,h=[n||b],m=f.call(e,"type")?e.type:e,g=f.call(e,"namespace")?e.namespace.split("."):[];if(a=p=o=n=n||b,3!==n.nodeType&&8!==n.nodeType&&!Ot.test(m+E.event.triggered)&&(m.indexOf(".")>-1&&(g=m.split("."),m=g.shift(),g.sort()),c=m.indexOf(":")<0&&"on"+m,(e=e[E.expando]?e:new E.Event(m,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=g.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:E.makeArray(t,[e]),u=E.event.special[m]||{},r||!u.trigger||!1!==u.trigger.apply(n,t))){if(!r&&!u.noBubble&&!y(n)){for(l=u.delegateType||m,Ot.test(l+m)||(a=a.parentNode);a;a=a.parentNode)h.push(a),o=a;o===(n.ownerDocument||b)&&h.push(o.defaultView||o.parentWindow||i)}for(s=0;(a=h[s++])&&!e.isPropagationStopped();)p=a,e.type=s>1?l:u.bindType||m,(d=(oe.get(a,"events")||Object.create(null))[e.type]&&oe.get(a,"handle"))&&d.apply(a,t),(d=c&&a[c])&&d.apply&&se(a)&&(e.result=d.apply(a,t),!1===e.result&&e.preventDefault());return e.type=m,r||e.isDefaultPrevented()||u._default&&!1!==u._default.apply(h.pop(),t)||!se(n)||c&&v(n[m])&&!y(n)&&((o=n[c])&&(n[c]=null),E.event.triggered=m,e.isPropagationStopped()&&p.addEventListener(m,Dt),n[m](),e.isPropagationStopped()&&p.removeEventListener(m,Dt),E.event.triggered=void 0,o&&(n[c]=o)),e.result}},simulate:function(e,t,n){var i=E.extend(new E.Event,n,{type:e,isSimulated:!0});E.event.trigger(i,null,t)}}),E.fn.extend({trigger:function(e,t){return this.each((function(){E.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return E.event.trigger(e,t,n,!0)}});var jt=/\[\]$/,Nt=/\r?\n/g,zt=/^(?:submit|button|image|reset|file)$/i,Ht=/^(?:input|select|textarea|keygen)/i;function _t(e,t,n,i){var r;if(Array.isArray(t))E.each(t,(function(t,r){n||jt.test(e)?i(e,r):_t(e+"["+("object"==typeof r&&null!=r?t:"")+"]",r,n,i)}));else if(n||"object"!==T(t))i(e,t);else for(r in t)_t(e+"["+r+"]",t[r],n,i)}E.param=function(e,t){var n,i=[],r=function(e,t){var n=v(t)?t():t;i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!E.isPlainObject(e))E.each(e,(function(){r(this.name,this.value)}));else for(n in e)_t(n,e[n],t,r);return i.join("&")},E.fn.extend({serialize:function(){return E.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=E.prop(this,"elements");return e?E.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!E(this).is(":disabled")&&Ht.test(this.nodeName)&&!zt.test(e)&&(this.checked||!Ee.test(e))})).map((function(e,t){var n=E(this).val();return null==n?null:Array.isArray(n)?E.map(n,(function(e){return{name:t.name,value:e.replace(Nt,"\r\n")}})):{name:t.name,value:n.replace(Nt,"\r\n")}})).get()}});var Bt=/%20/g,qt=/#.*$/,Ft=/([?&])_=[^&]*/,$t=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Gt=/^\/\//,Wt={},Vt={},Xt="*/".concat("*"),Yt=b.createElement("a");function Ut(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var i,r=0,s=t.toLowerCase().match(X)||[];if(v(n))for(;i=s[r++];)"+"===i[0]?(i=i.slice(1)||"*",(e[i]=e[i]||[]).unshift(n)):(e[i]=e[i]||[]).push(n)}}function Kt(e,t,n,i){var r={},s=e===Vt;function a(o){var l;return r[o]=!0,E.each(e[o]||[],(function(e,o){var c=o(t,n,i);return"string"!=typeof c||s||r[c]?s?!(l=c):void 0:(t.dataTypes.unshift(c),a(c),!1)})),l}return a(t.dataTypes[0])||!r["*"]&&a("*")}function Zt(e,t){var n,i,r=E.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((r[n]?e:i||(i={}))[n]=t[n]);return i&&E.extend(!0,e,i),e}Yt.href=Lt.href,E.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Lt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Lt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Xt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":E.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Zt(Zt(e,E.ajaxSettings),t):Zt(E.ajaxSettings,e)},ajaxPrefilter:Ut(Wt),ajaxTransport:Ut(Vt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var n,r,s,a,o,l,c,d,u,p,f=E.ajaxSetup({},t),h=f.context||f,m=f.context&&(h.nodeType||h.jquery)?E(h):E.event,g=E.Deferred(),v=E.Callbacks("once memory"),y=f.statusCode||{},w={},x={},T="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(c){if(!a)for(a={};t=$t.exec(s);)a[t[1].toLowerCase()+" "]=(a[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=a[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return c?s:null},setRequestHeader:function(e,t){return null==c&&(e=x[e.toLowerCase()]=x[e.toLowerCase()]||e,w[e]=t),this},overrideMimeType:function(e){return null==c&&(f.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)C.always(e[C.status]);else for(t in e)y[t]=[y[t],e[t]];return this},abort:function(e){var t=e||T;return n&&n.abort(t),S(0,t),this}};if(g.promise(C),f.url=((e||f.url||Lt.href)+"").replace(Gt,Lt.protocol+"//"),f.type=t.method||t.type||f.method||f.type,f.dataTypes=(f.dataType||"*").toLowerCase().match(X)||[""],null==f.crossDomain){l=b.createElement("a");try{l.href=f.url,l.href=l.href,f.crossDomain=Yt.protocol+"//"+Yt.host!=l.protocol+"//"+l.host}catch(e){f.crossDomain=!0}}if(f.data&&f.processData&&"string"!=typeof f.data&&(f.data=E.param(f.data,f.traditional)),Kt(Wt,f,t,C),c)return C;for(u in(d=E.event&&f.global)&&0==E.active++&&E.event.trigger("ajaxStart"),f.type=f.type.toUpperCase(),f.hasContent=!Rt.test(f.type),r=f.url.replace(qt,""),f.hasContent?f.data&&f.processData&&0===(f.contentType||"").indexOf("application/x-www-form-urlencoded")&&(f.data=f.data.replace(Bt,"+")):(p=f.url.slice(r.length),f.data&&(f.processData||"string"==typeof f.data)&&(r+=(It.test(r)?"&":"?")+f.data,delete f.data),!1===f.cache&&(r=r.replace(Ft,"$1"),p=(It.test(r)?"&":"?")+"_="+Pt.guid+++p),f.url=r+p),f.ifModified&&(E.lastModified[r]&&C.setRequestHeader("If-Modified-Since",E.lastModified[r]),E.etag[r]&&C.setRequestHeader("If-None-Match",E.etag[r])),(f.data&&f.hasContent&&!1!==f.contentType||t.contentType)&&C.setRequestHeader("Content-Type",f.contentType),C.setRequestHeader("Accept",f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+("*"!==f.dataTypes[0]?", "+Xt+"; q=0.01":""):f.accepts["*"]),f.headers)C.setRequestHeader(u,f.headers[u]);if(f.beforeSend&&(!1===f.beforeSend.call(h,C,f)||c))return C.abort();if(T="abort",v.add(f.complete),C.done(f.success),C.fail(f.error),n=Kt(Vt,f,t,C)){if(C.readyState=1,d&&m.trigger("ajaxSend",[C,f]),c)return C;f.async&&f.timeout>0&&(o=i.setTimeout((function(){C.abort("timeout")}),f.timeout));try{c=!1,n.send(w,S)}catch(e){if(c)throw e;S(-1,e)}}else S(-1,"No Transport");function S(e,t,a,l){var u,p,b,w,x,T=t;c||(c=!0,o&&i.clearTimeout(o),n=void 0,s=l||"",C.readyState=e>0?4:0,u=e>=200&&e<300||304===e,a&&(w=function(e,t,n){for(var i,r,s,a,o=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===i&&(i=e.mimeType||t.getResponseHeader("Content-Type"));if(i)for(r in o)if(o[r]&&o[r].test(i)){l.unshift(r);break}if(l[0]in n)s=l[0];else{for(r in n){if(!l[0]||e.converters[r+" "+l[0]]){s=r;break}a||(a=r)}s=s||a}if(s)return s!==l[0]&&l.unshift(s),n[s]}(f,C,a)),!u&&E.inArray("script",f.dataTypes)>-1&&E.inArray("json",f.dataTypes)<0&&(f.converters["text script"]=function(){}),w=function(e,t,n,i){var r,s,a,o,l,c={},d=e.dataTypes.slice();if(d[1])for(a in e.converters)c[a.toLowerCase()]=e.converters[a];for(s=d.shift();s;)if(e.responseFields[s]&&(n[e.responseFields[s]]=t),!l&&i&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=s,s=d.shift())if("*"===s)s=l;else if("*"!==l&&l!==s){if(!(a=c[l+" "+s]||c["* "+s]))for(r in c)if((o=r.split(" "))[1]===s&&(a=c[l+" "+o[0]]||c["* "+o[0]])){!0===a?a=c[r]:!0!==c[r]&&(s=o[0],d.unshift(o[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+l+" to "+s}}}return{state:"success",data:t}}(f,w,C,u),u?(f.ifModified&&((x=C.getResponseHeader("Last-Modified"))&&(E.lastModified[r]=x),(x=C.getResponseHeader("etag"))&&(E.etag[r]=x)),204===e||"HEAD"===f.type?T="nocontent":304===e?T="notmodified":(T=w.state,p=w.data,u=!(b=w.error))):(b=T,!e&&T||(T="error",e<0&&(e=0))),C.status=e,C.statusText=(t||T)+"",u?g.resolveWith(h,[p,T,C]):g.rejectWith(h,[C,T,b]),C.statusCode(y),y=void 0,d&&m.trigger(u?"ajaxSuccess":"ajaxError",[C,f,u?p:b]),v.fireWith(h,[C,T]),d&&(m.trigger("ajaxComplete",[C,f]),--E.active||E.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return E.get(e,t,n,"json")},getScript:function(e,t){return E.get(e,void 0,t,"script")}}),E.each(["get","post"],(function(e,t){E[t]=function(e,n,i,r){return v(n)&&(r=r||i,i=n,n=void 0),E.ajax(E.extend({url:e,type:t,dataType:r,data:n,success:i},E.isPlainObject(e)&&e))}})),E.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),E._evalUrl=function(e,t,n){return E.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){E.globalEval(e,t,n)}})},E.fn.extend({wrapAll:function(e){var t;return this[0]&&(v(e)&&(e=e.call(this[0])),t=E(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return v(e)?this.each((function(t){E(this).wrapInner(e.call(this,t))})):this.each((function(){var t=E(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=v(e);return this.each((function(n){E(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){E(this).replaceWith(this.childNodes)})),this}}),E.expr.pseudos.hidden=function(e){return!E.expr.pseudos.visible(e)},E.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},E.ajaxSettings.xhr=function(){try{return new i.XMLHttpRequest}catch(e){}};var Qt={0:200,1223:204},Jt=E.ajaxSettings.xhr();g.cors=!!Jt&&"withCredentials"in Jt,g.ajax=Jt=!!Jt,E.ajaxTransport((function(e){var t,n;if(g.cors||Jt&&!e.crossDomain)return{send:function(r,s){var a,o=e.xhr();if(o.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)o[a]=e.xhrFields[a];for(a in e.mimeType&&o.overrideMimeType&&o.overrideMimeType(e.mimeType),e.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest"),r)o.setRequestHeader(a,r[a]);t=function(e){return function(){t&&(t=n=o.onload=o.onerror=o.onabort=o.ontimeout=o.onreadystatechange=null,"abort"===e?o.abort():"error"===e?"number"!=typeof o.status?s(0,"error"):s(o.status,o.statusText):s(Qt[o.status]||o.status,o.statusText,"text"!==(o.responseType||"text")||"string"!=typeof o.responseText?{binary:o.response}:{text:o.responseText},o.getAllResponseHeaders()))}},o.onload=t(),n=o.onerror=o.ontimeout=t("error"),void 0!==o.onabort?o.onabort=n:o.onreadystatechange=function(){4===o.readyState&&i.setTimeout((function(){t&&n()}))},t=t("abort");try{o.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}})),E.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),E.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return E.globalEval(e),e}}}),E.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),E.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(i,r){t=E("