PageSourceSearch

https://hktools.co.kr/ind-script/optimizer_user.php?filename=lZBBc…16ba54dd320f92dd6397e07&t=1785478718&user=T

js hktools.co.kr collected 2026-10-06 14:00:49 UTC 332,857 bytes, 4,783 lines download raw bytes

1jQuery(document).ready(function() {
2	/*  타임세일.  */
3	var today = new GetServerTime(); // 현재서버시간 each 밖으로 빼서 한번만 실행.
4
5	jQuery( ".layerDiscountPeriod .content p + p" ).each(function( index ) {
6		var date_data = jQuery(this).text(); 
7		var date_start_end = date_data.split(" ~ "); // 시작시간 끝시간으로 자름
8		var start_time = new Date(date_start_end[0].replace(/-/g, "/")); 
9		var end_time = new Date(date_start_end[1].replace(/-/g, "/")); 
10		var product_sale = jQuery(this).parents('.spec').find( 'li[rel="할인판매가"] span > span' ).hide().text(); 
11
12		if (today < start_time)	{
13			// 세일 시작 전
14		} else if ((start_time <= today ) && (today < end_time)) {
15			// 타임세일 중
16			TimerStart(jQuery(this).parents('.description').find( ".saletime" ),1,end_time);
17			jQuery('.layerDiscountPeriod').parents('.description').find( ".timesale_box" ).css("display", "block");
18			jQuery(this).parents('.description').find('.sale_per').append(product_sale);
19		} else {
20
21		}
22	});
23
24	//flag = 0 시작전,  flag = 1 마감전
25	function TimerStart (obj, flag, end_time, end_time2) {
26	
27		if (flag == 0)
28		{
29		} else {
30			obj.countdown({until: end_time, 
31				serverSync: GetServerTime, compact:true,  padZeroes: true, 
32				onExpiry: function() { obj.html("SALE END"); }, 
33				layout: "<div class='untilStart'><span>{dn}</span>day:<span>{hn}</span>:<span>{mn}</span>:<span>{sn}</span></div>"
34			});
35		}
36	}
37
38	/* 서버시간 가져오는 스크립트 */
39	function GetServerTime (param, formula) {
40	/* All HTTP date/time stamps MUST be represented in Greenwich Mean Time (GMT), without exception
41	* 
42	* This function returns a Date or String type value
43	* 
44	* var time = GetServerTime(); // [date] Wed Oct 11 2017 09:48:52 GMT+0900 (대한민국 표준시)
45	var time = GetServerTime(""); // "2017-10-11" , can be any string or variable except as provided below 
46	var time = GetServerTime("day", -1); // "2017-10-10"
47	var time = GetServerTime("week", -1); // "2017-10-04"
48	var time = GetServerTime("month", 1); // "2017-11-11" 
49	var time = GetServerTime("year", 1); // "2018-11-11"
50	*/ 
51		var xmlHttp;
52		if (window.XMLHttpRequest) { 
53			xmlHttp = new XMLHttpRequest(); // upper IE7, Chrome, Firefox
54			xmlHttp.open('HEAD',window.location.href.toString(),false);
55			xmlHttp.setRequestHeader("Content-Type", "text/html");
56			xmlHttp.send('');
57
58			//return xmlHttp.getResponseHeader("Date");
59
60		} else if (window.ActiveXObject) { 
61			//Old versions of IE supported the ability to use ActiveX controls inside the browser. 
62
63			xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
64			xmlHttp.open('HEAD',window.location.href.toString(),false);
65			xmlHttp.setRequestHeader("Content-Type", "text/html");
66			xmlHttp.send('');
67			//return xmlHttp.getResponseHeader("Date");
68		}
69		//return xmlHttp.getResponseHeader("Date");
70		var serverTime = xmlHttp.getResponseHeader("Date");
71
72		if(param!=null) {
73			var ymd = new Date(serverTime); 
74			param = param.toLowerCase().trim();
75
76			if(formula !=null){
77
78				if(!typeof formula=="number") {
79					console.log("변수 formula는 number타입이어야 합니다.");
80				} else if(param=="day"){
81					ymd.setDate(ymd.getDate()+formula);
82				} else if(param=="week"){
83					ymd.setDate(ymd.getDate()+(7*formula));
84				} else if(param=="month"){
85					ymd.setMonth(ymd.getMonth()+formula);
86				} else if(param=="year"){
87					ymd.setFullYear(ymd.getFullYear()+formula);
88				}
89			}
90			var month = '' + (ymd.getMonth() + 1),
91			day = '' + ymd.getDate(), 
92			year = ymd.getFullYear(); 
93
94			if (month.length < 2) month = '0' + month; 
95			if (day.length < 2) day = '0' + day;
96
97			return [year, month, day].join('-');
98		} else {
99			return new Date(serverTime);
100		}
101	}
102
103
104
105 });
106
107
108/*! Simple JavaScript Inheritance
109 * By John Resig http://ejohn.org/
110 * MIT Licensed.
111 */
112!function(){"use strict";var a=!1;window.JQClass=function(){},JQClass.classes={},JQClass.extend=function b(c){function d(){!a&&this._init&&this._init.apply(this,arguments)}var e=this.prototype;a=!0;var f=new this;a=!1;for(var g in c)if("function"==typeof c[g]&&"function"==typeof e[g])f[g]=function(a,b){return function(){var c=this._super;this._super=function(b){return e[a].apply(this,b||[])};var d=b.apply(this,arguments);return this._super=c,d}}(g,c[g]);else if("object"==typeof c[g]&&"object"==typeof e[g]&&"defaultOptions"===g){var h,i=e[g],j=c[g],k={};for(h in i)k[h]=i[h];for(h in j)k[h]=j[h];f[g]=k}else f[g]=c[g];return d.prototype=f,d.prototype.constructor=d,d.extend=b,d}}(),/*! Abstract base class for collection plugins v1.0.2.
113	Written by Keith Wood (wood.keith{at}optusnet.com.au) December 2013.
114	Licensed under the MIT license (http://keith-wood.name/licence.html). */
115function($){"use strict";function camelCase(a){return a.replace(/-([a-z])/g,function(a,b){return b.toUpperCase()})}JQClass.classes.JQPlugin=JQClass.extend({name:"plugin",defaultOptions:{},regionalOptions:{},deepMerge:!0,_getMarker:function(){return"is-"+this.name},_init:function(){$.extend(this.defaultOptions,this.regionalOptions&&this.regionalOptions[""]||{});var a=camelCase(this.name);$[a]=this,$.fn[a]=function(b){var c=Array.prototype.slice.call(arguments,1),d=this,e=this;return this.each(function(){if("string"==typeof b){if("_"===b[0]||!$[a][b])throw"Unknown method: "+b;var f=$[a][b].apply($[a],[this].concat(c));if(f!==d&&void 0!==f)return e=f,!1}else $[a]._attach(this,b)}),e}},setDefaults:function(a){$.extend(this.defaultOptions,a||{})},_attach:function(a,b){if(a=$(a),!a.hasClass(this._getMarker())){a.addClass(this._getMarker()),b=$.extend(this.deepMerge,{},this.defaultOptions,this._getMetadata(a),b||{});var c=$.extend({name:this.name,elem:a,options:b},this._instSettings(a,b));a.data(this.name,c),this._postAttach(a,c),this.option(a,b)}},_instSettings:function(a,b){return{}},_postAttach:function(a,b){},_getMetadata:function(elem){try{var data=elem.data(this.name.toLowerCase())||"";data=data.replace(/(\\?)'/g,function(a,b){return b?"'":'"'}).replace(/([a-zA-Z0-9]+):/g,function(a,b,c){var d=data.substring(0,c).match(/"/g);return d&&d.length%2!==0?b+":":'"'+b+'":'}).replace(/\\:/g,":"),data=$.parseJSON("{"+data+"}");for(var key in data)if(data.hasOwnProperty(key)){var value=data[key];"string"==typeof value&&value.match(/^new Date\(([-0-9,\s]*)\)$/)&&(data[key]=eval(value))}return data}catch(a){return{}}},_getInst:function(a){return $(a).data(this.name)||{}},option:function(a,b,c){a=$(a);var d=a.data(this.name),e=b||{};return!b||"string"==typeof b&&"undefined"==typeof c?(e=(d||{}).options,e&&b?e[b]:e):void(a.hasClass(this._getMarker())&&("string"==typeof b&&(e={},e[b]=c),this._optionsChanged(a,d,e),$.extend(d.options,e)))},_optionsChanged:function(a,b,c){},destroy:function(a){a=$(a),a.hasClass(this._getMarker())&&(this._preDestroy(a,this._getInst(a)),a.removeData(this.name).removeClass(this._getMarker()))},_preDestroy:function(a,b){}}),$.JQPlugin={createPlugin:function(a,b){"object"==typeof a&&(b=a,a="JQPlugin"),a=camelCase(a);var c=camelCase(b.name);JQClass.classes[c]=JQClass.classes[a].extend(b),new JQClass.classes[c]}}}(jQuery);
116//# sourceMappingURL=jquery.plugin.min.map
117/*! http://keith-wood.name/countdown.html
118	Countdown for jQuery v2.1.0.
119	Written by Keith Wood (wood.keith{at}optusnet.com.au) January 2008.
120	Available under the MIT (http://keith-wood.name/licence.html) license. 
121	Please attribute the author if you use it. */
122!function(a){"use strict";var b="countdown",c=0,d=1,e=2,f=3,g=4,h=5,i=6;a.JQPlugin.createPlugin({name:b,defaultOptions:{until:null,since:null,timezone:null,serverSync:null,format:"dHMS",layout:"",compact:!1,padZeroes:!1,significant:0,description:"",expiryUrl:"",expiryText:"",alwaysExpire:!1,onExpiry:null,onTick:null,tickInterval:1},regionalOptions:{"":{labels:["Years","Months","Weeks","Days","Hours","Minutes","Seconds"],labels1:["Year","Month","Week","Day","Hour","Minute","Second"],compactLabels:["y","m","w","d"],whichLabels:null,digits:["0","1","2","3","4","5","6","7","8","9"],timeSeparator:":",isRTL:!1}},_rtlClass:b+"-rtl",_sectionClass:b+"-section",_amountClass:b+"-amount",_periodClass:b+"-period",_rowClass:b+"-row",_holdingClass:b+"-holding",_showClass:b+"-show",_descrClass:b+"-descr",_timerElems:[],_init:function(){function b(a){var h=a<1e12?e?window.performance.now()+window.performance.timing.navigationStart:d():a||d();h-g>=1e3&&(c._updateElems(),g=h),f(b)}var c=this;this._super(),this._serverSyncs=[];var d="function"==typeof Date.now?Date.now:function(){return(new Date).getTime()},e=window.performance&&"function"==typeof window.performance.now,f=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||null,g=0;!f||a.noRequestAnimationFrame?(a.noRequestAnimationFrame=null,a.countdown._timer=setInterval(function(){c._updateElems()},1e3)):(g=window.animationStartTime||window.webkitAnimationStartTime||window.mozAnimationStartTime||window.oAnimationStartTime||window.msAnimationStartTime||d(),f(b))},UTCDate:function(a,b,c,d,e,f,g,h){"object"==typeof b&&b instanceof Date&&(h=b.getMilliseconds(),g=b.getSeconds(),f=b.getMinutes(),e=b.getHours(),d=b.getDate(),c=b.getMonth(),b=b.getFullYear());var i=new Date;return i.setUTCFullYear(b),i.setUTCDate(1),i.setUTCMonth(c||0),i.setUTCDate(d||1),i.setUTCHours(e||0),i.setUTCMinutes((f||0)-(Math.abs(a)<30?60*a:a)),i.setUTCSeconds(g||0),i.setUTCMilliseconds(h||0),i},periodsToSeconds:function(a){return 31557600*a[0]+2629800*a[1]+604800*a[2]+86400*a[3]+3600*a[4]+60*a[5]+a[6]},resync:function(){var b=this;a("."+this._getMarker()).each(function(){var c=a.data(this,b.name);if(c.options.serverSync){for(var d=null,e=0;e<b._serverSyncs.length;e++)if(b._serverSyncs[e][0]===c.options.serverSync){d=b._serverSyncs[e];break}if(b._eqNull(d[2])){var f=a.isFunction(c.options.serverSync)?c.options.serverSync.apply(this,[]):null;d[2]=(f?(new Date).getTime()-f.getTime():0)-d[1]}c._since&&c._since.setMilliseconds(c._since.getMilliseconds()+d[2]),c._until.setMilliseconds(c._until.getMilliseconds()+d[2])}});for(var c=0;c<b._serverSyncs.length;c++)b._eqNull(b._serverSyncs[c][2])||(b._serverSyncs[c][1]+=b._serverSyncs[c][2],delete b._serverSyncs[c][2])},_instSettings:function(a,b){return{_periods:[0,0,0,0,0,0,0]}},_addElem:function(a){this._hasElem(a)||this._timerElems.push(a)},_hasElem:function(b){return a.inArray(b,this._timerElems)>-1},_removeElem:function(b){this._timerElems=a.map(this._timerElems,function(a){return a===b?null:a})},_updateElems:function(){for(var a=this._timerElems.length-1;a>=0;a--)this._updateCountdown(this._timerElems[a])},_optionsChanged:function(b,c,d){d.layout&&(d.layout=d.layout.replace(/&lt;/g,"<").replace(/&gt;/g,">")),this._resetExtraLabels(c.options,d);var e=c.options.timezone!==d.timezone;a.extend(c.options,d),this._adjustSettings(b,c,!this._eqNull(d.until)||!this._eqNull(d.since)||e);var f=new Date;(c._since&&c._since<f||c._until&&c._until>f)&&this._addElem(b[0]),this._updateCountdown(b,c)},_updateCountdown:function(b,c){if(b=b.jquery?b:a(b),c=c||this._getInst(b)){if(b.html(this._generateHTML(c)).toggleClass(this._rtlClass,c.options.isRTL),"pause"!==c._hold&&a.isFunction(c.options.onT
122ick)){var d="lap"!==c._hold?c._periods:this._calculatePeriods(c,c._show,c.options.significant,new Date);1!==c.options.tickInterval&&this.periodsToSeconds(d)%c.options.tickInterval!==0||c.options.onTick.apply(b[0],[d])}var e="pause"!==c._hold&&(c._since?c._now.getTime()<c._since.getTime():c._now.getTime()>=c._until.getTime());if(e&&!c._expiring){if(c._expiring=!0,this._hasElem(b[0])||c.options.alwaysExpire){if(this._removeElem(b[0]),a.isFunction(c.options.onExpiry)&&c.options.onExpiry.apply(b[0],[]),c.options.expiryText){var f=c.options.layout;c.options.layout=c.options.expiryText,this._updateCountdown(b[0],c),c.options.layout=f}c.options.expiryUrl&&(window.location=c.options.expiryUrl)}c._expiring=!1}else"pause"===c._hold&&this._removeElem(b[0])}},_resetExtraLabels:function(a,b){var c=null;for(c in b)c.match(/[Ll]abels[02-9]|compactLabels1/)&&(a[c]=b[c]);for(c in a)c.match(/[Ll]abels[02-9]|compactLabels1/)&&"undefined"==typeof b[c]&&(a[c]=null)},_eqNull:function(a){return"undefined"==typeof a||null===a},_adjustSettings:function(b,c,d){for(var e=null,f=0;f<this._serverSyncs.length;f++)if(this._serverSyncs[f][0]===c.options.serverSync){e=this._serverSyncs[f][1];break}var g=null,h=null;if(this._eqNull(e)){var i=a.isFunction(c.options.serverSync)?c.options.serverSync.apply(b[0],[]):null;g=new Date,h=i?g.getTime()-i.getTime():0,this._serverSyncs.push([c.options.serverSync,h])}else g=new Date,h=c.options.serverSync?e:0;var j=c.options.timezone;j=this._eqNull(j)?-g.getTimezoneOffset():j,(d||!d&&this._eqNull(c._until)&&this._eqNull(c._since))&&(c._since=c.options.since,this._eqNull(c._since)||(c._since=this.UTCDate(j,this._determineTime(c._since,null)),c._since&&h&&c._since.setMilliseconds(c._since.getMilliseconds()+h)),c._until=this.UTCDate(j,this._determineTime(c.options.until,g)),h&&c._until.setMilliseconds(c._until.getMilliseconds()+h)),c._show=this._determineShow(c)},_preDestroy:function(a,b){this._removeElem(a[0]),a.empty()},pause:function(a){this._hold(a,"pause")},lap:function(a){this._hold(a,"lap")},resume:function(a){this._hold(a,null)},toggle:function(b){var c=a.data(b,this.name)||{};this[c._hold?"resume":"pause"](b)},toggleLap:function(b){var c=a.data(b,this.name)||{};this[c._hold?"resume":"lap"](b)},_hold:function(b,c){var d=a.data(b,this.name);if(d){if("pause"===d._hold&&!c){d._periods=d._savePeriods;var e=d._since?"-":"+";d[d._since?"_since":"_until"]=this._determineTime(e+d._periods[0]+"y"+e+d._periods[1]+"o"+e+d._periods[2]+"w"+e+d._periods[3]+"d"+e+d._periods[4]+"h"+e+d._periods[5]+"m"+e+d._periods[6]+"s"),this._addElem(b)}d._hold=c,d._savePeriods="pause"===c?d._periods:null,a.data(b,this.name,d),this._updateCountdown(b,d)}},getTimes:function(b){var c=a.data(b,this.name);return c?"pause"===c._hold?c._savePeriods:c._hold?this._calculatePeriods(c,c._show,c.options.significant,new Date):c._periods:null},_determineTime:function(a,b){var c=this,d=function(a){var b=new Date;return b.setTime(b.getTime()+1e3*a),b},e=function(a){a=a.toLowerCase();for(var b=new Date,d=b.getFullYear(),e=b.getMonth(),f=b.getDate(),g=b.getHours(),h=b.getMinutes(),i=b.getSeconds(),j=/([+-]?[0-9]+)\s*(s|m|h|d|w|o|y)?/g,k=j.exec(a);k;){switch(k[2]||"s"){case"s":i+=parseInt(k[1],10);break;case"m":h+=parseInt(k[1],10);break;case"h":g+=parseInt(k[1],10);break;case"d":f+=parseInt(k[1],10);break;case"w":f+=7*parseInt(k[1],10);break;case"o":e+=parseInt(k[1],10),f=Math.min(f,c._getDaysInMonth(d,e));break;case"y":d+=parseInt(k[1],10),f=Math.min(f,c._getDaysInMonth(d,e))}k=j.exec(a)}return new Date(d,e,f,g,h,i,0)},f=this._eqNull(a)?b:"string"==typeof a?e(a):"number"==typeof a?d(a):a;return f&&f.setMilliseconds(0),f},_getDaysInMonth:function(a,b){return 32-new Date(a,b,32).getDate()},_normalLabels:function(a){return a},_generateHTML:function(b){var j=this;b._periods=b._hold?b._periods:this._calculatePeriods(b,b._show,b.options.significant,new Date);var k=!1,l=0,m=b.options.significant,n=a.extend({},b._show),o=null;for(o=c;o<=i;o++)k=k||"?"===b._show[o]&&b._periods[o]>0,n[o]="?"!==b._show[o]||k?b._show[o]:null,l+=n[o]?1:0,m-=b._periods[o]>0?1:0;
122var p=[!1,!1,!1,!1,!1,!1,!1];for(o=i;o>=c;o--)b._show[o]&&(b._periods[o]?p[o]=!0:(p[o]=m>0,m--));var q=b.options.compact?b.options.compactLabels:b.options.labels,r=b.options.whichLabels||this._normalLabels,s=function(a){var c=b.options["compactLabels"+r(b._periods[a])];return n[a]?j._translateDigits(b,b._periods[a])+(c?c[a]:q[a])+" ":""},t=b.options.padZeroes?2:1,u=function(a){var c=b.options["labels"+r(b._periods[a])];return!b.options.significant&&n[a]||b.options.significant&&p[a]?'<span class="'+j._sectionClass+'"><span class="'+j._amountClass+'">'+j._minDigits(b,b._periods[a],t)+'</span><span class="'+j._periodClass+'">'+(c?c[a]:q[a])+"</span></span>":""};return b.options.layout?this._buildLayout(b,n,b.options.layout,b.options.compact,b.options.significant,p):(b.options.compact?'<span class="'+this._rowClass+" "+this._amountClass+(b._hold?" "+this._holdingClass:"")+'">'+s(c)+s(d)+s(e)+s(f)+(n[g]?this._minDigits(b,b._periods[g],2):"")+(n[h]?(n[g]?b.options.timeSeparator:"")+this._minDigits(b,b._periods[h],2):"")+(n[i]?(n[g]||n[h]?b.options.timeSeparator:"")+this._minDigits(b,b._periods[i],2):""):'<span class="'+this._rowClass+" "+this._showClass+(b.options.significant||l)+(b._hold?" "+this._holdingClass:"")+'">'+u(c)+u(d)+u(e)+u(f)+u(g)+u(h)+u(i))+"</span>"+(b.options.description?'<span class="'+this._rowClass+" "+this._descrClass+'">'+b.options.description+"</span>":"")},_buildLayout:function(b,j,k,l,m,n){for(var o=b.options[l?"compactLabels":"labels"],p=b.options.whichLabels||this._normalLabels,q=function(a){return(b.options[(l?"compactLabels":"labels")+p(b._periods[a])]||o)[a]},r=function(a,c){return b.options.digits[Math.floor(a/c)%10]},s={desc:b.options.description,sep:b.options.timeSeparator,yl:q(c),yn:this._minDigits(b,b._periods[c],1),ynn:this._minDigits(b,b._periods[c],2),ynnn:this._minDigits(b,b._periods[c],3),y1:r(b._periods[c],1),y10:r(b._periods[c],10),y100:r(b._periods[c],100),y1000:r(b._periods[c],1e3),ol:q(d),on:this._minDigits(b,b._periods[d],1),onn:this._minDigits(b,b._periods[d],2),onnn:this._minDigits(b,b._periods[d],3),o1:r(b._periods[d],1),o10:r(b._periods[d],10),o100:r(b._periods[d],100),o1000:r(b._periods[d],1e3),wl:q(e),wn:this._minDigits(b,b._periods[e],1),wnn:this._minDigits(b,b._periods[e],2),wnnn:this._minDigits(b,b._periods[e],3),w1:r(b._periods[e],1),w10:r(b._periods[e],10),w100:r(b._periods[e],100),w1000:r(b._periods[e],1e3),dl:q(f),dn:this._minDigits(b,b._periods[f],1),dnn:this._minDigits(b,b._periods[f],2),dnnn:this._minDigits(b,b._periods[f],3),d1:r(b._periods[f],1),d10:r(b._periods[f],10),d100:r(b._periods[f],100),d1000:r(b._periods[f],1e3),hl:q(g),hn:this._minDigits(b,b._periods[g],1),hnn:this._minDigits(b,b._periods[g],2),hnnn:this._minDigits(b,b._periods[g],3),h1:r(b._periods[g],1),h10:r(b._periods[g],10),h100:r(b._periods[g],100),h1000:r(b._periods[g],1e3),ml:q(h),mn:this._minDigits(b,b._periods[h],1),mnn:this._minDigits(b,b._periods[h],2),mnnn:this._minDigits(b,b._periods[h],3),m1:r(b._periods[h],1),m10:r(b._periods[h],10),m100:r(b._periods[h],100),m1000:r(b._periods[h],1e3),sl:q(i),sn:this._minDigits(b,b._periods[i],1),snn:this._minDigits(b,b._periods[i],2),snnn:this._minDigits(b,b._periods[i],3),s1:r(b._periods[i],1),s10:r(b._periods[i],10),s100:r(b._periods[i],100),s1000:r(b._periods[i],1e3)},t=k,u=c;u<=i;u++){var v="yowdhms".charAt(u),w=new RegExp("\\{"+v+"<\\}([\\s\\S]*)\\{"+v+">\\}","g");t=t.replace(w,!m&&j[u]||m&&n[u]?"$1":"")}return a.each(s,function(a,b){var c=new RegExp("\\{"+a+"\\}","g");t=t.replace(c,b)}),t},_minDigits:function(a,b,c){return b=""+b,b.length>=c?this._translateDigits(a,b):(b="0000000000"+b,this._translateDigits(a,b.substr(b.length-c)))},_translateDigits:function(a,b){return(""+b).replace(/[0-9]/g,function(b){return a.options.digits[b]})},_determineShow:function(a){var b=a.options.format,j=[];return j[c]=b.match("y")?"?":b.match("Y")?"!":null,j[d]=b.match("o")?"?":b.match("O")?"!":null,j[e]=b.match("w")?"?":b.match("W")?"!":null,j[f]=b.match("d")?"?":b.match("D")?"!":null,j[g]=b.match("h")?"?":b.match("H")?"!":null,j[h]=b.match("m")?"?":b.match("M")?"!":null,j[i]=b.match("s")?"?":b.match("S")?"!":null,j}
122,_calculatePeriods:function(a,b,j,k){a._now=k,a._now.setMilliseconds(0);var l=new Date(a._now.getTime());a._since?k.getTime()<a._since.getTime()?a._now=k=l:k=a._since:(l.setTime(a._until.getTime()),k.getTime()>a._until.getTime()&&(a._now=k=l));var m=[0,0,0,0,0,0,0];if(b[c]||b[d]){var n=this._getDaysInMonth(k.getFullYear(),k.getMonth()),o=this._getDaysInMonth(l.getFullYear(),l.getMonth()),p=l.getDate()===k.getDate()||l.getDate()>=Math.min(n,o)&&k.getDate()>=Math.min(n,o),q=function(a){return 60*(60*a.getHours()+a.getMinutes())+a.getSeconds()},r=Math.max(0,12*(l.getFullYear()-k.getFullYear())+l.getMonth()-k.getMonth()+(l.getDate()<k.getDate()&&!p||p&&q(l)<q(k)?-1:0));m[c]=b[c]?Math.floor(r/12):0,m[d]=b[d]?r-12*m[c]:0,k=new Date(k.getTime());var s=k.getDate()===n,t=this._getDaysInMonth(k.getFullYear()+m[c],k.getMonth()+m[d]);k.getDate()>t&&k.setDate(t),k.setFullYear(k.getFullYear()+m[c]),k.setMonth(k.getMonth()+m[d]),s&&k.setDate(t)}var u=Math.floor((l.getTime()-k.getTime())/1e3),v=null,w=function(a,c){m[a]=b[a]?Math.floor(u/c):0,u-=m[a]*c};if(w(e,604800),w(f,86400),w(g,3600),w(h,60),w(i,1),u>0&&!a._since){var x=[1,12,4.3482,7,24,60,60],y=i,z=1;for(v=i;v>=c;v--)b[v]&&(m[y]>=z&&(m[y]=0,u=1),u>0&&(m[v]++,u=0,y=v,z=1)),z*=x[v]}if(j)for(v=c;v<=i;v++)j&&m[v]?j--:j||(m[v]=0);return m}})}(jQuery);
123//# sourceMappingURL=jquery.countdown.min.map
124$(function(){ 
125    if($(".menuCategory > li").length==0){
126         $(".menuCategory").hide();
127    };
128    
129    $('.xans-product-menupackage .menuCategory > li > ul > li > .button').hover(function(){
130        $(this).addClass('selected');
131        },function(){
132        $(this).removeClass('selected');
133        });
134});
135/**
136 * 조건별 검색 기능 스크립트
137 */
138$(document).ready(function()
139{
140    var sParentElement = 'select.SecondSelect';
141    $('select.FirstSelect').change(function()
142    {
143        var iGroupNo = $(this).find('option:selected').val();
144        if (iGroupNo > 0) {
145            $.ajax({
146                url : '/product/provider/selectsearch.xml?GroupNo=' + iGroupNo,
147                dataType : 'text',
148                success : function(data){
149                    if ( window.DOMParser ) {
150                        tmp = new DOMParser();
151                        xml = tmp.parseFromString( data , "text/xml" );
152                    } else {
153                        xml = new ActiveXObject( "Microsoft.XMLDOM" );
154                        xml.async = "false";
155                        xml.loadXML( data );
156                    }
157
158                    $(sParentElement).html('');
159                    getOptionElement('','-세부항목선택-').appendTo(sParentElement);
160                    var nodes = $(xml).find('searchkey');
161                    for ( var x = 0 ; x < nodes.length ; x++) {
162                        getOptionElement($(nodes[x]).find('search_value').text(),$(nodes[x]).find('search_value').text()).appendTo(sParentElement);
163                    }
164                }
165            });
166        }
167    });
168    $('a.SelectSearch').click(function()
169    {
170        var sGroup = $('select.FirstSelect').val();
171        var sItem = $('select.SecondSelect').val();
172        if (!sGroup) {
173            alert('조건을 선택해 주세요.');
174            return false;
175        }
176        if (!sItem) {
177            alert('세부 항목을 선택해 주세요.');
178            return false;
179        }
180        location.href = document.location.href.split('?')[0].split(document.domain)[1] + '?' + sSSUrl + '&sGroup=' + sGroup + '&sItem=' + sItem;
181    });
182
183    function getOptionElement(sVal, sTitle)
184    {
185        return $("<option value='" + sVal + "'>" + sTitle + "</option>");
186    }
187});
188/**
189 * 움직이는 배너 Jquery Plug-in
190 * @author  cafe24
191 */
192
193(function($){
194
195    $.fn.floatBanner = function(options) {
196        options = $.extend({}, $.fn.floatBanner.defaults , options);
197
198        return this.each(function() {
199            var aPosition = $(this).position();
200            var jbOffset = $(this).offset();
201            var node = this;
202
203            $(window).scroll(function() {
204                var _top = $(document).scrollTop();
205                _top = (aPosition.top < _top) ? _top : aPosition.top;
206
207                setTimeout(function () {
208                    var newinit = $(document).scrollTop();
209
210                    if ( newinit > jbOffset.top ) {
211                        _top -= jbOffset.top;
212                        var container_height = $("#wrap").height();
213                        var quick_height = $(node).height();
214                        var cul = container_height - quick_height;
215                        if(_top > cul){
216                            _top = cul;
217                        }
218                    }else {
219                        _top = 0;
220                    }
221
222                    $(node).stop().animate({top: _top}, options.animate);
223                }, options.delay);
224            });
225        });
226    };
227
228    $.fn.floatBanner.defaults = {
229        'animate'  : 500,
230        'delay'    : 500
231    };
232
233})(jQuery);
234
235/**
236 * 문서 구동후 시작
237 */
238$(document).ready(function(){
239    $('#banner:visible, #quick:visible').floatBanner();
240
241    //placeholder
242    $(".ePlaceholder input, .ePlaceholder textarea").each(function(i){
243        var placeholderName = $(this).parents().attr('title');
244        $(this).attr("placeholder", placeholderName);
245    });
246    /* placeholder ie8, ie9 */
247    $.fn.extend({
248        placeholder : function() {
249            //IE 8 버전에는 hasPlaceholderSupport() 값이 false를 리턴
250           if (hasPlaceholderSupport() === true) {
251                return this;
252            }
253            //hasPlaceholderSupport() 값이 false 일 경우 아래 코드를 실행
254            return this.each(function(){
255                var findThis = $(this);
256                var sPlaceholder = findThis.attr('placeholder');
257                if ( ! sPlaceholder) {
258                   return;
259                }
260                findThis.wrap('<label class="ePlaceholder" />');
261                var sDisplayPlaceHolder = $(this).val() ? ' style="display:none;"' : '';
262                findThis.before('<span' + sDisplayPlaceHolder + '>' + sPlaceholder + '</span>');
263                this.onpropertychange = function(e){
264                    e = event || e;
265                    if (e.propertyName == 'value') {
266                        $(this).trigger('focusout');
267                    }
268                };
269                //공통 class
270                var agent = navigator.userAgent.toLowerCase();
271                if (agent.indexOf("msie") != -1) {
272                    $(".ePlaceholder").css({"position":"relative"});
273                    $(".ePlaceholder span").css({"position":"absolute", "padding":"0 4px", "color":"#878787"});
274                    $(".ePlaceholder label").css({"padding":"0"});
275                }
276            });
277        }
278    });
279
280    $(':input[placeholder]').placeholder(); //placeholder() 함수를 호출
281
282    //클릭하면 placeholder 숨김
283    $('body').delegate('.ePlaceholder span', 'click', function(){
284        $(this).hide();
285    });
286
287    //input창 포커스 인 일때 placeholder 숨김
288    $('body').delegate('.ePlaceholder :input', 'focusin', function(){
289        $(this).prev('span').hide();
290    });
291
292    //input창 포커스 아웃 일때 value 가 true 이면 숨김, false 이면 보여짐
293    $('body').delegate('.ePlaceholder :input', 'focusout', function(){
294        if (this.value) {
295            $(this).prev('span').hide();
296        } else {
297            $(this).prev('span').show();
298        }
299    });
300
301    //input에 placeholder가 지원이 되면 true를 안되면 false를 리턴값으로 던져줌
302    function hasPlaceholderSupport() {
303        if ('placeholder' in document.createElement('input')) {
304            return true;
305        } else {
306            return false;
307        }
308    }
309});
310
311/**
312 *  썸네일 이미지 엑박일경우 기본값 설정
313 */
314$(window).load(function() {
315    $("img.thumb,img.ThumbImage,img.BigImage").each(function($i,$item){
316        var $img = new Image();
317        $img.onerror = function () {
318                $item.src="//img.echosting.cafe24.com/thumb/img_product_big.gif";
319        }
320        $img.src = this.src;
321    });
322});
323
324/**
325 *  tooltip
326 */
327$('.eTooltip').each(function(i){
328    $(this).find('.btnClose').attr('tabIndex','-1');
329});
330//tooltip input focus
331$('.eTooltip').find('input').focus(function() {
332    var targetName = returnTagetName(this);
333    targetName.siblings('.ec-base-tooltip').show();
334});
335$('.eTooltip').find('input').focusout(function() {
336    var targetName = returnTagetName(this);
337    targetName.siblings('.ec-base-tooltip').hide();
338});
339function returnTagetName(_this){
340    var ePlacename = $(_this).parent().attr("class");
341    var targetName;
342    if(ePlacename == "ePlaceholder"){ //ePlaceholder 대응
343        targetName = $(_this).parents();
344    }else{
345        targetName = $(_this);
346    }
347    return targetName;
348}
349
350/**
351 *  eTab
352 */
353 $("body").delegate(".eTab a", "click", function(e){
354    // 클릭한 li 에 selected 클래스 추가, 기존 li에 있는 selected 클래스는 삭제.
355    var _li = $(this).parent("li").addClass("selected").siblings().removeClass("selected"),
356    _target = $(this).attr("href"),
357    _siblings = $(_target).attr("class"),
358    _arr = _siblings.split(" "),
359    _classSiblings = "."+_arr[0];
360
361    //클릭한 탭에 해당하는 요소는 활성화, 기존 요소는 비활성화 함.
362    $(_target).show().siblings(_classSiblings).hide();
363
364
365    //preventDefault 는 a 태그 처럼 클릭 이벤트 외에 별도의 브라우저 행동을 막기 위해 사용됨.
366    e.preventDefault();
367});
368
369
370
371//window popup script
372function winPop(url) {
373    window.open(url, "popup", "width=300,height=300,left=10,top=10,resizable=no,scrollbars=no");
374}
375/**
376 * document.location.href split
377 * return array Param
378 */
379function getQueryString(sKey)
380{
381    var sQueryString = document.location.search.substring(1);
382    var aParam       = {};
383
384    if (sQueryString) {
385        var aFields = sQueryString.split("&");
386        var aField  = [];
387        for (var i=0; i<aFields.length; i++) {
388            aField = aFields[i].split('=');
389            aParam[aField[0]] = aField[1];
390        }
391    }
392
393    aParam.page = aParam.page ? aParam.page : 1;
394    return sKey ? aParam[sKey] : aParam;
395};
396
397$(document).ready(function(){
398    // tab
399    $.eTab = function(ul){
400        $(ul).find('a').click(function(){
401            var _li = $(this).parent('li').addClass('selected').siblings().removeClass('selected'),
402                _target = $(this).attr('href'),
403                _siblings = '.' + $(_target).attr('class');
404            $(_target).show().siblings(_siblings).hide();
405            return false
406        });
407    }
408    if ( window.call_eTab ) {
409        call_eTab();
410    };
411});
412
413
414EC$(function($) {
415    var filter = "win16|win32|win64|mac|macintel";
416    var device = "pc";
417    if (navigator.platform) {
418        if (filter.indexOf(navigator.platform.toLowerCase()) < 0) { device = "mobile"; }
419    }
420
421    /**
422     * 상품상세, 상품 확대보기(팝업) - 소비자가 할인표시 */
423    var oPriceInfoEl = $('#ec-product-price-info');
424    if (oPriceInfoEl.length > 0) {
425        var salePriceEl = $('#span_product_price_text');
426        percentageCul(oPriceInfoEl, salePriceEl);
427    }    
428
429    /**
430    * 상품목록/메인진열 - 소비자가 할인표시*/
431    var mainEl = $("#main");
432//    if (mainEl.length > 0) {
433      var productListEl = $('.xans-product-listmain, .xans-product-listrecommend, .xans-product-listnew, .xans-product-listnormal, .xans-search-result');
434        for (var i = 0; i < productListEl.length; i++) {
435            var prdListEl = productListEl.eq(i).find('.prdList>li');
436            $(prdListEl).each(function(index,item){
437                var price = $(item).find('.price').attr('ec-data-cu
437stom');
438                var salePrice = $(item).find('.price').attr('ec-data-price');
439                var perEl = $(item).find('.per');
440                
441                percentageCul(perEl, price, salePrice);
442
443            });
444        }
445//    }
446
447    function percentageCul(target, price , salePrice) {
448        var regex = /[^0-9]/g;			
449        var iCustomPrice = price.replace(regex, ""),
450            iPrice = salePrice.replace(regex, ""),
451            sDisplayAmount = 'p', // p:할인율, w:할인금액
452            iOfftoFixed = 1, // 할인율 소수점자릿수
453            sSaleText = '',
454            regexp = /B(?=(d{3})+(?!d))/g;
455        if (iCustomPrice > 0 && iPrice > 0 && iPrice != iCustomPrice) {
456            if (sDisplayAmount == 'p') {
457                sSaleText = (((iCustomPrice - iPrice) / iCustomPrice) * 100).toFixed(iOfftoFixed) + '%';
458            } else if (sDisplayAmount == 'w') {
459                sSaleText = parseInt(iCustomPrice - iPrice).toString().replace(regexp, ',') + '원';
460            }
461            //salePriceEl.append('<span class="ec-sale-rate"> ' + sSaleText + '</span>');
462
463            target.text(sSaleText);
464        }
465        if(iPrice == iCustomPrice){
466            target.siblings('.custom').hide();
467        }
468    }
469});
470(function($){
471$.fn.extend({
472    center: function() {
473        this.each(function() {
474            var
475                $this = $(this),
476                $w = $(window);
477            $this.css({
478                position: "absolute",
479                top: ~~(($w.height() - $this.outerHeight()) / 2) + $w.scrollTop() + "px",
480                left: ~~(($w.width() - $this.outerWidth()) / 2) + $w.scrollLeft() + "px"
481            });
482        });
483        return this;
484    }
485});
486$(function() {
487    var $container = function(){/*
488<div id="modalContainer">
489    <iframe id="modalContent" scroll="0" scrolling="no" frameBorder="0"></iframe>
490</div>');
491*/}.toString().slice(14,-3);
492    $('body')
493    .append($('<div id="modalBackpanel"></div>'))
494    .append($($container));
495    function closeModal () {
496        $('#modalContainer').hide();
497        $('#modalBackpanel').hide();
498    }
499    $('#modalBackpanel').click(closeModal);
500    zoom = function ($piProductNo, $piCategoryNo, $piDisplayGroup) {
501        var $url = '/product/image_zoom.html?product_no=' + $piProductNo + '&cate_no=' + $piCategoryNo + '&display_group=' + $piDisplayGroup;
502        $('#modalContent').attr('src', $url);
503        $('#modalContent').bind("load",function(){
504            $(".header .close",this.contentWindow.document.body).bind("click", closeModal);
505        });
506        $('#modalBackpanel').css({width:$("body").width(),height:$("body").height(),opacity:.4}).show();
507        $('#modalContainer').center().show();
508    }
509});
510})(jQuery);
511/*================================================================================
512 * @name: bPopup - if you can't get it up, use bPopup
513 * @author: (c)Bjoern Klinggaard (twitter@bklinggaard)
514 * @demo: http://dinbror.dk/bpopup
515 * @version: 0.11.0.min
516 ================================================================================*/
517 (function(c){c.fn.bPopup=function(A,E){function L(){a.contentContainer=c(a.contentContainer||b);switch(a.content){case "iframe":var d=c('<iframe class="b-iframe" '+a.iframeAttr+"></iframe>");d.appendTo(a.contentContainer);t=b.outerHeight(!0);u=b.outerWidth(!0);B();d.attr("src",a.loadUrl);l(a.loadCallback);break;case "image":B();c("<img />").load(function(){l(a.loadCallback);F(c(this))}).attr("src",a.loadUrl).hide().appendTo(a.contentContainer);break;default:B(),c('<div class="b-ajax-wrapper"></div>').load(a.loadUrl,a.loadData,function(d,b,e){l(a.loadCallback,b);F(c(this))}).hide().appendTo(a.contentContainer)}}function B(){a.modal&&c('<div class="b-modal '+e+'"></div>').css({backgroundColor:a.modalColor,position:"fixed",top:0,right:0,bottom:0,left:0,opacity:0,zIndex:a.zIndex+v}).appendTo(a.appendTo).fadeTo(a.speed,a.opacity);C();b.data("bPopup",a).data("id",e).css({left:"slideIn"==a.transition||"slideBack"==a.transition?"slideBack"==a.transition?f.scrollLeft()+w:-1*(x+u):m(!(!a.follow[0]&&n||g)),position:a.positionStyle||"absolute",top:"slideDown"==a.transition||"slideUp"==a.transition?"slideUp"==a.transition?f.scrollTop()+y:z+-1*t:p(!(!a.follow[1]&&q||g)),"z-index":a.zIndex+v+1}).each(function(){a.appending&&c(this).appendTo(a.appendTo)});G(!0)}function r(){a.modal&&c(".b-modal."+b.data("id")).fadeTo(a.speed,0,function(){c(this).remove()});a.scrollBar||c("html").css("overflow","auto");c(".b-modal."+e).unbind("click");f.unbind("keydown."+e);k.unbind("."+e).data("bPopup",0<k.data("bPopup")-1?k.data("bPopup")-1:null);b.undelegate(".bClose, ."+a.closeClass,"click."+e,r).data("bPopup",
517null);clearTimeout(H);G();return!1}function I(d){y=k.height();w=k.width();h=D();if(h.x||h.y)clearTimeout(J),J=setTimeout(function(){C();d=d||a.followSpeed;var e={};h.x&&(e.left=a.follow[0]?m(!0):"auto");h.y&&(e.top=a.follow[1]?p(!0):"auto");b.dequeue().each(function(){g?c(this).css({left:x,top:z}):c(this).animate(e,d,a.followEasing)})},50)}function F(d){var c=d.width(),e=d.height(),f={};a.contentContainer.css({height:e,width:c});e>=b.height()&&(f.height=b.height());c>=b.width()&&(f.width=b.width());t=b.outerHeight(!0);u=b.outerWidth(!0);C();a.contentContainer.css({height:"auto",width:"auto"});f.left=m(!(!a.follow[0]&&n||g));f.top=p(!(!a.follow[1]&&q||g));b.animate(f,250,function(){d.show();h=D()})}function M(){k.data("bPopup",v);b.delegate(".bClose, ."+a.closeClass,"click."+e,r);a.modalClose&&c(".b-modal."+e).css("cursor","pointer").bind("click",r);N||!a.follow[0]&&!a.follow[1]||k.bind("scroll."+e,function(){if(h.x||h.y){var d={};h.x&&(d.left=a.follow[0]?m(!g):"auto");h.y&&(d.top=a.follow[1]?p(!g):"auto");b.dequeue().animate(d,a.followSpeed,a.followEasing)}}).bind("resize."+e,function(){I()});a.escClose&&f.bind("keydown."+e,function(a){27==a.which&&r()})}function G(d){function c(e){b.css({display:"block",opacity:1}).animate(e,a.speed,a.easing,function(){K(d)})}switch(d?a.transition:a.transitionClose||a.transition){case "slideIn":c({left:d?m(!(!a.follow[0]&&n||g)):f.scrollLeft()-(u||b.outerWidth(!0))-200});break;case "slideBack":c({left:d?m(!(!a.follow[0]&&n||g)):f.scrollLeft()+w+200});break;case "slideDown":c({top:d?p(!(!a.follow[1]&&q||g)):f.scrollTop()-(t||b.outerHeight(!0))-200});break;case "slideUp":c({top:d?p(!(!a.follow[1]&&q||g)):f.scrollTop()+y+200});break;default:b.stop().fadeTo(a.speed,d?1:0,function(){K(d)})}}function K(d){d?(M(),l(E),a.autoClose&&(H=setTimeout(r,a.autoClose))):(b.hide(),l(a.onClose),a.loadUrl&&(a.contentContainer.empty(),b.css({height:"auto",width:"auto"})))}function m(a){return a?x+f.scrollLeft():x}function p(a){return a?z+f.scrollTop():z}function l(a,e){c.isFunction(a)&&a.call(b,e)}function C(){z=q?a.position[1]:Math.max(0,(y-b.outerHeight(!0))/2-a.amsl);x=n?a.position[0]:(w-b.outerWidth(!0))/2;h=D()}function D(){return{x:w>b.outerWidth(!0),y:y>b.outerHeight(!0)}}c.isFunction(A)&&(E=A,A=null);var a=c.extend({},c.fn.bPopup.defaults,A);a.scrollBar||c("html").css("overflow","hidden");var b=this,f=c(document),k=c(window),y=k.height(),w=k.width(),N=/OS 6(_\d)+/i.test(navigator.userAgent),v=0,e,h,q,n,g,z,x,t,u,J,H;b.close=function(){r()};b.reposition=function(a){I(a)};return b.each(function(){c(this).data("bPopup")||(l(a.onOpen),v=(k.data("bPopup")||0)+1,e="__b-popup"+v+"__",q="auto"!==a.position[1],n="auto"!==a.position[0],g="fixed"===a.positionStyle,t=b.outerHeight(!0),u=b.outerWidth(!0),a.loadUrl?L():B())})};c.fn.bPopup.defaults={amsl:50,appending:!0,appendTo:"body",autoClose:!1,closeClass:"b-close",content:"ajax",contentContainer:!1,easing:"swing",escClose:!0,follow:[!0,!0],followEasing:"swing",followSpeed:500,iframeAttr:'scrolling="no" frameborder="0"',loadCallback:!1,loadData:!1,loadUrl:!1,modal:!0,modalClose:!0,modalColor:"#000",onClose:!1,onOpen:!1,opacity:.7,position:["auto","auto"],positionStyle:"absolute",scrollBar:!0,speed:250,transition:"fadeIn",transitionClose:!1,zIndex:9997}})(jQuery);
518
519jQuery(document).ready(function () {
520    /* 상단영역 고정   */
521    var msie6 = $.browser == "msie" && $.browser.version < 7;
522    if (!msie6) {
523         var top = 0;
524        jQuery(window).scroll(function (event) {
525            // what the y position of the scroll is
526            var y = jQuery(this).scrollTop();
527
528            // whether that's below the form
529            if (y  > top) {
530                // if so, ad the fixed class
531                jQuery("#header").addClass("fixed");
532                jQuery("#wrap").addClass("mt131");
533            } else {
534                // otherwise remove it
535                jQuery("#header").removeClass("fixed");
536                jQuery("#wrap").removeClass("mt131");
537            }
538        });
539    }
540
541    /* 검색 팝업   */
542    jQuery("#icon_search").bind("click", function (e) {
543        e.preventDefault();
544        jQuery("#quick_search").bPopup({
545            follow: [true, true],
546            position: ["auto", "auto"],
547            closeClass: ".quick_searchClose",
548            modalClose: true,
549            modalColor: "#000",
550            opacity: 0.7,
551            positionStyle: "fixed",
552            transition: "fadeIn",
553        });
554    });
555
556    /* 카테고리 SHOP버튼 토글.   */
557    jQuery(".top_cate")
558        .mouseenter(function () {
559            jQuery("#category").css("display", "block");
560            jQuery(".top_cate > a").addClass("on");
561        })
562        .mouseleave(function () {
563            jQuery("#category").css("display", "none");
564            jQuery(".top_cate > a").removeClass("on");
565        });
566
567    /* 전체 게시판 적립금아이콘 수정   */
568    jQuery("#mileage_icon a").html("적립금주기");
569});
570
571/**
572 * Swiper 11.2.10
573 * Most modern mobile touch slider and framework with hardware accelerated transitions
574 * https://swiperjs.com
575 *
576 * Copyright 2014-2025 Vladimir Kharlampidi
577 *
578 * Released under the MIT License
579 *
580 * Released on: June 28, 2025
581 */
582
583var Swiper=function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(s,a){void 0===s&&(s={}),void 0===a&&(a={});const i=["__proto__","constructor","prototype"];Object.keys(a).filter((e=>
vendor: 4,922 bytes, line 583
583i.indexOf(e)<0)).forEach((i=>{void 0===s[i]?s[i]=a[i]:e(a[i])&&e(s[i])&&Object.keys(a[i]).length>0&&t(s[i],a[i])}))}const s={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 a(){const e="undefined"!=typeof document?document:{};return t(e,s),e}const i={document:s,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 r(){const e="undefined"!=typeof window?window:{};return t(e,i),e}function n(e){return void 0===e&&(e=""),e.trim().split(" ").filter((e=>!!e.trim()))}function l(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function o(){return Date.now()}function d(e,t){void 0===t&&(t="x");const s=r();let a,i,n;const l=function(e){const t=r();let s;return t.getComputedStyle&&(s=t.getComputedStyle(e,null)),!s&&e.currentStyle&&(s=e.currentStyle),s||(s=e.style),s}(e);return s.WebKitCSSMatrix?(i=l.transform||l.webkitTransform,i.split(",").length>6&&(i=i.split(", ").map((e=>e.replace(",","."))).join(", ")),n=new s.WebKitCSSMatrix("none"===i?"":i)):(n=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),a=n.toString().split(",")),"x"===t&&(i=s.WebKitCSSMatrix?n.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(i=s.WebKitCSSMatrix?n.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),i||0}function c(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function p(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let a=1;a<arguments.length;a+=1){const i=a<0||arguments.length<=a?void 0:arguments[a];if(null!=i&&(s=i,!("undefined"!=typeof window&&void 0!==window.HTMLElement?s instanceof HTMLElement:s&&(1===s.nodeType||11===s.nodeType)))){const s=Object.keys(Object(i)).filter((e=>t.indexOf(e)<0));for(let t=0,a=s.length;t<a;t+=1){const a=s[t],r=Object.getOwnPropertyDescriptor(i,a);void 0!==r&&r.enumerable&&(c(e[a])&&c(i[a])?i[a].__swiper__?e[a]=i[a]:p(e[a],i[a]):!c(e[a])&&c(i[a])?(e[a]={},i[a].__swiper__?e[a]=i[a]:p(e[a],i[a])):e[a]=i[a])}}}var s;return e}function u(e,t,s){e.style.setProperty(t,s)}function m(e){let{swiper:t,targetPosition:s,side:a}=e;const i=r(),n=-t.translate;let l,o=null;const d=t.params.speed;t.wrapperEl.style.scrollSnapType="none",i.cancelAnimationFrame(t.cssModeFrameID);const c=s>n?"next":"prev",p=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,u=()=>{l=(new Date).getTime(),null===o&&(o=l);const e=Math.max(Math.min((l-o)/d,1),0),r=.5-Math.cos(e*Math.PI)/2;let c=n+r*(s-n);if(p(c,s)&&(c=s),t.wrapperEl.scrollTo({[a]:c}),p(c,s))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[a]:c})})),void i.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=i.requestAnimationFrame(u)};u()}function h(e){return e.querySelector(".swiper-slide-transform")||e.shadowRoot&&e.shadowRoot.querySelector(".swiper-slide-transform")||e}function f(e,t){void 0===t&&(t="");const s=r(),a=[...e.children];return s.HTMLSlotElement&&e instanceof HTMLSlotElement&&a.push(...e.assignedElements()),t?a.filter((e=>e.matches(t))):a}function g(e){try{return void console.warn(e)}catch(e){}}function v(e,t){void 0===t&&(t=[]);const s=document.createElement(e);return s.classList.add(...Array.isArray(t)?t:n(t)),s}function w(e){const t=r(),s=a(),i=e.getBoundingClientRect(),n=s.body,l=e.clientTop||n.clientTop||0,o=e.clientLeft||n.clientLeft||0,d=e===t?t.scrollY:e.scrollTop,c=e===t?t.scrollX:e.scrollLeft;return{top:i.top+d-l,left:i.left+c-o}}function b(e,t){return r().getComputedStyle(e,null).getPropertyValue(t)}function y(e){let t,s=e;if(s){for(t=0;null!==(s=s.previousSibling);)1===s.nodeType&&(t+=1);return t}}function E(e,t){const s=[];let a=e.parentElement;for(;a;)t?a.matches(t)&&s.push(a):s.push(a),a=a.parentElement;return s}function x(e,t){t&&e.addEventListener("transitionend",(function s(a){a.target===e&&(t.call(e,a),e.removeEventListener("transitionend",s))}))}function S(e,t,s){const a=r();
vendor: 4,280 bytes, line 583
583return s?e["width"===t?"offsetWidth":"offsetHeight"]+parseFloat(a.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-right":"margin-top"))+parseFloat(a.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-left":"margin-bottom")):e.offsetWidth}function T(e){return(Array.isArray(e)?e:[e]).filter((e=>!!e))}function M(e){return t=>Math.abs(t)>0&&e.browser&&e.browser.need3dFix&&Math.abs(t)%90==0?t+.001:t}function C(e,t){void 0===t&&(t=""),"undefined"!=typeof trustedTypes?e.innerHTML=trustedTypes.createPolicy("html",{createHTML:e=>e}).createHTML(t):e.innerHTML=t}let P,L,I;function z(){return P||(P=function(){const e=r(),t=a();return{smoothScroll:t.documentElement&&t.documentElement.style&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch)}}()),P}function A(e){return void 0===e&&(e={}),L||(L=function(e){let{userAgent:t}=void 0===e?{}:e;const s=z(),a=r(),i=a.navigator.platform,n=t||a.navigator.userAgent,l={ios:!1,android:!1},o=a.screen.width,d=a.screen.height,c=n.match(/(Android);?[\s\/]+([\d.]+)?/);let p=n.match(/(iPad).*OS\s([\d_]+)/);const u=n.match(/(iPod)(.*OS\s([\d_]+))?/),m=!p&&n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),h="Win32"===i;let f="MacIntel"===i;return!p&&f&&s.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${o}x${d}`)>=0&&(p=n.match(/(Version)\/([\d.]+)/),p||(p=[0,1,"13_0_0"]),f=!1),c&&!h&&(l.os="android",l.android=!0),(p||m||u)&&(l.os="ios",l.ios=!0),l}(e)),L}function $(){return I||(I=function(){const e=r(),t=A();let s=!1;function a(){const t=e.navigator.userAgent.toLowerCase();return t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}if(a()){const t=String(e.navigator.userAgent);if(t.includes("Version/")){const[e,a]=t.split("Version/")[1].split(" ")[0].split(".").map((e=>Number(e)));s=e<16||16===e&&a<2}}const i=/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent),n=a();return{isSafari:s||n,needPerspectiveFix:s,need3dFix:n||i&&t.ios,isWebView:i}}()),I}var k={on(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;const i=s?"unshift":"push";return e.split(" ").forEach((e=>{a.eventsListeners[e]||(a.eventsListeners[e]=[]),a.eventsListeners[e][i](t)})),a},once(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;function i(){a.off(e,i),i.__emitterProxy&&delete i.__emitterProxy;for(var s=arguments.length,r=new Array(s),n=0;n<s;n++)r[n]=arguments[n];t.apply(a,r)}return i.__emitterProxy=t,a.on(e,i,s)},onAny(e,t){const s=this;if(!s.eventsListeners||s.destroyed)return s;if("function"!=typeof e)return s;const a=t?"unshift":"push";return s.eventsAnyListeners.indexOf(e)<0&&s.eventsAnyListeners[a](e),s},offAny(e){const t=this;if(!t.eventsListeners||t.destroyed)return t;if(!t.eventsAnyListeners)return t;const s=t.eventsAnyListeners.indexOf(e);return s>=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const s=this;return!s.eventsListeners||s.destroyed?s:s.eventsListeners?(e.split(" ").forEach((e=>{void 0===t?s.eventsListeners[e]=[]:s.eventsListeners[e]&&s.eventsListeners[e].forEach(((a,i)=>{(a===t||a.__emitterProxy&&a.__emitterProxy===t)&&s.eventsListeners[e].splice(i,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,a;for(var i=arguments.length,r=new Array(i),n=0;n<i;n++)r[n]=arguments[n];"string"==typeof r[0]||Array.isArray(r[0])?(t=r[0],s=r.slice(1,r.length),a=e):(t=r[0].events,s=r[0].data,a=r[0].context||e),s.unshift(a);return(Array.isArray(t)?t:t.split(" ")).forEach((t=>{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(a,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(a,s)}))})),e}};const O=(e,t,s)=>{t&&!e.classList.contains(s)?e.classList.add(s):!t&&e.classList.contains(s)&&e.classList.remove(s)};const D=(e,t,s)=>{t&&!e.classList.contains(s)?e.classList.add(s):!t&&e.classList.contains(s)&&e.classList.remove(s)};const G=(e,t)=>{if(!e||e.destroyed||!e.params)return;const s=t.closest(e.isElement?"swiper-slide":`.${e.params.slideClass}`);
vendor: 3,160 bytes, line 583
583if(s){let t=s.querySelector(`.${e.params.lazyPreloaderClass}`);!t&&e.isElement&&(s.shadowRoot?t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`):requestAnimationFrame((()=>{s.shadowRoot&&(t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`),t&&t.remove())}))),t&&t.remove()}},X=(e,t)=>{if(!e.slides[t])return;const s=e.slides[t].querySelector('[loading="lazy"]');s&&s.removeAttribute("loading")},Y=e=>{if(!e||e.destroyed||!e.params)return;let t=e.params.lazyPreloadPrevNext;const s=e.slides.length;if(!s||!t||t<0)return;t=Math.min(t,s);const a="auto"===e.params.slidesPerView?e.slidesPerViewDynamic():Math.ceil(e.params.slidesPerView),i=e.activeIndex;if(e.params.grid&&e.params.grid.rows>1){const s=i,r=[s-t];return r.push(...Array.from({length:t}).map(((e,t)=>s+a+t))),void e.slides.forEach(((t,s)=>{r.includes(t.column)&&X(e,s)}))}const r=i+a-1;if(e.params.rewind||e.params.loop)for(let a=i-t;a<=r+t;a+=1){const t=(a%s+s)%s;(t<i||t>r)&&X(e,t)}else for(let a=Math.max(i-t,0);a<=Math.min(r+t,s-1);a+=1)a!==i&&(a>r||a<i)&&X(e,a)};var B={updateSize:function(){const e=this;let t,s;const a=e.el;t=void 0!==e.params.width&&null!==e.params.width?e.params.width:a.clientWidth,s=void 0!==e.params.height&&null!==e.params.height?e.params.height:a.clientHeight,0===t&&e.isHorizontal()||0===s&&e.isVertical()||(t=t-parseInt(b(a,"padding-left")||0,10)-parseInt(b(a,"padding-right")||0,10),s=s-parseInt(b(a,"padding-top")||0,10)-parseInt(b(a,"padding-bottom")||0,10),Number.isNaN(t)&&(t=0),Number.isNaN(s)&&(s=0),Object.assign(e,{width:t,height:s,size:e.isHorizontal()?t:s}))},updateSlides:function(){const e=this;function t(t,s){return parseFloat(t.getPropertyValue(e.getDirectionLabel(s))||0)}const s=e.params,{wrapperEl:a,slidesEl:i,size:r,rtlTranslate:n,wrongRTL:l}=e,o=e.virtual&&s.virtual.enabled,d=o?e.virtual.slides.length:e.slides.length,c=f(i,`.${e.params.slideClass}, swiper-slide`),p=o?e.virtual.slides.length:c.length;let m=[];const h=[],g=[];let v=s.slidesOffsetBefore;"function"==typeof v&&(v=s.slidesOffsetBefore.call(e));let w=s.slidesOffsetAfter;"function"==typeof w&&(w=s.slidesOffsetAfter.call(e));const y=e.snapGrid.length,E=e.slidesGrid.length;let x=s.spaceBetween,T=-v,M=0,C=0;if(void 0===r)return;"string"==typeof x&&x.indexOf("%")>=0?x=parseFloat(x.replace("%",""))/100*r:"string"==typeof x&&(x=parseFloat(x)),e.virtualSize=-x,c.forEach((e=>{n?e.style.marginLeft="":e.style.marginRight="",e.style.marginBottom="",e.style.marginTop=""})),s.centeredSlides&&s.cssMode&&(u(a,"--swiper-centered-offset-before",""),u(a,"--swiper-centered-offset-after",""));const P=s.grid&&s.grid.rows>1&&e.grid;let L;P?e.grid.initSlides(c):e.grid&&e.grid.unsetSlides();const I="auto"===s.slidesPerView&&s.breakpoints&&Object.keys(s.breakpoints).filter((e=>void 0!==s.breakpoints[e].slidesPerView)).length>0;for(let a=0;a<p;a+=1){let i;if(L=0,c[a]&&(i=c[a]),P&&e.grid.updateSlide(a,i,c),!c[a]||"none"!==b(i,"display")){if("auto"===s.slidesPerView){I&&(c[a].style[e.getDirectionLabel("width")]="");const r=getComputedStyle(i),n=i.style.transform,l=i.style.webkitTransform;if(n&&(i.style.transform="none"),l&&(i.style.webkitTransform="none"),s.roun
vendor: 8,754 bytes, line 583
583dLengths)L=e.isHorizontal()?S(i,"width",!0):S(i,"height",!0);else{const e=t(r,"width"),s=t(r,"padding-left"),a=t(r,"padding-right"),n=t(r,"margin-left"),l=t(r,"margin-right"),o=r.getPropertyValue("box-sizing");if(o&&"border-box"===o)L=e+n+l;else{const{clientWidth:t,offsetWidth:r}=i;L=e+s+a+n+l+(r-t)}}n&&(i.style.transform=n),l&&(i.style.webkitTransform=l),s.roundLengths&&(L=Math.floor(L))}else L=(r-(s.slidesPerView-1)*x)/s.slidesPerView,s.roundLengths&&(L=Math.floor(L)),c[a]&&(c[a].style[e.getDirectionLabel("width")]=`${L}px`);c[a]&&(c[a].swiperSlideSize=L),g.push(L),s.centeredSlides?(T=T+L/2+M/2+x,0===M&&0!==a&&(T=T-r/2-x),0===a&&(T=T-r/2-x),Math.abs(T)<.001&&(T=0),s.roundLengths&&(T=Math.floor(T)),C%s.slidesPerGroup==0&&m.push(T),h.push(T)):(s.roundLengths&&(T=Math.floor(T)),(C-Math.min(e.params.slidesPerGroupSkip,C))%e.params.slidesPerGroup==0&&m.push(T),h.push(T),T=T+L+x),e.virtualSize+=L+x,M=L,C+=1}}if(e.virtualSize=Math.max(e.virtualSize,r)+w,n&&l&&("slide"===s.effect||"coverflow"===s.effect)&&(a.style.width=`${e.virtualSize+x}px`),s.setWrapperSize&&(a.style[e.getDirectionLabel("width")]=`${e.virtualSize+x}px`),P&&e.grid.updateWrapperSize(L,m),!s.centeredSlides){const t=[];for(let a=0;a<m.length;a+=1){let i=m[a];s.roundLengths&&(i=Math.floor(i)),m[a]<=e.virtualSize-r&&t.push(i)}m=t,Math.floor(e.virtualSize-r)-Math.floor(m[m.length-1])>1&&m.push(e.virtualSize-r)}if(o&&s.loop){const t=g[0]+x;if(s.slidesPerGroup>1){const a=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/s.slidesPerGroup),i=t*s.slidesPerGroup;for(let e=0;e<a;e+=1)m.push(m[m.length-1]+i)}for(let a=0;a<e.virtual.slidesBefore+e.virtual.slidesAfter;a+=1)1===s.slidesPerGroup&&m.push(m[m.length-1]+t),h.push(h[h.length-1]+t),e.virtualSize+=t}if(0===m.length&&(m=[0]),0!==x){const t=e.isHorizontal()&&n?"marginLeft":e.getDirectionLabel("marginRight");c.filter(((e,t)=>!(s.cssMode&&!s.loop)||t!==c.length-1)).forEach((e=>{e.style[t]=`${x}px`}))}if(s.centeredSlides&&s.centeredSlidesBounds){let e=0;g.forEach((t=>{e+=t+(x||0)})),e-=x;const t=e>r?e-r:0;m=m.map((e=>e<=0?-v:e>t?t+w:e))}if(s.centerInsufficientSlides){let e=0;g.forEach((t=>{e+=t+(x||0)})),e-=x;const t=(s.slidesOffsetBefore||0)+(s.slidesOffsetAfter||0);if(e+t<r){const s=(r-e-t)/2;m.forEach(((e,t)=>{m[t]=e-s})),h.forEach(((e,t)=>{h[t]=e+s}))}}if(Object.assign(e,{slides:c,snapGrid:m,slidesGrid:h,slidesSizesGrid:g}),s.centeredSlides&&s.cssMode&&!s.centeredSlidesBounds){u(a,"--swiper-centered-offset-before",-m[0]+"px"),u(a,"--swiper-centered-offset-after",e.size/2-g[g.length-1]/2+"px");const t=-e.snapGrid[0],s=-e.slidesGrid[0];e.snapGrid=e.snapGrid.map((e=>e+t)),e.slidesGrid=e.slidesGrid.map((e=>e+s))}if(p!==d&&e.emit("slidesLengthChange"),m.length!==y&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),h.length!==E&&e.emit("slidesGridLengthChange"),s.watchSlidesProgress&&e.updateSlidesOffset(),e.emit("slidesUpdated"),!(o||s.cssMode||"slide"!==s.effect&&"fade"!==s.effect)){const t=`${s.containerModifierClass}backface-hidden`,a=e.el.classList.contains(t);p<=s.maxBackfaceHiddenSlides?a||e.el.classList.add(t):a&&e.el.classList.remove(t)}},updateAutoHeight:function(e){const t=this,s=[],a=t.virtual&&t.params.virtual.enabled;let i,r=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const n=e=>a?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=>{s.push(e)}));else for(i=0;i<Math.ceil(t.params.slidesPerView);i+=1){const e=t.activeIndex+i;if(e>t.slides.length&&!a)break;s.push(n(e))}else s.push(n(t.activeIndex));for(i=0;i<s.length;i+=1)if(void 0!==s[i]){const e=s[i].offsetHeight;r=e>r?e:r}(r||0===r)&&(t.wrapperEl.style.height=`${r}px`)},updateSlidesOffset:function(){const e=this,t=e.slides,s=e.isElement?e.isHorizontal()?e.wrapperEl.offsetLeft:e.wrapperEl.offsetTop:0;for(let a=0;a<t.length;a+=1)t[a].swiperSlideOffset=(e.isHorizontal()?t[a].offsetLeft:t[a].offsetTop)-s-e.cssOverflowAdjustment()},updateSlidesProgress:function(e){void 0===e&&(e=this&&this.translate||0);const t=this,s=t.params,{slides:a,rtlTranslate:i,snapGrid:r}=t;if(0===a.length)return;void 0===a[0].swiperSlideOffset&&t.updateSlidesOffset();let n=-e;i&&(n=e),t.visibleSlidesIndexes=[],t.visibleSlides=[];let l=s.spaceBetween;"string"==typeof l&&l.indexOf("%")>=0?l=parseFloat(l.replace("%",""))/100*t.size:"string"==typeof l&&(l=parseFloat(l));for(let e=0;e<a.length;e+=1){const o=a[e];let d=o.swiperSlideOffset;s.cssMode&&s.centeredSlides&&(d-=a[0].swiperSlideOffset);const c=(n+(s.centeredSlides?t.minTranslate():0)-d)/(o.swiperSlideSize+l),p=(n-r[0]+(s.centeredSlides?t.minTranslate():0)-d)/(o.swiperSlideSize+l),u=-(n-d),m=u+t.slidesSizesGrid[e],h=u>=0&&u<=t.size-t.slidesSizesGrid[e],f=u>=0&&u<t.size-1||m>1&&m<=t.size||u<=0&&m>=t.size;f&&(t.visibleSlides.push(o),t.visibleSlidesIndexes.push(e)),O(o,f,s.slideVisibleClass),O(o,h,s.slideFullyVisibleClass),o.progress=i?-c:c,o.originalProgress=i?-p:p}},updateProgress:function(e){const t=this;if(void 0===e){const s=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*s||0}const s=t.params,a=t.maxTranslate()-t.minTranslate();let{progress:i,isBeginning:r,isEnd:n,progressLoop:l}=t;const o=r,d=n;if(0===a)i=0,r=!0,n=!0;else{i=(e-t.minTranslate())/a;const s=Math.abs(e-t.minTranslate())<1,l=Math.abs(e-t.maxTranslate())<1;r=s||i<=0,n=l||i>=1,s&&(i=0),l&&(i=1)}if(s.loop){const s=t.getSlideIndexByData(0),a=t.getSlideIndexByData(t.slides.length-1),i=t.slidesGrid[s],r=t.slidesGrid[a],n=t.slidesGrid[t.slidesGrid.length-1],o=Math.abs(e);l=o>=i?(o-i)/n:(o+n-r)/n,l>1&&(l-=1)}Object.assign(t,{progress:i,progressLoop:l,isBeginning:r,isEnd:n}),(s.watchSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),r&&!o&&t.emit("reachBeginning toEdge"),n&&!d&&t.emit("reachEnd toEdge"),(o&&!r||d&&!n)&&t.emit("fromEdge"),t.emit("progress",i)},updateSlidesClasses:function(){const e=this,{slides:t,params:s,slidesEl:a,activeIndex:i}=e,r=e.virtual&&s.virtual.enabled,n=e.grid&&s.grid&&s.grid.rows>1,l=e=>f(a,`.${s.slideClass}${e}, swiper-slide${e}`)[0];let o,d,c;if(r)if(s.loop){let t=i-e.virtual.slidesBefore;t<0&&(t=e.virtual.slides.length+t),t>=e.virtual.slides.length&&(t-=e.virtual.slides.length),o=l(`[data-swiper-slide-index="${t}"]`)}else o=l(`[data-swiper-slide-index="${i}"]`);else n?(o=t.find((e=>e.column===i)),c=t.find((e=>e.column===i+1)),d=t.find((e=>e.column===i-1))):o=t[i];o&&(n||(c=function(e,t){const s=[];for(;e.nextElementSibling;){const a=e.nextElementSibling;t?a.matches(t)&&s.push(a):s.push(a),e=a}return s}(o,`.${s.slideClass}, swiper-slide`)[0],s.loop&&!c&&(c=t[0]),d=function(e,t){const s=[];for(;e.previousElementSibling;){const a=e.previousElementSibling;t?a.matches(t)&&s.push(a):s.push(a),e=a}return s}(o,`.${s.slideClass}, swiper-slide`)[0],s.loop&&0===!d&&(d=t[t.length-1]))),t.forEach((e=>{D(e,e===o,s.slideActiveClass),D(e,e===c,s.slideNextClass),D(e,e===d,s.slidePrevClass)})),e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{snapGrid:a,params:i,activeIndex:r,realIndex:n,snapIndex:l}=t;let o,d=e;const c=e=>{let s=e-t.virtual.slidesBefore;return s<0&&(s=t.virtual.slides.length+s),s>=t.virtual.slides.length&&(s-=t.virtual.slides.length),s};if(void 0===d&&(d=function(e){const{slidesGrid:t,params:s}=e,a=e.rtlTranslate?e.translate:-e.translate;let i;for(let e=0;e<t.length;e+=1)void 0!==t[e+1]?a>=t[e]&&a<t[e+1]-(t[e+1]-t[e])/2?i=e:a>=t[e]&&a<t[e+1]&&(i=e+1):a>=t[e]&&(i=e);return s.normalizeSlideIndex&&(i<0||void 0===i)&&(i=0),i}(t)),a.indexOf(s)>=0)o=a.indexOf(s);else{const e=Math.min(i.slidesPerGroupSkip,d);o=e+Math.floor((d-e)/i.slidesPerGroup)}if(o>=a.length&&(o=a.length-1),d===r&&!t.params.loop)return void(o!==l&&(t.snapIndex=o,t.emit("snapIndexChange")));if(d===r&&t.params.loop&&t.virtual&&t.params.virtual.enabled)return void(t.realIndex=c(d));const p=t.grid&&i.grid&&i.grid.rows>1;let u;if(t.virtual&&i.virtual.enabled&&i.loop)u=c(d);else if(p){const e=t.slides.find((e=>e.column===d));let s=parseInt(e.getAttribute("data-swiper-slide-index"),10);Number.isNaN(s)&&(s=Math.max(t.slides.indexOf(e),0)),u=Math.floor(s/i.grid.rows)}else if(t.slides[d]){const e=t.slides[d].getAttribute("data-swiper-slide-index");u=e?parseInt(e,10):d}else u=d;Object.assign(t,{previousSnapIndex:l,snapIndex:o,previousRealIndex:n,realIndex:u,previousIndex:r,activeIndex:d}),t.initialized&&Y(t),t.emit("activeIndexChange"),t.emit("snapIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&(n!==u&&t.emit("realIndexChange"),t.emit("slideChange"))},updateClickedSlide:function(e,t){const s=this,a=s.params;let i=e.closest(`.${a.slideClass}, swiper-slide`);!i&&s.isElement&&t&&t.length>
vendor: 4,410 bytes, line 583
5831&&t.includes(e)&&[...t.slice(t.indexOf(e)+1,t.length)].forEach((e=>{!i&&e.matches&&e.matches(`.${a.slideClass}, swiper-slide`)&&(i=e)}));let r,n=!1;if(i)for(let e=0;e<s.slides.length;e+=1)if(s.slides[e]===i){n=!0,r=e;break}if(!i||!n)return s.clickedSlide=void 0,void(s.clickedIndex=void 0);s.clickedSlide=i,s.virtual&&s.params.virtual.enabled?s.clickedIndex=parseInt(i.getAttribute("data-swiper-slide-index"),10):s.clickedIndex=r,a.slideToClickedSlide&&void 0!==s.clickedIndex&&s.clickedIndex!==s.activeIndex&&s.slideToClickedSlide()}};var H={getTranslate:function(e){void 0===e&&(e=this.isHorizontal()?"x":"y");const{params:t,rtlTranslate:s,translate:a,wrapperEl:i}=this;if(t.virtualTranslate)return s?-a:a;if(t.cssMode)return a;let r=d(i,e);return r+=this.cssOverflowAdjustment(),s&&(r=-r),r||0},setTranslate:function(e,t){const s=this,{rtlTranslate:a,params:i,wrapperEl:r,progress:n}=s;let l,o=0,d=0;s.isHorizontal()?o=a?-e:e:d=e,i.roundLengths&&(o=Math.floor(o),d=Math.floor(d)),s.previousTranslate=s.translate,s.translate=s.isHorizontal()?o:d,i.cssMode?r[s.isHorizontal()?"scrollLeft":"scrollTop"]=s.isHorizontal()?-o:-d:i.virtualTranslate||(s.isHorizontal()?o-=s.cssOverflowAdjustment():d-=s.cssOverflowAdjustment(),r.style.transform=`translate3d(${o}px, ${d}px, 0px)`);const c=s.maxTranslate()-s.minTranslate();l=0===c?0:(e-s.minTranslate())/c,l!==n&&s.updateProgress(e),s.emit("setTranslate",s.translate,t)},minTranslate:function(){return-this.snapGrid[0]},maxTranslate:function(){return-this.snapGrid[this.snapGrid.length-1]},translateTo:function(e,t,s,a,i){void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),void 0===a&&(a=!0);const r=this,{params:n,wrapperEl:l}=r;if(r.animating&&n.preventInteractionOnTransition)return!1;const o=r.minTranslate(),d=r.maxTranslate();let c;if(c=a&&e>o?o:a&&e<d?d:e,r.updateProgress(c),n.cssMode){const e=r.isHorizontal();if(0===t)l[e?"scrollLeft":"scrollTop"]=-c;else{if(!r.support.smoothScroll)return m({swiper:r,targetPosition:-c,side:e?"left":"top"}),!0;l.scrollTo({[e?"left":"top"]:-c,behavior:"smooth"})}return!0}return 0===t?(r.setTransition(0),r.setTranslate(c),s&&(r.emit("beforeTransitionStart",t,i),r.emit("transitionEnd"))):(r.setTransition(t),r.setTranslate(c),s&&(r.emit("beforeTransitionStart",t,i),r.emit("transitionStart")),r.animating||(r.animating=!0,r.onTranslateToWrapperTransitionEnd||(r.onTranslateToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.wrapperEl.removeEventListener("transitionend",r.onTranslateToWrapperTransitionEnd),r.onTranslateToWrapperTransitionEnd=null,delete r.onTranslateToWrapperTransitionEnd,r.animating=!1,s&&r.emit("transitionEnd"))}),r.wrapperEl.addEventListener("transitionend",r.onTranslateToWrapperTransitionEnd))),!0}};function N(e){let{swiper:t,runCallbacks:s,direction:a,step:i}=e;const{activeIndex:r,previousIndex:n}=t;let l=a;l||(l=r>n?"next":r<n?"prev":"reset"),t.emit(`transition${i}`),s&&"reset"===l?t.emit(`slideResetTransition${i}`):s&&r!==n&&(t.emit(`slideChangeTransition${i}`),"next"===l?t.emit(`slideNextTransition${i}`):t.emit(`slidePrevTransition${i}`))}var R={slideTo:function(e,t,s,a,i){void 0===e&&(e=0),void 0===s&&(s=!0),"string"==typeof e&&(e=parseInt(e,10));const r=this;let n=e;n<0&&(n=0);const{params:l,snapGrid:o,slidesGrid:d,previousIndex:c,activeIndex:p,rtlTranslate:u,wrapperEl:h,enabled:f}=r;if(!f&&!a&&!i||r.destroyed||r.animating&&l.preventInteractionOnTransition)return!1;void 0===t&&(t=r.params.speed);const g=Math.min(r.params.slidesPerGroupSkip,n);let v=g+Math.floor((n-g)/r.params.slidesPerGroup);v>=o.length&&(v=o.length-1);const w=-o[v];if(l.normalizeSlideIndex)for(let e=0;e<d.length;e+=1){const t=-Math.floor(100*w),s=Math.floor(100*d[e]),a=Math.floor(100*d[e+1]);void 0!==d[e+1]?t>=s&&t<a-(a-s)/2?n=e:t>=s&&t<a&&(n=e+1):t>=s&&(n=e)}if(r.initialized&&n!==p){if(!r.allowSlideNext&&(u?w>r.translate&&w>r.minTranslate():w<r.translate&&w<r.minTranslate()))return!1;if(!r.allowSlidePrev&&w>r.translate&&w>r.maxTranslate()&&(p||0)!==n)return!1}let b;n!==(c||0)&&s&&r.emit("beforeSlideChangeStart"),r.updateProgress(w),b=n>p?"next":n<p?"prev":"reset";const y=r.virtual&&r.params.virtual.enabled;if(!(y&&i)&&(u&&-w===r.translate||!u&&w===r.translate))return r.updateActiveIndex(n),l.autoHeight&&r.updateAutoHeight(),r.updateSlidesClasses(),"slide"!==l.effect&&r.setTranslate(w),"reset"!==b&&(r.transitionStart(s,b),r.transitionEnd(s,b)),!1;
vendor: 6,463 bytes, line 583
583if(l.cssMode){const e=r.isHorizontal(),s=u?w:-w;if(0===t)y&&(r.wrapperEl.style.scrollSnapType="none",r._immediateVirtual=!0),y&&!r._cssModeVirtualInitialSet&&r.params.initialSlide>0?(r._cssModeVirtualInitialSet=!0,requestAnimationFrame((()=>{h[e?"scrollLeft":"scrollTop"]=s}))):h[e?"scrollLeft":"scrollTop"]=s,y&&requestAnimationFrame((()=>{r.wrapperEl.style.scrollSnapType="",r._immediateVirtual=!1}));else{if(!r.support.smoothScroll)return m({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}const E=$().isSafari;return y&&!i&&E&&r.isElement&&r.virtual.update(!1,!1,n),r.setTransition(t),r.setTranslate(w),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),0===t?r.transitionEnd(s,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(s,b))}),r.wrapperEl.addEventListener("transitionend",r.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,s,a){if(void 0===e&&(e=0),void 0===s&&(s=!0),"string"==typeof e){e=parseInt(e,10)}const i=this;if(i.destroyed)return;void 0===t&&(t=i.params.speed);const r=i.grid&&i.params.grid&&i.params.grid.rows>1;let n=e;if(i.params.loop)if(i.virtual&&i.params.virtual.enabled)n+=i.virtual.slidesBefore;else{let e;if(r){const t=n*i.params.grid.rows;e=i.slides.find((e=>1*e.getAttribute("data-swiper-slide-index")===t)).column}else e=i.getSlideIndexByData(n);const t=r?Math.ceil(i.slides.length/i.params.grid.rows):i.slides.length,{centeredSlides:s}=i.params;let l=i.params.slidesPerView;"auto"===l?l=i.slidesPerViewDynamic():(l=Math.ceil(parseFloat(i.params.slidesPerView,10)),s&&l%2==0&&(l+=1));let o=t-e<l;if(s&&(o=o||e<Math.ceil(l/2)),a&&s&&"auto"!==i.params.slidesPerView&&!r&&(o=!1),o){const a=s?e<i.activeIndex?"prev":"next":e-i.activeIndex-1<i.params.slidesPerView?"next":"prev";i.loopFix({direction:a,slideTo:!0,activeSlideIndex:"next"===a?e+1:e-t+1,slideRealIndex:"next"===a?i.realIndex:void 0})}if(r){const e=n*i.params.grid.rows;n=i.slides.find((t=>1*t.getAttribute("data-swiper-slide-index")===e)).column}else n=i.getSlideIndexByData(n)}return requestAnimationFrame((()=>{i.slideTo(n,t,s,a)})),i},slideNext:function(e,t,s){void 0===t&&(t=!0);const a=this,{enabled:i,params:r,animating:n}=a;if(!i||a.destroyed)return a;void 0===e&&(e=a.params.speed);let l=r.slidesPerGroup;"auto"===r.slidesPerView&&1===r.slidesPerGroup&&r.slidesPerGroupAuto&&(l=Math.max(a.slidesPerViewDynamic("current",!0),1));const o=a.activeIndex<r.slidesPerGroupSkip?1:l,d=a.virtual&&r.virtual.enabled;if(r.loop){if(n&&!d&&r.loopPreventsSliding)return!1;if(a.loopFix({direction:"next"}),a._clientLeft=a.wrapperEl.clientLeft,a.activeIndex===a.slides.length-1&&r.cssMode)return requestAnimationFrame((()=>{a.slideTo(a.activeIndex+o,e,t,s)})),!0}return r.rewind&&a.isEnd?a.slideTo(0,e,t,s):a.slideTo(a.activeIndex+o,e,t,s)},slidePrev:function(e,t,s){void 0===t&&(t=!0);const a=this,{params:i,snapGrid:r,slidesGrid:n,rtlTranslate:l,enabled:o,animating:d}=a;if(!o||a.destroyed)return a;void 0===e&&(e=a.params.speed);const c=a.virtual&&i.virtual.enabled;if(i.loop){if(d&&!c&&i.loopPreventsSliding)return!1;a.loopFix({direction:"prev"}),a._clientLeft=a.wrapperEl.clientLeft}function p(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}const u=p(l?a.translate:-a.translate),m=r.map((e=>p(e))),h=i.freeMode&&i.freeMode.enabled;let f=r[m.indexOf(u)-1];if(void 0===f&&(i.cssMode||h)){let e;r.forEach(((t,s)=>{u>=t&&(e=s)})),void 0!==e&&(f=h?r[e]:r[e>0?e-1:e])}let g=0;if(void 0!==f&&(g=n.indexOf(f),g<0&&(g=a.activeIndex-1),"auto"===i.slidesPerView&&1===i.slidesPerGroup&&i.slidesPerGroupAuto&&(g=g-a.slidesPerViewDynamic("previous",!0)+1,g=Math.max(g,0))),i.rewind&&a.isBeginning){const i=a.params.virtual&&a.params.virtual.enabled&&a.virtual?a.virtual.slides.length-1:a.slides.length-1;return a.slideTo(i,e,t,s)}return i.loop&&0===a.activeIndex&&i.cssMode?(requestAnimationFrame((()=>{a.slideTo(g,e,t,s)})),!0):a.slideTo(g,e,t,s)},slideReset:function(e,t,s){void 0===t&&(t=!0);const a=this;if(!a.destroyed)return void 0===e&&(e=a.params.speed),a.slideTo(a.activeIndex,e,t,s)},slideToClosest:function(e,t,s,a){void 0===t&&(t=!0),void 0===a&&(a=.5);const i=this;if(i.destroyed)return;void 0===e&&(e=i.params.speed);let r=i.activeIndex;const n=Math.min(i.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/i.params.slidesPerGroup),o=i.rtlTranslate?i.translate:-i.translate;if(o>=i.snapGrid[l]){const e=i.snapGrid[l];o-e>(i.snapGrid[l+1]-e)*a&&(r+=i.params.slidesPerGroup)}else{const e=i.snapGrid[l-1];o-e<=(i.snapGrid[l]-e)*a&&(r-=i.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,i.slidesGrid.length-1),i.slideTo(r,e,t,s)},slideToClickedSlide:function(){const e=this;if(e.destroyed)return;const{params:t,slidesEl:s}=e,a="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let i,r=e.getSlideIndexWhenGrid(e.clickedIndex);const n=e.isElement?"swiper-slide":`.${t.slideClass}`,o=e.grid&&e.params.grid&&e.params.grid.rows>1;if(t.loop){if(e.animating)return;i=parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10),t.centeredSlides?e.slideToLoop(i):r>(o?(e.slides.length-a)/2-(e.params.grid.rows-1):e.slides.length-a)?(e.loopFix(),r=e.getSlideIndex(f(s,`${n}[data-swiper-slide-index="${i}"]`)[0]),l((()=>{e.slideTo(r)}))):e.slideTo(r)}else e.slideTo(r)}};var _={loopCreate:function(e,t){const s=this,{params:a,slidesEl:i}=s;if(!a.loop||s.virtual&&s.params.virtual.enabled)return;const r=()=>{f(i,`.${a.slideClass}, swiper-slide`).forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t)}))},n=s.grid&&a.grid&&a.grid.rows>1;a.loopAddBlankSlides&&(a.slidesPerGroup>1||n)&&(()=>{const e=f(i,`.${a.slideBlankClass}`);e.forEach((e=>{e.remove()})),e.length>0&&(s.recalcSlides(),s.updateSlides())})();const l=a.slidesPerGroup*(n?a.grid.rows:1),o=s.slides.length%l!=0,d=n&&s.slides.length%a.grid.rows!=0,c=e=>{for(let t=0;t<e;t+=1){const e=s.isElement?v("swiper-slide",[a.slideBlankClass]):v("div",[a.slideClass,a.slideBlankClass]);s.slidesEl.append(e)}};if(o){if(a.loopAddBlankSlides){c(l-s.slides.length%l),s.recalcSlides(),s.updateSlides()}else g("Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may 
583not function properly. You need to add more slides (or make duplicates, or empty slides)");r()}else if(d){if(a.loopAddBlankSlides){c(a.grid.rows-s.slides.length%a.grid.rows),s.recalcSlides(),s.updateSlides()}else g("Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)");r()}else r();s.loopFix({slideRealIndex:e,direction:a.centeredSlides?void 0:"next",initial:t})},loopFix:function(e){let{slideRealIndex:t,slideTo:s=!0,direction:a,setTranslate:i,activeSlideIndex:r,initial:n,byController:l,byMousewheel:o}=void 0===e?{}:e;const d=this;if(!d.params.loop)return;d.emit("beforeLoopFix");const{slides:c,allowSlidePrev:p,allowSlideNext:u,slidesEl:m,params:h}=d,{centeredSlides:f,initialSlide:v}=h;if(d.allowSlidePrev=!0,d.allowSlideNext=!0,d.virtual&&h.virtual.enabled)return s&&(h.centeredSlides||0!==d.snapIndex?h.centeredSlides&&d.snapIndex<h.slidesPerView?d.slideTo(d.virtual.slides.length+d.snapIndex,0,!1,!0):d.snapIndex===d.snapGrid.length-1&&d.slideTo(d.virtual.slidesBefore,0,!1,!0):d.slideTo(d.virtual.slides.length,0,!1,!0)),d.allowSlidePrev=p,d.allowSlideNext=u,void d.emit("loopFix");let w=h.slidesPerView;"auto"===w?w=d.slidesPerViewDynamic():(w=Math.ceil(parseFloat(h.slidesPerView,10)),f&&w%2==0&&(w+=1));const b=h.slidesPerGroupAuto?w:h.slidesPerGroup;let y=f?Math.max(b,Math.ceil(w/2)):b;y%b!=0&&(y+=b-y%b),y+=h.loopAdditionalSlides,d.loopedSlides=y;const E=d.grid&&h.grid&&h.grid.rows>1;c.length<w+y||"cards"===d.params.effect&&c.length<w+2*y?g("Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled or not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters"):E&&"row"===h.grid.fill&&g("Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`");const x=[],S=[],T=E?Math.ceil(c.length/h.grid.rows):c.length,M=n&&T-v<w&&!f;let C=M?v:d.activeIndex;void 0===r?r=d.getSlideIndex(c.find((e=>e.classList.contains(h.slideActiveClass)))):C=r;const P="next"===a||!a,L="prev"===a||!a;let I=0,z=0;const A=(E?c[r].column:r)+(f&&void 0===i?-w/2+.5:0);if(A<y){I=Math.max(y-A,b);for(let e=0;e<y-A;e+=1){const t=e-Math.floor(e/T)*T;if(E){const e=T-t-1;for(let t=c.length-1;t>=0;t-=1)c[t].column===e&&x.push(t)}else x.push(T-t-1)}}else if(A+w>T-y){z=Math.max(A-(T-2*y),b),M&&(z=Math.max(z,w-T+v+1));for(let e=0;e<z;e+=1){const t=e-Math.floor(e/T)*T;E?c.forEach(((e,s)=>{e.column===t&&S.push(s)})):S.push(t)}}if(d.__preventObserver__=!0,requestAnimationFrame((()=>{d.__preventObserver__=!1})),"cards"===d.params.effect&&c.length<w+2*y&&(S.includes(r)&&S.splice(S.indexOf(r),1),x.includes(r)&&x.splice(x.indexOf(r),1)),L&&x.forEach((e=>{c[e].swiperLoopMoveDOM=!0,m.prepend(c[e]),c[e].swiperLoopMoveDOM=!1})),P&&S.forEach((e=>{c[e].swiperLoopMoveDOM=!0,m.append(c[e]),c[e].swiperLoopMoveDOM=!1})),d.recalcSlides(),"auto"===h.slidesPerView?d.updateSlides():E&&(x.length>0&&L||S.length>0&&P)&&d.slides.forEach(((e,t)=>{d.grid.updateSlide(t,e,d.slides)})),h.watchSlidesProgress&&d.updateSlidesOffset(),s)if(x.length>0&&L){if(void 0===t){const e=d.slidesGrid[C],t=d.slidesGrid[C+I]-e;o?d.setTranslate(d.translate-t):(d.slideTo(C+Math.ceil(I),0,!1,!0),i&&(d.touchEventsData.startTranslate=d.touchEventsData.startTranslate-t,d.touchEventsData.currentTranslate=d.touchEventsData.currentTranslate-t))}else if(i){const e=E?x.length/h.grid.rows:x.length;d.slideTo(d.activeIndex+e,0,!1,!0),d.touchEventsData.currentTranslate=d.translate}}else if(S.length>0&&P)if(void 0===t){const e=d.slidesGrid[C],t=d.slidesGrid[C-z]-e;o?d.setTranslate(d.translate-t):(d.slideTo(C-z,0,!1,!0),i&&(d.touchEventsData.startTranslate=d.touchEventsData.startTranslate-t,d.touchEventsData.currentTranslate=d.touchEventsData.currentTranslate-t))}else{const e=E?S.length/h.grid.rows:S.length;d.slideTo(d.activeIndex-e,0,!1,!0)}if(d.allowSlidePrev=p,d.allowSlideNext=u,d.controller&&d.controller.control&&!l){const e={slideRealIndex:t,direction:a,setTranslate:i,activeSlideIndex:r,byController:!0};Array.isArray(d.controller.control)?d.controller.control.forEach((t=>{!t.destroyed&&t.params.loop&&t.loopFix({...e,slideTo:t.params.slidesPerView===h.slidesPerView&&s})})):d.controller.control instanceof d.constructor&&d.controller.control.params.loop&&d.controller.control.loopFix({...e,slideTo:d.controller.control.params.slidesPerView===h.slidesPerView&&s})}d.emit("loopFix")},loopDestroy:function(){const e=this,{params:t,slidesEl:s}=e;if(!t.loop||!s||e.virtual&&e.params.virtual.enabled)return;e.recalcSlides();const a=[];
vendor: 3,381 bytes, line 583
583e.slides.forEach((e=>{const t=void 0===e.swiperSlideIndex?1*e.getAttribute("data-swiper-slide-index"):e.swiperSlideIndex;a[t]=e})),e.slides.forEach((e=>{e.removeAttribute("data-swiper-slide-index")})),a.forEach((e=>{s.append(e)})),e.recalcSlides(),e.slideTo(e.realIndex,0)}};function q(e,t,s){const a=r(),{params:i}=e,n=i.edgeSwipeDetection,l=i.edgeSwipeThreshold;return!n||!(s<=l||s>=a.innerWidth-l)||"prevent"===n&&(t.preventDefault(),!0)}function V(e){const t=this,s=a();let i=e;i.originalEvent&&(i=i.originalEvent);const n=t.touchEventsData;if("pointerdown"===i.type){if(null!==n.pointerId&&n.pointerId!==i.pointerId)return;n.pointerId=i.pointerId}else"touchstart"===i.type&&1===i.targetTouches.length&&(n.touchId=i.targetTouches[0].identifier);if("touchstart"===i.type)return void q(t,i,i.targetTouches[0].pageX);const{params:l,touches:d,enabled:c}=t;if(!c)return;if(!l.simulateTouch&&"mouse"===i.pointerType)return;if(t.animating&&l.preventInteractionOnTransition)return;!t.animating&&l.cssMode&&l.loop&&t.loopFix();let p=i.target;if("wrapper"===l.touchEventsTarget&&!function(e,t){const s=r();let a=t.contains(e);!a&&s.HTMLSlotElement&&t instanceof HTMLSlotElement&&(a=[...t.assignedElements()].includes(e),a||(a=function(e,t){const s=[t];for(;s.length>0;){const t=s.shift();if(e===t)return!0;s.push(...t.children,...t.shadowRoot?t.shadowRoot.children:[],...t.assignedElements?t.assignedElements():[])}}(e,t)));return a}(p,t.wrapperEl))return;if("which"in i&&3===i.which)return;if("button"in i&&i.button>0)return;if(n.isTouched&&n.isMoved)return;const u=!!l.noSwipingClass&&""!==l.noSwipingClass,m=i.composedPath?i.composedPath():i.path;u&&i.target&&i.target.shadowRoot&&m&&(p=m[0]);const h=l.noSwipingSelector?l.noSwipingSelector:`.${l.noSwipingClass}`,f=!(!i.target||!i.target.shadowRoot);if(l.noSwiping&&(f?function(e,t){return void 0===t&&(t=this),function t(s){if(!s||s===a()||s===r())return null;s.assignedSlot&&(s=s.assignedSlot);const i=s.closest(e);return i||s.getRootNode?i||t(s.getRootNode().host):null}(t)}(h,p):p.closest(h)))return void(t.allowClick=!0);if(l.swipeHandler&&!p.closest(l.swipeHandler))return;d.currentX=i.pageX,d.currentY=i.pageY;const g=d.currentX,v=d.currentY;if(!q(t,i,g))return;Object.assign(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),d.startX=g,d.startY=v,n.touchStartTime=o(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,l.threshold>0&&(n.allowThresholdMove=!1);let w=!0;p.matches(n.focusableElements)&&(w=!1,"SELECT"===p.nodeName&&(n.isTouched=!1)),s.activeElement&&s.activeElement.matches(n.focusableElements)&&s.activeElement!==p&&("mouse"===i.pointerType||"mouse"!==i.pointerType&&!p.matches(n.focusableElements))&&s.activeElement.blur();const b=w&&t.allowTouchMove&&l.touchStartPreventDefault;!l.touchStartForcePreventDefault&&!b||p.isContentEditable||i.preventDefault(),l.freeMode&&l.freeMode.enabled&&t.freeMode&&t.animating&&!l.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",i)}function F(e){const t=a(),s=this,i=s.touchEventsData,{params:r,touches:n,rtlTranslate:l,enabled:d}=s;if(!d)return;if(!r.simulateTouch&&"mouse"===e.pointerType)return;let c,p=e;if(p.originalEvent&&(p=p.originalEvent),"pointermove"===p.type){if(null!==i.touchId)return;if(p.pointerId!==i.pointerId)return}if("touchmove"===p.type){if(c=[...p.changedTouches].find((e=>e.identifier===i.touchId)
vendor: 5,269 bytes, line 583
583),!c||c.identifier!==i.touchId)return}else c=p;if(!i.isTouched)return void(i.startMoving&&i.isScrolling&&s.emit("touchMoveOpposite",p));const u=c.pageX,m=c.pageY;if(p.preventedByNestedSwiper)return n.startX=u,void(n.startY=m);if(!s.allowTouchMove)return p.target.matches(i.focusableElements)||(s.allowClick=!1),void(i.isTouched&&(Object.assign(n,{startX:u,startY:m,currentX:u,currentY:m}),i.touchStartTime=o()));if(r.touchReleaseOnEdges&&!r.loop)if(s.isVertical()){if(m<n.startY&&s.translate<=s.maxTranslate()||m>n.startY&&s.translate>=s.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else{if(l&&(u>n.startX&&-s.translate<=s.maxTranslate()||u<n.startX&&-s.translate>=s.minTranslate()))return;if(!l&&(u<n.startX&&s.translate<=s.maxTranslate()||u>n.startX&&s.translate>=s.minTranslate()))return}if(t.activeElement&&t.activeElement.matches(i.focusableElements)&&t.activeElement!==p.target&&"mouse"!==p.pointerType&&t.activeElement.blur(),t.activeElement&&p.target===t.activeElement&&p.target.matches(i.focusableElements))return i.isMoved=!0,void(s.allowClick=!1);i.allowTouchCallbacks&&s.emit("touchMove",p),n.previousX=n.currentX,n.previousY=n.currentY,n.currentX=u,n.currentY=m;const h=n.currentX-n.startX,f=n.currentY-n.startY;if(s.params.threshold&&Math.sqrt(h**2+f**2)<s.params.threshold)return;if(void 0===i.isScrolling){let e;s.isHorizontal()&&n.currentY===n.startY||s.isVertical()&&n.currentX===n.startX?i.isScrolling=!1:h*h+f*f>=25&&(e=180*Math.atan2(Math.abs(f),Math.abs(h))/Math.PI,i.isScrolling=s.isHorizontal()?e>r.touchAngle:90-e>r.touchAngle)}if(i.isScrolling&&s.emit("touchMoveOpposite",p),void 0===i.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0)),i.isScrolling||"touchmove"===p.type&&i.preventTouchMoveFromPointerMove)return void(i.isTouched=!1);if(!i.startMoving)return;s.allowClick=!1,!r.cssMode&&p.cancelable&&p.preventDefault(),r.touchMoveStopPropagation&&!r.nested&&p.stopPropagation();let g=s.isHorizontal()?h:f,v=s.isHorizontal()?n.currentX-n.previousX:n.currentY-n.previousY;r.oneWayMovement&&(g=Math.abs(g)*(l?1:-1),v=Math.abs(v)*(l?1:-1)),n.diff=g,g*=r.touchRatio,l&&(g=-g,v=-v);const w=s.touchesDirection;s.swipeDirection=g>0?"prev":"next",s.touchesDirection=v>0?"prev":"next";const b=s.params.loop&&!r.cssMode,y="next"===s.touchesDirection&&s.allowSlideNext||"prev"===s.touchesDirection&&s.allowSlidePrev;if(!i.isMoved){if(b&&y&&s.loopFix({direction:s.swipeDirection}),i.startTranslate=s.getTranslate(),s.setTransition(0),s.animating){const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0,detail:{bySwiperTouchMove:!0}});s.wrapperEl.dispatchEvent(e)}i.allowMomentumBounce=!1,!r.grabCursor||!0!==s.allowSlideNext&&!0!==s.allowSlidePrev||s.setGrabCursor(!0),s.emit("sliderFirstMove",p)}if((new Date).getTime(),!1!==r._loopSwapReset&&i.isMoved&&i.allowThresholdMove&&w!==s.touchesDirection&&b&&y&&Math.abs(g)>=1)return Object.assign(n,{startX:u,startY:m,currentX:u,currentY:m,startTranslate:i.currentTranslate}),i.loopSwapReset=!0,void(i.startTranslate=i.currentTranslate);s.emit("sliderMove",p),i.isMoved=!0,i.currentTranslate=g+i.startTranslate;let E=!0,x=r.resistanceRatio;if(r.touchReleaseOnEdges&&(x=0),g>0?(b&&y&&i.allowThresholdMove&&i.currentTranslate>(r.centeredSlides?s.minTranslate()-s.slidesSizesGrid[s.activeIndex+1]-("auto"!==r.slidesPerView&&s.slides.length-r.slidesPerView>=2?s.slidesSizesGrid[s.activeIndex+1]+s.params.spaceBetween:0)-s.params.spaceBetween:s.minTranslate())&&s.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),i.currentTranslate>s.minTranslate()&&(E=!1,r.resistance&&(i.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+i.startTranslate+g)**x))):g<0&&(b&&y&&i.allowThresholdMove&&i.currentTranslate<(r.centeredSlides?s.maxTranslate()+s.slidesSizesGrid[s.slidesSizesGrid.length-1]+s.params.spaceBetween+("auto"!==r.slidesPerView&&s.slides.length-r.slidesPerView>=2?s.slidesSizesGrid[s.slidesSizesGrid.length-1]+s.params.spaceBetween:0):s.maxTranslate())&&s.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:s.slides.length-("auto"===r.slidesPerView?s.slidesPerViewDynamic():Math.ceil(parseFloat(r.slidesPerView,10)))}),i.currentTranslate<s.maxTranslate()&&(E=!1,r.resistance&&(i.currentTranslate=s.maxTranslate()+1-(s.maxTranslate()-i.startTranslate-g)**x))),E&&(p.preventedByNestedSwiper=!0),!s.allowSlideNext&&"next"===s.swipeDirection&&i.currentTranslate<i.startTranslate&&(i.currentTranslate=i.startTranslate),!s.allowSlidePrev&&"prev"===s.swipeDirection&&i.currentTranslate>i.startTranslate&&(i.currentTranslate=i.startTranslate),s.allowSlidePrev||s.allowSlideNext||(i.currentTranslate=i.startTranslate),r.threshold>0){if(!(Math.abs(g)>r.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,n.startX=n.currentX,n.startY=n.currentY,i.currentTranslate=i.startTranslate,void(n.diff=s.isHorizontal()?n.currentX-n.startX:n.currentY-n.startY)}r.followFinger&&!r.cssMode&&((r.freeMode&&r.freeMode.enabled&&s.freeMode||r.watchSlidesProgress)&&(s.updateActiveIndex(),s.updateSlidesClasses()),r.freeMode&&r.freeMode.enabled&&s.freeMode&&s.freeMode.onTouchMove(),s.updateProgress(i.currentTranslate),s.setTranslate(i.currentTranslate))}function 
vendor: 4,379 bytes, line 583
583W(e){const t=this,s=t.touchEventsData;let a,i=e;i.originalEvent&&(i=i.originalEvent);if("touchend"===i.type||"touchcancel"===i.type){if(a=[...i.changedTouches].find((e=>e.identifier===s.touchId)),!a||a.identifier!==s.touchId)return}else{if(null!==s.touchId)return;if(i.pointerId!==s.pointerId)return;a=i}if(["pointercancel","pointerout","pointerleave","contextmenu"].includes(i.type)){if(!(["pointercancel","contextmenu"].includes(i.type)&&(t.browser.isSafari||t.browser.isWebView)))return}s.pointerId=null,s.touchId=null;const{params:r,touches:n,rtlTranslate:d,slidesGrid:c,enabled:p}=t;if(!p)return;if(!r.simulateTouch&&"mouse"===i.pointerType)return;if(s.allowTouchCallbacks&&t.emit("touchEnd",i),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&r.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);r.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const u=o(),m=u-s.touchStartTime;if(t.allowClick){const e=i.path||i.composedPath&&i.composedPath();t.updateClickedSlide(e&&e[0]||i.target,e),t.emit("tap click",i),m<300&&u-s.lastClickTime<300&&t.emit("doubleTap doubleClick",i)}if(s.lastClickTime=o(),l((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||!s.isMoved||!t.swipeDirection||0===n.diff&&!s.loopSwapReset||s.currentTranslate===s.startTranslate&&!s.loopSwapReset)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let h;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,h=r.followFinger?d?t.translate:-t.translate:-s.currentTranslate,r.cssMode)return;if(r.freeMode&&r.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:h});const f=h>=-t.maxTranslate()&&!t.params.loop;let g=0,v=t.slidesSizesGrid[0];for(let e=0;e<c.length;e+=e<r.slidesPerGroupSkip?1:r.slidesPerGroup){const t=e<r.slidesPerGroupSkip-1?1:r.slidesPerGroup;void 0!==c[e+t]?(f||h>=c[e]&&h<c[e+t])&&(g=e,v=c[e+t]-c[e]):(f||h>=c[e])&&(g=e,v=c[c.length-1]-c[c.length-2])}let w=null,b=null;r.rewind&&(t.isBeginning?b=r.virtual&&r.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(w=0));const y=(h-c[g])/v,E=g<r.slidesPerGroupSkip-1?1:r.slidesPerGroup;if(m>r.longSwipesMs){if(!r.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(y>=r.longSwipesRatio?t.slideTo(r.rewind&&t.isEnd?w:g+E):t.slideTo(g)),"prev"===t.swipeDirection&&(y>1-r.longSwipesRatio?t.slideTo(g+E):null!==b&&y<0&&Math.abs(y)>r.longSwipesRatio?t.slideTo(b):t.slideTo(g))}else{if(!r.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(i.target===t.navigation.nextEl||i.target===t.navigation.prevEl)?i.target===t.navigation.nextEl?t.slideTo(g+E):t.slideTo(g):("next"===t.swipeDirection&&t.slideTo(null!==w?w:g+E),"prev"===t.swipeDirection&&t.slideTo(null!==b?b:g))}}function j(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:a,allowSlidePrev:i,snapGrid:r}=e,n=e.virtual&&e.params.virtual.enabled;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses();const l=n&&t.loop;!("auto"===t.slidesPerView||t.slidesPerView>1)||!e.isEnd||e.isBeginning||e.params.centeredSlides||l?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=i,e.allowSlideNext=a,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}function U(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function K(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:a}=e;if(!a)return;let i;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();i=0===r?0:(e.translate-e.minTranslate())/r,i!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}function Z(e){const t=this;G(t,e.target),t.params.cssMode||"auto"!==t.params.slidesPerView&&!t.params.autoHeight||t.update(
vendor: 5,575 bytes, line 583
583)}function Q(){const e=this;e.documentTouchHandlerProceeded||(e.documentTouchHandlerProceeded=!0,e.params.touchReleaseOnEdges&&(e.el.style.touchAction="auto"))}const J=(e,t)=>{const s=a(),{params:i,el:r,wrapperEl:n,device:l}=e,o=!!i.nested,d="on"===t?"addEventListener":"removeEventListener",c=t;r&&"string"!=typeof r&&(s[d]("touchstart",e.onDocumentTouchStart,{passive:!1,capture:o}),r[d]("touchstart",e.onTouchStart,{passive:!1}),r[d]("pointerdown",e.onTouchStart,{passive:!1}),s[d]("touchmove",e.onTouchMove,{passive:!1,capture:o}),s[d]("pointermove",e.onTouchMove,{passive:!1,capture:o}),s[d]("touchend",e.onTouchEnd,{passive:!0}),s[d]("pointerup",e.onTouchEnd,{passive:!0}),s[d]("pointercancel",e.onTouchEnd,{passive:!0}),s[d]("touchcancel",e.onTouchEnd,{passive:!0}),s[d]("pointerout",e.onTouchEnd,{passive:!0}),s[d]("pointerleave",e.onTouchEnd,{passive:!0}),s[d]("contextmenu",e.onTouchEnd,{passive:!0}),(i.preventClicks||i.preventClicksPropagation)&&r[d]("click",e.onClick,!0),i.cssMode&&n[d]("scroll",e.onScroll),i.updateOnWindowResize?e[c](l.ios||l.android?"resize orientationchange observerUpdate":"resize observerUpdate",j,!0):e[c]("observerUpdate",j,!0),r[d]("load",e.onLoad,{capture:!0}))};const ee=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var te={init:!0,direction:"horizontal",oneWayMovement:!1,swiperElementNodeName:"SWIPER-CONTAINER",touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,eventsPrefix:"swiper",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,loopAddBlankSlides:!0,loopAdditionalSlides:0,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",slideBlankClass:"swiper-slide-blank",slideActiveClass:"swiper-slide-active",slideVisibleClass:"swiper-slide-visible",slideFullyVisibleClass:"swiper-slide-fully-visible",slideNextClass:"swiper-slide-next",slidePrevClass:"swiper-slide-prev",wrapperClass:"swiper-wrapper",lazyPreloaderClass:"swiper-lazy-preloader",lazyPreloadPrevNext:0,runCallbacksOnInit:!0,_emitClasses:!1};function se(e,t){return function(s){void 0===s&&(s={});const a=Object.keys(s)[0],i=s[a];"object"==typeof i&&null!==i?(!0===e[a]&&(e[a]={enabled:!0}),"navigation"===a&&e[a]&&e[a].enabled&&!e[a].prevEl&&!e[a].nextEl&&(e[a].auto=!0),["pagination","scrollbar"].indexOf(a)>=0&&e[a]&&e[a].enabled&&!e[a].el&&(e[a].auto=!0),a in e&&"enabled"in i?("object"!=typeof e[a]||"enabled"in e[a]||(e[a].enabled=!0),e[a]||(e[a]={enabled:!1}),p(t,s)):p(t,s)):p(t,s)}}const ae={eventsEmitter:k,update:B,translate:H,transition:{setTransition:function(e,t){const s=this;s.params.cssMode||(s.wrapperEl.style.transitionDuration=`${e}ms`,s.wrapperEl.style.transitionDelay=0===e?"0ms":""),s.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;a.cssMode||(a.autoHeight&&s.updateAutoHeight(),N({swiper:s,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;s.animating=!1,a.cssMode||(s.setTransition(0),N({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:R,loop:_,grabCursor:{setGrabCursor:function(e){const t=this;if(!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const s="container"===t.params.touchEventsTarget?t.el:t.wrapperEl;t.isElement&&(t.__preventObserver__=!0),s.style.cursor="move",s.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,{params:t}=e;e.onTouchStart=V.bind(e),e.onTouchMove=F.bind(e),e.onTouchEnd=W.bind(e),e.onDocumentTouchStart=Q.bind(e),t.cssMode&&(e.onScroll=K.bind(e)),e.onClick=U.bind(e),e.onLoad=Z.bind(e),J(e,"on")},detachEvents:function(){J(this,"off")}},breakpoints:{setBreakpoint:function(){const e=this,{realIndex:t,initialized:s,params:i,el:r}=e,n=i.breakpoints;if(!n||n&&0===Object.keys(n).length)return;const l=a(),o="window"!==i.breakpointsBase&&i.breakpointsBase?"container":i.breakpointsBase,d=["window","container"].includes(i.breakpointsBase)||!i.breakpointsBase?e.el:l.querySelector(i.breakpointsBase),c=e.getBreakp
vendor: 3,981 bytes, line 583
583oint(n,o,d);if(!c||e.currentBreakpoint===c)return;const u=(c in n?n[c]:void 0)||e.originalParams,m=ee(e,i),h=ee(e,u),f=e.params.grabCursor,g=u.grabCursor,v=i.enabled;m&&!h?(r.classList.remove(`${i.containerModifierClass}grid`,`${i.containerModifierClass}grid-column`),e.emitContainerClasses()):!m&&h&&(r.classList.add(`${i.containerModifierClass}grid`),(u.grid.fill&&"column"===u.grid.fill||!u.grid.fill&&"column"===i.grid.fill)&&r.classList.add(`${i.containerModifierClass}grid-column`),e.emitContainerClasses()),f&&!g?e.unsetGrabCursor():!f&&g&&e.setGrabCursor(),["navigation","pagination","scrollbar"].forEach((t=>{if(void 0===u[t])return;const s=i[t]&&i[t].enabled,a=u[t]&&u[t].enabled;s&&!a&&e[t].disable(),!s&&a&&e[t].enable()}));const w=u.direction&&u.direction!==i.direction,b=i.loop&&(u.slidesPerView!==i.slidesPerView||w),y=i.loop;w&&s&&e.changeDirection(),p(e.params,u);const E=e.params.enabled,x=e.params.loop;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),v&&!E?e.disable():!v&&E&&e.enable(),e.currentBreakpoint=c,e.emit("_beforeBreakpoint",u),s&&(b?(e.loopDestroy(),e.loopCreate(t),e.updateSlides()):!y&&x?(e.loopCreate(t),e.updateSlides()):y&&!x&&e.loopDestroy()),e.emit("breakpoint",u)},getBreakpoint:function(e,t,s){if(void 0===t&&(t="window"),!e||"container"===t&&!s)return;let a=!1;const i=r(),n="window"===t?i.innerHeight:s.clientHeight,l=Object.keys(e).map((e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:n*t,point:e}}return{value:e,point:e}}));l.sort(((e,t)=>parseInt(e.value,10)-parseInt(t.value,10)));for(let e=0;e<l.length;e+=1){const{point:r,value:n}=l[e];"window"===t?i.matchMedia(`(min-width: ${n}px)`).matches&&(a=r):n<=s.clientWidth&&(a=r)}return a||"max"}},checkOverflow:{checkOverflow:function(){const e=this,{isLocked:t,params:s}=e,{slidesOffsetBefore:a}=s;if(a){const t=e.slides.length-1,s=e.slidesGrid[t]+e.slidesSizesGrid[t]+2*a;e.isLocked=e.size>s}else e.isLocked=1===e.snapGrid.length;!0===s.allowSlideNext&&(e.allowSlideNext=!e.isLocked),!0===s.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:s,rtl:a,el:i,device:r}=e,n=function(e,t){const s=[];return e.forEach((e=>{"object"==typeof e?Object.keys(e).forEach((a=>{e[a]&&s.push(t+a)})):"string"==typeof e&&s.push(t+e)})),s}(["initialized",s.direction,{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:a},{grid:s.grid&&s.grid.rows>1},{"grid-column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:r.android},{ios:r.ios},{"css-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides},{"watch-progress":s.watchSlidesProgress}],s.containerModifierClass);t.push(...n),i.classList.add(...t),e.emitContainerClasses()},removeClasses:function(){const{el:e,classNames:t}=this;e&&"string"!=typeof e&&(e.classList.remove(...t),this.emitContainerClasses())}}},ie={};class re{constructor(){let e,t;for(var s=arguments.length,i=new Array(s),r=0;r<s;r++)i[r]=arguments[r];1===i.length&&i[0].constructor&&"Object"===Object.prototype.toString.call(i[0]).slice(8,-1)?t=i[0]:[e,t]=i,t||(t={}),t=p({},t),e&&!t.el&&(t.el=e);const n=a();if(t.el&&"string"==typeof t.el&&n.querySelectorAll(t.el).length>1){const e=[];return n.querySelectorAll(t.el).forEach((s=>{const a=p({},t,{el:s});e.push(new re(a))})),e}const l=this;l.__swiper__=!0,l.support=z(),l.device=A({userAgent:t.userAgent}),l.browser=$(),l.eventsListeners={},l.eventsAnyListeners=[],l.modules=[...l.__modules__],t.modules&&Array.isArray(t.modules)&&l.modules.push(...t.modules);const o={};l.modules.forEach((e=>{e({params:t,swiper:l,extendParams:se(t,o),on:l.on.bind(l),once:l.once.bind(l),off:l.off.bind(l),emit:l.emit.bind(l)})}));const d=p({},te,o);return l.params=p({},d,ie,t),l.originalParams=p({},l.params),l.passedParams=p({}
vendor: 4,848 bytes, line 583
583,t),l.params&&l.params.on&&Object.keys(l.params.on).forEach((e=>{l.on(e,l.params.on[e])})),l.params&&l.params.onAny&&l.onAny(l.params.onAny),Object.assign(l,{enabled:l.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===l.params.direction,isVertical:()=>"vertical"===l.params.direction,activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,cssOverflowAdjustment(){return Math.trunc(this.translate/2**23)*2**23},allowSlideNext:l.params.allowSlideNext,allowSlidePrev:l.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:l.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,pointerId:null,touchId:null},allowClick:!0,allowTouchMove:l.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),l.emit("_swiper"),l.params.init&&l.init(),l}getDirectionLabel(e){return this.isHorizontal()?e:{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"}[e]}getSlideIndex(e){const{slidesEl:t,params:s}=this,a=y(f(t,`.${s.slideClass}, swiper-slide`)[0]);return y(e)-a}getSlideIndexByData(e){return this.getSlideIndex(this.slides.find((t=>1*t.getAttribute("data-swiper-slide-index")===e)))}getSlideIndexWhenGrid(e){return this.grid&&this.params.grid&&this.params.grid.rows>1&&("column"===this.params.grid.fill?e=Math.floor(e/this.params.grid.rows):"row"===this.params.grid.fill&&(e%=Math.ceil(this.slides.length/this.params.grid.rows))),e}recalcSlides(){const{slidesEl:e,params:t}=this;this.slides=f(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 s=this;e=Math.min(Math.max(e,0),1);const a=s.minTranslate(),i=(s.maxTranslate()-a)*e+a;s.translateTo(i,void 0===t?0:t),s.updateActiveIndex(),s.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((s=>{const a=e.getSlideClasses(s);t.push({slideEl:s,classNames:a}),e.emit("_slideClass",s,a)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:a,slidesGrid:i,slidesSizesGrid:r,size:n,activeIndex:l}=this;let o=1;if("number"==typeof s.slidesPerView)return s.slidesPerView;if(s.centeredSlides){let e,t=a[l]?Math.ceil(a[l].swiperSlideSize):0;for(let s=l+1;s<a.length;s+=1)a[s]&&!e&&(t+=Math.ceil(a[s].swiperSlideSize),o+=1,t>n&&(e=!0));for(let s=l-1;s>=0;s-=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0))}else if("current"===e)for(let e=l+1;e<a.length;e+=1){(t?i[e]+r[e]-i[l]<n:i[e]-i[l]<n)&&(o+=1)}else for(let e=l-1;e>=0;e-=1){i[l]-i[e]<n&&(o+=1)}return o}update(){const e=this;if(!e||e.destroyed)return;const{snapGrid:t,params:s}=e;function a(){const t=e.rtlTranslate?-1*e.translate:e.translate,s=Math.min(Math.max(t,e.maxTranslate()),e.minTranslate());e.setTranslate(s),e.updateActiveIndex(),e.updateSlidesClasses()}let i;if(s.breakpoints&&e.setBreakpoint(),[...e.el.querySelectorAll('[loading="lazy"]')].forEach((t=>{t.complete&&G(e,t)})),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),s.freeMode&&s.freeMode.enabled&&!s.cssMode)a(),s.autoHeight&&e.updateAutoHeight();else{if(("auto"===s.slidesPerView||s.slidesPerView>1)&&e.isEnd&&!s.centeredSlides){const t=e.virtual&&s.virtual.enabled?e.virtual.slides:e.slides;i=e.slideTo(t.length-1,0,!1,!0)}else i=e.slideTo(e.activeIndex,0,!1,!0);i||a()}s.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const s=this,a=s.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(s.el.classList.remove(`${s.params.containerModifierClass}${a}`),s.el.classList.add(`${s.params.containerModifierClass}${e}`),s.emitContainerClasses(),s.params.direction=e,s.slides.forEac
vendor: 4,493 bytes, line 583
583h((t=>{"vertical"===e?t.style.width="":t.style.height=""})),s.emit("changeDirection"),t&&s.update()),s}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 s=e||t.params.el;if("string"==typeof s&&(s=document.querySelector(s)),!s)return!1;s.swiper=t,s.parentNode&&s.parentNode.host&&s.parentNode.host.nodeName===t.params.swiperElementNodeName.toUpperCase()&&(t.isElement=!0);const a=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let i=(()=>{if(s&&s.shadowRoot&&s.shadowRoot.querySelector){return s.shadowRoot.querySelector(a())}return f(s,a())[0]})();return!i&&t.params.createElements&&(i=v("div",t.params.wrapperClass),s.append(i),f(s,`.${t.params.slideClass}`).forEach((e=>{i.append(e)}))),Object.assign(t,{el:s,wrapperEl:i,slidesEl:t.isElement&&!s.parentNode.host.slideSlots?s.parentNode.host:i,hostEl:t.isElement?s.parentNode.host:s,mounted:!0,rtl:"rtl"===s.dir.toLowerCase()||"rtl"===b(s,"direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===s.dir.toLowerCase()||"rtl"===b(s,"direction")),wrongRTL:"-webkit-box"===b(i,"display")}),!0}init(e){const t=this;if(t.initialized)return t;if(!1===t.mount(e))return t;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(void 0,!0),t.attachEvents();const s=[...t.el.querySelectorAll('[loading="lazy"]')];return t.isElement&&s.push(...t.hostEl.querySelectorAll('[loading="lazy"]')),s.forEach((e=>{e.complete?G(t,e):e.addEventListener("load",(e=>{G(t,e.target)}))})),Y(t),t.initialized=!0,Y(t),t.emit("init"),t.emit("afterInit"),t}destroy(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);const s=this,{params:a,el:i,wrapperEl:r,slides:n}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),a.loop&&s.loopDestroy(),t&&(s.removeClasses(),i&&"string"!=typeof i&&i.removeAttribute("style"),r&&r.removeAttribute("style"),n&&n.length&&n.forEach((e=>{e.classList.remove(a.slideVisibleClass,a.slideFullyVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass),e.removeAttribute("style"),e.removeAttribute("data-swiper-slide-index")}))),s.emit("destroy"),Object.keys(s.eventsListeners).forEach((e=>{s.off(e)})),!1!==e&&(s.el&&"string"!=typeof s.el&&(s.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){}}))}(s)),s.destroyed=!0),null}static extendDefaults(e){p(ie,e)}static get extendedDefaults(){return ie}static get defaults(){return te}static installModule(e){re.prototype.__modules__||(re.prototype.__modules__=[]);const t=re.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>re.installModule(e))),re):(re.installModule(e),re)}}function ne(e,t,s,a){return e.params.createElements&&Object.keys(a).forEach((i=>{if(!s[i]&&!0===s.auto){let r=f(e.el,`.${a[i]}`)[0];r||(r=v("div",a[i]),r.className=a[i],e.el.append(r)),s[i]=r,t[i]=r}})),s}function le(e){return void 0===e&&(e=""),`.${e.trim().replace(/([\.:!+\/()[\]])/g,"\\$1").replace(/ /g,".")}`}function oe(e){const t=this,{params:s,slidesEl:a}=t;s.loop&&t.loopDestroy();const i=e=>{if("string"==typeof e){const t=document.createElement("div");C(t,e),a.append(t.children[0]),C(t,"")}else a.append(e)};if("object"==typeof e&&"length"in e)for(let t=0;t<e.length;t+=1)e[t]&&i(e[t]);else i(e);t.recalcSlides(),s.loop&&t.loopCreate(),s.observer&&!t.isElement||t.update()}function de(e){const t=this,{params:s,activeIndex:a,slidesEl:i}=t;s.loop&&t.loopDestroy();let r=a+1;const n=e=>{if("string"==typeof e){const t=document.createElement("div");C(t,e),i.prepend(t.children[0]),C(t,"")}else i.prepend(e)};if("object"==typeof e&&"length"in e){for(let t=0;t<e.length;t+=1)e[t]&&n(e[t]);r=a+e.length}else n(e);t.recalcSlides(),s.loop&&t.loopCreate(),s.observer&&!t.isElement||t.update(
vendor: 7,243 bytes, line 583
583),t.slideTo(r,0,!1)}function ce(e,t){const s=this,{params:a,activeIndex:i,slidesEl:r}=s;let n=i;a.loop&&(n-=s.loopedSlides,s.loopDestroy(),s.recalcSlides());const l=s.slides.length;if(e<=0)return void s.prependSlide(t);if(e>=l)return void s.appendSlide(t);let o=n>e?n+1:n;const d=[];for(let t=l-1;t>=e;t-=1){const e=s.slides[t];e.remove(),d.unshift(e)}if("object"==typeof t&&"length"in t){for(let e=0;e<t.length;e+=1)t[e]&&r.append(t[e]);o=n>e?n+t.length:n}else r.append(t);for(let e=0;e<d.length;e+=1)r.append(d[e]);s.recalcSlides(),a.loop&&s.loopCreate(),a.observer&&!s.isElement||s.update(),a.loop?s.slideTo(o+s.loopedSlides,0,!1):s.slideTo(o,0,!1)}function pe(e){const t=this,{params:s,activeIndex:a}=t;let i=a;s.loop&&(i-=t.loopedSlides,t.loopDestroy());let r,n=i;if("object"==typeof e&&"length"in e){for(let s=0;s<e.length;s+=1)r=e[s],t.slides[r]&&t.slides[r].remove(),r<n&&(n-=1);n=Math.max(n,0)}else r=e,t.slides[r]&&t.slides[r].remove(),r<n&&(n-=1),n=Math.max(n,0);t.recalcSlides(),s.loop&&t.loopCreate(),s.observer&&!t.isElement||t.update(),s.loop?t.slideTo(n+t.loopedSlides,0,!1):t.slideTo(n,0,!1)}function ue(){const e=this,t=[];for(let s=0;s<e.slides.length;s+=1)t.push(s);e.removeSlide(t)}function me(e){const{effect:t,swiper:s,on:a,setTranslate:i,setTransition:r,overwriteParams:n,perspective:l,recreateShadows:o,getEffectParams:d}=e;let c;a("beforeInit",(()=>{if(s.params.effect!==t)return;s.classNames.push(`${s.params.containerModifierClass}${t}`),l&&l()&&s.classNames.push(`${s.params.containerModifierClass}3d`);const e=n?n():{};Object.assign(s.params,e),Object.assign(s.originalParams,e)})),a("setTranslate _virtualUpdated",(()=>{s.params.effect===t&&i()})),a("setTransition",((e,a)=>{s.params.effect===t&&r(a)})),a("transitionEnd",(()=>{if(s.params.effect===t&&o){if(!d||!d().slideShadows)return;s.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()))})),o()}})),a("virtualUpdate",(()=>{s.params.effect===t&&(s.slides.length||(c=!0),requestAnimationFrame((()=>{c&&s.slides&&s.slides.length&&(i(),c=!1)})))}))}function he(e,t){const s=h(t);return s!==t&&(s.style.backfaceVisibility="hidden",s.style["-webkit-backface-visibility"]="hidden"),s}function fe(e){let{swiper:t,duration:s,transformElements:a,allSlides:i}=e;const{activeIndex:r}=t;if(t.params.virtualTranslate&&0!==s){let e,s=!1;e=i?a:a.filter((e=>{const s=e.classList.contains("swiper-slide-transform")?(e=>{if(!e.parentElement)return t.slides.find((t=>t.shadowRoot&&t.shadowRoot===e.parentNode));return e.parentElement})(e):e;return t.getSlideIndex(s)===r})),e.forEach((e=>{x(e,(()=>{if(s)return;if(!t||t.destroyed)return;s=!0,t.animating=!1;const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});t.wrapperEl.dispatchEvent(e)}))}))}}function ge(e,t,s){const a=`swiper-slide-shadow${s?`-${s}`:""}${e?` swiper-slide-shadow-${e}`:""}`,i=h(t);let r=i.querySelector(`.${a.split(" ").join(".")}`);return r||(r=v("div",a.split(" ")),i.append(r)),r}Object.keys(ae).forEach((e=>{Object.keys(ae[e]).forEach((t=>{re.prototype[t]=ae[e][t]}))})),re.use([function(e){let{swiper:t,on:s,emit:a}=e;const i=r();let n=null,l=null;const o=()=>{t&&!t.destroyed&&t.initialized&&(a("beforeResize"),a("resize"))},d=()=>{t&&!t.destroyed&&t.initialized&&a("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void 0!==i.ResizeObserver?t&&!t.destroyed&&t.initialized&&(n=new ResizeObserver((e=>{l=i.requestAnimationFrame((()=>{const{width:s,height:a}=t;let i=s,r=a;e.forEach((e=>{let{contentBoxSize:s,contentRect:a,target:n}=e;n&&n!==t.el||(i=a?a.width:(s[0]||s).inlineSize,r=a?a.height:(s[0]||s).blockSize)})),i===s&&r===a||o()}))})),n.observe(t.el)):(i.addEventListener("resize",o),i.addEventListener("orientationchange",d))})),s("destroy",(()=>{l&&i.cancelAnimationFrame(l),n&&n.unobserve&&t.el&&(n.unobserve(t.el),n=null),i.removeEventListener("resize",o),i.removeEventListener("orientationchange",d)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=[],l=r(),o=function(e,s){void 0===s&&(s={});const a=new(l.MutationObserver||l.WebkitMutationObserver)((e=>{if(t.__preventObserver__)return;if(1===e.length)return void i("observerUpdate",e[0]);const s=function(){i("observerUpdate",e[0])};l.requestAnimationFrame?l.requestAnimationFrame(s):l.setTimeout(s,0)}));a.observe(e,{attributes:void 0===s.attributes||s.attributes,childList:t.isElement||(void 0===s.childList||s).childList,characterData:void 0===s.characterData||s.characterData}),n.push(a)};s({observer:!1,observeParents:!1,observeSlideChildren:!1}),a("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=E(t.hostEl);for(let t=0;t<e.length;t+=1)o(e[t])}o(t.hostEl,{childList:t.params.observeSlideChildren}),o(t.wrapperEl,{attributes:!1})}})),a("destroy",(()=>{n.forEach((e=>{e.disconnect()})),n.splice(0,n.length)}))}]);const ve=[function(e){let t,{swiper:s,extendParams:i,on:r,emit:n}=e;i({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}});const l=a();s.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]};const o=l.createElement("div");function d(e,t){const a=s.params.virtual;if(a.cache&&s.virtual.cache[t])return s.virtual.cache[t];let i;return a.renderSlide?(i=a.renderSlide.call(s,e,t),"string"==typeof i&&(C(o,i),i=o.children[0])):i=s.isElement?v("swiper-slide"):v("div",s.params.slideClass),i.setAttribute("data-swiper-slide-index",t),a.renderSlide||C(i,e),a.cache&&(s.virtual.cache[t]=i),i}function c(e,t,a){const{slidesPerView:i,slidesPerGroup:r,centeredSlides:l,loop:o,initialSlide:c}=s.params;if(t&&!o&&c>0)return;const{addSlidesBefore:p,addSlidesAfter:u}=s.params.virtual,{from:m,to:h,slides:g,slidesGrid:v,offset:w}=s.virtual;s.params.cssMode||s.updateActiveIndex();const b=void 0===a?s.activeIndex||0:a;let y,E,x;y=s.rtlTranslate?"right":s.isHorizontal()?"left":"top",l?(E=Math.floor(i/2)+r+u,x=Math.floor(i/2)+r+p):(E=i+(r-1)+u,x=(o?i:r)+p);let S=b-x,T=b+E;o||(S=Math.max(S,0),T=Math.min(T,g.length-1));let M=(s.slidesGrid[S]||0)-(s.slidesGrid[0]||0);function C(){s.updateSlides(),s.updateProgress(),s.updateSlidesClasses(),n("virtualUpdate")}if(o&&b>=x?(S-=x,l||(M+=s.slidesGrid[0])):o&&b<x&&(S=-x,l&&(M+=s.slidesGrid[0])),Object.assign(s.virtual,{from:S,to:T,offset:M,slidesGrid:s.slidesGrid,slidesBefore:x,slidesAfter:E}),m===S&&h===T&&!e)return s.slidesGrid!==v&&M!==w&&s.slides.forEach((e=>{e.style[y]=M-Math.abs(s.cssOverflowAdjustment())+"px"})),s.updateProgress(),void n("virtualUpdate");if(s.params.virtual.renderExternal)return s.params.virtual.renderExternal.call(s,{offset:M,from:S,to:T,slides:function(){const e=[];for(let t=S;t<=T;t+=1)e.push(g[t]);return e}()}),void(s.params.virtual.renderExternalUpdate?C():n("virtualUpdate"));const P=[],L=[],I=e=>{let t=e;return e<0?t=g.length+e:t>=g.length&&(t-=g.length),t};if(e)s.slides.filter((e=>e.matches(`.${s.params.slideClass}, swiper-slide`))).forEach((e=>{e.remove()}));else for(let e=m;e<=h;e+=1)if(e<S||e>T){const t=I(e);s.slides.filter((e=>e.matches(`.${s.params.slideClass}[data-swiper-slide-index="${t}"], swiper-slide[data-swiper-slide-index="${t}
583"]`))).forEach((e=>{e.remove()}))}const z=o?-g.length:0,A=o?2*g.length:g.length;for(let t=z;t<A;t+=1)if(t>=S&&t<=T){const s=I(t);void 0===h||e?L.push(s):(t>h&&L.push(s),t<m&&P.push(s))}if(L.forEach((e=>{s.slidesEl.append(d(g[e],e))})),o)for(let e=P.length-1;e>=0;e-=1){const t=P[e];s.slidesEl.prepend(d(g[t],t))}else P.sort(((e,t)=>t-e)),P.forEach((e=>{s.slidesEl.prepend(d(g[e],e))}));f(s.slidesEl,".swiper-slide, swiper-slide").forEach((e=>{e.style[y]=M-Math.abs(s.cssOverflowAdjustment())+"px"})),C()}r("beforeInit",(()=>{if(!s.params.virtual.enabled)return;let e;if(void 0===s.passedParams.virtual.slides){const t=[...s.slidesEl.children].filter((e=>e.matches(`.${s.params.slideClass}, swiper-slide`)));t&&t.length&&(s.virtual.slides=[...t],e=!0,t.forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t),s.virtual.cache[t]=e,e.remove()})))}e||(s.virtual.slides=s.params.virtual.slides),s.classNames.push(`${s.params.containerModifierClass}virtual`),s.params.watchSlidesProgress=!0,s.originalParams.watchSlidesProgress=!0,c(!1,!0)})),r("setTranslate",(()=>{s.params.virtual.enabled&&(s.params.cssMode&&!s._immediateVirtual?(clearTimeout(t),t=setTimeout((()=>{c()}),100)):c())})),r("init update resize",(()=>{s.params.virtual.enabled&&s.params.cssMode&&u(s.wrapperEl,"--swiper-virtual-size",`${s.virtualSize}px`)})),Object.assign(s.virtual,{appendSlide:function(e){if("object"==typeof e&&"length"in e)for(let t=0;t<e.length;t+=1)e[t]&&s.virtual.slides.push(e[t]);else s.virtual.slides.push(e);c(!0)},prependSlide:function(e){const t=s.activeIndex;let a=t+1,i=1;if(Array.isArray(e)){for(let t=0;t<e.length;t+=1)e[t]&&s.virtual.slides.unshift(e[t]);a=t+e.length,i=e.length}else s.virtual.slides.unshift(e);if(s.params.virtual.cache){const e=s.virtual.cache,t={};Object.keys(e).forEach((s=>{const a=e[s],r=a.getAttribute("data-swiper-slide-index");r&&a.setAttribute("data-swiper-slide-index",parseInt(r,10)+i),t[parseInt(s,10)+i]=a})),s.virtual.cache=t}c(!0),s.slideTo(a,0)},removeSlide:function(e){if(null==e)return;let t=s.activeIndex;if(Array.isArray(e))for(let a=e.length-1;a>=0;a-=1)s.params.virtual.cache&&(delete s.virtual.cache[e[a]],Object.keys(s.virtual.cache).forEach((t=>{t>e&&(s.virtual.cache[t-1]=s.virtual.cache[t],s.virtual.cache[t-1].setAttribute("data-swiper-slide-index",t-1),delete s.virtual.cache[t])}))),s.virtual.slides.splice(e[a],1),e[a]<t&&(t-=1),t=Math.max(t,0);else s.params.virtual.cache&&(delete s.virtual.cache[e],Object.keys(s.virtual.cache).forEach((t=>{t>e&&(s.virtual.cache[t-1]=s.virtual.cache[t],s.virtual.cache[t-1].setAttribute("data-swiper-slide-index",t-1),delete s.virtual.cache[t])}))),s.virtual.slides.splice(e,1),e<t&&(t-=1),t=Math.max(t,0);c(!0),s.slideTo(t,0)},removeAllSlides:function(){s.virtual.slides=[],s.params.virtual.cache&&(s.virtual.cache={}),c(!0),s.slideTo(0,0)},update:c})},function(e){let{swiper:t,extendParams:s,on:i,emit:n}=e;const l=a(),o=r();function d(e){if(!t.enabled)return;const{rtlTranslate:s}=t;let a=e;a.originalEvent&&(a=a.originalEvent);const i=a.keyCode||a.charCode,r=t.params.keyboard.pageUpDown,d=r&&33===i,c=r&&34===i,p=37===i,u=39===i,m=38===i,h=40===i;if(!t.allowSlideNext&&(t.isHorizontal()&&u||t.isVertical()&&h||c))return!1;if(!t.allowSlidePrev&&(t.isHorizontal()&&p||t.isVertical()&&m||d))return!1;if(!(a.shiftKey||a.altKey||a.ctrlKey||a.metaKey||l.activeElement&&(l.activeElement.isContentEditable||l.activeElement.nodeName&&("input"===l.activeElement.nodeName.toLowerCase()||"textarea"===l.activeElement.nodeName.toLowerCase())))){if(t.params.keyboard.onlyInViewport&&(d||c||p||u||m||h)){let e=!1;if(E(t.el,`.${t.params.slideClass}, swiper-slide`).length>0&&0===E(t.el,`.${t.params.slideActiveClass}`).length)return;const a=t.el,i=a.clientWidth,r=a.clientHeight,n=o.innerWidth,l=o.innerHeight,d=w(a);s&&(d.left-=a.scrollLeft);const c=[[d.left,d.top],[d.left+i,d.top],[d.left,d.top+r],[d.left+i,d.top+r]];for(let t=0;t<c.length;t+=1){const s=c[t];if(s[0]>=0&&s[0]<=n&&s[1]>=0&&s[1]<=l){if(0===s[0]&&0===s[1])continue;e=!0}}if(!e)return}t.isHorizontal()?((d||c||p||u)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((c||u)&&!s||(d||p)&&s)&&t.slideNext(),((d||p)&&!s||(c||u)&&s)&&t.slidePrev()):((d||c||m||h)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(c||h)&&t.slideNext(),(d||m)&&t.slidePrev()),n("keyPress",i)}}function c(){t.keyboard.enabled||(l.addEventListener("keydown",d),t.keyboard.enabled=!0)}function p(){t.keyboard.enabled&&(l.removeEventListener("keydown",d),t.keyboard.enabled=!1)}t.keyboard={enabled:!1},s({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),i("init",(()=>{t.params.keyboard.enabled&&c()})),i("destroy",(()=>{t.keyboard.enabled&&p()})),Object.assign(t.keyboard,{enable:c,disable:p})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();let d;s({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null,noMousewheelClass:"swiper-no-mousewheel"}}),t.mousewheel={enabled:!1};let c,p=o();const u=[];function m(){t.enabled&&(t.mouseEntered=!0)}function h(){t.enabled&&(t.mouseEntered=!1)}function f(e){return!(t.params.mousewheel.thresholdDelta&&e.delta<t.params.mousewheel.thresholdDelta)&&(!(t.params.mousewheel.thresholdTime&&o()-p<t.params.mousewheel.thresholdTime)&&(e.delta>=6&&o()-p<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),i("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),i("scroll",e.raw)),p=(new n.Date).getTime(),!1)))}function g(e){let s=e,a=!0;if(!t.enabled)return;if(e.target.closest(`.${t.params.mousewheel.noMousewheelClass}`))return;const r=t.params.mousewheel;t.params.cssMode&&s.preventDefault();let n=t.el;"container"!==t.params.mousewheel.eventsTarget&&(n=document.querySelector(t.params.mousewheel.eventsTarget));const p=n&&n.contains(s.target);if(!t.mouseEntered&&!p&&!r.releaseOnEdges)return!0;s.originalEvent&&(s=s.originalEvent);let m=0;const h=t.rtlTranslate?-1:1,g=function(e){let t=0,s=0,a=0,i=0;return"detail"in e&&(s=e.detail),"wheelDelta"in e&&(s=-e.wheelDelta/120),"wheelDeltaY"in e&&(s=-e.wheelDeltaY/120
vendor: 4,794 bytes, line 583
583),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=s,s=0),a=10*t,i=10*s,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!s&&(s=i<1?-1:1),{spinX:t,spinY:s,pixelX:a,pixelY:i}}(s);if(r.forceToAxis)if(t.isHorizontal()){if(!(Math.abs(g.pixelX)>Math.abs(g.pixelY)))return!0;m=-g.pixelX*h}else{if(!(Math.abs(g.pixelY)>Math.abs(g.pixelX)))return!0;m=-g.pixelY}else m=Math.abs(g.pixelX)>Math.abs(g.pixelY)?-g.pixelX*h:-g.pixelY;if(0===m)return!0;r.invert&&(m=-m);let v=t.getTranslate()+m*r.sensitivity;if(v>=t.minTranslate()&&(v=t.minTranslate()),v<=t.maxTranslate()&&(v=t.maxTranslate()),a=!!t.params.loop||!(v===t.minTranslate()||v===t.maxTranslate()),a&&t.params.nested&&s.stopPropagation(),t.params.freeMode&&t.params.freeMode.enabled){const e={time:o(),delta:Math.abs(m),direction:Math.sign(m)},a=c&&e.time<c.time+500&&e.delta<=c.delta&&e.direction===c.direction;if(!a){c=void 0;let n=t.getTranslate()+m*r.sensitivity;const o=t.isBeginning,p=t.isEnd;if(n>=t.minTranslate()&&(n=t.minTranslate()),n<=t.maxTranslate()&&(n=t.maxTranslate()),t.setTransition(0),t.setTranslate(n),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses(),(!o&&t.isBeginning||!p&&t.isEnd)&&t.updateSlidesClasses(),t.params.loop&&t.loopFix({direction:e.direction<0?"next":"prev",byMousewheel:!0}),t.params.freeMode.sticky){clearTimeout(d),d=void 0,u.length>=15&&u.shift();const s=u.length?u[u.length-1]:void 0,a=u[0];if(u.push(e),s&&(e.delta>s.delta||e.direction!==s.direction))u.splice(0);else if(u.length>=15&&e.time-a.time<500&&a.delta-e.delta>=1&&e.delta<=6){const s=m>0?.8:.2;c=e,u.splice(0),d=l((()=>{!t.destroyed&&t.params&&t.slideToClosest(t.params.speed,!0,void 0,s)}),0)}d||(d=l((()=>{if(t.destroyed||!t.params)return;c=e,u.splice(0),t.slideToClosest(t.params.speed,!0,void 0,.5)}),500))}if(a||i("scroll",s),t.params.autoplay&&t.params.autoplay.disableOnInteraction&&t.autoplay.stop(),r.releaseOnEdges&&(n===t.minTranslate()||n===t.maxTranslate()))return!0}}else{const s={time:o(),delta:Math.abs(m),direction:Math.sign(m),raw:e};u.length>=2&&u.shift();const a=u.length?u[u.length-1]:void 0;if(u.push(s),a?(s.direction!==a.direction||s.delta>a.delta||s.time>a.time+150)&&f(s):f(s),function(e){const s=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&s.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&s.releaseOnEdges)return!0;return!1}(s))return!0}return s.preventDefault?s.preventDefault():s.returnValue=!1,!1}function v(e){let s=t.el;"container"!==t.params.mousewheel.eventsTarget&&(s=document.querySelector(t.params.mousewheel.eventsTarget)),s[e]("mouseenter",m),s[e]("mouseleave",h),s[e]("wheel",g)}function w(){return t.params.cssMode?(t.wrapperEl.removeEventListener("wheel",g),!0):!t.mousewheel.enabled&&(v("addEventListener"),t.mousewheel.enabled=!0,!0)}function b(){return t.params.cssMode?(t.wrapperEl.addEventListener(event,g),!0):!!t.mousewheel.enabled&&(v("removeEventListener"),t.mousewheel.enabled=!1,!0)}a("init",(()=>{!t.params.mousewheel.enabled&&t.params.cssMode&&b(),t.params.mousewheel.enabled&&w()})),a("destroy",(()=>{t.params.cssMode&&w(),t.mousewheel.enabled&&b()})),Object.assign(t.mousewheel,{enable:w,disable:b})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;function r(e){let s;return e&&"string"==typeof e&&t.isElement&&(s=t.el.querySelector(e)||t.hostEl.querySelector(e),s)?s:(e&&("string"==typeof e&&(s=[...document.querySelectorAll(e)]),t.params.uniqueNavElements&&"string"==typeof e&&s&&s.length>1&&1===t.el.querySelectorAll(e).length?s=t.el.querySelector(e):s&&1===s.length&&(s=s[0])),e&&!s?e:s)}function n(e,s){const a=t.params.navigation;(e=T(e)).forEach((e=>{e&&(e.classList[s?"add":"remove"](...a.disabledClass.split(" ")),"BUTTON"===e.tagName&&(e.disabled=s),t.params.watchOverflow&&t.enabled&&e.classList[t.isLocked?"add":"remove"](a.lockClass))}))}function l(){const{nextEl:e,prevEl:s}=t.navigation;if(t.params.loop)return n(s,!1),void n(e,!1);n(s,t.isBeginning&&!t.params.rewind),n(e,t.isEnd&&!t.params.rewind)}function o(e){e.preventDefault(),(!t.isBeginning||t.params.loop||t.params.rewind)&&(t.slidePrev(),i("navigationPrev"))}function d(e){e.preventDefault(),(!t.isEnd||t.params.loop||t.params.rewind)&&(t.slideNext(),i("navigationNext"))}function c(){const e=t.params.navigation;if(t.params.navigation=ne(t,t.originalParams.navigation,t.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!e.nextEl&&!e.prevEl)return;let s=r(e.nextEl),a=r(e.prevEl);Object.assign(t.navigation,{nextEl:s,prevEl:a}),s=T(s),a=T(a);const i=(s,a)=>{s&&s.addEventListener("click","next"===a?d:o),!t.enabled&&s&&s.classList.add(...e.lockClass.split(" "))};
vendor: 4,373 bytes, line 583
583s.forEach((e=>i(e,"next"))),a.forEach((e=>i(e,"prev")))}function p(){let{nextEl:e,prevEl:s}=t.navigation;e=T(e),s=T(s);const a=(e,s)=>{e.removeEventListener("click","next"===s?d:o),e.classList.remove(...t.params.navigation.disabledClass.split(" "))};e.forEach((e=>a(e,"next"))),s.forEach((e=>a(e,"prev")))}s({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),t.navigation={nextEl:null,prevEl:null},a("init",(()=>{!1===t.params.navigation.enabled?u():(c(),l())})),a("toEdge fromEdge lock unlock",(()=>{l()})),a("destroy",(()=>{p()})),a("enable disable",(()=>{let{nextEl:e,prevEl:s}=t.navigation;e=T(e),s=T(s),t.enabled?l():[...e,...s].filter((e=>!!e)).forEach((e=>e.classList.add(t.params.navigation.lockClass)))})),a("click",((e,s)=>{let{nextEl:a,prevEl:r}=t.navigation;a=T(a),r=T(r);const n=s.target;let l=r.includes(n)||a.includes(n);if(t.isElement&&!l){const e=s.path||s.composedPath&&s.composedPath();e&&(l=e.find((e=>a.includes(e)||r.includes(e))))}if(t.params.navigation.hideOnClick&&!l){if(t.pagination&&t.params.pagination&&t.params.pagination.clickable&&(t.pagination.el===n||t.pagination.el.contains(n)))return;let e;a.length?e=a[0].classList.contains(t.params.navigation.hiddenClass):r.length&&(e=r[0].classList.contains(t.params.navigation.hiddenClass)),i(!0===e?"navigationShow":"navigationHide"),[...a,...r].filter((e=>!!e)).forEach((e=>e.classList.toggle(t.params.navigation.hiddenClass)))}}));const u=()=>{t.el.classList.add(...t.params.navigation.navigationDisabledClass.split(" ")),p()};Object.assign(t.navigation,{enable:()=>{t.el.classList.remove(...t.params.navigation.navigationDisabledClass.split(" ")),c(),l()},disable:u,update:l,init:c,destroy:p})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const r="swiper-pagination";let n;s({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:`${r}-bullet`,bulletActiveClass:`${r}-bullet-active`,modifierClass:`${r}-`,currentClass:`${r}-current`,totalClass:`${r}-total`,hiddenClass:`${r}-hidden`,progressbarFillClass:`${r}-progressbar-fill`,progressbarOppositeClass:`${r}-progressbar-opposite`,clickableClass:`${r}-clickable`,lockClass:`${r}-lock`,horizontalClass:`${r}-horizontal`,verticalClass:`${r}-vertical`,paginationDisabledClass:`${r}-disabled`}}),t.pagination={el:null,bullets:[]};let l=0;function o(){return!t.params.pagination.el||!t.pagination.el||Array.isArray(t.pagination.el)&&0===t.pagination.el.length}function d(e,s){const{bulletActiveClass:a}=t.params.pagination;e&&(e=e[("prev"===s?"previous":"next")+"ElementSibling"])&&(e.classList.add(`${a}-${s}`),(e=e[("prev"===s?"previous":"next")+"ElementSibling"])&&e.classList.add(`${a}-${s}-${s}`))}function c(e){const s=e.target.closest(le(t.params.pagination.bulletClass));if(!s)return;e.preventDefault();const a=y(s)*t.params.slidesPerGroup;if(t.params.loop){if(t.realIndex===a)return;const e=(i=t.realIndex,r=a,n=t.slides.length,(r%=n)==1+(i%=n)?"next":r===i-1?"previous":void 0);"next"===e?t.slideNext():"previous"===e?t.slidePrev():t.slideToLoop(a)}else t.slideTo(a);var i,r,n}function p(){const e=t.rtl,s=t.params.pagination;if(o())return;let a,r,c=t.pagination.el;c=T(c);const p=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,u=t.params.loop?Math.ceil(p/t.params.slidesPerGroup):t.snapGrid.length;if(t.params.loop?(r=t.previousRealIndex||0,a=t.params.slidesPerGroup>1?Math.floor(t.realIndex/t.params.slidesPerGroup):t.realIndex):void 0!==t.snapIndex?(a=t.snapIndex,r=t.previousSnapIndex):(r=t.previousIndex||0,a=t.activeIndex||0),"bullets"===s.type&&t.pagination.bullets&&t.pagination.bullets.length>0){const i=t.pagination.bullets;let o,p,u;if(s.dynamicBullets&&(n=S(i[0],t.isHorizontal()?"width":"height",!0),c.forEach((e=>{e.style[t.isHorizontal()?"width":"height"]=n*(s.dynamicMainBullets+4)+"px"})),s.dynamicMainBullets>1&&void 0!==r&&(l+=a-(r||0),l>s.dynamicMainBullets-1?l=s.dynamicMainBullets-1:l<0&&(l=0)),o=Math.max(a-l,0),p=o+(Math.min(i.length,s.dynamicMainBullets)-1),u=(p+o)/2),i.forEac
vendor: 9,756 bytes, line 583
583h((e=>{const t=[...["","-next","-next-next","-prev","-prev-prev","-main"].map((e=>`${s.bulletActiveClass}${e}`))].map((e=>"string"==typeof e&&e.includes(" ")?e.split(" "):e)).flat();e.classList.remove(...t)})),c.length>1)i.forEach((e=>{const i=y(e);i===a?e.classList.add(...s.bulletActiveClass.split(" ")):t.isElement&&e.setAttribute("part","bullet"),s.dynamicBullets&&(i>=o&&i<=p&&e.classList.add(...`${s.bulletActiveClass}-main`.split(" ")),i===o&&d(e,"prev"),i===p&&d(e,"next"))}));else{const e=i[a];if(e&&e.classList.add(...s.bulletActiveClass.split(" ")),t.isElement&&i.forEach(((e,t)=>{e.setAttribute("part",t===a?"bullet-active":"bullet")})),s.dynamicBullets){const e=i[o],t=i[p];for(let e=o;e<=p;e+=1)i[e]&&i[e].classList.add(...`${s.bulletActiveClass}-main`.split(" "));d(e,"prev"),d(t,"next")}}if(s.dynamicBullets){const a=Math.min(i.length,s.dynamicMainBullets+4),r=(n*a-n)/2-u*n,l=e?"right":"left";i.forEach((e=>{e.style[t.isHorizontal()?l:"top"]=`${r}px`}))}}c.forEach(((e,r)=>{if("fraction"===s.type&&(e.querySelectorAll(le(s.currentClass)).forEach((e=>{e.textContent=s.formatFractionCurrent(a+1)})),e.querySelectorAll(le(s.totalClass)).forEach((e=>{e.textContent=s.formatFractionTotal(u)}))),"progressbar"===s.type){let i;i=s.progressbarOpposite?t.isHorizontal()?"vertical":"horizontal":t.isHorizontal()?"horizontal":"vertical";const r=(a+1)/u;let n=1,l=1;"horizontal"===i?n=r:l=r,e.querySelectorAll(le(s.progressbarFillClass)).forEach((e=>{e.style.transform=`translate3d(0,0,0) scaleX(${n}) scaleY(${l})`,e.style.transitionDuration=`${t.params.speed}ms`}))}"custom"===s.type&&s.renderCustom?(C(e,s.renderCustom(t,a+1,u)),0===r&&i("paginationRender",e)):(0===r&&i("paginationRender",e),i("paginationUpdate",e)),t.params.watchOverflow&&t.enabled&&e.classList[t.isLocked?"add":"remove"](s.lockClass)}))}function u(){const e=t.params.pagination;if(o())return;const s=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.grid&&t.params.grid.rows>1?t.slides.length/Math.ceil(t.params.grid.rows):t.slides.length;let a=t.pagination.el;a=T(a);let r="";if("bullets"===e.type){let a=t.params.loop?Math.ceil(s/t.params.slidesPerGroup):t.snapGrid.length;t.params.freeMode&&t.params.freeMode.enabled&&a>s&&(a=s);for(let s=0;s<a;s+=1)e.renderBullet?r+=e.renderBullet.call(t,s,e.bulletClass):r+=`<${e.bulletElement} ${t.isElement?'part="bullet"':""} class="${e.bulletClass}"></${e.bulletElement}>`}"fraction"===e.type&&(r=e.renderFraction?e.renderFraction.call(t,e.currentClass,e.totalClass):`<span class="${e.currentClass}"></span> / <span class="${e.totalClass}"></span>`),"progressbar"===e.type&&(r=e.renderProgressbar?e.renderProgressbar.call(t,e.progressbarFillClass):`<span class="${e.progressbarFillClass}"></span>`),t.pagination.bullets=[],a.forEach((s=>{"custom"!==e.type&&C(s,r||""),"bullets"===e.type&&t.pagination.bullets.push(...s.querySelectorAll(le(e.bulletClass)))})),"custom"!==e.type&&i("paginationRender",a[0])}function m(){t.params.pagination=ne(t,t.originalParams.pagination,t.params.pagination,{el:"swiper-pagination"});const e=t.params.pagination;if(!e.el)return;let s;"string"==typeof e.el&&t.isElement&&(s=t.el.querySelector(e.el)),s||"string"!=typeof e.el||(s=[...document.querySelectorAll(e.el)]),s||(s=e.el),s&&0!==s.length&&(t.params.uniqueNavElements&&"string"==typeof e.el&&Array.isArray(s)&&s.length>1&&(s=[...t.el.querySelectorAll(e.el)],s.length>1&&(s=s.find((e=>E(e,".swiper")[0]===t.el)))),Array.isArray(s)&&1===s.length&&(s=s[0]),Object.assign(t.pagination,{el:s}),s=T(s),s.forEach((s=>{"bullets"===e.type&&e.clickable&&s.classList.add(...(e.clickableClass||"").split(" ")),s.classList.add(e.modifierClass+e.type),s.classList.add(t.isHorizontal()?e.horizontalClass:e.verticalClass),"bullets"===e.type&&e.dynamicBullets&&(s.classList.add(`${e.modifierClass}${e.type}-dynamic`),l=0,e.dynamicMainBullets<1&&(e.dynamicMainBullets=1)),"progressbar"===e.type&&e.progressbarOpposite&&s.classList.add(e.progressbarOppositeClass),e.clickable&&s.addEventListener("click",c),t.enabled||s.classList.add(e.lockClass)})))}function h(){const e=t.params.pagination;if(o())return;let s=t.pagination.el;s&&(s=T(s),s.forEach((s=>{s.classList.remove(e.hiddenClass),s.classList.remove(e.modifierClass+e.type),s.classList.remove(t.isHorizontal()?e.horizontalClass:e.verticalClass),e.clickable&&(s.classList.remove(...(e.clickableClass||"").split(" ")),s.removeEventListener("click",c))}))),t.pagination.bullets&&t.pagination.bullets.forEach((t=>t.classList.remove(...e.bulletActiveClass.split(" "))))}a("changeDirection",(()=>{if(!t.pagination||!t.pagination.el)return;const e=t.params.pagination;let{el:s}=t.pagination;s=T(s),s.forEach((s=>{s.classList.remove(e.horizontalClass,e.verticalClass),s.classList.add(t.isHorizontal()?e.horizontalClass:e.verticalClass)}))})),a("init",(()=>{!1===t.params.pagination.enabled?f():(m(),u(),p())})),a("activeIndexChange",(()=>{void 0===t.snapIndex&&p()})),a("snapIndexChange",(()=>{p()})),a("snapGridLengthChange",(()=>{u(),p()})),a("destroy",(()=>{h()})),a("enable disable",(()=>{let{el:e}=t.pagination;e&&(e=T(e),e.forEach((e=>e.classList[t.enabled?"remove":"add"](t.params.pagination.lockClass))))})),a("lock unlock",(()=>{p()})),a("click",((e,s)=>{const a=s.target,r=T(t.pagination.el);if(t.params.pagination.el&&t.params.pagination.hideOnClick&&r&&r.length>0&&!a.classList.contains(t.params.pagination.bulletClass)){if(t.navigation&&(t.navigation.nextEl&&a===t.navigation.nextEl||t.navigation.prevEl&&a===t.navigation.prevEl))return;const e=r[0].classList.contains(t.params.pagination.hiddenClass);i(!0===e?"paginationShow":"paginationHide"),r.forEach((e=>e.classList.toggle(t.params.pagination.hiddenClass)))}}));const f=()=>{t.el.classList.add(t.params.pagination.paginationDisabledClass);let{el:e}=t.pagination;e&&(e=T(e),e.forEach((e=>e.classList.add(t.params.pagination.paginationDisabledClass)))),h()};Object.assign(t.pagination,{enable:()=>{t.el.classList.remove(t.params.pagination.paginationDisabledClass);let{el:e}=t.pagination;e&&(e=T(e),e.forEach((e=>e.classList.remove(t.params.pagination.paginationDisabledClass)))),m(),u(),p()},disable:f,render:u,update:p,init:m,destroy:h})},function(e){let{swiper:t,extendParams:s,on:i,emit:r}=e;const o=a();let d,c,p,u,m=!1,h=null,f=null;function g(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e,rtlTranslate:s}=t,{dragEl:a,el:i}=e,r=t.params.scrollbar,n=t.params.loop?t.progressLoop:t.progress;let l=c,o=(p-c)*n;s?(o=-o,o>0?(l=c-o,o=0):-o+c>p&&(l=p+o)):o<0?(l=c+o,o=0):o+c>p&&(l=p-o),t.isHorizontal()?(a.style.transform=`translate3d(${o}px, 0, 0)`,a.style.width=`${l}px`):(a.style.transform=`translate3d(0px, ${o}px, 0)`,a.style.height=`${l}px`),r.hide&&(clearTimeout(h),i.style.opacity=1,h=setTimeout((()=>{i.style.opacity=0,i.style.transitionDuration="400ms"}),1e3))}function b(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e}=t,{dragEl:s,el:a}=e;s.style.width="",s.style.height="",p=t.isHorizontal()?a.offsetWidth:a.offsetHeight,u=t.size/(t.virtualSize+t.params.slidesOffsetBefore-(t.params.centeredSlides?t.snapGrid[0]:0)),c="auto"===t.params.scrollbar.dragSize?p*u:parseInt(t.params.scrollbar.dragSize,10),t.isHorizontal()?s.style.width=`${c}px`:s.style.height=`${c}px`,a.style.display=u>=1?"none":"",t.params.scrollbar.hide&&(a.style.opacity=0),t.params.watchOverflow&&t.enabled&&e.el.classList[t.isLocked?"add":"remove"](t.params.scrollbar.lockClass)}function y(e){return t.isHorizontal()?e.clientX:e.clientY}function E(e){const{scrollbar:s,rtlTranslate:a}=t,{el:i}=s;let r;r=(y(e)-w(i)[t.isHorizontal()?"left":"top"]-(null!==d?d:c/2))/(p-c),r=Math.max(Math.min(r,1),0),a&&(r=1-r);const n=t.minTranslate()+(t.maxTranslate()-t.minTranslate())*r;t.updateProgress(n),t.setTranslate(n),t.updateActiveIndex(),t.updateSlidesClasses()}function x(e){const s=t.params.scrollbar,{scrollbar:a,wrapperEl:i}=t,{el:n,dragEl:l}=a;m=!0,d=e.target===l?y(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),i.style.transitionDuration="100ms",l.style.transitionDuration="100ms",E(e),clearTimeout(f),n.style.transitionDuration="0ms",s.hide&&(n.style.opacity=1),t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="none"),r("scrollbarDragStart",e)}function S(e){const{scrollbar:s,wrapperEl:a}=t,{el:i,dragEl:n}=s;m&&(e.preventDefault&&e.cancelable?e.preventDefault():e.returnValue=!1,E(e),a.style.transitionDuration="0ms",i.style.transitionDuration="0ms",n.style.transitionDuration="0ms",r("scrollbarDragMove",e))}function M(e){const s=t.params.scrollbar,{scrollbar:a,wrapperEl:i}=t,{el:n}=a;m&&(m=!1,t.params.cssMode&&(t.wrapperEl.style["scroll-snap-type"]="",i.style.transitionDuration=""),s.hide&&(clearTimeout(f),f=l((()=>{n.style.opacity=0,n.style.transitionDuration="400ms"}),1e3)),r("scrollbarDragEnd",e),s.snapOnRelease&&t.slideToClosest())}function C(e){const{scrollbar:s,params:a}=t,i=s.el;if(!i)return;const r=i,n=!!a.passiveListeners&&{passive:!1,capture:!1},l=!!a.passiveListeners&&{passive:!0,capture:!1};if(!r)return;const d="on"===e?"addEventListener":"removeEventListener";r[d]("pointerdown",x,n),o[d]("pointermove",S,n),o[d]("pointerup",M,l)}function P(){const{scrollbar:e,el:s}=t;t.params.scrollbar=ne(t,t.originalParams.scrollbar,t.params.scrollbar,{el:"swiper-scrollbar"});const a=t.params.scrollbar;if(!a.el)return;let i,r;if("string"==typeof a.el&&t.isElement&&(i=t.el.querySelector(a.el)),i||"string"!=typeof a.el)i||(i=a.el);else if(i=o.querySelectorAll(a.el),!i.length)return;t.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===s.querySelectorAll(a.el).length&&(i=s.querySelector(a.el)),i.length>0&&(i=i[0]),i.classList.add(t.isHorizontal()?a.horizontalClass:a.verticalClass),i&&(r=i.querySelector(l
vendor: 3,921 bytes, line 583
583e(t.params.scrollbar.dragClass)),r||(r=v("div",t.params.scrollbar.dragClass),i.append(r))),Object.assign(e,{el:i,dragEl:r}),a.draggable&&t.params.scrollbar.el&&t.scrollbar.el&&C("on"),i&&i.classList[t.enabled?"remove":"add"](...n(t.params.scrollbar.lockClass))}function L(){const e=t.params.scrollbar,s=t.scrollbar.el;s&&s.classList.remove(...n(t.isHorizontal()?e.horizontalClass:e.verticalClass)),t.params.scrollbar.el&&t.scrollbar.el&&C("off")}s({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag",scrollbarDisabledClass:"swiper-scrollbar-disabled",horizontalClass:"swiper-scrollbar-horizontal",verticalClass:"swiper-scrollbar-vertical"}}),t.scrollbar={el:null,dragEl:null},i("changeDirection",(()=>{if(!t.scrollbar||!t.scrollbar.el)return;const e=t.params.scrollbar;let{el:s}=t.scrollbar;s=T(s),s.forEach((s=>{s.classList.remove(e.horizontalClass,e.verticalClass),s.classList.add(t.isHorizontal()?e.horizontalClass:e.verticalClass)}))})),i("init",(()=>{!1===t.params.scrollbar.enabled?I():(P(),b(),g())})),i("update resize observerUpdate lock unlock changeDirection",(()=>{b()})),i("setTranslate",(()=>{g()})),i("setTransition",((e,s)=>{!function(e){t.params.scrollbar.el&&t.scrollbar.el&&(t.scrollbar.dragEl.style.transitionDuration=`${e}ms`)}(s)})),i("enable disable",(()=>{const{el:e}=t.scrollbar;e&&e.classList[t.enabled?"remove":"add"](...n(t.params.scrollbar.lockClass))})),i("destroy",(()=>{L()}));const I=()=>{t.el.classList.add(...n(t.params.scrollbar.scrollbarDisabledClass)),t.scrollbar.el&&t.scrollbar.el.classList.add(...n(t.params.scrollbar.scrollbarDisabledClass)),L()};Object.assign(t.scrollbar,{enable:()=>{t.el.classList.remove(...n(t.params.scrollbar.scrollbarDisabledClass)),t.scrollbar.el&&t.scrollbar.el.classList.remove(...n(t.params.scrollbar.scrollbarDisabledClass)),P(),b(),g()},disable:I,updateSize:b,setTranslate:g,init:P,destroy:L})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({parallax:{enabled:!1}});const i="[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]",r=(e,s)=>{const{rtl:a}=t,i=a?-1:1,r=e.getAttribute("data-swiper-parallax")||"0";let n=e.getAttribute("data-swiper-parallax-x"),l=e.getAttribute("data-swiper-parallax-y");const o=e.getAttribute("data-swiper-parallax-scale"),d=e.getAttribute("data-swiper-parallax-opacity"),c=e.getAttribute("data-swiper-parallax-rotate");if(n||l?(n=n||"0",l=l||"0"):t.isHorizontal()?(n=r,l="0"):(l=r,n="0"),n=n.indexOf("%")>=0?parseInt(n,10)*s*i+"%":n*s*i+"px",l=l.indexOf("%")>=0?parseInt(l,10)*s+"%":l*s+"px",null!=d){const t=d-(d-1)*(1-Math.abs(s));e.style.opacity=t}let p=`translate3d(${n}, ${l}, 0px)`;if(null!=o){p+=` scale(${o-(o-1)*(1-Math.abs(s))})`}if(c&&null!=c){p+=` rotate(${c*s*-1}deg)`}e.style.transform=p},n=()=>{const{el:e,slides:s,progress:a,snapGrid:n,isElement:l}=t,o=f(e,i);t.isElement&&o.push(...f(t.hostEl,i)),o.forEach((e=>{r(e,a)})),s.forEach(((e,s)=>{let l=e.progress;t.params.slidesPerGroup>1&&"auto"!==t.params.slidesPerView&&(l+=Math.ceil(s/2)-a*(n.length-1)),l=Math.min(Math.max(l,-1),1),e.querySelectorAll(`${i}, [data-swiper-parallax-rotate]`).forEach((e=>{r(e,l)}))}))};a("beforeInit",(()=>{t.params.parallax.enabled&&(t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0)})),a("init",(()=>{t.params.parallax.enabled&&n()})),a("setTranslate",(()=>{t.params.parallax.enabled&&n()})),a("setTransition",((e,s)=>{t.params.parallax.enabled&&function(e){void 0===e&&(e=t.params.speed);const{el:s,hostEl:a}=t,r=[...s.querySelectorAll(i)];t.isElement&&r.push(...a.querySelectorAll(i)),r.forEach((t=>{let s=parseInt(t.getAttribute("data-swiper-parallax-duration"),10)||e;0===e&&(s=0),t.style.transitionDuration=`${s}ms`}))}(s)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();s({zoom:{enabled:!1,
583limitToOriginalSize:!1,maxRatio:3,minRatio:1,panOnMouseMove:!1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),t.zoom={enabled:!1};let l=1,o=!1,c=!1,p={x:0,y:0};const u=-3;let m,h;const g=[],v={originX:0,originY:0,slideEl:void 0,slideWidth:void 0,slideHeight:void 0,imageEl:void 0,imageWrapEl:void 0,maxRatio:3},b={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},y={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let x,S=1;function T(){if(g.length<2)return 1;const e=g[0].pageX,t=g[0].pageY,s=g[1].pageX,a=g[1].pageY;return Math.sqrt((s-e)**2+(a-t)**2)}function M(){const e=t.params.zoom,s=v.imageWrapEl.getAttribute("data-swiper-zoom")||e.maxRatio;if(e.limitToOriginalSize&&v.imageEl&&v.imageEl.naturalWidth){const e=v.imageEl.naturalWidth/v.imageEl.offsetWidth;return Math.min(e,s)}return s}function C(e){const s=t.isElement?"swiper-slide":`.${t.params.slideClass}`;return!!e.target.matches(s)||t.slides.filter((t=>t.contains(e.target))).length>0}function P(e){const s=`.${t.params.zoom.containerClass}`;return!!e.target.matches(s)||[...t.hostEl.querySelectorAll(s)].filter((t=>t.contains(e.target))).length>0}function L(e){if("mouse"===e.pointerType&&g.splice(0,g.length),!C(e))return;const s=t.params.zoom;if(m=!1,h=!1,g.push(e),!(g.length<2)){if(m=!0,v.scaleStart=T(),!v.slideEl){v.slideEl=e.target.closest(`.${t.params.slideClass}, swiper-slide`),v.slideEl||(v.slideEl=t.slides[t.activeIndex]);let a=v.slideEl.querySelector(`.${s.containerClass}`);if(a&&(a=a.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),v.imageEl=a,v.imageWrapEl=a?E(v.imageEl,`.${s.containerClass}`)[0]:void 0,!v.imageWrapEl)return void(v.imageEl=void 0);v.maxRatio=M()}if(v.imageEl){const[e,t]=function(){if(g.length<2)return{x:null,y:null};const e=v.imageEl.getBoundingClientRect();return[(g[0].pageX+(g[1].pageX-g[0].pageX)/2-e.x-n.scrollX)/l,(g[0].pageY+(g[1].pageY-g[0].pageY)/2-e.y-n.scrollY)/l]}();v.originX=e,v.originY=t,v.imageEl.style.transitionDuration="0ms"}o=!0}}function I(e){if(!C(e))return;const s=t.params.zoom,a=t.zoom,i=g.findIndex((t=>t.pointerId===e.pointerId));i>=0&&(g[i]=e),g.length<2||(h=!0,v.scaleMove=T(),v.imageEl&&(a.scale=v.scaleMove/v.scaleStart*l,a.scale>v.maxRatio&&(a.scale=v.maxRatio-1+(a.scale-v.maxRatio+1)**.5),a.scale<s.minRatio&&(a.scale=s.minRatio+1-(s.minRatio-a.scale+1)**.5),v.imageEl.style.transform=`translate3d(0,0,0) scale(${a.scale})`))}function z(e){if(!C(e))return;if("mouse"===e.pointerType&&"pointerout"===e.type)return;const s=t.params.zoom,a=t.zoom,i=g.findIndex((t=>t.pointerId===e.pointerId));i>=0&&g.splice(i,1),m&&h&&(m=!1,h=!1,v.imageEl&&(a.scale=Math.max(Math.min(a.scale,v.maxRatio),s.minRatio),v.imageEl.style.transitionDuration=`${t.params.speed}ms`,v.imageEl.style.transform=`translate3d(0,0,0) scale(${a.scale})`,l=a.scale,o=!1,a.scale>1&&v.slideEl?v.slideEl.classList.add(`${s.zoomedSlideClass}`):a.scale<=1&&v.slideEl&&v.slideEl.classList.remove(`${s.zoomedSlideClass}`),1===a.scale&&(v.originX=0,v.originY=0,v.slideEl=void 0)))}function A(){t.touchEventsData.preventTouchMoveFromPointerMove=!1}function $(e){const s="mouse"===e.pointerType&&t.params.zoom.panOnMouseMove;if(!C(e)||!P(e))return;const a=t.zoom;if(!v.imageEl)return;if(!b.isTouched||!v.slideEl)return void(s&&O(e));if(s)return void O(e);b.isMoved||(b.width=v.imageEl.offsetWidth||v.imageEl.clientWidth,b.height=v.imageEl.offsetHeight||v.imageEl.clientHeight,b.startX=d(v.imageWrapEl,"x")||0,b.startY=d(v.imageWrapEl,"y")||0,v.slideWidth=v.slideEl.offsetWidth,v.slideHeight=v.slideEl.offsetHeight,v.imageWrapEl.style.transitionDuration="0ms");const i=b.width*a.scale,r=b.height*a.scale;b.minX=Math.min(v.slideWidth/2-i/2,0),b.maxX=-b.minX,b.minY=Math.min(v.slideHeight/2-r/2,0),b.maxY=-b.minY,b.touchesCurrent.x=g.length>0?g[0].pageX:e.pageX,b.touchesCurrent.y=g.length>0?g[0].pageY:e.pageY;if(Math.max(Math.abs(b.touchesCurrent.x-b.touchesStart.x),Math.abs(b.touchesCurrent.y-b.touchesStart.y))>5&&(t.allowClick=!1),!b.isMoved&&!o){if(t.isHorizontal()&&(Math.floor(b.minX)===Math.floor(b.startX)&&b.touchesCurrent.x<b.touchesStart.x||Math.floor(b.maxX)===Math.floor(b.startX)&&b.touchesCurrent.x>b.touchesStart.x))return b.isTouched=!1,void A();if(!t.isHorizontal()&&(Math.floor(b.minY)===Math.floor(b.startY)&&b.touchesCurrent.y<b.touchesStart.y||Math.floor(b.maxY)===Math.floor(b.startY)&&b.touchesCurrent.y>b.touchesStart.y))return b.isTouched=!1,void A()}e.cancelable&&e.preventDefault(),e.stopPropagation(),clearTimeout(x),t.touchEventsData.preventTouchMoveFromPointerMove=!0,x=setTimeout((()=>{t.destroyed||A()})),b.isMoved=!0;const n=(a.scale-l)/(v.maxRatio-t.params.zoom.minRatio),{originX:c,originY:p}=v;b.currentX=b.touchesCurrent.x-b.touchesStart.x+b.startX+n*(b.width-2*c),b.currentY=b.touchesCurrent.y-b.touchesStart.y+b.startY+n*(b.height-2*p),b.currentX<b.minX&&(b.currentX=b.minX+1-(b.minX-b.currentX+1)**.8),b.currentX>b.maxX&&(b.currentX=b.maxX-1+(b.currentX-b.maxX+1)**.8),b.currentY<b.minY&&(b.currentY=b.minY+1-(b.minY-b.currentY+1)**.8),b.currentY>b.maxY&&(b.currentY=b.maxY-1+(b.currentY-b.maxY+1)**.8),y.prevPositionX||(y.prevPositionX=b.touchesCurrent.x),y.prevPositionY||(y.prevPositionY=b.touchesCurrent.y),y.prevTime||(y.prevTime=Date.now()),y.x=(b.touchesCurrent.x-y.prevPositionX)/(Date.now()-y.prevTime)/2,y.y=(b.touchesCurrent.y-y.prevPositionY)/(Date.now()-y.prevTime)/2,Math.abs(b.touchesCurrent.x-y.prevPositionX)<2&&(y.x=0),Math.abs(b.touchesCurrent.y-y.prevPositionY)<2&&(y.y=0),y.prevPositionX=b.touchesCurrent.x,y.prevPositionY=b.touchesCurrent.y,y.prevTime=Date.now(),v.imageWrapEl.style.transform=`translate3d(${b.currentX}px, ${b.currentY}px,0)`}function k(){const e=t.zoom;v.slideEl&&t.activeIndex!==t.slides.indexOf(v.slideEl)&&(v.imageEl&&(v.imageEl.style.transform="translate3d(0,
5830,0) scale(1)"),v.imageWrapEl&&(v.imageWrapEl.style.transform="translate3d(0,0,0)"),v.slideEl.classList.remove(`${t.params.zoom.zoomedSlideClass}`),e.scale=1,l=1,v.slideEl=void 0,v.imageEl=void 0,v.imageWrapEl=void 0,v.originX=0,v.originY=0)}function O(e){if(l<=1||!v.imageWrapEl)return;if(!C(e)||!P(e))return;const t=n.getComputedStyle(v.imageWrapEl).transform,s=new n.DOMMatrix(t);if(!c)return c=!0,p.x=e.clientX,p.y=e.clientY,b.startX=s.e,b.startY=s.f,b.width=v.imageEl.offsetWidth||v.imageEl.clientWidth,b.height=v.imageEl.offsetHeight||v.imageEl.clientHeight,v.slideWidth=v.slideEl.offsetWidth,void(v.slideHeight=v.slideEl.offsetHeight);const a=(e.clientX-p.x)*u,i=(e.clientY-p.y)*u,r=b.width*l,o=b.height*l,d=v.slideWidth,m=v.slideHeight,h=Math.min(d/2-r/2,0),f=-h,g=Math.min(m/2-o/2,0),w=-g,y=Math.max(Math.min(b.startX+a,f),h),E=Math.max(Math.min(b.startY+i,w),g);v.imageWrapEl.style.transitionDuration="0ms",v.imageWrapEl.style.transform=`translate3d(${y}px, ${E}px, 0)`,p.x=e.clientX,p.y=e.clientY,b.startX=y,b.startY=E,b.currentX=y,b.currentY=E}function D(e){const s=t.zoom,a=t.params.zoom;if(!v.slideEl){e&&e.target&&(v.slideEl=e.target.closest(`.${t.params.slideClass}, swiper-slide`)),v.slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?v.slideEl=f(t.slidesEl,`.${t.params.slideActiveClass}`)[0]:v.slideEl=t.slides[t.activeIndex]);let s=v.slideEl.querySelector(`.${a.containerClass}`);s&&(s=s.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),v.imageEl=s,v.imageWrapEl=s?E(v.imageEl,`.${a.containerClass}`)[0]:void 0}if(!v.imageEl||!v.imageWrapEl)return;let i,r,o,d,c,p,u,m,h,g,y,x,S,T,C,P,L,I;t.params.cssMode&&(t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.touchAction="none"),v.slideEl.classList.add(`${a.zoomedSlideClass}`),void 0===b.touchesStart.x&&e?(i=e.pageX,r=e.pageY):(i=b.touchesStart.x,r=b.touchesStart.y);const z=l,A="number"==typeof e?e:null;1===l&&A&&(i=void 0,r=void 0,b.touchesStart.x=void 0,b.touchesStart.y=void 0);const $=M();s.scale=A||$,l=A||$,!e||1===l&&A?(u=0,m=0):(L=v.slideEl.offsetWidth,I=v.slideEl.offsetHeight,o=w(v.slideEl).left+n.scrollX,d=w(v.slideEl).top+n.scrollY,c=o+L/2-i,p=d+I/2-r,h=v.imageEl.offsetWidth||v.imageEl.clientWidth,g=v.imageEl.offsetHeight||v.imageEl.clientHeight,y=h*s.scale,x=g*s.scale,S=Math.min(L/2-y/2,0),T=Math.min(I/2-x/2,0),C=-S,P=-T,z>0&&A&&"number"==typeof b.currentX&&"number"==typeof b.currentY?(u=b.currentX*s.scale/z,m=b.currentY*s.scale/z):(u=c*s.scale,m=p*s.scale),u<S&&(u=S),u>C&&(u=C),m<T&&(m=T),m>P&&(m=P)),A&&1===s.scale&&(v.originX=0,v.originY=0),b.currentX=u,b.currentY=m,v.imageWrapEl.style.transitionDuration="300ms",v.imageWrapEl.style.transform=`translate3d(${u}px, ${m}px,0)`,v.imageEl.style.transitionDuration="300ms",v.imageEl.style.transform=`translate3d(0,0,0) scale(${s.scale})`}function G(){const e=t.zoom,s=t.params.zoom;if(!v.slideEl){t.params.virtual&&t.params.virtual.enabled&&t.virtual?v.slideEl=f(t.slidesEl,`.${t.params.slideActiveClass}`)[0]:v.slideEl=t.slides[t.activeIndex];let e=v.slideEl.querySelector(`.${s.containerClass}`);e&&(e=e.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),v.imageEl=e,v.imageWrapEl=e?E(v.imageEl,`.${s.containerClass}`)[0]:void 0}v.imageEl&&v.imageWrapEl&&(t.params.cssMode&&(t.wrapperEl.style.overflow="",t.wrapperEl.style.touchAction=""),e.scale=1,l=1,b.currentX=void 0,b.currentY=void 0,b.touchesStart.x=void 0,b.touchesStart.y=void 0,v.imageWrapEl.style.transitionDuration="300ms",v.imageWrapEl.style.transform="translate3d(0,0,0)",v.imageEl.style.transitionDuration="300ms",v.imageEl.style.transform="translate3d(0,0,0) scale(1)",v.slideEl.classList.remove(`${s.zoomedSlideClass}`),v.slideEl=void 0,v.originX=0,v.originY=0,t.params.zoom.panOnMouseMove&&(p={x:0,y:0},c&&(c=!1,b.startX=0,b.startY=0)))}function X(e){const s=t.zoom;s.scale&&1!==s.scale?G():D(e)}function Y(){return{passiveListener:!!t.params.passiveListeners&&{passive:!0,capture:!1},activeListenerWithCapture:!t.params.passiveListeners||{passive:!1,capture:!0}}}function B(){const e=t.zoom;if(e.enabled)return;e.enabled=!0;const{passiveListener:s,activeListenerWithCapture:a}=Y();t.wrapperEl.addEventListener("pointerdown",L,s),t.wrapperEl.addEventListener("pointermove",I,a),["pointerup","pointercancel","pointerout"].forEach((e=>{t.wrapperEl.addEventListener(e,z,s)})),t.wrapperEl.addEventListener("pointermove",$,a)}function H(){const e=t.zoom;if(!e.enabled)return;e.enabled=!1;const{passiveListener:s,activeListenerWithCapture:a}=Y();t.wrapperEl.removeEventListener("pointerdown",L,s),t.wrapperEl.removeEventListener("pointermove",I,a),["pointerup","pointercancel","pointerout"].forEach((e=>{t.wrapperEl.removeEventListener(e,z,s)})),t.wrapperEl.removeEventListener("pointermove",$,a)}Object.defineProperty(t.zoom,"scale",{get:()=>S,set(e){if(S!==e){const t=v.imageEl,s=v.slideEl;i("zoomChange",e,t,s)}S=e}}),a("init",(()=>{t.params.zoom.enabled&&B()})),a("destroy",(()=>{H()})),a("touchStart",((e,s)=>{t.zoom.enabled&&function(e){const s=t.device;if(!v.imageEl)return;if(b.isTouched)return;s.android&&e.cancelable&&e.preventDefault(),b.isTouched=!0;const a=g.length>0?g[0]:e;b.touchesStart.x=a.pageX,b.touchesStart.y=a.pageY}(s)})),a("touchEnd",((e,s)=>{t.zoom.enabled&&function(){const e=t.zoom;if(g.length=0,!v.imageEl)return;if(!b.isTouched||!b.isMoved)return b.isTouched=!1,void(b.isMoved=!1);b.isTouched=!1,b.isMoved=!1;let s=300,a=300;const i=y.x*s,r=b.currentX+i,n=y.y*a,l=b.currentY+n;0!==y.x&&(s=Math.abs((r-b.currentX)/y.x)),0!==y.y&&(a=Math.abs((l-b.currentY)/y.y));const o=Math.max(s,a);b.currentX=r,b.currentY=l;const d=b.width*e.scale,c=b.height*e.scale;b.minX=Math.min(v.slideWidth/2-d/2,0),b.maxX=-b.minX,b.minY=Math.min(v.slideHeight/2-c/2,0),b.maxY=-b.minY,b.currentX=Math.max(Math.min(b.currentX,b.maxX),b.minX),b.currentY=Math.max(Math.min(b.currentY,b.maxY),b.minY),v.imageWrapEl.style.transitionDuration=`${o}ms`,v.imageWrapEl.style.transform=`translate3d(${b.currentX}px, ${b.currentY}px,0)`}()})),a("doubleTap",((e,s)=>{!t.animating&&t.params.zoom.enabled&&t.zoom.enabled&&t.params.zoom.toggle&&X(s)})),a("transitionEnd",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&k()})),a("slideChange",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&t.params.cssMode&&k()})),Object.assign(t.zoom,{enable:B,disable:H,in:D,out:G,toggle:X})},function(e){let{swiper:t,extendParams:s,on:a}=e;function i(e,t){const s=function(){let e,t,s;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)s=e+t>>1,a[s]<=i?t=s:e=s;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=s(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this}function r(){t.controller.control&&t.controller.spline&&(t.controller.spline=void 0,delete t.controller.spline)}s({controller:{control:void 0,inverse:!1,by:"slide"}}),t.controller={control:void 0},a("beforeInit",(()=>{if("undefined"!=typeof window&&("string"==typeof t.params.controller.control||t.params.controller.control instanceof HTMLElement)){("string"==typeof t.params.controller.control?[...document.querySelectorAll(t.params.controller.control)]:[t.params.controller.control]).forEac
583h((e=>{if(t.controller.control||(t.controller.control=[]),e&&e.swiper)t.controller.control.push(e.swiper);else if(e){const s=`${t.params.eventsPrefix}init`,a=i=>{t.controller.control.push(i.detail[0]),t.update(),e.removeEventListener(s,a)};e.addEventListener(s,a)}}))}else t.controller.control=t.params.controller.control})),a("update",(()=>{r()})),a("resize",(()=>{r()})),a("observerUpdate",(()=>{r()})),a("setTranslate",((e,s,a)=>{t.controller.control&&!t.controller.control.destroyed&&t.controller.setTranslate(s,a)})),a("setTransition",((e,s,a)=>{t.controller.control&&!t.controller.control.destroyed&&t.controller.setTransition(s,a)})),Object.assign(t.controller,{setTranslate:function(e,s){const a=t.controller.control;let r,n;const l=t.constructor;function o(e){if(e.destroyed)return;const s=t.rtlTranslate?-t.translate:t.translate;"slide"===t.params.controller.by&&(!function(e){t.controller.spline=t.params.loop?new i(t.slidesGrid,e.slidesGrid):new i(t.snapGrid,e.snapGrid)}(e),n=-t.controller.spline.interpolate(-s)),n&&"container"!==t.params.controller.by||(r=(e.maxTranslate()-e.minTranslate())/(t.maxTranslate()-t.minTranslate()),!Number.isNaN(r)&&Number.isFinite(r)||(r=1),n=(s-t.minTranslate())*r+e.minTranslate()),t.params.controller.inverse&&(n=e.maxTranslate()-n),e.updateProgress(n),e.setTranslate(n,t),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(a))for(let e=0;e<a.length;e+=1)a[e]!==s&&a[e]instanceof l&&o(a[e]);else a instanceof l&&s!==a&&o(a)},setTransition:function(e,s){const a=t.constructor,i=t.controller.control;let r;function n(s){s.destroyed||(s.setTransition(e,t),0!==e&&(s.transitionStart(),s.params.autoHeight&&l((()=>{s.updateAutoHeight()})),x(s.wrapperEl,(()=>{i&&s.transitionEnd()}))))}if(Array.isArray(i))for(r=0;r<i.length;r+=1)i[r]!==s&&i[r]instanceof a&&n(i[r]);else i instanceof a&&s!==i&&n(i)}})},function(e){let{swiper:t,extendParams:s,on:i}=e;s({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,containerRole:null,itemRoleDescriptionMessage:null,slideRole:"group",id:null,scrollOnFocus:!0}}),t.a11y={clicked:!1};let r,n,l=null,o=(new Date).getTime();function d(e){const t=l;0!==t.length&&C(t,e)}function c(e){(e=T(e)).forEach((e=>{e.setAttribute("tabIndex","0")}))}function p(e){(e=T(e)).forEach((e=>{e.setAttribute("tabIndex","-1")}))}function u(e,t){(e=T(e)).forEach((e=>{e.setAttribute("role",t)}))}function m(e,t){(e=T(e)).forEach((e=>{e.setAttribute("aria-roledescription",t)}))}function h(e,t){(e=T(e)).forEach((e=>{e.setAttribute("aria-label",t)}))}function f(e){(e=T(e)).forEach((e=>{e.setAttribute("aria-disabled",!0)}))}function g(e){(e=T(e)).forEach((e=>{e.setAttribute("aria-disabled",!1)}))}function w(e){if(13!==e.keyCode&&32!==e.keyCode)return;const s=t.params.a11y,a=e.target;if(!t.pagination||!t.pagination.el||a!==t.pagination.el&&!t.pagination.el.contains(e.target)||e.target.matches(le(t.params.pagination.bulletClass))){if(t.navigation&&t.navigation.prevEl&&t.navigation.nextEl){const e=T(t.navigation.prevEl);T(t.navigation.nextEl).includes(a)&&(t.isEnd&&!t.params.loop||t.slideNext(),t.isEnd?d(s.lastSlideMessage):d(s.nextSlideMessage)),e.includes(a)&&(t.isBeginning&&!t.params.loop||t.slidePrev(),t.isBeginning?d(s.firstSlideMessage):d(s.prevSlideMessage))}t.pagination&&a.matches(le(t.params.pagination.bulletClass))&&a.click()}}function b(){return t.pagination&&t.pagination.bullets&&t.pagination.bullets.length}function E(){return b()&&t.params.pagination.clickable}const x=(e,t,s)=>{c(e),"BUTTON"!==e.tagName&&(u(e,"button"),e.addEventListener("keydown",w)),h(e,s),function(e,t){(e=T(e)).forEach((e=>{e.setAttribute("aria-controls",t)}))}(e,t)},S=e=>{n&&n!==e.target&&!n.contains(e.target)&&(r=!0),t.a11y.clicked=!0},M=()=>{r=!1,requestAnimationFrame((()=>{requestAnimationFrame((()=>{t.destroyed||(t.a11y.clicked=!1)}))}))},P=e=>{o=(new Date).getTime()},L=e=>{if(t.a11y.clicked||!t.params.a11y.scrollOnFocus)return;if((new Date).getTime()-o<100)return;const s=e.target.closest(`.${t.params.slideClass}, swiper-slide`);if(!s||!t.slides.includes(s))return;n=s;const a=t.slides.indexOf(s)===t.activeIndex,i=t.params.watchSlidesProgress&&t.visibleSlides&&t.visibleSlides.includes(s);a||i||e.sourceCapabilities&&e.sourceCapabilities.firesTouchEvents||(t.isHorizontal()?t.el.scrollLeft=0:t.el.scrollTop=0,requestAnimationFrame((()=>
583{r||(t.params.loop?t.slideToLoop(t.getSlideIndexWhenGrid(parseInt(s.getAttribute("data-swiper-slide-index"))),0):t.slideTo(t.getSlideIndexWhenGrid(t.slides.indexOf(s)),0),r=!1)})))},I=()=>{const e=t.params.a11y;e.itemRoleDescriptionMessage&&m(t.slides,e.itemRoleDescriptionMessage),e.slideRole&&u(t.slides,e.slideRole);const s=t.slides.length;e.slideLabelMessage&&t.slides.forEach(((a,i)=>{const r=t.params.loop?parseInt(a.getAttribute("data-swiper-slide-index"),10):i;h(a,e.slideLabelMessage.replace(/\{\{index\}\}/,r+1).replace(/\{\{slidesLength\}\}/,s))}))},z=()=>{const e=t.params.a11y;t.el.append(l);const s=t.el;e.containerRoleDescriptionMessage&&m(s,e.containerRoleDescriptionMessage),e.containerMessage&&h(s,e.containerMessage),e.containerRole&&u(s,e.containerRole);const i=t.wrapperEl,r=e.id||i.getAttribute("id")||`swiper-wrapper-${n=16,void 0===n&&(n=16),"x".repeat(n).replace(/x/g,(()=>Math.round(16*Math.random()).toString(16)))}`;var n;const o=t.params.autoplay&&t.params.autoplay.enabled?"off":"polite";var d;d=r,T(i).forEach((e=>{e.setAttribute("id",d)})),function(e,t){(e=T(e)).forEach((e=>{e.setAttribute("aria-live",t)}))}(i,o),I();let{nextEl:c,prevEl:p}=t.navigation?t.navigation:{};if(c=T(c),p=T(p),c&&c.forEach((t=>x(t,r,e.nextSlideMessage))),p&&p.forEach((t=>x(t,r,e.prevSlideMessage))),E()){T(t.pagination.el).forEach((e=>{e.addEventListener("keydown",w)}
vendor: 27,247 bytes, line 583
583))}a().addEventListener("visibilitychange",P),t.el.addEventListener("focus",L,!0),t.el.addEventListener("focus",L,!0),t.el.addEventListener("pointerdown",S,!0),t.el.addEventListener("pointerup",M,!0)};i("beforeInit",(()=>{l=v("span",t.params.a11y.notificationClass),l.setAttribute("aria-live","assertive"),l.setAttribute("aria-atomic","true")})),i("afterInit",(()=>{t.params.a11y.enabled&&z()})),i("slidesLengthChange snapGridLengthChange slidesGridLengthChange",(()=>{t.params.a11y.enabled&&I()})),i("fromEdge toEdge afterInit lock unlock",(()=>{t.params.a11y.enabled&&function(){if(t.params.loop||t.params.rewind||!t.navigation)return;const{nextEl:e,prevEl:s}=t.navigation;s&&(t.isBeginning?(f(s),p(s)):(g(s),c(s))),e&&(t.isEnd?(f(e),p(e)):(g(e),c(e)))}()})),i("paginationUpdate",(()=>{t.params.a11y.enabled&&function(){const e=t.params.a11y;b()&&t.pagination.bullets.forEach((s=>{t.params.pagination.clickable&&(c(s),t.params.pagination.renderBullet||(u(s,"button"),h(s,e.paginationBulletMessage.replace(/\{\{index\}\}/,y(s)+1)))),s.matches(le(t.params.pagination.bulletActiveClass))?s.setAttribute("aria-current","true"):s.removeAttribute("aria-current")}))}()})),i("destroy",(()=>{t.params.a11y.enabled&&function(){l&&l.remove();let{nextEl:e,prevEl:s}=t.navigation?t.navigation:{};e=T(e),s=T(s),e&&e.forEach((e=>e.removeEventListener("keydown",w))),s&&s.forEach((e=>e.removeEventListener("keydown",w))),E()&&T(t.pagination.el).forEach((e=>{e.removeEventListener("keydown",w)}));a().removeEventListener("visibilitychange",P),t.el&&"string"!=typeof t.el&&(t.el.removeEventListener("focus",L,!0),t.el.removeEventListener("pointerdown",S,!0),t.el.removeEventListener("pointerup",M,!0))}()}))},function(e){let{swiper:t,extendParams:s,on:a}=e;s({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let i=!1,n={};const l=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),o=e=>{const t=r();let s;s=e?new URL(e):t.location;const a=s.pathname.slice(1).split("/").filter((e=>""!==e)),i=a.length;return{key:a[i-2],value:a[i-1]}},d=(e,s)=>{const a=r();if(!i||!t.params.history.enabled)return;let n;n=t.params.url?new URL(t.params.url):a.location;const o=t.virtual&&t.params.virtual.enabled?t.slidesEl.querySelector(`[data-swiper-slide-index="${s}"]`):t.slides[s];let d=l(o.getAttribute("data-history"));if(t.params.history.root.length>0){let s=t.params.history.root;"/"===s[s.length-1]&&(s=s.slice(0,s.length-1)),d=`${s}/${e?`${e}/`:""}${d}`}else n.pathname.includes(e)||(d=`${e?`${e}/`:""}${d}`);t.params.history.keepQuery&&(d+=n.search);const c=a.history.state;c&&c.value===d||(t.params.history.replaceState?a.history.replaceState({value:d},null,d):a.history.pushState({value:d},null,d))},c=(e,s,a)=>{if(s)for(let i=0,r=t.slides.length;i<r;i+=1){const r=t.slides[i];if(l(r.getAttribute("data-history"))===s){const s=t.getSlideIndex(r);t.slideTo(s,e,a)}}else t.slideTo(0,e,a)},p=()=>{n=o(t.params.url),c(t.params.speed,n.value,!1)};a("init",(()=>{t.params.history.enabled&&(()=>{const e=r();if(t.params.history){if(!e.history||!e.history.pushState)return t.params.history.enabled=!1,void(t.params.hashNavigation.enabled=!0);i=!0,n=o(t.params.url),n.key||n.value?(c(0,n.value,t.params.runCallbacksOnInit),t.params.history.replaceState||e.addEventListener("popstate",p)):t.params.history.replaceState||e.addEventListener("popstate",p)}})()})),a("destroy",(()=>{t.params.history.enabled&&(()=>{const e=r();t.params.history.replaceState||e.removeEventListener("popstate",p)})()})),a("transitionEnd _freeModeNoMomentumRelease",(()=>{i&&d(t.params.history.key,t.activeIndex)})),a("slideChange",(()=>{i&&t.params.cssMode&&d(t.params.history.key,t.activeIndex)}))},function(e){let{swiper:t,extendParams:s,emit:i,on:n}=e,l=!1;const o=a(),d=r();s({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1,getSlideIndex(e,s){if(t.virtual&&t.params.virtual.enabled){const e=t.slides.find((e=>e.getAttribute("data-hash")===s));if(!e)return 0;return parseInt(e.getAttribute("data-swiper-slide-index"),10)}return t.getSlideIndex(f(t.slidesEl,`.${t.params.slideClass}[data-hash="${s}"], swiper-slide[data-hash="${s}"]`)[0])}}});const c=()=>{i("hashChange");const e=o.location.hash.replace("#",""),s=t.virtual&&t.params.virtual.enabled?t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`):t.slides[t.activeIndex];if(e!==(s?s.getAttribute("data-hash"):"")){const s=t.params.hashNavigation.getSlideIndex(t,e);if(void 0===s||Number.isNaN(s))return;t.slideTo(s)}},p=()=>{if(!l||!t.params.hashNavigation.enabled)return;const e=t.virtual&&t.params.virtual.enabled?t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`):t.slides[t.activeIndex],s=e?e.getAttribute("data-hash")||e.getAttribute("data-history"):"";t.params.hashNavigation.replaceState&&d.history&&d.history.replaceState?(d.history.replaceState(null,null,`#${s}`||""),i("hashSet")):(o.location.hash=s||"",i("hashSet"))};n("init",(()=>{t.params.hashNavigation.enabled&&(()=>{if(!t.params.hashNavigation.enabled||t.params.history&&t.params.history.enabled)return;l=!0;const e=o.location.hash.replace("#","");if(e){const s=0,a=t.params.hashNavigation.getSlideIndex(t,e);t.slideTo(a||0,s,t.params.runCallbacksOnInit,!0)}t.params.hashNavigation.watchState&&d.addEventListener("hashchange",c)})()})),n("destroy",(()=>{t.params.hashNavigation.enabled&&t.params.hashNavigation.watchState&&d.removeEventListener("hashchange",c)})),n("transitionEnd _freeModeNoMomentumRelease",(()=>{l&&p()})),n("slideChange",(()=>{l&&t.params.cssMode&&p()}))},function(e){let t,s,{swiper:i,extendParams:r,on:n,emit:l,params:o}=e;i.autoplay={running:!1,paused:!1,timeLeft:0},r({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!1,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}});let d,c,p,u,m,h,f,g,v=o&&o.autoplay?o.autoplay.delay:3e3,w=o&&o.autoplay?o.autoplay.delay:3e3,b=(new Date).getTime();function y(e){i&&!i.destroyed&&i.wrapperEl&&e.target===i.wrapperEl&&(i.wrapperEl.removeEventListener("transitionend",y),g||e.detail&&e.detail.bySwiperTouchMove||C())}const E=()=>{if(i.destroyed||!i.autoplay.running)return;i.autoplay.paused?c=!0:c&&(w=d,c=!1);const e=i.autoplay.paused?d:b+w-(new Date).getTime();i.autoplay.timeLeft=e,l("autoplayTimeLeft",e,e/v),s=requestAnimationFrame((()=>{E()}))},x=e=>{if(i.destroyed||!i.autoplay.running)return;cancelAnimationFrame(s),E();let a=void 0===e?i.params.autoplay.delay:e;v=i.params.autoplay.delay,w=i.params.autoplay.delay;const r=(()=>{let e;if(e=i.virtual&&i.params.virtual.enabled?i.slides.find((e=>e.classList.contains("swiper-slide-active"))):i.slides[i.activeIndex],!e)return;return parseInt(e.getAttribute("data-swiper-autoplay"),10)})();!Number.isNaN(r)&&r>0&&void 0===e&&(a=r,v=r,w=r),d=a;const n=i.params.speed,o=()=>{i&&!i.destroyed&&(i.params.autoplay.reverseDirection?!i.isBeginning||i.params.loop||i.params.rewind?(i.slidePrev(n,!0,!0),l("autoplay")):i.params.autoplay.stopOnLastSlide||(i.slideTo(i.slides.length-1,n,!0,!0),l("autoplay")):!i.isEnd||i.params.loop||i.params.rewind?(i.slideNext(n,!0,!0),l("autoplay")):i.params.autoplay.stopOnLastSlide||(i.slideTo(0,n,!0,!0),l("autoplay")),i.params.cssMode&&(b=(new Date).getTime(),requestAnimationFrame((()=>{x()}))))};return a>0?(clearTimeout(t),t=setTimeout((()=>{o()}),a)):requestAnimationFrame((()=>{o()})),a},S=()=>{b=(new Date).getTime(),i.autoplay.running=!0,x(),l("autoplayStart")},T=()=>{i.autoplay.running=!1,clearTimeout(t),cancelAnimationFrame(s),l("autoplayStop")},M=(e,s)=>{if(i.destroyed||!i.autoplay.running)return;clearTimeout(t),e||(f=!0);const a=()=>{l("autoplayPause"),i.params.autoplay.waitForTransition?i.wrapperEl.addEventListener("transitionend",y):C()};if(i.autoplay.paused=!0,s)return h&&(d=i.params.autoplay.delay),h=!1,void a();const r=d||i.params.autoplay.delay;d=r-((new Date).getTime()-b),i.isEnd&&d<0&&!i.params.loop||(d<0&&(d=0),a())},C=()=>{i.isEnd&&d<0&&!i.params.loop||i.destroyed||!i.autoplay.running||(b=(new Date).getTime(),f?(f=!1,x(d)):x(),i.autoplay.paused=!1,l("autoplayResume"))},P=()=>{if(i.destroyed||!i.autoplay.running)return;const e=a();"hidden"===e.visibilityState&&(f=!0,M(!0)),"visible"===e.visibilityState&&C()},L=e=>{"mouse"===e.pointerType&&(f=!0,g=!0,i.animating||i.autoplay.paused||M(!0))},I=e=>{"mouse"===e.pointerType&&(g=!1,i.autoplay.paused&&C())};n("init",(()=>{i.params.autoplay.enabled&&(i.params.autoplay.pauseOnMouseEnter&&(i.el.addEventListener("pointerenter",L),i.el.addEventListener("pointerleave",I)),a().addEventListener("visibilitychange",P),S())})),n("destroy",(()=>{i.el&&"string"!=typeof i.el&&(i.el.removeEventListener("pointerenter",L),i.el.removeEventListener("pointerleave",I)),a().removeEventListener("visibilitychange",P),i.autoplay.running&&T()})),n("_freeModeStaticRelease",(()=>{(u||f)&&C()})),n("_freeModeNoMomentumRelease",(()=>{i.params.autoplay.disableOnInteraction?T():M(!0,!0)})),n("beforeTransitionStart",((e,t,s)=>{!i.destroyed&&i.autoplay.running&&(s||!i.params.autoplay.disableOnInteraction?M(!0,!0):T())})),n("sliderFirstMove",(()=>{!i.destroyed&&i.autoplay.running&&(i.params.autoplay.disableOnInteraction?T():(p=!0,u=!1,f=!1,m=setTimeout((()=>{f=!0,u=!0,M(!0)}),200)))})),n("touchEnd",(()=>{if(!i.destroyed&&i.autoplay.running&&p){if(clearTimeout(m),clearTimeout(t),i.params.autoplay.disableOnInteraction)return u=!1,void(p=!1);u&&i.params.cssMode&&C(),u=!1,p=!1}})),n("slideChange",(()=>{!i.destroyed&&i.autoplay.running&&(h=!0)})),Object.assign(i.autoplay,{start:S,stop:T,pause:M,resume:C})},function(e){let{swiper:t,extendParams:s,on:i}=e;s({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let r=!1,n=!1;function l(){const e=t.thumbs.swiper;if(!e||e.destroyed)return;const s=e.clickedIndex,a=e.clickedSlide;if(a&&a.classList.contains(t.params.thumbs.slideThumbActiveClass))return;if(null==s)return;let i;i=e.params.loop?parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10):s,t.params.loop?t.slideToLoop(i):t.slideTo(i)}function o(){const{thumbs:e}=t.params;if(r)return!1;r=!0;const s=t.constructor;if(e.swiper instanceof s){if(e.swiper.destroyed)return r=!1,!1;t.thumbs.swiper=e.swiper,Object.assign(t.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),Object.assign(t.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper.update()}else if(c(e.swiper)){const a=Object.assign({},e.swiper);Object.assign(a,{watchSlidesProgress:!0,slideToClickedSlide:!1}),t.thumbs.swiper=new s(a),n=!0}return t.thumbs.swiper.el.classList.add(t.params.thumbs.thumbsContainerClass),t.thumbs.swiper.on("tap",l),!0}function d(e){const s=t.thumbs.swiper;if(!s||s.destroyed)return;const a="auto"===s.params.slidesPerView?s.slidesPerViewDynamic():s.params.slidesPerView;let i=1;const r=t.params.thumbs.slideThumbActiveClass;if(t.params.slidesPerView>1&&!t.params.centeredSlides&&(i=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(i=1),i=Math.floor(i),s.slides.forEach((e=>e.classList.remove(r))),s.params.loop||s.params.virtual&&s.params.virtual.enabled)for(let e=0;e<i;e+=1)f(s.slidesEl,`[data-swiper-slide-index="${t.realIndex+e}"]`).forEach((e=>{e.classList.add(r)}));else for(let e=0;e<i;e+=1)s.slides[t.realIndex+e]&&s.slides[t.realIndex+e].classList.add(r);const n=t.params.thumbs.autoScrollOffset,l=n&&!s.params.loop;if(t.realIndex!==s.realIndex||l){const i=s.activeIndex;let r,o;if(s.params.loop){const e=s.slides.find((e=>e.getAttribute("data-swiper-slide-index")===`${t.realIndex}`));r=s.slides.indexOf(e),o=t.activeIndex>t.previousIndex?"next":"prev"}else r=t.realIndex,o=r>t.previousIndex?"next":"prev";l&&(r+="next"===o?n:-1*n),s.visibleSlidesIndexes&&s.visibleSlidesIndexes.indexOf(r)<0&&(s.params.centeredSlides?r=r>i?r-Math.floor(a/2)+1:r+Math.floor(a/2)-1:r>i&&s.params.slidesPerGroup,s.slideTo(r,e?0:void 0))}}t.thumbs={swiper:null},i("beforeInit",(()=>{const{thumbs:e}=t.params;if(e&&e.swiper)if("string"==typeof e.swiper||e.swiper instanceof HTMLElement){const s=a(),i=()=>{const a="string"==typeof e.swiper?s.querySelector(e.swiper):e.swiper;if(a&&a.swiper)e.swiper=a.swiper,o(),d(!0);else if(a){const s=`${t.params.eventsPrefix}init`,i=r=>{e.swiper=r.detail[0],a.removeEventListener(s,i),o(),d(!0),e.swiper.update(),t.update()};a.addEventListener(s,i)}return a},r=()=>{if(t.destroyed)return;i()||requestAnimationFrame(r)};requestAnimationFrame(r)}else o(),d(!0)})),i("slideChange update resize observerUpdate",(()=>{d()})),i("setTransition",((e,s)=>{const a=t.thumbs.swiper;a&&!a.destroyed&&a.setTransition(s)})),i("beforeDestroy",(()=>{const e=t.thumbs.swiper;e&&!e.destroyed&&n&&e.destroy()})),Object.assign(t.thumbs,{init:o,update:d})},function(e){let{swiper:t,extendParams:s,emit:a,once:i}=e;s({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(t,{freeMode:{onTouchStart:function(){if(t.params.cssMode)return;const e=t.getTranslate();t.setTranslate(e),t.setTransition(0),t.touchEventsData.velocities.length=0,t.freeMode.onTouchEnd({currentPos:t.rtl?t.translate:-t.translate})},onTouchMove:function(){if(t.params.cssMode)return;const{touchEventsData:e,touches:s}=t;0===e.velocities.length&&e.velocities.push({position:s[t.isHorizontal()?"startX":"startY"],time:e.touchStartTime}),e.velocities.push({position:s[t.isHorizontal()?"currentX":"currentY"],time:o()})},onTouchEnd:function(e){let{currentPos:s}=e;if(t.params.cssMode)return;const{params:r,wrapperEl:n,rtlTranslate:l,snapGrid:d,touchEventsData:c}=t,p=o()-c.touchStartTime;if(s<-t.minTranslate())t.slideTo(t.activeIndex);else if(s>-t.maxTranslate())t.slides.length<d.length?t.slideTo(d.length-1):t.slideTo(t.slides.length-1);else{if(r.freeMode.momentum){if(c.velocities.length>1){const e=c.velocities.pop(),s=c.velocities.pop(),a=e.position-s.position,i=e.time-s.time;t.velocity=a/i,t.velocity/=2,Math.abs(t.velocity)<r.freeMode.minimumVelocity&&(t.velocity=0),(i>150||o()-e.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=r.freeMode.momentumVelocityRatio,c.velocities.length=0;let e=1e3*r.freeMode.momentumRatio;const s=t.velocity*e;let p=t.translate+s;l&&(p=-p);let u,m=!1;const h=20*Math.abs(t.velocity)*r.freeMode.momentumBounceRatio;let f;if(p<t.maxTranslate())r.freeMode.momentumBounce?(p+t.maxTranslate()<-h&&(p=t.maxTranslate()-h),u=t.maxTranslate(),m=!0,c.allowMomentumBounce=!0):p=t.maxTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(p>t.minTranslate())r.freeMode.momentumBounce?(p-t.minTranslate()>h&&(p=t.minTranslate()+h),u=t.minTranslate(),m=!0,c.allowMomentumBounce=!0):p=t.minTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(r.freeMode.sticky){let e;for(let t=0;t<d.length;t+=1)if(d[t]>-p){e=t;break}p=Math.abs(d[e]-p)<Math.abs(d[e-1]-p)||"next"===t.swipeDirection?d[e]:d[e-1],p=-p}if(f&&i("transitionEnd",(()=>{t.loopFix()})),0!==t.velocity){if(e=l?Math.abs((-p-t.translate)/t.velocity):Math.abs((p-t.translate)/t.velocity),r.freeMode.sticky){const s=Math.abs((l?-p:p)-t.translate),a=t.slidesSizesGrid[t.activeIndex];e=s<a?r.speed:s<2*a?1.5*r.speed:2.5*r.speed}}else if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode.momentumBounce&&m?(t.updateProgress(u),t.setTransition(e),t.setTranslate(p),t.transitionStart(!0,t.swipeDirection),t.animating=!0,x(n,(()=>{t&&!t.destroyed&&c.allowMomentumBounce&&(a("momentumBounce"),t.setTransition(r.speed),setTimeout((()=>{t.setTranslate(u),x(n,(()=>{t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(a("_freeModeNoMomentumRelease"),t.updateProgress(p),t.setTransition(e),t.setTranslate(p),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,x(n,(()=>{t&&!t.destroyed&&t.transitionEnd()})))):t.updateProgress(p),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode&&a("_freeModeNoMomentumRelease")}(!r.freeMode.momentum||p>=r.longSwipesMs)&&(a("_freeModeStaticRelease"),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}}}})},function(e){let t,s,a,i,{swiper:r,extendParams:n,on:l}=e;n({grid:{rows:1,fill:"column"}});const o=()=>{let e=r.params.spaceBetween;return"string"==typeof e&&e.indexOf("%")>=0?e=parseFloat(e.replace("%",""))/100*r.size:"string"==typeof e&&(e=parseFloat(e)),e};l("init",(()=>{i=r.params.grid&&r.params.grid.rows>1})),l("update",(()=>{const{params:e,el:t}=r,s=e.grid&&e.grid.rows>1;i&&!s?(t.classList.remove(`${e.containerModifierClass}grid`,`${e.containerModifierClass}grid-column`),a=1,r.emitContainerClasses()):!i&&s&&(t.classList.add(`${e.containerModifierClass}grid`),"column"===e.grid.fill&&t.classList.add(`${e.containerModifierClass}grid-column`),r.emitContainerClasses()),i=s})),r.grid={initSlides:e=>{const{slidesPerView:i}=r.params,{rows:n,fill:l}=r.params.grid,o=r.virtual&&r.params.virtual.enabled?r.virtual.slides.length:e.length;a=Math.floor(o/n),t=Math.floor(o/n)===o/n?o:Math.ceil(o/n)*n,"auto"!==i&&"row"===l&&(t=Math.max(t,i*n)),s=t/n},unsetSlides:()=>{r.slides&&r.slides.forEach((e=>{e.swiperSlideGridSet&&(e.style.height="",e.style[r.getDirectionLabel("margin-top")]="")}))},updateSlide:(e,i,n)=>{const{slidesPerGroup:l}=r.params,d=o(),{rows:c,fill:p}=r.params.grid,u=r.virtual&&r.params.virtual.enabled?r.virtual.slides.length:n.length;let m,h,f;if("row"===p&&l>1){const s=Math.floor(e/(l*c)),a=e-c*l*s,r=0===s?l:Math.min(Math.ceil((u-s*c*l)/c),l);f=Math.floor(a/r),h=a-f*r+s*l,m=h+f*t/c,i.style.order=m}else"column"===p?(h=Math.floor(e/c),f=e-h*c,(h>a||h===a&&f===c-1)&&(f+=1,f>=c&&(f=0,h+=1))):(f=Math.floor(e/s),h=e-f*s);i.row=f,i.column=h,i.style.height=`calc((100% - ${(c-1)*d}px) / ${c})`,i.style[r.getDirectionLabel("margin-top")]=0!==f?d&&`${d}px`:"",i.swiperSlideGridSet=!0},updateWrapperSize:(e,s)=>{const{centeredSlides:a,roundLengths:i}=r.params,n=o(),{rows:l}=r.params.grid;if(r.virtualSize=(e+n)*t,r.virtualSize=Math.ceil(r.virtualSize/l)-n,r.params.cssMode||(r.wrapperEl.style[r.getDirectionLabel("width")]=`${r.virtualSize+n}px`),a){const e=[];for(let t=0;t<s.length;t+=1){let a=s[t];i&&(a=Math.floor(a)),s[t]<r.virtualSize+s[0]&&e.push(a)}s.splice(0,s.length),s.push(...e)}}}},function(e){let{swiper:t}=e;Object.assign(t,{appendSlide:oe.bind(t),prependSlide:de.bind(t),addSlide:ce.bind(t),removeSlide:pe.bind(t),removeAllSlides:ue.bind(t)})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({fadeEffect:{crossFade:!1}}),me({effect:"fade",swiper:t,on:a,setTranslate:()=>{const{slides:e}=t;t.params.fadeEffect;for(let s=0;s<e.length;s+=1){const e=t.slides[s];let a=-e.swiperSlideOffset;t.params.virtualTranslate||(a-=t.translate);let i=0;t.isHorizontal()||(i=a,a=0);const r=t.params.fadeEffect.crossFade?Math.max(1-Math.abs(e.progress),0):1+Math.min(Math.max(e.progress,-1),0),n=he(0,e);n.style.opacity=r,n.style.transform=`translate3d(${a}px, ${i}px, 0px)`}},setTransition:e=>{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`})),fe({swiper:t,duration:e,transformElements:s,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const i=(e,t,s)=>{let a=s?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),i=s?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");a||(a=v("div",("swiper-slide-shadow-cube swiper-slide-shadow-"+(s?"left":"top")).split(" ")),e.append(a)),i||(i=v("div",("swiper-slide-shadow-cube swiper-slide-shadow-"+(s?"right":"bottom")).split(" ")),e.append(i)),a&&(a.style.opacity=Math.max(-t,0)),i&&(i.style.opacity=Math.max(t,0))};me({effect:"cube",swiper:t,on:a,setTranslate:()=>{const{el:e,wrapperEl:s,slides:a,width:r,height:n,rtlTranslate:l,size:o,browser:d}=t,c=M(t),p=t.params.cubeEffect,u=t.isHorizontal(),m=t.virtual&&t.params.virtual.enabled;let h,f=0;p.shadow&&(u?(h=t.wrapperEl.querySelector(".swiper-cube-shadow"),h||(h=v("div","swiper-cube-shadow"),t.wrapperEl.append(h)),h.style.height=`${r}px`):(h=e.querySelector(".swiper-cube-shadow"),h||(h=v("div","swiper-cube-shadow"),e.append(h))));for(let e=0;e<a.length;e+=1){const t=a[e];let s=e;m&&(s=parseInt(t.getAttribute("data-swiper-slide-index"),10));let r=90*s,n=Math.floor(r/360);l&&(r=-r,n=Math.floor(-r/360));const d=Math.max(Math.min(t.progress,1),-1);let h=0,g=0,v=0;s%4==0?(h=4*-n*o,v=0):(s-1)%4==0?(h=0,v=4*-n*o):(s-2)%4==0?(h=o+4*n*o,v=o):(s-3)%4==0&&(h=-o,v=3*o+4*o*n),l&&(h=-h),u||(g=h,h=0);const w=`rotateX(${c(u?0:-r)}deg) rotateY(${c(u?r:0)}deg) translate3d(${h}px, ${g}px, ${v}px)`;d<=1&&d>-1&&(f=90*s+90*d,l&&(f=90*-s-90*d)),t.style.transform=w,p.slideShadows&&i(t,d,u)}if(s.style.transformOrigin=`50% 50% -${o/2}px`,s.style["-webkit-transform-origin"]=`50% 50% -${o/2}px`,p.shadow)if(u)h.style.transform=`translate3d(0px, ${r/2+p.shadowOffset}px, ${-r/2}px) rotateX(89.99deg) rotateZ(0deg) scale(${p.shadowScale})`;else{const e=Math.abs(f)-90*Math.floor(Math.abs(f)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=p.shadowScale,a=p.shadowScale/t,i=p.shadowOffset;h.style.transform=`scale3d(${s}, 1, ${a}) translate3d(0px, ${n/2+i}px, ${-n/2/a}px) rotateX(-89.99deg)`}const g=(d.isSafari||d.isWebView)&&d.needPerspectiveFix?-o/2:0;s.style.transform=`translate3d(0px,0,${g}px) rotateX(${c(t.isHorizontal()?0:f)}deg) rotateY(${c(t.isHorizontal()?-f:0)}deg)`,s.style.setProperty("--swiper-cube-translate-z",`${g}px`)},setTransition:e=>{const{el:s,slides:a}=t;if(a.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),t.params.cubeEffect.shadow&&!t.isHorizontal()){const t=s.querySelector(".swiper-cube-shadow");t&&(t.style.transitionDuration=`${e}ms`)}},recreateShadows:()=>{const e=t.isHorizontal();t.slides.forEach((t=>{const s=Math.max(Math.min(t.progress,1),-1);i(t,s,e)}))},getEffectParams:()=>t.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({flipEffect:{slideShadows:!0,limitRotation:!0}});const i=(e,s)=>{let a=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),i=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");a||(a=ge("flip",e,t.isHorizontal()?"left":"top")),i||(i=ge("flip",e,t.isHorizontal()?"right":"bottom")),a&&(a.style.opacity=Math.max(-s,0)),i&&(i.style.opacity=Math.max(s,0))};me({effect:"flip",swiper:t,on:a,setTranslate:()=>{const{slides:e,rtlTranslate:s}=t,a=t.params.flipEffect,r=M(t);for(let n=0;n<e.length;n+=1){const l=e[n];let o=l.progress;t.params.flipEffect.limitRotation&&(o=Math.max(Math.min(l.progress,1),-1));const d=l.swiperSlideOffset;let c=-180*o,p=0,u=t.params.cssMode?-d-t.translate:-d,m=0;t.isHorizontal()?s&&(c=-c):(m=u,u=0,p=-c,c=0),l.style.zIndex=-Math.abs(Math.round(o))+e.length,a.slideShadows&&i(l,o);const h=`translate3d(${u}px, ${m}px, 0px) rotateX(${r(p)}deg) rotateY(${r(c)}deg)`;he(0,l).style.transform=h}},setTransition:e=>{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),fe({swiper:t,duration:e,transformElements:s})},recreateShadows:()=>{t.params.flipEffect,t.slides.forEach((e=>{let s=e.progress;t.params.flipEffect.limitRotation&&(s=Math.max(Math.min(e.progress,1),-1)),i(e,s)}))},getEffectParams:()=>t.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}}),me({effect:"coverflow",swiper:t,on:a,setTranslate:()=>{const{width:e,height:s,slides:a,slidesSizesGrid:i}=t,r=t.params.coverflowEffect,n=t.isHorizontal(),l=t.translate,o=n?e/2-l:s/2-l,d=n?r.rotate:-r.rotate,c=r.depth,p=M(t);for(let e=0,t=a.length;e<t;e+=1){const t=a[e],s=i[e],l=(o-t.swiperSlideOffset-s/2)/s,u="function"==typeof r.modifier?r.modifier(l):l*r.modifier;let m=n?d*u:0,h=n?0:d*u,f=-c*Math.abs(u),g=r.stretch;"string"==typeof g&&-1!==g.indexOf("%")&&(g=parseFloat(r.stretch)/100*s);let v=n?0:g*u,w=n?g*u:0,b=1-(1-r.scale)*Math.abs(u);Math.abs(w)<.001&&(w=0),Math.abs(v)<.001&&(v=0),Math.abs(f)<.001&&(f=0),Math.abs(m)<.001&&(m=0),Math.abs(h)<.001&&(h=0),Math.abs(b)<.001&&(b=0);const y=`translate3d(${w}px,${v}px,${f}px)  rotateX(${p(h)}deg) rotateY(${p(m)}deg) scale(${b})`;if(he(0,t).style.transform=y,t.style.zIndex=1-Math.abs(Math.round(u)),r.slideShadows){let e=n?t.querySelector(".swiper-slide-shadow-left"):t.querySelector(".swiper-slide-shadow-top"),s=n?t.querySelector(".swiper-slide-shadow-right"):t.querySelector(".swiper-slide-shadow-bottom");e||(e=ge("coverflow",t,n?"left":"top")),s||(s=ge("coverflow",t,n?"right":"bottom")),e&&(e.style.opacity=u>0?u:0),s&&(s.style.opacity=-u>0?-u:0)}}},setTransition:e=>{t.slides.map((e=>h(e))).forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))}))},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({creativeEffect:{limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const i=e=>"string"==typeof e?e:`${e}px`;me({effect:"creative",swiper:t,on:a,setTranslate:()=>{const{slides:e,wrapperEl:s,slidesSizesGrid:a}=t,r=t.params.creativeEffect,{progressMultiplier:n}=r,l=t.params.centeredSlides,o=M(t);if(l){const e=a[0]/2-t.params.slidesOffsetBefore||0;s.style.transform=`translateX(calc(50% - ${e}px))`}for(let s=0;s<e.length;s+=1){const a=e[s],d=a.progress,c=Math.min(Math.max(a.progress,-r.limitProgress),r.limitProgress);let p=c;l||(p=Math.min(Math.max(a.originalProgress,-r.limitProgress),r.limitProgress));const u=a.swiperSlideOffset,m=[t.params.cssMode?-u-t.translate:-u,0,0],h=[0,0,0];let f=!1;t.isHorizontal()||(m[1]=m[0],m[0]=0);let g={translate:[0,0,0],rotate:[0,0,0],scale:1,opacity:1};c<0?(g=r.next,f=!0):c>0&&(g=r.prev,f=!0),m.forEach(((e,t)=>{m[t]=`calc(${e}px + (${i(g.translate[t])} * ${Math.abs(c*n)}))`})),h.forEach(((e,t)=>{let s=g.rotate[t]*Math.abs(c*n);h[t]=s})),a.style.zIndex=-Math.abs(Math.round(d))+e.length;const v=m.join(", "),w=`rotateX(${o(h[0])}deg) rotateY(${o(h[1])}deg) rotateZ(${o(h[2])}deg)`,b=p<0?`scale(${1+(1-g.scale)*p*n})`:`scale(${1-(1-g.scale)*p*n}
583)`,y=p<0?1+(1-g.opacity)*p*n:1-(1-g.opacity)*p*n,E=`translate3d(${v}) ${w} ${b}`;if(f&&g.shadow||!f){let e=a.querySelector(".swiper-slide-shadow");if(!e&&g.shadow&&(e=ge("creative",a)),e){const t=r.shadowPerProgress?c*(1/r.limitProgress):c;e.style.opacity=Math.min(Math.max(Math.abs(t),0),1)}}const x=he(0,a);x.style.transform=E,x.style.opacity=y,g.origin&&(x.style.transformOrigin=g.origin)}},setTransition:e=>{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),fe({swiper:t,duration:e,transformElements:s,allSlides:!0})},perspective:()=>t.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cardsEffect:{slideShadows:!0,rotate:!0,perSlideRotate:2,perSlideOffset:8}}),me({effect:"cards",swiper:t,on:a,setTranslate:()=>{const{slides:e,activeIndex:s,rtlTranslate:a}=t,i=t.params.cardsEffect,{startTranslate:r,isTouched:n}=t.touchEventsData,l=a?-t.translate:t.translate;for(let o=0;o<e.length;o+=1){const d=e[o],c=d.progress,p=Math.min(Math.max(c,-4),4);let u=d.swiperSlideOffset;t.params.centeredSlides&&!t.params.cssMode&&(t.wrapperEl.style.transform=`translateX(${t.minTranslate()}px)`),t.params.centeredSlides&&t.params.cssMode&&(u-=e[0].swiperSlideOffset);let m=t.params.cssMode?-u-t.translate:-u,h=0;const f=-100*Math.abs(p);let g=1,v=-i.perSlideRotate*p,w=i.perSlideOffset-.75*Math.abs(p);const b=t.virtual&&t.params.virtual.enabled?t.virtual.from+o:o,y=(b===s||b===s-1)&&p>0&&p<1&&(n||t.params.cssMode)&&l<r,E=(b===s||b===s+1)&&p<0&&p>-1&&(n||t.params.cssMode)&&l>r;if(y||E){const e=(1-Math.abs((Math.abs(p)-.5)/.5))**.5;v+=-28*p*e,g+=-.5*e,w+=96*e,h=-25*e*Math.abs(p)+"%"}if(m=p<0?`calc(${m}px ${a?"-":"+"} (${w*Math.abs(p)}%))`:p>0?`calc(${m}px ${a?"-":"+"} (-${w*Math.abs(p)}%))`:`${m}px`,!t.isHorizontal()){const e=h;h=m,m=e}const x=p<0?""+(1+(1-g)*p):""+(1-(1-g)*p),S=`\n        translate3d(${m}, ${h}, ${f}px)\n        rotateZ(${i.rotate?a?-v:v:0}deg)\n        scale(${x})\n      `;if(i.slideShadows){let e=d.querySelector(".swiper-slide-shadow");e||(e=ge("cards",d)),e&&(e.style.opacity=Math.min(Math.max((Math.abs(p)-.5)/.5,0),1))}d.style.zIndex=-Math.abs(Math.round(c))+e.length;he(0,d).style.transform=S}},setTransition:e=>{const s=t.slides.map((e=>h(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),fe({swiper:t,duration:e,transformElements:s})},perspective:()=>!0,overwriteParams:()=>({_loopSwapReset:!1,watchSlidesProgress:!0,loopAdditionalSlides:t.params.cardsEffect.rotate?3:2,centeredSlides:!0,virtualTranslate:!t.params.cssMode})})}];return re.use(ve),re}();
584//# sourceMappingURL=swiper-bundle.min.js.map
585/**
586 * Owl Carousel v2.3.4
587 * Copyright 2013-2018 David Deutsch
588 * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
589 */
590/**
591 * Owl carousel
592 * @version 2.3.4
593 * @author Bartosz Wojciechowski
594 * @author David Deutsch
595 * @license The MIT License (MIT)
596 * @todo Lazy Load Icon
597 * @todo prevent animationend bubling
598 * @todo itemsScaleUp
599 * @todo Test Zepto
600 * @todo stagePadding calculate wrong active classes
601 */
602(function (jq, window, document, undefined) {
603    /**
604     * Creates a carousel.
605     * @class The Owl Carousel.
606     * @public
607     * @param {HTMLElement|jq} element - The element to create the carousel for.
608     * @param {Object} [options] - The options
609     */
610    function Owl(element, options) {
611        /**
612         * Current settings for the carousel.
613         * @public
614         */
615        this.settings = null;
616
617        /**
618         * Current options set by the caller including defaults.
619         * @public
620         */
621        this.options = jq.extend({}, Owl.Defaults, options);
622
623        /**
624         * Plugin element.
625         * @public
626         */
627        this.jqelement = jq(element);
628
629        /**
630         * Proxied event handlers.
631         * @protected
632         */
633        this._handlers = {};
634
635        /**
636         * References to the running plugins of this carousel.
637         * @protected
638         */
639        this._plugins = {};
640
641        /**
642         * Currently suppressed events to prevent them from being retriggered.
643         * @protected
644         */
645        this._supress = {};
646
647        /**
648         * Absolute current position.
649         * @protected
650         */
651        this._current = null;
652
653        /**
654         * Animation speed in milliseconds.
655         * @protected
656         */
657        this._speed = null;
658
659        /**
660         * Coordinates of all items in pixel.
661         * @todo The name of this member is missleading.
662         * @protected
663         */
664        this._coordinates = [];
665
666        /**
667         * Current breakpoint.
668         * @todo Real media queries would be nice.
669         * @protected
670         */
671        this._breakpoint = null;
672
673        /**
674         * Current width of the plugin element.
675         */
676        this._width = null;
677
678        /**
679         * All real items.
680         * @protected
681         */
682        this._items = [];
683
684        /**
685         * All cloned items.
686         * @protected
687         */
688        this._clones = [];
689
690        /**
691         * Merge values of all items.
692         * @todo Maybe this could be part of a plugin.
693         * @protected
694         */
695        this._mergers = [];
696
697        /**
698         * Widths of all items.
699         */
700        this._widths = [];
701
702        /**
703         * Invalidated parts within the update process.
704         * @protected
705         */
706        this._invalidated = {};
707
708        /**
709         * Ordered list of workers for the update process.
710         * @protected
711         */
712        this._pipe = [];
713
714        /**
715         * Current state information for the drag operation.
716         * @todo #261
717         * @protected
718         */
719        this._drag = {
720            time: null,
721            target: null,
722            pointer: null,
723            stage: {
724                start: null,
725                current: null,
726            },
727            direction: null,
728        };
729
730        /**
731         * Current state information and their tags.
732         * @type {Object}
733         * @protected
734         */
735        this._states = {
736            current: {},
737            tags: {
738                initializing: ["busy"],
739                animating: ["busy"],
740                dragging: ["interacting"],
741            },
742        };
743
744        jq.each(
745            ["onResize", "onThrottledResize"],
746            jq.proxy(function (i, handler) {
747                this._handlers[handler] = jq.proxy(this[handler], this);
748            }, this)
749        );
750
751        jq.each(
752            Owl.Plugins,
753            jq.proxy(function (key, plugin) {
754                this._plugins[
755                    key.charAt(0).toLowerCase() + key.slice(1)
756                ] = new plugin(this);
757            }, this)
758        );
759
760        jq.each(
761            Owl.Workers,
762            jq.proxy(function (priority, worker) {
763                this._pipe.push({
764                    filter: worker.filter,
765                    run: jq.proxy(worker.run, this),
766                });
767            }, this)
768        );
769
770        this.setup();
771        this.initialize();
772    }
773
774    /**
775     * Default options for the carousel.
776     * @public
777     */
778    Owl.Defaults = {
779        items: 3,
780        loop: false,
781        center: false,
782        rewind: false,
783        checkVisibility: true,
784
785        mouseDrag: true,
786        touchDrag: true,
787        pullDrag: true,
788        freeDrag: false,
789
790        margin: 0,
791        stagePadding: 0,
792
793        merge: false,
794        mergeFit: true,
795        autoWidth: false,
796
797        startPosition: 0,
798        rtl: false,
799
800        smartSpeed: 250,
801        fluidSpeed: false,
802        dragEndSpeed: false,
803
804        responsive: {},
805        responsiveRefreshRate: 200,
806        responsiveBaseElement: window,
807
808        fallbackEasing: "swing",
809        slideTransition: "",
810
811        info: false,
812
813        nestedItemSelector: false,
814        itemElement: "div",
815        stageElement: "div",
816
817        refreshClass: "owl-refresh",
818        loadedClass: "owl-loaded",
819        loadingClass: "owl-loading",
820        rtlClass: "owl-rtl",
821        responsiveClass: "owl-responsive",
822        dragClass: "owl-drag",
823        itemClass: "owl-item",
824        stageClass: "owl-stage",
825        stageOuterClass: "owl-stage-outer",
826        grabClass: "owl-grab",
827    };
828
829    /**
830     * Enumeration for width.
831     * @public
832     * @readonly
833     * @enum {String}
834     */
835    Owl.Width = {
836        Default: "default",
837        Inner: "inner",
838        Outer: "outer",
839    };
840
841    /**
842     * Enumeration for types.
843     * @public
844     * @readonly
845     * @enum {String}
846     */
847    Owl.Type = {
848        Event: "event",
849        State: "state",
850    };
851
852    /**
853     * Contains all registered plugins.
854     * @public
855     */
856    Owl.Plugins = {};
857
858    /**
859     * List of workers involved in the update process.
860     */
861    Owl.Workers = [
862        {
863            filter: ["width", "settings"],
864            run: function () {
865                this._width = this.jqelement.width();
866            },
867        },
868        {
869            filter: ["width", "items", "settings"],
870            run: function (cache) {
871                cache.current =
872                    this._items && this._items[this.relative(this._current)];
873            },
874        },
875        {
876            filter: ["items", "settings"],
877            run: function () {
878                this.jqstage.children(".cloned").remove();
879            },
880        },
881        {
882            filter: ["width", "items", "settings"],
883            run: function (cache) {
884                var margin = this.settings.margin || "",
885                    grid = !this.settings.autoWidth,
886                    rtl = this.settings.rtl,
887                    css = {
888                        width: "auto",
889                        "margin-left": rtl ? margin : "",
890                        "margin-right": rtl ? "" : margin,
891                    };
892
893                !grid && this.jqstage.children().css(css);
894
895                cache.css = css;
896            },
897        },
898        {
899            filter: ["width", "items", "settings"],
900            run: function (cache) {
901                var width =
902                        (this.width() / this.settings.items).toFixed(3) -
903                        this.settings.margin,
904                    merge = null,
905                    iterator = this._items.length,
906                    grid = !this.settings.autoWidth,
907                    widths = [];
908
909                cache.items = {
910                    merge: false,
911                    width: width,
912                };
913
914                while (iterator--) {
915                    merge = this._mergers[iterator];
916                    merge =
917                        (this.settings.mergeFit &&
918                            Math.min(merge, this.settings.items)) ||
919                        merge;
920
921                    cache.items.merge = merge > 1 || cache.items.merge;
922
923                    widths[iterator] = !grid
924                        ? this._items[iterator].width()
925                        : width * merge;
926                }
927
928                this._widths = widths;
929            },
930        },
931        {
932            filter: ["items", "settings"],
933            run: function () {
934                var clones = [],
935                    items = this._items,
936                    settings = this.settings,
937                    // TODO: Should be computed from number of min width items in stage
938                    view = Math.max(settings.items * 2, 4),
939                    size = Math.ceil(items.length / 2) * 2,
940                    repeat =
941                        settings.loop && items.length
942                            ? settings.rewind
943                                ? view
944                                : Math.max(view, size)
945                            : 0,
946                    append = "",
947                    prepend = "";
948
949                repeat /= 2;
950
951                while (repeat > 0) {
952                    // Switch to only using appended clones
953                    clones.push(this.normalize(clones.length / 2, true));
954                    append =
955                        append + items[clones[clones.length - 1]][0].outerHTML;
956                    clones.push(
957                        this.normalize(
958                            items.length - 1 - (clones.length - 1) / 2,
959                            true
960                        )
961                    );
962                    prepend =
963                        items[clones[clones.length - 1]][0].outerHTML + prepend;
964                    repeat -= 1;
965                }
966
967                this._clones = clones;
968
969                jq(append).addClass("cloned").appendTo(this.jqstage);
970                jq(prepend).addClass("cloned").prependTo(this.jqstage);
971            },
972        },
973        {
974            filter: ["width", "items", "settings"],
975            run: function () {
976                var rtl = this.settings.rtl ? 1 : -1,
977                    size = this._clones.length + this._items.length,
978                    iterator = -1,
979                    previous = 0,
980                    current = 0,
981                    coordinates = [];
982
983                while (++iterator < size) {
984                    previous = coordinates[iterator - 1] || 0;
985                    current =
986                        this._widths[this.relative(iterator)] +
987                        this.settings.margin;
988                    coordinates.push(previous + current * rtl);
989                }
990
991                this._coordinates = coordinates;
992            },
993        },
994        {
995            filter: ["width", "items", "settings"],
996            run: function () {
997                var padding = this.settings.stagePadding,
998                    coordinates = this._coordinates,
999                    css = {
1000                        width:
1001                            Math.ceil(
1002                                Math.abs(coordinates[coordinates.length - 1])
1003                            ) +
1004                            padding * 2,
1005                        "padding-left": padding || "",
1006                        "padding-right": padding || "",
1007                    };
1008
1009                this.jqstage.css(css);
1010            },
1011        },
1012        {
1013            filter: ["width", "items", "settings"],
1014            run: function (cache) {
1015                var iterator = this._coordinates.length,
1016                    grid = !this.settings.autoWidth,
1017                    items = this.jqstage.children();
1018
1019                if (grid && cache.items.merge) {
1020                    while (iterator--) {
1021                        cache.css.width = this._widths[this.relative(iterator)];
1022                        items.eq(iterator).css(cache.css);
1023                    }
1024                } else if (grid) {
1025                    cache.css.width = cache.items.width;
1026                    items.css(cache.css);
1027                }
1028            },
1029        },
1030        {
1031            filter: ["items"],
1032            run: function () {
1033                this._coordinates.length < 1 &&
1034                    this.jqstage.removeAttr("style");
1035            },
1036        },
1037        {
1038            filter: ["width", "items", "settings"],
1039            run: function (cache) {
1040                cache.current = cache.current
1041                    ? this.jqstage.children().index(cache.current)
1042                    : 0;
1043                cache.current = Math.max(
1044                    this.minimum(),
1045                    Math.min(this.maximum(), cache.current)
1046                );
1047                this.reset(cache.current);
1048            },
1049        },
1050        {
1051            filter: ["position"],
1052            run: function () {
1053                this.animate(this.coordinates(this._current));
1054            },
1055        },
1056        {
1057            filter: ["width", "position", "items", "settings"],
1058            run: function () {
1059                var rtl = this.settings.rtl ? 1 : -1,
1060                    padding = this.settings.stagePadding * 2,
1061                    begin = this.coordinates(this.current()) + padding,
1062                    end = begin + this.width() * rtl,
1063                    inner,
1064                    outer,
1065                    matches = [],
1066                    i,
1067                    n;
1068
1069                for (i = 0, n = this._coordinates.length; i < n; i++) {
1070                    inner = this._coordinates[i - 1] || 0;
1071                    outer = Math.abs(this._coordinates[i]) + padding * rtl;
1072
1073                    if (
1074                        (this.op(inner, "<=", begin) &&
1075                            this.op(inner, ">", end)) ||
1076                        (this.op(outer, "<", begin) && this.op(outer, ">", end))
1077                    ) {
1078                        matches.push(i);
1079                    }
1080                }
1081
1082                this.jqstage.children(".active").removeClass("active");
1083                this.jqstage
1084                    .children(":eq(" + matches.join("), :eq(") + ")")
1085                    .addClass("active");
1086
1087                this.jqstage.children(".center").removeClass("center");
1088                if (this.settings.center) {
1089                    this.jqstage
1090                        .children()
1091                        .eq(this.current())
1092                        .addClass("center");
1093                }
1094            },
1095        },
1096    ];
1097
1098    /**
1099     * Create the stage DOM element
1100     */
1101    Owl.prototype.initializeStage = function () {
1102        this.jqstage = this.jqelement.find("." + this.settings.stageClass);
1103
1104        // if the stage is already in the DOM, grab it and skip stage initialization
1105        if (this.jqstage.length) {
1106            return;
1107        }
1108
1109        this.jqelement.addClass(this.options.loadingClass);
1110
1111        // create stage
1112        this.jqstage = jq("<" + this.settings.stageElement + ">", {
1113            class: this.settings.stageClass,
1114        }).wrap(
1115            jq("<div/>", {
1116                class: this.settings.stageOuterClass,
1117            })
1118        );
1119
1120        // append stage
1121        this.jqelement.append(this.jqstage.parent());
1122    };
1123
1124    /**
1125     * Create item DOM elements
1126     */
1127    Owl.prototype.initializeItems = function () {
1128        var jqitems = this.jqelement.find(".owl-item");
1129
1130        // if the items are already in the DOM, grab them and skip item initialization
1131        if (jqitems.length) {
1132            this._items = jqitems.get().map(function (item) {
1133                return jq(item);
1134            });
1135
1136            this._mergers = this._items.map(function () {
1137                return 1;
1138            });
1139
1140            this.refresh();
vendor: 4,482 bytes, lines 1141-1280
1141
1142            return;
1143        }
1144
1145        // append content
1146        this.replace(this.jqelement.children().not(this.jqstage.parent()));
1147
1148        // check visibility
1149        if (this.isVisible()) {
1150            // update view
1151            this.refresh();
1152        } else {
1153            // invalidate width
1154            this.invalidate("width");
1155        }
1156
1157        this.jqelement
1158            .removeClass(this.options.loadingClass)
1159            .addClass(this.options.loadedClass);
1160    };
1161
1162    /**
1163     * Initializes the carousel.
1164     * @protected
1165     */
1166    Owl.prototype.initialize = function () {
1167        this.enter("initializing");
1168        this.trigger("initialize");
1169
1170        this.jqelement.toggleClass(this.settings.rtlClass, this.settings.rtl);
1171
1172        if (this.settings.autoWidth && !this.is("pre-loading")) {
1173            var imgs, nestedSelector, width;
1174            imgs = this.jqelement.find("img");
1175            nestedSelector = this.settings.nestedItemSelector
1176                ? "." + this.settings.nestedItemSelector
1177                : undefined;
1178            width = this.jqelement.children(nestedSelector).width();
1179
1180            if (imgs.length && width <= 0) {
1181                this.preloadAutoWidthImages(imgs);
1182            }
1183        }
1184
1185        this.initializeStage();
1186        this.initializeItems();
1187
1188        // register event handlers
1189        this.registerEventHandlers();
1190
1191        this.leave("initializing");
1192        this.trigger("initialized");
1193    };
1194
1195    /**
1196     * @returns {Boolean} visibility of jqelement
1197     *                    if you know the carousel will always be visible you can set `checkVisibility` to `false` to
1198     *                    prevent the expensive browser layout forced reflow the jqelement.is(':visible') does
1199     */
1200    Owl.prototype.isVisible = function () {
1201        return this.settings.checkVisibility
1202            ? this.jqelement.is(":visible")
1203            : true;
1204    };
1205
1206    /**
1207     * Setups the current settings.
1208     * @todo Remove responsive classes. Why should adaptive designs be brought into IE8?
1209     * @todo Support for media queries by using `matchMedia` would be nice.
1210     * @public
1211     */
1212    Owl.prototype.setup = function () {
1213        var viewport = this.viewport(),
1214            overwrites = this.options.responsive,
1215            match = -1,
1216            settings = null;
1217
1218        if (!overwrites) {
1219            settings = jq.extend({}, this.options);
1220        } else {
1221            jq.each(overwrites, function (breakpoint) {
1222                if (breakpoint <= viewport && breakpoint > match) {
1223                    match = Number(breakpoint);
1224                }
1225            });
1226
1227            settings = jq.extend({}, this.options, overwrites[match]);
1228            if (typeof settings.stagePadding === "function") {
1229                settings.stagePadding = settings.stagePadding();
1230            }
1231            delete settings.responsive;
1232
1233            // responsive class
1234            if (settings.responsiveClass) {
1235                this.jqelement.attr(
1236                    "class",
1237                    this.jqelement
1238                        .attr("class")
1239                        .replace(
1240                            new RegExp(
1241                                "(" +
1242                                    this.options.responsiveClass +
1243                                    "-)\\S+\\s",
1244                                "g"
1245                            ),
1246                            "jq1" + match
1247                        )
1248                );
1249            }
1250        }
1251
1252        this.trigger("change", {
1253            property: { name: "settings", value: settings },
1254        });
1255        this._breakpoint = match;
1256        this.settings = settings;
1257        this.invalidate("settings");
1258        this.trigger("changed", {
1259            property: { name: "settings", value: this.settings },
1260        });
1261    };
1262
1263    /**
1264     * Updates option logic if necessery.
1265     * @protected
1266     */
1267    Owl.prototype.optionsLogic = function () {
1268        if (this.settings.autoWidth) {
1269            this.settings.stagePadding = false;
1270            this.settings.merge = false;
1271        }
1272    };
1273
1274    /**
1275     * Prepares an item before add.
1276     * @todo Rename event parameter `content` to `item`.
1277     * @protected
1278     * @returns {jq|HTMLElement} - The item container.
1279     */
1280    Owl.prototype.prepare = function (item) {
vendor: 6,145 bytes, lines 1281-1505
1281        var event = this.trigger("prepare", { content: item });
1282
1283        if (!event.data) {
1284            event.data = jq("<" + this.settings.itemElement + "/>")
1285                .addClass(this.options.itemClass)
1286                .append(item);
1287        }
1288
1289        this.trigger("prepared", { content: event.data });
1290
1291        return event.data;
1292    };
1293
1294    /**
1295     * Updates the view.
1296     * @public
1297     */
1298    Owl.prototype.update = function () {
1299        var i = 0,
1300            n = this._pipe.length,
1301            filter = jq.proxy(function (p) {
1302                return this[p];
1303            }, this._invalidated),
1304            cache = {};
1305
1306        while (i < n) {
1307            if (
1308                this._invalidated.all ||
1309                jq.grep(this._pipe[i].filter, filter).length > 0
1310            ) {
1311                this._pipe[i].run(cache);
1312            }
1313            i++;
1314        }
1315
1316        this._invalidated = {};
1317
1318        !this.is("valid") && this.enter("valid");
1319    };
1320
1321    /**
1322     * Gets the width of the view.
1323     * @public
1324     * @param {Owl.Width} [dimension=Owl.Width.Default] - The dimension to return.
1325     * @returns {Number} - The width of the view in pixel.
1326     */
1327    Owl.prototype.width = function (dimension) {
1328        dimension = dimension || Owl.Width.Default;
1329        switch (dimension) {
1330            case Owl.Width.Inner:
1331            case Owl.Width.Outer:
1332                return this._width;
1333            default:
1334                return (
1335                    this._width -
1336                    this.settings.stagePadding * 2 +
1337                    this.settings.margin
1338                );
1339        }
1340    };
1341
1342    /**
1343     * Refreshes the carousel primarily for adaptive purposes.
1344     * @public
1345     */
1346    Owl.prototype.refresh = function () {
1347        this.enter("refreshing");
1348        this.trigger("refresh");
1349
1350        this.setup();
1351
1352        this.optionsLogic();
1353
1354        this.jqelement.addClass(this.options.refreshClass);
1355
1356        this.update();
1357
1358        this.jqelement.removeClass(this.options.refreshClass);
1359
1360        this.leave("refreshing");
1361        this.trigger("refreshed");
1362    };
1363
1364    /**
1365     * Checks window `resize` event.
1366     * @protected
1367     */
1368    Owl.prototype.onThrottledResize = function () {
1369        window.clearTimeout(this.resizeTimer);
1370        this.resizeTimer = window.setTimeout(
1371            this._handlers.onResize,
1372            this.settings.responsiveRefreshRate
1373        );
1374    };
1375
1376    /**
1377     * Checks window `resize` event.
1378     * @protected
1379     */
1380    Owl.prototype.onResize = function () {
1381        if (!this._items.length) {
1382            return false;
1383        }
1384
1385        if (this._width === this.jqelement.width()) {
1386            return false;
1387        }
1388
1389        if (!this.isVisible()) {
1390            return false;
1391        }
1392
1393        this.enter("resizing");
1394
1395        if (this.trigger("resize").isDefaultPrevented()) {
1396            this.leave("resizing");
1397            return false;
1398        }
1399
1400        this.invalidate("width");
1401
1402        this.refresh();
1403
1404        this.leave("resizing");
1405        this.trigger("resized");
1406    };
1407
1408    /**
1409     * Registers event handlers.
1410     * @todo Check `msPointerEnabled`
1411     * @todo #261
1412     * @protected
1413     */
1414    Owl.prototype.registerEventHandlers = function () {
1415        if (jq.support.transition) {
1416            this.jqstage.on(
1417                jq.support.transition.end + ".owl.core",
1418                jq.proxy(this.onTransitionEnd, this)
1419            );
1420        }
1421
1422        if (this.settings.responsive !== false) {
1423            this.on(window, "resize", this._handlers.onThrottledResize);
1424        }
1425
1426        if (this.settings.mouseDrag) {
1427            this.jqelement.addClass(this.options.dragClass);
1428            this.jqstage.on(
1429                "mousedown.owl.core",
1430                jq.proxy(this.onDragStart, this)
1431            );
1432            this.jqstage.on(
1433                "dragstart.owl.core selectstart.owl.core",
1434                function () {
1435                    return false;
1436                }
1437            );
1438        }
1439
1440        if (this.settings.touchDrag) {
1441            this.jqstage.on(
1442                "touchstart.owl.core",
1443                jq.proxy(this.onDragStart, this)
1444            );
1445            this.jqstage.on(
1446                "touchcancel.owl.core",
1447                jq.proxy(this.onDragEnd, this)
1448            );
1449        }
1450    };
1451
1452    /**
1453     * Handles `touchstart` and `mousedown` events.
1454     * @todo Horizontal swipe threshold as option
1455     * @todo #261
1456     * @protected
1457     * @param {Event} event - The event arguments.
1458     */
1459    Owl.prototype.onDragStart = function (event) {
1460        var stage = null;
1461
1462        if (event.which === 3) {
1463            return;
1464        }
1465
1466        if (jq.support.transform) {
1467            stage = this.jqstage
1468                .css("transform")
1469                .replace(/.*\(|\)| /g, "")
1470                .split(",");
1471            stage = {
1472                x: stage[stage.length === 16 ? 12 : 4],
1473                y: stage[stage.length === 16 ? 13 : 5],
1474            };
1475        } else {
1476            stage = this.jqstage.position();
1477            stage = {
1478                x: this.settings.rtl
1479                    ? stage.left +
1480                      this.jqstage.width() -
1481                      this.width() +
1482                      this.settings.margin
1483                    : stage.left,
1484                y: stage.top,
1485            };
1486        }
1487
1488        if (this.is("animating")) {
1489            jq.support.transform ? this.animate(stage.x) : this.jqstage.stop();
1490            this.invalidate("position");
1491        }
1492
1493        this.jqelement.toggleClass(
1494            this.options.grabClass,
1495            event.type === "mousedown"
1496        );
1497
1498        this.speed(0);
1499
1500        this._drag.time = new Date().getTime();
1501        this._drag.target = jq(event.target);
1502        this._drag.stage.start = stage;
1503        this._drag.stage.current = stage;
1504        this._drag.pointer = this.pointer(event);
1505
1506        jq(document).on(
1507            "mouseup.owl.core touchend.owl.core",
1508            jq.proxy(this.onDragEnd, this)
1509        );
1510
1511        jq(document).one(
1512            "mousemove.owl.core touchmove.owl.core",
1513            jq.proxy(function (event) {
1514                var delta = this.difference(
1515                    this._drag.pointer,
1516                    this.pointer(event)
1517                );
1518
1519                jq(document).on(
1520                    "mousemove.owl.core touchmove.owl.core",
1521                    jq.proxy(this.onDragMove, this)
1522                );
1523
1524                if (Math.abs(delta.x) < Math.abs(delta.y) && this.is("valid")) {
1525                    return;
1526                }
1527
1528                event.preventDefault();
1529
1530                this.enter("dragging");
1531                this.trigger("drag");
1532            }, this)
1533        );
1534    };
1535
1536    /**
1537     * Handles the `touchmove` and `mousemove` events.
1538     * @todo #261
1539     * @protected
1540     * @param {Event} event - The event arguments.
1541     */
1542    Owl.prototype.onDragMove = function (event) {
1543        var minimum = null,
1544            maximum = null,
1545            pull = null,
1546            delta = this.difference(this._drag.pointer, this.pointer(event)),
1547            stage = this.difference(this._drag.stage.start, delta);
1548
1549        if (!this.is("dragging")) {
1550            return;
1551        }
1552
1553        event.preventDefault();
1554
1555        if (this.settings.loop) {
1556            minimum = this.coordinates(this.minimum());
1557            maximum = this.coordinates(this.maximum() + 1) - minimum;
1558            stage.x =
1559                ((((stage.x - minimum) % maximum) + maximum) % maximum) +
1560                minimum;
1561        } else {
1562            minimum = this.settings.rtl
1563                ? this.coordinates(this.maximum())
1564                : this.coordinates(this.minimum());
1565            maximum = this.settings.rtl
1566                ? this.coordinates(this.minimum())
1567                : this.coordinates(this.maximum());
1568            pull = this.settings.pullDrag ? (-1 * delta.x) / 5 : 0;
1569            stage.x = Math.max(
1570                Math.min(stage.x, minimum + pull),
1571                maximum + pull
1572            );
1573        }
1574
1575        this._drag.stage.current = stage;
1576
1577        this.animate(stage.x);
1578    };
1579
1580    /**
1581     * Handles the `touchend` and `mouseup` events.
1582     * @todo #261
1583     * @todo Threshold for click event
1584     * @protected
1585     * @param {Event} event - The event arguments.
1586     */
1587    Owl.prototype.onDragEnd = function (event) {
1588        var delta = this.difference(this._drag.pointer, this.pointer(event)),
1589            stage = this._drag.stage.current,
1590            direction = (delta.x > 0) ^ this.settings.rtl ? "left" : "right";
1591
1592        jq(document).off(".owl.core");
1593
1594        this.jqelement.removeClass(this.options.grabClass);
1595
1596        if ((delta.x !== 0 && this.is("dragging")) || !this.is("valid")) {
1597            this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed);
1598            this.current(
1599                this.closest(
1600                    stage.x,
1601                    delta.x !== 0 ? direction : this._drag.direction
1602                )
1603            );
1604            this.invalidate("position");
1605            this.update();
1606
1607            this._drag.direction = direction;
1608
1609            if (
1610                Math.abs(delta.x) > 3 ||
1611                new Date().getTime() - this._drag.time > 300
1612            ) {
1613                this._drag.target.one("click.owl.core", function () {
1614                    return false;
1615                });
1616            }
1617        }
1618
1619        if (!this.is("dragging")) {
1620            return;
1621        }
1622
1623        this.leave("dragging");
1624        this.trigger("dragged");
1625    };
1626
1627    /**
1628     * Gets absolute position of the closest item for a coordinate.
1629     * @todo Setting `freeDrag` makes `closest` not reusable. See #165.
1630     * @protected
1631     * @param {Number} coordinate - The coordinate in pixel.
1632     * @param {String} direction - The direction to check for the closest item. Ether `left` or `right`.
1633     * @return {Number} - The absolute position of the closest item.
1634     */
1635    Owl.prototype.closest = function (coordinate, direction) {
1636        var position = -1,
1637            pull = 30,
1638            width = this.width(),
1639            coordinates = this.coordinates();
1640
1641        if (!this.settings.freeDrag) {
1642            // check closest item
1643            jq.each(
1644                coordinates,
1645                jq.proxy(function (index, value) {
1646                    // on a left pull, check on current index
1647                    if (
1648                        direction === "left" &&
1649                        coordinate > value - pull &&
1650                        coordinate < value + pull
1651                    ) {
1652                        position = index;
1653                        // on a right pull, check on previous index
1654                        // to do so, subtract width from value and set position = index + 1
1655                    } else if (
1656                        direction === "right" &&
1657                        coordinate > value - width - pull &&
1658                        coordinate < value - width + pull
1659                    ) {
1660                        position = index + 1;
1661                    } else if (
1662                        this.op(coordinate, "<", value) &&
1663                        this.op(
1664                            coordinate,
1665                            ">",
1666                            coordinates[index + 1] !== undefined
1667                                ? coordinates[index + 1]
1668                                : value - width
1669                        )
1670                    ) {
1671                        position = direction === "left" ? index + 1 : index;
1672                    }
1673                    return position === -1;
1674                }, this)
1675            );
1676        }
1677
1678        if (!this.settings.loop) {
1679            // non loop boundries
1680            if (this.op(coordinate, ">", coordinates[this.minimum()])) {
1681                position = coordinate = this.minimum();
1682            } else if (this.op(coordinate, "<", coordinates[this.maximum()])) {
1683                position = coordinate = this.maximum();
1684            }
1685        }
1686
1687        return position;
1688    };
1689
1690    /**
1691     * Animates the stage.
1692     * @todo #270
1693     * @public
1694     * @param {Number} coordinate - The coordinate in pixels.
1695     */
1696    Owl.prototype.animate = function (coordinate) {
1697        var animate = this.speed() > 0;
1698
1699        this.is("animating") && this.onTransitionEnd();
1700
1701        if (animate) {
1702            this.enter("animating");
1703            this.trigger("translate");
1704        }
1705
1706        if (jq.support.transform3d && jq.support.transition) {
1707            this.jqstage.css({
1708                transform: "translate3d(" + coordinate + "px,0px,0px)",
1709                transition:
1710                    this.speed() / 1000 +
1711                    "s" +
1712                    (this.settings.slideTransition
1713                        ? " " + this.settings.slideTransition
1714                        : ""),
1715            });
1716        } else if (animate) {
1717            this.jqstage.animate(
1718                {
1719                    left: coordinate + "px",
1720                },
1721                this.speed(),
1722                this.settings.fallbackEasing,
1723                jq.proxy(this.onTransitionEnd, this)
1724            );
1725        } else {
1726            this.jqstage.css({
1727                left: coordinate + "px",
1728            });
1729        }
1730    };
1731
1732    /**
1733     * Checks whether the carousel is in a specific state or not.
1734     * @param {String} state - The state to check.
1735     * @returns {Boolean} - The flag which indicates if the carousel is busy.
1736     */
1737    Owl.prototype.is = function (state) {
1738        return this._states.current[state] && this._states.current[state] > 0;
1739    };
1740
1741    /**
1742     * Sets the absolute position of the current item.
1743     * @public
1744     * @param {Number} [position] - The new absolute position or nothing to leave it unchanged.
1745     * @returns {Number} - The absolute position of the current item.
1746     */
1747    Owl.prototype.current = function (position) {
1748        if (position === undefined) {
1749            return this._current;
1750        }
1751
1752        if (this._items.length === 0) {
1753            return undefined;
1754        }
1755
1756        position = this.normalize(position);
1757
1758        if (this._current !== position) {
1759            var event = this.trigger("change", {
1760                property: { name: "position", value: position },
1761            });
1762
1763            if (event.data !== undefined) {
1764                position = this.normalize(event.data);
1765            }
1766
1767            this._current = position;
1768
1769            this.invalidate("position");
1770
1771            this.trigger("changed", {
1772                property: { name: "position", value: this._current },
1773            });
1774        }
1775
1776        return this._current;
1777    };
1778
1779    /**
1780     * Invalidates the given part of the update routine.
1781     * @param {String}
1781 [part] - The part to invalidate.
1782     * @returns {Array.<String>} - The invalidated parts.
1783     */
1784    Owl.prototype.invalidate = function (part) {
1785        if (jq.type(part) === "string") {
1786            this._invalidated[part] = true;
1787            this.is("valid") && this.leave("valid");
1788        }
1789        return jq.map(this._invalidated, function (v, i) {
1790            return i;
1791        });
1792    };
1793
1794    /**
1795     * Resets the absolute position of the current item.
1796     * @public
1797     * @param {Number} position - The absolute position of the new item.
1798     */
1799    Owl.prototype.reset = function (position) {
1800        position = this.normalize(position);
1801
1802        if (position === undefined) {
1803            return;
1804        }
1805
1806        this._speed = 0;
1807        this._current = position;
1808
1809        this.suppress(["translate", "translated"]);
1810
1811        this.animate(this.coordinates(position));
1812
1813        this.release(["translate", "translated"]);
1814    };
1815
1816    /**
1817     * Normalizes an absolute or a relative position of an item.
1818     * @public
1819     * @param {Number} position - The absolute or relative position to normalize.
1820     * @param {Boolean} [relative=false] - Whether the given position is relative or not.
1821     * @returns {Number} - The normalized position.
1822     */
1823    Owl.prototype.normalize = function (position, relative) {
1824        var n = this._items.length,
1825            m = relative ? 0 : this._clones.length;
1826
1827        if (!this.isNumeric(position) || n < 1) {
1828            position = undefined;
1829        } else if (position < 0 || position >= n + m) {
1830            position = ((((position - m / 2) % n) + n) % n) + m / 2;
1831        }
1832
1833        return position;
1834    };
1835
1836    /**
1837     * Converts an absolute position of an item into a relative one.
1838     * @public
1839     * @param {Number} position - The absolute position to convert.
1840     * @returns {Number} - The converted position.
1841     */
1842    Owl.prototype.relative = function (position) {
1843        position -= this._clones.length / 2;
1844        return this.normalize(position, true);
1845    };
1846
1847    /**
1848     * Gets the maximum position for the current item.
1849     * @public
1850     * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position.
1851     * @returns {Number}
1852     */
1853    Owl.prototype.maximum = function (relative) {
1854        var settings = this.settings,
1855            maximum = this._coordinates.length,
1856            iterator,
1857            reciprocalItemsWidth,
1858            elementWidth;
1859
1860        if (settings.loop) {
1861            maximum = this._clones.length / 2 + this._items.length - 1;
1862        } else if (settings.autoWidth || settings.merge) {
1863            iterator = this._items.length;
1864            if (iterator) {
1865                reciprocalItemsWidth = this._items[--iterator].width();
1866                elementWidth = this.jqelement.width();
1867                while (iterator--) {
1868                    reciprocalItemsWidth +=
1869                        this._items[iterator].width() + this.settings.margin;
1870                    if (reciprocalItemsWidth > elementWidth) {
1871                        break;
1872                    }
1873                }
1874            }
1875            maximum = iterator + 1;
1876        } else if (settings.center) {
1877            maximum = this._items.length - 1;
1878        } else {
1879            maximum = this._items.length - settings.items;
1880        }
1881
1882        if (relative) {
1883            maximum -= this._clones.length / 2;
1884        }
1885
1886        return Math.max(maximum, 0);
1887    };
1888
1889    /**
1890     * Gets the minimum position for the current item.
1891     * @public
1892     * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position.
1893     * @returns {Number}
1894     */
1895    Owl.prototype.minimum = function (relative) {
1896        return relative ? 0 : this._clones.length / 2;
1897    };
1898
1899    /**
1900     * Gets an item at the specified relative position.
1901     * @public
1902     * @param {Number} [position] - The relative position of the item.
1903     * @return {jq|Array.<jq>} - The item at the given position or all items if no position was given.
1904     */
1905    Owl.prototype.items = function (position) {
1906        if (position === undefined) {
1907            return this._items.slice();
1908        }
1909
1910        position = this.normalize(position, true);
1911        return this._items[position];
1912    };
1913
1914    /**
1915     * Gets an item at the specified relative position.
1916     * @public
1917     * @param {Number} [position] - The relative position of the item.
1918     * @return {jq|Array.<jq>} - The item at the given position or all items if no position was given.
1919     */
1920    Owl.prototype.mergers = function (position) {
1921        if (position === undefined) {
1922            return this._mergers.slice();
1923        }
1924
1925        position = this.normalize(position, true);
1926        return this._mergers[position];
1927    };
1928
1929    /**
1930     * Gets the absolute positions of clones for an item.
1931     * @public
1932     * @param {Number} [position] - The relative position of the item.
1933     * @returns {Array.<Number>} - The absolute positions of clones for the item or all if no position was given.
1934     */
1935    Owl.prototype.clones = function (position) {
1936        var odd = this._clones.length / 2,
1937            even = odd + this._items.length,
1938            map = function (index) {
1939                return index % 2 === 0
1940                    ? even + index / 2
1941                    : odd - (index + 1) / 2;
1942            };
1943
1944        if (position === undefined) {
1945            return jq.map(this._clones, function (v, i) {
1946                return map(i);
1947            });
1948        }
1949
1950        return jq.map(this._clones, function (v, i) {
1951            return v === position ? map(i) : null;
1952        });
1953    };
1954
1955    /**
1956     * Sets the current animation speed.
1957     * @public
1958     * @param {Number}
1958 [speed] - The animation speed in milliseconds or nothing to leave it unchanged.
1959     * @returns {Number} - The current animation speed in milliseconds.
1960     */
1961    Owl.prototype.speed = function (speed) {
1962        if (speed !== undefined) {
1963            this._speed = speed;
1964        }
1965
1966        return this._speed;
1967    };
1968
1969    /**
1970     * Gets the coordinate of an item.
1971     * @todo The name of this method is missleanding.
1972     * @public
1973     * @param {Number} position - The absolute position of the item within `minimum()` and `maximum()`.
1974     * @returns {Number|Array.<Number>} - The coordinate of the item in pixel or all coordinates.
1975     */
1976    Owl.prototype.coordinates = function (position) {
1977        var multiplier = 1,
1978            newPosition = position - 1,
1979            coordinate;
1980
1981        if (position === undefined) {
1982            return jq.map(
1983                this._coordinates,
1984                jq.proxy(function (coordinate, index) {
1985                    return this.coordinates(index);
1986                }, this)
1987            );
1988        }
1989
1990        if (this.settings.center) {
1991            if (this.settings.rtl) {
1992                multiplier = -1;
1993                newPosition = position + 1;
1994            }
1995
1996            coordinate = this._coordinates[position];
1997            coordinate +=
1998                ((this.width() -
1999                    coordinate +
2000                    (this._coordinates[newPosition] || 0)) /
2001                    2) *
2002                multiplier;
2003        } else {
2004            coordinate = this._coordinates[newPosition] || 0;
2005        }
2006
2007        coordinate = Math.ceil(coordinate);
2008
2009        return coordinate;
2010    };
2011
2012    /**
2013     * Calculates the speed for a translation.
2014     * @protected
2015     * @param {Number} from - The absolute position of the start item.
2016     * @param {Number} to - The absolute position of the target item.
2017     * @param {Number} [factor=undefined] - The time factor in milliseconds.
2018     * @returns {Number} - The time in milliseconds for the translation.
2019     */
2020    Owl.prototype.duration = function (from, to, factor) {
2021        if (factor === 0) {
2022            return 0;
2023        }
2024
2025        return (
2026            Math.min(Math.max(Math.abs(to - from), 1), 6) *
2027            Math.abs(factor || this.settings.smartSpeed)
2028        );
2029    };
2030
2031    /**
2032     * Slides to the specified item.
2033     * @public
2034     * @param {Number} position - The position of the item.
2035     * @param {Number} [speed] - The time in milliseconds for the transition.
2036     */
2037    Owl.prototype.to = function (position, speed) {
2038        var current = this.current(),
2039            revert = null,
2040            distance = position - this.relative(current),
2041            direction = (distance > 0) - (distance < 0),
2042            items = this._items.length,
2043            minimum = this.minimum(),
2044            maximum = this.maximum();
2045
2046        if (this.settings.loop) {
2047            if (!this.settings.rewind && Math.abs(distance) > items / 2) {
2048                distance += direction * -1 * items;
2049            }
2050
2051            position = current + distance;
2052            revert =
2053                ((((position - minimum) % items) + items) % items) + minimum;
2054
2055            if (
2056                revert !== position &&
2057                revert - distance <= maximum &&
2058                revert - distance > 0
2059            ) {
2060                current = revert - distance;
2061                position = revert;
2062                this.reset(current);
2063            }
2064        } else if (this.settings.rewind) {
2065            maximum += 1;
2066            position = ((position % maximum) + maximum) % maximum;
2067        } else {
2068            position = Math.max(minimum, Math.min(maximum, position));
2069        }
2070
2071        this.speed(this.duration(current, position, speed));
2072        this.current(position);
2073
2074        if (this.isVisible()) {
2075            this.update();
2076        }
2077    };
2078
2079    /**
2080     * Slides to the next item.
2081     * @public
2082     * @param {Number} [speed] - The time in milliseconds for the transition.
2083     */
2084    Owl.prototype.next = function (speed) {
2085        speed = speed || false;
2086        this.to(this.relative(this.current()) + 1, speed);
2087    };
2088
2089    /**
2090     * Slides to the previous item.
2091     * @public
2092     * @param {Number}
vendor: 18,269 bytes, lines 2092-2636
2092 [speed] - The time in milliseconds for the transition.
2093     */
2094    Owl.prototype.prev = function (speed) {
2095        speed = speed || false;
2096        this.to(this.relative(this.current()) - 1, speed);
2097    };
2098
2099    /**
2100     * Handles the end of an animation.
2101     * @protected
2102     * @param {Event} event - The event arguments.
2103     */
2104    Owl.prototype.onTransitionEnd = function (event) {
2105        // if css2 animation then event object is undefined
2106        if (event !== undefined) {
2107            event.stopPropagation();
2108
2109            // Catch only owl-stage transitionEnd event
2110            if (
2111                (event.target || event.srcElement || event.originalTarget) !==
2112                this.jqstage.get(0)
2113            ) {
2114                return false;
2115            }
2116        }
2117
2118        this.leave("animating");
2119        this.trigger("translated");
2120    };
2121
2122    /**
2123     * Gets viewport width.
2124     * @protected
2125     * @return {Number} - The width in pixel.
2126     */
2127    Owl.prototype.viewport = function () {
2128        var width;
2129        if (this.options.responsiveBaseElement !== window) {
2130            width = jq(this.options.responsiveBaseElement).width();
2131        } else if (window.innerWidth) {
2132            width = window.innerWidth;
2133        } else if (
2134            document.documentElement &&
2135            document.documentElement.clientWidth
2136        ) {
2137            width = document.documentElement.clientWidth;
2138        } else {
2139            console.warn("Can not detect viewport width.");
2140        }
2141        return width;
2142    };
2143
2144    /**
2145     * Replaces the current content.
2146     * @public
2147     * @param {HTMLElement|jq|String} content - The new content.
2148     */
2149    Owl.prototype.replace = function (content) {
2150        this.jqstage.empty();
2151        this._items = [];
2152
2153        if (content) {
2154            content = content instanceof jq ? content : jq(content);
2155        }
2156
2157        if (this.settings.nestedItemSelector) {
2158            content = content.find("." + this.settings.nestedItemSelector);
2159        }
2160
2161        content
2162            .filter(function () {
2163                return this.nodeType === 1;
2164            })
2165            .each(
2166                jq.proxy(function (index, item) {
2167                    item = this.prepare(item);
2168                    this.jqstage.append(item);
2169                    this._items.push(item);
2170                    this._mergers.push(
2171                        item
2172                            .find("[data-merge]")
2173                            .addBack("[data-merge]")
2174                            .attr("data-merge") * 1 || 1
2175                    );
2176                }, this)
2177            );
2178
2179        this.reset(
2180            this.isNumeric(this.settings.startPosition)
2181                ? this.settings.startPosition
2182                : 0
2183        );
2184
2185        this.invalidate("items");
2186    };
2187
2188    /**
2189     * Adds an item.
2190     * @todo Use `item` instead of `content` for the event arguments.
2191     * @public
2192     * @param {HTMLElement|jq|String} content - The item content to add.
2193     * @param {Number} [position] - The relative position at which to insert the item otherwise the item will be added to the end.
2194     */
2195    Owl.prototype.add = function (content, position) {
2196        var current = this.relative(this._current);
2197
2198        position =
2199            position === undefined
2200                ? this._items.length
2201                : this.normalize(position, true);
2202        content = content instanceof jq ? content : jq(content);
2203
2204        this.trigger("add", { content: content, position: position });
2205
2206        content = this.prepare(content);
2207
2208        if (this._items.length === 0 || position === this._items.length) {
2209            this._items.length === 0 && this.jqstage.append(content);
2210            this._items.length !== 0 &&
2211                this._items[position - 1].after(content);
2212            this._items.push(content);
2213            this._mergers.push(
2214                content
2215                    .find("[data-merge]")
2216                    .addBack("[data-merge]")
2217                    .attr("data-merge") * 1 || 1
2218            );
2219        } else {
2220            this._items[position].before(content);
2221            this._items.splice(position, 0, content);
2222            this._mergers.splice(
2223                position,
2224                0,
2225                content
2226                    .find("[data-merge]")
2227                    .addBack("[data-merge]")
2228                    .attr("data-merge") * 1 || 1
2229            );
2230        }
2231
2232        this._items[current] && this.reset(this._items[current].index());
2233
2234        this.invalidate("items");
2235
2236        this.trigger("added", { content: content, position: position });
2237    };
2238
2239    /**
2240     * Removes an item by its position.
2241     * @todo Use `item` instead of `content` for the event arguments.
2242     * @public
2243     * @param {Number} position - The relative position of the item to remove.
2244     */
2245    Owl.prototype.remove = function (position) {
2246        position = this.normalize(position, true);
2247
2248        if (position === undefined) {
2249            return;
2250        }
2251
2252        this.trigger("remove", {
2253            content: this._items[position],
2254            position: position,
2255        });
2256
2257        this._items[position].remove();
2258        this._items.splice(position, 1);
2259        this._mergers.splice(position, 1);
2260
2261        this.invalidate("items");
2262
2263        this.trigger("removed", { content: null, position: position });
2264    };
2265
2266    /**
2267     * Preloads images with auto width.
2268     * @todo Replace by a more generic approach
2269     * @protected
2270     */
2271    Owl.prototype.preloadAutoWidthImages = function (images) {
2272        images.each(
2273            jq.proxy(function (i, element) {
2274                this.enter("pre-loading");
2275                element = jq(element);
2276                jq(new Image())
2277                    .one(
2278                        "load",
2279                        jq.proxy(function (e) {
2280                            element.attr("src", e.target.src);
2281                            element.css("opacity", 1);
2282                            this.leave("pre-loading");
2283                            !this.is("pre-loading") &&
2284                                !this.is("initializing") &&
2285                                this.refresh();
2286                        }, this)
2287                    )
2288                    .attr(
2289                        "src",
2290                        element.attr("src") ||
2291                            element.attr("data-src") ||
2292                            element.attr("data-src-retina")
2293                    );
2294            }, this)
2295        );
2296    };
2297
2298    /**
2299     * Destroys the carousel.
2300     * @public
2301     */
2302    Owl.prototype.destroy = function () {
2303        this.jqelement.off(".owl.core");
2304        this.jqstage.off(".owl.core");
2305        jq(document).off(".owl.core");
2306
2307        if (this.settings.responsive !== false) {
2308            window.clearTimeout(this.resizeTimer);
2309            this.off(window, "resize", this._handlers.onThrottledResize);
2310        }
2311
2312        for (var i in this._plugins) {
2313            this._plugins[i].destroy();
2314        }
2315
2316        this.jqstage.children(".cloned").remove();
2317
2318        this.jqstage.unwrap();
2319        this.jqstage.children().contents().unwrap();
2320        this.jqstage.children().unwrap();
2321        this.jqstage.remove();
2322        this.jqelement
2323            .removeClass(this.options.refreshClass)
2324            .removeClass(this.options.loadingClass)
2325            .removeClass(this.options.loadedClass)
2326            .removeClass(this.options.rtlClass)
2327            .removeClass(this.options.dragClass)
2328            .removeClass(this.options.grabClass)
2329            .attr(
2330                "class",
2331                this.jqelement
2332                    .attr("class")
2333                    .replace(
2334                        new RegExp(
2335                            this.options.responsiveClass + "-\\S+\\s",
2336                            "g"
2337                        ),
2338                        ""
2339                    )
2340            )
2341            .removeData("owl.carousel");
2342    };
2343
2344    /**
2345     * Operators to calculate right-to-left and left-to-right.
2346     * @protected
2347     * @param {Number} [a] - The left side operand.
2348     * @param {String} [o] - The operator.
2349     * @param {Number} [b] - The right side operand.
2350     */
2351    Owl.prototype.op = function (a, o, b) {
2352        var rtl = this.settings.rtl;
2353        switch (o) {
2354            case "<":
2355                return rtl ? a > b : a < b;
2356            case ">":
2357                return rtl ? a < b : a > b;
2358            case ">=":
2359                return rtl ? a <= b : a >= b;
2360            case "<=":
2361                return rtl ? a >= b : a <= b;
2362            default:
2363                break;
2364        }
2365    };
2366
2367    /**
2368     * Attaches to an internal event.
2369     * @protected
2370     * @param {HTMLElement} element - The event source.
2371     * @param {String} event - The event name.
2372     * @param {Function} listener - The event handler to attach.
2373     * @param {Boolean} capture - Wether the event should be handled at the capturing phase or not.
2374     */
2375    Owl.prototype.on = function (element, event, listener, capture) {
2376        if (element.addEventListener) {
2377            element.addEventListener(event, listener, capture);
2378        } else if (element.attachEvent) {
2379            element.attachEvent("on" + event, listener);
2380        }
2381    };
2382
2383    /**
2384     * Detaches from an internal event.
2385     * @protected
2386     * @param {HTMLElement} element - The event source.
2387     * @param {String} event - The event name.
2388     * @param {Function} listener - The attached event handler to detach.
2389     * @param {Boolean} capture - Wether the attached event handler was registered as a capturing listener or not.
2390     */
2391    Owl.prototype.off = function (element, event, listener, capture) {
2392        if (element.removeEventListener) {
2393            element.removeEventListener(event, listener, capture);
2394        } else if (element.detachEvent) {
2395            element.detachEvent("on" + event, listener);
2396        }
2397    };
2398
2399    /**
2400     * Triggers a public event.
2401     * @todo Remove `status`, `relatedTarget` should be used instead.
2402     * @protected
2403     * @param {String} name - The event name.
2404     * @param {*} [data=null] - The event data.
2405     * @param {String} [namespace=carousel] - The event namespace.
2406     * @param {String} [state] - The state which is associated with the event.
2407     * @param {Boolean} [enter=false] - Indicates if the call enters the specified state or not.
2408     * @returns {Event} - The event arguments.
2409     */
2410    Owl.prototype.trigger = function (name, data, namespace, state, enter) {
2411        var status = {
2412                item: { count: this._items.length, index: this.current() },
2413            },
2414            handler = jq.camelCase(
2415                jq
2416                    .grep(["on", name, namespace], function (v) {
2417                        return v;
2418                    })
2419                    .join("-")
2420                    .toLowerCase()
2421            ),
2422            event = jq.Event(
2423                [name, "owl", namespace || "carousel"].join(".").toLowerCase(),
2424                jq.extend({ relatedTarget: this }, status, data)
2425            );
2426
2427        if (!this._supress[name]) {
2428            jq.each(this._plugins, function (name, plugin) {
2429                if (plugin.onTrigger) {
2430                    plugin.onTrigger(event);
2431                }
2432            });
2433
2434            this.register({ type: Owl.Type.Event, name: name });
2435            this.jqelement.trigger(event);
2436
2437            if (this.settings && typeof this.settings[handler] === "function") {
2438                this.settings[handler].call(this, event);
2439            }
2440        }
2441
2442        return event;
2443    };
2444
2445    /**
2446     * Enters a state.
2447     * @param name - The state name.
2448     */
2449    Owl.prototype.enter = function (name) {
2450        jq.each(
2451            [name].concat(this._states.tags[name] || []),
2452            jq.proxy(function (i, name) {
2453                if (this._states.current[name] === undefined) {
2454                    this._states.current[name] = 0;
2455                }
2456
2457                this._states.current[name]++;
2458            }, this)
2459        );
2460    };
2461
2462    /**
2463     * Leaves a state.
2464     * @param name - The state name.
2465     */
2466    Owl.prototype.leave = function (name) {
2467        jq.each(
2468            [name].concat(this._states.tags[name] || []),
2469            jq.proxy(function (i, name) {
2470                this._states.current[name]--;
2471            }, this)
2472        );
2473    };
2474
2475    /**
2476     * Registers an event or state.
2477     * @public
2478     * @param {Object} object - The event or state to register.
2479     */
2480    Owl.prototype.register = function (object) {
2481        if (object.type === Owl.Type.Event) {
2482            if (!jq.event.special[object.name]) {
2483                jq.event.special[object.name] = {};
2484            }
2485
2486            if (!jq.event.special[object.name].owl) {
2487                var _default = jq.event.special[object.name]._default;
2488                jq.event.special[object.name]._default = function (e) {
2489                    if (
2490                        _default &&
2491                        _default.apply &&
2492                        (!e.namespace || e.namespace.indexOf("owl") === -1)
2493                    ) {
2494                        return _default.apply(this, arguments);
2495                    }
2496                    return e.namespace && e.namespace.indexOf("owl") > -1;
2497                };
2498                jq.event.special[object.name].owl = true;
2499            }
2500        } else if (object.type === Owl.Type.State) {
2501            if (!this._states.tags[object.name]) {
2502                this._states.tags[object.name] = object.tags;
2503            } else {
2504                this._states.tags[object.name] = this._states.tags[
2505                    object.name
2506                ].concat(object.tags);
2507            }
2508
2509            this._states.tags[object.name] = jq.grep(
2510                this._states.tags[object.name],
2511                jq.proxy(function (tag, i) {
2512                    return (
2513                        jq.inArray(tag, this._states.tags[object.name]) === i
2514                    );
2515                }, this)
2516            );
2517        }
2518    };
2519
2520    /**
2521     * Suppresses events.
2522     * @protected
2523     * @param {Array.<String>} events - The events to suppress.
2524     */
2525    Owl.prototype.suppress = function (events) {
2526        jq.each(
2527            events,
2528            jq.proxy(function (index, event) {
2529                this._supress[event] = true;
2530            }, this)
2531        );
2532    };
2533
2534    /**
2535     * Releases suppressed events.
2536     * @protected
2537     * @param {Array.<String>} events - The events to release.
2538     */
2539    Owl.prototype.release = function (events) {
2540        jq.each(
2541            events,
2542            jq.proxy(function (index, event) {
2543                delete this._supress[event];
2544            }, this)
2545        );
2546    };
2547
2548    /**
2549     * Gets unified pointer coordinates from event.
2550     * @todo #261
2551     * @protected
2552     * @param {Event} - The `mousedown` or `touchstart` event.
2553     * @returns {Object} - Contains `x` and `y` coordinates of current pointer position.
2554     */
2555    Owl.prototype.pointer = function (event) {
2556        var result = { x: null, y: null };
2557
2558        event = event.originalEvent || event || window.event;
2559
2560        event =
2561            event.touches && event.touches.length
2562                ? event.touches[0]
2563                : event.changedTouches && event.changedTouches.length
2564                ? event.changedTouches[0]
2565                : event;
2566
2567        if (event.pageX) {
2568            result.x = event.pageX;
2569            result.y = event.pageY;
2570        } else {
2571            result.x = event.clientX;
2572            result.y = event.clientY;
2573        }
2574
2575        return result;
2576    };
2577
2578    /**
2579     * Determines if the input is a Number or something that can be coerced to a Number
2580     * @protected
2581     * @param {Number|String|Object|Array|Boolean|RegExp|Function|Symbol} - The input to be tested
2582     * @returns {Boolean} - An indication if the input is a Number or can be coerced to a Number
2583     */
2584    Owl.prototype.isNumeric = function (number) {
2585        return !isNaN(parseFloat(number));
2586    };
2587
2588    /**
2589     * Gets the difference of two vectors.
2590     * @todo #261
2591     * @protected
2592     * @param {Object} - The first vector.
2593     * @param {Object} - The second vector.
2594     * @returns {Object} - The difference.
2595     */
2596    Owl.prototype.difference = function (first, second) {
2597        return {
2598            x: first.x - second.x,
2599            y: first.y - second.y,
2600        };
2601    };
2602
2603    /**
2604     * The jq Plugin for the Owl Carousel
2605     * @todo Navigation plugin `next` and `prev`
2606     * @public
2607     */
2608    jq.fn.owlCarousel = function (option) {
2609        var args = Array.prototype.slice.call(arguments, 1);
2610
2611        return this.each(function () {
2612            var jqthis = jq(this),
2613                data = jqthis.data("owl.carousel");
2614
2615            if (!data) {
2616                data = new Owl(this, typeof option == "object" && option);
2617                jqthis.data("owl.carousel", data);
2618
2619                jq.each(
2620                    [
2621                        "next",
2622                        "prev",
2623                        "to",
2624                        "destroy",
2625                        "refresh",
2626                        "replace",
2627                        "add",
2628                        "remove",
2629                    ],
2630                    function (i, event) {
2631                        data.register({ type: Owl.Type.Event, name: event });
2632                        data.jqelement.on(
2633                            event + ".owl.carousel.core",
2634                            jq.proxy(function (e) {
2635                                if (e.namespace && e.relatedTarget !== this) {
2636                                    this.suppress([event]);
vendor: 4,073 bytes, lines 2637-2791
2637                                    data[event].apply(
2638                                        this,
2639                                        [].slice.call(arguments, 1)
2640                                    );
2641                                    this.release([event]);
2642                                }
2643                            }, data)
2644                        );
2645                    }
2646                );
2647            }
2648
2649            if (typeof option == "string" && option.charAt(0) !== "_") {
2650                data[option].apply(data, args);
2651            }
2652        });
2653    };
2654
2655    /**
2656     * The constructor for the jq Plugin
2657     * @public
2658     */
2659    jq.fn.owlCarousel.Constructor = Owl;
2660})(window.Zepto || window.jq, window, document);
2661
2662/**
2663 * AutoRefresh Plugin
2664 * @version 2.3.4
2665 * @author Artus Kolanowski
2666 * @author David Deutsch
2667 * @license The MIT License (MIT)
2668 */
2669(function (jq, window, document, undefined) {
2670    /**
2671     * Creates the auto refresh plugin.
2672     * @class The Auto Refresh Plugin
2673     * @param {Owl} carousel - The Owl Carousel
2674     */
2675    var AutoRefresh = function (carousel) {
2676        /**
2677         * Reference to the core.
2678         * @protected
2679         * @type {Owl}
2680         */
2681        this._core = carousel;
2682
2683        /**
2684         * Refresh interval.
2685         * @protected
2686         * @type {number}
2687         */
2688        this._interval = null;
2689
2690        /**
2691         * Whether the element is currently visible or not.
2692         * @protected
2693         * @type {Boolean}
2694         */
2695        this._visible = null;
2696
2697        /**
2698         * All event handlers.
2699         * @protected
2700         * @type {Object}
2701         */
2702        this._handlers = {
2703            "initialized.owl.carousel": jq.proxy(function (e) {
2704                if (e.namespace && this._core.settings.autoRefresh) {
2705                    this.watch();
2706                }
2707            }, this),
2708        };
2709
2710        // set default options
2711        this._core.options = jq.extend(
2712            {},
2713            AutoRefresh.Defaults,
2714            this._core.options
2715        );
2716
2717        // register event handlers
2718        this._core.jqelement.on(this._handlers);
2719    };
2720
2721    /**
2722     * Default options.
2723     * @public
2724     */
2725    AutoRefresh.Defaults = {
2726        autoRefresh: true,
2727        autoRefreshInterval: 500,
2728    };
2729
2730    /**
2731     * Watches the element.
2732     */
2733    AutoRefresh.prototype.watch = function () {
2734        if (this._interval) {
2735            return;
2736        }
2737
2738        this._visible = this._core.isVisible();
2739        this._interval = window.setInterval(
2740            jq.proxy(this.refresh, this),
2741            this._core.settings.autoRefreshInterval
2742        );
2743    };
2744
2745    /**
2746     * Refreshes the element.
2747     */
2748    AutoRefresh.prototype.refresh = function () {
2749        if (this._core.isVisible() === this._visible) {
2750            return;
2751        }
2752
2753        this._visible = !this._visible;
2754
2755        this._core.jqelement.toggleClass("owl-hidden", !this._visible);
2756
2757        this._visible && this._core.invalidate("width") && this._core.refresh();
2758    };
2759
2760    /**
2761     * Destroys the plugin.
2762     */
2763    AutoRefresh.prototype.destroy = function () {
2764        var handler, property;
2765
2766        window.clearInterval(this._interval);
2767
2768        for (handler in this._handlers) {
2769            this._core.jqelement.off(handler, this._handlers[handler]);
2770        }
2771        for (property in Object.getOwnPropertyNames(this)) {
2772            typeof this[property] != "function" && (this[property] = null);
2773        }
2774    };
2775
2776    jq.fn.owlCarousel.Constructor.Plugins.AutoRefresh = AutoRefresh;
2777})(window.Zepto || window.jq, window, document);
2778
2779/**
2780 * Lazy Plugin
2781 * @version 2.3.4
2782 * @author Bartosz Wojciechowski
2783 * @author David Deutsch
2784 * @license The MIT License (MIT)
2785 */
2786(function (jq, window, document, undefined) {
2787    /**
2788     * Creates the lazy plugin.
2789     * @class The Lazy Plugin
2790     * @param {Owl} carousel - The Owl Carousel
2791     */
2792    var Lazy = function (carousel) {
2793        /**
2794         * Reference to the core.
2795         * @protected
2796         * @type {Owl}
2797         */
2798        this._core = carousel;
2799
2800        /**
2801         * Already loaded items.
2802         * @protected
2803         * @type {Array.<jq>}
2804         */
2805        this._loaded = [];
2806
2807        /**
2808         * Event handlers.
2809         * @protected
2810         * @type {Object}
2811         */
2812        this._handlers = {
2813            "initialized.owl.carousel change.owl.carousel resized.owl.carousel": jq.proxy(
2814                function (e) {
2815                    if (!e.namespace) {
2816                        return;
2817                    }
2818
2819                    if (!this._core.settings || !this._core.settings.lazyLoad) {
2820                        return;
2821                    }
2822
2823                    if (
2824                        (e.property && e.property.name == "position") ||
2825                        e.type == "initialized"
2826                    ) {
2827                        var settings = this._core.settings,
2828                            n =
2829                                (settings.center &&
2830                                    Math.ceil(settings.items / 2)) ||
2831                                settings.items,
2832                            i = (settings.center && n * -1) || 0,
2833                            position =
2834                                (e.property && e.property.value !== undefined
2835                                    ? e.property.value
2836                                    : this._core.current()) + i,
2837                            clones = this._core.clones().length,
2838                            load = jq.proxy(function (i, v) {
2839                                this.load(v);
2840                            }, this);
2841                        //TODO: Need documentation for this new option
2842                        if (settings.lazyLoadEager > 0) {
2843                            n += settings.lazyLoadEager;
2844                            // If the carousel is looping also preload images that are to the "left"
2845                            if (settings.loop) {
2846                                position -= settings.lazyLoadEager;
2847                                n++;
2848                            }
2849                        }
2850
2851                        while (i++ < n) {
2852                            this.load(
2853                                clones / 2 + this._core.relative(position)
2854                            );
2855                            clones &&
2856                                jq.each(
2857                                    this._core.clones(
2858                                        this._core.relative(position)
2859                                    ),
2860                                    load
2861                                );
2862                            position++;
2863                        }
2864                    }
2865                },
2866                this
2867            ),
2868        };
2869
2870        // set the default options
2871        this._core.options = jq.extend({}, Lazy.Defaults, this._core.options);
2872
2873        // register event handler
2874        this._core.jqelement.on(this._handlers);
2875    };
2876
2877    /**
2878     * Default options.
2879     * @public
2880     */
2881    Lazy.Defaults = {
2882        lazyLoad: false,
2883        lazyLoadEager: 0,
2884    };
2885
2886    /**
2887     * Loads all resources of an item at the specified position.
2888     * @param {Number} position - The absolute position of the item.
2889     * @protected
2890     */
2891    Lazy.prototype.load = function (position) {
2892        var jqitem = this._core.jqstage.children().eq(position),
2893            jqelements = jqitem && jqitem.find(".owl-lazy");
2894
2895        if (!jqelements || jq.inArray(jqitem.get(0), this._loaded) > -1) {
2896            return;
2897        }
2898
2899        jqelements.each(
2900            jq.proxy(function (index, element) {
2901                var jqelement = jq(element),
2902                    image,
2903                    url =
2904                        (window.devicePixelRatio > 1 &&
2905                            jqelement.attr("data-src-retina")) ||
2906                        jqelement.attr("data-src") ||
2907                        jqelement.attr("data-srcset");
2908
2909                this._core.trigger(
2910                    "load",
2911                    { element: jqelement, url: url },
2912                    "lazy"
2913                );
2914
2915                if (jqelement.is("img")) {
2916                    jqelement
2917                        .one(
2918                            "load.owl.lazy",
2919                            jq.proxy(function () {
2920                                jqelement.css("opacity", 1);
2921                                this._core.trigger(
2922                                    "loaded",
2923                                    { element: jqelement, url: url },
2924                                    "lazy"
2925                                );
2926                            }, this)
2927                        )
2928                        .attr("src", url);
2929                } else if (jqelement.is("source")) {
2930                    jqelement
2931                        .one(
2932                            "load.owl.lazy",
2933                            jq.proxy(function () {
2934                                this._core.trigger(
2935                                    "loaded",
2936                                    { element: jqelement, url: url },
2937                                    "lazy"
2938                                );
2939                            }, this)
2940                        )
2941                        .attr("srcset", url);
2942                } else {
2943                    image = new Image();
2944                    image.onload = jq.proxy(function () {
2945                        jqelement.css({
2946                            "background-image": 'url("' + url + '")',
2947                            opacity: "1",
2948                        });
2949                        this._core.trigger(
2950                            "loaded",
2951                            { element: jqelement, url: url },
2952                            "lazy"
2953                        );
2954                    }, this);
2955                    image.src = url;
2956                }
2957            }, this)
2958        );
2959
2960        this._loaded.push(jqitem.get(0));
2961    };
2962
2963    /**
2964     * Destroys the plugin.
2965     * @public
2966     */
2967    Lazy.prototype.destroy = function () {
2968        var handler, property;
2969
2970        for (handler in this.handlers) {
2971            this._core.jqelement.off(handler, this.handlers[handler]);
2972        }
2973        for (property in Object.getOwnPropertyNames(this)) {
2974            typeof this[property] != "function" && (this[property] = null);
2975        }
2976    };
2977
vendor: 4,970 bytes, lines 2978-3140
2978    jq.fn.owlCarousel.Constructor.Plugins.Lazy = Lazy;
2979})(window.Zepto || window.jq, window, document);
2980
2981/**
2982 * AutoHeight Plugin
2983 * @version 2.3.4
2984 * @author Bartosz Wojciechowski
2985 * @author David Deutsch
2986 * @license The MIT License (MIT)
2987 */
2988(function (jq, window, document, undefined) {
2989    /**
2990     * Creates the auto height plugin.
2991     * @class The Auto Height Plugin
2992     * @param {Owl} carousel - The Owl Carousel
2993     */
2994    var AutoHeight = function (carousel) {
2995        /**
2996         * Reference to the core.
2997         * @protected
2998         * @type {Owl}
2999         */
3000        this._core = carousel;
3001
3002        this._previousHeight = null;
3003
3004        /**
3005         * All event handlers.
3006         * @protected
3007         * @type {Object}
3008         */
3009        this._handlers = {
3010            "initialized.owl.carousel refreshed.owl.carousel": jq.proxy(
3011                function (e) {
3012                    if (e.namespace && this._core.settings.autoHeight) {
3013                        this.update();
3014                    }
3015                },
3016                this
3017            ),
3018            "changed.owl.carousel": jq.proxy(function (e) {
3019                if (
3020                    e.namespace &&
3021                    this._core.settings.autoHeight &&
3022                    e.property.name === "position"
3023                ) {
3024                    this.update();
3025                }
3026            }, this),
3027            "loaded.owl.lazy": jq.proxy(function (e) {
3028                if (
3029                    e.namespace &&
3030                    this._core.settings.autoHeight &&
3031                    e.element
3032                        .closest("." + this._core.settings.itemClass)
3033                        .index() === this._core.current()
3034                ) {
3035                    this.update();
3036                }
3037            }, this),
3038        };
3039
3040        // set default options
3041        this._core.options = jq.extend(
3042            {},
3043            AutoHeight.Defaults,
3044            this._core.options
3045        );
3046
3047        // register event handlers
3048        this._core.jqelement.on(this._handlers);
3049        this._intervalId = null;
3050        var refThis = this;
3051
3052        // These changes have been taken from a PR by gavrochelegnou proposed in #1575
3053        // and have been made compatible with the latest jq version
3054        jq(window).on("load", function () {
3055            if (refThis._core.settings.autoHeight) {
3056                refThis.update();
3057            }
3058        });
3059
3060        // Autoresize the height of the carousel when window is resized
3061        // When carousel has images, the height is dependent on the width
3062        // and should also change on resize
3063        jq(window).resize(function () {
3064            if (refThis._core.settings.autoHeight) {
3065                if (refThis._intervalId != null) {
3066                    clearTimeout(refThis._intervalId);
3067                }
3068
3069                refThis._intervalId = setTimeout(function () {
3070                    refThis.update();
3071                }, 250);
3072            }
3073        });
3074    };
3075
3076    /**
3077     * Default options.
3078     * @public
3079     */
3080    AutoHeight.Defaults = {
3081        autoHeight: false,
3082        autoHeightClass: "owl-height",
3083    };
3084
3085    /**
3086     * Updates the view.
3087     */
3088    AutoHeight.prototype.update = function () {
3089        var start = this._core._current,
3090            end = start + this._core.settings.items,
3091            lazyLoadEnabled = this._core.settings.lazyLoad,
3092            visible = this._core.jqstage.children().toArray().slice(start, end),
3093            heights = [],
3094            maxheight = 0;
3095
3096        jq.each(visible, function (index, item) {
3097            heights.push(jq(item).height());
3098        });
3099
3100        maxheight = Math.max.apply(null, heights);
3101
3102        if (maxheight <= 1 && lazyLoadEnabled && this._previousHeight) {
3103            maxheight = this._previousHeight;
3104        }
3105
3106        this._previousHeight = maxheight;
3107
3108        this._core.jqstage
3109            .parent()
3110            .height(maxheight)
3111            .addClass(this._core.settings.autoHeightClass);
3112    };
3113
3114    AutoHeight.prototype.destroy = function () {
3115        var handler, property;
3116
3117        for (handler in this._handlers) {
3118            this._core.jqelement.off(handler, this._handlers[handler]);
3119        }
3120        for (property in Object.getOwnPropertyNames(this)) {
3121            typeof this[property] !== "function" && (this[property] = null);
3122        }
3123    };
3124
3125    jq.fn.owlCarousel.Constructor.Plugins.AutoHeight = AutoHeight;
3126})(window.Zepto || window.jq, window, document);
3127
3128/**
3129 * Video Plugin
3130 * @version 2.3.4
3131 * @author Bartosz Wojciechowski
3132 * @author David Deutsch
3133 * @license The MIT License (MIT)
3134 */
3135(function (jq, window, document, undefined) {
3136    /**
3137     * Creates the video plugin.
3138     * @class The Video Plugin
3139     * @param {Owl} carousel - The Owl Carousel
3140     */
3141    var Video = function (carousel) {
3142        /**
3143         * Reference to the core.
3144         * @protected
3145         * @type {Owl}
3146         */
3147        this._core = carousel;
3148
3149        /**
3150         * Cache all video URLs.
3151         * @protected
3152         * @type {Object}
3153         */
3154        this._videos = {};
3155
3156        /**
3157         * Current playing item.
3158         * @protected
3159         * @type {jq}
3160         */
3161        this._playing = null;
3162
3163        /**
3164         * All event handlers.
3165         * @todo The cloned content removale is too late
3166         * @protected
3167         * @type {Object}
3168         */
3169        this._handlers = {
3170            "initialized.owl.carousel": jq.proxy(function (e) {
3171                if (e.namespace) {
3172                    this._core.register({
3173                        type: "state",
3174                        name: "playing",
3175                        tags: ["interacting"],
3176                    });
3177                }
3178            }, this),
3179            "resize.owl.carousel": jq.proxy(function (e) {
3180                if (
3181                    e.namespace &&
3182                    this._core.settings.video &&
3183                    this.isInFullScreen()
3184                ) {
3185                    e.preventDefault();
3186                }
3187            }, this),
3188            "refreshed.owl.carousel": jq.proxy(function (e) {
3189                if (e.namespace && this._core.is("resizing")) {
3190                    this._core.jqstage
3191                        .find(".cloned .owl-video-frame")
3192                        .remove();
3193                }
3194            }, this),
3195            "changed.owl.carousel": jq.proxy(function (e) {
3196                if (
3197                    e.namespace &&
3198                    e.property.name === "position" &&
3199                    this._playing
3200                ) {
3201                    this.stop();
3202                }
3203            }, this),
3204            "prepared.owl.carousel": jq.proxy(function (e) {
3205                if (!e.namespace) {
3206                    return;
3207                }
3208
3209                var jqelement = jq(e.content).find(".owl-video");
3210
3211                if (jqelement.length) {
3212                    jqelement.css("display", "none");
3213                    this.fetch(jqelement, jq(e.content));
3214                }
3215            }, this),
3216        };
3217
3218        // set default options
3219        this._core.options = jq.extend({}, Video.Defaults, this._core.options);
3220
3221        // register event handlers
3222        this._core.jqelement.on(this._handlers);
3223
3224        this._core.jqelement.on(
3225            "click.owl.video",
3226            ".owl-video-play-icon",
3227            jq.proxy(function (e) {
3228                this.play(e);
3229            }, this)
3230        );
3231    };
3232
3233    /**
3234     * Default options.
3235     * @public
3236     */
3237    Video.Defaults = {
3238        video: false,
3239        videoHeight: false,
3240        videoWidth: false,
3241    };
3242
3243    /**
3244     * Gets the video ID and the type (YouTube/Vimeo/vzaar only).
3245     * @protected
3246     * @param {jq} target - The target containing the video data.
3247     * @param {jq} item - The item containing the video.
3248     */
3249    Video.prototype.fetch = function (target, item) {
3250        var type = (function () {
3251                if (target.attr("data-vimeo-id")) {
3252                    return "vimeo";
3253                } else if (target.attr("data-vzaar-id")) {
3254                    return "vzaar";
3255                } else {
3256                    return "youtube";
3257                }
3258            })(),
3259            id =
3260                target.attr("data-vimeo-id") ||
3261                target.attr("data-youtube-id") ||
3262                target.attr("data-vzaar-id"),
3263            width = target.attr("data-width") || this._core.settings.videoWidth,
3264            height =
3265                target.attr("data-height") || this._core.settings.videoHeight,
3266            url = target.attr("href");
3267
3268        if (url) {
3269            /*
3270					Parses the id's out of the following urls (and probably more):
3271					https://www.youtube.com/watch?v=:id
3272					https://youtu.be/:id
3273					https://vimeo.com/:id
3274					https://vimeo.com/channels/:channel/:id
3275					https://vimeo.com/groups/:group/videos/:id
3276					https://app.vzaar.com/videos/:id
3277
3278					Visual example: https://regexper.com/#(http%3A%7Chttps%3A%7C)%5C%2F%5C%2F(player.%7Cwww.%7Capp.)%3F(vimeo%5C.com%7Cyoutu(be%5C.com%7C%5C.be%7Cbe%5C.googleapis%5C.com)%7Cvzaar%5C.com)%5C%2F(video%5C%2F%7Cvideos%5C%2F%7Cembed%5C%2F%7Cchannels%5C%2F.%2B%5C%2F%7Cgroups%5C%2F.%2B%5C%2F%7Cwatch%5C%3Fv%3D%7Cv%5C%2F)%3F(%5BA-Za-z0-9._%25-%5D*)(%5C%26%5CS%2B)%3F
3279			*/
3280
3281            id = url.match(
3282                /(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/
3283            );
3284
3285            if (id[3].indexOf("youtu") > -1) {
3286                type = "youtube";
3287            } else if (id[3].indexOf("vimeo") > -1) {
3288                type = "vimeo";
3289            } else if (id[3].indexOf("vzaar") > -1) {
3290                type = "vzaar";
3291            } else {
3292                throw new Error("Video URL not supported.");
3293            }
3294            id = id[6];
3295        } else {
3296            throw new Error("Missing video URL.");
3297        }
3298
3299        this._videos[url] = {
3300            type: type,
3301            id: id,
3302            width: width,
3303            height: height,
3304        };
3305
3306        item.attr("data-video", url);
3307
3308        this.thumbnail(target, this._videos[url]);
vendor: 14,696 bytes, lines 3309-3779
3309    };
3310
3311    /**
3312     * Creates video thumbnail.
3313     * @protected
3314     * @param {jq} target - The target containing the video data.
3315     * @param {Object} info - The video info object.
3316     * @see `fetch`
3317     */
3318    Video.prototype.thumbnail = function (target, video) {
3319        var tnLink,
3320            icon,
3321            path,
3322            dimensions =
3323                video.width && video.height
3324                    ? "width:" +
3325                      video.width +
3326                      "px;height:" +
3327                      video.height +
3328                      "px;"
3329                    : "",
3330            customTn = target.find("img"),
3331            srcType = "src",
3332            lazyClass = "",
3333            settings = this._core.settings,
3334            create = function (path) {
3335                icon = '<div class="owl-video-play-icon"></div>';
3336
3337                if (settings.lazyLoad) {
3338                    tnLink = jq("<div/>", {
3339                        class: "owl-video-tn " + lazyClass,
3340                        srcType: path,
3341                    });
3342                } else {
3343                    tnLink = jq("<div/>", {
3344                        class: "owl-video-tn",
3345                        style: "opacity:1;background-image:url(" + path + ")",
3346                    });
3347                }
3348                target.after(tnLink);
3349                target.after(icon);
3350            };
3351
3352        // wrap video content into owl-video-wrapper div
3353        target.wrap(
3354            jq("<div/>", {
3355                class: "owl-video-wrapper",
3356                style: dimensions,
3357            })
3358        );
3359
3360        if (this._core.settings.lazyLoad) {
3361            srcType = "data-src";
3362            lazyClass = "owl-lazy";
3363        }
3364
3365        // custom thumbnail
3366        if (customTn.length) {
3367            create(customTn.attr(srcType));
3368            customTn.remove();
3369            return false;
3370        }
3371
3372        if (video.type === "youtube") {
3373            path = "//img.youtube.com/vi/" + video.id + "/hqdefault.jpg";
3374            create(path);
3375        } else if (video.type === "vimeo") {
3376            jq.ajax({
3377                type: "GET",
3378                url: "//vimeo.com/api/v2/video/" + video.id + ".json",
3379                jsonp: "callback",
3380                dataType: "jsonp",
3381                success: function (data) {
3382                    path = data[0].thumbnail_large;
3383                    create(path);
3384                },
3385            });
3386        } else if (video.type === "vzaar") {
3387            jq.ajax({
3388                type: "GET",
3389                url: "//vzaar.com/api/videos/" + video.id + ".json",
3390                jsonp: "callback",
3391                dataType: "jsonp",
3392                success: function (data) {
3393                    path = data.framegrab_url;
3394                    create(path);
3395                },
3396            });
3397        }
3398    };
3399
3400    /**
3401     * Stops the current video.
3402     * @public
3403     */
3404    Video.prototype.stop = function () {
3405        this._core.trigger("stop", null, "video");
3406        this._playing.find(".owl-video-frame").remove();
3407        this._playing.removeClass("owl-video-playing");
3408        this._playing = null;
3409        this._core.leave("playing");
3410        this._core.trigger("stopped", null, "video");
3411    };
3412
3413    /**
3414     * Starts the current video.
3415     * @public
3416     * @param {Event} event - The event arguments.
3417     */
3418    Video.prototype.play = function (event) {
3419        var target = jq(event.target),
3420            item = target.closest("." + this._core.settings.itemClass),
3421            video = this._videos[item.attr("data-video")],
3422            width = video.width || "100%",
3423            height = video.height || this._core.jqstage.height(),
3424            html,
3425            iframe;
3426
3427        if (this._playing) {
3428            return;
3429        }
3430
3431        this._core.enter("playing");
3432        this._core.trigger("play", null, "video");
3433
3434        item = this._core.items(this._core.relative(item.index()));
3435
3436        this._core.reset(item.index());
3437
3438        html = jq(
3439            '<iframe frameborder="0" allowfullscreen mozallowfullscreen webkitAllowFullScreen ></iframe>'
3440        );
3441        html.attr("height", height);
3442        html.attr("width", width);
3443        if (video.type === "youtube") {
3444            html.attr(
3445                "src",
3446                "//www.youtube.com/embed/" +
3447                    video.id +
3448                    "?autoplay=1&rel=0&v=" +
3449                    video.id
3450            );
3451        } else if (video.type === "vimeo") {
3452            html.attr(
3453                "src",
3454                "//player.vimeo.com/video/" + video.id + "?autoplay=1"
3455            );
3456        } else if (video.type === "vzaar") {
3457            html.attr(
3458                "src",
3459                "//view.vzaar.com/" + video.id + "/player?autoplay=true"
3460            );
3461        }
3462
3463        iframe = jq(html)
3464            .wrap('<div class="owl-video-frame" />')
3465            .insertAfter(item.find(".owl-video"));
3466
3467        this._playing = item.addClass("owl-video-playing");
3468    };
3469
3470    /**
3471     * Checks whether an video is currently in full screen mode or not.
3472     * @todo Bad style because looks like a readonly method but changes members.
3473     * @protected
3474     * @returns {Boolean}
3475     */
3476    Video.prototype.isInFullScreen = function () {
3477        var element =
3478            document.fullscreenElement ||
3479            document.mozFullScreenElement ||
3480            document.webkitFullscreenElement;
3481
3482        return element && jq(element).parent().hasClass("owl-video-frame");
3483    };
3484
3485    /**
3486     * Destroys the plugin.
3487     */
3488    Video.prototype.destroy = function () {
3489        var handler, property;
3490
3491        this._core.jqelement.off("click.owl.video");
3492
3493        for (handler in this._handlers) {
3494            this._core.jqelement.off(handler, this._handlers[handler]);
3495        }
3496        for (property in Object.getOwnPropertyNames(this)) {
3497            typeof this[property] != "function" && (this[property] = null);
3498        }
3499    };
3500
3501    jq.fn.owlCarousel.Constructor.Plugins.Video = Video;
3502})(window.Zepto || window.jq, window, document);
3503
3504/**
3505 * Animate Plugin
3506 * @version 2.3.4
3507 * @author Bartosz Wojciechowski
3508 * @author David Deutsch
3509 * @license The MIT License (MIT)
3510 */
3511(function (jq, window, document, undefined) {
3512    /**
3513     * Creates the animate plugin.
3514     * @class The Navigation Plugin
3515     * @param {Owl} scope - The Owl Carousel
3516     */
3517    var Animate = function (scope) {
3518        this.core = scope;
3519        this.core.options = jq.extend({}, Animate.Defaults, this.core.options);
3520        this.swapping = true;
3521        this.previous = undefined;
3522        this.next = undefined;
3523
3524        this.handlers = {
3525            "change.owl.carousel": jq.proxy(function (e) {
3526                if (e.namespace && e.property.name == "position") {
3527                    this.previous = this.core.current();
3528                    this.next = e.property.value;
3529                }
3530            }, this),
3531            "drag.owl.carousel dragged.owl.carousel translated.owl.carousel": jq.proxy(
3532                function (e) {
3533                    if (e.namespace) {
3534                        this.swapping = e.type == "translated";
3535                    }
3536                },
3537                this
3538            ),
3539            "translate.owl.carousel": jq.proxy(function (e) {
3540                if (
3541                    e.namespace &&
3542                    this.swapping &&
3543                    (this.core.options.animateOut ||
3544                        this.core.options.animateIn)
3545                ) {
3546                    this.swap();
3547                }
3548            }, this),
3549        };
3550
3551        this.core.jqelement.on(this.handlers);
3552    };
3553
3554    /**
3555     * Default options.
3556     * @public
3557     */
3558    Animate.Defaults = {
3559        animateOut: false,
3560        animateIn: false,
3561    };
3562
3563    /**
3564     * Toggles the animation classes whenever an translations starts.
3565     * @protected
3566     * @returns {Boolean|undefined}
3567     */
3568    Animate.prototype.swap = function () {
3569        if (this.core.settings.items !== 1) {
3570            return;
3571        }
3572
3573        if (!jq.support.animation || !jq.support.transition) {
3574            return;
3575        }
3576
3577        this.core.speed(0);
3578
3579        var left,
3580            clear = jq.proxy(this.clear, this),
3581            previous = this.core.jqstage.children().eq(this.previous),
3582            next = this.core.jqstage.children().eq(this.next),
3583            incoming = this.core.settings.animateIn,
3584            outgoing = this.core.settings.animateOut;
3585
3586        if (this.core.current() === this.previous) {
3587            return;
3588        }
3589
3590        if (outgoing) {
3591            left =
3592                this.core.coordinates(this.previous) -
3593                this.core.coordinates(this.next);
3594            previous
3595                .one(jq.support.animation.end, clear)
3596                .css({ left: left + "px" })
3597                .addClass("animated owl-animated-out")
3598                .addClass(outgoing);
3599        }
3600
3601        if (incoming) {
3602            next.one(jq.support.animation.end, clear)
3603                .addClass("animated owl-animated-in")
3604                .addClass(incoming);
3605        }
3606    };
3607
3608    Animate.prototype.clear = function (e) {
3609        jq(e.target)
3610            .css({ left: "" })
3611            .removeClass("animated owl-animated-out owl-animated-in")
3612            .removeClass(this.core.settings.animateIn)
3613            .removeClass(this.core.settings.animateOut);
3614        this.core.onTransitionEnd();
3615    };
3616
3617    /**
3618     * Destroys the plugin.
3619     * @public
3620     */
3621    Animate.prototype.destroy = function () {
3622        var handler, property;
3623
3624        for (handler in this.handlers) {
3625            this.core.jqelement.off(handler, this.handlers[handler]);
3626        }
3627        for (property in Object.getOwnPropertyNames(this)) {
3628            typeof this[property] != "function" && (this[property] = null);
3629        }
3630    };
3631
3632    jq.fn.owlCarousel.Constructor.Plugins.Animate = Animate;
3633})(window.Zepto || window.jq, window, document);
3634
3635/**
3636 * Autoplay Plugin
3637 * @version 2.3.4
3638 * @author Bartosz Wojciechowski
3639 * @author Artus Kolanowski
3640 * @author David Deutsch
3641 * @author Tom De Caluwé
3642 * @license The MIT License (MIT)
3643 */
3644(function (jq, window, document, undefined) {
3645    /**
3646     * Creates the autoplay plugin.
3647     * @class The Autoplay Plugin
3648     * @param {Owl} scope - The Owl Carousel
3649     */
3650    var Autoplay = function (carousel) {
3651        /**
3652         * Reference to the core.
3653         * @protected
3654         * @type {Owl}
3655         */
3656        this._core = carousel;
3657
3658        /**
3659         * The autoplay timeout id.
3660         * @type {Number}
3661         */
3662        this._call = null;
3663
3664        /**
3665         * Depending on the state of the plugin, this variable contains either
3666         * the start time of the timer or the current timer value if it's
3667         * paused. Since we start in a paused state we initialize the timer
3668         * value.
3669         * @type {Number}
3670         */
3671        this._time = 0;
3672
3673        /**
3674         * Stores the timeout currently used.
3675         * @type {Number}
3676         */
3677        this._timeout = 0;
3678
3679        /**
3680         * Indicates whenever the autoplay is paused.
3681         * @type {Boolean}
3682         */
3683        this._paused = true;
3684
3685        /**
3686         * All event handlers.
3687         * @protected
3688         * @type {Object}
3689         */
3690        this._handlers = {
3691            "changed.owl.carousel": jq.proxy(function (e) {
3692                if (e.namespace && e.property.name === "settings") {
3693                    if (this._core.settings.autoplay) {
3694                        this.play();
3695                    } else {
3696                        this.stop();
3697                    }
3698                } else if (
3699                    e.namespace &&
3700                    e.property.name === "position" &&
3701                    this._paused
3702                ) {
3703                    // Reset the timer. This code is triggered when the position
3704                    // of the carousel was changed through user interaction.
3705                    this._time = 0;
3706                }
3707            }, this),
3708            "initialized.owl.carousel": jq.proxy(function (e) {
3709                if (e.namespace && this._core.settings.autoplay) {
3710                    this.play();
3711                }
3712            }, this),
3713            "play.owl.autoplay": jq.proxy(function (e, t, s) {
3714                if (e.namespace) {
3715                    this.play(t, s);
3716                }
3717            }, this),
3718            "stop.owl.autoplay": jq.proxy(function (e) {
3719                if (e.namespace) {
3720                    this.stop();
3721                }
3722            }, this),
3723            "mouseover.owl.autoplay": jq.proxy(function () {
3724                if (
3725                    this._core.settings.autoplayHoverPause &&
3726                    this._core.is("rotating")
3727                ) {
3728                    this.pause();
3729                }
3730            }, this),
3731            "mouseleave.owl.autoplay": jq.proxy(function () {
3732                if (
3733                    this._core.settings.autoplayHoverPause &&
3734                    this._core.is("rotating")
3735                ) {
3736                    this.play();
3737                }
3738            }, this),
3739            "touchstart.owl.core": jq.proxy(function () {
3740                if (
3741                    this._core.settings.autoplayHoverPause &&
3742                    this._core.is("rotating")
3743                ) {
3744                    this.pause();
3745                }
3746            }, this),
3747            "touchend.owl.core": jq.proxy(function () {
3748                if (this._core.settings.autoplayHoverPause) {
3749                    this.play();
3750                }
3751            }, this),
3752        };
3753
3754        // register event handlers
3755        this._core.jqelement.on(this._handlers);
3756
3757        // set default options
3758        this._core.options = jq.extend(
3759            {},
3760            Autoplay.Defaults,
3761            this._core.options
3762        );
3763    };
3764
3765    /**
3766     * Default options.
3767     * @public
3768     */
3769    Autoplay.Defaults = {
3770        autoplay: false,
3771        autoplayTimeout: 5000,
3772        autoplayHoverPause: false,
3773        autoplaySpeed: false,
3774    };
3775
3776    /**
3777     * Transition to the next slide and set a timeout for the next transition.
3778     * @private
3779     * @param {Number}
vendor: 18,002 bytes, lines 3779-4347
3779 [speed] - The animation speed for the animations.
3780     */
3781    Autoplay.prototype._next = function (speed) {
3782        this._call = window.setTimeout(
3783            jq.proxy(this._next, this, speed),
3784            this._timeout * (Math.round(this.read() / this._timeout) + 1) -
3785                this.read()
3786        );
3787
3788        if (this._core.is("interacting") || document.hidden) {
3789            return;
3790        }
3791        this._core.next(speed || this._core.settings.autoplaySpeed);
3792    };
3793
3794    /**
3795     * Reads the current timer value when the timer is playing.
3796     * @public
3797     */
3798    Autoplay.prototype.read = function () {
3799        return new Date().getTime() - this._time;
3800    };
3801
3802    /**
3803     * Starts the autoplay.
3804     * @public
3805     * @param {Number} [timeout] - The interval before the next animation starts.
3806     * @param {Number} [speed] - The animation speed for the animations.
3807     */
3808    Autoplay.prototype.play = function (timeout, speed) {
3809        var elapsed;
3810
3811        if (!this._core.is("rotating")) {
3812            this._core.enter("rotating");
3813        }
3814
3815        timeout = timeout || this._core.settings.autoplayTimeout;
3816
3817        // Calculate the elapsed time since the last transition. If the carousel
3818        // wasn't playing this calculation will yield zero.
3819        elapsed = Math.min(this._time % (this._timeout || timeout), timeout);
3820
3821        if (this._paused) {
3822            // Start the clock.
3823            this._time = this.read();
3824            this._paused = false;
3825        } else {
3826            // Clear the active timeout to allow replacement.
3827            window.clearTimeout(this._call);
3828        }
3829
3830        // Adjust the origin of the timer to match the new timeout value.
3831        this._time += (this.read() % timeout) - elapsed;
3832
3833        this._timeout = timeout;
3834        this._call = window.setTimeout(
3835            jq.proxy(this._next, this, speed),
3836            timeout - elapsed
3837        );
3838    };
3839
3840    /**
3841     * Stops the autoplay.
3842     * @public
3843     */
3844    Autoplay.prototype.stop = function () {
3845        if (this._core.is("rotating")) {
3846            // Reset the clock.
3847            this._time = 0;
3848            this._paused = true;
3849
3850            window.clearTimeout(this._call);
3851            this._core.leave("rotating");
3852        }
3853    };
3854
3855    /**
3856     * Pauses the autoplay.
3857     * @public
3858     */
3859    Autoplay.prototype.pause = function () {
3860        if (this._core.is("rotating") && !this._paused) {
3861            // Pause the clock.
3862            this._time = this.read();
3863            this._paused = true;
3864
3865            window.clearTimeout(this._call);
3866        }
3867    };
3868
3869    /**
3870     * Destroys the plugin.
3871     */
3872    Autoplay.prototype.destroy = function () {
3873        var handler, property;
3874
3875        this.stop();
3876
3877        for (handler in this._handlers) {
3878            this._core.jqelement.off(handler, this._handlers[handler]);
3879        }
3880        for (property in Object.getOwnPropertyNames(this)) {
3881            typeof this[property] != "function" && (this[property] = null);
3882        }
3883    };
3884
3885    jq.fn.owlCarousel.Constructor.Plugins.autoplay = Autoplay;
3886})(window.Zepto || window.jq, window, document);
3887
3888/**
3889 * Navigation Plugin
3890 * @version 2.3.4
3891 * @author Artus Kolanowski
3892 * @author David Deutsch
3893 * @license The MIT License (MIT)
3894 */
3895(function (jq, window, document, undefined) {
3896    "use strict";
3897
3898    /**
3899     * Creates the navigation plugin.
3900     * @class The Navigation Plugin
3901     * @param {Owl} carousel - The Owl Carousel.
3902     */
3903    var Navigation = function (carousel) {
3904        /**
3905         * Reference to the core.
3906         * @protected
3907         * @type {Owl}
3908         */
3909        this._core = carousel;
3910
3911        /**
3912         * Indicates whether the plugin is initialized or not.
3913         * @protected
3914         * @type {Boolean}
3915         */
3916        this._initialized = false;
3917
3918        /**
3919         * The current paging indexes.
3920         * @protected
3921         * @type {Array}
3922         */
3923        this._pages = [];
3924
3925        /**
3926         * All DOM elements of the user interface.
3927         * @protected
3928         * @type {Object}
3929         */
3930        this._controls = {};
3931
3932        /**
3933         * Markup for an indicator.
3934         * @protected
3935         * @type {Array.<String>}
3936         */
3937        this._templates = [];
3938
3939        /**
3940         * The carousel element.
3941         * @type {jq}
3942         */
3943        this.jqelement = this._core.jqelement;
3944
3945        /**
3946         * Overridden methods of the carousel.
3947         * @protected
3948         * @type {Object}
3949         */
3950        this._overrides = {
3951            next: this._core.next,
3952            prev: this._core.prev,
3953            to: this._core.to,
3954        };
3955
3956        /**
3957         * All event handlers.
3958         * @protected
3959         * @type {Object}
3960         */
3961        this._handlers = {
3962            "prepared.owl.carousel": jq.proxy(function (e) {
3963                if (e.namespace && this._core.settings.dotsData) {
3964                    this._templates.push(
3965                        '<div class="' +
3966                            this._core.settings.dotClass +
3967                            '">' +
3968                            jq(e.content)
3969                                .find("[data-dot]")
3970                                .addBack("[data-dot]")
3971                                .attr("data-dot") +
3972                            "</div>"
3973                    );
3974                }
3975            }, this),
3976            "added.owl.carousel": jq.proxy(function (e) {
3977                if (e.namespace && this._core.settings.dotsData) {
3978                    this._templates.splice(
3979                        e.position,
3980                        0,
3981                        this._templates.pop()
3982                    );
3983                }
3984            }, this),
3985            "remove.owl.carousel": jq.proxy(function (e) {
3986                if (e.namespace && this._core.settings.dotsData) {
3987                    this._templates.splice(e.position, 1);
3988                }
3989            }, this),
3990            "changed.owl.carousel": jq.proxy(function (e) {
3991                if (e.namespace && e.property.name == "position") {
3992                    this.draw();
3993                }
3994            }, this),
3995            "initialized.owl.carousel": jq.proxy(function (e) {
3996                if (e.namespace && !this._initialized) {
3997                    this._core.trigger("initialize", null, "navigation");
3998                    this.initialize();
3999                    this.update();
4000                    this.draw();
4001                    this._initialized = true;
4002                    this._core.trigger("initialized", null, "navigation");
4003                }
4004            }, this),
4005            "refreshed.owl.carousel": jq.proxy(function (e) {
4006                if (e.namespace && this._initialized) {
4007                    this._core.trigger("refresh", null, "navigation");
4008                    this.update();
4009                    this.draw();
4010                    this._core.trigger("refreshed", null, "navigation");
4011                }
4012            }, this),
4013        };
4014
4015        // set default options
4016        this._core.options = jq.extend(
4017            {},
4018            Navigation.Defaults,
4019            this._core.options
4020        );
4021
4022        // register event handlers
4023        this.jqelement.on(this._handlers);
4024    };
4025
4026    /**
4027     * Default options.
4028     * @public
4029     * @todo Rename `slideBy` to `navBy`
4030     */
4031    Navigation.Defaults = {
4032        nav: false,
4033        navText: [
4034            '<span aria-label="Previous"><i class="xi-angle-left" aria-hidden="true"></i></span>',
4035            '<span aria-label="Next"><i class="xi-angle-right" aria-hidden="true"></i></span>',
4036        ],
4037        navSpeed: false,
4038        navElement: 'button type="button" role="presentation"',
4039        navContainer: false,
4040        navContainerClass: "owl-nav",
4041        navClass: ["owl-prev", "owl-next"],
4042        slideBy: 1,
4043        dotClass: "owl-dot",
4044        dotsClass: "owl-dots",
4045        dots: true,
4046        dotsEach: false,
4047        dotsData: false,
4048        dotsSpeed: false,
4049        dotsContainer: false,
4050    };
4051
4052    /**
4053     * Initializes the layout of the plugin and extends the carousel.
4054     * @protected
4055     */
4056    Navigation.prototype.initialize = function () {
4057        var override,
4058            settings = this._core.settings;
4059
4060        // create DOM structure for relative navigation
4061        this._controls.jqrelative = (settings.navContainer
4062            ? jq(settings.navContainer)
4063            : jq("<div>")
4064                  .addClass(settings.navContainerClass)
4065                  .appendTo(this.jqelement)
4066        ).addClass("disabled");
4067
4068        this._controls.jqprevious = jq("<" + settings.navElement + ">")
4069            .addClass(settings.navClass[0])
4070            .html(settings.navText[0])
4071            .prependTo(this._controls.jqrelative)
4072            .on(
4073                "click",
4074                jq.proxy(function (e) {
4075                    this.prev(settings.navSpeed);
4076                }, this)
4077            );
4078        this._controls.jqnext = jq("<" + settings.navElement + ">")
4079            .addClass(settings.navClass[1])
4080            .html(settings.navText[1])
4081            .appendTo(this._controls.jqrelative)
4082            .on(
4083                "click",
4084                jq.proxy(function (e) {
4085                    this.next(settings.navSpeed);
4086                }, this)
4087            );
4088
4089        // create DOM structure for absolute navigation
4090        if (!settings.dotsData) {
4091            this._templates = [
4092                jq('<button role="button">')
4093                    .addClass(settings.dotClass)
4094                    .append(jq("<span>"))
4095                    .prop("outerHTML"),
4096            ];
4097        }
4098
4099        this._controls.jqabsolute = (settings.dotsContainer
4100            ? jq(settings.dotsContainer)
4101            : jq("<div>").addClass(settings.dotsClass).appendTo(this.jqelement)
4102        ).addClass("disabled");
4103
4104        this._controls.jqabsolute.on(
4105            "click",
4106            "button",
4107            jq.proxy(function (e) {
4108                var index = jq(e.target).parent().is(this._controls.jqabsolute)
4109                    ? jq(e.target).index()
4110                    : jq(e.target).parent().index();
4111
4112                e.preventDefault();
4113
4114                this.to(index, settings.dotsSpeed);
4115            }, this)
4116        );
4117
4118        /*jqel.on('focusin', function() {
4119			jq(document).off(".carousel");
4120
4121			jq(document).on('keydown.carousel', function(e) {
4122				if(e.keyCode == 37) {
4123					jqel.trigger('prev.owl')
4124				}
4125				if(e.keyCode == 39) {
4126					jqel.trigger('next.owl')
4127				}
4128			});
4129		});*/
4130
4131        // override public methods of the carousel
4132        for (override in this._overrides) {
4133            this._core[override] = jq.proxy(this[override], this);
4134        }
4135    };
4136
4137    /**
4138     * Destroys the plugin.
4139     * @protected
4140     */
4141    Navigation.prototype.destroy = function () {
4142        var handler, control, property, override, settings;
4143        settings = this._core.settings;
4144
4145        for (handler in this._handlers) {
4146            this.jqelement.off(handler, this._handlers[handler]);
4147        }
4148        for (control in this._controls) {
4149            if (control === "jqrelative" && settings.navContainer) {
4150                this._controls[control].html("");
4151            } else {
4152                this._controls[control].remove();
4153            }
4154        }
4155        for (override in this.overides) {
4156            this._core[override] = this._overrides[override];
4157        }
4158        for (property in Object.getOwnPropertyNames(this)) {
4159            typeof this[property] != "function" && (this[property] = null);
4160        }
4161    };
4162
4163    /**
4164     * Updates the internal state.
4165     * @protected
4166     */
4167    Navigation.prototype.update = function () {
4168        var i,
4169            j,
4170            k,
4171            lower = this._core.clones().length / 2,
4172            upper = lower + this._core.items().length,
4173            maximum = this._core.maximum(true),
4174            settings = this._core.settings,
4175            size =
4176                settings.center || settings.autoWidth || settings.dotsData
4177                    ? 1
4178                    : settings.dotsEach || settings.items;
4179
4180        if (settings.slideBy !== "page") {
4181            settings.slideBy = Math.min(settings.slideBy, settings.items);
4182        }
4183
4184        if (settings.dots || settings.slideBy == "page") {
4185            this._pages = [];
4186
4187            for (i = lower, j = 0, k = 0; i < upper; i++) {
4188                if (j >= size || j === 0) {
4189                    this._pages.push({
4190                        start: Math.min(maximum, i - lower),
4191                        end: i - lower + size - 1,
4192                    });
4193                    if (Math.min(maximum, i - lower) === maximum) {
4194                        break;
4195                    }
4196                    (j = 0), ++k;
4197                }
4198                j += this._core.mergers(this._core.relative(i));
4199            }
4200        }
4201    };
4202
4203    /**
4204     * Draws the user interface.
4205     * @todo The option `dotsData` wont work.
4206     * @protected
4207     */
4208    Navigation.prototype.draw = function () {
4209        var difference,
4210            settings = this._core.settings,
4211            disabled = this._core.items().length <= settings.items,
4212            index = this._core.relative(this._core.current()),
4213            loop = settings.loop || settings.rewind;
4214
4215        this._controls.jqrelative.toggleClass(
4216            "disabled",
4217            !settings.nav || disabled
4218        );
4219
4220        if (settings.nav) {
4221            this._controls.jqprevious.toggleClass(
4222                "disabled",
4223                !loop && index <= this._core.minimum(true)
4224            );
4225            this._controls.jqnext.toggleClass(
4226                "disabled",
4227                !loop && index >= this._core.maximum(true)
4228            );
4229        }
4230
4231        this._controls.jqabsolute.toggleClass(
4232            "disabled",
4233            !settings.dots || disabled
4234        );
4235
4236        if (settings.dots) {
4237            difference =
4238                this._pages.length -
4239                this._controls.jqabsolute.children().length;
4240
4241            if (settings.dotsData && difference !== 0) {
4242                this._controls.jqabsolute.html(this._templates.join(""));
4243            } else if (difference > 0) {
4244                this._controls.jqabsolute.append(
4245                    new Array(difference + 1).join(this._templates[0])
4246                );
4247            } else if (difference < 0) {
4248                this._controls.jqabsolute.children().slice(difference).remove();
4249            }
4250
4251            this._controls.jqabsolute.find(".active").removeClass("active");
4252            this._controls.jqabsolute
4253                .children()
4254                .eq(jq.inArray(this.current(), this._pages))
4255                .addClass("active");
4256        }
4257    };
4258
4259    /**
4260     * Extends event data.
4261     * @protected
4262     * @param {Event} event - The event object which gets thrown.
4263     */
4264    Navigation.prototype.onTrigger = function (event) {
4265        var settings = this._core.settings;
4266
4267        event.page = {
4268            index: jq.inArray(this.current(), this._pages),
4269            count: this._pages.length,
4270            size:
4271                settings &&
4272                (settings.center || settings.autoWidth || settings.dotsData
4273                    ? 1
4274                    : settings.dotsEach || settings.items),
4275        };
4276    };
4277
4278    /**
4279     * Gets the current page position of the carousel.
4280     * @protected
4281     * @returns {Number}
4282     */
4283    Navigation.prototype.current = function () {
4284        var current = this._core.relative(this._core.current());
4285        return jq
4286            .grep(
4287                this._pages,
4288                jq.proxy(function (page, index) {
4289                    return page.start <= current && page.end >= current;
4290                }, this)
4291            )
4292            .pop();
4293    };
4294
4295    /**
4296     * Gets the current succesor/predecessor position.
4297     * @protected
4298     * @returns {Number}
4299     */
4300    Navigation.prototype.getPosition = function (successor) {
4301        var position,
4302            length,
4303            settings = this._core.settings;
4304
4305        if (settings.slideBy == "page") {
4306            position = jq.inArray(this.current(), this._pages);
4307            length = this._pages.length;
4308            successor ? ++position : --position;
4309            position = this._pages[((position % length) + length) % length]
4310                .start;
4311        } else {
4312            position = this._core.relative(this._core.current());
4313            length = this._core.items().length;
4314            successor
4315                ? (position += settings.slideBy)
4316                : (position -= settings.slideBy);
4317        }
4318
4319        return position;
4320    };
4321
4322    /**
4323     * Slides to the next item or page.
4324     * @public
4325     * @param {Number} [speed=false] - The time in milliseconds for the transition.
4326     */
4327    Navigation.prototype.next = function (speed) {
4328        jq.proxy(this._overrides.to, this._core)(this.getPosition(true), speed);
4329    };
4330
4331    /**
4332     * Slides to the previous item or page.
4333     * @public
4334     * @param {Number} [speed=false] - The time in milliseconds for the transition.
4335     */
4336    Navigation.prototype.prev = function (speed) {
4337        jq.proxy(this._overrides.to, this._core)(
4338            this.getPosition(false),
4339            speed
4340        );
4341    };
4342
4343    /**
4344     * Slides to the specified item or page.
4345     * @public
4346     * @param {Number} position - The position of the item or page.
4347     * @param {Number}
4347 [speed] - The time in milliseconds for the transition.
4348     * @param {Boolean} [standard=false] - Whether to use the standard behaviour or not.
4349     */
4350    Navigation.prototype.to = function (position, speed, standard) {
4351        var length;
4352
4353        if (!standard && this._pages.length) {
4354            length = this._pages.length;
4355            jq.proxy(this._overrides.to, this._core)(
4356                this._pages[((position % length) + length) % length].start,
4357                speed
4358            );
4359        } else {
4360            jq.proxy(this._overrides.to, this._core)(position, speed);
4361        }
4362    };
4363
4364    jq.fn.owlCarousel.Constructor.Plugins.Navigation = Navigation;
4365})(window.Zepto || window.jq, window, document);
4366
4367/**
4368 * Hash Plugin
4369 * @version 2.3.4
4370 * @author Artus Kolanowski
4371 * @author David Deutsch
4372 * @license The MIT License (MIT)
4373 */
4374(function (jq, window, document, undefined) {
4375    "use strict";
4376
4377    /**
4378     * Creates the hash plugin.
4379     * @class The Hash Plugin
4380     * @param {Owl} carousel - The Owl Carousel
4381     */
4382    var Hash = function (carousel) {
4383        /**
4384         * Reference to the core.
4385         * @protected
4386         * @type {Owl}
4387         */
4388        this._core = carousel;
4389
4390        /**
4391         * Hash index for the items.
4392         * @protected
4393         * @type {Object}
4394         */
4395        this._hashes = {};
4396
4397        /**
4398         * The carousel element.
4399         * @type {jq}
4400         */
4401        this.jqelement = this._core.jqelement;
4402
4403        /**
4404         * All event handlers.
4405         * @protected
4406         * @type {Object}
4407         */
4408        this._handlers = {
4409            "initialized.owl.carousel": jq.proxy(function (e) {
4410                if (
4411                    e.namespace &&
4412                    this._core.settings.startPosition === "URLHash"
4413                ) {
4414                    jq(window).trigger("hashchange.owl.navigation");
4415                }
4416            }, this),
4417            "prepared.owl.carousel": jq.proxy(function (e) {
4418                if (e.namespace) {
4419                    var hash = jq(e.content)
4420                        .find("[data-hash]")
4421                        .addBack("[data-hash]")
4422                        .attr("data-hash");
4423
4424                    if (!hash) {
4425                        return;
4426                    }
4427
4428                    this._hashes[hash] = e.content;
4429                }
4430            }, this),
4431            "changed.owl.carousel": jq.proxy(function (e) {
4432                if (e.namespace && e.property.name === "position") {
4433                    var current = this._core.items(
4434                            this._core.relative(this._core.current())
4435                        ),
4436                        hash = jq
4437                            .map(this._hashes, function (item, hash) {
4438                                return item === current ? hash : null;
4439                            })
4440                            .join();
4441
4442                    if (!hash || window.location.hash.slice(1) === hash) {
4443                        return;
4444                    }
4445
4446                    window.location.hash = hash;
4447                }
4448            }, this),
4449        };
4450
4451        // set default options
4452        this._core.options = jq.extend({}, Hash.Defaults, this._core.options);
4453
4454        // register the event handlers
4455        this.jqelement.on(this._handlers);
4456
4457        // register event listener for hash navigation
4458        jq(window).on(
4459            "hashchange.owl.navigation",
4460            jq.proxy(function (e) {
4461                var hash = window.location.hash.substring(1),
4462                    items = this._core.jqstage.children(),
4463                    position =
4464                        this._hashes[hash] && items.index(this._hashes[hash]);
4465
4466                if (
4467                    position === undefined ||
4468                    position === this._core.current()
4469                ) {
4470                    return;
4471                }
4472
4473                this._core.to(this._core.relative(position), false, true);
4474            }, this)
4475        );
4476    };
4477
4478    /**
4479     * Default options.
4480     * @public
4481     */
4482    Hash.Defaults = {
4483        URLhashListener: false,
4484    };
4485
4486    /**
4487     * Destroys the plugin.
4488     * @public
4489     */
4490    Hash.prototype.destroy = function () {
4491        var handler, property;
4492
4493        jq(window).off("hashchange.owl.navigation");
4494
4495        for (handler in this._handlers) {
4496            this._core.jqelement.off(handler, this._handlers[handler]);
4497        }
4498        for (property in Object.getOwnPropertyNames(this)) {
4499            typeof this[property] != "function" && (this[property] = null);
4500        }
4501    };
4502
4503    jq.fn.owlCarousel.Constructor.Plugins.Hash = Hash;
4504})(window.Zepto || window.jq, window, document);
4505
4506/**
4507 * Support Plugin
4508 *
4509 * @version 2.3.4
4510 * @author Vivid Planet Software GmbH
4511 * @author Artus Kolanowski
4512 * @author David Deutsch
4513 * @license The MIT License (MIT)
4514 */
4515(function (jq, window, document, undefined) {
4516    var style = jq("<support>").get(0).style,
4517        prefixes = "Webkit Moz O ms".split(" "),
4518        events = {
4519            transition: {
4520                end: {
4521                    WebkitTransition: "webkitTransitionEnd",
4522                    MozTransition: "transitionend",
4523                    OTransition: "oTransitionEnd",
4524                    transition: "transitionend",
4525                },
4526            },
4527            animation: {
4528                end: {
4529                    WebkitAnimation: "webkitAnimationEnd",
4530                    MozAnimation: "animationend",
4531                    OAnimation: "oAnimationEnd",
4532                    animation: "animationend",
4533                },
4534            },
4535        },
4536        tests = {
4537            csstransforms: function () {
4538                return !!test("transform");
4539            },
4540            csstransforms3d: function () {
4541                return !!test("perspective");
4542            },
4543            csstransitions: function () {
4544                return !!test("transition");
4545            },
4546            cssanimations: function () {
4547                return !!test("animation");
4548            },
4549        };
4550
4551    function test(property, prefixed) {
4552        var result = false,
4553            upper = property.charAt(0).toUpperCase() + property.slice(1);
4554
4555        jq.each(
4556            (property + " " + prefixes.join(upper + " ") + upper).split(" "),
4557            function (i, property) {
4558                if (style[property] !== undefined) {
4559                    result = prefixed ? property : true;
4560                    return false;
4561                }
4562            }
4563        );
4564
4565        return result;
4566    }
4567
4568    function prefixed(property) {
4569        return test(property, true);
4570    }
4571
4572    if (tests.csstransitions()) {
4573        /* jshint -W053 */
4574        jq.support.transition = new String(prefixed("transition"));
4575        jq.support.transition.end =
4576            events.transition.end[jq.support.transition];
4577    }
4578
4579    if (tests.cssanimations()) {
4580        /* jshint -W053 */
4581        jq.support.animation = new String(prefixed("animation"));
4582        jq.support.animation.end = events.animation.end[jq.support.animation];
4583    }
4584
4585    if (tests.csstransforms()) {
4586        /* jshint -W053 */
4587        jq.support.transform = new String(prefixed("transform"));
4588        jq.support.transform3d = tests.csstransforms3d();
4589    }
4590})(window.Zepto || window.jq, window, document);
4591
4592$(document).ready(function(){
4593    if (typeof(EC_SHOP_MULTISHOP_SHIPPING) != "undefined") {
4594        var sShippingCountryCode4Cookie = 'shippingCountryCode';
4595        var bShippingCountryProc = false;
4596
4597        // 배송국가 선택 설정이 사용안함이면 숨김
4598        if (EC_SHOP_MULTISHOP_SHIPPING.bMultishopShippingCountrySelection === false) {
4599            $('.xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist').hide();
4600            $('.xans-layout-multishoplist .xans-layout-multishoplistmultioption .xans-layout-multishoplistmultioptioncountry').hide();
4601        } else {
4602            $('.thumb .xans-layout-multishoplistitem').hide();
4603            var aShippingCountryCode = document.cookie.match('(^|;) ?'+sShippingCountryCode4Cookie+'=([^;]*)(;|$)');
4604            if (typeof(aShippingCountryCode) != 'undefined' && aS
4604hippingCountryCode != null && aShippingCountryCode.length > 2) {
4605                var sShippingCountryValue = aShippingCountryCode[2];
4606            }
4607
4608            // query string으로 넘어 온 배송국가 값이 있다면, 그 값을 적용함
4609            var aHrefCountryValue = decodeURIComponent(location.href).split("/?country=");
4610
4611            if (aHrefCountryValue.length == 2) {
4612                var sShippingCountryValue = aHrefCountryValue[1];
4613            }
4614
4615            // 메인 페이지에서 국가선택을 안한 경우, 그 외의 페이지에서 셋팅된 값이 안 나오는 현상 처리
4616            if (location.href.split("/").length != 4 && $(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val()) {
4617                $(".xans-layout-multishoplist .xans-layout-multishoplistmultioption a .ship span").text(" : "+$(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist option:selected").text().split("SHIPPING TO : ").join(""));
4618
4619                if ($("#f_country").length > 0 && location.href.indexOf("orderform.html") > -1) {
4620                    $("#f_country").val($(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val());
4621                }
4622            }
4623            if (typeof(sShippingCountryValue) != "undefined" && sShippingCountryValue != "" && sShippingCountryValue != null) {
4624                sShippingCountryValue = sShippingCountryValue.split("#")[0];
4625                var bShippingCountryProc = true;
4626
4627                $(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val(sShippingCountryValue);
4628                $(".xans-layout-multishoplist .xans-layout-multishoplistmultioption a .ship span").text(" : "+$(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist option:selected").text().split("SHIPPING TO : ").join(""));
4629                var expires = new Date();
4630                expires.setTime(expires.getTime() + (30 * 24 * 60 * 60 * 1000)); // 30일간 쿠키 유지
4631                document.cookie = sShippingCountryCode4Cookie+'=' + $(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val() +';path=/'+ ';expires=' + expires.toUTCString();
4632                if ($("#f_country").length > 0 && location.href.indexOf("orderform.html") > -1) {
4633                    $("#f_country").val(sShippingCountryValue).change();;
4634                }
4635            }
4636        }
4637        // 언어선택 설정이 사용안함이면 숨김
4638        if (EC_SHOP_MULTISHOP_SHIPPING.bMultishopShippingLanguageSelection === false) {
4639            $('.xans-layout-multishopshipping .xans-layout-multishopshippinglanguagelist').hide();
4640            $('.xans-layout-multishoplist .xans-layout-multishoplistmultioption .xans-layout-multishoplistmultioptionlanguage').hide();
4641        } else {
4642            $('.thumb .xans-layout-multishoplistitem').hide();
4643        }
4644
4645        // 배송국가 및 언어 설정이 둘 다 사용안함이면 숨김
4646        if (EC_SHOP_MULTISHOP_SHIPPING.bMultishopShipping === false) {
4647            $(".xans-layout-multishopshipping").hide();
4648            $('.xans-layout-multishoplist .xans-layout-multishoplistmultioption').hide();
4649        } else if (bShippingCountryProc === false && location.href.split("/").length == 4) { // 배송국가 값을 처리한 적이 없고, 메인화면일 때만 선택 레이어를 띄움
4650            var sShippingCountryValue = $(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val();
4651            $(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val(sShippingCountryValue);
4652            $(".xans-layout-multishoplist .xans-layout-multishoplistmultioption a .ship span").text(" : "+$(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist option:selected").text().split("SHIPPING TO : ").join(""));
4653            // 배송국가 선택을 사용해야 레이어를 보이게 함
4654            if (EC_SHOP_MULTISHOP_SHIPPING.bMultishopShippingCountrySelection === true) {
4655                $(".xans-layout-multishopshipping").show();
4656            }
4657        }
4658
4659        $(".xans-layout-multishopshipping .close").bind("click", function() {
4660            $(".xans-layout-multishopshipping").hide();
4661        });
4662
4663        $(".xans-layout-multishopshipping .ec-base-button a").bind("click", function() {
4664            var expires = new Date();
4665            expires.setTime(expires.getTime() + (30 * 24 * 60 * 60 * 1000)); // 30일간 쿠키 유지
4666            document.cookie = sShippingCountryCode4Cookie+'=' + $(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val() +';path=/'+ ';expires=' + expires.toUTCString();
4667
4668            // 도메인 문제로 쿠키로 배송국가 설정이 안 되는 경우를 위해 query string으로 배송국가 값
4668을 넘김
4669            var sQuerySting = (EC_SHOP_MULTISHOP_SHIPPING.bMultishopShippingCountrySelection === false) ? "" : "/?country="+encodeURIComponent($(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val());
4670
4671            location.href = '//'+$(".xans-layout-multishopshipping .xans-layout-multishopshippinglanguagelist").val()+sQuerySting;
4672        });
4673        $(".xans-layout-multishoplist .xans-layout-multishoplistmultioption a").bind("click", function() {
4674            $(".xans-layout-multishopshipping").show();
4675        });
4676    }
4677});
4678$(function(){
4679
4680    var urlParams = new URLSearchParams(location.search);
4681	var cate_no = urlParams.get('cate_no');
4682    var pathname = location.pathname;
4683
4684    if(pathname.indexOf('shop.html') != -1 || (pathname.indexOf('product/list.html') != -1 && cate_no != '2042') || pathname.indexOf('product/detail.html') != -1){
4685        $('#header .depth-1 li:nth-child(1) a').addClass('cur');   
4686    } else if(pathname.indexOf('hksell') != -1 || (pathname.indexOf('hksell-1.html') != -1 && cate_no == '2042')  || pathname.indexOf('list_sell.html') != -1 ||  pathname.indexOf('detail_sell.html') != -1){
4687        $('#header .depth-1 li:nth-child(3) a').addClass('cur');   
4688    } else if(pathname.indexOf('list_pick') != -1 || pathname.indexOf('support') != -1){
4689        $('#header .depth-1 li:nth-child(5) a').addClass('cur');   
4690    } else if(pathname.indexOf('rental') != -1 || pathname.indexOf('rent.html') != -1){
4691        $('#header .depth-1 li:nth-child(2) a').addClass('cur');   
4692
4693    }
4694    
4695    /*
4696    $('.btn-shop').click(function(){
4697        $('#main_cate').toggleClass('show');
4698    });*/
4699    
4700    $('#header .btn-search').click(function(){
4701        $('.search-modal').fadeIn();
4702    });
4703    
4704    $('.search-modal .btn-close').click(function(){
4705        $('.search-modal').fadeOut();
4706    });
4707    
4708    $('#header .btn-menu').click(function(){
4709        $(this).toggleClass('active').siblings('.all-menu, .menu-overlay').fadeToggle();
4710    });
4711    
4712    $('.menu-overlay').click(function(){
4713        $('.all-menu, .menu-overlay').fadeOut();
4714        $('#header .btn-menu').removeClass('active');
4715    });
4716    
4717    $('.all-menu .col-1 li a').mouseover(function(){
4718        $('.all-menu .col-1 li a').not(this).removeClass('active');
4719        $(this).addClass('active');
4720        const depth = $(this).data('depth');
4721        $('.all-menu .depth-2, .all-menu .depth-3, .all-menu .brand-slide-wrap').removeClass('active');
4722        $(`.all-menu .brand-slide-wrap[data-depth=${depth}]`).addClass('active');
4723        $(`.all-menu .depth-2[data-depth2=${depth}]`).addClass('active').find('a').removeClass('active');
4724    });
4725    
4726      $('.all-menu .depth-2 a').mouseover(function(){
4727        $('.all-menu .depth-2 a').not(this).removeClass('active');
4728        $(this).addClass('active');
4729        const depth = $(this).data('depth');
4730        $('.all-menu .depth-3').removeClass('active');
4731        $(`.all-menu .depth-3[data-depth=${depth}]`).addClass('active').find('a').removeClass('active');
4732    });
4733    
4734     setTimeout(() => {
4735             $('.all-menu .brand-slide-wrap').each(function (index, item) {
4736                let $wrap = $(this);
4737                let $wrapper = $(this).find('.swiper-wrapper');
4738                let $items = $wrap.find('.banner-item');
4739
4740                if ($items.length > 0) {
4741                    $wrapper.empty();
4742
4743                    let chunkSize = 12;
4744                    for (let i = 0; i < $items.length; i += chunkSize) {
4745                        let $chunk = $items.slice(i, i + chunkSize);
4746
4747                        let $slide = $('<div class="swiper-slide"></div>');
4748
4749                        $chunk.appendTo($slide);
4750
4751                        $wrapper.append($slide);
4752                    }
4753                }
4754                 var $this = $(this);
4755                $this.addClass('instance-' + index);
4756                new Swiper('.instance-' + index+' .brand-slide', {
4757                    slidesPerView: 1,
4758                    loop:false,
4759                     observer: true,
4760                      observeParents: true,
4761                      pagination: {
4762                        el:`.instance-${index} .brand-pagination`,
4763                        type: "fraction",
4764                      },
4765                    navigation: {
4766                        nextEl: `.instance-${index} .brand-slide-next`,
4767                        prevEl: `.instance-${index} .brand-slide-prev`,
4768                    },
4769                   speed: 900,
4770                  });
4771            });
4772
4773         
4774            
4775            
4776     },500);
4777    
4778
4779});
4780
4781$(window).scroll(function(){
4782    (0 < $(this).scrollTop())?$('#header').addClass('fixed'):$('#header').removeClass('fixed');
4783});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.