(function($){
var Sticky=function(element, userSettings){
var $element,
isSticky=false,
isFollowingParent=false,
isReachedEffectsPoint=false,
elements={},
settings,
elementOffsetValue,
elementWidth;
var defaultSettings={
to: 'top',
offset: 0,
effectsOffset: 0,
parent: false,
classes: {
sticky: 'sticky',
stickyActive: 'sticky-active',
stickyEffects: 'sticky-effects',
spacer: 'sticky-spacer',
},
isRTL: false,
isScrollSnapActive: false,
handleScrollbarWidth: false,
};
var initElements=function(){
$element=$(element).addClass(settings.classes.sticky);
elements.$window=$(window);
elements.$body=$(document).find('body');
if(settings.parent){
elements.$parent=$element.parent();
if('parent'!==settings.parent){
elements.$parent=elements.$parent.closest(settings.parent);
}}
};
var initSettings=function(){
settings=jQuery.extend(true, defaultSettings, userSettings);
};
var bindEvents=function(){
elements.$window.on('resize', onWindowResize);
if(settings.isScrollSnapActive){
elements.$body.on('scroll', onWindowScroll);
}else{
elements.$window.on('scroll', onWindowScroll);
}};
var unbindEvents=function(){
elements.$window
.off('scroll', onWindowScroll)
.off('resize', onWindowResize);
elements.$body.off('scroll', onWindowScroll);
};
var init=function(){
initSettings();
initElements();
bindEvents();
checkPosition();
};
var backupCSS=function($elementBackupCSS, backupState, properties){
var css={},
elementStyle=$elementBackupCSS[ 0 ].style;
properties.forEach(function(property){
css[ property ]=undefined!==elementStyle[ property ] ? elementStyle[ property ]:'';
});
$elementBackupCSS.data('css-backup-' + backupState, css);
};
var getCSSBackup=function($elementCSSBackup, backupState){
return $elementCSSBackup.data('css-backup-' + backupState);
};
const updateElementSizesData=()=> {
elementWidth=getElementOuterSize($element, 'width');
elementOffsetValue=$element.offset().left;
if(settings.isRTL){
const documentWidth=settings.handleScrollbarWidth ? window.innerWidth:document.body.offsetWidth;
elementOffsetValue=Math.max(documentWidth - elementWidth - elementOffsetValue, 0);
}}
var addSpacer=function(){
elements.$spacer=$element.clone()
.addClass(settings.classes.spacer)
.css({
visibility: 'hidden',
transition: 'none',
animation: 'none',
});
$element.after(elements.$spacer);
};
var removeSpacer=function(){
elements.$spacer.remove();
};
var stickElement=function(){
backupCSS($element, 'unsticky', [ 'position', 'width', 'margin-top', 'margin-bottom', 'top', 'bottom', 'inset-inline-start' ]);
const css={
position: 'fixed',
width: elementWidth,
marginTop: 0,
marginBottom: 0,
};
css[ settings.to ]=settings.offset;
css[ 'top'===settings.to ? 'bottom':'top' ]='';
if(elementOffsetValue){
css[ 'inset-inline-start' ]=elementOffsetValue + 'px';
}
$element
.css(css)
.addClass(settings.classes.stickyActive);
};
var unstickElement=function(){
$element
.css(getCSSBackup($element, 'unsticky') )
.removeClass(settings.classes.stickyActive);
};
var followParent=function(){
backupCSS(elements.$parent, 'childNotFollowing', [ 'position' ]);
elements.$parent.css('position', 'relative');
backupCSS($element, 'notFollowing', [ 'position', 'inset-inline-start', 'top', 'bottom' ]);
const css={
position: 'absolute',
};
elementOffsetValue=elements.$spacer.position().left;
if(settings.isRTL){
const parentWidth=$element.parent().outerWidth(),
elementOffsetValueLeft=elements.$spacer.position().left;
elementWidth=elements.$spacer.outerWidth();
elementOffsetValue=Math.max(parentWidth - elementWidth - elementOffsetValueLeft, 0);
}
css[ 'inset-inline-start' ]=elementOffsetValue + 'px';
css[ settings.to ]='';
css[ 'top'===settings.to ? 'bottom':'top' ]=0;
$element.css(css);
isFollowingParent=true;
};
var unfollowParent=function(){
elements.$parent.css(getCSSBackup(elements.$parent, 'childNotFollowing') );
$element.css(getCSSBackup($element, 'notFollowing') );
isFollowingParent=false;
};
var getElementOuterSize=function($elementOuterSize, dimension, includeMargins){
var computedStyle=getComputedStyle($elementOuterSize[ 0 ]),
elementSize=parseFloat(computedStyle[ dimension ]),
sides='height'===dimension ? [ 'top', 'bottom' ]:[ 'left', 'right' ],
propertiesToAdd=[];
if('border-box'!==computedStyle.boxSizing){
propertiesToAdd.push('border', 'padding');
}
if(includeMargins){
propertiesToAdd.push('margin');
}
propertiesToAdd.forEach(function(property){
sides.forEach(function(side){
elementSize +=parseFloat(computedStyle[ property + '-' + side ]);
});
});
return elementSize;
};
var getElementViewportOffset=function($elementViewportOffset){
var windowScrollTop=elements.$window.scrollTop(),
elementHeight=getElementOuterSize($elementViewportOffset, 'height'),
viewportHeight=innerHeight,
elementOffsetFromTop=$elementViewportOffset.offset().top,
distanceFromTop=elementOffsetFromTop - windowScrollTop,
topFromBottom=distanceFromTop - viewportHeight;
return {
top: {
fromTop: distanceFromTop,
fromBottom: topFromBottom,
},
bottom: {
fromTop: distanceFromTop + elementHeight,
fromBottom: topFromBottom + elementHeight,
},
};};
var stick=function(){
updateElementSizesData();
addSpacer();
stickElement();
isSticky=true;
$element.trigger('sticky:stick');
};
var unstick=function(){
unstickElement();
removeSpacer();
isSticky=false;
$element.trigger('sticky:unstick');
};
var checkParent=function(){
var elementOffset=getElementViewportOffset($element),
isTop='top'===settings.to;
if(isFollowingParent){
var isNeedUnfollowing=isTop ? elementOffset.top.fromTop > settings.offset:elementOffset.bottom.fromBottom < -settings.offset;
if(isNeedUnfollowing){
unfollowParent();
}}else{
var parentOffset=getElementViewportOffset(elements.$parent),
parentStyle=getComputedStyle(elements.$parent[ 0 ]),
borderWidthToDecrease=parseFloat(parentStyle[ isTop ? 'borderBottomWidth':'borderTopWidth' ]),
parentViewportDistance=isTop ? parentOffset.bottom.fromTop - borderWidthToDecrease:parentOffset.top.fromBottom + borderWidthToDecrease,
isNeedFollowing=isTop ? parentViewportDistance <=elementOffset.bottom.fromTop:parentViewportDistance >=elementOffset.top.fromBottom;
if(isNeedFollowing){
followParent();
}}
};
var checkEffectsPoint=function(distanceFromTriggerPoint){
if(isReachedEffectsPoint&&-distanceFromTriggerPoint < settings.effectsOffset){
$element.removeClass(settings.classes.stickyEffects);
isReachedEffectsPoint=false;
}else if(! isReachedEffectsPoint&&-distanceFromTriggerPoint >=settings.effectsOffset){
$element.addClass(settings.classes.stickyEffects);
isReachedEffectsPoint=true;
}};
var checkPosition=function(){
var offset=settings.offset,
distanceFromTriggerPoint;
if(isSticky){
var spacerViewportOffset=getElementViewportOffset(elements.$spacer);
distanceFromTriggerPoint='top'===settings.to ? spacerViewportOffset.top.fromTop - offset:-spacerViewportOffset.bottom.fromBottom - offset;
if(settings.parent){
checkParent();
}
if(distanceFromTriggerPoint > 0){
unstick();
}}else{
var elementViewportOffset=getElementViewportOffset($element);
distanceFromTriggerPoint='top'===settings.to ? elementViewportOffset.top.fromTop - offset:-elementViewportOffset.bottom.fromBottom - offset;
if(distanceFromTriggerPoint <=0){
stick();
if(settings.parent){
checkParent();
}}
}
checkEffectsPoint(distanceFromTriggerPoint);
};
var onWindowScroll=function(){
checkPosition();
};
var onWindowResize=function(){
if(! isSticky){
return;
}
unstickElement();
removeSpacer();
updateElementSizesData();
addSpacer();
stickElement();
if(settings.parent){
isFollowingParent=false;
checkParent();
}};
this.destroy=function(){
if(isSticky){
unstick();
}
unbindEvents();
$element.removeClass(settings.classes.sticky);
};
init();
};
$.fn.sticky=function(settings){
var isCommand='string'===typeof settings;
this.each(function(){
var $this=$(this);
if(! isCommand){
$this.data('sticky', new Sticky(this, settings) );
return;
}
var instance=$this.data('sticky');
if(! instance){
throw Error('Trying to perform the `' + settings + '` method prior to initialization');
}
if(! instance[ settings ]){
throw ReferenceError('Method `' + settings + '` not found in sticky instance');
}
instance[ settings ].apply(instance, Array.prototype.slice.call(arguments, 1) );
if('destroy'===settings){
$this.removeData('sticky');
}});
return this;
};
window.Sticky=Sticky;
})(jQuery);
;(function (factory){
'use strict';
if(typeof define==='function'&&define.amd){
define(['jquery'], factory);
}else if(typeof exports==='object'){
factory(require('jquery'));
}else{
if(typeof jQuery==='undefined'){
throw 'jquery-numerator requires jQuery to be loaded first';
}
factory(jQuery);
}}(function ($){
var pluginName="numerator",
defaults={
easing: 'swing',
duration: 500,
delimiter: undefined,
rounding: 0,
toValue: undefined,
fromValue: undefined,
queue: false,
onStart: function(){},
onStep: function(){},
onProgress: function(){},
onComplete: function(){}};
function Plugin(element, options){
this.element=element;
this.settings=$.extend({}, defaults, options);
this._defaults=defaults;
this._name=pluginName;
this.init();
}
Plugin.prototype={
init: function (){
this.parseElement();
this.setValue();
},
parseElement: function (){
var elText=$.trim($(this.element).text());
this.settings.fromValue=this.settings.fromValue||this.format(elText);
},
setValue: function(){
var self=this;
$({value: self.settings.fromValue}).animate({value: self.settings.toValue}, {
duration: parseInt(self.settings.duration, 10),
easing: self.settings.easing,
start: self.settings.onStart,
step: function(now, fx){
$(self.element).text(self.format(now));
self.settings.onStep(now, fx);
},
progress: self.settings.onProgress,
complete: self.settings.onComplete
});
},
format: function(value){
var self=this;
if(parseInt(this.settings.rounding) < 1){
value=parseInt(value, 10);
}else{
value=parseFloat(value).toFixed(parseInt(this.settings.rounding));
}
if(self.settings.delimiter){
return this.delimit(value)
}else{
return value;
}},
delimit: function(value){
var self=this;
value=value.toString();
if(self.settings.rounding&&parseInt(self.settings.rounding, 10) > 0){
var decimals=value.substring((value.length - (self.settings.rounding + 1)), value.length),
wholeValue=value.substring(0, (value.length - (self.settings.rounding + 1)));
return self.addDelimiter(wholeValue) + decimals;
}else{
return self.addDelimiter(value);
}},
addDelimiter: function(value){
return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, this.settings.delimiter);
}};
$.fn[ pluginName ]=function(options){
return this.each(function(){
if($.data(this, "plugin_" + pluginName) ){
$.data(this, 'plugin_' + pluginName, null);
}
$.data(this, "plugin_" + pluginName, new Plugin(this, options) );
});
};}));
var _gsScope="undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window;(_gsScope._gsQueue||(_gsScope._gsQueue=[])).push(function(){"use strict";_gsScope._gsDefine("TweenMax",["core.Animation","core.SimpleTimeline","TweenLite"],function(a,b,c){var d=function(a){var b,c=[],d=a.length;for(b=0;b!==d;c.push(a[b++]));return c},e=function(a,b,c){var d,e,f=a.cycle;for(d in f)e=f[d],a[d]="function"==typeof e?e(c,b[c]):e[c%e.length];delete a.cycle},f=function(a,b,d){c.call(this,a,b,d),this._cycle=0,this._yoyo=this.vars.yoyo===!0||!!this.vars.yoyoEase,this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._repeat&&this._uncache(!0),this.render=f.prototype.render},g=1e-10,h=c._internals,i=h.isSelector,j=h.isArray,k=f.prototype=c.to({},.1,{}),l=[];f.version="2.0.2",k.constructor=f,k.kill()._gc=!1,f.killTweensOf=f.killDelayedCallsTo=c.killTweensOf,f.getTweensOf=c.getTweensOf,f.lagSmoothing=c.lagSmoothing,f.ticker=c.ticker,f.render=c.render,k.invalidate=function(){return this._yoyo=this.vars.yoyo===!0||!!this.vars.yoyoEase,this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._yoyoEase=null,this._uncache(!0),c.prototype.invalidate.call(this)},k.updateTo=function(a,b){var d,e=this.ratio,f=this.vars.immediateRender||a.immediateRender;b&&this._startTime<this._timeline._time&&(this._startTime=this._timeline._time,this._uncache(!1),this._gc?this._enabled(!0,!1):this._timeline.insert(this,this._startTime-this._delay));for(d in a)this.vars[d]=a[d];if(this._initted||f)if(b)this._initted=!1,f&&this.render(0,!0,!0);else if(this._gc&&this._enabled(!0,!1),this._notifyPluginsOfEnabled&&this._firstPT&&c._onPluginEvent("_onDisable",this),this._time/this._duration>.998){var g=this._totalTime;this.render(0,!0,!1),this._initted=!1,this.render(g,!0,!1)}else if(this._initted=!1,this._init(),this._time>0||f)for(var h,i=1/(1-e),j=this._firstPT;j;)h=j.s+j.c,j.c*=i,j.s=h-j.c,j=j._next;return this},k.render=function(a,b,d){this._initted||0===this._duration&&this.vars.repeat&&this.invalidate();var e,f,i,j,k,l,m,n,o,p=this._dirty?this.totalDuration():this._totalDuration,q=this._time,r=this._totalTime,s=this._cycle,t=this._duration,u=this._rawPrevTime;if(a>=p-1e-7&&a>=0?(this._totalTime=p,this._cycle=this._repeat,this._yoyo&&0!==(1&this._cycle)?(this._time=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0):(this._time=t,this.ratio=this._ease._calcEnd?this._ease.getRatio(1):1),this._reversed||(e=!0,f="onComplete",d=d||this._timeline.autoRemoveChildren),0===t&&(this._initted||!this.vars.lazy||d)&&(this._startTime===this._timeline._duration&&(a=0),(0>u||0>=a&&a>=-1e-7||u===g&&"isPause"!==this.data)&&u!==a&&(d=!0,u>g&&(f="onReverseComplete")),this._rawPrevTime=n=!b||a||u===a?a:g)):1e-7>a?(this._totalTime=this._time=this._cycle=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0,(0!==r||0===t&&u>0)&&(f="onReverseComplete",e=this._reversed),0>a&&(this._active=!1,0===t&&(this._initted||!this.vars.lazy||d)&&(u>=0&&(d=!0),this._rawPrevTime=n=!b||a||u===a?a:g)),this._initted||(d=!0)):(this._totalTime=this._time=a,0!==this._repeat&&(j=t+this._repeatDelay,this._cycle=this._totalTime/j>>0,0!==this._cycle&&this._cycle===this._totalTime/j&&a>=r&&this._cycle--,this._time=this._totalTime-this._cycle*j,this._yoyo&&0!==(1&this._cycle)&&(this._time=t-this._time,o=this._yoyoEase||this.vars.yoyoEase,o&&(this._yoyoEase||(o!==!0||this._initted?this._yoyoEase=o=o===!0?this._ease:o instanceof Ease?o:Ease.map[o]:(o=this.vars.ease,this._yoyoEase=o=o?o instanceof Ease?o:"function"==typeof o?new Ease(o,this.vars.easeParams):Ease.map[o]||c.defaultEase:c.defaultEase)),this.ratio=o?1-o.getRatio((t-this._time)/t):0)),this._time>t?this._time=t:this._time<0&&(this._time=0)),this._easeType&&!o?(k=this._time/t,l=this._easeType,m=this._easePower,(1===l||3===l&&k>=.5)&&(k=1-k),3===l&&(k*=2),1===m?k*=k:2===m?k*=k*k:3===m?k*=k*k*k:4===m&&(k*=k*k*k*k),1===l?this.ratio=1-k:2===l?this.ratio=k:this._time/t<.5?this.ratio=k/2:this.ratio=1-k/2):o||(this.ratio=this._ease.getRatio(this._time/t))),q===this._time&&!d&&s===this._cycle)return void(r!==this._totalTime&&this._onUpdate&&(b||this._callback("onUpdate")));if(!this._initted){if(this._init(),!this._initted||this._gc)return;if(!d&&this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration))return this._time=q,this._totalTime=r,this._rawPrevTime=u,this._cycle=s,h.lazyTweens.push(this),void(this._lazy=[a,b]);!this._time||e||o?e&&this._ease._calcEnd&&!o&&(this.ratio=this._ease.getRatio(0===this._time?0:1)):this.ratio=this._ease.getRatio(this._time/t)}for(this._lazy!==!1&&(this._lazy=!1),this._active||!this._paused&&this._time!==q&&a>=0&&(this._active=!0),0===r&&(2===this._initted&&a>0&&this._init(),this._startAt&&(a>=0?this._startAt.render(a,!0,d):f||(f="_dummyGS")),this.vars.onStart&&(0!==this._totalTime||0===t)&&(b||this._callback("onStart"))),i=this._firstPT;i;)i.f?i.t[i.p](i.c*this.ratio+i.s):i.t[i.p]=i.c*this.ratio+i.s,i=i._next;this._onUpdate&&(0>a&&this._startAt&&this._startTime&&this._startAt.render(a,!0,d),b||(this._totalTime!==r||f)&&this._callback("onUpdate")),this._cycle!==s&&(b||this._gc||this.vars.onRepeat&&this._callback("onRepeat")),f&&(!this._gc||d)&&(0>a&&this._startAt&&!this._onUpdate&&this._startTime&&this._startAt.render(a,!0,d),e&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[f]&&this._callback(f),0===t&&this._rawPrevTime===g&&n!==g&&(this._rawPrevTime=0))},f.to=function(a,b,c){return new f(a,b,c)},f.from=function(a,b,c){return c.runBackwards=!0,c.immediateRender=0!=c.immediateRender,new f(a,b,c)},f.fromTo=function(a,b,c,d){return d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,new f(a,b,d)},f.staggerTo=f.allTo=function(a,b,g,h,k,m,n){h=h||0;var o,p,q,r,s=0,t=[],u=function(){g.onComplete&&g.onComplete.apply(g.onCompleteScope||this,arguments),k.apply(n||g.callbackScope||this,m||l)},v=g.cycle,w=g.startAt&&g.startAt.cycle;for(j(a)||("string"==typeof a&&(a=c.selector(a)||a),i(a)&&(a=d(a))),a=a||[],0>h&&(a=d(a),a.reverse(),h*=-1),o=a.length-1,q=0;o>=q;q++){p={};for(r in g)p[r]=g[r];if(v&&(e(p,a,q),null!=p.duration&&(b=p.duration,delete p.duration)),w){w=p.startAt={};for(r in g.startAt)w[r]=g.startAt[r];e(p.startAt,a,q)}p.delay=s+(p.delay||0),q===o&&k&&(p.onComplete=u),t[q]=new f(a[q],b,p),s+=h}return t},f.staggerFrom=f.allFrom=function(a,b,c,d,e,g,h){return c.runBackwards=!0,c.immediateRender=0!=c.immediateRender,f.staggerTo(a,b,c,d,e,g,h)},f.staggerFromTo=f.allFromTo=function(a,b,c,d,e,g,h,i){return d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,f.staggerTo(a,b,d,e,g,h,i)},f.delayedCall=function(a,b,c,d,e){return new f(b,0,{delay:a,onComplete:b,onCompleteParams:c,callbackScope:d,onReverseComplete:b,onReverseCompleteParams:c,immediateRender:!1,useFrames:e,overwrite:0})},f.set=function(a,b){return new f(a,0,b)},f.isTweening=function(a){return c.getTweensOf(a,!0).length>0};var m=function(a,b){for(var d=[],e=0,f=a._first;f;)f instanceof c?d[e++]=f:(b&&(d[e++]=f),d=d.concat(m(f,b)),e=d.length),f=f._next;return d},n=f.getAllTweens=function(b){return m(a._rootTimeline,b).concat(m(a._rootFramesTimeline,b))};f.killAll=function(a,c,d,e){null==c&&(c=!0),null==d&&(d=!0);var f,g,h,i=n(0!=e),j=i.length,k=c&&d&&e;for(h=0;j>h;h++)g=i[h],(k||g instanceof b||(f=g.target===g.vars.onComplete)&&d||c&&!f)&&(a?g.totalTime(g._reversed?0:g.totalDuration()):g._enabled(!1,!1))},f.killChildTweensOf=function(a,b){if(null!=a){var e,g,k,l,m,n=h.tweenLookup;if("string"==typeof a&&(a=c.selector(a)||a),i(a)&&(a=d(a)),j(a))for(l=a.length;--l>-1;)f.killChildTweensOf(a[l],b);else{e=[];for(k in n)for(g=n[k].target.parentNode;g;)g===a&&(e=e.concat(n[k].tweens)),g=g.parentNode;for(m=e.length,l=0;m>l;l++)b&&e[l].totalTime(e[l].totalDuration()),e[l]._enabled(!1,!1)}}};var o=function(a,c,d,e){c=c!==!1,d=d!==!1,e=e!==!1;for(var f,g,h=n(e),i=c&&d&&e,j=h.length;--j>-1;)g=h[j],(i||g instanceof b||(f=g.target===g.vars.onComplete)&&d||c&&!f)&&g.paused(a)};return f.pauseAll=function(a,b,c){o(!0,a,b,c)},f.resumeAll=function(a,b,c){o(!1,a,b,c)},f.globalTimeScale=function(b){var d=a._rootTimeline,e=c.ticker.time;return arguments.length?(b=b||g,d._startTime=e-(e-d._startTime)*d._timeScale/b,d=a._rootFramesTimeline,e=c.ticker.frame,d._startTime=e-(e-d._startTime)*d._timeScale/b,d._timeScale=a._rootTimeline._timeScale=b,b):d._timeScale},k.progress=function(a,b){return arguments.length?this.totalTime(this.duration()*(this._yoyo&&0!==(1&this._cycle)?1-a:a)+this._cycle*(this._duration+this._repeatDelay),b):this._time/this.duration()},k.totalProgress=function(a,b){return arguments.length?this.totalTime(this.totalDuration()*a,b):this._totalTime/this.totalDuration()},k.time=function(a,b){return arguments.length?(this._dirty&&this.totalDuration(),a>this._duration&&(a=this._duration),this._yoyo&&0!==(1&this._cycle)?a=this._duration-a+this._cycle*(this._duration+this._repeatDelay):0!==this._repeat&&(a+=this._cycle*(this._duration+this._repeatDelay)),this.totalTime(a,b)):this._time},k.duration=function(b){return arguments.length?a.prototype.duration.call(this,b):this._duration},k.totalDuration=function(a){return arguments.length?-1===this._repeat?this:this.duration((a-this._repeat*this._repeatDelay)/(this._repeat+1)):(this._dirty&&(this._totalDuration=-1===this._repeat?999999999999:this._duration*(this._repeat+1)+this._repeatDelay*this._repeat,this._dirty=!1),this._totalDuration)},k.repeat=function(a){return arguments.length?(this._repeat=a,this._uncache(!0)):this._repeat},k.repeatDelay=function(a){return arguments.length?(this._repeatDelay=a,this._uncache(!0)):this._repeatDelay},k.yoyo=function(a){return arguments.length?(this._yoyo=a,this):this._yoyo},f},!0),_gsScope._gsDefine("TimelineLite",["core.Animation","core.SimpleTimeline","TweenLite"],function(a,b,c){var d=function(a){b.call(this,a),this._labels={},this.autoRemoveChildren=this.vars.autoRemoveChildren===!0,this.smoothChildTiming=this.vars.smoothChildTiming===!0,this._sortChildren=!0,this._onUpdate=this.vars.onUpdate;var c,d,e=this.vars;for(d in e)c=e[d],i(c)&&-1!==c.join("").indexOf("{self}")&&(e[d]=this._swapSelfInParams(c));i(e.tweens)&&this.add(e.tweens,0,e.align,e.stagger)},e=1e-10,f=c._internals,g=d._internals={},h=f.isSelector,i=f.isArray,j=f.lazyTweens,k=f.lazyRender,l=_gsScope._gsDefine.globals,m=function(a){var b,c={};for(b in a)c[b]=a[b];return c},n=function(a,b,c){var d,e,f=a.cycle;for(d in f)e=f[d],a[d]="function"==typeof e?e(c,b[c]):e[c%e.length];delete a.cycle},o=g.pauseCallback=function(){},p=function(a){var b,c=[],d=a.length;for(b=0;b!==d;c.push(a[b++]));return c},q=d.prototype=new b;return d.version="2.0.2",q.constructor=d,q.kill()._gc=q._forcingPlayhead=q._hasPause=!1,q.to=function(a,b,d,e){var f=d.repeat&&l.TweenMax||c;return b?this.add(new f(a,b,d),e):this.set(a,d,e)},q.from=function(a,b,d,e){return this.add((d.repeat&&l.TweenMax||c).from(a,b,d),e)},q.fromTo=function(a,b,d,e,f){var g=e.repeat&&l.TweenMax||c;return b?this.add(g.fromTo(a,b,d,e),f):this.set(a,e,f)},q.staggerTo=function(a,b,e,f,g,i,j,k){var l,o,q=new d({onComplete:i,onCompleteParams:j,callbackScope:k,smoothChildTiming:this.smoothChildTiming}),r=e.cycle;for("string"==typeof a&&(a=c.selector(a)||a),a=a||[],h(a)&&(a=p(a)),f=f||0,0>f&&(a=p(a),a.reverse(),f*=-1),o=0;o<a.length;o++)l=m(e),l.startAt&&(l.startAt=m(l.startAt),l.startAt.cycle&&n(l.startAt,a,o)),r&&(n(l,a,o),null!=l.duration&&(b=l.duration,delete l.duration)),q.to(a[o],b,l,o*f);return this.add(q,g)},q.staggerFrom=function(a,b,c,d,e,f,g,h){return c.immediateRender=0!=c.immediateRender,c.runBackwards=!0,this.staggerTo(a,b,c,d,e,f,g,h)},q.staggerFromTo=function(a,b,c,d,e,f,g,h,i){return d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,this.staggerTo(a,b,d,e,f,g,h,i)},q.call=function(a,b,d,e){return this.add(c.delayedCall(0,a,b,d),e)},q.set=function(a,b,d){return d=this._parseTimeOrLabel(d,0,!0),null==b.immediateRender&&(b.immediateRender=d===this._time&&!this._paused),this.add(new c(a,0,b),d)},d.exportRoot=function(a,b){a=a||{},null==a.smoothChildTiming&&(a.smoothChildTiming=!0);var e,f,g,h,i=new d(a),j=i._timeline;for(null==b&&(b=!0),j._remove(i,!0),i._startTime=0,i._rawPrevTime=i._time=i._totalTime=j._time,g=j._first;g;)h=g._next,b&&g instanceof c&&g.target===g.vars.onComplete||(f=g._startTime-g._delay,0>f&&(e=1),i.add(g,f)),g=h;return j.add(i,0),e&&i.totalDuration(),i},q.add=function(e,f,g,h){var j,k,l,m,n,o;if("number"!=typeof f&&(f=this._parseTimeOrLabel(f,0,!0,e)),!(e instanceof a)){if(e instanceof Array||e&&e.push&&i(e)){for(g=g||"normal",h=h||0,j=f,k=e.length,l=0;k>l;l++)i(m=e[l])&&(m=new d({tweens:m})),this.add(m,j),"string"!=typeof m&&"function"!=typeof m&&("sequence"===g?j=m._startTime+m.totalDuration()/m._timeScale:"start"===g&&(m._startTime-=m.delay())),j+=h;return this._uncache(!0)}if("string"==typeof e)return this.addLabel(e,f);if("function"!=typeof e)throw"Cannot add "+e+" into the timeline; it is not a tween, timeline, function, or string.";e=c.delayedCall(0,e)}if(b.prototype.add.call(this,e,f),e._time&&(j=Math.max(0,Math.min(e.totalDuration(),(this.rawTime()-e._startTime)*e._timeScale)),Math.abs(j-e._totalTime)>1e-5&&e.render(j,!1,!1)),(this._gc||this._time===this._duration)&&!this._paused&&this._duration<this.duration())for(n=this,o=n.rawTime()>e._startTime;n._timeline;)o&&n._timeline.smoothChildTiming?n.totalTime(n._totalTime,!0):n._gc&&n._enabled(!0,!1),n=n._timeline;return this},q.remove=function(b){if(b instanceof a){this._remove(b,!1);var c=b._timeline=b.vars.useFrames?a._rootFramesTimeline:a._rootTimeline;return b._startTime=(b._paused?b._pauseTime:c._time)-(b._reversed?b.totalDuration()-b._totalTime:b._totalTime)/b._timeScale,this}if(b instanceof Array||b&&b.push&&i(b)){for(var d=b.length;--d>-1;)this.remove(b[d]);return this}return"string"==typeof b?this.removeLabel(b):this.kill(null,b)},q._remove=function(a,c){b.prototype._remove.call(this,a,c);var d=this._last;return d?this._time>this.duration()&&(this._time=this._duration,this._totalTime=this._totalDuration):this._time=this._totalTime=this._duration=this._totalDuration=0,this},q.append=function(a,b){return this.add(a,this._parseTimeOrLabel(null,b,!0,a))},q.insert=q.insertMultiple=function(a,b,c,d){return this.add(a,b||0,c,d)},q.appendMultiple=function(a,b,c,d){return this.add(a,this._parseTimeOrLabel(null,b,!0,a),c,d)},q.addLabel=function(a,b){return this._labels[a]=this._parseTimeOrLabel(b),this},q.addPause=function(a,b,d,e){var f=c.delayedCall(0,o,d,e||this);return f.vars.onComplete=f.vars.onReverseComplete=b,f.data="isPause",this._hasPause=!0,this.add(f,a)},q.removeLabel=function(a){return delete this._labels[a],this},q.getLabelTime=function(a){return null!=this._labels[a]?this._labels[a]:-1},q._parseTimeOrLabel=function(b,c,d,e){var f,g;if(e instanceof a&&e.timeline===this)this.remove(e);else if(e&&(e instanceof Array||e.push&&i(e)))for(g=e.length;--g>-1;)e[g]instanceof a&&e[g].timeline===this&&this.remove(e[g]);if(f="number"!=typeof b||c?this.duration()>99999999999?this.recent().endTime(!1):this._duration:0,"string"==typeof c)return this._parseTimeOrLabel(c,d&&"number"==typeof b&&null==this._labels[c]?b-f:0,d);if(c=c||0,"string"!=typeof b||!isNaN(b)&&null==this._labels[b])null==b&&(b=f);else{if(g=b.indexOf("="),-1===g)return null==this._labels[b]?d?this._labels[b]=f+c:c:this._labels[b]+c;c=parseInt(b.charAt(g-1)+"1",10)*Number(b.substr(g+1)),b=g>1?this._parseTimeOrLabel(b.substr(0,g-1),0,d):f}return Number(b)+c},q.seek=function(a,b){return this.totalTime("number"==typeof a?a:this._parseTimeOrLabel(a),b!==!1)},q.stop=function(){return this.paused(!0)},q.gotoAndPlay=function(a,b){return this.play(a,b)},q.gotoAndStop=function(a,b){return this.pause(a,b)},q.render=function(a,b,c){this._gc&&this._enabled(!0,!1);var d,f,g,h,i,l,m,n=this._time,o=this._dirty?this.totalDuration():this._totalDuration,p=this._startTime,q=this._timeScale,r=this._paused;if(n!==this._time&&(a+=this._time-n),a>=o-1e-7&&a>=0)this._totalTime=this._time=o,this._reversed||this._hasPausedChild()||(f=!0,h="onComplete",i=!!this._timeline.autoRemoveChildren,0===this._duration&&(0>=a&&a>=-1e-7||this._rawPrevTime<0||this._rawPrevTime===e)&&this._rawPrevTime!==a&&this._first&&(i=!0,this._rawPrevTime>e&&(h="onReverseComplete"))),this._rawPrevTime=this._duration||!b||a||this._rawPrevTime===a?a:e,a=o+1e-4;else if(1e-7>a)if(this._totalTime=this._time=0,(0!==n||0===this._duration&&this._rawPrevTime!==e&&(this._rawPrevTime>0||0>a&&this._rawPrevTime>=0))&&(h="onReverseComplete",f=this._reversed),0>a)this._active=!1,this._timeline.autoRemoveChildren&&this._reversed?(i=f=!0,h="onReverseComplete"):this._rawPrevTime>=0&&this._first&&(i=!0),this._rawPrevTime=a;else{if(this._rawPrevTime=this._duration||!b||a||this._rawPrevTime===a?a:e,0===a&&f)for(d=this._first;d&&0===d._startTime;)d._duration||(f=!1),d=d._next;a=0,this._initted||(i=!0)}else{if(this._hasPause&&!this._forcingPlayhead&&!b){if(a>=n)for(d=this._first;d&&d._startTime<=a&&!l;)d._duration||"isPause"!==d.data||d.ratio||0===d._startTime&&0===this._rawPrevTime||(l=d),d=d._next;else for(d=this._last;d&&d._startTime>=a&&!l;)d._duration||"isPause"===d.data&&d._rawPrevTime>0&&(l=d),d=d._prev;l&&(this._time=a=l._startTime,this._totalTime=a+this._cycle*(this._totalDuration+this._repeatDelay))}this._totalTime=this._time=this._rawPrevTime=a}if(this._time!==n&&this._first||c||i||l){if(this._initted||(this._initted=!0),this._active||!this._paused&&this._time!==n&&a>0&&(this._active=!0),0===n&&this.vars.onStart&&(0===this._time&&this._duration||b||this._callback("onStart")),m=this._time,m>=n)for(d=this._first;d&&(g=d._next,m===this._time&&(!this._paused||r));)(d._active||d._startTime<=m&&!d._paused&&!d._gc)&&(l===d&&this.pause(),d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)),d=g;else for(d=this._last;d&&(g=d._prev,m===this._time&&(!this._paused||r));){if(d._active||d._startTime<=n&&!d._paused&&!d._gc){if(l===d){for(l=d._prev;l&&l.endTime()>this._time;)l.render(l._reversed?l.totalDuration()-(a-l._startTime)*l._timeScale:(a-l._startTime)*l._timeScale,b,c),l=l._prev;l=null,this.pause()}d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)}d=g}this._onUpdate&&(b||(j.length&&k(),this._callback("onUpdate"))),h&&(this._gc||(p===this._startTime||q!==this._timeScale)&&(0===this._time||o>=this.totalDuration())&&(f&&(j.length&&k(),this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[h]&&this._callback(h)))}},q._hasPausedChild=function(){for(var a=this._first;a;){if(a._paused||a instanceof d&&a._hasPausedChild())return!0;a=a._next}return!1},q.getChildren=function(a,b,d,e){e=e||-9999999999;for(var f=[],g=this._first,h=0;g;)g._startTime<e||(g instanceof c?b!==!1&&(f[h++]=g):(d!==!1&&(f[h++]=g),a!==!1&&(f=f.concat(g.getChildren(!0,b,d)),h=f.length))),g=g._next;return f},q.getTweensOf=function(a,b){var d,e,f=this._gc,g=[],h=0;for(f&&this._enabled(!0,!0),d=c.getTweensOf(a),e=d.length;--e>-1;)(d[e].timeline===this||b&&this._contains(d[e]))&&(g[h++]=d[e]);return f&&this._enabled(!1,!0),g},q.recent=function(){return this._recent},q._contains=function(a){for(var b=a.timeline;b;){if(b===this)return!0;b=b.timeline}return!1},q.shiftChildren=function(a,b,c){c=c||0;for(var d,e=this._first,f=this._labels;e;)e._startTime>=c&&(e._startTime+=a),e=e._next;if(b)for(d in f)f[d]>=c&&(f[d]+=a);return this._uncache(!0)},q._kill=function(a,b){if(!a&&!b)return this._enabled(!1,!1);for(var c=b?this.getTweensOf(b):this.getChildren(!0,!0,!1),d=c.length,e=!1;--d>-1;)c[d]._kill(a,b)&&(e=!0);return e},q.clear=function(a){var b=this.getChildren(!1,!0,!0),c=b.length;for(this._time=this._totalTime=0;--c>-1;)b[c]._enabled(!1,!1);return a!==!1&&(this._labels={}),this._uncache(!0)},q.invalidate=function(){for(var b=this._first;b;)b.invalidate(),b=b._next;return a.prototype.invalidate.call(this)},q._enabled=function(a,c){if(a===this._gc)for(var d=this._first;d;)d._enabled(a,!0),d=d._next;return b.prototype._enabled.call(this,a,c)},q.totalTime=function(b,c,d){this._forcingPlayhead=!0;var e=a.prototype.totalTime.apply(this,arguments);return this._forcingPlayhead=!1,e},q.duration=function(a){return arguments.length?(0!==this.duration()&&0!==a&&this.timeScale(this._duration/a),this):(this._dirty&&this.totalDuration(),this._duration)},q.totalDuration=function(a){if(!arguments.length){if(this._dirty){for(var b,c,d=0,e=this._last,f=999999999999;e;)b=e._prev,e._dirty&&e.totalDuration(),e._startTime>f&&this._sortChildren&&!e._paused&&!this._calculatingDuration?(this._calculatingDuration=1,this.add(e,e._startTime-e._delay),this._calculatingDuration=0):f=e._startTime,e._startTime<0&&!e._paused&&(d-=e._startTime,this._timeline.smoothChildTiming&&(this._startTime+=e._startTime/this._timeScale,this._time-=e._startTime,this._totalTime-=e._startTime,this._rawPrevTime-=e._startTime),this.shiftChildren(-e._startTime,!1,-9999999999),f=0),c=e._startTime+e._totalDuration/e._timeScale,c>d&&(d=c),e=b;this._duration=this._totalDuration=d,this._dirty=!1}return this._totalDuration}return a&&this.totalDuration()?this.timeScale(this._totalDuration/a):this},q.paused=function(b){if(!b)for(var c=this._first,d=this._time;c;)c._startTime===d&&"isPause"===c.data&&(c._rawPrevTime=0),c=c._next;return a.prototype.paused.apply(this,arguments)},q.usesFrames=function(){for(var b=this._timeline;b._timeline;)b=b._timeline;return b===a._rootFramesTimeline},q.rawTime=function(a){return a&&(this._paused||this._repeat&&this.time()>0&&this.totalProgress()<1)?this._totalTime%(this._duration+this._repeatDelay):this._paused?this._totalTime:(this._timeline.rawTime(a)-this._startTime)*this._timeScale},d},!0),_gsScope._gsDefine("TimelineMax",["TimelineLite","TweenLite","easing.Ease"],function(a,b,c){var d=function(b){a.call(this,b),this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._cycle=0,this._yoyo=this.vars.yoyo===!0,this._dirty=!0},e=1e-10,f=b._internals,g=f.lazyTweens,h=f.lazyRender,i=_gsScope._gsDefine.globals,j=new c(null,null,1,0),k=d.prototype=new a;return k.constructor=d,k.kill()._gc=!1,d.version="2.0.2",k.invalidate=function(){return this._yoyo=this.vars.yoyo===!0,this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._uncache(!0),a.prototype.invalidate.call(this)},k.addCallback=function(a,c,d,e){return this.add(b.delayedCall(0,a,d,e),c)},k.removeCallback=function(a,b){if(a)if(null==b)this._kill(null,a);else for(var c=this.getTweensOf(a,!1),d=c.length,e=this._parseTimeOrLabel(b);--d>-1;)c[d]._startTime===e&&c[d]._enabled(!1,!1);return this},k.removePause=function(b){return this.removeCallback(a._internals.pauseCallback,b)},k.tweenTo=function(a,c){c=c||{};var d,e,f,g={ease:j,useFrames:this.usesFrames(),immediateRender:!1,lazy:!1},h=c.repeat&&i.TweenMax||b;for(e in c)g[e]=c[e];return g.time=this._parseTimeOrLabel(a),d=Math.abs(Number(g.time)-this._time)/this._timeScale||.001,f=new h(this,d,g),g.onStart=function(){f.target.paused(!0),f.vars.time===f.target.time()||d!==f.duration()||f.isFromTo||f.duration(Math.abs(f.vars.time-f.target.time())/f.target._timeScale).render(f.time(),!0,!0),c.onStart&&c.onStart.apply(c.onStartScope||c.callbackScope||f,c.onStartParams||[])},f},k.tweenFromTo=function(a,b,c){c=c||{},a=this._parseTimeOrLabel(a),c.startAt={onComplete:this.seek,onCompleteParams:[a],callbackScope:this},c.immediateRender=c.immediateRender!==!1;var d=this.tweenTo(b,c);return d.isFromTo=1,d.duration(Math.abs(d.vars.time-a)/this._timeScale||.001)},k.render=function(a,b,c){this._gc&&this._enabled(!0,!1);var d,f,i,j,k,l,m,n,o=this._time,p=this._dirty?this.totalDuration():this._totalDuration,q=this._duration,r=this._totalTime,s=this._startTime,t=this._timeScale,u=this._rawPrevTime,v=this._paused,w=this._cycle;if(o!==this._time&&(a+=this._time-o),a>=p-1e-7&&a>=0)this._locked||(this._totalTime=p,this._cycle=this._repeat),this._reversed||this._hasPausedChild()||(f=!0,j="onComplete",k=!!this._timeline.autoRemoveChildren,0===this._duration&&(0>=a&&a>=-1e-7||0>u||u===e)&&u!==a&&this._first&&(k=!0,u>e&&(j="onReverseComplete"))),this._rawPrevTime=this._duration||!b||a||this._rawPrevTime===a?a:e,this._yoyo&&0!==(1&this._cycle)?this._time=a=0:(this._time=q,a=q+1e-4);else if(1e-7>a)if(this._locked||(this._totalTime=this._cycle=0),this._time=0,(0!==o||0===q&&u!==e&&(u>0||0>a&&u>=0)&&!this._locked)&&(j="onReverseComplete",f=this._reversed),0>a)this._active=!1,this._timeline.autoRemoveChildren&&this._reversed?(k=f=!0,j="onReverseComplete"):u>=0&&this._first&&(k=!0),this._rawPrevTime=a;else{if(this._rawPrevTime=q||!b||a||this._rawPrevTime===a?a:e,0===a&&f)for(d=this._first;d&&0===d._startTime;)d._duration||(f=!1),d=d._next;a=0,this._initted||(k=!0)}else if(0===q&&0>u&&(k=!0),this._time=this._rawPrevTime=a,this._locked||(this._totalTime=a,0!==this._repeat&&(l=q+this._repeatDelay,this._cycle=this._totalTime/l>>0,0!==this._cycle&&this._cycle===this._totalTime/l&&a>=r&&this._cycle--,this._time=this._totalTime-this._cycle*l,this._yoyo&&0!==(1&this._cycle)&&(this._time=q-this._time),this._time>q?(this._time=q,a=q+1e-4):this._time<0?this._time=a=0:a=this._time)),this._hasPause&&!this._forcingPlayhead&&!b){if(a=this._time,a>=o||this._repeat&&w!==this._cycle)for(d=this._first;d&&d._startTime<=a&&!m;)d._duration||"isPause"!==d.data||d.ratio||0===d._startTime&&0===this._rawPrevTime||(m=d),d=d._next;else for(d=this._last;d&&d._startTime>=a&&!m;)d._duration||"isPause"===d.data&&d._rawPrevTime>0&&(m=d),d=d._prev;m&&m._startTime<q&&(this._time=a=m._startTime,this._totalTime=a+this._cycle*(this._totalDuration+this._repeatDelay))}if(this._cycle!==w&&!this._locked){var x=this._yoyo&&0!==(1&w),y=x===(this._yoyo&&0!==(1&this._cycle)),z=this._totalTime,A=this._cycle,B=this._rawPrevTime,C=this._time;if(this._totalTime=w*q,this._cycle<w?x=!x:this._totalTime+=q,this._time=o,this._rawPrevTime=0===q?u-1e-4:u,this._cycle=w,this._locked=!0,o=x?0:q,this.render(o,b,0===q),b||this._gc||this.vars.onRepeat&&(this._cycle=A,this._locked=!1,this._callback("onRepeat")),o!==this._time)return;if(y&&(this._cycle=w,this._locked=!0,o=x?q+1e-4:-1e-4,this.render(o,!0,!1)),this._locked=!1,this._paused&&!v)return;this._time=C,this._totalTime=z,this._cycle=A,this._rawPrevTime=B}if(!(this._time!==o&&this._first||c||k||m))return void(r!==this._totalTime&&this._onUpdate&&(b||this._callback("onUpdate")));if(this._initted||(this._initted=!0),this._active||!this._paused&&this._totalTime!==r&&a>0&&(this._active=!0),0===r&&this.vars.onStart&&(0===this._totalTime&&this._totalDuration||b||this._callback("onStart")),n=this._time,n>=o)for(d=this._first;d&&(i=d._next,n===this._time&&(!this._paused||v));)(d._active||d._startTime<=this._time&&!d._paused&&!d._gc)&&(m===d&&this.pause(),d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)),d=i;else for(d=this._last;d&&(i=d._prev,n===this._time&&(!this._paused||v));){if(d._active||d._startTime<=o&&!d._paused&&!d._gc){if(m===d){for(m=d._prev;m&&m.endTime()>this._time;)m.render(m._reversed?m.totalDuration()-(a-m._startTime)*m._timeScale:(a-m._startTime)*m._timeScale,b,c),m=m._prev;m=null,this.pause()}d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)}d=i}this._onUpdate&&(b||(g.length&&h(),this._callback("onUpdate"))),j&&(this._locked||this._gc||(s===this._startTime||t!==this._timeScale)&&(0===this._time||p>=this.totalDuration())&&(f&&(g.length&&h(),this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[j]&&this._callback(j)))},k.getActive=function(a,b,c){null==a&&(a=!0),null==b&&(b=!0),null==c&&(c=!1);var d,e,f=[],g=this.getChildren(a,b,c),h=0,i=g.length;for(d=0;i>d;d++)e=g[d],e.isActive()&&(f[h++]=e);return f},k.getLabelAfter=function(a){a||0!==a&&(a=this._time);var b,c=this.getLabelsArray(),d=c.length;for(b=0;d>b;b++)if(c[b].time>a)return c[b].name;return null},k.getLabelBefore=function(a){null==a&&(a=this._time);for(var b=this.getLabelsArray(),c=b.length;--c>-1;)if(b[c].time<a)return b[c].name;return null},k.getLabelsArray=function(){var a,b=[],c=0;for(a in this._labels)b[c++]={time:this._labels[a],name:a};return b.sort(function(a,b){return a.time-b.time}),b},k.invalidate=function(){return this._locked=!1,a.prototype.invalidate.call(this)},k.progress=function(a,b){return arguments.length?this.totalTime(this.duration()*(this._yoyo&&0!==(1&this._cycle)?1-a:a)+this._cycle*(this._duration+this._repeatDelay),b):this._time/this.duration()||0},k.totalProgress=function(a,b){return arguments.length?this.totalTime(this.totalDuration()*a,b):this._totalTime/this.totalDuration()||0},k.totalDuration=function(b){return arguments.length?-1!==this._repeat&&b?this.timeScale(this.totalDuration()/b):this:(this._dirty&&(a.prototype.totalDuration.call(this),this._totalDuration=-1===this._repeat?999999999999:this._duration*(this._repeat+1)+this._repeatDelay*this._repeat),this._totalDuration)},k.time=function(a,b){return arguments.length?(this._dirty&&this.totalDuration(),a>this._duration&&(a=this._duration),this._yoyo&&0!==(1&this._cycle)?a=this._duration-a+this._cycle*(this._duration+this._repeatDelay):0!==this._repeat&&(a+=this._cycle*(this._duration+this._repeatDelay)),this.totalTime(a,b)):this._time},k.repeat=function(a){return arguments.length?(this._repeat=a,this._uncache(!0)):this._repeat},k.repeatDelay=function(a){return arguments.length?(this._repeatDelay=a,this._uncache(!0)):this._repeatDelay},k.yoyo=function(a){return arguments.length?(this._yoyo=a,this):this._yoyo},k.currentLabel=function(a){return arguments.length?this.seek(a,!0):this.getLabelBefore(this._time+1e-8)},d},!0),function(){var a=180/Math.PI,b=[],c=[],d=[],e={},f=_gsScope._gsDefine.globals,g=function(a,b,c,d){c===d&&(c=d-(d-b)/1e6),a===b&&(b=a+(c-a)/1e6),this.a=a,this.b=b,this.c=c,this.d=d,this.da=d-a,this.ca=c-a,this.ba=b-a},h=",x,y,z,left,top,right,bottom,marginTop,marginLeft,marginRight,marginBottom,paddingLeft,paddingTop,paddingRight,paddingBottom,backgroundPosition,backgroundPosition_y,",i=function(a,b,c,d){var e={a:a},f={},g={},h={c:d},i=(a+b)/2,j=(b+c)/2,k=(c+d)/2,l=(i+j)/2,m=(j+k)/2,n=(m-l)/8;return e.b=i+(a-i)/4,f.b=l+n,e.c=f.a=(e.b+f.b)/2,f.c=g.a=(l+m)/2,g.b=m-n,h.b=k+(d-k)/4,g.c=h.a=(g.b+h.b)/2,[e,f,g,h]},j=function(a,e,f,g,h){var j,k,l,m,n,o,p,q,r,s,t,u,v,w=a.length-1,x=0,y=a[0].a;for(j=0;w>j;j++)n=a[x],k=n.a,l=n.d,m=a[x+1].d,h?(t=b[j],u=c[j],v=(u+t)*e*.25/(g?.5:d[j]||.5),o=l-(l-k)*(g?.5*e:0!==t?v/t:0),p=l+(m-l)*(g?.5*e:0!==u?v/u:0),q=l-(o+((p-o)*(3*t/(t+u)+.5)/4||0))):(o=l-(l-k)*e*.5,p=l+(m-l)*e*.5,q=l-(o+p)/2),o+=q,p+=q,n.c=r=o,0!==j?n.b=y:n.b=y=n.a+.6*(n.c-n.a),n.da=l-k,n.ca=r-k,n.ba=y-k,f?(s=i(k,y,r,l),a.splice(x,1,s[0],s[1],s[2],s[3]),x+=4):x++,y=p;n=a[x],n.b=y,n.c=y+.4*(n.d-y),n.da=n.d-n.a,n.ca=n.c-n.a,n.ba=y-n.a,f&&(s=i(n.a,y,n.c,n.d),a.splice(x,1,s[0],s[1],s[2],s[3]))},k=function(a,d,e,f){var h,i,j,k,l,m,n=[];if(f)for(a=[f].concat(a),i=a.length;--i>-1;)"string"==typeof(m=a[i][d])&&"="===m.charAt(1)&&(a[i][d]=f[d]+Number(m.charAt(0)+m.substr(2)));if(h=a.length-2,0>h)return n[0]=new g(a[0][d],0,0,a[0][d]),n;for(i=0;h>i;i++)j=a[i][d],k=a[i+1][d],n[i]=new g(j,0,0,k),e&&(l=a[i+2][d],b[i]=(b[i]||0)+(k-j)*(k-j),c[i]=(c[i]||0)+(l-k)*(l-k));return n[i]=new g(a[i][d],0,0,a[i+1][d]),n},l=function(a,f,g,i,l,m){var n,o,p,q,r,s,t,u,v={},w=[],x=m||a[0];l="string"==typeof l?","+l+",":h,null==f&&(f=1);for(o in a[0])w.push(o);if(a.length>1){for(u=a[a.length-1],t=!0,n=w.length;--n>-1;)if(o=w[n],Math.abs(x[o]-u[o])>.05){t=!1;break}t&&(a=a.concat(),m&&a.unshift(m),a.push(a[1]),m=a[a.length-3])}for(b.length=c.length=d.length=0,n=w.length;--n>-1;)o=w[n],e[o]=-1!==l.indexOf(","+o+","),v[o]=k(a,o,e[o],m);for(n=b.length;--n>-1;)b[n]=Math.sqrt(b[n]),
c[n]=Math.sqrt(c[n]);if(!i){for(n=w.length;--n>-1;)if(e[o])for(p=v[w[n]],s=p.length-1,q=0;s>q;q++)r=p[q+1].da/c[q]+p[q].da/b[q]||0,d[q]=(d[q]||0)+r*r;for(n=d.length;--n>-1;)d[n]=Math.sqrt(d[n])}for(n=w.length,q=g?4:1;--n>-1;)o=w[n],p=v[o],j(p,f,g,i,e[o]),t&&(p.splice(0,q),p.splice(p.length-q,q));return v},m=function(a,b,c){b=b||"soft";var d,e,f,h,i,j,k,l,m,n,o,p={},q="cubic"===b?3:2,r="soft"===b,s=[];if(r&&c&&(a=[c].concat(a)),null==a||a.length<q+1)throw"invalid Bezier data";for(m in a[0])s.push(m);for(j=s.length;--j>-1;){for(m=s[j],p[m]=i=[],n=0,l=a.length,k=0;l>k;k++)d=null==c?a[k][m]:"string"==typeof(o=a[k][m])&&"="===o.charAt(1)?c[m]+Number(o.charAt(0)+o.substr(2)):Number(o),r&&k>1&&l-1>k&&(i[n++]=(d+i[n-2])/2),i[n++]=d;for(l=n-q+1,n=0,k=0;l>k;k+=q)d=i[k],e=i[k+1],f=i[k+2],h=2===q?0:i[k+3],i[n++]=o=3===q?new g(d,e,f,h):new g(d,(2*e+d)/3,(2*e+f)/3,f);i.length=n}return p},n=function(a,b,c){for(var d,e,f,g,h,i,j,k,l,m,n,o=1/c,p=a.length;--p>-1;)for(m=a[p],f=m.a,g=m.d-f,h=m.c-f,i=m.b-f,d=e=0,k=1;c>=k;k++)j=o*k,l=1-j,d=e-(e=(j*j*g+3*l*(j*h+l*i))*j),n=p*c+k-1,b[n]=(b[n]||0)+d*d},o=function(a,b){b=b>>0||6;var c,d,e,f,g=[],h=[],i=0,j=0,k=b-1,l=[],m=[];for(c in a)n(a[c],g,b);for(e=g.length,d=0;e>d;d++)i+=Math.sqrt(g[d]),f=d%b,m[f]=i,f===k&&(j+=i,f=d/b>>0,l[f]=m,h[f]=j,i=0,m=[]);return{length:j,lengths:h,segments:l}},p=_gsScope._gsDefine.plugin({propName:"bezier",priority:-1,version:"1.3.8",API:2,global:!0,init:function(a,b,c){this._target=a,b instanceof Array&&(b={values:b}),this._func={},this._mod={},this._props=[],this._timeRes=null==b.timeResolution?6:parseInt(b.timeResolution,10);var d,e,f,g,h,i=b.values||[],j={},k=i[0],n=b.autoRotate||c.vars.orientToBezier;this._autoRotate=n?n instanceof Array?n:[["x","y","rotation",n===!0?0:Number(n)||0]]:null;for(d in k)this._props.push(d);for(f=this._props.length;--f>-1;)d=this._props[f],this._overwriteProps.push(d),e=this._func[d]="function"==typeof a[d],j[d]=e?a[d.indexOf("set")||"function"!=typeof a["get"+d.substr(3)]?d:"get"+d.substr(3)]():parseFloat(a[d]),h||j[d]!==i[0][d]&&(h=j);if(this._beziers="cubic"!==b.type&&"quadratic"!==b.type&&"soft"!==b.type?l(i,isNaN(b.curviness)?1:b.curviness,!1,"thruBasic"===b.type,b.correlate,h):m(i,b.type,j),this._segCount=this._beziers[d].length,this._timeRes){var p=o(this._beziers,this._timeRes);this._length=p.length,this._lengths=p.lengths,this._segments=p.segments,this._l1=this._li=this._s1=this._si=0,this._l2=this._lengths[0],this._curSeg=this._segments[0],this._s2=this._curSeg[0],this._prec=1/this._curSeg.length}if(n=this._autoRotate)for(this._initialRotations=[],n[0]instanceof Array||(this._autoRotate=n=[n]),f=n.length;--f>-1;){for(g=0;3>g;g++)d=n[f][g],this._func[d]="function"==typeof a[d]?a[d.indexOf("set")||"function"!=typeof a["get"+d.substr(3)]?d:"get"+d.substr(3)]:!1;d=n[f][2],this._initialRotations[f]=(this._func[d]?this._func[d].call(this._target):this._target[d])||0,this._overwriteProps.push(d)}return this._startRatio=c.vars.runBackwards?1:0,!0},set:function(b){var c,d,e,f,g,h,i,j,k,l,m=this._segCount,n=this._func,o=this._target,p=b!==this._startRatio;if(this._timeRes){if(k=this._lengths,l=this._curSeg,b*=this._length,e=this._li,b>this._l2&&m-1>e){for(j=m-1;j>e&&(this._l2=k[++e])<=b;);this._l1=k[e-1],this._li=e,this._curSeg=l=this._segments[e],this._s2=l[this._s1=this._si=0]}else if(b<this._l1&&e>0){for(;e>0&&(this._l1=k[--e])>=b;);0===e&&b<this._l1?this._l1=0:e++,this._l2=k[e],this._li=e,this._curSeg=l=this._segments[e],this._s1=l[(this._si=l.length-1)-1]||0,this._s2=l[this._si]}if(c=e,b-=this._l1,e=this._si,b>this._s2&&e<l.length-1){for(j=l.length-1;j>e&&(this._s2=l[++e])<=b;);this._s1=l[e-1],this._si=e}else if(b<this._s1&&e>0){for(;e>0&&(this._s1=l[--e])>=b;);0===e&&b<this._s1?this._s1=0:e++,this._s2=l[e],this._si=e}h=(e+(b-this._s1)/(this._s2-this._s1))*this._prec||0}else c=0>b?0:b>=1?m-1:m*b>>0,h=(b-c*(1/m))*m;for(d=1-h,e=this._props.length;--e>-1;)f=this._props[e],g=this._beziers[f][c],i=(h*h*g.da+3*d*(h*g.ca+d*g.ba))*h+g.a,this._mod[f]&&(i=this._mod[f](i,o)),n[f]?o[f](i):o[f]=i;if(this._autoRotate){var q,r,s,t,u,v,w,x=this._autoRotate;for(e=x.length;--e>-1;)f=x[e][2],v=x[e][3]||0,w=x[e][4]===!0?1:a,g=this._beziers[x[e][0]],q=this._beziers[x[e][1]],g&&q&&(g=g[c],q=q[c],r=g.a+(g.b-g.a)*h,t=g.b+(g.c-g.b)*h,r+=(t-r)*h,t+=(g.c+(g.d-g.c)*h-t)*h,s=q.a+(q.b-q.a)*h,u=q.b+(q.c-q.b)*h,s+=(u-s)*h,u+=(q.c+(q.d-q.c)*h-u)*h,i=p?Math.atan2(u-s,t-r)*w+v:this._initialRotations[e],this._mod[f]&&(i=this._mod[f](i,o)),n[f]?o[f](i):o[f]=i)}}}),q=p.prototype;p.bezierThrough=l,p.cubicToQuadratic=i,p._autoCSS=!0,p.quadraticToCubic=function(a,b,c){return new g(a,(2*b+a)/3,(2*b+c)/3,c)},p._cssRegister=function(){var a=f.CSSPlugin;if(a){var b=a._internals,c=b._parseToProxy,d=b._setPluginRatio,e=b.CSSPropTween;b._registerComplexSpecialProp("bezier",{parser:function(a,b,f,g,h,i){b instanceof Array&&(b={values:b}),i=new p;var j,k,l,m=b.values,n=m.length-1,o=[],q={};if(0>n)return h;for(j=0;n>=j;j++)l=c(a,m[j],g,h,i,n!==j),o[j]=l.end;for(k in b)q[k]=b[k];return q.values=o,h=new e(a,"bezier",0,0,l.pt,2),h.data=l,h.plugin=i,h.setRatio=d,0===q.autoRotate&&(q.autoRotate=!0),!q.autoRotate||q.autoRotate instanceof Array||(j=q.autoRotate===!0?0:Number(q.autoRotate),q.autoRotate=null!=l.end.left?[["left","top","rotation",j,!1]]:null!=l.end.x?[["x","y","rotation",j,!1]]:!1),q.autoRotate&&(g._transform||g._enableTransforms(!1),l.autoRotate=g._target._gsTransform,l.proxy.rotation=l.autoRotate.rotation||0,g._overwriteProps.push("rotation")),i._onInitTween(l.proxy,q,g._tween),h}})}},q._mod=function(a){for(var b,c=this._overwriteProps,d=c.length;--d>-1;)b=a[c[d]],b&&"function"==typeof b&&(this._mod[c[d]]=b)},q._kill=function(a){var b,c,d=this._props;for(b in this._beziers)if(b in a)for(delete this._beziers[b],delete this._func[b],c=d.length;--c>-1;)d[c]===b&&d.splice(c,1);if(d=this._autoRotate)for(c=d.length;--c>-1;)a[d[c][2]]&&d.splice(c,1);return this._super._kill.call(this,a)}}(),_gsScope._gsDefine("plugins.CSSPlugin",["plugins.TweenPlugin","TweenLite"],function(a,b){var c,d,e,f,g=function(){a.call(this,"css"),this._overwriteProps.length=0,this.setRatio=g.prototype.setRatio},h=_gsScope._gsDefine.globals,i={},j=g.prototype=new a("css");j.constructor=g,g.version="2.0.2",g.API=2,g.defaultTransformPerspective=0,g.defaultSkewType="compensated",g.defaultSmoothOrigin=!0,j="px",g.suffixMap={top:j,right:j,bottom:j,left:j,width:j,height:j,fontSize:j,padding:j,margin:j,perspective:j,lineHeight:""};var k,l,m,n,o,p,q,r,s=/(?:\-|\.|\b)(\d|\.|e\-)+/g,t=/(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,u=/(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi,v=/(?![+-]?\d*\.?\d+|[+-]|e[+-]\d+)[^0-9]/g,w=/(?:\d|\-|\+|=|#|\.)*/g,x=/opacity *=*([^)]*)/i,y=/opacity:([^;]*)/i,z=/alpha\(opacity *=.+?\)/i,A=/^(rgb|hsl)/,B=/([A-Z])/g,C=/-([a-z])/gi,D=/(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi,E=function(a,b){return b.toUpperCase()},F=/(?:Left|Right|Width)/i,G=/(M11|M12|M21|M22)=[\d\-\.e]+/gi,H=/progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i,I=/,(?=[^\)]*(?:\(|$))/gi,J=/[\s,\(]/i,K=Math.PI/180,L=180/Math.PI,M={},N={style:{}},O=_gsScope.document||{createElement:function(){return N}},P=function(a,b){return O.createElementNS?O.createElementNS(b||"http://www.w3.org/1999/xhtml",a):O.createElement(a)},Q=P("div"),R=P("img"),S=g._internals={_specialProps:i},T=(_gsScope.navigator||{}).userAgent||"",U=function(){var a=T.indexOf("Android"),b=P("a");return m=-1!==T.indexOf("Safari")&&-1===T.indexOf("Chrome")&&(-1===a||parseFloat(T.substr(a+8,2))>3),o=m&&parseFloat(T.substr(T.indexOf("Version/")+8,2))<6,n=-1!==T.indexOf("Firefox"),(/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(T)||/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(T))&&(p=parseFloat(RegExp.$1)),b?(b.style.cssText="top:1px;opacity:.55;",/^0.55/.test(b.style.opacity)):!1}(),V=function(a){return x.test("string"==typeof a?a:(a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100:1},W=function(a){_gsScope.console&&console.log(a)},X="",Y="",Z=function(a,b){b=b||Q;var c,d,e=b.style;if(void 0!==e[a])return a;for(a=a.charAt(0).toUpperCase()+a.substr(1),c=["O","Moz","ms","Ms","Webkit"],d=5;--d>-1&&void 0===e[c[d]+a];);return d>=0?(Y=3===d?"ms":c[d],X="-"+Y.toLowerCase()+"-",Y+a):null},$=("undefined"!=typeof window?window:O.defaultView||{getComputedStyle:function(){}}).getComputedStyle,_=g.getStyle=function(a,b,c,d,e){var f;return U||"opacity"!==b?(!d&&a.style[b]?f=a.style[b]:(c=c||$(a))?f=c[b]||c.getPropertyValue(b)||c.getPropertyValue(b.replace(B,"-$1").toLowerCase()):a.currentStyle&&(f=a.currentStyle[b]),null==e||f&&"none"!==f&&"auto"!==f&&"auto auto"!==f?f:e):V(a)},aa=S.convertToPixels=function(a,c,d,e,f){if("px"===e||!e&&"lineHeight"!==c)return d;if("auto"===e||!d)return 0;var h,i,j,k=F.test(c),l=a,m=Q.style,n=0>d,o=1===d;if(n&&(d=-d),o&&(d*=100),"lineHeight"!==c||e)if("%"===e&&-1!==c.indexOf("border"))h=d/100*(k?a.clientWidth:a.clientHeight);else{if(m.cssText="border:0 solid red;position:"+_(a,"position")+";line-height:0;","%"!==e&&l.appendChild&&"v"!==e.charAt(0)&&"rem"!==e)m[k?"borderLeftWidth":"borderTopWidth"]=d+e;else{if(l=a.parentNode||O.body,-1!==_(l,"display").indexOf("flex")&&(m.position="absolute"),i=l._gsCache,j=b.ticker.frame,i&&k&&i.time===j)return i.width*d/100;m[k?"width":"height"]=d+e}l.appendChild(Q),h=parseFloat(Q[k?"offsetWidth":"offsetHeight"]),l.removeChild(Q),k&&"%"===e&&g.cacheWidths!==!1&&(i=l._gsCache=l._gsCache||{},i.time=j,i.width=h/d*100),0!==h||f||(h=aa(a,c,d,e,!0))}else i=$(a).lineHeight,a.style.lineHeight=d,h=parseFloat($(a).lineHeight),a.style.lineHeight=i;return o&&(h/=100),n?-h:h},ba=S.calculateOffset=function(a,b,c){if("absolute"!==_(a,"position",c))return 0;var d="left"===b?"Left":"Top",e=_(a,"margin"+d,c);return a["offset"+d]-(aa(a,b,parseFloat(e),e.replace(w,""))||0)},ca=function(a,b){var c,d,e,f={};if(b=b||$(a,null))if(c=b.length)for(;--c>-1;)e=b[c],(-1===e.indexOf("-transform")||Da===e)&&(f[e.replace(C,E)]=b.getPropertyValue(e));else for(c in b)(-1===c.indexOf("Transform")||Ca===c)&&(f[c]=b[c]);else if(b=a.currentStyle||a.style)for(c in b)"string"==typeof c&&void 0===f[c]&&(f[c.replace(C,E)]=b[c]);return U||(f.opacity=V(a)),d=Ra(a,b,!1),f.rotation=d.rotation,f.skewX=d.skewX,f.scaleX=d.scaleX,f.scaleY=d.scaleY,f.x=d.x,f.y=d.y,Fa&&(f.z=d.z,f.rotationX=d.rotationX,f.rotationY=d.rotationY,f.scaleZ=d.scaleZ),f.filters&&delete f.filters,f},da=function(a,b,c,d,e){var f,g,h,i={},j=a.style;for(g in c)"cssText"!==g&&"length"!==g&&isNaN(g)&&(b[g]!==(f=c[g])||e&&e[g])&&-1===g.indexOf("Origin")&&("number"==typeof f||"string"==typeof f)&&(i[g]="auto"!==f||"left"!==g&&"top"!==g?""!==f&&"auto"!==f&&"none"!==f||"string"!=typeof b[g]||""===b[g].replace(v,"")?f:0:ba(a,g),void 0!==j[g]&&(h=new sa(j,g,j[g],h)));if(d)for(g in d)"className"!==g&&(i[g]=d[g]);return{difs:i,firstMPT:h}},ea={width:["Left","Right"],height:["Top","Bottom"]},fa=["marginLeft","marginRight","marginTop","marginBottom"],ga=function(a,b,c){if("svg"===(a.nodeName+"").toLowerCase())return(c||$(a))[b]||0;if(a.getCTM&&Oa(a))return a.getBBox()[b]||0;var d=parseFloat("width"===b?a.offsetWidth:a.offsetHeight),e=ea[b],f=e.length;for(c=c||$(a,null);--f>-1;)d-=parseFloat(_(a,"padding"+e[f],c,!0))||0,d-=parseFloat(_(a,"border"+e[f]+"Width",c,!0))||0;return d},ha=function(a,b){if("contain"===a||"auto"===a||"auto auto"===a)return a+" ";(null==a||""===a)&&(a="0 0");var c,d=a.split(" "),e=-1!==a.indexOf("left")?"0%":-1!==a.indexOf("right")?"100%":d[0],f=-1!==a.indexOf("top")?"0%":-1!==a.indexOf("bottom")?"100%":d[1];if(d.length>3&&!b){for(d=a.split(", ").join(",").split(","),a=[],c=0;c<d.length;c++)a.push(ha(d[c]));return a.join(",")}return null==f?f="center"===e?"50%":"0":"center"===f&&(f="50%"),("center"===e||isNaN(parseFloat(e))&&-1===(e+"").indexOf("="))&&(e="50%"),a=e+" "+f+(d.length>2?" "+d[2]:""),b&&(b.oxp=-1!==e.indexOf("%"),b.oyp=-1!==f.indexOf("%"),b.oxr="="===e.charAt(1),b.oyr="="===f.charAt(1),b.ox=parseFloat(e.replace(v,"")),b.oy=parseFloat(f.replace(v,"")),b.v=a),b||a},ia=function(a,b){return"function"==typeof a&&(a=a(r,q)),"string"==typeof a&&"="===a.charAt(1)?parseInt(a.charAt(0)+"1",10)*parseFloat(a.substr(2)):parseFloat(a)-parseFloat(b)||0},ja=function(a,b){"function"==typeof a&&(a=a(r,q));var c="string"==typeof a&&"="===a.charAt(1);return"string"==typeof a&&"v"===a.charAt(a.length-2)&&(a=(c?a.substr(0,2):0)+window["inner"+("vh"===a.substr(-2)?"Height":"Width")]*(parseFloat(c?a.substr(2):a)/100)),null==a?b:c?parseInt(a.charAt(0)+"1",10)*parseFloat(a.substr(2))+b:parseFloat(a)||0},ka=function(a,b,c,d){var e,f,g,h,i,j=1e-6;return"function"==typeof a&&(a=a(r,q)),null==a?h=b:"number"==typeof a?h=a:(e=360,f=a.split("_"),i="="===a.charAt(1),g=(i?parseInt(a.charAt(0)+"1",10)*parseFloat(f[0].substr(2)):parseFloat(f[0]))*(-1===a.indexOf("rad")?1:L)-(i?0:b),f.length&&(d&&(d[c]=b+g),-1!==a.indexOf("short")&&(g%=e,g!==g%(e/2)&&(g=0>g?g+e:g-e)),-1!==a.indexOf("_cw")&&0>g?g=(g+9999999999*e)%e-(g/e|0)*e:-1!==a.indexOf("ccw")&&g>0&&(g=(g-9999999999*e)%e-(g/e|0)*e)),h=b+g),j>h&&h>-j&&(h=0),h},la={aqua:[0,255,255],lime:[0,255,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,255],navy:[0,0,128],white:[255,255,255],fuchsia:[255,0,255],olive:[128,128,0],yellow:[255,255,0],orange:[255,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[255,0,0],pink:[255,192,203],cyan:[0,255,255],transparent:[255,255,255,0]},ma=function(a,b,c){return a=0>a?a+1:a>1?a-1:a,255*(1>6*a?b+(c-b)*a*6:.5>a?c:2>3*a?b+(c-b)*(2/3-a)*6:b)+.5|0},na=g.parseColor=function(a,b){var c,d,e,f,g,h,i,j,k,l,m;if(a)if("number"==typeof a)c=[a>>16,a>>8&255,255&a];else{if(","===a.charAt(a.length-1)&&(a=a.substr(0,a.length-1)),la[a])c=la[a];else if("#"===a.charAt(0))4===a.length&&(d=a.charAt(1),e=a.charAt(2),f=a.charAt(3),a="#"+d+d+e+e+f+f),a=parseInt(a.substr(1),16),c=[a>>16,a>>8&255,255&a];else if("hsl"===a.substr(0,3))if(c=m=a.match(s),b){if(-1!==a.indexOf("="))return a.match(t)}else g=Number(c[0])%360/360,h=Number(c[1])/100,i=Number(c[2])/100,e=.5>=i?i*(h+1):i+h-i*h,d=2*i-e,c.length>3&&(c[3]=Number(c[3])),c[0]=ma(g+1/3,d,e),c[1]=ma(g,d,e),c[2]=ma(g-1/3,d,e);else c=a.match(s)||la.transparent;c[0]=Number(c[0]),c[1]=Number(c[1]),c[2]=Number(c[2]),c.length>3&&(c[3]=Number(c[3]))}else c=la.black;return b&&!m&&(d=c[0]/255,e=c[1]/255,f=c[2]/255,j=Math.max(d,e,f),k=Math.min(d,e,f),i=(j+k)/2,j===k?g=h=0:(l=j-k,h=i>.5?l/(2-j-k):l/(j+k),g=j===d?(e-f)/l+(f>e?6:0):j===e?(f-d)/l+2:(d-e)/l+4,g*=60),c[0]=g+.5|0,c[1]=100*h+.5|0,c[2]=100*i+.5|0),c},oa=function(a,b){var c,d,e,f=a.match(pa)||[],g=0,h="";if(!f.length)return a;for(c=0;c<f.length;c++)d=f[c],e=a.substr(g,a.indexOf(d,g)-g),g+=e.length+d.length,d=na(d,b),3===d.length&&d.push(1),h+=e+(b?"hsla("+d[0]+","+d[1]+"%,"+d[2]+"%,"+d[3]:"rgba("+d.join(","))+")";return h+a.substr(g)},pa="(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3}){1,2}\\b";for(j in la)pa+="|"+j+"\\b";pa=new RegExp(pa+")","gi"),g.colorStringFilter=function(a){var b,c=a[0]+" "+a[1];pa.test(c)&&(b=-1!==c.indexOf("hsl(")||-1!==c.indexOf("hsla("),a[0]=oa(a[0],b),a[1]=oa(a[1],b)),pa.lastIndex=0},b.defaultStringFilter||(b.defaultStringFilter=g.colorStringFilter);var qa=function(a,b,c,d){if(null==a)return function(a){return a};var e,f=b?(a.match(pa)||[""])[0]:"",g=a.split(f).join("").match(u)||[],h=a.substr(0,a.indexOf(g[0])),i=")"===a.charAt(a.length-1)?")":"",j=-1!==a.indexOf(" ")?" ":",",k=g.length,l=k>0?g[0].replace(s,""):"";return k?e=b?function(a){var b,m,n,o;if("number"==typeof a)a+=l;else if(d&&I.test(a)){for(o=a.replace(I,"|").split("|"),n=0;n<o.length;n++)o[n]=e(o[n]);return o.join(",")}if(b=(a.match(pa)||[f])[0],m=a.split(b).join("").match(u)||[],n=m.length,k>n--)for(;++n<k;)m[n]=c?m[(n-1)/2|0]:g[n];return h+m.join(j)+j+b+i+(-1!==a.indexOf("inset")?" inset":"")}:function(a){var b,f,m;if("number"==typeof a)a+=l;else if(d&&I.test(a)){for(f=a.replace(I,"|").split("|"),m=0;m<f.length;m++)f[m]=e(f[m]);return f.join(",")}if(b=a.match(u)||[],m=b.length,k>m--)for(;++m<k;)b[m]=c?b[(m-1)/2|0]:g[m];return h+b.join(j)+i}:function(a){return a}},ra=function(a){return a=a.split(","),function(b,c,d,e,f,g,h){var i,j=(c+"").split(" ");for(h={},i=0;4>i;i++)h[a[i]]=j[i]=j[i]||j[(i-1)/2>>0];return e.parse(b,h,f,g)}},sa=(S._setPluginRatio=function(a){this.plugin.setRatio(a);for(var b,c,d,e,f,g=this.data,h=g.proxy,i=g.firstMPT,j=1e-6;i;)b=h[i.v],i.r?b=i.r(b):j>b&&b>-j&&(b=0),i.t[i.p]=b,i=i._next;if(g.autoRotate&&(g.autoRotate.rotation=g.mod?g.mod.call(this._tween,h.rotation,this.t,this._tween):h.rotation),1===a||0===a)for(i=g.firstMPT,f=1===a?"e":"b";i;){if(c=i.t,c.type){if(1===c.type){for(e=c.xs0+c.s+c.xs1,d=1;d<c.l;d++)e+=c["xn"+d]+c["xs"+(d+1)];c[f]=e}}else c[f]=c.s+c.xs0;i=i._next}},function(a,b,c,d,e){this.t=a,this.p=b,this.v=c,this.r=e,d&&(d._prev=this,this._next=d)}),ta=(S._parseToProxy=function(a,b,c,d,e,f){var g,h,i,j,k,l=d,m={},n={},o=c._transform,p=M;for(c._transform=null,M=b,d=k=c.parse(a,b,d,e),M=p,f&&(c._transform=o,l&&(l._prev=null,l._prev&&(l._prev._next=null)));d&&d!==l;){if(d.type<=1&&(h=d.p,n[h]=d.s+d.c,m[h]=d.s,f||(j=new sa(d,"s",h,j,d.r),d.c=0),1===d.type))for(g=d.l;--g>0;)i="xn"+g,h=d.p+"_"+i,n[h]=d.data[i],m[h]=d[i],f||(j=new sa(d,i,h,j,d.rxp[i]));d=d._next}return{proxy:m,end:n,firstMPT:j,pt:k}},S.CSSPropTween=function(a,b,d,e,g,h,i,j,k,l,m){this.t=a,this.p=b,this.s=d,this.c=e,this.n=i||b,a instanceof ta||f.push(this.n),this.r=j?"function"==typeof j?j:Math.round:j,this.type=h||0,k&&(this.pr=k,c=!0),this.b=void 0===l?d:l,this.e=void 0===m?d+e:m,g&&(this._next=g,g._prev=this)}),ua=function(a,b,c,d,e,f){var g=new ta(a,b,c,d-c,e,-1,f);return g.b=c,g.e=g.xs0=d,g},va=g.parseComplex=function(a,b,c,d,e,f,h,i,j,l){c=c||f||"","function"==typeof d&&(d=d(r,q)),h=new ta(a,b,0,0,h,l?2:1,null,!1,i,c,d),d+="",e&&pa.test(d+c)&&(d=[c,d],g.colorStringFilter(d),c=d[0],d=d[1]);var m,n,o,p,u,v,w,x,y,z,A,B,C,D=c.split(", ").join(",").split(" "),E=d.split(", ").join(",").split(" "),F=D.length,G=k!==!1;for((-1!==d.indexOf(",")||-1!==c.indexOf(","))&&(-1!==(d+c).indexOf("rgb")||-1!==(d+c).indexOf("hsl")?(D=D.join(" ").replace(I,", ").split(" "),E=E.join(" ").replace(I,", ").split(" ")):(D=D.join(" ").split(",").join(", ").split(" "),E=E.join(" ").split(",").join(", ").split(" ")),F=D.length),F!==E.length&&(D=(f||"").split(" "),F=D.length),h.plugin=j,h.setRatio=l,pa.lastIndex=0,m=0;F>m;m++)if(p=D[m],u=E[m]+"",x=parseFloat(p),x||0===x)h.appendXtra("",x,ia(u,x),u.replace(t,""),G&&-1!==u.indexOf("px")?Math.round:!1,!0);else if(e&&pa.test(p))B=u.indexOf(")")+1,B=")"+(B?u.substr(B):""),C=-1!==u.indexOf("hsl")&&U,z=u,p=na(p,C),u=na(u,C),y=p.length+u.length>6,y&&!U&&0===u[3]?(h["xs"+h.l]+=h.l?" transparent":"transparent",h.e=h.e.split(E[m]).join("transparent")):(U||(y=!1),C?h.appendXtra(z.substr(0,z.indexOf("hsl"))+(y?"hsla(":"hsl("),p[0],ia(u[0],p[0]),",",!1,!0).appendXtra("",p[1],ia(u[1],p[1]),"%,",!1).appendXtra("",p[2],ia(u[2],p[2]),y?"%,":"%"+B,!1):h.appendXtra(z.substr(0,z.indexOf("rgb"))+(y?"rgba(":"rgb("),p[0],u[0]-p[0],",",Math.round,!0).appendXtra("",p[1],u[1]-p[1],",",Math.round).appendXtra("",p[2],u[2]-p[2],y?",":B,Math.round),y&&(p=p.length<4?1:p[3],h.appendXtra("",p,(u.length<4?1:u[3])-p,B,!1))),pa.lastIndex=0;else if(v=p.match(s)){if(w=u.match(t),!w||w.length!==v.length)return h;for(o=0,n=0;n<v.length;n++)A=v[n],z=p.indexOf(A,o),h.appendXtra(p.substr(o,z-o),Number(A),ia(w[n],A),"",G&&"px"===p.substr(z+A.length,2)?Math.round:!1,0===n),o=z+A.length;h["xs"+h.l]+=p.substr(o)}else h["xs"+h.l]+=h.l||h["xs"+h.l]?" "+u:u;if(-1!==d.indexOf("=")&&h.data){for(B=h.xs0+h.data.s,m=1;m<h.l;m++)B+=h["xs"+m]+h.data["xn"+m];h.e=B+h["xs"+m]}return h.l||(h.type=-1,h.xs0=h.e),h.xfirst||h},wa=9;for(j=ta.prototype,j.l=j.pr=0;--wa>0;)j["xn"+wa]=0,j["xs"+wa]="";j.xs0="",j._next=j._prev=j.xfirst=j.data=j.plugin=j.setRatio=j.rxp=null,j.appendXtra=function(a,b,c,d,e,f){var g=this,h=g.l;return g["xs"+h]+=f&&(h||g["xs"+h])?" "+a:a||"",c||0===h||g.plugin?(g.l++,g.type=g.setRatio?2:1,g["xs"+g.l]=d||"",h>0?(g.data["xn"+h]=b+c,g.rxp["xn"+h]=e,g["xn"+h]=b,g.plugin||(g.xfirst=new ta(g,"xn"+h,b,c,g.xfirst||g,0,g.n,e,g.pr),g.xfirst.xs0=0),g):(g.data={s:b+c},g.rxp={},g.s=b,g.c=c,g.r=e,g)):(g["xs"+h]+=b+(d||""),g)};var xa=function(a,b){b=b||{},this.p=b.prefix?Z(a)||a:a,i[a]=i[this.p]=this,this.format=b.formatter||qa(b.defaultValue,b.color,b.collapsible,b.multi),b.parser&&(this.parse=b.parser),this.clrs=b.color,this.multi=b.multi,this.keyword=b.keyword,this.dflt=b.defaultValue,this.pr=b.priority||0},ya=S._registerComplexSpecialProp=function(a,b,c){"object"!=typeof b&&(b={parser:c});var d,e,f=a.split(","),g=b.defaultValue;for(c=c||[g],d=0;d<f.length;d++)b.prefix=0===d&&b.prefix,b.defaultValue=c[d]||g,e=new xa(f[d],b)},za=S._registerPluginProp=function(a){if(!i[a]){var b=a.charAt(0).toUpperCase()+a.substr(1)+"Plugin";ya(a,{parser:function(a,c,d,e,f,g,j){var k=h.com.greensock.plugins[b];return k?(k._cssRegister(),i[d].parse(a,c,d,e,f,g,j)):(W("Error: "+b+" js file not loaded."),f)}})}};j=xa.prototype,j.parseComplex=function(a,b,c,d,e,f){var g,h,i,j,k,l,m=this.keyword;if(this.multi&&(I.test(c)||I.test(b)?(h=b.replace(I,"|").split("|"),i=c.replace(I,"|").split("|")):m&&(h=[b],i=[c])),i){for(j=i.length>h.length?i.length:h.length,g=0;j>g;g++)b=h[g]=h[g]||this.dflt,c=i[g]=i[g]||this.dflt,m&&(k=b.indexOf(m),l=c.indexOf(m),k!==l&&(-1===l?h[g]=h[g].split(m).join(""):-1===k&&(h[g]+=" "+m)));b=h.join(", "),c=i.join(", ")}return va(a,this.p,b,c,this.clrs,this.dflt,d,this.pr,e,f)},j.parse=function(a,b,c,d,f,g,h){return this.parseComplex(a.style,this.format(_(a,this.p,e,!1,this.dflt)),this.format(b),f,g)},g.registerSpecialProp=function(a,b,c){ya(a,{parser:function(a,d,e,f,g,h,i){var j=new ta(a,e,0,0,g,2,e,!1,c);return j.plugin=h,j.setRatio=b(a,d,f._tween,e),j},priority:c})},g.useSVGTransformAttr=!0;var Aa,Ba="scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective,xPercent,yPercent".split(","),Ca=Z("transform"),Da=X+"transform",Ea=Z("transformOrigin"),Fa=null!==Z("perspective"),Ga=S.Transform=function(){this.perspective=parseFloat(g.defaultTransformPerspective)||0,this.force3D=g.defaultForce3D!==!1&&Fa?g.defaultForce3D||"auto":!1},Ha=_gsScope.SVGElement,Ia=function(a,b,c){var d,e=O.createElementNS("http://www.w3.org/2000/svg",a),f=/([a-z])([A-Z])/g;for(d in c)e.setAttributeNS(null,d.replace(f,"$1-$2").toLowerCase(),c[d]);return b.appendChild(e),e},Ja=O.documentElement||{},Ka=function(){var a,b,c,d=p||/Android/i.test(T)&&!_gsScope.chrome;return O.createElementNS&&!d&&(a=Ia("svg",Ja),b=Ia("rect",a,{width:100,height:50,x:100}),c=b.getBoundingClientRect().width,b.style[Ea]="50% 50%",b.style[Ca]="scaleX(0.5)",d=c===b.getBoundingClientRect().width&&!(n&&Fa),Ja.removeChild(a)),d}(),La=function(a,b,c,d,e,f){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=a._gsTransform,w=Qa(a,!0);v&&(t=v.xOrigin,u=v.yOrigin),(!d||(h=d.split(" ")).length<2)&&(n=a.getBBox(),0===n.x&&0===n.y&&n.width+n.height===0&&(n={x:parseFloat(a.hasAttribute("x")?a.getAttribute("x"):a.hasAttribute("cx")?a.getAttribute("cx"):0)||0,y:parseFloat(a.hasAttribute("y")?a.getAttribute("y"):a.hasAttribute("cy")?a.getAttribute("cy"):0)||0,width:0,height:0}),b=ha(b).split(" "),h=[(-1!==b[0].indexOf("%")?parseFloat(b[0])/100*n.width:parseFloat(b[0]))+n.x,(-1!==b[1].indexOf("%")?parseFloat(b[1])/100*n.height:parseFloat(b[1]))+n.y]),c.xOrigin=k=parseFloat(h[0]),c.yOrigin=l=parseFloat(h[1]),d&&w!==Pa&&(m=w[0],n=w[1],o=w[2],p=w[3],q=w[4],r=w[5],s=m*p-n*o,s&&(i=k*(p/s)+l*(-o/s)+(o*r-p*q)/s,j=k*(-n/s)+l*(m/s)-(m*r-n*q)/s,k=c.xOrigin=h[0]=i,l=c.yOrigin=h[1]=j)),v&&(f&&(c.xOffset=v.xOffset,c.yOffset=v.yOffset,v=c),e||e!==!1&&g.defaultSmoothOrigin!==!1?(i=k-t,j=l-u,v.xOffset+=i*w[0]+j*w[2]-i,v.yOffset+=i*w[1]+j*w[3]-j):v.xOffset=v.yOffset=0),f||a.setAttribute("data-svg-origin",h.join(" "))},Ma=function(a){var b,c=P("svg",this.ownerSVGElement&&this.ownerSVGElement.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),d=this.parentNode,e=this.nextSibling,f=this.style.cssText;if(Ja.appendChild(c),c.appendChild(this),this.style.display="block",a)try{b=this.getBBox(),this._originalGetBBox=this.getBBox,this.getBBox=Ma}catch(g){}else this._originalGetBBox&&(b=this._originalGetBBox());return e?d.insertBefore(this,e):d.appendChild(this),Ja.removeChild(c),this.style.cssText=f,b},Na=function(a){try{return a.getBBox()}catch(b){return Ma.call(a,!0)}},Oa=function(a){return!(!Ha||!a.getCTM||a.parentNode&&!a.ownerSVGElement||!Na(a))},Pa=[1,0,0,1,0,0],Qa=function(a,b){var c,d,e,f,g,h,i=a._gsTransform||new Ga,j=1e5,k=a.style;if(Ca?d=_(a,Da,null,!0):a.currentStyle&&(d=a.currentStyle.filter.match(G),d=d&&4===d.length?[d[0].substr(4),Number(d[2].substr(4)),Number(d[1].substr(4)),d[3].substr(4),i.x||0,i.y||0].join(","):""),c=!d||"none"===d||"matrix(1, 0, 0, 1, 0, 0)"===d,!Ca||!(h=!$(a)||"none"===$(a).display)&&a.parentNode||(h&&(f=k.display,k.display="block"),a.parentNode||(g=1,Ja.appendChild(a)),d=_(a,Da,null,!0),c=!d||"none"===d||"matrix(1, 0, 0, 1, 0, 0)"===d,f?k.display=f:h&&Va(k,"display"),g&&Ja.removeChild(a)),(i.svg||a.getCTM&&Oa(a))&&(c&&-1!==(k[Ca]+"").indexOf("matrix")&&(d=k[Ca],c=0),e=a.getAttribute("transform"),c&&e&&(e=a.transform.baseVal.consolidate().matrix,d="matrix("+e.a+","+e.b+","+e.c+","+e.d+","+e.e+","+e.f+")",c=0)),c)return Pa;for(e=(d||"").match(s)||[],wa=e.length;--wa>-1;)f=Number(e[wa]),e[wa]=(g=f-(f|=0))?(g*j+(0>g?-.5:.5)|0)/j+f:f;return b&&e.length>6?[e[0],e[1],e[4],e[5],e[12],e[13]]:e},Ra=S.getTransform=function(a,c,d,e){if(a._gsTransform&&d&&!e)return a._gsTransform;var f,h,i,j,k,l,m=d?a._gsTransform||new Ga:new Ga,n=m.scaleX<0,o=2e-5,p=1e5,q=Fa?parseFloat(_(a,Ea,c,!1,"0 0 0").split(" ")[2])||m.zOrigin||0:0,r=parseFloat(g.defaultTransformPerspective)||0;if(m.svg=!(!a.getCTM||!Oa(a)),m.svg&&(La(a,_(a,Ea,c,!1,"50% 50%")+"",m,a.getAttribute("data-svg-origin")),Aa=g.useSVGTransformAttr||Ka),f=Qa(a),f!==Pa){if(16===f.length){var s,t,u,v,w,x=f[0],y=f[1],z=f[2],A=f[3],B=f[4],C=f[5],D=f[6],E=f[7],F=f[8],G=f[9],H=f[10],I=f[12],J=f[13],K=f[14],M=f[11],N=Math.atan2(D,H);m.zOrigin&&(K=-m.zOrigin,I=F*K-f[12],J=G*K-f[13],K=H*K+m.zOrigin-f[14]),m.rotationX=N*L,N&&(v=Math.cos(-N),w=Math.sin(-N),s=B*v+F*w,t=C*v+G*w,u=D*v+H*w,F=B*-w+F*v,G=C*-w+G*v,H=D*-w+H*v,M=E*-w+M*v,B=s,C=t,D=u),N=Math.atan2(-z,H),m.rotationY=N*L,N&&(v=Math.cos(-N),w=Math.sin(-N),s=x*v-F*w,t=y*v-G*w,u=z*v-H*w,G=y*w+G*v,H=z*w+H*v,M=A*w+M*v,x=s,y=t,z=u),N=Math.atan2(y,x),m.rotation=N*L,N&&(v=Math.cos(N),w=Math.sin(N),s=x*v+y*w,t=B*v+C*w,u=F*v+G*w,y=y*v-x*w,C=C*v-B*w,G=G*v-F*w,x=s,B=t,F=u),m.rotationX&&Math.abs(m.rotationX)+Math.abs(m.rotation)>359.9&&(m.rotationX=m.rotation=0,m.rotationY=180-m.rotationY),N=Math.atan2(B,C),m.scaleX=(Math.sqrt(x*x+y*y+z*z)*p+.5|0)/p,m.scaleY=(Math.sqrt(C*C+D*D)*p+.5|0)/p,m.scaleZ=(Math.sqrt(F*F+G*G+H*H)*p+.5|0)/p,x/=m.scaleX,B/=m.scaleY,y/=m.scaleX,C/=m.scaleY,Math.abs(N)>o?(m.skewX=N*L,B=0,"simple"!==m.skewType&&(m.scaleY*=1/Math.cos(N))):m.skewX=0,m.perspective=M?1/(0>M?-M:M):0,m.x=I,m.y=J,m.z=K,m.svg&&(m.x-=m.xOrigin-(m.xOrigin*x-m.yOrigin*B),m.y-=m.yOrigin-(m.yOrigin*y-m.xOrigin*C))}else if(!Fa||e||!f.length||m.x!==f[4]||m.y!==f[5]||!m.rotationX&&!m.rotationY){var O=f.length>=6,P=O?f[0]:1,Q=f[1]||0,R=f[2]||0,S=O?f[3]:1;m.x=f[4]||0,m.y=f[5]||0,i=Math.sqrt(P*P+Q*Q),j=Math.sqrt(S*S+R*R),k=P||Q?Math.atan2(Q,P)*L:m.rotation||0,l=R||S?Math.atan2(R,S)*L+k:m.skewX||0,m.scaleX=i,m.scaleY=j,m.rotation=k,m.skewX=l,Fa&&(m.rotationX=m.rotationY=m.z=0,m.perspective=r,m.scaleZ=1),m.svg&&(m.x-=m.xOrigin-(m.xOrigin*P+m.yOrigin*R),m.y-=m.yOrigin-(m.xOrigin*Q+m.yOrigin*S))}Math.abs(m.skewX)>90&&Math.abs(m.skewX)<270&&(n?(m.scaleX*=-1,m.skewX+=m.rotation<=0?180:-180,m.rotation+=m.rotation<=0?180:-180):(m.scaleY*=-1,m.skewX+=m.skewX<=0?180:-180)),m.zOrigin=q;for(h in m)m[h]<o&&m[h]>-o&&(m[h]=0)}return d&&(a._gsTransform=m,m.svg&&(Aa&&a.style[Ca]?b.delayedCall(.001,function(){Va(a.style,Ca)}):!Aa&&a.getAttribute("transform")&&b.delayedCall(.001,function(){a.removeAttribute("transform")}))),m},Sa=function(a){var b,c,d=this.data,e=-d.rotation*K,f=e+d.skewX*K,g=1e5,h=(Math.cos(e)*d.scaleX*g|0)/g,i=(Math.sin(e)*d.scaleX*g|0)/g,j=(Math.sin(f)*-d.scaleY*g|0)/g,k=(Math.cos(f)*d.scaleY*g|0)/g,l=this.t.style,m=this.t.currentStyle;if(m){c=i,i=-j,j=-c,b=m.filter,l.filter="";var n,o,q=this.t.offsetWidth,r=this.t.offsetHeight,s="absolute"!==m.position,t="progid:DXImageTransform.Microsoft.Matrix(M11="+h+", M12="+i+", M21="+j+", M22="+k,u=d.x+q*d.xPercent/100,v=d.y+r*d.yPercent/100;if(null!=d.ox&&(n=(d.oxp?q*d.ox*.01:d.ox)-q/2,o=(d.oyp?r*d.oy*.01:d.oy)-r/2,u+=n-(n*h+o*i),v+=o-(n*j+o*k)),s?(n=q/2,o=r/2,t+=", Dx="+(n-(n*h+o*i)+u)+", Dy="+(o-(n*j+o*k)+v)+")"):t+=", sizingMethod='auto expand')",-1!==b.indexOf("DXImageTransform.Microsoft.Matrix(")?l.filter=b.replace(H,t):l.filter=t+" "+b,(0===a||1===a)&&1===h&&0===i&&0===j&&1===k&&(s&&-1===t.indexOf("Dx=0, Dy=0")||x.test(b)&&100!==parseFloat(RegExp.$1)||-1===b.indexOf(b.indexOf("Alpha"))&&l.removeAttribute("filter")),!s){var y,z,A,B=8>p?1:-1;for(n=d.ieOffsetX||0,o=d.ieOffsetY||0,d.ieOffsetX=Math.round((q-((0>h?-h:h)*q+(0>i?-i:i)*r))/2+u),d.ieOffsetY=Math.round((r-((0>k?-k:k)*r+(0>j?-j:j)*q))/2+v),wa=0;4>wa;wa++)z=fa[wa],y=m[z],c=-1!==y.indexOf("px")?parseFloat(y):aa(this.t,z,parseFloat(y),y.replace(w,""))||0,A=c!==d[z]?2>wa?-d.ieOffsetX:-d.ieOffsetY:2>wa?n-d.ieOffsetX:o-d.ieOffsetY,l[z]=(d[z]=Math.round(c-A*(0===wa||2===wa?1:B)))+"px"}}},Ta=S.set3DTransformRatio=S.setTransformRatio=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,o,p,q,r,s,t,u,v,w,x,y,z=this.data,A=this.t.style,B=z.rotation,C=z.rotationX,D=z.rotationY,E=z.scaleX,F=z.scaleY,G=z.scaleZ,H=z.x,I=z.y,J=z.z,L=z.svg,M=z.perspective,N=z.force3D,O=z.skewY,P=z.skewX;if(O&&(P+=O,B+=O),((1===a||0===a)&&"auto"===N&&(this.tween._totalTime===this.tween._totalDuration||!this.tween._totalTime)||!N)&&!J&&!M&&!D&&!C&&1===G||Aa&&L||!Fa)return void(B||P||L?(B*=K,x=P*K,y=1e5,c=Math.cos(B)*E,f=Math.sin(B)*E,d=Math.sin(B-x)*-F,g=Math.cos(B-x)*F,x&&"simple"===z.skewType&&(b=Math.tan(x-O*K),b=Math.sqrt(1+b*b),d*=b,g*=b,O&&(b=Math.tan(O*K),b=Math.sqrt(1+b*b),c*=b,f*=b)),L&&(H+=z.xOrigin-(z.xOrigin*c+z.yOrigin*d)+z.xOffset,I+=z.yOrigin-(z.xOrigin*f+z.yOrigin*g)+z.yOffset,Aa&&(z.xPercent||z.yPercent)&&(q=this.t.getBBox(),H+=.01*z.xPercent*q.width,I+=.01*z.yPercent*q.height),q=1e-6,q>H&&H>-q&&(H=0),q>I&&I>-q&&(I=0)),u=(c*y|0)/y+","+(f*y|0)/y+","+(d*y|0)/y+","+(g*y|0)/y+","+H+","+I+")",L&&Aa?this.t.setAttribute("transform","matrix("+u):A[Ca]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix(":"matrix(")+u):A[Ca]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix(":"matrix(")+E+",0,0,"+F+","+H+","+I+")");if(n&&(q=1e-4,q>E&&E>-q&&(E=G=2e-5),q>F&&F>-q&&(F=G=2e-5),!M||z.z||z.rotationX||z.rotationY||(M=0)),B||P)B*=K,r=c=Math.cos(B),s=f=Math.sin(B),P&&(B-=P*K,r=Math.cos(B),s=Math.sin(B),"simple"===z.skewType&&(b=Math.tan((P-O)*K),b=Math.sqrt(1+b*b),r*=b,s*=b,z.skewY&&(b=Math.tan(O*K),b=Math.sqrt(1+b*b),c*=b,f*=b))),d=-s,g=r;else{if(!(D||C||1!==G||M||L))return void(A[Ca]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) translate3d(":"translate3d(")+H+"px,"+I+"px,"+J+"px)"+(1!==E||1!==F?" scale("+E+","+F+")":""));c=g=1,d=f=0}k=1,e=h=i=j=l=m=0,o=M?-1/M:0,p=z.zOrigin,q=1e-6,v=",",w="0",B=D*K,B&&(r=Math.cos(B),s=Math.sin(B),i=-s,l=o*-s,e=c*s,h=f*s,k=r,o*=r,c*=r,f*=r),B=C*K,B&&(r=Math.cos(B),s=Math.sin(B),b=d*r+e*s,t=g*r+h*s,j=k*s,m=o*s,e=d*-s+e*r,h=g*-s+h*r,k*=r,o*=r,d=b,g=t),1!==G&&(e*=G,h*=G,k*=G,o*=G),1!==F&&(d*=F,g*=F,j*=F,m*=F),1!==E&&(c*=E,f*=E,i*=E,l*=E),(p||L)&&(p&&(H+=e*-p,I+=h*-p,J+=k*-p+p),L&&(H+=z.xOrigin-(z.xOrigin*c+z.yOrigin*d)+z.xOffset,I+=z.yOrigin-(z.xOrigin*f+z.yOrigin*g)+z.yOffset),q>H&&H>-q&&(H=w),q>I&&I>-q&&(I=w),q>J&&J>-q&&(J=0)),u=z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix3d(":"matrix3d(",u+=(q>c&&c>-q?w:c)+v+(q>f&&f>-q?w:f)+v+(q>i&&i>-q?w:i),u+=v+(q>l&&l>-q?w:l)+v+(q>d&&d>-q?w:d)+v+(q>g&&g>-q?w:g),C||D||1!==G?(u+=v+(q>j&&j>-q?w:j)+v+(q>m&&m>-q?w:m)+v+(q>e&&e>-q?w:e),u+=v+(q>h&&h>-q?w:h)+v+(q>k&&k>-q?w:k)+v+(q>o&&o>-q?w:o)+v):u+=",0,0,0,0,1,0,",u+=H+v+I+v+J+v+(M?1+-J/M:1)+")",A[Ca]=u;
};j=Ga.prototype,j.x=j.y=j.z=j.skewX=j.skewY=j.rotation=j.rotationX=j.rotationY=j.zOrigin=j.xPercent=j.yPercent=j.xOffset=j.yOffset=0,j.scaleX=j.scaleY=j.scaleZ=1,ya("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,svgOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType,xPercent,yPercent,smoothOrigin",{parser:function(a,b,c,d,f,h,i){if(d._lastParsedTransform===i)return f;d._lastParsedTransform=i;var j,k=i.scale&&"function"==typeof i.scale?i.scale:0;"function"==typeof i[c]&&(j=i[c],i[c]=b),k&&(i.scale=k(r,a));var l,m,n,o,p,s,t,u,v,w=a._gsTransform,x=a.style,y=1e-6,z=Ba.length,A=i,B={},C="transformOrigin",D=Ra(a,e,!0,A.parseTransform),E=A.transform&&("function"==typeof A.transform?A.transform(r,q):A.transform);if(D.skewType=A.skewType||D.skewType||g.defaultSkewType,d._transform=D,"rotationZ"in A&&(A.rotation=A.rotationZ),E&&"string"==typeof E&&Ca)m=Q.style,m[Ca]=E,m.display="block",m.position="absolute",-1!==E.indexOf("%")&&(m.width=_(a,"width"),m.height=_(a,"height")),O.body.appendChild(Q),l=Ra(Q,null,!1),"simple"===D.skewType&&(l.scaleY*=Math.cos(l.skewX*K)),D.svg&&(s=D.xOrigin,t=D.yOrigin,l.x-=D.xOffset,l.y-=D.yOffset,(A.transformOrigin||A.svgOrigin)&&(E={},La(a,ha(A.transformOrigin),E,A.svgOrigin,A.smoothOrigin,!0),s=E.xOrigin,t=E.yOrigin,l.x-=E.xOffset-D.xOffset,l.y-=E.yOffset-D.yOffset),(s||t)&&(u=Qa(Q,!0),l.x-=s-(s*u[0]+t*u[2]),l.y-=t-(s*u[1]+t*u[3]))),O.body.removeChild(Q),l.perspective||(l.perspective=D.perspective),null!=A.xPercent&&(l.xPercent=ja(A.xPercent,D.xPercent)),null!=A.yPercent&&(l.yPercent=ja(A.yPercent,D.yPercent));else if("object"==typeof A){if(l={scaleX:ja(null!=A.scaleX?A.scaleX:A.scale,D.scaleX),scaleY:ja(null!=A.scaleY?A.scaleY:A.scale,D.scaleY),scaleZ:ja(A.scaleZ,D.scaleZ),x:ja(A.x,D.x),y:ja(A.y,D.y),z:ja(A.z,D.z),xPercent:ja(A.xPercent,D.xPercent),yPercent:ja(A.yPercent,D.yPercent),perspective:ja(A.transformPerspective,D.perspective)},p=A.directionalRotation,null!=p)if("object"==typeof p)for(m in p)A[m]=p[m];else A.rotation=p;"string"==typeof A.x&&-1!==A.x.indexOf("%")&&(l.x=0,l.xPercent=ja(A.x,D.xPercent)),"string"==typeof A.y&&-1!==A.y.indexOf("%")&&(l.y=0,l.yPercent=ja(A.y,D.yPercent)),l.rotation=ka("rotation"in A?A.rotation:"shortRotation"in A?A.shortRotation+"_short":D.rotation,D.rotation,"rotation",B),Fa&&(l.rotationX=ka("rotationX"in A?A.rotationX:"shortRotationX"in A?A.shortRotationX+"_short":D.rotationX||0,D.rotationX,"rotationX",B),l.rotationY=ka("rotationY"in A?A.rotationY:"shortRotationY"in A?A.shortRotationY+"_short":D.rotationY||0,D.rotationY,"rotationY",B)),l.skewX=ka(A.skewX,D.skewX),l.skewY=ka(A.skewY,D.skewY)}for(Fa&&null!=A.force3D&&(D.force3D=A.force3D,o=!0),n=D.force3D||D.z||D.rotationX||D.rotationY||l.z||l.rotationX||l.rotationY||l.perspective,n||null==A.scale||(l.scaleZ=1);--z>-1;)v=Ba[z],E=l[v]-D[v],(E>y||-y>E||null!=A[v]||null!=M[v])&&(o=!0,f=new ta(D,v,D[v],E,f),v in B&&(f.e=B[v]),f.xs0=0,f.plugin=h,d._overwriteProps.push(f.n));return E=A.transformOrigin,D.svg&&(E||A.svgOrigin)&&(s=D.xOffset,t=D.yOffset,La(a,ha(E),l,A.svgOrigin,A.smoothOrigin),f=ua(D,"xOrigin",(w?D:l).xOrigin,l.xOrigin,f,C),f=ua(D,"yOrigin",(w?D:l).yOrigin,l.yOrigin,f,C),(s!==D.xOffset||t!==D.yOffset)&&(f=ua(D,"xOffset",w?s:D.xOffset,D.xOffset,f,C),f=ua(D,"yOffset",w?t:D.yOffset,D.yOffset,f,C)),E="0px 0px"),(E||Fa&&n&&D.zOrigin)&&(Ca?(o=!0,v=Ea,E=(E||_(a,v,e,!1,"50% 50%"))+"",f=new ta(x,v,0,0,f,-1,C),f.b=x[v],f.plugin=h,Fa?(m=D.zOrigin,E=E.split(" "),D.zOrigin=(E.length>2&&(0===m||"0px"!==E[2])?parseFloat(E[2]):m)||0,f.xs0=f.e=E[0]+" "+(E[1]||"50%")+" 0px",f=new ta(D,"zOrigin",0,0,f,-1,f.n),f.b=m,f.xs0=f.e=D.zOrigin):f.xs0=f.e=E):ha(E+"",D)),o&&(d._transformType=D.svg&&Aa||!n&&3!==this._transformType?2:3),j&&(i[c]=j),k&&(i.scale=k),f},prefix:!0}),ya("boxShadow",{defaultValue:"0px 0px 0px 0px #999",prefix:!0,color:!0,multi:!0,keyword:"inset"}),ya("borderRadius",{defaultValue:"0px",parser:function(a,b,c,f,g,h){b=this.format(b);var i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y=["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],z=a.style;for(q=parseFloat(a.offsetWidth),r=parseFloat(a.offsetHeight),i=b.split(" "),j=0;j<y.length;j++)this.p.indexOf("border")&&(y[j]=Z(y[j])),m=l=_(a,y[j],e,!1,"0px"),-1!==m.indexOf(" ")&&(l=m.split(" "),m=l[0],l=l[1]),n=k=i[j],o=parseFloat(m),t=m.substr((o+"").length),u="="===n.charAt(1),u?(p=parseInt(n.charAt(0)+"1",10),n=n.substr(2),p*=parseFloat(n),s=n.substr((p+"").length-(0>p?1:0))||""):(p=parseFloat(n),s=n.substr((p+"").length)),""===s&&(s=d[c]||t),s!==t&&(v=aa(a,"borderLeft",o,t),w=aa(a,"borderTop",o,t),"%"===s?(m=v/q*100+"%",l=w/r*100+"%"):"em"===s?(x=aa(a,"borderLeft",1,"em"),m=v/x+"em",l=w/x+"em"):(m=v+"px",l=w+"px"),u&&(n=parseFloat(m)+p+s,k=parseFloat(l)+p+s)),g=va(z,y[j],m+" "+l,n+" "+k,!1,"0px",g);return g},prefix:!0,formatter:qa("0px 0px 0px 0px",!1,!0)}),ya("borderBottomLeftRadius,borderBottomRightRadius,borderTopLeftRadius,borderTopRightRadius",{defaultValue:"0px",parser:function(a,b,c,d,f,g){return va(a.style,c,this.format(_(a,c,e,!1,"0px 0px")),this.format(b),!1,"0px",f)},prefix:!0,formatter:qa("0px 0px",!1,!0)}),ya("backgroundPosition",{defaultValue:"0 0",parser:function(a,b,c,d,f,g){var h,i,j,k,l,m,n="background-position",o=e||$(a,null),q=this.format((o?p?o.getPropertyValue(n+"-x")+" "+o.getPropertyValue(n+"-y"):o.getPropertyValue(n):a.currentStyle.backgroundPositionX+" "+a.currentStyle.backgroundPositionY)||"0 0"),r=this.format(b);if(-1!==q.indexOf("%")!=(-1!==r.indexOf("%"))&&r.split(",").length<2&&(m=_(a,"backgroundImage").replace(D,""),m&&"none"!==m)){for(h=q.split(" "),i=r.split(" "),R.setAttribute("src",m),j=2;--j>-1;)q=h[j],k=-1!==q.indexOf("%"),k!==(-1!==i[j].indexOf("%"))&&(l=0===j?a.offsetWidth-R.width:a.offsetHeight-R.height,h[j]=k?parseFloat(q)/100*l+"px":parseFloat(q)/l*100+"%");q=h.join(" ")}return this.parseComplex(a.style,q,r,f,g)},formatter:ha}),ya("backgroundSize",{defaultValue:"0 0",formatter:function(a){return a+="","co"===a.substr(0,2)?a:ha(-1===a.indexOf(" ")?a+" "+a:a)}}),ya("perspective",{defaultValue:"0px",prefix:!0}),ya("perspectiveOrigin",{defaultValue:"50% 50%",prefix:!0}),ya("transformStyle",{prefix:!0}),ya("backfaceVisibility",{prefix:!0}),ya("userSelect",{prefix:!0}),ya("margin",{parser:ra("marginTop,marginRight,marginBottom,marginLeft")}),ya("padding",{parser:ra("paddingTop,paddingRight,paddingBottom,paddingLeft")}),ya("clip",{defaultValue:"rect(0px,0px,0px,0px)",parser:function(a,b,c,d,f,g){var h,i,j;return 9>p?(i=a.currentStyle,j=8>p?" ":",",h="rect("+i.clipTop+j+i.clipRight+j+i.clipBottom+j+i.clipLeft+")",b=this.format(b).split(",").join(j)):(h=this.format(_(a,this.p,e,!1,this.dflt)),b=this.format(b)),this.parseComplex(a.style,h,b,f,g)}}),ya("textShadow",{defaultValue:"0px 0px 0px #999",color:!0,multi:!0}),ya("autoRound,strictUnits",{parser:function(a,b,c,d,e){return e}}),ya("border",{defaultValue:"0px solid #000",parser:function(a,b,c,d,f,g){var h=_(a,"borderTopWidth",e,!1,"0px"),i=this.format(b).split(" "),j=i[0].replace(w,"");return"px"!==j&&(h=parseFloat(h)/aa(a,"borderTopWidth",1,j)+j),this.parseComplex(a.style,this.format(h+" "+_(a,"borderTopStyle",e,!1,"solid")+" "+_(a,"borderTopColor",e,!1,"#000")),i.join(" "),f,g)},color:!0,formatter:function(a){var b=a.split(" ");return b[0]+" "+(b[1]||"solid")+" "+(a.match(pa)||["#000"])[0]}}),ya("borderWidth",{parser:ra("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")}),ya("float,cssFloat,styleFloat",{parser:function(a,b,c,d,e,f){var g=a.style,h="cssFloat"in g?"cssFloat":"styleFloat";return new ta(g,h,0,0,e,-1,c,!1,0,g[h],b)}});var Ua=function(a){var b,c=this.t,d=c.filter||_(this.data,"filter")||"",e=this.s+this.c*a|0;100===e&&(-1===d.indexOf("atrix(")&&-1===d.indexOf("radient(")&&-1===d.indexOf("oader(")?(c.removeAttribute("filter"),b=!_(this.data,"filter")):(c.filter=d.replace(z,""),b=!0)),b||(this.xn1&&(c.filter=d=d||"alpha(opacity="+e+")"),-1===d.indexOf("pacity")?0===e&&this.xn1||(c.filter=d+" alpha(opacity="+e+")"):c.filter=d.replace(x,"opacity="+e))};ya("opacity,alpha,autoAlpha",{defaultValue:"1",parser:function(a,b,c,d,f,g){var h=parseFloat(_(a,"opacity",e,!1,"1")),i=a.style,j="autoAlpha"===c;return"string"==typeof b&&"="===b.charAt(1)&&(b=("-"===b.charAt(0)?-1:1)*parseFloat(b.substr(2))+h),j&&1===h&&"hidden"===_(a,"visibility",e)&&0!==b&&(h=0),U?f=new ta(i,"opacity",h,b-h,f):(f=new ta(i,"opacity",100*h,100*(b-h),f),f.xn1=j?1:0,i.zoom=1,f.type=2,f.b="alpha(opacity="+f.s+")",f.e="alpha(opacity="+(f.s+f.c)+")",f.data=a,f.plugin=g,f.setRatio=Ua),j&&(f=new ta(i,"visibility",0,0,f,-1,null,!1,0,0!==h?"inherit":"hidden",0===b?"hidden":"inherit"),f.xs0="inherit",d._overwriteProps.push(f.n),d._overwriteProps.push(c)),f}});var Va=function(a,b){b&&(a.removeProperty?(("ms"===b.substr(0,2)||"webkit"===b.substr(0,6))&&(b="-"+b),a.removeProperty(b.replace(B,"-$1").toLowerCase())):a.removeAttribute(b))},Wa=function(a){if(this.t._gsClassPT=this,1===a||0===a){this.t.setAttribute("class",0===a?this.b:this.e);for(var b=this.data,c=this.t.style;b;)b.v?c[b.p]=b.v:Va(c,b.p),b=b._next;1===a&&this.t._gsClassPT===this&&(this.t._gsClassPT=null)}else this.t.getAttribute("class")!==this.e&&this.t.setAttribute("class",this.e)};ya("className",{parser:function(a,b,d,f,g,h,i){var j,k,l,m,n,o=a.getAttribute("class")||"",p=a.style.cssText;if(g=f._classNamePT=new ta(a,d,0,0,g,2),g.setRatio=Wa,g.pr=-11,c=!0,g.b=o,k=ca(a,e),l=a._gsClassPT){for(m={},n=l.data;n;)m[n.p]=1,n=n._next;l.setRatio(1)}return a._gsClassPT=g,g.e="="!==b.charAt(1)?b:o.replace(new RegExp("(?:\\s|^)"+b.substr(2)+"(?![\\w-])"),"")+("+"===b.charAt(0)?" "+b.substr(2):""),a.setAttribute("class",g.e),j=da(a,k,ca(a),i,m),a.setAttribute("class",o),g.data=j.firstMPT,a.style.cssText=p,g=g.xfirst=f.parse(a,j.difs,g,h)}});var Xa=function(a){if((1===a||0===a)&&this.data._totalTime===this.data._totalDuration&&"isFromStart"!==this.data.data){var b,c,d,e,f,g=this.t.style,h=i.transform.parse;if("all"===this.e)g.cssText="",e=!0;else for(b=this.e.split(" ").join("").split(","),d=b.length;--d>-1;)c=b[d],i[c]&&(i[c].parse===h?e=!0:c="transformOrigin"===c?Ea:i[c].p),Va(g,c);e&&(Va(g,Ca),f=this.t._gsTransform,f&&(f.svg&&(this.t.removeAttribute("data-svg-origin"),this.t.removeAttribute("transform")),delete this.t._gsTransform))}};for(ya("clearProps",{parser:function(a,b,d,e,f){return f=new ta(a,d,0,0,f,2),f.setRatio=Xa,f.e=b,f.pr=-10,f.data=e._tween,c=!0,f}}),j="bezier,throwProps,physicsProps,physics2D".split(","),wa=j.length;wa--;)za(j[wa]);j=g.prototype,j._firstPT=j._lastParsedTransform=j._transform=null,j._onInitTween=function(a,b,h,j){if(!a.nodeType)return!1;this._target=q=a,this._tween=h,this._vars=b,r=j,k=b.autoRound,c=!1,d=b.suffixMap||g.suffixMap,e=$(a,""),f=this._overwriteProps;var n,p,s,t,u,v,w,x,z,A=a.style;if(l&&""===A.zIndex&&(n=_(a,"zIndex",e),("auto"===n||""===n)&&this._addLazySet(A,"zIndex",0)),"string"==typeof b&&(t=A.cssText,n=ca(a,e),A.cssText=t+";"+b,n=da(a,n,ca(a)).difs,!U&&y.test(b)&&(n.opacity=parseFloat(RegExp.$1)),b=n,A.cssText=t),b.className?this._firstPT=p=i.className.parse(a,b.className,"className",this,null,null,b):this._firstPT=p=this.parse(a,b,null),this._transformType){for(z=3===this._transformType,Ca?m&&(l=!0,""===A.zIndex&&(w=_(a,"zIndex",e),("auto"===w||""===w)&&this._addLazySet(A,"zIndex",0)),o&&this._addLazySet(A,"WebkitBackfaceVisibility",this._vars.WebkitBackfaceVisibility||(z?"visible":"hidden"))):A.zoom=1,s=p;s&&s._next;)s=s._next;x=new ta(a,"transform",0,0,null,2),this._linkCSSP(x,null,s),x.setRatio=Ca?Ta:Sa,x.data=this._transform||Ra(a,e,!0),x.tween=h,x.pr=-1,f.pop()}if(c){for(;p;){for(v=p._next,s=t;s&&s.pr>p.pr;)s=s._next;(p._prev=s?s._prev:u)?p._prev._next=p:t=p,(p._next=s)?s._prev=p:u=p,p=v}this._firstPT=t}return!0},j.parse=function(a,b,c,f){var g,h,j,l,m,n,o,p,s,t,u=a.style;for(g in b){if(n=b[g],"function"==typeof n&&(n=n(r,q)),h=i[g])c=h.parse(a,n,g,this,c,f,b);else{if("--"===g.substr(0,2)){this._tween._propLookup[g]=this._addTween.call(this._tween,a.style,"setProperty",$(a).getPropertyValue(g)+"",n+"",g,!1,g);continue}m=_(a,g,e)+"",s="string"==typeof n,"color"===g||"fill"===g||"stroke"===g||-1!==g.indexOf("Color")||s&&A.test(n)?(s||(n=na(n),n=(n.length>3?"rgba(":"rgb(")+n.join(",")+")"),c=va(u,g,m,n,!0,"transparent",c,0,f)):s&&J.test(n)?c=va(u,g,m,n,!0,null,c,0,f):(j=parseFloat(m),o=j||0===j?m.substr((j+"").length):"",(""===m||"auto"===m)&&("width"===g||"height"===g?(j=ga(a,g,e),o="px"):"left"===g||"top"===g?(j=ba(a,g,e),o="px"):(j="opacity"!==g?0:1,o="")),t=s&&"="===n.charAt(1),t?(l=parseInt(n.charAt(0)+"1",10),n=n.substr(2),l*=parseFloat(n),p=n.replace(w,"")):(l=parseFloat(n),p=s?n.replace(w,""):""),""===p&&(p=g in d?d[g]:o),n=l||0===l?(t?l+j:l)+p:b[g],o!==p&&(""!==p||"lineHeight"===g)&&(l||0===l)&&j&&(j=aa(a,g,j,o),"%"===p?(j/=aa(a,g,100,"%")/100,b.strictUnits!==!0&&(m=j+"%")):"em"===p||"rem"===p||"vw"===p||"vh"===p?j/=aa(a,g,1,p):"px"!==p&&(l=aa(a,g,l,p),p="px"),t&&(l||0===l)&&(n=l+j+p)),t&&(l+=j),!j&&0!==j||!l&&0!==l?void 0!==u[g]&&(n||n+""!="NaN"&&null!=n)?(c=new ta(u,g,l||j||0,0,c,-1,g,!1,0,m,n),c.xs0="none"!==n||"display"!==g&&-1===g.indexOf("Style")?n:m):W("invalid "+g+" tween value: "+b[g]):(c=new ta(u,g,j,l-j,c,0,g,k!==!1&&("px"===p||"zIndex"===g),0,m,n),c.xs0=p))}f&&c&&!c.plugin&&(c.plugin=f)}return c},j.setRatio=function(a){var b,c,d,e=this._firstPT,f=1e-6;if(1!==a||this._tween._time!==this._tween._duration&&0!==this._tween._time)if(a||this._tween._time!==this._tween._duration&&0!==this._tween._time||this._tween._rawPrevTime===-1e-6)for(;e;){if(b=e.c*a+e.s,e.r?b=e.r(b):f>b&&b>-f&&(b=0),e.type)if(1===e.type)if(d=e.l,2===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2;else if(3===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3;else if(4===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3+e.xn3+e.xs4;else if(5===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3+e.xn3+e.xs4+e.xn4+e.xs5;else{for(c=e.xs0+b+e.xs1,d=1;d<e.l;d++)c+=e["xn"+d]+e["xs"+(d+1)];e.t[e.p]=c}else-1===e.type?e.t[e.p]=e.xs0:e.setRatio&&e.setRatio(a);else e.t[e.p]=b+e.xs0;e=e._next}else for(;e;)2!==e.type?e.t[e.p]=e.b:e.setRatio(a),e=e._next;else for(;e;){if(2!==e.type)if(e.r&&-1!==e.type)if(b=e.r(e.s+e.c),e.type){if(1===e.type){for(d=e.l,c=e.xs0+b+e.xs1,d=1;d<e.l;d++)c+=e["xn"+d]+e["xs"+(d+1)];e.t[e.p]=c}}else e.t[e.p]=b+e.xs0;else e.t[e.p]=e.e;else e.setRatio(a);e=e._next}},j._enableTransforms=function(a){this._transform=this._transform||Ra(this._target,e,!0),this._transformType=this._transform.svg&&Aa||!a&&3!==this._transformType?2:3};var Ya=function(a){this.t[this.p]=this.e,this.data._linkCSSP(this,this._next,null,!0)};j._addLazySet=function(a,b,c){var d=this._firstPT=new ta(a,b,0,0,this._firstPT,2);d.e=c,d.setRatio=Ya,d.data=this},j._linkCSSP=function(a,b,c,d){return a&&(b&&(b._prev=a),a._next&&(a._next._prev=a._prev),a._prev?a._prev._next=a._next:this._firstPT===a&&(this._firstPT=a._next,d=!0),c?c._next=a:d||null!==this._firstPT||(this._firstPT=a),a._next=b,a._prev=c),a},j._mod=function(a){for(var b=this._firstPT;b;)"function"==typeof a[b.p]&&(b.r=a[b.p]),b=b._next},j._kill=function(b){var c,d,e,f=b;if(b.autoAlpha||b.alpha){f={};for(d in b)f[d]=b[d];f.opacity=1,f.autoAlpha&&(f.visibility=1)}for(b.className&&(c=this._classNamePT)&&(e=c.xfirst,e&&e._prev?this._linkCSSP(e._prev,c._next,e._prev._prev):e===this._firstPT&&(this._firstPT=c._next),c._next&&this._linkCSSP(c._next,c._next._next,e._prev),this._classNamePT=null),c=this._firstPT;c;)c.plugin&&c.plugin!==d&&c.plugin._kill&&(c.plugin._kill(b),d=c.plugin),c=c._next;return a.prototype._kill.call(this,f)};var Za=function(a,b,c){var d,e,f,g;if(a.slice)for(e=a.length;--e>-1;)Za(a[e],b,c);else for(d=a.childNodes,e=d.length;--e>-1;)f=d[e],g=f.type,f.style&&(b.push(ca(f)),c&&c.push(f)),1!==g&&9!==g&&11!==g||!f.childNodes.length||Za(f,b,c)};return g.cascadeTo=function(a,c,d){var e,f,g,h,i=b.to(a,c,d),j=[i],k=[],l=[],m=[],n=b._internals.reservedProps;for(a=i._targets||i.target,Za(a,k,m),i.render(c,!0,!0),Za(a,l),i.render(0,!0,!0),i._enabled(!0),e=m.length;--e>-1;)if(f=da(m[e],k[e],l[e]),f.firstMPT){f=f.difs;for(g in d)n[g]&&(f[g]=d[g]);h={};for(g in f)h[g]=k[e][g];j.push(b.fromTo(m[e],c,h,f))}return j},a.activate([g]),g},!0),function(){var a=_gsScope._gsDefine.plugin({propName:"roundProps",version:"1.7.0",priority:-1,API:2,init:function(a,b,c){return this._tween=c,!0}}),b=function(a){var b=1>a?Math.pow(10,(a+"").length-2):1;return function(c){return(Math.round(c/a)*a*b|0)/b}},c=function(a,b){for(;a;)a.f||a.blob||(a.m=b||Math.round),a=a._next},d=a.prototype;d._onInitAllProps=function(){var a,d,e,f,g=this._tween,h=g.vars.roundProps,i={},j=g._propLookup.roundProps;if("object"!=typeof h||h.push)for("string"==typeof h&&(h=h.split(",")),e=h.length;--e>-1;)i[h[e]]=Math.round;else for(f in h)i[f]=b(h[f]);for(f in i)for(a=g._firstPT;a;)d=a._next,a.pg?a.t._mod(i):a.n===f&&(2===a.f&&a.t?c(a.t._firstPT,i[f]):(this._add(a.t,f,a.s,a.c,i[f]),d&&(d._prev=a._prev),a._prev?a._prev._next=d:g._firstPT===a&&(g._firstPT=d),a._next=a._prev=null,g._propLookup[f]=j)),a=d;return!1},d._add=function(a,b,c,d,e){this._addTween(a,b,c,c+d,b,e||Math.round),this._overwriteProps.push(b)}}(),function(){_gsScope._gsDefine.plugin({propName:"attr",API:2,version:"0.6.1",init:function(a,b,c,d){var e,f;if("function"!=typeof a.setAttribute)return!1;for(e in b)f=b[e],"function"==typeof f&&(f=f(d,a)),this._addTween(a,"setAttribute",a.getAttribute(e)+"",f+"",e,!1,e),this._overwriteProps.push(e);return!0}})}(),_gsScope._gsDefine.plugin({propName:"directionalRotation",version:"0.3.1",API:2,init:function(a,b,c,d){"object"!=typeof b&&(b={rotation:b}),this.finals={};var e,f,g,h,i,j,k=b.useRadians===!0?2*Math.PI:360,l=1e-6;for(e in b)"useRadians"!==e&&(h=b[e],"function"==typeof h&&(h=h(d,a)),j=(h+"").split("_"),f=j[0],g=parseFloat("function"!=typeof a[e]?a[e]:a[e.indexOf("set")||"function"!=typeof a["get"+e.substr(3)]?e:"get"+e.substr(3)]()),h=this.finals[e]="string"==typeof f&&"="===f.charAt(1)?g+parseInt(f.charAt(0)+"1",10)*Number(f.substr(2)):Number(f)||0,i=h-g,j.length&&(f=j.join("_"),-1!==f.indexOf("short")&&(i%=k,i!==i%(k/2)&&(i=0>i?i+k:i-k)),-1!==f.indexOf("_cw")&&0>i?i=(i+9999999999*k)%k-(i/k|0)*k:-1!==f.indexOf("ccw")&&i>0&&(i=(i-9999999999*k)%k-(i/k|0)*k)),(i>l||-l>i)&&(this._addTween(a,e,g,g+i,e),this._overwriteProps.push(e)));return!0},set:function(a){var b;if(1!==a)this._super.setRatio.call(this,a);else for(b=this._firstPT;b;)b.f?b.t[b.p](this.finals[b.p]):b.t[b.p]=this.finals[b.p],b=b._next}})._autoCSS=!0,_gsScope._gsDefine("easing.Back",["easing.Ease"],function(a){var b,c,d,e,f=_gsScope.GreenSockGlobals||_gsScope,g=f.com.greensock,h=2*Math.PI,i=Math.PI/2,j=g._class,k=function(b,c){var d=j("easing."+b,function(){},!0),e=d.prototype=new a;return e.constructor=d,e.getRatio=c,d},l=a.register||function(){},m=function(a,b,c,d,e){var f=j("easing."+a,{easeOut:new b,easeIn:new c,easeInOut:new d},!0);return l(f,a),f},n=function(a,b,c){this.t=a,this.v=b,c&&(this.next=c,c.prev=this,this.c=c.v-b,this.gap=c.t-a)},o=function(b,c){var d=j("easing."+b,function(a){this._p1=a||0===a?a:1.70158,this._p2=1.525*this._p1},!0),e=d.prototype=new a;return e.constructor=d,e.getRatio=c,e.config=function(a){return new d(a)},d},p=m("Back",o("BackOut",function(a){return(a-=1)*a*((this._p1+1)*a+this._p1)+1}),o("BackIn",function(a){return a*a*((this._p1+1)*a-this._p1)}),o("BackInOut",function(a){return(a*=2)<1?.5*a*a*((this._p2+1)*a-this._p2):.5*((a-=2)*a*((this._p2+1)*a+this._p2)+2)})),q=j("easing.SlowMo",function(a,b,c){b=b||0===b?b:.7,null==a?a=.7:a>1&&(a=1),this._p=1!==a?b:0,this._p1=(1-a)/2,this._p2=a,this._p3=this._p1+this._p2,this._calcEnd=c===!0},!0),r=q.prototype=new a;return r.constructor=q,r.getRatio=function(a){var b=a+(.5-a)*this._p;return a<this._p1?this._calcEnd?1-(a=1-a/this._p1)*a:b-(a=1-a/this._p1)*a*a*a*b:a>this._p3?this._calcEnd?1===a?0:1-(a=(a-this._p3)/this._p1)*a:b+(a-b)*(a=(a-this._p3)/this._p1)*a*a*a:this._calcEnd?1:b},q.ease=new q(.7,.7),r.config=q.config=function(a,b,c){return new q(a,b,c)},b=j("easing.SteppedEase",function(a,b){a=a||1,this._p1=1/a,this._p2=a+(b?0:1),this._p3=b?1:0},!0),r=b.prototype=new a,r.constructor=b,r.getRatio=function(a){return 0>a?a=0:a>=1&&(a=.999999999),((this._p2*a|0)+this._p3)*this._p1},r.config=b.config=function(a,c){return new b(a,c)},c=j("easing.ExpoScaleEase",function(a,b,c){this._p1=Math.log(b/a),this._p2=b-a,this._p3=a,this._ease=c},!0),r=c.prototype=new a,r.constructor=c,r.getRatio=function(a){return this._ease&&(a=this._ease.getRatio(a)),(this._p3*Math.exp(this._p1*a)-this._p3)/this._p2},r.config=c.config=function(a,b,d){return new c(a,b,d)},d=j("easing.RoughEase",function(b){b=b||{};for(var c,d,e,f,g,h,i=b.taper||"none",j=[],k=0,l=0|(b.points||20),m=l,o=b.randomize!==!1,p=b.clamp===!0,q=b.template instanceof a?b.template:null,r="number"==typeof b.strength?.4*b.strength:.4;--m>-1;)c=o?Math.random():1/l*m,d=q?q.getRatio(c):c,"none"===i?e=r:"out"===i?(f=1-c,e=f*f*r):"in"===i?e=c*c*r:.5>c?(f=2*c,e=f*f*.5*r):(f=2*(1-c),e=f*f*.5*r),o?d+=Math.random()*e-.5*e:m%2?d+=.5*e:d-=.5*e,p&&(d>1?d=1:0>d&&(d=0)),j[k++]={x:c,y:d};for(j.sort(function(a,b){return a.x-b.x}),h=new n(1,1,null),m=l;--m>-1;)g=j[m],h=new n(g.x,g.y,h);this._prev=new n(0,0,0!==h.t?h:h.next)},!0),r=d.prototype=new a,r.constructor=d,r.getRatio=function(a){var b=this._prev;if(a>b.t){for(;b.next&&a>=b.t;)b=b.next;b=b.prev}else for(;b.prev&&a<=b.t;)b=b.prev;return this._prev=b,b.v+(a-b.t)/b.gap*b.c},r.config=function(a){return new d(a)},d.ease=new d,m("Bounce",k("BounceOut",function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375}),k("BounceIn",function(a){return(a=1-a)<1/2.75?1-7.5625*a*a:2/2.75>a?1-(7.5625*(a-=1.5/2.75)*a+.75):2.5/2.75>a?1-(7.5625*(a-=2.25/2.75)*a+.9375):1-(7.5625*(a-=2.625/2.75)*a+.984375)}),k("BounceInOut",function(a){var b=.5>a;return a=b?1-2*a:2*a-1,a=1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375,b?.5*(1-a):.5*a+.5})),m("Circ",k("CircOut",function(a){return Math.sqrt(1-(a-=1)*a)}),k("CircIn",function(a){return-(Math.sqrt(1-a*a)-1)}),k("CircInOut",function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)})),e=function(b,c,d){var e=j("easing."+b,function(a,b){this._p1=a>=1?a:1,this._p2=(b||d)/(1>a?a:1),this._p3=this._p2/h*(Math.asin(1/this._p1)||0),this._p2=h/this._p2},!0),f=e.prototype=new a;return f.constructor=e,f.getRatio=c,f.config=function(a,b){return new e(a,b)},e},m("Elastic",e("ElasticOut",function(a){return this._p1*Math.pow(2,-10*a)*Math.sin((a-this._p3)*this._p2)+1},.3),e("ElasticIn",function(a){return-(this._p1*Math.pow(2,10*(a-=1))*Math.sin((a-this._p3)*this._p2))},.3),e("ElasticInOut",function(a){return(a*=2)<1?-.5*(this._p1*Math.pow(2,10*(a-=1))*Math.sin((a-this._p3)*this._p2)):this._p1*Math.pow(2,-10*(a-=1))*Math.sin((a-this._p3)*this._p2)*.5+1},.45)),m("Expo",k("ExpoOut",function(a){return 1-Math.pow(2,-10*a)}),k("ExpoIn",function(a){return Math.pow(2,10*(a-1))-.001}),k("ExpoInOut",function(a){return(a*=2)<1?.5*Math.pow(2,10*(a-1)):.5*(2-Math.pow(2,-10*(a-1)))})),m("Sine",k("SineOut",function(a){return Math.sin(a*i)}),k("SineIn",function(a){return-Math.cos(a*i)+1}),k("SineInOut",function(a){return-.5*(Math.cos(Math.PI*a)-1)})),j("easing.EaseLookup",{find:function(b){return a.map[b]}},!0),l(f.SlowMo,"SlowMo","ease,"),l(d,"RoughEase","ease,"),l(b,"SteppedEase","ease,"),p},!0)}),_gsScope._gsDefine&&_gsScope._gsQueue.pop()(),function(a,b){"use strict";var c={},d=a.document,e=a.GreenSockGlobals=a.GreenSockGlobals||a,f=e[b];if(f)return"undefined"!=typeof module&&module.exports&&(module.exports=f),f;var g,h,i,j,k,l=function(a){var b,c=a.split("."),d=e;for(b=0;b<c.length;b++)d[c[b]]=d=d[c[b]]||{};return d},m=l("com.greensock"),n=1e-10,o=function(a){var b,c=[],d=a.length;for(b=0;b!==d;c.push(a[b++]));return c},p=function(){},q=function(){var a=Object.prototype.toString,b=a.call([]);return function(c){return null!=c&&(c instanceof Array||"object"==typeof c&&!!c.push&&a.call(c)===b)}}(),r={},s=function(d,f,g,h){this.sc=r[d]?r[d].sc:[],r[d]=this,this.gsClass=null,this.func=g;var i=[];this.check=function(j){for(var k,m,n,o,p=f.length,q=p;--p>-1;)(k=r[f[p]]||new s(f[p],[])).gsClass?(i[p]=k.gsClass,q--):j&&k.sc.push(this);if(0===q&&g){if(m=("com.greensock."+d).split("."),n=m.pop(),o=l(m.join("."))[n]=this.gsClass=g.apply(g,i),h)if(e[n]=c[n]=o,"undefined"!=typeof module&&module.exports)if(d===b){module.exports=c[b]=o;for(p in c)o[p]=c[p]}else c[b]&&(c[b][n]=o);else"function"==typeof define&&define.amd&&define((a.GreenSockAMDPath?a.GreenSockAMDPath+"/":"")+d.split(".").pop(),[],function(){return o});for(p=0;p<this.sc.length;p++)this.sc[p].check()}},this.check(!0)},t=a._gsDefine=function(a,b,c,d){return new s(a,b,c,d)},u=m._class=function(a,b,c){return b=b||function(){},t(a,[],function(){return b},c),b};t.globals=e;var v=[0,0,1,1],w=u("easing.Ease",function(a,b,c,d){this._func=a,this._type=c||0,this._power=d||0,this._params=b?v.concat(b):v},!0),x=w.map={},y=w.register=function(a,b,c,d){for(var e,f,g,h,i=b.split(","),j=i.length,k=(c||"easeIn,easeOut,easeInOut").split(",");--j>-1;)for(f=i[j],e=d?u("easing."+f,null,!0):m.easing[f]||{},g=k.length;--g>-1;)h=k[g],x[f+"."+h]=x[h+f]=e[h]=a.getRatio?a:a[h]||new a};for(i=w.prototype,i._calcEnd=!1,i.getRatio=function(a){if(this._func)return this._params[0]=a,this._func.apply(null,this._params);var b=this._type,c=this._power,d=1===b?1-a:2===b?a:.5>a?2*a:2*(1-a);return 1===c?d*=d:2===c?d*=d*d:3===c?d*=d*d*d:4===c&&(d*=d*d*d*d),1===b?1-d:2===b?d:.5>a?d/2:1-d/2},g=["Linear","Quad","Cubic","Quart","Quint,Strong"],h=g.length;--h>-1;)i=g[h]+",Power"+h,y(new w(null,null,1,h),i,"easeOut",!0),y(new w(null,null,2,h),i,"easeIn"+(0===h?",easeNone":"")),y(new w(null,null,3,h),i,"easeInOut");x.linear=m.easing.Linear.easeIn,x.swing=m.easing.Quad.easeInOut;var z=u("events.EventDispatcher",function(a){this._listeners={},this._eventTarget=a||this});i=z.prototype,i.addEventListener=function(a,b,c,d,e){e=e||0;var f,g,h=this._listeners[a],i=0;for(this!==j||k||j.wake(),null==h&&(this._listeners[a]=h=[]),g=h.length;--g>-1;)f=h[g],f.c===b&&f.s===c?h.splice(g,1):0===i&&f.pr<e&&(i=g+1);h.splice(i,0,{c:b,s:c,up:d,pr:e})},i.removeEventListener=function(a,b){var c,d=this._listeners[a];if(d)for(c=d.length;--c>-1;)if(d[c].c===b)return void d.splice(c,1)},i.dispatchEvent=function(a){var b,c,d,e=this._listeners[a];if(e)for(b=e.length,b>1&&(e=e.slice(0)),c=this._eventTarget;--b>-1;)d=e[b],d&&(d.up?d.c.call(d.s||c,{type:a,target:c}):d.c.call(d.s||c))};var A=a.requestAnimationFrame,B=a.cancelAnimationFrame,C=Date.now||function(){return(new Date).getTime()},D=C();for(g=["ms","moz","webkit","o"],h=g.length;--h>-1&&!A;)A=a[g[h]+"RequestAnimationFrame"],B=a[g[h]+"CancelAnimationFrame"]||a[g[h]+"CancelRequestAnimationFrame"];u("Ticker",function(a,b){var c,e,f,g,h,i=this,l=C(),m=b!==!1&&A?"auto":!1,o=500,q=33,r="tick",s=function(a){var b,d,j=C()-D;j>o&&(l+=j-q),D+=j,i.time=(D-l)/1e3,b=i.time-h,(!c||b>0||a===!0)&&(i.frame++,h+=b+(b>=g?.004:g-b),d=!0),a!==!0&&(f=e(s)),d&&i.dispatchEvent(r)};z.call(i),i.time=i.frame=0,i.tick=function(){s(!0)},i.lagSmoothing=function(a,b){return arguments.length?(o=a||1/n,void(q=Math.min(b,o,0))):1/n>o},i.sleep=function(){null!=f&&(m&&B?B(f):clearTimeout(f),e=p,f=null,i===j&&(k=!1))},i.wake=function(a){null!==f?i.sleep():a?l+=-D+(D=C()):i.frame>10&&(D=C()-o+5),e=0===c?p:m&&A?A:function(a){return setTimeout(a,1e3*(h-i.time)+1|0)},i===j&&(k=!0),s(2)},i.fps=function(a){return arguments.length?(c=a,g=1/(c||60),h=this.time+g,void i.wake()):c},i.useRAF=function(a){return arguments.length?(i.sleep(),m=a,void i.fps(c)):m},i.fps(a),setTimeout(function(){"auto"===m&&i.frame<5&&"hidden"!==(d||{}).visibilityState&&i.useRAF(!1)},1500)}),i=m.Ticker.prototype=new m.events.EventDispatcher,i.constructor=m.Ticker;var E=u("core.Animation",function(a,b){if(this.vars=b=b||{},this._duration=this._totalDuration=a||0,this._delay=Number(b.delay)||0,this._timeScale=1,this._active=b.immediateRender===!0,this.data=b.data,this._reversed=b.reversed===!0,Y){k||j.wake();var c=this.vars.useFrames?X:Y;c.add(this,c._time),this.vars.paused&&this.paused(!0)}});j=E.ticker=new m.Ticker,i=E.prototype,i._dirty=i._gc=i._initted=i._paused=!1,i._totalTime=i._time=0,i._rawPrevTime=-1,i._next=i._last=i._onUpdate=i._timeline=i.timeline=null,i._paused=!1;var F=function(){k&&C()-D>2e3&&("hidden"!==(d||{}).visibilityState||!j.lagSmoothing())&&j.wake();var a=setTimeout(F,2e3);a.unref&&a.unref()};F(),i.play=function(a,b){return null!=a&&this.seek(a,b),this.reversed(!1).paused(!1)},i.pause=function(a,b){return null!=a&&this.seek(a,b),this.paused(!0)},i.resume=function(a,b){return null!=a&&this.seek(a,b),this.paused(!1)},i.seek=function(a,b){return this.totalTime(Number(a),b!==!1)},i.restart=function(a,b){return this.reversed(!1).paused(!1).totalTime(a?-this._delay:0,b!==!1,!0)},i.reverse=function(a,b){return null!=a&&this.seek(a||this.totalDuration(),b),this.reversed(!0).paused(!1)},i.render=function(a,b,c){},i.invalidate=function(){return this._time=this._totalTime=0,this._initted=this._gc=!1,this._rawPrevTime=-1,(this._gc||!this.timeline)&&this._enabled(!0),this},i.isActive=function(){var a,b=this._timeline,c=this._startTime;return!b||!this._gc&&!this._paused&&b.isActive()&&(a=b.rawTime(!0))>=c&&a<c+this.totalDuration()/this._timeScale-1e-7},i._enabled=function(a,b){return k||j.wake(),this._gc=!a,this._active=this.isActive(),b!==!0&&(a&&!this.timeline?this._timeline.add(this,this._startTime-this._delay):!a&&this.timeline&&this._timeline._remove(this,!0)),!1},i._kill=function(a,b){return this._enabled(!1,!1)},i.kill=function(a,b){return this._kill(a,b),this},i._uncache=function(a){for(var b=a?this:this.timeline;b;)b._dirty=!0,b=b.timeline;return this},i._swapSelfInParams=function(a){for(var b=a.length,c=a.concat();--b>-1;)"{self}"===a[b]&&(c[b]=this);return c},i._callback=function(a){var b=this.vars,c=b[a],d=b[a+"Params"],e=b[a+"Scope"]||b.callbackScope||this,f=d?d.length:0;switch(f){case 0:c.call(e);break;case 1:c.call(e,d[0]);break;case 2:c.call(e,d[0],d[1]);break;default:c.apply(e,d)}},i.eventCallback=function(a,b,c,d){if("on"===(a||"").substr(0,2)){var e=this.vars;if(1===arguments.length)return e[a];null==b?delete e[a]:(e[a]=b,e[a+"Params"]=q(c)&&-1!==c.join("").indexOf("{self}")?this._swapSelfInParams(c):c,e[a+"Scope"]=d),"onUpdate"===a&&(this._onUpdate=b)}return this},i.delay=function(a){return arguments.length?(this._timeline.smoothChildTiming&&this.startTime(this._startTime+a-this._delay),this._delay=a,this):this._delay},i.duration=function(a){return arguments.length?(this._duration=this._totalDuration=a,this._uncache(!0),this._timeline.smoothChildTiming&&this._time>0&&this._time<this._duration&&0!==a&&this.totalTime(this._totalTime*(a/this._duration),!0),this):(this._dirty=!1,this._duration)},i.totalDuration=function(a){return this._dirty=!1,arguments.length?this.duration(a):this._totalDuration},i.time=function(a,b){return arguments.length?(this._dirty&&this.totalDuration(),this.totalTime(a>this._duration?this._duration:a,b)):this._time},i.totalTime=function(a,b,c){if(k||j.wake(),!arguments.length)return this._totalTime;if(this._timeline){if(0>a&&!c&&(a+=this.totalDuration()),this._timeline.smoothChildTiming){this._dirty&&this.totalDuration();var d=this._totalDuration,e=this._timeline;if(a>d&&!c&&(a=d),this._startTime=(this._paused?this._pauseTime:e._time)-(this._reversed?d-a:a)/this._timeScale,e._dirty||this._uncache(!1),e._timeline)for(;e._timeline;)e._timeline._time!==(e._startTime+e._totalTime)/e._timeScale&&e.totalTime(e._totalTime,!0),e=e._timeline}this._gc&&this._enabled(!0,!1),(this._totalTime!==a||0===this._duration)&&(K.length&&$(),this.render(a,b,!1),K.length&&$())}return this},i.progress=i.totalProgress=function(a,b){var c=this.duration();return arguments.length?this.totalTime(c*a,b):c?this._time/c:this.ratio;
},i.startTime=function(a){return arguments.length?(a!==this._startTime&&(this._startTime=a,this.timeline&&this.timeline._sortChildren&&this.timeline.add(this,a-this._delay)),this):this._startTime},i.endTime=function(a){return this._startTime+(0!=a?this.totalDuration():this.duration())/this._timeScale},i.timeScale=function(a){if(!arguments.length)return this._timeScale;var b,c;for(a=a||n,this._timeline&&this._timeline.smoothChildTiming&&(b=this._pauseTime,c=b||0===b?b:this._timeline.totalTime(),this._startTime=c-(c-this._startTime)*this._timeScale/a),this._timeScale=a,c=this.timeline;c&&c.timeline;)c._dirty=!0,c.totalDuration(),c=c.timeline;return this},i.reversed=function(a){return arguments.length?(a!=this._reversed&&(this._reversed=a,this.totalTime(this._timeline&&!this._timeline.smoothChildTiming?this.totalDuration()-this._totalTime:this._totalTime,!0)),this):this._reversed},i.paused=function(a){if(!arguments.length)return this._paused;var b,c,d=this._timeline;return a!=this._paused&&d&&(k||a||j.wake(),b=d.rawTime(),c=b-this._pauseTime,!a&&d.smoothChildTiming&&(this._startTime+=c,this._uncache(!1)),this._pauseTime=a?b:null,this._paused=a,this._active=this.isActive(),!a&&0!==c&&this._initted&&this.duration()&&(b=d.smoothChildTiming?this._totalTime:(b-this._startTime)/this._timeScale,this.render(b,b===this._totalTime,!0))),this._gc&&!a&&this._enabled(!0,!1),this};var G=u("core.SimpleTimeline",function(a){E.call(this,0,a),this.autoRemoveChildren=this.smoothChildTiming=!0});i=G.prototype=new E,i.constructor=G,i.kill()._gc=!1,i._first=i._last=i._recent=null,i._sortChildren=!1,i.add=i.insert=function(a,b,c,d){var e,f;if(a._startTime=Number(b||0)+a._delay,a._paused&&this!==a._timeline&&(a._pauseTime=this.rawTime()-(a._timeline.rawTime()-a._pauseTime)),a.timeline&&a.timeline._remove(a,!0),a.timeline=a._timeline=this,a._gc&&a._enabled(!0,!0),e=this._last,this._sortChildren)for(f=a._startTime;e&&e._startTime>f;)e=e._prev;return e?(a._next=e._next,e._next=a):(a._next=this._first,this._first=a),a._next?a._next._prev=a:this._last=a,a._prev=e,this._recent=a,this._timeline&&this._uncache(!0),this},i._remove=function(a,b){return a.timeline===this&&(b||a._enabled(!1,!0),a._prev?a._prev._next=a._next:this._first===a&&(this._first=a._next),a._next?a._next._prev=a._prev:this._last===a&&(this._last=a._prev),a._next=a._prev=a.timeline=null,a===this._recent&&(this._recent=this._last),this._timeline&&this._uncache(!0)),this},i.render=function(a,b,c){var d,e=this._first;for(this._totalTime=this._time=this._rawPrevTime=a;e;)d=e._next,(e._active||a>=e._startTime&&!e._paused&&!e._gc)&&(e._reversed?e.render((e._dirty?e.totalDuration():e._totalDuration)-(a-e._startTime)*e._timeScale,b,c):e.render((a-e._startTime)*e._timeScale,b,c)),e=d},i.rawTime=function(){return k||j.wake(),this._totalTime};var H=u("TweenLite",function(b,c,d){if(E.call(this,c,d),this.render=H.prototype.render,null==b)throw"Cannot tween a null target.";this.target=b="string"!=typeof b?b:H.selector(b)||b;var e,f,g,h=b.jquery||b.length&&b!==a&&b[0]&&(b[0]===a||b[0].nodeType&&b[0].style&&!b.nodeType),i=this.vars.overwrite;if(this._overwrite=i=null==i?W[H.defaultOverwrite]:"number"==typeof i?i>>0:W[i],(h||b instanceof Array||b.push&&q(b))&&"number"!=typeof b[0])for(this._targets=g=o(b),this._propLookup=[],this._siblings=[],e=0;e<g.length;e++)f=g[e],f?"string"!=typeof f?f.length&&f!==a&&f[0]&&(f[0]===a||f[0].nodeType&&f[0].style&&!f.nodeType)?(g.splice(e--,1),this._targets=g=g.concat(o(f))):(this._siblings[e]=_(f,this,!1),1===i&&this._siblings[e].length>1&&ba(f,this,null,1,this._siblings[e])):(f=g[e--]=H.selector(f),"string"==typeof f&&g.splice(e+1,1)):g.splice(e--,1);else this._propLookup={},this._siblings=_(b,this,!1),1===i&&this._siblings.length>1&&ba(b,this,null,1,this._siblings);(this.vars.immediateRender||0===c&&0===this._delay&&this.vars.immediateRender!==!1)&&(this._time=-n,this.render(Math.min(0,-this._delay)))},!0),I=function(b){return b&&b.length&&b!==a&&b[0]&&(b[0]===a||b[0].nodeType&&b[0].style&&!b.nodeType)},J=function(a,b){var c,d={};for(c in a)V[c]||c in b&&"transform"!==c&&"x"!==c&&"y"!==c&&"width"!==c&&"height"!==c&&"className"!==c&&"border"!==c||!(!S[c]||S[c]&&S[c]._autoCSS)||(d[c]=a[c],delete a[c]);a.css=d};i=H.prototype=new E,i.constructor=H,i.kill()._gc=!1,i.ratio=0,i._firstPT=i._targets=i._overwrittenProps=i._startAt=null,i._notifyPluginsOfEnabled=i._lazy=!1,H.version="2.0.2",H.defaultEase=i._ease=new w(null,null,1,1),H.defaultOverwrite="auto",H.ticker=j,H.autoSleep=120,H.lagSmoothing=function(a,b){j.lagSmoothing(a,b)},H.selector=a.$||a.jQuery||function(b){var c=a.$||a.jQuery;return c?(H.selector=c,c(b)):(d||(d=a.document),d?d.querySelectorAll?d.querySelectorAll(b):d.getElementById("#"===b.charAt(0)?b.substr(1):b):b)};var K=[],L={},M=/(?:(-|-=|\+=)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi,N=/[\+-]=-?[\.\d]/,O=function(a){for(var b,c=this._firstPT,d=1e-6;c;)b=c.blob?1===a&&null!=this.end?this.end:a?this.join(""):this.start:c.c*a+c.s,c.m?b=c.m.call(this._tween,b,this._target||c.t,this._tween):d>b&&b>-d&&!c.blob&&(b=0),c.f?c.fp?c.t[c.p](c.fp,b):c.t[c.p](b):c.t[c.p]=b,c=c._next},P=function(a,b,c,d){var e,f,g,h,i,j,k,l=[],m=0,n="",o=0;for(l.start=a,l.end=b,a=l[0]=a+"",b=l[1]=b+"",c&&(c(l),a=l[0],b=l[1]),l.length=0,e=a.match(M)||[],f=b.match(M)||[],d&&(d._next=null,d.blob=1,l._firstPT=l._applyPT=d),i=f.length,h=0;i>h;h++)k=f[h],j=b.substr(m,b.indexOf(k,m)-m),n+=j||!h?j:",",m+=j.length,o?o=(o+1)%5:"rgba("===j.substr(-5)&&(o=1),k===e[h]||e.length<=h?n+=k:(n&&(l.push(n),n=""),g=parseFloat(e[h]),l.push(g),l._firstPT={_next:l._firstPT,t:l,p:l.length-1,s:g,c:("="===k.charAt(1)?parseInt(k.charAt(0)+"1",10)*parseFloat(k.substr(2)):parseFloat(k)-g)||0,f:0,m:o&&4>o?Math.round:0}),m+=k.length;return n+=b.substr(m),n&&l.push(n),l.setRatio=O,N.test(b)&&(l.end=null),l},Q=function(a,b,c,d,e,f,g,h,i){"function"==typeof d&&(d=d(i||0,a));var j,k=typeof a[b],l="function"!==k?"":b.indexOf("set")||"function"!=typeof a["get"+b.substr(3)]?b:"get"+b.substr(3),m="get"!==c?c:l?g?a[l](g):a[l]():a[b],n="string"==typeof d&&"="===d.charAt(1),o={t:a,p:b,s:m,f:"function"===k,pg:0,n:e||b,m:f?"function"==typeof f?f:Math.round:0,pr:0,c:n?parseInt(d.charAt(0)+"1",10)*parseFloat(d.substr(2)):parseFloat(d)-m||0};return("number"!=typeof m||"number"!=typeof d&&!n)&&(g||isNaN(m)||!n&&isNaN(d)||"boolean"==typeof m||"boolean"==typeof d?(o.fp=g,j=P(m,n?parseFloat(o.s)+o.c+(o.s+"").replace(/[0-9\-\.]/g,""):d,h||H.defaultStringFilter,o),o={t:j,p:"setRatio",s:0,c:1,f:2,pg:0,n:e||b,pr:0,m:0}):(o.s=parseFloat(m),n||(o.c=parseFloat(d)-o.s||0))),o.c?((o._next=this._firstPT)&&(o._next._prev=o),this._firstPT=o,o):void 0},R=H._internals={isArray:q,isSelector:I,lazyTweens:K,blobDif:P},S=H._plugins={},T=R.tweenLookup={},U=0,V=R.reservedProps={ease:1,delay:1,overwrite:1,onComplete:1,onCompleteParams:1,onCompleteScope:1,useFrames:1,runBackwards:1,startAt:1,onUpdate:1,onUpdateParams:1,onUpdateScope:1,onStart:1,onStartParams:1,onStartScope:1,onReverseComplete:1,onReverseCompleteParams:1,onReverseCompleteScope:1,onRepeat:1,onRepeatParams:1,onRepeatScope:1,easeParams:1,yoyo:1,immediateRender:1,repeat:1,repeatDelay:1,data:1,paused:1,reversed:1,autoCSS:1,lazy:1,onOverwrite:1,callbackScope:1,stringFilter:1,id:1,yoyoEase:1},W={none:0,all:1,auto:2,concurrent:3,allOnStart:4,preexisting:5,"true":1,"false":0},X=E._rootFramesTimeline=new G,Y=E._rootTimeline=new G,Z=30,$=R.lazyRender=function(){var a,b=K.length;for(L={};--b>-1;)a=K[b],a&&a._lazy!==!1&&(a.render(a._lazy[0],a._lazy[1],!0),a._lazy=!1);K.length=0};Y._startTime=j.time,X._startTime=j.frame,Y._active=X._active=!0,setTimeout($,1),E._updateRoot=H.render=function(){var a,b,c;if(K.length&&$(),Y.render((j.time-Y._startTime)*Y._timeScale,!1,!1),X.render((j.frame-X._startTime)*X._timeScale,!1,!1),K.length&&$(),j.frame>=Z){Z=j.frame+(parseInt(H.autoSleep,10)||120);for(c in T){for(b=T[c].tweens,a=b.length;--a>-1;)b[a]._gc&&b.splice(a,1);0===b.length&&delete T[c]}if(c=Y._first,(!c||c._paused)&&H.autoSleep&&!X._first&&1===j._listeners.tick.length){for(;c&&c._paused;)c=c._next;c||j.sleep()}}},j.addEventListener("tick",E._updateRoot);var _=function(a,b,c){var d,e,f=a._gsTweenID;if(T[f||(a._gsTweenID=f="t"+U++)]||(T[f]={target:a,tweens:[]}),b&&(d=T[f].tweens,d[e=d.length]=b,c))for(;--e>-1;)d[e]===b&&d.splice(e,1);return T[f].tweens},aa=function(a,b,c,d){var e,f,g=a.vars.onOverwrite;return g&&(e=g(a,b,c,d)),g=H.onOverwrite,g&&(f=g(a,b,c,d)),e!==!1&&f!==!1},ba=function(a,b,c,d,e){var f,g,h,i;if(1===d||d>=4){for(i=e.length,f=0;i>f;f++)if((h=e[f])!==b)h._gc||h._kill(null,a,b)&&(g=!0);else if(5===d)break;return g}var j,k=b._startTime+n,l=[],m=0,o=0===b._duration;for(f=e.length;--f>-1;)(h=e[f])===b||h._gc||h._paused||(h._timeline!==b._timeline?(j=j||ca(b,0,o),0===ca(h,j,o)&&(l[m++]=h)):h._startTime<=k&&h._startTime+h.totalDuration()/h._timeScale>k&&((o||!h._initted)&&k-h._startTime<=2e-10||(l[m++]=h)));for(f=m;--f>-1;)if(h=l[f],i=h._firstPT,2===d&&h._kill(c,a,b)&&(g=!0),2!==d||!h._firstPT&&h._initted&&i){if(2!==d&&!aa(h,b))continue;h._enabled(!1,!1)&&(g=!0)}return g},ca=function(a,b,c){for(var d=a._timeline,e=d._timeScale,f=a._startTime;d._timeline;){if(f+=d._startTime,e*=d._timeScale,d._paused)return-100;d=d._timeline}return f/=e,f>b?f-b:c&&f===b||!a._initted&&2*n>f-b?n:(f+=a.totalDuration()/a._timeScale/e)>b+n?0:f-b-n};i._init=function(){var a,b,c,d,e,f,g=this.vars,h=this._overwrittenProps,i=this._duration,j=!!g.immediateRender,k=g.ease;if(g.startAt){this._startAt&&(this._startAt.render(-1,!0),this._startAt.kill()),e={};for(d in g.startAt)e[d]=g.startAt[d];if(e.data="isStart",e.overwrite=!1,e.immediateRender=!0,e.lazy=j&&g.lazy!==!1,e.startAt=e.delay=null,e.onUpdate=g.onUpdate,e.onUpdateParams=g.onUpdateParams,e.onUpdateScope=g.onUpdateScope||g.callbackScope||this,this._startAt=H.to(this.target||{},0,e),j)if(this._time>0)this._startAt=null;else if(0!==i)return}else if(g.runBackwards&&0!==i)if(this._startAt)this._startAt.render(-1,!0),this._startAt.kill(),this._startAt=null;else{0!==this._time&&(j=!1),c={};for(d in g)V[d]&&"autoCSS"!==d||(c[d]=g[d]);if(c.overwrite=0,c.data="isFromStart",c.lazy=j&&g.lazy!==!1,c.immediateRender=j,this._startAt=H.to(this.target,0,c),j){if(0===this._time)return}else this._startAt._init(),this._startAt._enabled(!1),this.vars.immediateRender&&(this._startAt=null)}if(this._ease=k=k?k instanceof w?k:"function"==typeof k?new w(k,g.easeParams):x[k]||H.defaultEase:H.defaultEase,g.easeParams instanceof Array&&k.config&&(this._ease=k.config.apply(k,g.easeParams)),this._easeType=this._ease._type,this._easePower=this._ease._power,this._firstPT=null,this._targets)for(f=this._targets.length,a=0;f>a;a++)this._initProps(this._targets[a],this._propLookup[a]={},this._siblings[a],h?h[a]:null,a)&&(b=!0);else b=this._initProps(this.target,this._propLookup,this._siblings,h,0);if(b&&H._onPluginEvent("_onInitAllProps",this),h&&(this._firstPT||"function"!=typeof this.target&&this._enabled(!1,!1)),g.runBackwards)for(c=this._firstPT;c;)c.s+=c.c,c.c=-c.c,c=c._next;this._onUpdate=g.onUpdate,this._initted=!0},i._initProps=function(b,c,d,e,f){var g,h,i,j,k,l;if(null==b)return!1;L[b._gsTweenID]&&$(),this.vars.css||b.style&&b!==a&&b.nodeType&&S.css&&this.vars.autoCSS!==!1&&J(this.vars,b);for(g in this.vars)if(l=this.vars[g],V[g])l&&(l instanceof Array||l.push&&q(l))&&-1!==l.join("").indexOf("{self}")&&(this.vars[g]=l=this._swapSelfInParams(l,this));else if(S[g]&&(j=new S[g])._onInitTween(b,this.vars[g],this,f)){for(this._firstPT=k={_next:this._firstPT,t:j,p:"setRatio",s:0,c:1,f:1,n:g,pg:1,pr:j._priority,m:0},h=j._overwriteProps.length;--h>-1;)c[j._overwriteProps[h]]=this._firstPT;(j._priority||j._onInitAllProps)&&(i=!0),(j._onDisable||j._onEnable)&&(this._notifyPluginsOfEnabled=!0),k._next&&(k._next._prev=k)}else c[g]=Q.call(this,b,g,"get",l,g,0,null,this.vars.stringFilter,f);return e&&this._kill(e,b)?this._initProps(b,c,d,e,f):this._overwrite>1&&this._firstPT&&d.length>1&&ba(b,this,c,this._overwrite,d)?(this._kill(c,b),this._initProps(b,c,d,e,f)):(this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration)&&(L[b._gsTweenID]=!0),i)},i.render=function(a,b,c){var d,e,f,g,h=this._time,i=this._duration,j=this._rawPrevTime;if(a>=i-1e-7&&a>=0)this._totalTime=this._time=i,this.ratio=this._ease._calcEnd?this._ease.getRatio(1):1,this._reversed||(d=!0,e="onComplete",c=c||this._timeline.autoRemoveChildren),0===i&&(this._initted||!this.vars.lazy||c)&&(this._startTime===this._timeline._duration&&(a=0),(0>j||0>=a&&a>=-1e-7||j===n&&"isPause"!==this.data)&&j!==a&&(c=!0,j>n&&(e="onReverseComplete")),this._rawPrevTime=g=!b||a||j===a?a:n);else if(1e-7>a)this._totalTime=this._time=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0,(0!==h||0===i&&j>0)&&(e="onReverseComplete",d=this._reversed),0>a&&(this._active=!1,0===i&&(this._initted||!this.vars.lazy||c)&&(j>=0&&(j!==n||"isPause"!==this.data)&&(c=!0),this._rawPrevTime=g=!b||a||j===a?a:n)),(!this._initted||this._startAt&&this._startAt.progress())&&(c=!0);else if(this._totalTime=this._time=a,this._easeType){var k=a/i,l=this._easeType,m=this._easePower;(1===l||3===l&&k>=.5)&&(k=1-k),3===l&&(k*=2),1===m?k*=k:2===m?k*=k*k:3===m?k*=k*k*k:4===m&&(k*=k*k*k*k),1===l?this.ratio=1-k:2===l?this.ratio=k:.5>a/i?this.ratio=k/2:this.ratio=1-k/2}else this.ratio=this._ease.getRatio(a/i);if(this._time!==h||c){if(!this._initted){if(this._init(),!this._initted||this._gc)return;if(!c&&this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration))return this._time=this._totalTime=h,this._rawPrevTime=j,K.push(this),void(this._lazy=[a,b]);this._time&&!d?this.ratio=this._ease.getRatio(this._time/i):d&&this._ease._calcEnd&&(this.ratio=this._ease.getRatio(0===this._time?0:1))}for(this._lazy!==!1&&(this._lazy=!1),this._active||!this._paused&&this._time!==h&&a>=0&&(this._active=!0),0===h&&(this._startAt&&(a>=0?this._startAt.render(a,!0,c):e||(e="_dummyGS")),this.vars.onStart&&(0!==this._time||0===i)&&(b||this._callback("onStart"))),f=this._firstPT;f;)f.f?f.t[f.p](f.c*this.ratio+f.s):f.t[f.p]=f.c*this.ratio+f.s,f=f._next;this._onUpdate&&(0>a&&this._startAt&&a!==-1e-4&&this._startAt.render(a,!0,c),b||(this._time!==h||d||c)&&this._callback("onUpdate")),e&&(!this._gc||c)&&(0>a&&this._startAt&&!this._onUpdate&&a!==-1e-4&&this._startAt.render(a,!0,c),d&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[e]&&this._callback(e),0===i&&this._rawPrevTime===n&&g!==n&&(this._rawPrevTime=0))}},i._kill=function(a,b,c){if("all"===a&&(a=null),null==a&&(null==b||b===this.target))return this._lazy=!1,this._enabled(!1,!1);b="string"!=typeof b?b||this._targets||this.target:H.selector(b)||b;var d,e,f,g,h,i,j,k,l,m=c&&this._time&&c._startTime===this._startTime&&this._timeline===c._timeline,n=this._firstPT;if((q(b)||I(b))&&"number"!=typeof b[0])for(d=b.length;--d>-1;)this._kill(a,b[d],c)&&(i=!0);else{if(this._targets){for(d=this._targets.length;--d>-1;)if(b===this._targets[d]){h=this._propLookup[d]||{},this._overwrittenProps=this._overwrittenProps||[],e=this._overwrittenProps[d]=a?this._overwrittenProps[d]||{}:"all";break}}else{if(b!==this.target)return!1;h=this._propLookup,e=this._overwrittenProps=a?this._overwrittenProps||{}:"all"}if(h){if(j=a||h,k=a!==e&&"all"!==e&&a!==h&&("object"!=typeof a||!a._tempKill),c&&(H.onOverwrite||this.vars.onOverwrite)){for(f in j)h[f]&&(l||(l=[]),l.push(f));if((l||!a)&&!aa(this,c,b,l))return!1}for(f in j)(g=h[f])&&(m&&(g.f?g.t[g.p](g.s):g.t[g.p]=g.s,i=!0),g.pg&&g.t._kill(j)&&(i=!0),g.pg&&0!==g.t._overwriteProps.length||(g._prev?g._prev._next=g._next:g===this._firstPT&&(this._firstPT=g._next),g._next&&(g._next._prev=g._prev),g._next=g._prev=null),delete h[f]),k&&(e[f]=1);!this._firstPT&&this._initted&&n&&this._enabled(!1,!1)}}return i},i.invalidate=function(){return this._notifyPluginsOfEnabled&&H._onPluginEvent("_onDisable",this),this._firstPT=this._overwrittenProps=this._startAt=this._onUpdate=null,this._notifyPluginsOfEnabled=this._active=this._lazy=!1,this._propLookup=this._targets?{}:[],E.prototype.invalidate.call(this),this.vars.immediateRender&&(this._time=-n,this.render(Math.min(0,-this._delay))),this},i._enabled=function(a,b){if(k||j.wake(),a&&this._gc){var c,d=this._targets;if(d)for(c=d.length;--c>-1;)this._siblings[c]=_(d[c],this,!0);else this._siblings=_(this.target,this,!0)}return E.prototype._enabled.call(this,a,b),this._notifyPluginsOfEnabled&&this._firstPT?H._onPluginEvent(a?"_onEnable":"_onDisable",this):!1},H.to=function(a,b,c){return new H(a,b,c)},H.from=function(a,b,c){return c.runBackwards=!0,c.immediateRender=0!=c.immediateRender,new H(a,b,c)},H.fromTo=function(a,b,c,d){return d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,new H(a,b,d)},H.delayedCall=function(a,b,c,d,e){return new H(b,0,{delay:a,onComplete:b,onCompleteParams:c,callbackScope:d,onReverseComplete:b,onReverseCompleteParams:c,immediateRender:!1,lazy:!1,useFrames:e,overwrite:0})},H.set=function(a,b){return new H(a,0,b)},H.getTweensOf=function(a,b){if(null==a)return[];a="string"!=typeof a?a:H.selector(a)||a;var c,d,e,f;if((q(a)||I(a))&&"number"!=typeof a[0]){for(c=a.length,d=[];--c>-1;)d=d.concat(H.getTweensOf(a[c],b));for(c=d.length;--c>-1;)for(f=d[c],e=c;--e>-1;)f===d[e]&&d.splice(c,1)}else if(a._gsTweenID)for(d=_(a).concat(),c=d.length;--c>-1;)(d[c]._gc||b&&!d[c].isActive())&&d.splice(c,1);return d||[]},H.killTweensOf=H.killDelayedCallsTo=function(a,b,c){"object"==typeof b&&(c=b,b=!1);for(var d=H.getTweensOf(a,b),e=d.length;--e>-1;)d[e]._kill(c,a)};var da=u("plugins.TweenPlugin",function(a,b){this._overwriteProps=(a||"").split(","),this._propName=this._overwriteProps[0],this._priority=b||0,this._super=da.prototype},!0);if(i=da.prototype,da.version="1.19.0",da.API=2,i._firstPT=null,i._addTween=Q,i.setRatio=O,i._kill=function(a){var b,c=this._overwriteProps,d=this._firstPT;if(null!=a[this._propName])this._overwriteProps=[];else for(b=c.length;--b>-1;)null!=a[c[b]]&&c.splice(b,1);for(;d;)null!=a[d.n]&&(d._next&&(d._next._prev=d._prev),d._prev?(d._prev._next=d._next,d._prev=null):this._firstPT===d&&(this._firstPT=d._next)),d=d._next;return!1},i._mod=i._roundProps=function(a){for(var b,c=this._firstPT;c;)b=a[this._propName]||null!=c.n&&a[c.n.split(this._propName+"_").join("")],b&&"function"==typeof b&&(2===c.f?c.t._applyPT.m=b:c.m=b),c=c._next},H._onPluginEvent=function(a,b){var c,d,e,f,g,h=b._firstPT;if("_onInitAllProps"===a){for(;h;){for(g=h._next,d=e;d&&d.pr>h.pr;)d=d._next;(h._prev=d?d._prev:f)?h._prev._next=h:e=h,(h._next=d)?d._prev=h:f=h,h=g}h=b._firstPT=e}for(;h;)h.pg&&"function"==typeof h.t[a]&&h.t[a]()&&(c=!0),h=h._next;return c},da.activate=function(a){for(var b=a.length;--b>-1;)a[b].API===da.API&&(S[(new a[b])._propName]=a[b]);return!0},t.plugin=function(a){if(!(a&&a.propName&&a.init&&a.API))throw"illegal plugin definition.";var b,c=a.propName,d=a.priority||0,e=a.overwriteProps,f={init:"_onInitTween",set:"setRatio",kill:"_kill",round:"_mod",mod:"_mod",initAll:"_onInitAllProps"},g=u("plugins."+c.charAt(0).toUpperCase()+c.substr(1)+"Plugin",function(){da.call(this,c,d),this._overwriteProps=e||[]},a.global===!0),h=g.prototype=new da(c);h.constructor=g,g.API=a.API;for(b in f)"function"==typeof a[b]&&(h[f[b]]=a[b]);return g.version=a.version,da.activate([g]),g},g=a._gsQueue){for(h=0;h<g.length;h++)g[h]();for(i in r)r[i].func||a.console.log("GSAP encountered missing dependency: "+i)}k=!1}("undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window,"TweenMax");
(function($, elementor){
"use strict";
var JetElements={
callWidget: function(fnName){
return function($scope){
if(typeof window[fnName]!=='function'){
return;
}
window[fnName]($scope);
};},
addedScripts: {},
addedStyles: {},
addedAssetsPromises: [],
init: function(){
var widgets={
'jet-carousel.default': JetElements.callWidget('widgetCarousel'),
'jet-circle-progress.default': JetElements.callWidget('widgetProgress'),
'jet-map.default': JetElements.callWidget('widgetMap'),
'jet-countdown-timer.default': JetElements.callWidget('widgetCountdown'),
'jet-posts.default': JetElements.callWidget('widgetPosts'),
'jet-animated-text.default': JetElements.callWidget('widgetAnimatedText'),
'jet-animated-box.default': JetElements.callWidget('widgetAnimatedBox'),
'jet-images-layout.default': JetElements.callWidget('widgetImagesLayout'),
'jet-slider.default': JetElements.callWidget('widgetSlider'),
'jet-testimonials.default': JetElements.callWidget('widgetTestimonials'),
'jet-image-comparison.default': JetElements.callWidget('widgetImageComparison'),
'jet-instagram-gallery.default': JetElements.callWidget('widgetInstagramGallery'),
'jet-scroll-navigation.default': JetElements.callWidget('widgetScrollNavigation'),
'jet-subscribe-form.default': JetElements.callWidget('widgetSubscribeForm'),
'jet-progress-bar.default': JetElements.callWidget('widgetProgressBar'),
'jet-portfolio.default': JetElements.callWidget('widgetPortfolio'),
'jet-timeline.default': JetElements.callWidget('widgetTimeLine'),
'jet-table.default': JetElements.callWidget('widgetTable'),
'jet-dropbar.default': JetElements.callWidget('widgetDropbar'),
'jet-video.default': JetElements.callWidget('widgetVideo'),
'jet-audio.default': JetElements.callWidget('widgetAudio'),
'jet-horizontal-timeline.default': JetElements.callWidget('widgetHorizontalTimeline'),
'mp-timetable.default': JetElements.callWidget('widgetTimeTable'),
'jet-pie-chart.default': JetElements.callWidget('widgetPieChart'),
'jet-bar-chart.default': JetElements.callWidget('widgetBarChart'),
'jet-line-chart.default': JetElements.callWidget('widgetLineChart'),
'jet-lottie.default': JetElements.callWidget('widgetLottie'),
'jet-pricing-table.default': JetElements.callWidget('widgetPricingTable'),
};
$.each(widgets, function(widget, callback){
elementorFrontend.hooks.addAction('frontend/element_ready/' + widget,
callback
);
});
elementorFrontend.hooks.addAction('frontend/element_ready/section',
JetElements.elementorSection
);
elementorFrontend.hooks.addAction('frontend/element_ready/container',
JetElements.elementorSection
);
window.elementorFrontend.elements.$window.on('elementor/nested-tabs/activate',
(event, content)=> {
const $content=$(content);
requestAnimationFrame(()=> {
JetElements.reinitSlickSlider($content);
JetElements.initWidgetsHandlers($content);
});
}
);
elementorFrontend.hooks.addAction('frontend/element_ready/loop-carousel.post', function($scope){
var $loopCarousel=$scope.find('.swiper');
if(!$loopCarousel.length) return;
var swiperEl=$loopCarousel[0];
var checkSwiper=setInterval(function (){
if(!swiperEl.swiper) return;
clearInterval(checkSwiper);
var swiperInstance=swiperEl.swiper;
var $audioControls=$scope.find('.mejs-time-slider, .mejs-horizontal-volume-slider, .mejs-volume-button'
);
if($audioControls.length){
if(swiperInstance.params.loop&&swiperInstance.params.slidesPerView===1){
swiperInstance.on('slideChangeTransitionEnd.audioFix', function (){
this.loopFix();
});
}
$audioControls.off('.audioSwipe').on('pointerdown.audioSwipe', function(event){
if(event.button!==0) return;
swiperInstance.allowTouchMove=false;
event.stopPropagation();
});
$audioControls.on('pointerup.audioSwipe pointercancel.audioSwipe', function(event){
if(event.button!==0) return;
setTimeout(function (){
swiperInstance.allowTouchMove=true;
}, 200);
event.stopPropagation();
});
}}, 50);
}
);
elementorFrontend.hooks.addAction('frontend/element_ready/nested-accordion.default', function($scope){
$scope.find('.e-n-accordion-item').each(function(){
const item=this;
new MutationObserver(function(mutations){
mutations.forEach(function(mutation){
if(mutation.type==='attributes'&&mutation.attributeName==='open'&&item.hasAttribute('open')){
$(item).find('.slider-pro').each(function (){
$(this).sliderPro('update');
});
}});
}).observe(item, {
attributes: true,
attributeFilter: ['open']
});
});
});
},
reinitSlickSlider: function($scope){
var $sliders=$scope.find(`
[data-widget_type="jet-carousel.default"] .slick-initialized,
[data-widget_type="jet-testimonials.default"] .slick-initialized,
[data-widget_type="jet-image-comparison.default"] .slick-initialized,
[data-widget_type="jet-posts.default"] .slick-initialized
`);
if($sliders.length){
$sliders.each(function(){
$(this).slick('unslick');
});
}},
loadScriptAsync: function(script, uri){
if(JetElements.addedScripts.hasOwnProperty(script) ){
return script;
}
if(!uri){
return;
}
JetElements.addedScripts[ script ]=uri;
return new Promise(function(resolve, reject){
var tag=document.createElement('script');
tag.src=uri;
tag.async=true;
tag.onload=function(){
resolve(script);
};
document.head.appendChild(tag);
});
},
loadStyle: function(style, uri){
if(JetElements.addedStyles.hasOwnProperty(style)&&JetElements.addedStyles[ style ]===uri){
return style;
}
if(!uri){
return;
}
JetElements.addedStyles[ style ]=uri;
return new Promise(function(resolve, reject){
var tag=document.createElement('link');
tag.id=style;
tag.rel='stylesheet';
tag.href=uri;
tag.type='text/css';
tag.media='all';
tag.onload=function(){
resolve(style);
};
document.head.appendChild(tag);
});
},
initWidgetsHandlers: function($selector){
$selector.find('.elementor-widget-jet-slider, .elementor-widget-jet-testimonials, .elementor-widget-jet-carousel, .elementor-widget-jet-portfolio, .elementor-widget-jet-horizontal-timeline, .elementor-widget-jet-image-comparison, .elementor-widget-jet-posts, .jet-parallax-section').each(function(){
var $this=$(this),
elementType=$this.data('element_type');
if(!elementType){
return;
}
if('widget'===elementType){
elementType=$this.data('widget_type');
window.elementorFrontend.hooks.doAction('frontend/element_ready/widget', $this, $);
}
window.elementorFrontend.hooks.doAction('frontend/element_ready/global', $this, $);
window.elementorFrontend.hooks.doAction('frontend/element_ready/' + elementType, $this, $);
});
},
initElementsHandlers: function($selector){
$selector.find('[data-element_type]').each(function(){
var $this=$(this),
elementType=$this.data('element_type');
if(!elementType){
return;
}
if('widget'===elementType){
elementType=$this.data('widget_type');
window.elementorFrontend.hooks.doAction('frontend/element_ready/widget', $this, $);
}
window.elementorFrontend.hooks.doAction('frontend/element_ready/global', $this, $);
window.elementorFrontend.hooks.doAction('frontend/element_ready/' + elementType, $this, $);
});
},
observer: function($elements, callback, options={}){
const defaultOptions={
threshold: 0.5,
triggerOnce: false,
};
options=jQuery.extend(defaultOptions, options);
const observerOptions={
root: null,
rootMargin: '0px',
threshold: options.threshold
};
const previousY=new WeakMap();
const observer=new IntersectionObserver((entries)=> {
entries.forEach(entry=> {
const currentY=entry.boundingClientRect.y;
const prevY=previousY.get(entry.target)||currentY;
entry.direction=currentY < prevY ? 'down':'up';
previousY.set(entry.target, currentY);
});
const visibleEntries=entries.filter(entry=> entry.intersectionRatio >=options.threshold);
if(visibleEntries.length > 0){
visibleEntries.sort((a, b)=> b.intersectionRatio - a.intersectionRatio);
callback.call(visibleEntries[0].target, visibleEntries[0].direction, visibleEntries[0]);
}}, observerOptions);
$elements.each(function(){
observer.observe(this);
});
return observer;
},
prepareWaypointOptions: function($scope, waypointOptions){
var options=waypointOptions||{},
$parentPopup=$scope.closest('.jet-popup__container-inner, .elementor-popup-modal .dialog-message');
if($parentPopup[0]){
options.context=$parentPopup[0];
}
return options;
},
widgetTimeTable: function($scope){
var $mptt_shortcode_wrapper=$scope.find('.mptt-shortcode-wrapper');
if(( typeof typenow)!=='undefined'){
if(pagenow===typenow){
switch(typenow){
case 'mp-event':
Registry._get('Event').init();
break;
case 'mp-column':
Registry._get('Event').initDatePicker();
Registry._get('Event').columnRadioBox();
break;
default:
break;
}}
}
if($mptt_shortcode_wrapper.length){
Registry._get('Event').initTableData();
Registry._get('Event').filterShortcodeEvents();
Registry._get('Event').getFilterByHash();
$mptt_shortcode_wrapper.show();
}
if($('.upcoming-events-widget').length||$mptt_shortcode_wrapper.length){
Registry._get('Event').setColorSettings();
}},
elementorSection: function($scope){
var $target=$scope,
instance=null,
editMode=Boolean(elementor.isEditMode());
instance=new jetSectionParallax($target);
instance.init();
},
initCarousel: function($target, options){
var	defaultOptions,
slickOptions,
responsive=[],
eTarget=$target.closest('.elementor-widget'),
breakpoints=JetElementsTools.getElementorElementSettings(eTarget),
activeBreakpoints=elementor.config.responsive.activeBreakpoints,
dotsEnable=options.dots,
accessibility=true,
prevDeviceToShowValue,
prevDeviceToScrollValue,
slidesCount,
jetListing=eTarget.closest('.jet-listing-grid').hasClass('jet-listing'),
jetListingItem=eTarget.closest('.jet-listing-grid__item'),
jetnextArrow=eTarget.find('.prev-arrow'),
jetprevArrow=eTarget.find('.next-arrow'),
isMobileCheck=JetElementsTools.mobileAndTabletcheck();
if(jetListing&&jetListingItem){
options.nextArrow=false;
options.prevArrow=false;
jetListingItem.find(jetnextArrow).on('click', function (){
$target.slick('slickPrev');
});
jetListingItem.find(jetprevArrow).on('click', function (){
$target.slick('slickNext');
});
}
if($target.hasClass('jet-image-comparison__instance') ){
accessibility=false;
setTimeout(function(){
$target.on('beforeChange', function(){
var _this=$(this);
_this.find('.slick-slide').each(function(){
$(this).find('.jx-controller').attr('tabindex', '');
$(this).find('.jx-label').attr('tabindex', '');
});
});
$target.on('afterChange', function(){
var _this=$(this);
_this.find('.slick-slide.slick-active').each(function(){
$(this).find('.jx-controller').attr('tabindex', '0');
$(this).find('.jx-label').attr('tabindex', 0);
});
});
}, 100);
}
if($target.hasClass('jet-posts')&&$target.parent().hasClass('jet-carousel') ){
function renameKeys(obj, newKeys){
const keyValues=Object.keys(obj).map(key=> {
const newKey=newKeys[key]||key;
return { [newKey]: obj[key] };});
return Object.assign({}, ...keyValues);
}
var newBreakpointsKeys={
columns: "slides_to_show",
columns_widescreen: "slides_to_show_widescreen",
columns_laptop: "slides_to_show_laptop",
columns_tablet_extra: "slides_to_show_tablet_extra",
columns_tablet: "slides_to_show_tablet",
columns_mobile_extra: "slides_to_show_mobile_extra",
columns_mobile: "slides_to_show_mobile"
};
breakpoints=renameKeys(breakpoints, newBreakpointsKeys);
slidesCount=$('> div.jet-posts__item', $target).length;
}else{
slidesCount=$('> div', $target).length;
}
options.slidesToShow=+breakpoints.slides_to_show;
options.slidesToScroll=breakpoints.slides_to_scroll ? +breakpoints.slides_to_scroll:1;
Object.keys(activeBreakpoints).forEach(function(breakpointName){
if('widescreen'===breakpointName){
options.slidesToShow=("slides_to_show_widescreen" in breakpoints)&&''!=breakpoints.slides_to_show_widescreen ? +breakpoints.slides_to_show_widescreen:+breakpoints.slides_to_show;
if(( "slides_to_scroll_widescreen" in breakpoints)&&''!=breakpoints.slides_to_scroll_widescreen){
options.slidesToScroll=+breakpoints.slides_to_scroll_widescreen;
}else{
if(options.slidesToShow > +breakpoints.slides_to_scroll){
options.slidesToScroll=+breakpoints.slides_to_scroll;
}else{
options.slidesToScroll=options.slidesToShow;
}}
}});
if(options.slidesToShow >=slidesCount){
options.dots=false;
}
prevDeviceToShowValue=options.slidesToShow;
prevDeviceToScrollValue=options.slidesToScroll;
setTimeout(function(){
$('.slick-slide', $target).each(function (){
if($(this).attr('aria-describedby')!=undefined){
$(this).attr('id', $(this).attr('aria-describedby') );
}});
$('.jet-slick-dots', $target).removeAttr('role');
$('.jet-slick-dots li', $target).each(function(){
$(this).removeAttr('role');
$(this).attr('tabindex', '0');
});
}, 100);
$target.on('init reInit', function(){
$('.jet-slick-dots', $target).removeAttr('role');
$('.jet-slick-dots li', $(this) ).each(function(){
$(this).removeAttr('role');
$(this).attr('tabindex', '0');
});
$('.jet-slick-dots li', $(this) ).keydown(function(e){
var $this=$(this),
$which=e.which||e.keyCode;
if($which==13||$which==32){
$this.click();
}
if($which==37){
if(0!=$this.prev().length){
$this.prev().focus();
$this.prev().click();
}}
if($which==39){
if(0!=$this.next().length){
$this.next().focus();
$this.next().click();
}}
});
$('.jet-arrow', eTarget).attr('tabindex', 0);
$('.jet-arrow', eTarget).keydown(function(e){
var $this=$(this),
$which=e.which||e.keyCode;
if($which==13||$which==32){
$this.click();
}
if($which==37){
if(0!=$this.prev().length&&$this.prev().hasClass('slick-arrow') ){
$this.prev().focus();
}}
if($which==39&&$this.next().hasClass('slick-arrow') ){
if(0!=$this.next().length){
$this.next().focus();
}}
});
if($target.hasClass('jet-image-comparison__instance') ){
setTimeout(function(){
$target.find('.slick-slide.slick-active').each(function(){
$(this).find('.jx-controller').attr('tabindex', '0');
$(this).find('.jx-label').attr('tabindex', '0');
});
}, 100);
}
var slidesTrack=$('.slick-track', $target);
slidesTrack.find('.slick-slide').each(function(){
var _this=$(this),
itemImg=$('.jet-carousel__item-img', _this);
var observer=new IntersectionObserver(function(entries){
if(entries[0].isIntersecting===true){
itemImg.each(function(){
var attr=$(this).attr('loading');
if(typeof attr!=='undefined'&&attr!==false){
if(0===$(this).width()){
$(this).attr('loading', "");
}}
})
observer.unobserve(entries[0].target);
}}, { threshold: [0] });
observer.observe(_this[0]);
});
if(options.infinite){
var $items=$(this),
$clonedSlides=$('> .slick-list > .slick-track > .slick-cloned.jet-carousel__item', $items);
if(!$clonedSlides.length){
return;
}
JetElements.initElementsHandlers($clonedSlides);
}});
if($target.hasClass('slick-initialized') ){
$target.not('.slick-initialized').slick('refresh', true);
return;
}
Object.keys(activeBreakpoints).reverse().forEach(function(breakpointName){
if(breakpoints['slides_to_show_' + breakpointName]||breakpoints['slides_to_scroll_' + breakpointName]){
var breakpointSetting={
breakpoint: null,
settings: {}}
breakpointSetting.breakpoint='widescreen'!=breakpointName ? activeBreakpoints[breakpointName].value:activeBreakpoints[breakpointName].value - 1;
if('widescreen'===breakpointName){
breakpointSetting.settings.slidesToShow=+breakpoints['slides_to_show'];
breakpointSetting.settings.slidesToScroll=+breakpoints['slides_to_scroll'] ? +breakpoints['slides_to_scroll']: 1;
}else{
breakpointSetting.settings.slidesToShow=breakpoints['slides_to_show_' + breakpointName] ? +breakpoints['slides_to_show_' + breakpointName]:prevDeviceToShowValue;
breakpointSetting.settings.slidesToScroll=breakpoints['slides_to_scroll_' + breakpointName] ? +breakpoints['slides_to_scroll_' + breakpointName]:prevDeviceToScrollValue;
}
if(breakpointSetting.settings.slidesToShow >=slidesCount){
breakpointSetting.settings.dots=false;
}else{
if(dotsEnable){
breakpointSetting.settings.dots=true;
}}
prevDeviceToShowValue=breakpointSetting.settings.slidesToShow;
prevDeviceToScrollValue=breakpointSetting.settings.slidesToScroll
responsive.push(breakpointSetting);
}});
options.responsive=responsive;
if(options.slidesToShow >=slidesCount){
options.dots=false;
}
if(isMobileCheck&&options.variableWidth){
options.variableWidth=false;
options.centerMode=false;
options.slidesToScroll=1;
options.slidesToShow=1;
}
else if(options.variableWidth){
options.slidesToShow=1;
options.centerMode=true;
}
defaultOptions={
customPaging: function(slider, i){
return $('<span />').text(i + 1);
},
dotsClass: 'jet-slick-dots',
accessibility: accessibility
};
slickOptions=$.extend({}, defaultOptions, options);
$target.slick(slickOptions);
if($target.hasClass('jet-image-comparison__instance') ){
let juxtaposeSlidersLength=window.juxtapose.sliders.length;
for(let i=0; i < juxtaposeSlidersLength; i++){
window.juxtapose.sliders[i].setWrapperDimensions();
}}
},
};
window.JetElements=JetElements;
$(window).on('elementor/frontend/init', JetElements.init);
var JetElementsTools={
getElementPercentageSeen: function($element, offset){
var offsetSettings=offset||{},
startOffset=offsetSettings.start||0,
endOffset=offsetSettings.end||0,
viewportHeight=$(window).height(),
viewportStartOffset=viewportHeight * startOffset / 100,
viewportEndOffset=viewportHeight * endOffset / 100,
scrollTop=$(window).scrollTop(),
elementOffsetTop=$element.offset().top,
elementHeight=$element.height(),
percentage;
percentage=(scrollTop + viewportHeight + viewportStartOffset - elementOffsetTop) / (viewportHeight + viewportStartOffset + viewportEndOffset + elementHeight);
percentage=Math.min(100, Math.max(0, percentage * 100) );
return parseFloat(percentage.toFixed(2) );
},
isRTL: function(){
return $('body').hasClass('rtl');
},
inArray: function(needle, haystack){
return -1 < haystack.indexOf(needle);
},
debounce: function(threshold, callback){
var timeout;
return function debounced($event){
function delayed(){
callback.call(this, $event);
timeout=null;
}
if(timeout){
clearTimeout(timeout);
}
timeout=setTimeout(delayed, threshold);
};},
getObjectNextKey: function(object, key){
var keys=Object.keys(object),
idIndex=keys.indexOf(key),
nextIndex=idIndex +=1;
if(nextIndex >=keys.length){
return false;
}
var nextKey=keys[ nextIndex ];
return nextKey;
},
getObjectPrevKey: function(object, key){
var keys=Object.keys(object),
idIndex=keys.indexOf(key),
prevIndex=idIndex -=1;
if(0 > idIndex){
return false;
}
var prevKey=keys[ prevIndex ];
return prevKey;
},
getObjectFirstKey: function(object){
return Object.keys(object)[0];
},
getObjectLastKey: function(object){
return Object.keys(object)[ Object.keys(object).length - 1 ];
},
getObjectValues: function(object){
var values;
if(!Object.values){
values=Object.keys(object).map(function(e){
return object[e]
});
return values;
}
return Object.values(object);
},
validateEmail: function(email){
var re=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
},
mobileAndTabletcheck: function(){
var check=false;
(function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm(os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s)|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp(i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac(|\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt(|\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg(g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v)|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v)|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-|)|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check=true;})(navigator.userAgent||navigator.vendor||window.opera);
return check;
},
addThousandCommaSeparator: function(nStr, separator){
var nStr=nStr + '',
separator=separator.toString().replace(/[0-9]/g, ''),
x=nStr.split('.'),
x1=x[0],
x2=x.length > 1 ? '.' + x[1]:'',
rgx=/(\d+)(\d{3})/;
if(''===separator){
return nStr;
}
while(rgx.test(x1)){
x1=x1.replace(rgx, '$1' + separator + '$2');
}
return x1 + x2;
},
getElementorElementSettings: function($scope){
if(window.elementorFrontend&&window.elementorFrontend.isEditMode()&&$scope.hasClass('elementor-element-edit-mode') ){
return JetElementsTools.getEditorElementSettings($scope);
}
return $scope.data('settings')||{};},
getEditorElementSettings: function($scope){
var modelCID=$scope.data('model-cid'),
elementData;
if(! modelCID){
return {};}
if(! elementor.hasOwnProperty('config') ){
return {};}
if(! elementor.config.hasOwnProperty('elements') ){
return {};}
if(! elementor.config.elements.hasOwnProperty('data') ){
return {};}
elementData=elementor.config.elements.data[ modelCID ];
if(! elementData){
return {};}
return elementData.toJSON();
}}
window.JetElementsTools=JetElementsTools;
window.jetSectionParallax=function($target){
var self=this,
sectionId=$target.data('id'),
settings=false,
editMode=Boolean(elementor.isEditMode()),
$window=$(window),
$body=$('body'),
scrollLayoutList=[],
mouseLayoutList=[],
winScrollTop=$window.scrollTop(),
winHeight=$window.height(),
requesScroll=null,
requestMouse=null,
tiltx=0,
tilty=0,
isSafari         = !!navigator.userAgent.match(/Version\/[\d\.]+.*Safari/),
platform=navigator.platform;
self.init=function(){
if(! editMode){
settings=$target.data('settings')||false;
settings=false!=settings ? settings['jet_parallax_layout_list']:false;
}else{
settings=self.generateEditorSettings($target);
}
if(! settings){
return false;
}
self.generateLayouts();
$window.on('resize.jetSectionParallax orientationchange.jetSectionParallax', JetElementsTools.debounce(30, self.generateLayouts) );
if(0!==scrollLayoutList.length){
$window.on('scroll.jetSectionParallax resize.jetSectionParallax', self.scrollHandler);
}
if(0!==mouseLayoutList.length){
$target.on('mousemove.jetSectionParallax resize.jetSectionParallax', self.mouseMoveHandler);
$target.on('mouseleave.jetSectionParallax', self.mouseLeaveHandler);
}
self.scrollUpdate();
};
self.generateEditorSettings=function($target){
var editorElements=null,
sectionsData={},
sectionData={},
sectionParallaxData={},
settings=[];
if(! window.elementor.hasOwnProperty('elements') ){
return false;
}
sectionData=JetElementsTools.getElementorElementSettings($target);
if(! sectionData.hasOwnProperty('jet_parallax_layout_list')||0===Object.keys(sectionData).length){
return false;
}
sectionParallaxData=sectionData[ 'jet_parallax_layout_list' ];
$.each(sectionParallaxData, function(index, obj){
settings.push(obj);
});
if(0!==settings.length){
return settings;
}
return false;
};
self.generateLayouts=function(){
$('.jet-parallax-section__layout', $target).remove();
$.each(settings, function(index, layout){
var imageData=layout['jet_parallax_layout_image'],
speed=layout['jet_parallax_layout_speed']['size']||50,
zIndex=layout['jet_parallax_layout_z_index'],
animProp=layout['jet_parallax_layout_animation_prop']||'bgposition',
deviceMode=elementorFrontend.getCurrentDeviceMode(),
activeBreakpoints=elementor.config.responsive.activeBreakpoints,
activeBreakpointsArray=[],
bgX=layout['jet_parallax_layout_bg_x'],
bgY=layout['jet_parallax_layout_bg_y'],
type=layout['jet_parallax_layout_type']||'none',
direction=layout['jet_parallax_layout_direction']||'1',
fxDirection=layout['jet_parallax_layout_fx_direction']||'fade-in',
device=layout['jet_parallax_layout_on']||['desktop', 'tablet'],
_id=layout['_id'],
$layout=null,
layoutData={},
safariClass=isSafari ? ' is-safari':'',
macClass='MacIntel'==platform ? ' is-mac':'';
if(-1===device.indexOf(deviceMode) ){
return false;
}
for(var [key, value] of Object.entries(activeBreakpoints) ){
if('widescreen'===key){
activeBreakpointsArray.push('desktop');
activeBreakpointsArray.push(key);
}else{
activeBreakpointsArray.push(key);
}}
if(-1===activeBreakpointsArray.indexOf('widescreen') ){
activeBreakpointsArray.push('desktop');
}
activeBreakpointsArray=activeBreakpointsArray.reverse();
var breakpoints=[ 'widescreen', 'desktop', 'laptop', 'tablet_extra', 'tablet', 'mobile_extra', 'mobile'],
i=0,
prevDevice,
layoutBreakpoinntsSettings=[];
breakpoints.forEach(function(item){
if(-1!=activeBreakpointsArray.indexOf(item) ){
layoutBreakpoinntsSettings[i]=[];
if('widescreen'===item){
layoutBreakpoinntsSettings[i][item]={
'bgX':''!=layout['jet_parallax_layout_bg_x_' + item] ? layout['jet_parallax_layout_bg_x']:0,
'bgY':''!=layout['jet_parallax_layout_bg_y_' + item] ? layout['jet_parallax_layout_bg_y']:0,
'layoutImageData':''!=layout['jet_parallax_layout_image_' + item] ? layout['jet_parallax_layout_image_' + item]:''
};}else if('desktop'===item){
layoutBreakpoinntsSettings[i][item]={
'bgX':''!=layout['jet_parallax_layout_bg_x'] ? layout['jet_parallax_layout_bg_x']:0,
'bgY':''!=layout['jet_parallax_layout_bg_y'] ? layout['jet_parallax_layout_bg_y']:0,
'layoutImageData':imageData['url']||layout['jet_parallax_layout_image']['url']
};}else{
layoutBreakpoinntsSettings[i][item]={
'bgX':(layout['jet_parallax_layout_bg_x_' + item]&&''!=layout['jet_parallax_layout_bg_x_' + item]) ? layout['jet_parallax_layout_bg_x_' + item]:layoutBreakpoinntsSettings[i-1][prevDevice].bgX,
'bgY':(layout['jet_parallax_layout_bg_y_' + item]&&''!=layout['jet_parallax_layout_bg_y_' + item]) ? layout['jet_parallax_layout_bg_y_' + item]:layoutBreakpoinntsSettings[i-1][prevDevice].bgY,
'layoutImageData':(layout['jet_parallax_layout_image_' + item]&&''!=layout['jet_parallax_layout_image_' + item]['url']) ? layout['jet_parallax_layout_image_' + item]['url']:layoutBreakpoinntsSettings[i-1][prevDevice].layoutImageData
};}
if(deviceMode===item){
bgX=layoutBreakpoinntsSettings[i][item].bgX;
bgY=layoutBreakpoinntsSettings[i][item].bgY;
imageData=layoutBreakpoinntsSettings[i][item].layoutImageData;
}
prevDevice=item;
i++;
}});
if(! $target.hasClass('jet-parallax-section') ){
$target.addClass('jet-parallax-section');
}
$layout=$('<div class="jet-parallax-section__layout elementor-repeater-item-' + _id + ' jet-parallax-section__' + type +'-layout' + macClass + '"><div class="jet-parallax-section__image"></div></div>')
.prependTo($target)
.css({
'z-index': zIndex
});
var imageCSS={
'background-position-x': bgX + '%',
'background-position-y': bgY + '%',
'background-image': 'url(' + imageData + ')'
};
$('> .jet-parallax-section__image', $layout).css(imageCSS);
layoutData={
selector: $layout,
prop: animProp,
type: type,
device: device,
xPos: bgX,
yPos: bgY,
direction: +direction,
fxDirection: fxDirection,
speed: 2 *(speed / 100)
};
if('none'!==type){
if(JetElementsTools.inArray(type, ['scroll', 'h-scroll', 'zoom', 'rotate', 'blur', 'opacity']) ){
scrollLayoutList.push(layoutData);
}
if('mouse'===type){
mouseLayoutList.push(layoutData);
}}
});
};
self.scrollHandler=function(event){
winScrollTop=$window.scrollTop();
winHeight=$window.height();
self.scrollUpdate();
};
self.scrollUpdate=function(){
$.each(scrollLayoutList, function(index, layout){
var $this=layout.selector,
$image=$('.jet-parallax-section__image', $this),
speed=layout.speed,
offsetTop=$this.offset().top,
thisHeight=$this.outerHeight(),
prop=layout.prop,
type=layout.type,
dir=layout.direction,
fxDir=layout.fxDirection,
posY=(winScrollTop - offsetTop + winHeight) / thisHeight * 100,
device=elementorFrontend.getCurrentDeviceMode();
if(-1===layout.device.indexOf(device) ){
$image.css({
'transform': 'translateX(0) translateY(0)',
'background-position-y': layout.yPos,
'background-position-x': layout.xPos,
'filter': 'none',
'opacity': '1'
});
return false;
}
if(winScrollTop < offsetTop - winHeight) posY=0;
if(winScrollTop > offsetTop + thisHeight) posY=200;
posY=parseFloat(speed * posY).toFixed(1);
switch(type){
case 'scroll':
if('bgposition'===prop){
$image.css({
'background-position-y': 'calc(' + layout.yPos + '% + ' + (posY * dir) + 'px)'
});
}else{
$image.css({
'transform': 'translateY(' + (posY * dir) + 'px)'
});
}
break;
case 'h-scroll':
if('bgposition'===prop){
$image.css({
'background-position-x': 'calc(' + layout.xPos + '% + ' + (posY * dir) + 'px)'
});
}else{
$image.css({
'transform': 'translateX(' + (posY * dir) + 'px)'
});
}
break;
case 'zoom':
var deltaScale=(winScrollTop - offsetTop + winHeight) / winHeight,
scale=deltaScale * speed;
scale=scale + 1;
$image.css({
'transform': 'scale(' + scale + ')'
});
break;
case 'rotate':
var rotate=posY;
$image.css({
'transform': 'rotateZ(' + (rotate * dir) + 'deg)'
});
break;
case 'blur':
var blur=0;
switch(fxDir){
case 'fade-in':
blur=posY / 40;
break;
case 'fade-out':
blur=(5 * speed) - (posY / 40);
break
}
$image.css({
'filter': 'blur(' + blur + 'px)'
});
break;
case 'opacity':
var opacity=1;
switch(fxDir){
case 'fade-in':
opacity=1 - (posY / 400);
break;
case 'fade-out':
opacity=(1 - (0.5 * speed)) + (posY / 400);
break
}
$image.css({
'opacity': opacity
});
break;
}});
};
self.mouseMoveHandler=function(event){
var windowWidth=$window.width(),
windowHeight=$window.height(),
cx=Math.ceil(windowWidth / 2),
cy=Math.ceil(windowHeight / 2),
dx=event.clientX - cx,
dy=event.clientY - cy;
tiltx=-1 *(dx / cx);
tilty=-1 *(dy / cy);
self.mouseMoveUpdate();
};
self.mouseLeaveHandler=function(event){
$.each(mouseLayoutList, function(index, layout){
var $this=layout.selector,
$image=$('.jet-parallax-section__image', $this);
switch(layout.prop){
case 'transform3d':
TweenMax.to($image[0],
1.2, {
x: 0,
y: 0,
z: 0,
rotationX: 0,
rotationY: 0,
ease:Power2.easeOut
}
);
break;
}});
};
self.mouseMoveUpdate=function(){
$.each(mouseLayoutList, function(index, layout){
var $this=layout.selector,
$image=$('.jet-parallax-section__image', $this),
speed=layout.speed,
prop=layout.prop,
posX=parseFloat(tiltx * 125 * speed).toFixed(1),
posY=parseFloat(tilty * 125 * speed).toFixed(1),
posZ=layout.zIndex * 50,
rotateX=parseFloat(tiltx * 25 * speed).toFixed(1),
rotateY=parseFloat(tilty * 25 * speed).toFixed(1),
device=elementorFrontend.getCurrentDeviceMode();
if(-1==layout.device.indexOf(device) ){
$image.css({
'transform': 'translateX(0) translateY(0)',
'background-position-x': layout.xPos,
'background-position-y': layout.yPos
});
return false;
}
switch(prop){
case 'bgposition':
var bgPosX=layout.xPos +(posX / $image[0].offsetWidth) * 100,
bgPosY=layout.yPos +(posY / $image[0].offsetHeight) * 100;
TweenMax.to($image[0],
1, {
backgroundPositionX: bgPosX,
backgroundPositionY: bgPosY,
ease:Power2.easeOut
}
);
break;
case 'transform':
TweenMax.to($image[0],
1, {
x: posX,
y: posY,
ease:Power2.easeOut
}
);
break;
case 'transform3d':
TweenMax.to($image[0],
2, {
x: posX,
y: posY,
z: posZ,
rotationX: rotateY,
rotationY: -rotateX,
ease:Power2.easeOut
}
);
break;
}});
};}}(jQuery, window.elementorFrontend) );
(function ($){
"use strict";
function widgetProgress($scope){
var $progress=$scope.find('.circle-progress');
if(! $progress.length){
return;
}
var $value=$progress.find('.circle-progress__value'),
$meter=$progress.find('.circle-progress__meter'),
percent=parseInt($value.data('value') ),
progress=percent / 100,
duration=$scope.find('.circle-progress-wrap').data('duration'),
currentDeviceMode=elementorFrontend.getCurrentDeviceMode(),
isAnimatedCircle=false,
breakpoints=JetElementsTools.getElementorElementSettings($scope),
breakpointsSettings=[],
activeBreakpoints=elementorFrontend.config.responsive.activeBreakpoints||{};
breakpointsSettings['desktop']=[];
var breakpointSize=breakpoints['circle_size']['size'] ? breakpoints['circle_size']['size']:$progress[0].getAttribute('width'),
breakpointStrokeValue=breakpoints['value_stroke']['size'] ? breakpoints['value_stroke']['size']:$progress[0].getElementsByClassName('circle-progress__value')[0].getAttribute('stroke-width'),
breakpointStrokeBg=breakpoints['bg_stroke']['size'] ? breakpoints['bg_stroke']['size']:$progress[0].getElementsByClassName('circle-progress__meter')[0].getAttribute('stroke-width');
breakpointSizes('desktop', breakpointSize, breakpointStrokeValue, breakpointStrokeBg);
Object.keys(activeBreakpoints).reverse().forEach(function(breakpointName, index){
if('widescreen'===breakpointName){
var breakpointSize=breakpoints['circle_size_' + breakpointName]['size'] ? breakpoints['circle_size_' + breakpointName]['size']:breakpoints['circle_size']['size'],
breakpointStrokeValue=breakpoints['value_stroke_' + breakpointName]['size'] ? breakpoints['value_stroke_' + breakpointName]['size']:breakpoints['value_stroke']['size'],
breakpointStrokeBg=breakpoints['bg_stroke_' + breakpointName]['size'] ? breakpoints['bg_stroke_' + breakpointName]['size']:breakpoints['bg_stroke']['size'];
breakpointsSettings[breakpointName]=[];
breakpointSizes(breakpointName, breakpointSize, breakpointStrokeValue, breakpointStrokeBg);
}else{
var breakpointSize=breakpoints['circle_size_' + breakpointName]['size'] ? breakpoints['circle_size_' + breakpointName]['size']:$progress[0].getAttribute('width'),
breakpointStrokeValue=breakpoints['value_stroke_' + breakpointName]['size'] ? breakpoints['value_stroke_' + breakpointName]['size']:$progress[0].getElementsByClassName('circle-progress__value')[0].getAttribute('stroke-width'),
breakpointStrokeBg=breakpoints['bg_stroke_' + breakpointName]['size'] ? breakpoints['bg_stroke_' + breakpointName]['size']:$progress[0].getElementsByClassName('circle-progress__meter')[0].getAttribute('stroke-width');
breakpointsSettings[breakpointName]=[];
breakpointSizes(breakpointName, breakpointSize, breakpointStrokeValue, breakpointStrokeBg);
}});
updateSvgSizes(breakpointsSettings[currentDeviceMode]['size'],
breakpointsSettings[currentDeviceMode]['viewBox'],
breakpointsSettings[currentDeviceMode]['center'],
breakpointsSettings[currentDeviceMode]['radius'],
breakpointsSettings[currentDeviceMode]['valStroke'],
breakpointsSettings[currentDeviceMode]['bgStroke'],
breakpointsSettings[currentDeviceMode]['circumference']
);
JetElements.observer($scope, function(){
var $number=$scope.find('.circle-counter__number'),
data=$number.data();
var decimalDigits=data.toValue.toString().match(/\.(.*)/);
if(decimalDigits){
data.rounding=decimalDigits[1].length;
}
data.duration=duration;
$number.numerator(data);
var circumference=parseInt($progress.data('circumference') ),
dashoffset=circumference * (1 - progress);
$value.css({
'transitionDuration': duration + 'ms',
'strokeDashoffset': dashoffset
});
isAnimatedCircle=true;
}, JetElements.prepareWaypointOptions($scope, {
offset: 'bottom-in-view'
}) );
$(window).on('resize.jetCircleProgress orientationchange.jetCircleProgress', JetElementsTools.debounce(50, function(){
currentDeviceMode=elementorFrontend.getCurrentDeviceMode();
if(breakpointsSettings[currentDeviceMode]){
updateSvgSizes(breakpointsSettings[currentDeviceMode]['size'],
breakpointsSettings[currentDeviceMode]['viewBox'],
breakpointsSettings[currentDeviceMode]['center'],
breakpointsSettings[currentDeviceMode]['radius'],
breakpointsSettings[currentDeviceMode]['valStroke'],
breakpointsSettings[currentDeviceMode]['bgStroke'],
breakpointsSettings[currentDeviceMode]['circumference']
);
}}) );
function breakpointSizes(breakpointName, breakpointSize, breakpointStrokeValue, breakpointStrokeBg){
var max,
radius;
breakpointsSettings[breakpointName]['size']=breakpointSize;
breakpointsSettings[breakpointName]['viewBox']=`0 0 ${breakpointSize} ${breakpointSize}`;
breakpointsSettings[breakpointName]['center']=breakpointSize / 2;
radius=breakpointSize / 2;
max=(breakpointStrokeValue >=breakpointStrokeBg) ? breakpointStrokeValue:breakpointStrokeBg;
breakpointsSettings[breakpointName]['radius']=radius -(max / 2);
breakpointsSettings[breakpointName]['circumference']=2 * Math.PI * breakpointsSettings[breakpointName]['radius'];
breakpointsSettings[breakpointName]['valStroke']=breakpointStrokeValue;
breakpointsSettings[breakpointName]['bgStroke']=breakpointStrokeBg;
}
function updateSvgSizes(size, viewBox, center, radius, valStroke, bgStroke, circumference){
var dashoffset=circumference * (1 - progress);
$progress.attr({
'width': size,
'height': size,
'data-radius': radius,
'data-circumference': circumference
});
$progress[0].setAttribute('viewBox', viewBox);
$meter.attr({
'cx': center,
'cy': center,
'r': radius,
'stroke-width': bgStroke
});
if(isAnimatedCircle){
$value.css({
'transitionDuration': ''
});
}
$value.attr({
'cx': center,
'cy': center,
'r': radius,
'stroke-width': valStroke
});
$value.css({
'strokeDasharray': circumference,
'strokeDashoffset': isAnimatedCircle ? dashoffset:circumference
});
}}
window.widgetProgress=widgetProgress;
})(jQuery);
(function ($){
"use strict";
function widgetTable($scope){
var $target=$scope.find('.jet-table'),
options={
cssHeader: 'jet-table-header-sort',
cssAsc: 'jet-table-header-sort--up',
cssDesc: 'jet-table-header-sort--down',
initWidgets: false
};
if(! $target.length){
return;
}
if($target.hasClass('jet-table--sorting') ){
$target.tablesorter(options);
}
$('.jet-table__body-row', $target).each(function(){
var _this=$(this),
itemsCounter=0,
emptyContents=0;
$('.jet-table__cell', _this).each(function(){
var image=$('img', $(this) ),
svg=$('svg', $(this) ),
icon=$('i', $(this) ),
itemImages=0;
if(0===svg.length&&0===icon.length){
image.each(function(){
if(''!=$(this).attr('src') ){
itemImages++;
}})
if(0===$(this).text().length&&0===itemImages){
emptyContents++;
}}
itemsCounter++;
})
if(emptyContents===itemsCounter){
_this.remove();
}})
}
window.widgetTable=widgetTable;
})(jQuery);
(function (global, factory){
typeof exports==='object'&&typeof module!=='undefined' ? module.exports=factory() :
typeof define==='function'&&define.amd ? define(factory) :
(global=typeof globalThis!=='undefined' ? globalThis:global||self, global.Swiper=factory());
})(this, (function (){ 'use strict';
function isObject$1(obj){
return obj!==null&&typeof obj==='object'&&'constructor' in obj&&obj.constructor===Object;
}
function extend$1(target, src){
if(target===void 0){
target={};}
if(src===void 0){
src={};}
Object.keys(src).forEach(key=> {
if(typeof target[key]==='undefined') target[key]=src[key];else if(isObject$1(src[key])&&isObject$1(target[key])&&Object.keys(src[key]).length > 0){
extend$1(target[key], src[key]);
}});
}
const ssrDocument={
body: {},
addEventListener(){},
removeEventListener(){},
activeElement: {
blur(){},
nodeName: ''
},
querySelector(){
return null;
},
querySelectorAll(){
return [];
},
getElementById(){
return null;
},
createEvent(){
return {
initEvent(){}};},
createElement(){
return {
children: [],
childNodes: [],
style: {},
setAttribute(){},
getElementsByTagName(){
return [];
}};},
createElementNS(){
return {};},
importNode(){
return null;
},
location: {
hash: '',
host: '',
hostname: '',
href: '',
origin: '',
pathname: '',
protocol: '',
search: ''
}};
function getDocument(){
const doc=typeof document!=='undefined' ? document:{};
extend$1(doc, ssrDocument);
return doc;
}
const ssrWindow={
document: ssrDocument,
navigator: {
userAgent: ''
},
location: {
hash: '',
host: '',
hostname: '',
href: '',
origin: '',
pathname: '',
protocol: '',
search: ''
},
history: {
replaceState(){},
pushState(){},
go(){},
back(){}},
CustomEvent: function CustomEvent(){
return this;
},
addEventListener(){},
removeEventListener(){},
getComputedStyle(){
return {
getPropertyValue(){
return '';
}};},
Image(){},
Date(){},
screen: {},
setTimeout(){},
clearTimeout(){},
matchMedia(){
return {};},
requestAnimationFrame(callback){
if(typeof setTimeout==='undefined'){
callback();
return null;
}
return setTimeout(callback, 0);
},
cancelAnimationFrame(id){
if(typeof setTimeout==='undefined'){
return;
}
clearTimeout(id);
}};
function getWindow(){
const win=typeof window!=='undefined' ? window:{};
extend$1(win, ssrWindow);
return win;
}
function makeReactive(obj){
const proto=obj.__proto__;
Object.defineProperty(obj, '__proto__', {
get(){
return proto;
},
set(value){
proto.__proto__=value;
}});
}
class Dom7 extends Array {
constructor(items){
if(typeof items==='number'){
super(items);
}else{
super(...(items||[]));
makeReactive(this);
}}
}
function arrayFlat(arr){
if(arr===void 0){
arr=[];
}
const res=[];
arr.forEach(el=> {
if(Array.isArray(el)){
res.push(...arrayFlat(el));
}else{
res.push(el);
}});
return res;
}
function arrayFilter(arr, callback){
return Array.prototype.filter.call(arr, callback);
}
function arrayUnique(arr){
const uniqueArray=[];
for (let i=0; i < arr.length; i +=1){
if(uniqueArray.indexOf(arr[i])===-1) uniqueArray.push(arr[i]);
}
return uniqueArray;
}
function qsa(selector, context){
if(typeof selector!=='string'){
return [selector];
}
const a=[];
const res=context.querySelectorAll(selector);
for (let i=0; i < res.length; i +=1){
a.push(res[i]);
}
return a;
}
function $(selector, context){
const window=getWindow();
const document=getDocument();
let arr=[];
if(!context&&selector instanceof Dom7){
return selector;
}
if(!selector){
return new Dom7(arr);
}
if(typeof selector==='string'){
const html=selector.trim();
if(html.indexOf('<') >=0&&html.indexOf('>') >=0){
let toCreate='div';
if(html.indexOf('<li')===0) toCreate='ul';
if(html.indexOf('<tr')===0) toCreate='tbody';
if(html.indexOf('<td')===0||html.indexOf('<th')===0) toCreate='tr';
if(html.indexOf('<tbody')===0) toCreate='table';
if(html.indexOf('<option')===0) toCreate='select';
const tempParent=document.createElement(toCreate);
tempParent.innerHTML=html;
for (let i=0; i < tempParent.childNodes.length; i +=1){
arr.push(tempParent.childNodes[i]);
}}else{
arr=qsa(selector.trim(), context||document);
}}else if(selector.nodeType||selector===window||selector===document){
arr.push(selector);
}else if(Array.isArray(selector)){
if(selector instanceof Dom7) return selector;
arr=selector;
}
return new Dom7(arrayUnique(arr));
}
$.fn=Dom7.prototype;
function addClass(){
for (var _len=arguments.length, classes=new Array(_len), _key=0; _key < _len; _key++){
classes[_key]=arguments[_key];
}
const classNames=arrayFlat(classes.map(c=> c.split(' ')));
this.forEach(el=> {
el.classList.add(...classNames);
});
return this;
}
function removeClass(){
for (var _len2=arguments.length, classes=new Array(_len2), _key2=0; _key2 < _len2; _key2++){
classes[_key2]=arguments[_key2];
}
const classNames=arrayFlat(classes.map(c=> c.split(' ')));
this.forEach(el=> {
el.classList.remove(...classNames);
});
return this;
}
function toggleClass(){
for (var _len3=arguments.length, classes=new Array(_len3), _key3=0; _key3 < _len3; _key3++){
classes[_key3]=arguments[_key3];
}
const classNames=arrayFlat(classes.map(c=> c.split(' ')));
this.forEach(el=> {
classNames.forEach(className=> {
el.classList.toggle(className);
});
});
}
function hasClass(){
for (var _len4=arguments.length, classes=new Array(_len4), _key4=0; _key4 < _len4; _key4++){
classes[_key4]=arguments[_key4];
}
const classNames=arrayFlat(classes.map(c=> c.split(' ')));
return arrayFilter(this, el=> {
return classNames.filter(className=> el.classList.contains(className)).length > 0;
}).length > 0;
}
function attr(attrs, value){
if(arguments.length===1&&typeof attrs==='string'){
if(this[0]) return this[0].getAttribute(attrs);
return undefined;
}
for (let i=0; i < this.length; i +=1){
if(arguments.length===2){
this[i].setAttribute(attrs, value);
}else{
for (const attrName in attrs){
this[i][attrName]=attrs[attrName];
this[i].setAttribute(attrName, attrs[attrName]);
}}
}
return this;
}
function removeAttr(attr){
for (let i=0; i < this.length; i +=1){
this[i].removeAttribute(attr);
}
return this;
}
function transform(transform){
for (let i=0; i < this.length; i +=1){
this[i].style.transform=transform;
}
return this;
}
function transition$1(duration){
for (let i=0; i < this.length; i +=1){
this[i].style.transitionDuration=typeof duration!=='string' ? `${duration}ms`:duration;
}
return this;
}
function on(){
for (var _len5=arguments.length, args=new Array(_len5), _key5=0; _key5 < _len5; _key5++){
args[_key5]=arguments[_key5];
}
let [eventType, targetSelector, listener, capture]=args;
if(typeof args[1]==='function'){
[eventType, listener, capture]=args;
targetSelector=undefined;
}
if(!capture) capture=false;
function handleLiveEvent(e){
const target=e.target;
if(!target) return;
const eventData=e.target.dom7EventData||[];
if(eventData.indexOf(e) < 0){
eventData.unshift(e);
}
if($(target).is(targetSelector)) listener.apply(target, eventData);else {
const parents=$(target).parents();
for (let k=0; k < parents.length; k +=1){
if($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);
}}
}
function handleEvent(e){
const eventData=e&&e.target ? e.target.dom7EventData||[]:[];
if(eventData.indexOf(e) < 0){
eventData.unshift(e);
}
listener.apply(this, eventData);
}
const events=eventType.split(' ');
let j;
for (let i=0; i < this.length; i +=1){
const el=this[i];
if(!targetSelector){
for (j=0; j < events.length; j +=1){
const event=events[j];
if(!el.dom7Listeners) el.dom7Listeners={};
if(!el.dom7Listeners[event]) el.dom7Listeners[event]=[];
el.dom7Listeners[event].push({
listener,
proxyListener: handleEvent
});
el.addEventListener(event, handleEvent, capture);
}}else{
for (j=0; j < events.length; j +=1){
const event=events[j];
if(!el.dom7LiveListeners) el.dom7LiveListeners={};
if(!el.dom7LiveListeners[event]) el.dom7LiveListeners[event]=[];
el.dom7LiveListeners[event].push({
listener,
proxyListener: handleLiveEvent
});
el.addEventListener(event, handleLiveEvent, capture);
}}
}
return this;
}
function off(){
for (var _len6=arguments.length, args=new Array(_len6), _key6=0; _key6 < _len6; _key6++){
args[_key6]=arguments[_key6];
}
let [eventType, targetSelector, listener, capture]=args;
if(typeof args[1]==='function'){
[eventType, listener, capture]=args;
targetSelector=undefined;
}
if(!capture) capture=false;
const events=eventType.split(' ');
for (let i=0; i < events.length; i +=1){
const event=events[i];
for (let j=0; j < this.length; j +=1){
const el=this[j];
let handlers;
if(!targetSelector&&el.dom7Listeners){
handlers=el.dom7Listeners[event];
}else if(targetSelector&&el.dom7LiveListeners){
handlers=el.dom7LiveListeners[event];
}
if(handlers&&handlers.length){
for (let k=handlers.length - 1; k >=0; k -=1){
const handler=handlers[k];
if(listener&&handler.listener===listener){
el.removeEventListener(event, handler.proxyListener, capture);
handlers.splice(k, 1);
}else if(listener&&handler.listener&&handler.listener.dom7proxy&&handler.listener.dom7proxy===listener){
el.removeEventListener(event, handler.proxyListener, capture);
handlers.splice(k, 1);
}else if(!listener){
el.removeEventListener(event, handler.proxyListener, capture);
handlers.splice(k, 1);
}}
}}
}
return this;
}
function trigger(){
const window=getWindow();
for (var _len9=arguments.length, args=new Array(_len9), _key9=0; _key9 < _len9; _key9++){
args[_key9]=arguments[_key9];
}
const events=args[0].split(' ');
const eventData=args[1];
for (let i=0; i < events.length; i +=1){
const event=events[i];
for (let j=0; j < this.length; j +=1){
const el=this[j];
if(window.CustomEvent){
const evt=new window.CustomEvent(event, {
detail: eventData,
bubbles: true,
cancelable: true
});
el.dom7EventData=args.filter((data, dataIndex)=> dataIndex > 0);
el.dispatchEvent(evt);
el.dom7EventData=[];
delete el.dom7EventData;
}}
}
return this;
}
function transitionEnd$1(callback){
const dom=this;
function fireCallBack(e){
if(e.target!==this) return;
callback.call(this, e);
dom.off('transitionend', fireCallBack);
}
if(callback){
dom.on('transitionend', fireCallBack);
}
return this;
}
function outerWidth(includeMargins){
if(this.length > 0){
if(includeMargins){
const styles=this.styles();
return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));
}
return this[0].offsetWidth;
}
return null;
}
function outerHeight(includeMargins){
if(this.length > 0){
if(includeMargins){
const styles=this.styles();
return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));
}
return this[0].offsetHeight;
}
return null;
}
function offset(){
if(this.length > 0){
const window=getWindow();
const document=getDocument();
const el=this[0];
const box=el.getBoundingClientRect();
const body=document.body;
const clientTop=el.clientTop||body.clientTop||0;
const clientLeft=el.clientLeft||body.clientLeft||0;
const scrollTop=el===window ? window.scrollY:el.scrollTop;
const scrollLeft=el===window ? window.scrollX:el.scrollLeft;
return {
top: box.top + scrollTop - clientTop,
left: box.left + scrollLeft - clientLeft
};}
return null;
}
function styles(){
const window=getWindow();
if(this[0]) return window.getComputedStyle(this[0], null);
return {};}
function css(props, value){
const window=getWindow();
let i;
if(arguments.length===1){
if(typeof props==='string'){
if(this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);
}else{
for (i=0; i < this.length; i +=1){
for (const prop in props){
this[i].style[prop]=props[prop];
}}
return this;
}}
if(arguments.length===2&&typeof props==='string'){
for (i=0; i < this.length; i +=1){
this[i].style[props]=value;
}
return this;
}
return this;
}
function each(callback){
if(!callback) return this;
this.forEach((el, index)=> {
callback.apply(el, [el, index]);
});
return this;
}
function filter(callback){
const result=arrayFilter(this, callback);
return $(result);
}
function html(html){
if(typeof html==='undefined'){
return this[0] ? this[0].innerHTML:null;
}
for (let i=0; i < this.length; i +=1){
this[i].innerHTML=html;
}
return this;
}
function text(text){
if(typeof text==='undefined'){
return this[0] ? this[0].textContent.trim():null;
}
for (let i=0; i < this.length; i +=1){
this[i].textContent=text;
}
return this;
}
function is(selector){
const window=getWindow();
const document=getDocument();
const el=this[0];
let compareWith;
let i;
if(!el||typeof selector==='undefined') return false;
if(typeof selector==='string'){
if(el.matches) return el.matches(selector);
if(el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);
if(el.msMatchesSelector) return el.msMatchesSelector(selector);
compareWith=$(selector);
for (i=0; i < compareWith.length; i +=1){
if(compareWith[i]===el) return true;
}
return false;
}
if(selector===document){
return el===document;
}
if(selector===window){
return el===window;
}
if(selector.nodeType||selector instanceof Dom7){
compareWith=selector.nodeType ? [selector]:selector;
for (i=0; i < compareWith.length; i +=1){
if(compareWith[i]===el) return true;
}
return false;
}
return false;
}
function index(){
let child=this[0];
let i;
if(child){
i=0;
while ((child=child.previousSibling)!==null){
if(child.nodeType===1) i +=1;
}
return i;
}
return undefined;
}
function eq(index){
if(typeof index==='undefined') return this;
const length=this.length;
if(index > length - 1){
return $([]);
}
if(index < 0){
const returnIndex=length + index;
if(returnIndex < 0) return $([]);
return $([this[returnIndex]]);
}
return $([this[index]]);
}
function append(){
let newChild;
const document=getDocument();
for (let k=0; k < arguments.length; k +=1){
newChild=k < 0||arguments.length <=k ? undefined:arguments[k];
for (let i=0; i < this.length; i +=1){
if(typeof newChild==='string'){
const tempDiv=document.createElement('div');
tempDiv.innerHTML=newChild;
while (tempDiv.firstChild){
this[i].appendChild(tempDiv.firstChild);
}}else if(newChild instanceof Dom7){
for (let j=0; j < newChild.length; j +=1){
this[i].appendChild(newChild[j]);
}}else{
this[i].appendChild(newChild);
}}
}
return this;
}
function prepend(newChild){
const document=getDocument();
let i;
let j;
for (i=0; i < this.length; i +=1){
if(typeof newChild==='string'){
const tempDiv=document.createElement('div');
tempDiv.innerHTML=newChild;
for (j=tempDiv.childNodes.length - 1; j >=0; j -=1){
this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);
}}else if(newChild instanceof Dom7){
for (j=0; j < newChild.length; j +=1){
this[i].insertBefore(newChild[j], this[i].childNodes[0]);
}}else{
this[i].insertBefore(newChild, this[i].childNodes[0]);
}}
return this;
}
function next(selector){
if(this.length > 0){
if(selector){
if(this[0].nextElementSibling&&$(this[0].nextElementSibling).is(selector)){
return $([this[0].nextElementSibling]);
}
return $([]);
}
if(this[0].nextElementSibling) return $([this[0].nextElementSibling]);
return $([]);
}
return $([]);
}
function nextAll(selector){
const nextEls=[];
let el=this[0];
if(!el) return $([]);
while (el.nextElementSibling){
const next=el.nextElementSibling;
if(selector){
if($(next).is(selector)) nextEls.push(next);
} else nextEls.push(next);
el=next;
}
return $(nextEls);
}
function prev(selector){
if(this.length > 0){
const el=this[0];
if(selector){
if(el.previousElementSibling&&$(el.previousElementSibling).is(selector)){
return $([el.previousElementSibling]);
}
return $([]);
}
if(el.previousElementSibling) return $([el.previousElementSibling]);
return $([]);
}
return $([]);
}
function prevAll(selector){
const prevEls=[];
let el=this[0];
if(!el) return $([]);
while (el.previousElementSibling){
const prev=el.previousElementSibling;
if(selector){
if($(prev).is(selector)) prevEls.push(prev);
} else prevEls.push(prev);
el=prev;
}
return $(prevEls);
}
function parent(selector){
const parents=[];
for (let i=0; i < this.length; i +=1){
if(this[i].parentNode!==null){
if(selector){
if($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);
}else{
parents.push(this[i].parentNode);
}}
}
return $(parents);
}
function parents(selector){
const parents=[];
for (let i=0; i < this.length; i +=1){
let parent=this[i].parentNode;
while (parent){
if(selector){
if($(parent).is(selector)) parents.push(parent);
}else{
parents.push(parent);
}
parent=parent.parentNode;
}}
return $(parents);
}
function closest(selector){
let closest=this;
if(typeof selector==='undefined'){
return $([]);
}
if(!closest.is(selector)){
closest=closest.parents(selector).eq(0);
}
return closest;
}
function find(selector){
const foundElements=[];
for (let i=0; i < this.length; i +=1){
const found=this[i].querySelectorAll(selector);
for (let j=0; j < found.length; j +=1){
foundElements.push(found[j]);
}}
return $(foundElements);
}
function children(selector){
const children=[];
for (let i=0; i < this.length; i +=1){
const childNodes=this[i].children;
for (let j=0; j < childNodes.length; j +=1){
if(!selector||$(childNodes[j]).is(selector)){
children.push(childNodes[j]);
}}
}
return $(children);
}
function remove(){
for (let i=0; i < this.length; i +=1){
if(this[i].parentNode) this[i].parentNode.removeChild(this[i]);
}
return this;
}
const Methods={
addClass,
removeClass,
hasClass,
toggleClass,
attr,
removeAttr,
transform,
transition: transition$1,
on,
off,
trigger,
transitionEnd: transitionEnd$1,
outerWidth,
outerHeight,
styles,
offset,
css,
each,
html,
text,
is,
index,
eq,
append,
prepend,
next,
nextAll,
prev,
prevAll,
parent,
parents,
closest,
find,
children,
filter,
remove
};
Object.keys(Methods).forEach(methodName=> {
Object.defineProperty($.fn, methodName, {
value: Methods[methodName],
writable: true
});
});
function deleteProps(obj){
const object=obj;
Object.keys(object).forEach(key=> {
try {
object[key]=null;
} catch (e){
}
try {
delete object[key];
} catch (e){
}});
}
function nextTick(callback, delay){
if(delay===void 0){
delay=0;
}
return setTimeout(callback, delay);
}
function now(){
return Date.now();
}
function getComputedStyle$1(el){
const window=getWindow();
let style;
if(window.getComputedStyle){
style=window.getComputedStyle(el, null);
}
if(!style&&el.currentStyle){
style=el.currentStyle;
}
if(!style){
style=el.style;
}
return style;
}
function getTranslate(el, axis){
if(axis===void 0){
axis='x';
}
const window=getWindow();
let matrix;
let curTransform;
let transformMatrix;
const curStyle=getComputedStyle$1(el);
if(window.WebKitCSSMatrix){
curTransform=curStyle.transform||curStyle.webkitTransform;
if(curTransform.split(',').length > 6){
curTransform=curTransform.split(', ').map(a=> a.replace(',', '.')).join(', ');
}
transformMatrix=new window.WebKitCSSMatrix(curTransform==='none' ? '':curTransform);
}else{
transformMatrix=curStyle.MozTransform||curStyle.OTransform||curStyle.MsTransform||curStyle.msTransform||curStyle.transform||curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');
matrix=transformMatrix.toString().split(',');
}
if(axis==='x'){
if(window.WebKitCSSMatrix) curTransform=transformMatrix.m41;
else if(matrix.length===16) curTransform=parseFloat(matrix[12]);
else curTransform=parseFloat(matrix[4]);
}
if(axis==='y'){
if(window.WebKitCSSMatrix) curTransform=transformMatrix.m42;
else if(matrix.length===16) curTransform=parseFloat(matrix[13]);
else curTransform=parseFloat(matrix[5]);
}
return curTransform||0;
}
function isObject(o){
return typeof o==='object'&&o!==null&&o.constructor&&Object.prototype.toString.call(o).slice(8, -1)==='Object';
}
function isNode(node){
if(typeof window!=='undefined'&&typeof window.HTMLElement!=='undefined'){
return node instanceof HTMLElement;
}
return node&&(node.nodeType===1||node.nodeType===11);
}
function extend(){
const to=Object(arguments.length <=0 ? undefined:arguments[0]);
const noExtend=['__proto__', 'constructor', 'prototype'];
for (let i=1; i < arguments.length; i +=1){
const nextSource=i < 0||arguments.length <=i ? undefined:arguments[i];
if(nextSource!==undefined&&nextSource!==null&&!isNode(nextSource)){
const keysArray=Object.keys(Object(nextSource)).filter(key=> noExtend.indexOf(key) < 0);
for (let nextIndex=0, len=keysArray.length; nextIndex < len; nextIndex +=1){
const nextKey=keysArray[nextIndex];
const desc=Object.getOwnPropertyDescriptor(nextSource, nextKey);
if(desc!==undefined&&desc.enumerable){
if(isObject(to[nextKey])&&isObject(nextSource[nextKey])){
if(nextSource[nextKey].__swiper__){
to[nextKey]=nextSource[nextKey];
}else{
extend(to[nextKey], nextSource[nextKey]);
}}else if(!isObject(to[nextKey])&&isObject(nextSource[nextKey])){
to[nextKey]={};
if(nextSource[nextKey].__swiper__){
to[nextKey]=nextSource[nextKey];
}else{
extend(to[nextKey], nextSource[nextKey]);
}}else{
to[nextKey]=nextSource[nextKey];
}}
}}
}
return to;
}
function setCSSProperty(el, varName, varValue){
el.style.setProperty(varName, varValue);
}
function animateCSSModeScroll(_ref){
let {
swiper,
targetPosition,
side
}=_ref;
const window=getWindow();
const startPosition=-swiper.translate;
let startTime=null;
let time;
const duration=swiper.params.speed;
swiper.wrapperEl.style.scrollSnapType='none';
window.cancelAnimationFrame(swiper.cssModeFrameID);
const dir=targetPosition > startPosition ? 'next':'prev';
const isOutOfBound=(current, target)=> {
return dir==='next'&&current >=target||dir==='prev'&&current <=target;
};
const animate=()=> {
time=new Date().getTime();
if(startTime===null){
startTime=time;
}
const progress=Math.max(Math.min((time - startTime) / duration, 1), 0);
const easeProgress=0.5 - Math.cos(progress * Math.PI) / 2;
let currentPosition=startPosition + easeProgress * (targetPosition - startPosition);
if(isOutOfBound(currentPosition, targetPosition)){
currentPosition=targetPosition;
}
swiper.wrapperEl.scrollTo({
[side]: currentPosition
});
if(isOutOfBound(currentPosition, targetPosition)){
swiper.wrapperEl.style.overflow='hidden';
swiper.wrapperEl.style.scrollSnapType='';
setTimeout(()=> {
swiper.wrapperEl.style.overflow='';
swiper.wrapperEl.scrollTo({
[side]: currentPosition
});
});
window.cancelAnimationFrame(swiper.cssModeFrameID);
return;
}
swiper.cssModeFrameID=window.requestAnimationFrame(animate);
};
animate();
}
let support;
function calcSupport(){
const window=getWindow();
const document=getDocument();
return {
smoothScroll: document.documentElement&&'scrollBehavior' in document.documentElement.style,
touch: !!('ontouchstart' in window||window.DocumentTouch&&document instanceof window.DocumentTouch),
passiveListener: function checkPassiveListener(){
let supportsPassive=false;
try {
const opts=Object.defineProperty({}, 'passive', {
get(){
supportsPassive=true;
}});
window.addEventListener('testPassiveListener', null, opts);
} catch (e){
}
return supportsPassive;
}(),
gestures: function checkGestures(){
return 'ongesturestart' in window;
}()
};}
function getSupport(){
if(!support){
support=calcSupport();
}
return support;
}
let deviceCached;
function calcDevice(_temp){
let {
userAgent
}=_temp===void 0 ? {}:_temp;
const support=getSupport();
const window=getWindow();
const platform=window.navigator.platform;
const ua=userAgent||window.navigator.userAgent;
const device={
ios: false,
android: false
};
const screenWidth=window.screen.width;
const screenHeight=window.screen.height;
const android=ua.match(/(Android);?[\s\/]+([\d.]+)?/);
let ipad=ua.match(/(iPad).*OS\s([\d_]+)/);
const ipod=ua.match(/(iPod)(.*OS\s([\d_]+))?/);
const iphone = !ipad&&ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/);
const windows=platform==='Win32';
let macos=platform==='MacIntel';
const iPadScreens=['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];
if(!ipad&&macos&&support.touch&&iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >=0){
ipad=ua.match(/(Version)\/([\d.]+)/);
if(!ipad) ipad=[0, 1, '13_0_0'];
macos=false;
}
if(android&&!windows){
device.os='android';
device.android=true;
}
if(ipad||iphone||ipod){
device.os='ios';
device.ios=true;
}
return device;
}
function getDevice(overrides){
if(overrides===void 0){
overrides={};}
if(!deviceCached){
deviceCached=calcDevice(overrides);
}
return deviceCached;
}
let browser;
function calcBrowser(){
const window=getWindow();
function isSafari(){
const ua=window.navigator.userAgent.toLowerCase();
return ua.indexOf('safari') >=0&&ua.indexOf('chrome') < 0&&ua.indexOf('android') < 0;
}
return {
isSafari: isSafari(),
isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)
};}
function getBrowser(){
if(!browser){
browser=calcBrowser();
}
return browser;
}
function Resize(_ref){
let {
swiper,
on,
emit
}=_ref;
const window=getWindow();
let observer=null;
let animationFrame=null;
const resizeHandler=()=> {
if(!swiper||swiper.destroyed||!swiper.initialized) return;
emit('beforeResize');
emit('resize');
};
const createObserver=()=> {
if(!swiper||swiper.destroyed||!swiper.initialized) return;
observer=new ResizeObserver(entries=> {
animationFrame=window.requestAnimationFrame(()=> {
const {
width,
height
}=swiper;
let newWidth=width;
let newHeight=height;
entries.forEach(_ref2=> {
let {
contentBoxSize,
contentRect,
target
}=_ref2;
if(target&&target!==swiper.el) return;
newWidth=contentRect ? contentRect.width:(contentBoxSize[0]||contentBoxSize).inlineSize;
newHeight=contentRect ? contentRect.height:(contentBoxSize[0]||contentBoxSize).blockSize;
});
if(newWidth!==width||newHeight!==height){
resizeHandler();
}});
});
observer.observe(swiper.el);
};
const removeObserver=()=> {
if(animationFrame){
window.cancelAnimationFrame(animationFrame);
}
if(observer&&observer.unobserve&&swiper.el){
observer.unobserve(swiper.el);
observer=null;
}};
const orientationChangeHandler=()=> {
if(!swiper||swiper.destroyed||!swiper.initialized) return;
emit('orientationchange');
};
on('init', ()=> {
if(swiper.params.resizeObserver&&typeof window.ResizeObserver!=='undefined'){
createObserver();
return;
}
window.addEventListener('resize', resizeHandler);
window.addEventListener('orientationchange', orientationChangeHandler);
});
on('destroy', ()=> {
removeObserver();
window.removeEventListener('resize', resizeHandler);
window.removeEventListener('orientationchange', orientationChangeHandler);
});
}
function Observer(_ref){
let {
swiper,
extendParams,
on,
emit
}=_ref;
const observers=[];
const window=getWindow();
const attach=function (target, options){
if(options===void 0){
options={};}
const ObserverFunc=window.MutationObserver||window.WebkitMutationObserver;
const observer=new ObserverFunc(mutations=> {
if(mutations.length===1){
emit('observerUpdate', mutations[0]);
return;
}
const observerUpdate=function observerUpdate(){
emit('observerUpdate', mutations[0]);
};
if(window.requestAnimationFrame){
window.requestAnimationFrame(observerUpdate);
}else{
window.setTimeout(observerUpdate, 0);
}});
observer.observe(target, {
attributes: typeof options.attributes==='undefined' ? true:options.attributes,
childList: typeof options.childList==='undefined' ? true:options.childList,
characterData: typeof options.characterData==='undefined' ? true:options.characterData
});
observers.push(observer);
};
const init=()=> {
if(!swiper.params.observer) return;
if(swiper.params.observeParents){
const containerParents=swiper.$el.parents();
for (let i=0; i < containerParents.length; i +=1){
attach(containerParents[i]);
}}
attach(swiper.$el[0], {
childList: swiper.params.observeSlideChildren
});
attach(swiper.$wrapperEl[0], {
attributes: false
});
};
const destroy=()=> {
observers.forEach(observer=> {
observer.disconnect();
});
observers.splice(0, observers.length);
};
extendParams({
observer: false,
observeParents: false,
observeSlideChildren: false
});
on('init', init);
on('destroy', destroy);
}
var eventsEmitter={
on(events, handler, priority){
const self=this;
if(!self.eventsListeners||self.destroyed) return self;
if(typeof handler!=='function') return self;
const method=priority ? 'unshift':'push';
events.split(' ').forEach(event=> {
if(!self.eventsListeners[event]) self.eventsListeners[event]=[];
self.eventsListeners[event][method](handler);
});
return self;
},
once(events, handler, priority){
const self=this;
if(!self.eventsListeners||self.destroyed) return self;
if(typeof handler!=='function') return self;
function onceHandler(){
self.off(events, onceHandler);
if(onceHandler.__emitterProxy){
delete onceHandler.__emitterProxy;
}
for (var _len=arguments.length, args=new Array(_len), _key=0; _key < _len; _key++){
args[_key]=arguments[_key];
}
handler.apply(self, args);
}
onceHandler.__emitterProxy=handler;
return self.on(events, onceHandler, priority);
},
onAny(handler, priority){
const self=this;
if(!self.eventsListeners||self.destroyed) return self;
if(typeof handler!=='function') return self;
const method=priority ? 'unshift':'push';
if(self.eventsAnyListeners.indexOf(handler) < 0){
self.eventsAnyListeners[method](handler);
}
return self;
},
offAny(handler){
const self=this;
if(!self.eventsListeners||self.destroyed) return self;
if(!self.eventsAnyListeners) return self;
const index=self.eventsAnyListeners.indexOf(handler);
if(index >=0){
self.eventsAnyListeners.splice(index, 1);
}
return self;
},
off(events, handler){
const self=this;
if(!self.eventsListeners||self.destroyed) return self;
if(!self.eventsListeners) return self;
events.split(' ').forEach(event=> {
if(typeof handler==='undefined'){
self.eventsListeners[event]=[];
}else if(self.eventsListeners[event]){
self.eventsListeners[event].forEach((eventHandler, index)=> {
if(eventHandler===handler||eventHandler.__emitterProxy&&eventHandler.__emitterProxy===handler){
self.eventsListeners[event].splice(index, 1);
}});
}});
return self;
},
emit(){
const self=this;
if(!self.eventsListeners||self.destroyed) return self;
if(!self.eventsListeners) return self;
let events;
let data;
let context;
for (var _len2=arguments.length, args=new Array(_len2), _key2=0; _key2 < _len2; _key2++){
args[_key2]=arguments[_key2];
}
if(typeof args[0]==='string'||Array.isArray(args[0])){
events=args[0];
data=args.slice(1, args.length);
context=self;
}else{
events=args[0].events;
data=args[0].data;
context=args[0].context||self;
}
data.unshift(context);
const eventsArray=Array.isArray(events) ? events:events.split(' ');
eventsArray.forEach(event=> {
if(self.eventsAnyListeners&&self.eventsAnyListeners.length){
self.eventsAnyListeners.forEach(eventHandler=> {
eventHandler.apply(context, [event, ...data]);
});
}
if(self.eventsListeners&&self.eventsListeners[event]){
self.eventsListeners[event].forEach(eventHandler=> {
eventHandler.apply(context, data);
});
}});
return self;
}};
function updateSize(){
const swiper=this;
let width;
let height;
const $el=swiper.$el;
if(typeof swiper.params.width!=='undefined'&&swiper.params.width!==null){
width=swiper.params.width;
}else{
width=$el[0].clientWidth;
}
if(typeof swiper.params.height!=='undefined'&&swiper.params.height!==null){
height=swiper.params.height;
}else{
height=$el[0].clientHeight;
}
if(width===0&&swiper.isHorizontal()||height===0&&swiper.isVertical()){
return;
}
width=width - parseInt($el.css('padding-left')||0, 10) - parseInt($el.css('padding-right')||0, 10);
height=height - parseInt($el.css('padding-top')||0, 10) - parseInt($el.css('padding-bottom')||0, 10);
if(Number.isNaN(width)) width=0;
if(Number.isNaN(height)) height=0;
Object.assign(swiper, {
width,
height,
size: swiper.isHorizontal() ? width:height
});
}
function updateSlides(){
const swiper=this;
function getDirectionLabel(property){
if(swiper.isHorizontal()){
return property;
}
return {
'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'
}[property];
}
function getDirectionPropertyValue(node, label){
return parseFloat(node.getPropertyValue(getDirectionLabel(label))||0);
}
const params=swiper.params;
const {
$wrapperEl,
size: swiperSize,
rtlTranslate: rtl,
wrongRTL
}=swiper;
const isVirtual=swiper.virtual&&params.virtual.enabled;
const previousSlidesLength=isVirtual ? swiper.virtual.slides.length:swiper.slides.length;
const slides=$wrapperEl.children(`.${swiper.params.slideClass}`);
const slidesLength=isVirtual ? swiper.virtual.slides.length:slides.length;
let snapGrid=[];
const slidesGrid=[];
const slidesSizesGrid=[];
let offsetBefore=params.slidesOffsetBefore;
if(typeof offsetBefore==='function'){
offsetBefore=params.slidesOffsetBefore.call(swiper);
}
let offsetAfter=params.slidesOffsetAfter;
if(typeof offsetAfter==='function'){
offsetAfter=params.slidesOffsetAfter.call(swiper);
}
const previousSnapGridLength=swiper.snapGrid.length;
const previousSlidesGridLength=swiper.slidesGrid.length;
let spaceBetween=params.spaceBetween;
let slidePosition=-offsetBefore;
let prevSlideSize=0;
let index=0;
if(typeof swiperSize==='undefined'){
return;
}
if(typeof spaceBetween==='string'&&spaceBetween.indexOf('%') >=0){
spaceBetween=parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;
}
swiper.virtualSize=-spaceBetween;
if(rtl) slides.css({
marginLeft: '',
marginBottom: '',
marginTop: ''
});else slides.css({
marginRight: '',
marginBottom: '',
marginTop: ''
});
if(params.centeredSlides&&params.cssMode){
setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');
setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');
}
const gridEnabled=params.grid&&params.grid.rows > 1&&swiper.grid;
if(gridEnabled){
swiper.grid.initSlides(slidesLength);
}
let slideSize;
const shouldResetSlideSize=params.slidesPerView==='auto'&&params.breakpoints&&Object.keys(params.breakpoints).filter(key=> {
return typeof params.breakpoints[key].slidesPerView!=='undefined';
}).length > 0;
for (let i=0; i < slidesLength; i +=1){
slideSize=0;
const slide=slides.eq(i);
if(gridEnabled){
swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);
}
if(slide.css('display')==='none') continue;
if(params.slidesPerView==='auto'){
if(shouldResetSlideSize){
slides[i].style[getDirectionLabel('width')]=``;
}
const slideStyles=getComputedStyle(slide[0]);
const currentTransform=slide[0].style.transform;
const currentWebKitTransform=slide[0].style.webkitTransform;
if(currentTransform){
slide[0].style.transform='none';
}
if(currentWebKitTransform){
slide[0].style.webkitTransform='none';
}
if(params.roundLengths){
slideSize=swiper.isHorizontal() ? slide.outerWidth(true):slide.outerHeight(true);
}else{
const width=getDirectionPropertyValue(slideStyles, 'width');
const paddingLeft=getDirectionPropertyValue(slideStyles, 'padding-left');
const paddingRight=getDirectionPropertyValue(slideStyles, 'padding-right');
const marginLeft=getDirectionPropertyValue(slideStyles, 'margin-left');
const marginRight=getDirectionPropertyValue(slideStyles, 'margin-right');
const boxSizing=slideStyles.getPropertyValue('box-sizing');
if(boxSizing&&boxSizing==='border-box'){
slideSize=width + marginLeft + marginRight;
}else{
const {
clientWidth,
offsetWidth
}=slide[0];
slideSize=width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);
}}
if(currentTransform){
slide[0].style.transform=currentTransform;
}
if(currentWebKitTransform){
slide[0].style.webkitTransform=currentWebKitTransform;
}
if(params.roundLengths) slideSize=Math.floor(slideSize);
}else{
slideSize=(swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;
if(params.roundLengths) slideSize=Math.floor(slideSize);
if(slides[i]){
slides[i].style[getDirectionLabel('width')]=`${slideSize}px`;
}}
if(slides[i]){
slides[i].swiperSlideSize=slideSize;
}
slidesSizesGrid.push(slideSize);
if(params.centeredSlides){
slidePosition=slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;
if(prevSlideSize===0&&i!==0) slidePosition=slidePosition - swiperSize / 2 - spaceBetween;
if(i===0) slidePosition=slidePosition - swiperSize / 2 - spaceBetween;
if(Math.abs(slidePosition) < 1 / 1000) slidePosition=0;
if(params.roundLengths) slidePosition=Math.floor(slidePosition);
if(index % params.slidesPerGroup===0) snapGrid.push(slidePosition);
slidesGrid.push(slidePosition);
}else{
if(params.roundLengths) slidePosition=Math.floor(slidePosition);
if((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup===0) snapGrid.push(slidePosition);
slidesGrid.push(slidePosition);
slidePosition=slidePosition + slideSize + spaceBetween;
}
swiper.virtualSize +=slideSize + spaceBetween;
prevSlideSize=slideSize;
index +=1;
}
swiper.virtualSize=Math.max(swiper.virtualSize, swiperSize) + offsetAfter;
if(rtl&&wrongRTL&&(params.effect==='slide'||params.effect==='coverflow')){
$wrapperEl.css({
width: `${swiper.virtualSize + params.spaceBetween}px`
});
}
if(params.setWrapperSize){
$wrapperEl.css({
[getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`
});
}
if(gridEnabled){
swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);
}
if(!params.centeredSlides){
const newSlidesGrid=[];
for (let i=0; i < snapGrid.length; i +=1){
let slidesGridItem=snapGrid[i];
if(params.roundLengths) slidesGridItem=Math.floor(slidesGridItem);
if(snapGrid[i] <=swiper.virtualSize - swiperSize){
newSlidesGrid.push(slidesGridItem);
}}
snapGrid=newSlidesGrid;
if(Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1){
snapGrid.push(swiper.virtualSize - swiperSize);
}}
if(snapGrid.length===0) snapGrid=[0];
if(params.spaceBetween!==0){
const key=swiper.isHorizontal()&&rtl ? 'marginLeft':getDirectionLabel('marginRight');
slides.filter((_, slideIndex)=> {
if(!params.cssMode) return true;
if(slideIndex===slides.length - 1){
return false;
}
return true;
}).css({
[key]: `${spaceBetween}px`
});
}
if(params.centeredSlides&&params.centeredSlidesBounds){
let allSlidesSize=0;
slidesSizesGrid.forEach(slideSizeValue=> {
allSlidesSize +=slideSizeValue + (params.spaceBetween ? params.spaceBetween:0);
});
allSlidesSize -=params.spaceBetween;
const maxSnap=allSlidesSize - swiperSize;
snapGrid=snapGrid.map(snap=> {
if(snap < 0) return -offsetBefore;
if(snap > maxSnap) return maxSnap + offsetAfter;
return snap;
});
}
if(params.centerInsufficientSlides){
let allSlidesSize=0;
slidesSizesGrid.forEach(slideSizeValue=> {
allSlidesSize +=slideSizeValue + (params.spaceBetween ? params.spaceBetween:0);
});
allSlidesSize -=params.spaceBetween;
if(allSlidesSize < swiperSize){
const allSlidesOffset=(swiperSize - allSlidesSize) / 2;
snapGrid.forEach((snap, snapIndex)=> {
snapGrid[snapIndex]=snap - allSlidesOffset;
});
slidesGrid.forEach((snap, snapIndex)=> {
slidesGrid[snapIndex]=snap + allSlidesOffset;
});
}}
Object.assign(swiper, {
slides,
snapGrid,
slidesGrid,
slidesSizesGrid
});
if(params.centeredSlides&&params.cssMode&&!params.centeredSlidesBounds){
setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);
setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);
const addToSnapGrid=-swiper.snapGrid[0];
const addToSlidesGrid=-swiper.slidesGrid[0];
swiper.snapGrid=swiper.snapGrid.map(v=> v + addToSnapGrid);
swiper.slidesGrid=swiper.slidesGrid.map(v=> v + addToSlidesGrid);
}
if(slidesLength!==previousSlidesLength){
swiper.emit('slidesLengthChange');
}
if(snapGrid.length!==previousSnapGridLength){
if(swiper.params.watchOverflow) swiper.checkOverflow();
swiper.emit('snapGridLengthChange');
}
if(slidesGrid.length!==previousSlidesGridLength){
swiper.emit('slidesGridLengthChange');
}
if(params.watchSlidesProgress){
swiper.updateSlidesOffset();
}
if(!isVirtual&&!params.cssMode&&(params.effect==='slide'||params.effect==='fade')){
const backFaceHiddenClass=`${params.containerModifierClass}backface-hidden`;
const hasClassBackfaceClassAdded=swiper.$el.hasClass(backFaceHiddenClass);
if(slidesLength <=params.maxBackfaceHiddenSlides){
if(!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);
}else if(hasClassBackfaceClassAdded){
swiper.$el.removeClass(backFaceHiddenClass);
}}
}
function updateAutoHeight(speed){
const swiper=this;
const activeSlides=[];
const isVirtual=swiper.virtual&&swiper.params.virtual.enabled;
let newHeight=0;
let i;
if(typeof speed==='number'){
swiper.setTransition(speed);
}else if(speed===true){
swiper.setTransition(swiper.params.speed);
}
const getSlideByIndex=index=> {
if(isVirtual){
return swiper.slides.filter(el=> parseInt(el.getAttribute('data-swiper-slide-index'), 10)===index)[0];
}
return swiper.slides.eq(index)[0];
};
if(swiper.params.slidesPerView!=='auto'&&swiper.params.slidesPerView > 1){
if(swiper.params.centeredSlides){
(swiper.visibleSlides||$([])).each(slide=> {
activeSlides.push(slide);
});
}else{
for (i=0; i < Math.ceil(swiper.params.slidesPerView); i +=1){
const index=swiper.activeIndex + i;
if(index > swiper.slides.length&&!isVirtual) break;
activeSlides.push(getSlideByIndex(index));
}}
}else{
activeSlides.push(getSlideByIndex(swiper.activeIndex));
}
for (i=0; i < activeSlides.length; i +=1){
if(typeof activeSlides[i]!=='undefined'){
const height=activeSlides[i].offsetHeight;
newHeight=height > newHeight ? height:newHeight;
}}
if(newHeight||newHeight===0) swiper.$wrapperEl.css('height', `${newHeight}px`);
}
function updateSlidesOffset(){
const swiper=this;
const slides=swiper.slides;
for (let i=0; i < slides.length; i +=1){
slides[i].swiperSlideOffset=swiper.isHorizontal() ? slides[i].offsetLeft:slides[i].offsetTop;
}}
function updateSlidesProgress(translate){
if(translate===void 0){
translate=this&&this.translate||0;
}
const swiper=this;
const params=swiper.params;
const {
slides,
rtlTranslate: rtl,
snapGrid
}=swiper;
if(slides.length===0) return;
if(typeof slides[0].swiperSlideOffset==='undefined') swiper.updateSlidesOffset();
let offsetCenter=-translate;
if(rtl) offsetCenter=translate;
slides.removeClass(params.slideVisibleClass);
swiper.visibleSlidesIndexes=[];
swiper.visibleSlides=[];
for (let i=0; i < slides.length; i +=1){
const slide=slides[i];
let slideOffset=slide.swiperSlideOffset;
if(params.cssMode&&params.centeredSlides){
slideOffset -=slides[0].swiperSlideOffset;
}
const slideProgress=(offsetCenter + (params.centeredSlides ? swiper.minTranslate():0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);
const originalSlideProgress=(offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate():0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);
const slideBefore=-(offsetCenter - slideOffset);
const slideAfter=slideBefore + swiper.slidesSizesGrid[i];
const isVisible=slideBefore >=0&&slideBefore < swiper.size - 1||slideAfter > 1&&slideAfter <=swiper.size||slideBefore <=0&&slideAfter >=swiper.size;
if(isVisible){
swiper.visibleSlides.push(slide);
swiper.visibleSlidesIndexes.push(i);
slides.eq(i).addClass(params.slideVisibleClass);
}
slide.progress=rtl ? -slideProgress:slideProgress;
slide.originalProgress=rtl ? -originalSlideProgress:originalSlideProgress;
}
swiper.visibleSlides=$(swiper.visibleSlides);
}
function updateProgress(translate){
const swiper=this;
if(typeof translate==='undefined'){
const multiplier=swiper.rtlTranslate ? -1:1;
translate=swiper&&swiper.translate&&swiper.translate * multiplier||0;
}
const params=swiper.params;
const translatesDiff=swiper.maxTranslate() - swiper.minTranslate();
let {
progress,
isBeginning,
isEnd
}=swiper;
const wasBeginning=isBeginning;
const wasEnd=isEnd;
if(translatesDiff===0){
progress=0;
isBeginning=true;
isEnd=true;
}else{
progress=(translate - swiper.minTranslate()) / translatesDiff;
isBeginning=progress <=0;
isEnd=progress >=1;
}
Object.assign(swiper, {
progress,
isBeginning,
isEnd
});
if(params.watchSlidesProgress||params.centeredSlides&&params.autoHeight) swiper.updateSlidesProgress(translate);
if(isBeginning&&!wasBeginning){
swiper.emit('reachBeginning toEdge');
}
if(isEnd&&!wasEnd){
swiper.emit('reachEnd toEdge');
}
if(wasBeginning&&!isBeginning||wasEnd&&!isEnd){
swiper.emit('fromEdge');
}
swiper.emit('progress', progress);
}
function updateSlidesClasses(){
const swiper=this;
const {
slides,
params,
$wrapperEl,
activeIndex,
realIndex
}=swiper;
const isVirtual=swiper.virtual&&params.virtual.enabled;
slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);
let activeSlide;
if(isVirtual){
activeSlide=swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index="${activeIndex}"]`);
}else{
activeSlide=slides.eq(activeIndex);
}
activeSlide.addClass(params.slideActiveClass);
if(params.loop){
if(activeSlide.hasClass(params.slideDuplicateClass)){
$wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index="${realIndex}"]`).addClass(params.slideDuplicateActiveClass);
}else{
$wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index="${realIndex}"]`).addClass(params.slideDuplicateActiveClass);
}}
let nextSlide=activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);
if(params.loop&&nextSlide.length===0){
nextSlide=slides.eq(0);
nextSlide.addClass(params.slideNextClass);
}
let prevSlide=activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);
if(params.loop&&prevSlide.length===0){
prevSlide=slides.eq(-1);
prevSlide.addClass(params.slidePrevClass);
}
if(params.loop){
if(nextSlide.hasClass(params.slideDuplicateClass)){
$wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index="${nextSlide.attr('data-swiper-slide-index')}"]`).addClass(params.slideDuplicateNextClass);
}else{
$wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index="${nextSlide.attr('data-swiper-slide-index')}"]`).addClass(params.slideDuplicateNextClass);
}
if(prevSlide.hasClass(params.slideDuplicateClass)){
$wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index="${prevSlide.attr('data-swiper-slide-index')}"]`).addClass(params.slideDuplicatePrevClass);
}else{
$wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index="${prevSlide.attr('data-swiper-slide-index')}"]`).addClass(params.slideDuplicatePrevClass);
}}
swiper.emitSlidesClasses();
}
function updateActiveIndex(newActiveIndex){
const swiper=this;
const translate=swiper.rtlTranslate ? swiper.translate:-swiper.translate;
const {
slidesGrid,
snapGrid,
params,
activeIndex: previousIndex,
realIndex: previousRealIndex,
snapIndex: previousSnapIndex
}=swiper;
let activeIndex=newActiveIndex;
let snapIndex;
if(typeof activeIndex==='undefined'){
for (let i=0; i < slidesGrid.length; i +=1){
if(typeof slidesGrid[i + 1]!=='undefined'){
if(translate >=slidesGrid[i]&&translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2){
activeIndex=i;
}else if(translate >=slidesGrid[i]&&translate < slidesGrid[i + 1]){
activeIndex=i + 1;
}}else if(translate >=slidesGrid[i]){
activeIndex=i;
}}
if(params.normalizeSlideIndex){
if(activeIndex < 0||typeof activeIndex==='undefined') activeIndex=0;
}}
if(snapGrid.indexOf(translate) >=0){
snapIndex=snapGrid.indexOf(translate);
}else{
const skip=Math.min(params.slidesPerGroupSkip, activeIndex);
snapIndex=skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);
}
if(snapIndex >=snapGrid.length) snapIndex=snapGrid.length - 1;
if(activeIndex===previousIndex){
if(snapIndex!==previousSnapIndex){
swiper.snapIndex=snapIndex;
swiper.emit('snapIndexChange');
}
return;
}
const realIndex=parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index')||activeIndex, 10);
Object.assign(swiper, {
snapIndex,
realIndex,
previousIndex,
activeIndex
});
swiper.emit('activeIndexChange');
swiper.emit('snapIndexChange');
if(previousRealIndex!==realIndex){
swiper.emit('realIndexChange');
}
if(swiper.initialized||swiper.params.runCallbacksOnInit){
swiper.emit('slideChange');
}}
function updateClickedSlide(e){
const swiper=this;
const params=swiper.params;
const slide=$(e).closest(`.${params.slideClass}`)[0];
let slideFound=false;
let slideIndex;
if(slide){
for (let i=0; i < swiper.slides.length; i +=1){
if(swiper.slides[i]===slide){
slideFound=true;
slideIndex=i;
break;
}}
}
if(slide&&slideFound){
swiper.clickedSlide=slide;
if(swiper.virtual&&swiper.params.virtual.enabled){
swiper.clickedIndex=parseInt($(slide).attr('data-swiper-slide-index'), 10);
}else{
swiper.clickedIndex=slideIndex;
}}else{
swiper.clickedSlide=undefined;
swiper.clickedIndex=undefined;
return;
}
if(params.slideToClickedSlide&&swiper.clickedIndex!==undefined&&swiper.clickedIndex!==swiper.activeIndex){
swiper.slideToClickedSlide();
}}
var update={
updateSize,
updateSlides,
updateAutoHeight,
updateSlidesOffset,
updateSlidesProgress,
updateProgress,
updateSlidesClasses,
updateActiveIndex,
updateClickedSlide
};
function getSwiperTranslate(axis){
if(axis===void 0){
axis=this.isHorizontal() ? 'x':'y';
}
const swiper=this;
const {
params,
rtlTranslate: rtl,
translate,
$wrapperEl
}=swiper;
if(params.virtualTranslate){
return rtl ? -translate:translate;
}
if(params.cssMode){
return translate;
}
let currentTranslate=getTranslate($wrapperEl[0], axis);
if(rtl) currentTranslate=-currentTranslate;
return currentTranslate||0;
}
function setTranslate(translate, byController){
const swiper=this;
const {
rtlTranslate: rtl,
params,
$wrapperEl,
wrapperEl,
progress
}=swiper;
let x=0;
let y=0;
const z=0;
if(swiper.isHorizontal()){
x=rtl ? -translate:translate;
}else{
y=translate;
}
if(params.roundLengths){
x=Math.floor(x);
y=Math.floor(y);
}
if(params.cssMode){
wrapperEl[swiper.isHorizontal() ? 'scrollLeft':'scrollTop']=swiper.isHorizontal() ? -x:-y;
}else if(!params.virtualTranslate){
$wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);
}
swiper.previousTranslate=swiper.translate;
swiper.translate=swiper.isHorizontal() ? x:y;
let newProgress;
const translatesDiff=swiper.maxTranslate() - swiper.minTranslate();
if(translatesDiff===0){
newProgress=0;
}else{
newProgress=(translate - swiper.minTranslate()) / translatesDiff;
}
if(newProgress!==progress){
swiper.updateProgress(translate);
}
swiper.emit('setTranslate', swiper.translate, byController);
}
function minTranslate(){
return -this.snapGrid[0];
}
function maxTranslate(){
return -this.snapGrid[this.snapGrid.length - 1];
}
function translateTo(translate, speed, runCallbacks, translateBounds, internal){
if(translate===void 0){
translate=0;
}
if(speed===void 0){
speed=this.params.speed;
}
if(runCallbacks===void 0){
runCallbacks=true;
}
if(translateBounds===void 0){
translateBounds=true;
}
const swiper=this;
const {
params,
wrapperEl
}=swiper;
if(swiper.animating&&params.preventInteractionOnTransition){
return false;
}
const minTranslate=swiper.minTranslate();
const maxTranslate=swiper.maxTranslate();
let newTranslate;
if(translateBounds&&translate > minTranslate) newTranslate=minTranslate;else if(translateBounds&&translate < maxTranslate) newTranslate=maxTranslate;else newTranslate=translate;
swiper.updateProgress(newTranslate);
if(params.cssMode){
const isH=swiper.isHorizontal();
if(speed===0){
wrapperEl[isH ? 'scrollLeft':'scrollTop']=-newTranslate;
}else{
if(!swiper.support.smoothScroll){
animateCSSModeScroll({
swiper,
targetPosition: -newTranslate,
side: isH ? 'left':'top'
});
return true;
}
wrapperEl.scrollTo({
[isH ? 'left':'top']: -newTranslate,
behavior: 'smooth'
});
}
return true;
}
if(speed===0){
swiper.setTransition(0);
swiper.setTranslate(newTranslate);
if(runCallbacks){
swiper.emit('beforeTransitionStart', speed, internal);
swiper.emit('transitionEnd');
}}else{
swiper.setTransition(speed);
swiper.setTranslate(newTranslate);
if(runCallbacks){
swiper.emit('beforeTransitionStart', speed, internal);
swiper.emit('transitionStart');
}
if(!swiper.animating){
swiper.animating=true;
if(!swiper.onTranslateToWrapperTransitionEnd){
swiper.onTranslateToWrapperTransitionEnd=function transitionEnd(e){
if(!swiper||swiper.destroyed) return;
if(e.target!==this) return;
swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);
swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);
swiper.onTranslateToWrapperTransitionEnd=null;
delete swiper.onTranslateToWrapperTransitionEnd;
if(runCallbacks){
swiper.emit('transitionEnd');
}};}
swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);
swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);
}}
return true;
}
var translate={
getTranslate: getSwiperTranslate,
setTranslate,
minTranslate,
maxTranslate,
translateTo
};
function setTransition(duration, byController){
const swiper=this;
if(!swiper.params.cssMode){
swiper.$wrapperEl.transition(duration);
}
swiper.emit('setTransition', duration, byController);
}
function transitionEmit(_ref){
let {
swiper,
runCallbacks,
direction,
step
}=_ref;
const {
activeIndex,
previousIndex
}=swiper;
let dir=direction;
if(!dir){
if(activeIndex > previousIndex) dir='next';else if(activeIndex < previousIndex) dir='prev';else dir='reset';
}
swiper.emit(`transition${step}`);
if(runCallbacks&&activeIndex!==previousIndex){
if(dir==='reset'){
swiper.emit(`slideResetTransition${step}`);
return;
}
swiper.emit(`slideChangeTransition${step}`);
if(dir==='next'){
swiper.emit(`slideNextTransition${step}`);
}else{
swiper.emit(`slidePrevTransition${step}`);
}}
}
function transitionStart(runCallbacks, direction){
if(runCallbacks===void 0){
runCallbacks=true;
}
const swiper=this;
const {
params
}=swiper;
if(params.cssMode) return;
if(params.autoHeight){
swiper.updateAutoHeight();
}
transitionEmit({
swiper,
runCallbacks,
direction,
step: 'Start'
});
}
function transitionEnd(runCallbacks, direction){
if(runCallbacks===void 0){
runCallbacks=true;
}
const swiper=this;
const {
params
}=swiper;
swiper.animating=false;
if(params.cssMode) return;
swiper.setTransition(0);
transitionEmit({
swiper,
runCallbacks,
direction,
step: 'End'
});
}
var transition={
setTransition,
transitionStart,
transitionEnd
};
function slideTo(index, speed, runCallbacks, internal, initial){
if(index===void 0){
index=0;
}
if(speed===void 0){
speed=this.params.speed;
}
if(runCallbacks===void 0){
runCallbacks=true;
}
if(typeof index!=='number'&&typeof index!=='string'){
throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);
}
if(typeof index==='string'){
const indexAsNumber=parseInt(index, 10);
const isValidNumber=isFinite(indexAsNumber);
if(!isValidNumber){
throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);
}
index=indexAsNumber;
}
const swiper=this;
let slideIndex=index;
if(slideIndex < 0) slideIndex=0;
const {
params,
snapGrid,
slidesGrid,
previousIndex,
activeIndex,
rtlTranslate: rtl,
wrapperEl,
enabled
}=swiper;
if(swiper.animating&&params.preventInteractionOnTransition||!enabled&&!internal&&!initial){
return false;
}
const skip=Math.min(swiper.params.slidesPerGroupSkip, slideIndex);
let snapIndex=skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);
if(snapIndex >=snapGrid.length) snapIndex=snapGrid.length - 1;
const translate=-snapGrid[snapIndex];
if(params.normalizeSlideIndex){
for (let i=0; i < slidesGrid.length; i +=1){
const normalizedTranslate=-Math.floor(translate * 100);
const normalizedGrid=Math.floor(slidesGrid[i] * 100);
const normalizedGridNext=Math.floor(slidesGrid[i + 1] * 100);
if(typeof slidesGrid[i + 1]!=='undefined'){
if(normalizedTranslate >=normalizedGrid&&normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2){
slideIndex=i;
}else if(normalizedTranslate >=normalizedGrid&&normalizedTranslate < normalizedGridNext){
slideIndex=i + 1;
}}else if(normalizedTranslate >=normalizedGrid){
slideIndex=i;
}}
}
if(swiper.initialized&&slideIndex!==activeIndex){
if(!swiper.allowSlideNext&&translate < swiper.translate&&translate < swiper.minTranslate()){
return false;
}
if(!swiper.allowSlidePrev&&translate > swiper.translate&&translate > swiper.maxTranslate()){
if((activeIndex||0)!==slideIndex) return false;
}}
if(slideIndex!==(previousIndex||0)&&runCallbacks){
swiper.emit('beforeSlideChangeStart');
}
swiper.updateProgress(translate);
let direction;
if(slideIndex > activeIndex) direction='next';else if(slideIndex < activeIndex) direction='prev';else direction='reset';
if(rtl&&-translate===swiper.translate||!rtl&&translate===swiper.translate){
swiper.updateActiveIndex(slideIndex);
if(params.autoHeight){
swiper.updateAutoHeight();
}
swiper.updateSlidesClasses();
if(params.effect!=='slide'){
swiper.setTranslate(translate);
}
if(direction!=='reset'){
swiper.transitionStart(runCallbacks, direction);
swiper.transitionEnd(runCallbacks, direction);
}
return false;
}
if(params.cssMode){
const isH=swiper.isHorizontal();
const t=rtl ? translate:-translate;
if(speed===0){
const isVirtual=swiper.virtual&&swiper.params.virtual.enabled;
if(isVirtual){
swiper.wrapperEl.style.scrollSnapType='none';
swiper._immediateVirtual=true;
}
wrapperEl[isH ? 'scrollLeft':'scrollTop']=t;
if(isVirtual){
requestAnimationFrame(()=> {
swiper.wrapperEl.style.scrollSnapType='';
swiper._swiperImmediateVirtual=false;
});
}}else{
if(!swiper.support.smoothScroll){
animateCSSModeScroll({
swiper,
targetPosition: t,
side: isH ? 'left':'top'
});
return true;
}
wrapperEl.scrollTo({
[isH ? 'left':'top']: t,
behavior: 'smooth'
});
}
return true;
}
swiper.setTransition(speed);
swiper.setTranslate(translate);
swiper.updateActiveIndex(slideIndex);
swiper.updateSlidesClasses();
swiper.emit('beforeTransitionStart', speed, internal);
swiper.transitionStart(runCallbacks, direction);
if(speed===0){
swiper.transitionEnd(runCallbacks, direction);
}else if(!swiper.animating){
swiper.animating=true;
if(!swiper.onSlideToWrapperTransitionEnd){
swiper.onSlideToWrapperTransitionEnd=function transitionEnd(e){
if(!swiper||swiper.destroyed) return;
if(e.target!==this) return;
swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);
swiper.onSlideToWrapperTransitionEnd=null;
delete swiper.onSlideToWrapperTransitionEnd;
swiper.transitionEnd(runCallbacks, direction);
};}
swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);
}
return true;
}
function slideToLoop(index, speed, runCallbacks, internal){
if(index===void 0){
index=0;
}
if(speed===void 0){
speed=this.params.speed;
}
if(runCallbacks===void 0){
runCallbacks=true;
}
if(typeof index==='string'){
const indexAsNumber=parseInt(index, 10);
const isValidNumber=isFinite(indexAsNumber);
if(!isValidNumber){
throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);
}
index=indexAsNumber;
}
const swiper=this;
let newIndex=index;
if(swiper.params.loop){
newIndex +=swiper.loopedSlides;
}
return swiper.slideTo(newIndex, speed, runCallbacks, internal);
}
function slideNext(speed, runCallbacks, internal){
if(speed===void 0){
speed=this.params.speed;
}
if(runCallbacks===void 0){
runCallbacks=true;
}
const swiper=this;
const {
animating,
enabled,
params
}=swiper;
if(!enabled) return swiper;
let perGroup=params.slidesPerGroup;
if(params.slidesPerView==='auto'&&params.slidesPerGroup===1&&params.slidesPerGroupAuto){
perGroup=Math.max(swiper.slidesPerViewDynamic('current', true), 1);
}
const increment=swiper.activeIndex < params.slidesPerGroupSkip ? 1:perGroup;
if(params.loop){
if(animating&&params.loopPreventsSlide) return false;
swiper.loopFix();
swiper._clientLeft=swiper.$wrapperEl[0].clientLeft;
}
if(params.rewind&&swiper.isEnd){
return swiper.slideTo(0, speed, runCallbacks, internal);
}
return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);
}
function slidePrev(speed, runCallbacks, internal){
if(speed===void 0){
speed=this.params.speed;
}
if(runCallbacks===void 0){
runCallbacks=true;
}
const swiper=this;
const {
params,
animating,
snapGrid,
slidesGrid,
rtlTranslate,
enabled
}=swiper;
if(!enabled) return swiper;
if(params.loop){
if(animating&&params.loopPreventsSlide) return false;
swiper.loopFix();
swiper._clientLeft=swiper.$wrapperEl[0].clientLeft;
}
const translate=rtlTranslate ? swiper.translate:-swiper.translate;
function normalize(val){
if(val < 0) return -Math.floor(Math.abs(val));
return Math.floor(val);
}
const normalizedTranslate=normalize(translate);
const normalizedSnapGrid=snapGrid.map(val=> normalize(val));
let prevSnap=snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];
if(typeof prevSnap==='undefined'&&params.cssMode){
let prevSnapIndex;
snapGrid.forEach((snap, snapIndex)=> {
if(normalizedTranslate >=snap){
prevSnapIndex=snapIndex;
}});
if(typeof prevSnapIndex!=='undefined'){
prevSnap=snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1:prevSnapIndex];
}}
let prevIndex=0;
if(typeof prevSnap!=='undefined'){
prevIndex=slidesGrid.indexOf(prevSnap);
if(prevIndex < 0) prevIndex=swiper.activeIndex - 1;
if(params.slidesPerView==='auto'&&params.slidesPerGroup===1&&params.slidesPerGroupAuto){
prevIndex=prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;
prevIndex=Math.max(prevIndex, 0);
}}
if(params.rewind&&swiper.isBeginning){
const lastIndex=swiper.params.virtual&&swiper.params.virtual.enabled&&swiper.virtual ? swiper.virtual.slides.length - 1:swiper.slides.length - 1;
return swiper.slideTo(lastIndex, speed, runCallbacks, internal);
}
return swiper.slideTo(prevIndex, speed, runCallbacks, internal);
}
function slideReset(speed, runCallbacks, internal){
if(speed===void 0){
speed=this.params.speed;
}
if(runCallbacks===void 0){
runCallbacks=true;
}
const swiper=this;
return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);
}
function slideToClosest(speed, runCallbacks, internal, threshold){
if(speed===void 0){
speed=this.params.speed;
}
if(runCallbacks===void 0){
runCallbacks=true;
}
if(threshold===void 0){
threshold=0.5;
}
const swiper=this;
let index=swiper.activeIndex;
const skip=Math.min(swiper.params.slidesPerGroupSkip, index);
const snapIndex=skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);
const translate=swiper.rtlTranslate ? swiper.translate:-swiper.translate;
if(translate >=swiper.snapGrid[snapIndex]){
const currentSnap=swiper.snapGrid[snapIndex];
const nextSnap=swiper.snapGrid[snapIndex + 1];
if(translate - currentSnap > (nextSnap - currentSnap) * threshold){
index +=swiper.params.slidesPerGroup;
}}else{
const prevSnap=swiper.snapGrid[snapIndex - 1];
const currentSnap=swiper.snapGrid[snapIndex];
if(translate - prevSnap <=(currentSnap - prevSnap) * threshold){
index -=swiper.params.slidesPerGroup;
}}
index=Math.max(index, 0);
index=Math.min(index, swiper.slidesGrid.length - 1);
return swiper.slideTo(index, speed, runCallbacks, internal);
}
function slideToClickedSlide(){
const swiper=this;
const {
params,
$wrapperEl
}=swiper;
const slidesPerView=params.slidesPerView==='auto' ? swiper.slidesPerViewDynamic():params.slidesPerView;
let slideToIndex=swiper.clickedIndex;
let realIndex;
if(params.loop){
if(swiper.animating) return;
realIndex=parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);
if(params.centeredSlides){
if(slideToIndex < swiper.loopedSlides - slidesPerView / 2||slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2){
swiper.loopFix();
slideToIndex=$wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index="${realIndex}"]:not(.${params.slideDuplicateClass})`).eq(0).index();
nextTick(()=> {
swiper.slideTo(slideToIndex);
});
}else{
swiper.slideTo(slideToIndex);
}}else if(slideToIndex > swiper.slides.length - slidesPerView){
swiper.loopFix();
slideToIndex=$wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index="${realIndex}"]:not(.${params.slideDuplicateClass})`).eq(0).index();
nextTick(()=> {
swiper.slideTo(slideToIndex);
});
}else{
swiper.slideTo(slideToIndex);
}}else{
swiper.slideTo(slideToIndex);
}}
var slide={
slideTo,
slideToLoop,
slideNext,
slidePrev,
slideReset,
slideToClosest,
slideToClickedSlide
};
function loopCreate(){
const swiper=this;
const document=getDocument();
const {
params,
$wrapperEl
}=swiper;
const $selector=$wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode):$wrapperEl;
$selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();
let slides=$selector.children(`.${params.slideClass}`);
if(params.loopFillGroupWithBlank){
const blankSlidesNum=params.slidesPerGroup - slides.length % params.slidesPerGroup;
if(blankSlidesNum!==params.slidesPerGroup){
for (let i=0; i < blankSlidesNum; i +=1){
const blankNode=$(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);
$selector.append(blankNode);
}
slides=$selector.children(`.${params.slideClass}`);
}}
if(params.slidesPerView==='auto'&&!params.loopedSlides) params.loopedSlides=slides.length;
swiper.loopedSlides=Math.ceil(parseFloat(params.loopedSlides||params.slidesPerView, 10));
swiper.loopedSlides +=params.loopAdditionalSlides;
if(swiper.loopedSlides > slides.length&&swiper.params.loopedSlidesLimit){
swiper.loopedSlides=slides.length;
}
const prependSlides=[];
const appendSlides=[];
slides.each((el, index)=> {
const slide=$(el);
slide.attr('data-swiper-slide-index', index);
});
for (let i=0; i < swiper.loopedSlides; i +=1){
const index=i - Math.floor(i / slides.length) * slides.length;
appendSlides.push(slides.eq(index)[0]);
prependSlides.unshift(slides.eq(slides.length - index - 1)[0]);
}
for (let i=0; i < appendSlides.length; i +=1){
$selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));
}
for (let i=prependSlides.length - 1; i >=0; i -=1){
$selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));
}}
function loopFix(){
const swiper=this;
swiper.emit('beforeLoopFix');
const {
activeIndex,
slides,
loopedSlides,
allowSlidePrev,
allowSlideNext,
snapGrid,
rtlTranslate: rtl
}=swiper;
let newIndex;
swiper.allowSlidePrev=true;
swiper.allowSlideNext=true;
const snapTranslate=-snapGrid[activeIndex];
const diff=snapTranslate - swiper.getTranslate();
if(activeIndex < loopedSlides){
newIndex=slides.length - loopedSlides * 3 + activeIndex;
newIndex +=loopedSlides;
const slideChanged=swiper.slideTo(newIndex, 0, false, true);
if(slideChanged&&diff!==0){
swiper.setTranslate((rtl ? -swiper.translate:swiper.translate) - diff);
}}else if(activeIndex >=slides.length - loopedSlides){
newIndex=-slides.length + activeIndex + loopedSlides;
newIndex +=loopedSlides;
const slideChanged=swiper.slideTo(newIndex, 0, false, true);
if(slideChanged&&diff!==0){
swiper.setTranslate((rtl ? -swiper.translate:swiper.translate) - diff);
}}
swiper.allowSlidePrev=allowSlidePrev;
swiper.allowSlideNext=allowSlideNext;
swiper.emit('loopFix');
}
function loopDestroy(){
const swiper=this;
const {
$wrapperEl,
params,
slides
}=swiper;
$wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();
slides.removeAttr('data-swiper-slide-index');
}
var loop={
loopCreate,
loopFix,
loopDestroy
};
function setGrabCursor(moving){
const swiper=this;
if(swiper.support.touch||!swiper.params.simulateTouch||swiper.params.watchOverflow&&swiper.isLocked||swiper.params.cssMode) return;
const el=swiper.params.touchEventsTarget==='container' ? swiper.el:swiper.wrapperEl;
el.style.cursor='move';
el.style.cursor=moving ? 'grabbing':'grab';
}
function unsetGrabCursor(){
const swiper=this;
if(swiper.support.touch||swiper.params.watchOverflow&&swiper.isLocked||swiper.params.cssMode){
return;
}
swiper[swiper.params.touchEventsTarget==='container' ? 'el':'wrapperEl'].style.cursor='';
}
var grabCursor={
setGrabCursor,
unsetGrabCursor
};
function closestElement(selector, base){
if(base===void 0){
base=this;
}
function __closestFrom(el){
if(!el||el===getDocument()||el===getWindow()) return null;
if(el.assignedSlot) el=el.assignedSlot;
const found=el.closest(selector);
if(!found&&!el.getRootNode){
return null;
}
return found||__closestFrom(el.getRootNode().host);
}
return __closestFrom(base);
}
function onTouchStart(event){
const swiper=this;
const document=getDocument();
const window=getWindow();
const data=swiper.touchEventsData;
const {
params,
touches,
enabled
}=swiper;
if(!enabled) return;
if(swiper.animating&&params.preventInteractionOnTransition){
return;
}
if(!swiper.animating&&params.cssMode&&params.loop){
swiper.loopFix();
}
let e=event;
if(e.originalEvent) e=e.originalEvent;
let $targetEl=$(e.target);
if(params.touchEventsTarget==='wrapper'){
if(!$targetEl.closest(swiper.wrapperEl).length) return;
}
data.isTouchEvent=e.type==='touchstart';
if(!data.isTouchEvent&&'which' in e&&e.which===3) return;
if(!data.isTouchEvent&&'button' in e&&e.button > 0) return;
if(data.isTouched&&data.isMoved) return;
const swipingClassHasValue = !!params.noSwipingClass&&params.noSwipingClass!=='';
const eventPath=event.composedPath ? event.composedPath():event.path;
if(swipingClassHasValue&&e.target&&e.target.shadowRoot&&eventPath){
$targetEl=$(eventPath[0]);
}
const noSwipingSelector=params.noSwipingSelector ? params.noSwipingSelector:`.${params.noSwipingClass}`;
const isTargetShadow = !!(e.target&&e.target.shadowRoot);
if(params.noSwiping&&(isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]):$targetEl.closest(noSwipingSelector)[0])){
swiper.allowClick=true;
return;
}
if(params.swipeHandler){
if(!$targetEl.closest(params.swipeHandler)[0]) return;
}
touches.currentX=e.type==='touchstart' ? e.targetTouches[0].pageX:e.pageX;
touches.currentY=e.type==='touchstart' ? e.targetTouches[0].pageY:e.pageY;
const startX=touches.currentX;
const startY=touches.currentY;
const edgeSwipeDetection=params.edgeSwipeDetection||params.iOSEdgeSwipeDetection;
const edgeSwipeThreshold=params.edgeSwipeThreshold||params.iOSEdgeSwipeThreshold;
if(edgeSwipeDetection&&(startX <=edgeSwipeThreshold||startX >=window.innerWidth - edgeSwipeThreshold)){
if(edgeSwipeDetection==='prevent'){
event.preventDefault();
}else{
return;
}}
Object.assign(data, {
isTouched: true,
isMoved: false,
allowTouchCallbacks: true,
isScrolling: undefined,
startMoving: undefined
});
touches.startX=startX;
touches.startY=startY;
data.touchStartTime=now();
swiper.allowClick=true;
swiper.updateSize();
swiper.swipeDirection=undefined;
if(params.threshold > 0) data.allowThresholdMove=false;
if(e.type!=='touchstart'){
let preventDefault=true;
if($targetEl.is(data.focusableElements)){
preventDefault=false;
if($targetEl[0].nodeName==='SELECT'){
data.isTouched=false;
}}
if(document.activeElement&&$(document.activeElement).is(data.focusableElements)&&document.activeElement!==$targetEl[0]){
document.activeElement.blur();
}
const shouldPreventDefault=preventDefault&&swiper.allowTouchMove&&params.touchStartPreventDefault;
if((params.touchStartForcePreventDefault||shouldPreventDefault)&&!$targetEl[0].isContentEditable){
e.preventDefault();
}}
if(swiper.params.freeMode&&swiper.params.freeMode.enabled&&swiper.freeMode&&swiper.animating&&!params.cssMode){
swiper.freeMode.onTouchStart();
}
swiper.emit('touchStart', e);
}
function onTouchMove(event){
const document=getDocument();
const swiper=this;
const data=swiper.touchEventsData;
const {
params,
touches,
rtlTranslate: rtl,
enabled
}=swiper;
if(!enabled) return;
let e=event;
if(e.originalEvent) e=e.originalEvent;
if(!data.isTouched){
if(data.startMoving&&data.isScrolling){
swiper.emit('touchMoveOpposite', e);
}
return;
}
if(data.isTouchEvent&&e.type!=='touchmove') return;
const targetTouch=e.type==='touchmove'&&e.targetTouches&&(e.targetTouches[0]||e.changedTouches[0]);
const pageX=e.type==='touchmove' ? targetTouch.pageX:e.pageX;
const pageY=e.type==='touchmove' ? targetTouch.pageY:e.pageY;
if(e.preventedByNestedSwiper){
touches.startX=pageX;
touches.startY=pageY;
return;
}
if(!swiper.allowTouchMove){
if(!$(e.target).is(data.focusableElements)){
swiper.allowClick=false;
}
if(data.isTouched){
Object.assign(touches, {
startX: pageX,
startY: pageY,
currentX: pageX,
currentY: pageY
});
data.touchStartTime=now();
}
return;
}
if(data.isTouchEvent&&params.touchReleaseOnEdges&&!params.loop){
if(swiper.isVertical()){
if(pageY < touches.startY&&swiper.translate <=swiper.maxTranslate()||pageY > touches.startY&&swiper.translate >=swiper.minTranslate()){
data.isTouched=false;
data.isMoved=false;
return;
}}else if(pageX < touches.startX&&swiper.translate <=swiper.maxTranslate()||pageX > touches.startX&&swiper.translate >=swiper.minTranslate()){
return;
}}
if(data.isTouchEvent&&document.activeElement){
if(e.target===document.activeElement&&$(e.target).is(data.focusableElements)){
data.isMoved=true;
swiper.allowClick=false;
return;
}}
if(data.allowTouchCallbacks){
swiper.emit('touchMove', e);
}
if(e.targetTouches&&e.targetTouches.length > 1) return;
touches.currentX=pageX;
touches.currentY=pageY;
const diffX=touches.currentX - touches.startX;
const diffY=touches.currentY - touches.startY;
if(swiper.params.threshold&&Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;
if(typeof data.isScrolling==='undefined'){
let touchAngle;
if(swiper.isHorizontal()&&touches.currentY===touches.startY||swiper.isVertical()&&touches.currentX===touches.startX){
data.isScrolling=false;
}else{
if(diffX * diffX + diffY * diffY >=25){
touchAngle=Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;
data.isScrolling=swiper.isHorizontal() ? touchAngle > params.touchAngle:90 - touchAngle > params.touchAngle;
}}
}
if(data.isScrolling){
swiper.emit('touchMoveOpposite', e);
}
if(typeof data.startMoving==='undefined'){
if(touches.currentX!==touches.startX||touches.currentY!==touches.startY){
data.startMoving=true;
}}
if(data.isScrolling){
data.isTouched=false;
return;
}
if(!data.startMoving){
return;
}
swiper.allowClick=false;
if(!params.cssMode&&e.cancelable){
e.preventDefault();
}
if(params.touchMoveStopPropagation&&!params.nested){
e.stopPropagation();
}
if(!data.isMoved){
if(params.loop&&!params.cssMode){
swiper.loopFix();
}
data.startTranslate=swiper.getTranslate();
swiper.setTransition(0);
if(swiper.animating){
swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');
}
data.allowMomentumBounce=false;
if(params.grabCursor&&(swiper.allowSlideNext===true||swiper.allowSlidePrev===true)){
swiper.setGrabCursor(true);
}
swiper.emit('sliderFirstMove', e);
}
swiper.emit('sliderMove', e);
data.isMoved=true;
let diff=swiper.isHorizontal() ? diffX:diffY;
touches.diff=diff;
diff *=params.touchRatio;
if(rtl) diff=-diff;
swiper.swipeDirection=diff > 0 ? 'prev':'next';
data.currentTranslate=diff + data.startTranslate;
let disableParentSwiper=true;
let resistanceRatio=params.resistanceRatio;
if(params.touchReleaseOnEdges){
resistanceRatio=0;
}
if(diff > 0&&data.currentTranslate > swiper.minTranslate()){
disableParentSwiper=false;
if(params.resistance) data.currentTranslate=swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;
}else if(diff < 0&&data.currentTranslate < swiper.maxTranslate()){
disableParentSwiper=false;
if(params.resistance) data.currentTranslate=swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;
}
if(disableParentSwiper){
e.preventedByNestedSwiper=true;
}
if(!swiper.allowSlideNext&&swiper.swipeDirection==='next'&&data.currentTranslate < data.startTranslate){
data.currentTranslate=data.startTranslate;
}
if(!swiper.allowSlidePrev&&swiper.swipeDirection==='prev'&&data.currentTranslate > data.startTranslate){
data.currentTranslate=data.startTranslate;
}
if(!swiper.allowSlidePrev&&!swiper.allowSlideNext){
data.currentTranslate=data.startTranslate;
}
if(params.threshold > 0){
if(Math.abs(diff) > params.threshold||data.allowThresholdMove){
if(!data.allowThresholdMove){
data.allowThresholdMove=true;
touches.startX=touches.currentX;
touches.startY=touches.currentY;
data.currentTranslate=data.startTranslate;
touches.diff=swiper.isHorizontal() ? touches.currentX - touches.startX:touches.currentY - touches.startY;
return;
}}else{
data.currentTranslate=data.startTranslate;
return;
}}
if(!params.followFinger||params.cssMode) return;
if(params.freeMode&&params.freeMode.enabled&&swiper.freeMode||params.watchSlidesProgress){
swiper.updateActiveIndex();
swiper.updateSlidesClasses();
}
if(swiper.params.freeMode&&params.freeMode.enabled&&swiper.freeMode){
swiper.freeMode.onTouchMove();
}
swiper.updateProgress(data.currentTranslate);
swiper.setTranslate(data.currentTranslate);
}
function onTouchEnd(event){
const swiper=this;
const data=swiper.touchEventsData;
const {
params,
touches,
rtlTranslate: rtl,
slidesGrid,
enabled
}=swiper;
if(!enabled) return;
let e=event;
if(e.originalEvent) e=e.originalEvent;
if(data.allowTouchCallbacks){
swiper.emit('touchEnd', e);
}
data.allowTouchCallbacks=false;
if(!data.isTouched){
if(data.isMoved&&params.grabCursor){
swiper.setGrabCursor(false);
}
data.isMoved=false;
data.startMoving=false;
return;
}
if(params.grabCursor&&data.isMoved&&data.isTouched&&(swiper.allowSlideNext===true||swiper.allowSlidePrev===true)){
swiper.setGrabCursor(false);
}
const touchEndTime=now();
const timeDiff=touchEndTime - data.touchStartTime;
if(swiper.allowClick){
const pathTree=e.path||e.composedPath&&e.composedPath();
swiper.updateClickedSlide(pathTree&&pathTree[0]||e.target);
swiper.emit('tap click', e);
if(timeDiff < 300&&touchEndTime - data.lastClickTime < 300){
swiper.emit('doubleTap doubleClick', e);
}}
data.lastClickTime=now();
nextTick(()=> {
if(!swiper.destroyed) swiper.allowClick=true;
});
if(!data.isTouched||!data.isMoved||!swiper.swipeDirection||touches.diff===0||data.currentTranslate===data.startTranslate){
data.isTouched=false;
data.isMoved=false;
data.startMoving=false;
return;
}
data.isTouched=false;
data.isMoved=false;
data.startMoving=false;
let currentPos;
if(params.followFinger){
currentPos=rtl ? swiper.translate:-swiper.translate;
}else{
currentPos=-data.currentTranslate;
}
if(params.cssMode){
return;
}
if(swiper.params.freeMode&&params.freeMode.enabled){
swiper.freeMode.onTouchEnd({
currentPos
});
return;
}
let stopIndex=0;
let groupSize=swiper.slidesSizesGrid[0];
for (let i=0; i < slidesGrid.length; i +=i < params.slidesPerGroupSkip ? 1:params.slidesPerGroup){
const increment=i < params.slidesPerGroupSkip - 1 ? 1:params.slidesPerGroup;
if(typeof slidesGrid[i + increment]!=='undefined'){
if(currentPos >=slidesGrid[i]&&currentPos < slidesGrid[i + increment]){
stopIndex=i;
groupSize=slidesGrid[i + increment] - slidesGrid[i];
}}else if(currentPos >=slidesGrid[i]){
stopIndex=i;
groupSize=slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];
}}
let rewindFirstIndex=null;
let rewindLastIndex=null;
if(params.rewind){
if(swiper.isBeginning){
rewindLastIndex=swiper.params.virtual&&swiper.params.virtual.enabled&&swiper.virtual ? swiper.virtual.slides.length - 1:swiper.slides.length - 1;
}else if(swiper.isEnd){
rewindFirstIndex=0;
}}
const ratio=(currentPos - slidesGrid[stopIndex]) / groupSize;
const increment=stopIndex < params.slidesPerGroupSkip - 1 ? 1:params.slidesPerGroup;
if(timeDiff > params.longSwipesMs){
if(!params.longSwipes){
swiper.slideTo(swiper.activeIndex);
return;
}
if(swiper.swipeDirection==='next'){
if(ratio >=params.longSwipesRatio) swiper.slideTo(params.rewind&&swiper.isEnd ? rewindFirstIndex:stopIndex + increment);else swiper.slideTo(stopIndex);
}
if(swiper.swipeDirection==='prev'){
if(ratio > 1 - params.longSwipesRatio){
swiper.slideTo(stopIndex + increment);
}else if(rewindLastIndex!==null&&ratio < 0&&Math.abs(ratio) > params.longSwipesRatio){
swiper.slideTo(rewindLastIndex);
}else{
swiper.slideTo(stopIndex);
}}
}else{
if(!params.shortSwipes){
swiper.slideTo(swiper.activeIndex);
return;
}
const isNavButtonTarget=swiper.navigation&&(e.target===swiper.navigation.nextEl||e.target===swiper.navigation.prevEl);
if(!isNavButtonTarget){
if(swiper.swipeDirection==='next'){
swiper.slideTo(rewindFirstIndex!==null ? rewindFirstIndex:stopIndex + increment);
}
if(swiper.swipeDirection==='prev'){
swiper.slideTo(rewindLastIndex!==null ? rewindLastIndex:stopIndex);
}}else if(e.target===swiper.navigation.nextEl){
swiper.slideTo(stopIndex + increment);
}else{
swiper.slideTo(stopIndex);
}}
}
function onResize(){
const swiper=this;
const {
params,
el
}=swiper;
if(el&&el.offsetWidth===0) return;
if(params.breakpoints){
swiper.setBreakpoint();
}
const {
allowSlideNext,
allowSlidePrev,
snapGrid
}=swiper;
swiper.allowSlideNext=true;
swiper.allowSlidePrev=true;
swiper.updateSize();
swiper.updateSlides();
swiper.updateSlidesClasses();
if((params.slidesPerView==='auto'||params.slidesPerView > 1)&&swiper.isEnd&&!swiper.isBeginning&&!swiper.params.centeredSlides){
swiper.slideTo(swiper.slides.length - 1, 0, false, true);
}else{
swiper.slideTo(swiper.activeIndex, 0, false, true);
}
if(swiper.autoplay&&swiper.autoplay.running&&swiper.autoplay.paused){
swiper.autoplay.run();
}
swiper.allowSlidePrev=allowSlidePrev;
swiper.allowSlideNext=allowSlideNext;
if(swiper.params.watchOverflow&&snapGrid!==swiper.snapGrid){
swiper.checkOverflow();
}}
function onClick(e){
const swiper=this;
if(!swiper.enabled) return;
if(!swiper.allowClick){
if(swiper.params.preventClicks) e.preventDefault();
if(swiper.params.preventClicksPropagation&&swiper.animating){
e.stopPropagation();
e.stopImmediatePropagation();
}}
}
function onScroll(){
const swiper=this;
const {
wrapperEl,
rtlTranslate,
enabled
}=swiper;
if(!enabled) return;
swiper.previousTranslate=swiper.translate;
if(swiper.isHorizontal()){
swiper.translate=-wrapperEl.scrollLeft;
}else{
swiper.translate=-wrapperEl.scrollTop;
}
if(swiper.translate===0) swiper.translate=0;
swiper.updateActiveIndex();
swiper.updateSlidesClasses();
let newProgress;
const translatesDiff=swiper.maxTranslate() - swiper.minTranslate();
if(translatesDiff===0){
newProgress=0;
}else{
newProgress=(swiper.translate - swiper.minTranslate()) / translatesDiff;
}
if(newProgress!==swiper.progress){
swiper.updateProgress(rtlTranslate ? -swiper.translate:swiper.translate);
}
swiper.emit('setTranslate', swiper.translate, false);
}
let dummyEventAttached=false;
function dummyEventListener(){}
const events=(swiper, method)=> {
const document=getDocument();
const {
params,
touchEvents,
el,
wrapperEl,
device,
support
}=swiper;
const capture = !!params.nested;
const domMethod=method==='on' ? 'addEventListener':'removeEventListener';
const swiperMethod=method;
if(!support.touch){
el[domMethod](touchEvents.start, swiper.onTouchStart, false);
document[domMethod](touchEvents.move, swiper.onTouchMove, capture);
document[domMethod](touchEvents.end, swiper.onTouchEnd, false);
}else{
const passiveListener=touchEvents.start==='touchstart'&&support.passiveListener&&params.passiveListeners ? {
passive: true,
capture: false
}:false;
el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);
el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {
passive: false,
capture
}:capture);
el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);
if(touchEvents.cancel){
el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);
}}
if(params.preventClicks||params.preventClicksPropagation){
el[domMethod]('click', swiper.onClick, true);
}
if(params.cssMode){
wrapperEl[domMethod]('scroll', swiper.onScroll);
}
if(params.updateOnWindowResize){
swiper[swiperMethod](device.ios||device.android ? 'resize orientationchange observerUpdate':'resize observerUpdate', onResize, true);
}else{
swiper[swiperMethod]('observerUpdate', onResize, true);
}};
function attachEvents(){
const swiper=this;
const document=getDocument();
const {
params,
support
}=swiper;
swiper.onTouchStart=onTouchStart.bind(swiper);
swiper.onTouchMove=onTouchMove.bind(swiper);
swiper.onTouchEnd=onTouchEnd.bind(swiper);
if(params.cssMode){
swiper.onScroll=onScroll.bind(swiper);
}
swiper.onClick=onClick.bind(swiper);
if(support.touch&&!dummyEventAttached){
document.addEventListener('touchstart', dummyEventListener);
dummyEventAttached=true;
}
events(swiper, 'on');
}
function detachEvents(){
const swiper=this;
events(swiper, 'off');
}
var events$1={
attachEvents,
detachEvents
};
const isGridEnabled=(swiper, params)=> {
return swiper.grid&&params.grid&&params.grid.rows > 1;
};
function setBreakpoint(){
const swiper=this;
const {
activeIndex,
initialized,
loopedSlides=0,
params,
$el
}=swiper;
const breakpoints=params.breakpoints;
if(!breakpoints||breakpoints&&Object.keys(breakpoints).length===0) return;
const breakpoint=swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);
if(!breakpoint||swiper.currentBreakpoint===breakpoint) return;
const breakpointOnlyParams=breakpoint in breakpoints ? breakpoints[breakpoint]:undefined;
const breakpointParams=breakpointOnlyParams||swiper.originalParams;
const wasMultiRow=isGridEnabled(swiper, params);
const isMultiRow=isGridEnabled(swiper, breakpointParams);
const wasEnabled=params.enabled;
if(wasMultiRow&&!isMultiRow){
$el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);
swiper.emitContainerClasses();
}else if(!wasMultiRow&&isMultiRow){
$el.addClass(`${params.containerModifierClass}grid`);
if(breakpointParams.grid.fill&&breakpointParams.grid.fill==='column'||!breakpointParams.grid.fill&&params.grid.fill==='column'){
$el.addClass(`${params.containerModifierClass}grid-column`);
}
swiper.emitContainerClasses();
}
['navigation', 'pagination', 'scrollbar'].forEach(prop=> {
const wasModuleEnabled=params[prop]&&params[prop].enabled;
const isModuleEnabled=breakpointParams[prop]&&breakpointParams[prop].enabled;
if(wasModuleEnabled&&!isModuleEnabled){
swiper[prop].disable();
}
if(!wasModuleEnabled&&isModuleEnabled){
swiper[prop].enable();
}});
const directionChanged=breakpointParams.direction&&breakpointParams.direction!==params.direction;
const needsReLoop=params.loop&&(breakpointParams.slidesPerView!==params.slidesPerView||directionChanged);
if(directionChanged&&initialized){
swiper.changeDirection();
}
extend(swiper.params, breakpointParams);
const isEnabled=swiper.params.enabled;
Object.assign(swiper, {
allowTouchMove: swiper.params.allowTouchMove,
allowSlideNext: swiper.params.allowSlideNext,
allowSlidePrev: swiper.params.allowSlidePrev
});
if(wasEnabled&&!isEnabled){
swiper.disable();
}else if(!wasEnabled&&isEnabled){
swiper.enable();
}
swiper.currentBreakpoint=breakpoint;
swiper.emit('_beforeBreakpoint', breakpointParams);
if(needsReLoop&&initialized){
swiper.loopDestroy();
swiper.loopCreate();
swiper.updateSlides();
swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);
}
swiper.emit('breakpoint', breakpointParams);
}
function getBreakpoint(breakpoints, base, containerEl){
if(base===void 0){
base='window';
}
if(!breakpoints||base==='container'&&!containerEl) return undefined;
let breakpoint=false;
const window=getWindow();
const currentHeight=base==='window' ? window.innerHeight:containerEl.clientHeight;
const points=Object.keys(breakpoints).map(point=> {
if(typeof point==='string'&&point.indexOf('@')===0){
const minRatio=parseFloat(point.substr(1));
const value=currentHeight * minRatio;
return {
value,
point
};}
return {
value: point,
point
};});
points.sort((a, b)=> parseInt(a.value, 10) - parseInt(b.value, 10));
for (let i=0; i < points.length; i +=1){
const {
point,
value
}=points[i];
if(base==='window'){
if(window.matchMedia(`(min-width: ${value}px)`).matches){
breakpoint=point;
}}else if(value <=containerEl.clientWidth){
breakpoint=point;
}}
return breakpoint||'max';
}
var breakpoints={
setBreakpoint,
getBreakpoint
};
function prepareClasses(entries, prefix){
const resultClasses=[];
entries.forEach(item=> {
if(typeof item==='object'){
Object.keys(item).forEach(classNames=> {
if(item[classNames]){
resultClasses.push(prefix + classNames);
}});
}else if(typeof item==='string'){
resultClasses.push(prefix + item);
}});
return resultClasses;
}
function addClasses(){
const swiper=this;
const {
classNames,
params,
rtl,
$el,
device,
support
}=swiper;
const suffixes=prepareClasses(['initialized', params.direction, {
'pointer-events': !support.touch
}, {
'free-mode': swiper.params.freeMode&&params.freeMode.enabled
}, {
'autoheight': params.autoHeight
}, {
'rtl': rtl
}, {
'grid': params.grid&&params.grid.rows > 1
}, {
'grid-column': params.grid&&params.grid.rows > 1&&params.grid.fill==='column'
}, {
'android': device.android
}, {
'ios': device.ios
}, {
'css-mode': params.cssMode
}, {
'centered': params.cssMode&&params.centeredSlides
}, {
'watch-progress': params.watchSlidesProgress
}], params.containerModifierClass);
classNames.push(...suffixes);
$el.addClass([...classNames].join(' '));
swiper.emitContainerClasses();
}
function removeClasses(){
const swiper=this;
const {
$el,
classNames
}=swiper;
$el.removeClass(classNames.join(' '));
swiper.emitContainerClasses();
}
var classes={
addClasses,
removeClasses
};
function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback){
const window=getWindow();
let image;
function onReady(){
if(callback) callback();
}
const isPicture=$(imageEl).parent('picture')[0];
if(!isPicture&&(!imageEl.complete||!checkForComplete)){
if(src){
image=new window.Image();
image.onload=onReady;
image.onerror=onReady;
if(sizes){
image.sizes=sizes;
}
if(srcset){
image.srcset=srcset;
}
if(src){
image.src=src;
}}else{
onReady();
}}else{
onReady();
}}
function preloadImages(){
const swiper=this;
swiper.imagesToLoad=swiper.$el.find('img');
function onReady(){
if(typeof swiper==='undefined'||swiper===null||!swiper||swiper.destroyed) return;
if(swiper.imagesLoaded!==undefined) swiper.imagesLoaded +=1;
if(swiper.imagesLoaded===swiper.imagesToLoad.length){
if(swiper.params.updateOnImagesReady) swiper.update();
swiper.emit('imagesReady');
}}
for (let i=0; i < swiper.imagesToLoad.length; i +=1){
const imageEl=swiper.imagesToLoad[i];
swiper.loadImage(imageEl, imageEl.currentSrc||imageEl.getAttribute('src'), imageEl.srcset||imageEl.getAttribute('srcset'), imageEl.sizes||imageEl.getAttribute('sizes'), true, onReady);
}}
var images={
loadImage,
preloadImages
};
function checkOverflow(){
const swiper=this;
const {
isLocked: wasLocked,
params
}=swiper;
const {
slidesOffsetBefore
}=params;
if(slidesOffsetBefore){
const lastSlideIndex=swiper.slides.length - 1;
const lastSlideRightEdge=swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;
swiper.isLocked=swiper.size > lastSlideRightEdge;
}else{
swiper.isLocked=swiper.snapGrid.length===1;
}
if(params.allowSlideNext===true){
swiper.allowSlideNext = !swiper.isLocked;
}
if(params.allowSlidePrev===true){
swiper.allowSlidePrev = !swiper.isLocked;
}
if(wasLocked&&wasLocked!==swiper.isLocked){
swiper.isEnd=false;
}
if(wasLocked!==swiper.isLocked){
swiper.emit(swiper.isLocked ? 'lock':'unlock');
}}
var checkOverflow$1={
checkOverflow
};
var defaults={
init: true,
direction: 'horizontal',
touchEventsTarget: 'wrapper',
initialSlide: 0,
speed: 300,
cssMode: false,
updateOnWindowResize: true,
resizeObserver: true,
nested: false,
createElements: false,
enabled: true,
focusableElements: 'input, select, option, textarea, button, video, label',
width: null,
height: null,
preventInteractionOnTransition: false,
userAgent: null,
url: null,
edgeSwipeDetection: false,
edgeSwipeThreshold: 20,
autoHeight: false,
setWrapperSize: false,
virtualTranslate: false,
effect: 'slide',
breakpoints: undefined,
breakpointsBase: 'window',
spaceBetween: 0,
slidesPerView: 1,
slidesPerGroup: 1,
slidesPerGroupSkip: 0,
slidesPerGroupAuto: false,
centeredSlides: false,
centeredSlidesBounds: false,
slidesOffsetBefore: 0,
slidesOffsetAfter: 0,
normalizeSlideIndex: true,
centerInsufficientSlides: false,
watchOverflow: true,
roundLengths: false,
touchRatio: 1,
touchAngle: 45,
simulateTouch: true,
shortSwipes: true,
longSwipes: true,
longSwipesRatio: 0.5,
longSwipesMs: 300,
followFinger: true,
allowTouchMove: true,
threshold: 0,
touchMoveStopPropagation: false,
touchStartPreventDefault: true,
touchStartForcePreventDefault: false,
touchReleaseOnEdges: false,
uniqueNavElements: true,
resistance: true,
resistanceRatio: 0.85,
watchSlidesProgress: false,
grabCursor: false,
preventClicks: true,
preventClicksPropagation: true,
slideToClickedSlide: false,
preloadImages: true,
updateOnImagesReady: true,
loop: false,
loopAdditionalSlides: 0,
loopedSlides: null,
loopedSlidesLimit: true,
loopFillGroupWithBlank: false,
loopPreventsSlide: true,
rewind: false,
allowSlidePrev: true,
allowSlideNext: true,
swipeHandler: null,
noSwiping: true,
noSwipingClass: 'swiper-no-swiping',
noSwipingSelector: null,
passiveListeners: true,
maxBackfaceHiddenSlides: 10,
containerModifierClass: 'swiper-',
slideClass: 'swiper-slide',
slideBlankClass: 'swiper-slide-invisible-blank',
slideActiveClass: 'swiper-slide-active',
slideDuplicateActiveClass: 'swiper-slide-duplicate-active',
slideVisibleClass: 'swiper-slide-visible',
slideDuplicateClass: 'swiper-slide-duplicate',
slideNextClass: 'swiper-slide-next',
slideDuplicateNextClass: 'swiper-slide-duplicate-next',
slidePrevClass: 'swiper-slide-prev',
slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',
wrapperClass: 'swiper-wrapper',
runCallbacksOnInit: true,
_emitClasses: false
};
function moduleExtendParams(params, allModulesParams){
return function extendParams(obj){
if(obj===void 0){
obj={};}
const moduleParamName=Object.keys(obj)[0];
const moduleParams=obj[moduleParamName];
if(typeof moduleParams!=='object'||moduleParams===null){
extend(allModulesParams, obj);
return;
}
if(['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >=0&&params[moduleParamName]===true){
params[moduleParamName]={
auto: true
};}
if(!(moduleParamName in params&&'enabled' in moduleParams)){
extend(allModulesParams, obj);
return;
}
if(params[moduleParamName]===true){
params[moduleParamName]={
enabled: true
};}
if(typeof params[moduleParamName]==='object'&&!('enabled' in params[moduleParamName])){
params[moduleParamName].enabled=true;
}
if(!params[moduleParamName]) params[moduleParamName]={
enabled: false
};
extend(allModulesParams, obj);
};}
const prototypes={
eventsEmitter,
update,
translate,
transition,
slide,
loop,
grabCursor,
events: events$1,
breakpoints,
checkOverflow: checkOverflow$1,
classes,
images
};
const extendedDefaults={};
class Swiper {
constructor(){
let el;
let params;
for (var _len=arguments.length, args=new Array(_len), _key=0; _key < _len; _key++){
args[_key]=arguments[_key];
}
if(args.length===1&&args[0].constructor&&Object.prototype.toString.call(args[0]).slice(8, -1)==='Object'){
params=args[0];
}else{
[el, params]=args;
}
if(!params) params={};
params=extend({}, params);
if(el&&!params.el) params.el=el;
if(params.el&&$(params.el).length > 1){
const swipers=[];
$(params.el).each(containerEl=> {
const newParams=extend({}, params, {
el: containerEl
});
swipers.push(new Swiper(newParams));
});
return swipers;
}
const swiper=this;
swiper.__swiper__=true;
swiper.support=getSupport();
swiper.device=getDevice({
userAgent: params.userAgent
});
swiper.browser=getBrowser();
swiper.eventsListeners={};
swiper.eventsAnyListeners=[];
swiper.modules=[...swiper.__modules__];
if(params.modules&&Array.isArray(params.modules)){
swiper.modules.push(...params.modules);
}
const allModulesParams={};
swiper.modules.forEach(mod=> {
mod({
swiper,
extendParams: moduleExtendParams(params, allModulesParams),
on: swiper.on.bind(swiper),
once: swiper.once.bind(swiper),
off: swiper.off.bind(swiper),
emit: swiper.emit.bind(swiper)
});
});
const swiperParams=extend({}, defaults, allModulesParams);
swiper.params=extend({}, swiperParams, extendedDefaults, params);
swiper.originalParams=extend({}, swiper.params);
swiper.passedParams=extend({}, params);
if(swiper.params&&swiper.params.on){
Object.keys(swiper.params.on).forEach(eventName=> {
swiper.on(eventName, swiper.params.on[eventName]);
});
}
if(swiper.params&&swiper.params.onAny){
swiper.onAny(swiper.params.onAny);
}
swiper.$=$;
Object.assign(swiper, {
enabled: swiper.params.enabled,
el,
classNames: [],
slides: $(),
slidesGrid: [],
snapGrid: [],
slidesSizesGrid: [],
isHorizontal(){
return swiper.params.direction==='horizontal';
},
isVertical(){
return swiper.params.direction==='vertical';
},
activeIndex: 0,
realIndex: 0,
isBeginning: true,
isEnd: false,
translate: 0,
previousTranslate: 0,
progress: 0,
velocity: 0,
animating: false,
allowSlideNext: swiper.params.allowSlideNext,
allowSlidePrev: swiper.params.allowSlidePrev,
touchEvents: function touchEvents(){
const touch=['touchstart', 'touchmove', 'touchend', 'touchcancel'];
const desktop=['pointerdown', 'pointermove', 'pointerup'];
swiper.touchEventsTouch={
start: touch[0],
move: touch[1],
end: touch[2],
cancel: touch[3]
};
swiper.touchEventsDesktop={
start: desktop[0],
move: desktop[1],
end: desktop[2]
};
return swiper.support.touch||!swiper.params.simulateTouch ? swiper.touchEventsTouch:swiper.touchEventsDesktop;
}(),
touchEventsData: {
isTouched: undefined,
isMoved: undefined,
allowTouchCallbacks: undefined,
touchStartTime: undefined,
isScrolling: undefined,
currentTranslate: undefined,
startTranslate: undefined,
allowThresholdMove: undefined,
focusableElements: swiper.params.focusableElements,
lastClickTime: now(),
clickTimeout: undefined,
velocities: [],
allowMomentumBounce: undefined,
isTouchEvent: undefined,
startMoving: undefined
},
allowClick: true,
allowTouchMove: swiper.params.allowTouchMove,
touches: {
startX: 0,
startY: 0,
currentX: 0,
currentY: 0,
diff: 0
},
imagesToLoad: [],
imagesLoaded: 0
});
swiper.emit('_swiper');
if(swiper.params.init){
swiper.init();
}
return swiper;
}
enable(){
const swiper=this;
if(swiper.enabled) return;
swiper.enabled=true;
if(swiper.params.grabCursor){
swiper.setGrabCursor();
}
swiper.emit('enable');
}
disable(){
const swiper=this;
if(!swiper.enabled) return;
swiper.enabled=false;
if(swiper.params.grabCursor){
swiper.unsetGrabCursor();
}
swiper.emit('disable');
}
setProgress(progress, speed){
const swiper=this;
progress=Math.min(Math.max(progress, 0), 1);
const min=swiper.minTranslate();
const max=swiper.maxTranslate();
const current=(max - min) * progress + min;
swiper.translateTo(current, typeof speed==='undefined' ? 0:speed);
swiper.updateActiveIndex();
swiper.updateSlidesClasses();
}
emitContainerClasses(){
const swiper=this;
if(!swiper.params._emitClasses||!swiper.el) return;
const cls=swiper.el.className.split(' ').filter(className=> {
return className.indexOf('swiper')===0||className.indexOf(swiper.params.containerModifierClass)===0;
});
swiper.emit('_containerClasses', cls.join(' '));
}
getSlideClasses(slideEl){
const swiper=this;
if(swiper.destroyed) return '';
return slideEl.className.split(' ').filter(className=> {
return className.indexOf('swiper-slide')===0||className.indexOf(swiper.params.slideClass)===0;
}).join(' ');
}
emitSlidesClasses(){
const swiper=this;
if(!swiper.params._emitClasses||!swiper.el) return;
const updates=[];
swiper.slides.each(slideEl=> {
const classNames=swiper.getSlideClasses(slideEl);
updates.push({
slideEl,
classNames
});
swiper.emit('_slideClass', slideEl, classNames);
});
swiper.emit('_slideClasses', updates);
}
slidesPerViewDynamic(view, exact){
if(view===void 0){
view='current';
}
if(exact===void 0){
exact=false;
}
const swiper=this;
const {
params,
slides,
slidesGrid,
slidesSizesGrid,
size: swiperSize,
activeIndex
}=swiper;
let spv=1;
if(params.centeredSlides){
let slideSize=slides[activeIndex].swiperSlideSize;
let breakLoop;
for (let i=activeIndex + 1; i < slides.length; i +=1){
if(slides[i]&&!breakLoop){
slideSize +=slides[i].swiperSlideSize;
spv +=1;
if(slideSize > swiperSize) breakLoop=true;
}}
for (let i=activeIndex - 1; i >=0; i -=1){
if(slides[i]&&!breakLoop){
slideSize +=slides[i].swiperSlideSize;
spv +=1;
if(slideSize > swiperSize) breakLoop=true;
}}
}else{
if(view==='current'){
for (let i=activeIndex + 1; i < slides.length; i +=1){
const slideInView=exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize:slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;
if(slideInView){
spv +=1;
}}
}else{
for (let i=activeIndex - 1; i >=0; i -=1){
const slideInView=slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;
if(slideInView){
spv +=1;
}}
}}
return spv;
}
update(){
const swiper=this;
if(!swiper||swiper.destroyed) return;
const {
snapGrid,
params
}=swiper;
if(params.breakpoints){
swiper.setBreakpoint();
}
swiper.updateSize();
swiper.updateSlides();
swiper.updateProgress();
swiper.updateSlidesClasses();
function setTranslate(){
const translateValue=swiper.rtlTranslate ? swiper.translate * -1:swiper.translate;
const newTranslate=Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());
swiper.setTranslate(newTranslate);
swiper.updateActiveIndex();
swiper.updateSlidesClasses();
}
let translated;
if(swiper.params.freeMode&&swiper.params.freeMode.enabled){
setTranslate();
if(swiper.params.autoHeight){
swiper.updateAutoHeight();
}}else{
if((swiper.params.slidesPerView==='auto'||swiper.params.slidesPerView > 1)&&swiper.isEnd&&!swiper.params.centeredSlides){
translated=swiper.slideTo(swiper.slides.length - 1, 0, false, true);
}else{
translated=swiper.slideTo(swiper.activeIndex, 0, false, true);
}
if(!translated){
setTranslate();
}}
if(params.watchOverflow&&snapGrid!==swiper.snapGrid){
swiper.checkOverflow();
}
swiper.emit('update');
}
changeDirection(newDirection, needUpdate){
if(needUpdate===void 0){
needUpdate=true;
}
const swiper=this;
const currentDirection=swiper.params.direction;
if(!newDirection){
newDirection=currentDirection==='horizontal' ? 'vertical':'horizontal';
}
if(newDirection===currentDirection||newDirection!=='horizontal'&&newDirection!=='vertical'){
return swiper;
}
swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);
swiper.emitContainerClasses();
swiper.params.direction=newDirection;
swiper.slides.each(slideEl=> {
if(newDirection==='vertical'){
slideEl.style.width='';
}else{
slideEl.style.height='';
}});
swiper.emit('changeDirection');
if(needUpdate) swiper.update();
return swiper;
}
changeLanguageDirection(direction){
const swiper=this;
if(swiper.rtl&&direction==='rtl'||!swiper.rtl&&direction==='ltr') return;
swiper.rtl=direction==='rtl';
swiper.rtlTranslate=swiper.params.direction==='horizontal'&&swiper.rtl;
if(swiper.rtl){
swiper.$el.addClass(`${swiper.params.containerModifierClass}rtl`);
swiper.el.dir='rtl';
}else{
swiper.$el.removeClass(`${swiper.params.containerModifierClass}rtl`);
swiper.el.dir='ltr';
}
swiper.update();
}
mount(el){
const swiper=this;
if(swiper.mounted) return true;
const $el=$(el||swiper.params.el);
el=$el[0];
if(!el){
return false;
}
el.swiper=swiper;
const getWrapperSelector=()=> {
return `.${(swiper.params.wrapperClass||'').trim().split(' ').join('.')}`;
};
const getWrapper=()=> {
if(el&&el.shadowRoot&&el.shadowRoot.querySelector){
const res=$(el.shadowRoot.querySelector(getWrapperSelector()));
res.children=options=> $el.children(options);
return res;
}
if(!$el.children){
return $($el).children(getWrapperSelector());
}
return $el.children(getWrapperSelector());
};
let $wrapperEl=getWrapper();
if($wrapperEl.length===0&&swiper.params.createElements){
const document=getDocument();
const wrapper=document.createElement('div');
$wrapperEl=$(wrapper);
wrapper.className=swiper.params.wrapperClass;
$el.append(wrapper);
$el.children(`.${swiper.params.slideClass}`).each(slideEl=> {
$wrapperEl.append(slideEl);
});
}
Object.assign(swiper, {
$el,
el,
$wrapperEl,
wrapperEl: $wrapperEl[0],
mounted: true,
rtl: el.dir.toLowerCase()==='rtl'||$el.css('direction')==='rtl',
rtlTranslate: swiper.params.direction==='horizontal'&&(el.dir.toLowerCase()==='rtl'||$el.css('direction')==='rtl'),
wrongRTL: $wrapperEl.css('display')==='-webkit-box'
});
return true;
}
init(el){
const swiper=this;
if(swiper.initialized) return swiper;
const mounted=swiper.mount(el);
if(mounted===false) return swiper;
swiper.emit('beforeInit');
if(swiper.params.breakpoints){
swiper.setBreakpoint();
}
swiper.addClasses();
if(swiper.params.loop){
swiper.loopCreate();
}
swiper.updateSize();
swiper.updateSlides();
if(swiper.params.watchOverflow){
swiper.checkOverflow();
}
if(swiper.params.grabCursor&&swiper.enabled){
swiper.setGrabCursor();
}
if(swiper.params.preloadImages){
swiper.preloadImages();
}
if(swiper.params.loop){
swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);
}else{
swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);
}
swiper.attachEvents();
swiper.initialized=true;
swiper.emit('init');
swiper.emit('afterInit');
return swiper;
}
destroy(deleteInstance, cleanStyles){
if(deleteInstance===void 0){
deleteInstance=true;
}
if(cleanStyles===void 0){
cleanStyles=true;
}
const swiper=this;
const {
params,
$el,
$wrapperEl,
slides
}=swiper;
if(typeof swiper.params==='undefined'||swiper.destroyed){
return null;
}
swiper.emit('beforeDestroy');
swiper.initialized=false;
swiper.detachEvents();
if(params.loop){
swiper.loopDestroy();
}
if(cleanStyles){
swiper.removeClasses();
$el.removeAttr('style');
$wrapperEl.removeAttr('style');
if(slides&&slides.length){
slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');
}}
swiper.emit('destroy');
Object.keys(swiper.eventsListeners).forEach(eventName=> {
swiper.off(eventName);
});
if(deleteInstance!==false){
swiper.$el[0].swiper=null;
deleteProps(swiper);
}
swiper.destroyed=true;
return null;
}
static extendDefaults(newDefaults){
extend(extendedDefaults, newDefaults);
}
static get extendedDefaults(){
return extendedDefaults;
}
static get defaults(){
return defaults;
}
static installModule(mod){
if(!Swiper.prototype.__modules__) Swiper.prototype.__modules__=[];
const modules=Swiper.prototype.__modules__;
if(typeof mod==='function'&&modules.indexOf(mod) < 0){
modules.push(mod);
}}
static use(module){
if(Array.isArray(module)){
module.forEach(m=> Swiper.installModule(m));
return Swiper;
}
Swiper.installModule(module);
return Swiper;
}}
Object.keys(prototypes).forEach(prototypeGroup=> {
Object.keys(prototypes[prototypeGroup]).forEach(protoMethod=> {
Swiper.prototype[protoMethod]=prototypes[prototypeGroup][protoMethod];
});
});
Swiper.use([Resize, Observer]);
function Virtual(_ref){
let {
swiper,
extendParams,
on,
emit
}=_ref;
extendParams({
virtual: {
enabled: false,
slides: [],
cache: true,
renderSlide: null,
renderExternal: null,
renderExternalUpdate: true,
addSlidesBefore: 0,
addSlidesAfter: 0
}});
let cssModeTimeout;
swiper.virtual={
cache: {},
from: undefined,
to: undefined,
slides: [],
offset: 0,
slidesGrid: []
};
function renderSlide(slide, index){
const params=swiper.params.virtual;
if(params.cache&&swiper.virtual.cache[index]){
return swiper.virtual.cache[index];
}
const $slideEl=params.renderSlide ? $(params.renderSlide.call(swiper, slide, index)):$(`<div class="${swiper.params.slideClass}" data-swiper-slide-index="${index}">${slide}</div>`);
if(!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);
if(params.cache) swiper.virtual.cache[index]=$slideEl;
return $slideEl;
}
function update(force){
const {
slidesPerView,
slidesPerGroup,
centeredSlides
}=swiper.params;
const {
addSlidesBefore,
addSlidesAfter
}=swiper.params.virtual;
const {
from: previousFrom,
to: previousTo,
slides,
slidesGrid: previousSlidesGrid,
offset: previousOffset
}=swiper.virtual;
if(!swiper.params.cssMode){
swiper.updateActiveIndex();
}
const activeIndex=swiper.activeIndex||0;
let offsetProp;
if(swiper.rtlTranslate) offsetProp='right';else offsetProp=swiper.isHorizontal() ? 'left':'top';
let slidesAfter;
let slidesBefore;
if(centeredSlides){
slidesAfter=Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;
slidesBefore=Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;
}else{
slidesAfter=slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;
slidesBefore=slidesPerGroup + addSlidesBefore;
}
const from=Math.max((activeIndex||0) - slidesBefore, 0);
const to=Math.min((activeIndex||0) + slidesAfter, slides.length - 1);
const offset=(swiper.slidesGrid[from]||0) - (swiper.slidesGrid[0]||0);
Object.assign(swiper.virtual, {
from,
to,
offset,
slidesGrid: swiper.slidesGrid
});
function onRendered(){
swiper.updateSlides();
swiper.updateProgress();
swiper.updateSlidesClasses();
if(swiper.lazy&&swiper.params.lazy.enabled){
swiper.lazy.load();
}
emit('virtualUpdate');
}
if(previousFrom===from&&previousTo===to&&!force){
if(swiper.slidesGrid!==previousSlidesGrid&&offset!==previousOffset){
swiper.slides.css(offsetProp, `${offset}px`);
}
swiper.updateProgress();
emit('virtualUpdate');
return;
}
if(swiper.params.virtual.renderExternal){
swiper.params.virtual.renderExternal.call(swiper, {
offset,
from,
to,
slides: function getSlides(){
const slidesToRender=[];
for (let i=from; i <=to; i +=1){
slidesToRender.push(slides[i]);
}
return slidesToRender;
}()
});
if(swiper.params.virtual.renderExternalUpdate){
onRendered();
}else{
emit('virtualUpdate');
}
return;
}
const prependIndexes=[];
const appendIndexes=[];
if(force){
swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();
}else{
for (let i=previousFrom; i <=previousTo; i +=1){
if(i < from||i > to){
swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index="${i}"]`).remove();
}}
}
for (let i=0; i < slides.length; i +=1){
if(i >=from&&i <=to){
if(typeof previousTo==='undefined'||force){
appendIndexes.push(i);
}else{
if(i > previousTo) appendIndexes.push(i);
if(i < previousFrom) prependIndexes.push(i);
}}
}
appendIndexes.forEach(index=> {
swiper.$wrapperEl.append(renderSlide(slides[index], index));
});
prependIndexes.sort((a, b)=> b - a).forEach(index=> {
swiper.$wrapperEl.prepend(renderSlide(slides[index], index));
});
swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);
onRendered();
}
function appendSlide(slides){
if(typeof slides==='object'&&'length' in slides){
for (let i=0; i < slides.length; i +=1){
if(slides[i]) swiper.virtual.slides.push(slides[i]);
}}else{
swiper.virtual.slides.push(slides);
}
update(true);
}
function prependSlide(slides){
const activeIndex=swiper.activeIndex;
let newActiveIndex=activeIndex + 1;
let numberOfNewSlides=1;
if(Array.isArray(slides)){
for (let i=0; i < slides.length; i +=1){
if(slides[i]) swiper.virtual.slides.unshift(slides[i]);
}
newActiveIndex=activeIndex + slides.length;
numberOfNewSlides=slides.length;
}else{
swiper.virtual.slides.unshift(slides);
}
if(swiper.params.virtual.cache){
const cache=swiper.virtual.cache;
const newCache={};
Object.keys(cache).forEach(cachedIndex=> {
const $cachedEl=cache[cachedIndex];
const cachedElIndex=$cachedEl.attr('data-swiper-slide-index');
if(cachedElIndex){
$cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);
}
newCache[parseInt(cachedIndex, 10) + numberOfNewSlides]=$cachedEl;
});
swiper.virtual.cache=newCache;
}
update(true);
swiper.slideTo(newActiveIndex, 0);
}
function removeSlide(slidesIndexes){
if(typeof slidesIndexes==='undefined'||slidesIndexes===null) return;
let activeIndex=swiper.activeIndex;
if(Array.isArray(slidesIndexes)){
for (let i=slidesIndexes.length - 1; i >=0; i -=1){
swiper.virtual.slides.splice(slidesIndexes[i], 1);
if(swiper.params.virtual.cache){
delete swiper.virtual.cache[slidesIndexes[i]];
}
if(slidesIndexes[i] < activeIndex) activeIndex -=1;
activeIndex=Math.max(activeIndex, 0);
}}else{
swiper.virtual.slides.splice(slidesIndexes, 1);
if(swiper.params.virtual.cache){
delete swiper.virtual.cache[slidesIndexes];
}
if(slidesIndexes < activeIndex) activeIndex -=1;
activeIndex=Math.max(activeIndex, 0);
}
update(true);
swiper.slideTo(activeIndex, 0);
}
function removeAllSlides(){
swiper.virtual.slides=[];
if(swiper.params.virtual.cache){
swiper.virtual.cache={};}
update(true);
swiper.slideTo(0, 0);
}
on('beforeInit', ()=> {
if(!swiper.params.virtual.enabled) return;
swiper.virtual.slides=swiper.params.virtual.slides;
swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);
swiper.params.watchSlidesProgress=true;
swiper.originalParams.watchSlidesProgress=true;
if(!swiper.params.initialSlide){
update();
}});
on('setTranslate', ()=> {
if(!swiper.params.virtual.enabled) return;
if(swiper.params.cssMode&&!swiper._immediateVirtual){
clearTimeout(cssModeTimeout);
cssModeTimeout=setTimeout(()=> {
update();
}, 100);
}else{
update();
}});
on('init update resize', ()=> {
if(!swiper.params.virtual.enabled) return;
if(swiper.params.cssMode){
setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);
}});
Object.assign(swiper.virtual, {
appendSlide,
prependSlide,
removeSlide,
removeAllSlides,
update
});
}
function Keyboard(_ref){
let {
swiper,
extendParams,
on,
emit
}=_ref;
const document=getDocument();
const window=getWindow();
swiper.keyboard={
enabled: false
};
extendParams({
keyboard: {
enabled: false,
onlyInViewport: true,
pageUpDown: true
}});
function handle(event){
if(!swiper.enabled) return;
const {
rtlTranslate: rtl
}=swiper;
let e=event;
if(e.originalEvent) e=e.originalEvent;
const kc=e.keyCode||e.charCode;
const pageUpDown=swiper.params.keyboard.pageUpDown;
const isPageUp=pageUpDown&&kc===33;
const isPageDown=pageUpDown&&kc===34;
const isArrowLeft=kc===37;
const isArrowRight=kc===39;
const isArrowUp=kc===38;
const isArrowDown=kc===40;
if(!swiper.allowSlideNext&&(swiper.isHorizontal()&&isArrowRight||swiper.isVertical()&&isArrowDown||isPageDown)){
return false;
}
if(!swiper.allowSlidePrev&&(swiper.isHorizontal()&&isArrowLeft||swiper.isVertical()&&isArrowUp||isPageUp)){
return false;
}
if(e.shiftKey||e.altKey||e.ctrlKey||e.metaKey){
return undefined;
}
if(document.activeElement&&document.activeElement.nodeName&&(document.activeElement.nodeName.toLowerCase()==='input'||document.activeElement.nodeName.toLowerCase()==='textarea')){
return undefined;
}
if(swiper.params.keyboard.onlyInViewport&&(isPageUp||isPageDown||isArrowLeft||isArrowRight||isArrowUp||isArrowDown)){
let inView=false;
if(swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0&&swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length===0){
return undefined;
}
const $el=swiper.$el;
const swiperWidth=$el[0].clientWidth;
const swiperHeight=$el[0].clientHeight;
const windowWidth=window.innerWidth;
const windowHeight=window.innerHeight;
const swiperOffset=swiper.$el.offset();
if(rtl) swiperOffset.left -=swiper.$el[0].scrollLeft;
const swiperCoord=[[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];
for (let i=0; i < swiperCoord.length; i +=1){
const point=swiperCoord[i];
if(point[0] >=0&&point[0] <=windowWidth&&point[1] >=0&&point[1] <=windowHeight){
if(point[0]===0&&point[1]===0) continue;
inView=true;
}}
if(!inView) return undefined;
}
if(swiper.isHorizontal()){
if(isPageUp||isPageDown||isArrowLeft||isArrowRight){
if(e.preventDefault) e.preventDefault();else e.returnValue=false;
}
if((isPageDown||isArrowRight)&&!rtl||(isPageUp||isArrowLeft)&&rtl) swiper.slideNext();
if((isPageUp||isArrowLeft)&&!rtl||(isPageDown||isArrowRight)&&rtl) swiper.slidePrev();
}else{
if(isPageUp||isPageDown||isArrowUp||isArrowDown){
if(e.preventDefault) e.preventDefault();else e.returnValue=false;
}
if(isPageDown||isArrowDown) swiper.slideNext();
if(isPageUp||isArrowUp) swiper.slidePrev();
}
emit('keyPress', kc);
return undefined;
}
function enable(){
if(swiper.keyboard.enabled) return;
$(document).on('keydown', handle);
swiper.keyboard.enabled=true;
}
function disable(){
if(!swiper.keyboard.enabled) return;
$(document).off('keydown', handle);
swiper.keyboard.enabled=false;
}
on('init', ()=> {
if(swiper.params.keyboard.enabled){
enable();
}});
on('destroy', ()=> {
if(swiper.keyboard.enabled){
disable();
}});
Object.assign(swiper.keyboard, {
enable,
disable
});
}
function Mousewheel(_ref){
let {
swiper,
extendParams,
on,
emit
}=_ref;
const window=getWindow();
extendParams({
mousewheel: {
enabled: false,
releaseOnEdges: false,
invert: false,
forceToAxis: false,
sensitivity: 1,
eventsTarget: 'container',
thresholdDelta: null,
thresholdTime: null
}});
swiper.mousewheel={
enabled: false
};
let timeout;
let lastScrollTime=now();
let lastEventBeforeSnap;
const recentWheelEvents=[];
function normalize(e){
const PIXEL_STEP=10;
const LINE_HEIGHT=40;
const PAGE_HEIGHT=800;
let sX=0;
let sY=0;
let pX=0;
let pY=0;
if('detail' in e){
sY=e.detail;
}
if('wheelDelta' in e){
sY=-e.wheelDelta / 120;
}
if('wheelDeltaY' in e){
sY=-e.wheelDeltaY / 120;
}
if('wheelDeltaX' in e){
sX=-e.wheelDeltaX / 120;
}
if('axis' in e&&e.axis===e.HORIZONTAL_AXIS){
sX=sY;
sY=0;
}
pX=sX * PIXEL_STEP;
pY=sY * PIXEL_STEP;
if('deltaY' in e){
pY=e.deltaY;
}
if('deltaX' in e){
pX=e.deltaX;
}
if(e.shiftKey&&!pX){
pX=pY;
pY=0;
}
if((pX||pY)&&e.deltaMode){
if(e.deltaMode===1){
pX *=LINE_HEIGHT;
pY *=LINE_HEIGHT;
}else{
pX *=PAGE_HEIGHT;
pY *=PAGE_HEIGHT;
}}
if(pX&&!sX){
sX=pX < 1 ? -1:1;
}
if(pY&&!sY){
sY=pY < 1 ? -1:1;
}
return {
spinX: sX,
spinY: sY,
pixelX: pX,
pixelY: pY
};}
function handleMouseEnter(){
if(!swiper.enabled) return;
swiper.mouseEntered=true;
}
function handleMouseLeave(){
if(!swiper.enabled) return;
swiper.mouseEntered=false;
}
function animateSlider(newEvent){
if(swiper.params.mousewheel.thresholdDelta&&newEvent.delta < swiper.params.mousewheel.thresholdDelta){
return false;
}
if(swiper.params.mousewheel.thresholdTime&&now() - lastScrollTime < swiper.params.mousewheel.thresholdTime){
return false;
}
if(newEvent.delta >=6&&now() - lastScrollTime < 60){
return true;
}
if(newEvent.direction < 0){
if((!swiper.isEnd||swiper.params.loop)&&!swiper.animating){
swiper.slideNext();
emit('scroll', newEvent.raw);
}}else if((!swiper.isBeginning||swiper.params.loop)&&!swiper.animating){
swiper.slidePrev();
emit('scroll', newEvent.raw);
}
lastScrollTime=new window.Date().getTime();
return false;
}
function releaseScroll(newEvent){
const params=swiper.params.mousewheel;
if(newEvent.direction < 0){
if(swiper.isEnd&&!swiper.params.loop&&params.releaseOnEdges){
return true;
}}else if(swiper.isBeginning&&!swiper.params.loop&&params.releaseOnEdges){
return true;
}
return false;
}
function handle(event){
let e=event;
let disableParentSwiper=true;
if(!swiper.enabled) return;
const params=swiper.params.mousewheel;
if(swiper.params.cssMode){
e.preventDefault();
}
let target=swiper.$el;
if(swiper.params.mousewheel.eventsTarget!=='container'){
target=$(swiper.params.mousewheel.eventsTarget);
}
if(!swiper.mouseEntered&&!target[0].contains(e.target)&&!params.releaseOnEdges) return true;
if(e.originalEvent) e=e.originalEvent;
let delta=0;
const rtlFactor=swiper.rtlTranslate ? -1:1;
const data=normalize(e);
if(params.forceToAxis){
if(swiper.isHorizontal()){
if(Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta=-data.pixelX * rtlFactor;else return true;
}else if(Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta=-data.pixelY;else return true;
}else{
delta=Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor:-data.pixelY;
}
if(delta===0) return true;
if(params.invert) delta=-delta;
let positions=swiper.getTranslate() + delta * params.sensitivity;
if(positions >=swiper.minTranslate()) positions=swiper.minTranslate();
if(positions <=swiper.maxTranslate()) positions=swiper.maxTranslate();
disableParentSwiper=swiper.params.loop ? true:!(positions===swiper.minTranslate()||positions===swiper.maxTranslate());
if(disableParentSwiper&&swiper.params.nested) e.stopPropagation();
if(!swiper.params.freeMode||!swiper.params.freeMode.enabled){
const newEvent={
time: now(),
delta: Math.abs(delta),
direction: Math.sign(delta),
raw: event
};
if(recentWheelEvents.length >=2){
recentWheelEvents.shift();
}
const prevEvent=recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1]:undefined;
recentWheelEvents.push(newEvent);
if(prevEvent){
if(newEvent.direction!==prevEvent.direction||newEvent.delta > prevEvent.delta||newEvent.time > prevEvent.time + 150){
animateSlider(newEvent);
}}else{
animateSlider(newEvent);
}
if(releaseScroll(newEvent)){
return true;
}}else{
const newEvent={
time: now(),
delta: Math.abs(delta),
direction: Math.sign(delta)
};
const ignoreWheelEvents=lastEventBeforeSnap&&newEvent.time < lastEventBeforeSnap.time + 500&&newEvent.delta <=lastEventBeforeSnap.delta&&newEvent.direction===lastEventBeforeSnap.direction;
if(!ignoreWheelEvents){
lastEventBeforeSnap=undefined;
if(swiper.params.loop){
swiper.loopFix();
}
let position=swiper.getTranslate() + delta * params.sensitivity;
const wasBeginning=swiper.isBeginning;
const wasEnd=swiper.isEnd;
if(position >=swiper.minTranslate()) position=swiper.minTranslate();
if(position <=swiper.maxTranslate()) position=swiper.maxTranslate();
swiper.setTransition(0);
swiper.setTranslate(position);
swiper.updateProgress();
swiper.updateActiveIndex();
swiper.updateSlidesClasses();
if(!wasBeginning&&swiper.isBeginning||!wasEnd&&swiper.isEnd){
swiper.updateSlidesClasses();
}
if(swiper.params.freeMode.sticky){
clearTimeout(timeout);
timeout=undefined;
if(recentWheelEvents.length >=15){
recentWheelEvents.shift();
}
const prevEvent=recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1]:undefined;
const firstEvent=recentWheelEvents[0];
recentWheelEvents.push(newEvent);
if(prevEvent&&(newEvent.delta > prevEvent.delta||newEvent.direction!==prevEvent.direction)){
recentWheelEvents.splice(0);
}else if(recentWheelEvents.length >=15&&newEvent.time - firstEvent.time < 500&&firstEvent.delta - newEvent.delta >=1&&newEvent.delta <=6){
const snapToThreshold=delta > 0 ? 0.8:0.2;
lastEventBeforeSnap=newEvent;
recentWheelEvents.splice(0);
timeout=nextTick(()=> {
swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);
}, 0);
}
if(!timeout){
timeout=nextTick(()=> {
const snapToThreshold=0.5;
lastEventBeforeSnap=newEvent;
recentWheelEvents.splice(0);
swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);
}, 500);
}}
if(!ignoreWheelEvents) emit('scroll', e);
if(swiper.params.autoplay&&swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();
if(position===swiper.minTranslate()||position===swiper.maxTranslate()) return true;
}}
if(e.preventDefault) e.preventDefault();else e.returnValue=false;
return false;
}
function events(method){
let target=swiper.$el;
if(swiper.params.mousewheel.eventsTarget!=='container'){
target=$(swiper.params.mousewheel.eventsTarget);
}
target[method]('mouseenter', handleMouseEnter);
target[method]('mouseleave', handleMouseLeave);
target[method]('wheel', handle);
}
function enable(){
if(swiper.params.cssMode){
swiper.wrapperEl.removeEventListener('wheel', handle);
return true;
}
if(swiper.mousewheel.enabled) return false;
events('on');
swiper.mousewheel.enabled=true;
return true;
}
function disable(){
if(swiper.params.cssMode){
swiper.wrapperEl.addEventListener(event, handle);
return true;
}
if(!swiper.mousewheel.enabled) return false;
events('off');
swiper.mousewheel.enabled=false;
return true;
}
on('init', ()=> {
if(!swiper.params.mousewheel.enabled&&swiper.params.cssMode){
disable();
}
if(swiper.params.mousewheel.enabled) enable();
});
on('destroy', ()=> {
if(swiper.params.cssMode){
enable();
}
if(swiper.mousewheel.enabled) disable();
});
Object.assign(swiper.mousewheel, {
enable,
disable
});
}
function createElementIfNotDefined(swiper, originalParams, params, checkProps){
const document=getDocument();
if(swiper.params.createElements){
Object.keys(checkProps).forEach(key=> {
if(!params[key]&&params.auto===true){
let element=swiper.$el.children(`.${checkProps[key]}`)[0];
if(!element){
element=document.createElement('div');
element.className=checkProps[key];
swiper.$el.append(element);
}
params[key]=element;
originalParams[key]=element;
}});
}
return params;
}
function Navigation(_ref){
let {
swiper,
extendParams,
on,
emit
}=_ref;
extendParams({
navigation: {
nextEl: null,
prevEl: null,
hideOnClick: false,
disabledClass: 'swiper-button-disabled',
hiddenClass: 'swiper-button-hidden',
lockClass: 'swiper-button-lock',
navigationDisabledClass: 'swiper-navigation-disabled'
}});
swiper.navigation={
nextEl: null,
$nextEl: null,
prevEl: null,
$prevEl: null
};
function getEl(el){
let $el;
if(el){
$el=$(el);
if(swiper.params.uniqueNavElements&&typeof el==='string'&&$el.length > 1&&swiper.$el.find(el).length===1){
$el=swiper.$el.find(el);
}}
return $el;
}
function toggleEl($el, disabled){
const params=swiper.params.navigation;
if($el&&$el.length > 0){
$el[disabled ? 'addClass':'removeClass'](params.disabledClass);
if($el[0]&&$el[0].tagName==='BUTTON') $el[0].disabled=disabled;
if(swiper.params.watchOverflow&&swiper.enabled){
$el[swiper.isLocked ? 'addClass':'removeClass'](params.lockClass);
}}
}
function update(){
if(swiper.params.loop) return;
const {
$nextEl,
$prevEl
}=swiper.navigation;
toggleEl($prevEl, swiper.isBeginning&&!swiper.params.rewind);
toggleEl($nextEl, swiper.isEnd&&!swiper.params.rewind);
}
function onPrevClick(e){
e.preventDefault();
if(swiper.isBeginning&&!swiper.params.loop&&!swiper.params.rewind) return;
swiper.slidePrev();
emit('navigationPrev');
}
function onNextClick(e){
e.preventDefault();
if(swiper.isEnd&&!swiper.params.loop&&!swiper.params.rewind) return;
swiper.slideNext();
emit('navigationNext');
}
function init(){
const params=swiper.params.navigation;
swiper.params.navigation=createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {
nextEl: 'swiper-button-next',
prevEl: 'swiper-button-prev'
});
if(!(params.nextEl||params.prevEl)) return;
const $nextEl=getEl(params.nextEl);
const $prevEl=getEl(params.prevEl);
if($nextEl&&$nextEl.length > 0){
$nextEl.on('click', onNextClick);
}
if($prevEl&&$prevEl.length > 0){
$prevEl.on('click', onPrevClick);
}
Object.assign(swiper.navigation, {
$nextEl,
nextEl: $nextEl&&$nextEl[0],
$prevEl,
prevEl: $prevEl&&$prevEl[0]
});
if(!swiper.enabled){
if($nextEl) $nextEl.addClass(params.lockClass);
if($prevEl) $prevEl.addClass(params.lockClass);
}}
function destroy(){
const {
$nextEl,
$prevEl
}=swiper.navigation;
if($nextEl&&$nextEl.length){
$nextEl.off('click', onNextClick);
$nextEl.removeClass(swiper.params.navigation.disabledClass);
}
if($prevEl&&$prevEl.length){
$prevEl.off('click', onPrevClick);
$prevEl.removeClass(swiper.params.navigation.disabledClass);
}}
on('init', ()=> {
if(swiper.params.navigation.enabled===false){
disable();
}else{
init();
update();
}});
on('toEdge fromEdge lock unlock', ()=> {
update();
});
on('destroy', ()=> {
destroy();
});
on('enable disable', ()=> {
const {
$nextEl,
$prevEl
}=swiper.navigation;
if($nextEl){
$nextEl[swiper.enabled ? 'removeClass':'addClass'](swiper.params.navigation.lockClass);
}
if($prevEl){
$prevEl[swiper.enabled ? 'removeClass':'addClass'](swiper.params.navigation.lockClass);
}});
on('click', (_s, e)=> {
const {
$nextEl,
$prevEl
}=swiper.navigation;
const targetEl=e.target;
if(swiper.params.navigation.hideOnClick&&!$(targetEl).is($prevEl)&&!$(targetEl).is($nextEl)){
if(swiper.pagination&&swiper.params.pagination&&swiper.params.pagination.clickable&&(swiper.pagination.el===targetEl||swiper.pagination.el.contains(targetEl))) return;
let isHidden;
if($nextEl){
isHidden=$nextEl.hasClass(swiper.params.navigation.hiddenClass);
}else if($prevEl){
isHidden=$prevEl.hasClass(swiper.params.navigation.hiddenClass);
}
if(isHidden===true){
emit('navigationShow');
}else{
emit('navigationHide');
}
if($nextEl){
$nextEl.toggleClass(swiper.params.navigation.hiddenClass);
}
if($prevEl){
$prevEl.toggleClass(swiper.params.navigation.hiddenClass);
}}
});
const enable=()=> {
swiper.$el.removeClass(swiper.params.navigation.navigationDisabledClass);
init();
update();
};
const disable=()=> {
swiper.$el.addClass(swiper.params.navigation.navigationDisabledClass);
destroy();
};
Object.assign(swiper.navigation, {
enable,
disable,
update,
init,
destroy
});
}
function classesToSelector(classes){
if(classes===void 0){
classes='';
}
return `.${classes.trim().replace(/([\.:!\/])/g, '\\$1')
.replace(/ /g, '.')}`;
}
function Pagination(_ref){
let {
swiper,
extendParams,
on,
emit
}=_ref;
const pfx='swiper-pagination';
extendParams({
pagination: {
el: null,
bulletElement: 'span',
clickable: false,
hideOnClick: false,
renderBullet: null,
renderProgressbar: null,
renderFraction: null,
renderCustom: null,
progressbarOpposite: false,
type: 'bullets',
dynamicBullets: false,
dynamicMainBullets: 1,
formatFractionCurrent: number=> number,
formatFractionTotal: number=> number,
bulletClass: `${pfx}-bullet`,
bulletActiveClass: `${pfx}-bullet-active`,
modifierClass: `${pfx}-`,
currentClass: `${pfx}-current`,
totalClass: `${pfx}-total`,
hiddenClass: `${pfx}-hidden`,
progressbarFillClass: `${pfx}-progressbar-fill`,
progressbarOppositeClass: `${pfx}-progressbar-opposite`,
clickableClass: `${pfx}-clickable`,
lockClass: `${pfx}-lock`,
horizontalClass: `${pfx}-horizontal`,
verticalClass: `${pfx}-vertical`,
paginationDisabledClass: `${pfx}-disabled`
}});
swiper.pagination={
el: null,
$el: null,
bullets: []
};
let bulletSize;
let dynamicBulletIndex=0;
function isPaginationDisabled(){
return !swiper.params.pagination.el||!swiper.pagination.el||!swiper.pagination.$el||swiper.pagination.$el.length===0;
}
function setSideBullets($bulletEl, position){
const {
bulletActiveClass
}=swiper.params.pagination;
$bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);
}
function update(){
const rtl=swiper.rtl;
const params=swiper.params.pagination;
if(isPaginationDisabled()) return;
const slidesLength=swiper.virtual&&swiper.params.virtual.enabled ? swiper.virtual.slides.length:swiper.slides.length;
const $el=swiper.pagination.$el;
let current;
const total=swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup):swiper.snapGrid.length;
if(swiper.params.loop){
current=Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);
if(current > slidesLength - 1 - swiper.loopedSlides * 2){
current -=slidesLength - swiper.loopedSlides * 2;
}
if(current > total - 1) current -=total;
if(current < 0&&swiper.params.paginationType!=='bullets') current=total + current;
}else if(typeof swiper.snapIndex!=='undefined'){
current=swiper.snapIndex;
}else{
current=swiper.activeIndex||0;
}
if(params.type==='bullets'&&swiper.pagination.bullets&&swiper.pagination.bullets.length > 0){
const bullets=swiper.pagination.bullets;
let firstIndex;
let lastIndex;
let midIndex;
if(params.dynamicBullets){
bulletSize=bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth':'outerHeight'](true);
$el.css(swiper.isHorizontal() ? 'width':'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);
if(params.dynamicMainBullets > 1&&swiper.previousIndex!==undefined){
dynamicBulletIndex +=current - (swiper.previousIndex - swiper.loopedSlides||0);
if(dynamicBulletIndex > params.dynamicMainBullets - 1){
dynamicBulletIndex=params.dynamicMainBullets - 1;
}else if(dynamicBulletIndex < 0){
dynamicBulletIndex=0;
}}
firstIndex=Math.max(current - dynamicBulletIndex, 0);
lastIndex=firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);
midIndex=(lastIndex + firstIndex) / 2;
}
bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix=> `${params.bulletActiveClass}${suffix}`).join(' '));
if($el.length > 1){
bullets.each(bullet=> {
const $bullet=$(bullet);
const bulletIndex=$bullet.index();
if(bulletIndex===current){
$bullet.addClass(params.bulletActiveClass);
}
if(params.dynamicBullets){
if(bulletIndex >=firstIndex&&bulletIndex <=lastIndex){
$bullet.addClass(`${params.bulletActiveClass}-main`);
}
if(bulletIndex===firstIndex){
setSideBullets($bullet, 'prev');
}
if(bulletIndex===lastIndex){
setSideBullets($bullet, 'next');
}}
});
}else{
const $bullet=bullets.eq(current);
const bulletIndex=$bullet.index();
$bullet.addClass(params.bulletActiveClass);
if(params.dynamicBullets){
const $firstDisplayedBullet=bullets.eq(firstIndex);
const $lastDisplayedBullet=bullets.eq(lastIndex);
for (let i=firstIndex; i <=lastIndex; i +=1){
bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);
}
if(swiper.params.loop){
if(bulletIndex >=bullets.length){
for (let i=params.dynamicMainBullets; i >=0; i -=1){
bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);
}
bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);
}else{
setSideBullets($firstDisplayedBullet, 'prev');
setSideBullets($lastDisplayedBullet, 'next');
}}else{
setSideBullets($firstDisplayedBullet, 'prev');
setSideBullets($lastDisplayedBullet, 'next');
}}
}
if(params.dynamicBullets){
const dynamicBulletsLength=Math.min(bullets.length, params.dynamicMainBullets + 4);
const bulletsOffset=(bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;
const offsetProp=rtl ? 'right':'left';
bullets.css(swiper.isHorizontal() ? offsetProp:'top', `${bulletsOffset}px`);
}}
if(params.type==='fraction'){
$el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));
$el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));
}
if(params.type==='progressbar'){
let progressbarDirection;
if(params.progressbarOpposite){
progressbarDirection=swiper.isHorizontal() ? 'vertical':'horizontal';
}else{
progressbarDirection=swiper.isHorizontal() ? 'horizontal':'vertical';
}
const scale=(current + 1) / total;
let scaleX=1;
let scaleY=1;
if(progressbarDirection==='horizontal'){
scaleX=scale;
}else{
scaleY=scale;
}
$el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);
}
if(params.type==='custom'&&params.renderCustom){
$el.html(params.renderCustom(swiper, current + 1, total));
emit('paginationRender', $el[0]);
}else{
emit('paginationUpdate', $el[0]);
}
if(swiper.params.watchOverflow&&swiper.enabled){
$el[swiper.isLocked ? 'addClass':'removeClass'](params.lockClass);
}}
function render(){
const params=swiper.params.pagination;
if(isPaginationDisabled()) return;
const slidesLength=swiper.virtual&&swiper.params.virtual.enabled ? swiper.virtual.slides.length:swiper.slides.length;
const $el=swiper.pagination.$el;
let paginationHTML='';
if(params.type==='bullets'){
let numberOfBullets=swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup):swiper.snapGrid.length;
if(swiper.params.freeMode&&swiper.params.freeMode.enabled&&!swiper.params.loop&&numberOfBullets > slidesLength){
numberOfBullets=slidesLength;
}
for (let i=0; i < numberOfBullets; i +=1){
if(params.renderBullet){
paginationHTML +=params.renderBullet.call(swiper, i, params.bulletClass);
}else{
paginationHTML +=`<${params.bulletElement} class="${params.bulletClass}"></${params.bulletElement}>`;
}}
$el.html(paginationHTML);
swiper.pagination.bullets=$el.find(classesToSelector(params.bulletClass));
}
if(params.type==='fraction'){
if(params.renderFraction){
paginationHTML=params.renderFraction.call(swiper, params.currentClass, params.totalClass);
}else{
paginationHTML=`<span class="${params.currentClass}"></span>` + ' / ' + `<span class="${params.totalClass}"></span>`;
}
$el.html(paginationHTML);
}
if(params.type==='progressbar'){
if(params.renderProgressbar){
paginationHTML=params.renderProgressbar.call(swiper, params.progressbarFillClass);
}else{
paginationHTML=`<span class="${params.progressbarFillClass}"></span>`;
}
$el.html(paginationHTML);
}
if(params.type!=='custom'){
emit('paginationRender', swiper.pagination.$el[0]);
}}
function init(){
swiper.params.pagination=createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {
el: 'swiper-pagination'
});
const params=swiper.params.pagination;
if(!params.el) return;
let $el=$(params.el);
if($el.length===0) return;
if(swiper.params.uniqueNavElements&&typeof params.el==='string'&&$el.length > 1){
$el=swiper.$el.find(params.el);
if($el.length > 1){
$el=$el.filter(el=> {
if($(el).parents('.swiper')[0]!==swiper.el) return false;
return true;
});
}}
if(params.type==='bullets'&&params.clickable){
$el.addClass(params.clickableClass);
}
$el.addClass(params.modifierClass + params.type);
$el.addClass(swiper.isHorizontal() ? params.horizontalClass:params.verticalClass);
if(params.type==='bullets'&&params.dynamicBullets){
$el.addClass(`${params.modifierClass}${params.type}-dynamic`);
dynamicBulletIndex=0;
if(params.dynamicMainBullets < 1){
params.dynamicMainBullets=1;
}}
if(params.type==='progressbar'&&params.progressbarOpposite){
$el.addClass(params.progressbarOppositeClass);
}
if(params.clickable){
$el.on('click', classesToSelector(params.bulletClass), function onClick(e){
e.preventDefault();
let index=$(this).index() * swiper.params.slidesPerGroup;
if(swiper.params.loop) index +=swiper.loopedSlides;
swiper.slideTo(index);
});
}
Object.assign(swiper.pagination, {
$el,
el: $el[0]
});
if(!swiper.enabled){
$el.addClass(params.lockClass);
}}
function destroy(){
const params=swiper.params.pagination;
if(isPaginationDisabled()) return;
const $el=swiper.pagination.$el;
$el.removeClass(params.hiddenClass);
$el.removeClass(params.modifierClass + params.type);
$el.removeClass(swiper.isHorizontal() ? params.horizontalClass:params.verticalClass);
if(swiper.pagination.bullets&&swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);
if(params.clickable){
$el.off('click', classesToSelector(params.bulletClass));
}}
on('init', ()=> {
if(swiper.params.pagination.enabled===false){
disable();
}else{
init();
render();
update();
}});
on('activeIndexChange', ()=> {
if(swiper.params.loop){
update();
}else if(typeof swiper.snapIndex==='undefined'){
update();
}});
on('snapIndexChange', ()=> {
if(!swiper.params.loop){
update();
}});
on('slidesLengthChange', ()=> {
if(swiper.params.loop){
render();
update();
}});
on('snapGridLengthChange', ()=> {
if(!swiper.params.loop){
render();
update();
}});
on('destroy', ()=> {
destroy();
});
on('enable disable', ()=> {
const {
$el
}=swiper.pagination;
if($el){
$el[swiper.enabled ? 'removeClass':'addClass'](swiper.params.pagination.lockClass);
}});
on('lock unlock', ()=> {
update();
});
on('click', (_s, e)=> {
const targetEl=e.target;
const {
$el
}=swiper.pagination;
if(swiper.params.pagination.el&&swiper.params.pagination.hideOnClick&&$el&&$el.length > 0&&!$(targetEl).hasClass(swiper.params.pagination.bulletClass)){
if(swiper.navigation&&(swiper.navigation.nextEl&&targetEl===swiper.navigation.nextEl||swiper.navigation.prevEl&&targetEl===swiper.navigation.prevEl)) return;
const isHidden=$el.hasClass(swiper.params.pagination.hiddenClass);
if(isHidden===true){
emit('paginationShow');
}else{
emit('paginationHide');
}
$el.toggleClass(swiper.params.pagination.hiddenClass);
}});
const enable=()=> {
swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);
if(swiper.pagination.$el){
swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);
}
init();
render();
update();
};
const disable=()=> {
swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);
if(swiper.pagination.$el){
swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);
}
destroy();
};
Object.assign(swiper.pagination, {
enable,
disable,
render,
update,
init,
destroy
});
}
function Scrollbar(_ref){
let {
swiper,
extendParams,
on,
emit
}=_ref;
const document=getDocument();
let isTouched=false;
let timeout=null;
let dragTimeout=null;
let dragStartPos;
let dragSize;
let trackSize;
let divider;
extendParams({
scrollbar: {
el: null,
dragSize: 'auto',
hide: false,
draggable: false,
snapOnRelease: true,
lockClass: 'swiper-scrollbar-lock',
dragClass: 'swiper-scrollbar-drag',
scrollbarDisabledClass: 'swiper-scrollbar-disabled',
horizontalClass: `swiper-scrollbar-horizontal`,
verticalClass: `swiper-scrollbar-vertical`
}});
swiper.scrollbar={
el: null,
dragEl: null,
$el: null,
$dragEl: null
};
function setTranslate(){
if(!swiper.params.scrollbar.el||!swiper.scrollbar.el) return;
const {
scrollbar,
rtlTranslate: rtl,
progress
}=swiper;
const {
$dragEl,
$el
}=scrollbar;
const params=swiper.params.scrollbar;
let newSize=dragSize;
let newPos=(trackSize - dragSize) * progress;
if(rtl){
newPos=-newPos;
if(newPos > 0){
newSize=dragSize - newPos;
newPos=0;
}else if(-newPos + dragSize > trackSize){
newSize=trackSize + newPos;
}}else if(newPos < 0){
newSize=dragSize + newPos;
newPos=0;
}else if(newPos + dragSize > trackSize){
newSize=trackSize - newPos;
}
if(swiper.isHorizontal()){
$dragEl.transform(`translate3d(${newPos}px, 0, 0)`);
$dragEl[0].style.width=`${newSize}px`;
}else{
$dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);
$dragEl[0].style.height=`${newSize}px`;
}
if(params.hide){
clearTimeout(timeout);
$el[0].style.opacity=1;
timeout=setTimeout(()=> {
$el[0].style.opacity=0;
$el.transition(400);
}, 1000);
}}
function setTransition(duration){
if(!swiper.params.scrollbar.el||!swiper.scrollbar.el) return;
swiper.scrollbar.$dragEl.transition(duration);
}
function updateSize(){
if(!swiper.params.scrollbar.el||!swiper.scrollbar.el) return;
const {
scrollbar
}=swiper;
const {
$dragEl,
$el
}=scrollbar;
$dragEl[0].style.width='';
$dragEl[0].style.height='';
trackSize=swiper.isHorizontal() ? $el[0].offsetWidth:$el[0].offsetHeight;
divider=swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0]:0));
if(swiper.params.scrollbar.dragSize==='auto'){
dragSize=trackSize * divider;
}else{
dragSize=parseInt(swiper.params.scrollbar.dragSize, 10);
}
if(swiper.isHorizontal()){
$dragEl[0].style.width=`${dragSize}px`;
}else{
$dragEl[0].style.height=`${dragSize}px`;
}
if(divider >=1){
$el[0].style.display='none';
}else{
$el[0].style.display='';
}
if(swiper.params.scrollbar.hide){
$el[0].style.opacity=0;
}
if(swiper.params.watchOverflow&&swiper.enabled){
scrollbar.$el[swiper.isLocked ? 'addClass':'removeClass'](swiper.params.scrollbar.lockClass);
}}
function getPointerPosition(e){
if(swiper.isHorizontal()){
return e.type==='touchstart'||e.type==='touchmove' ? e.targetTouches[0].clientX:e.clientX;
}
return e.type==='touchstart'||e.type==='touchmove' ? e.targetTouches[0].clientY:e.clientY;
}
function setDragPosition(e){
const {
scrollbar,
rtlTranslate: rtl
}=swiper;
const {
$el
}=scrollbar;
let positionRatio;
positionRatio=(getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left':'top'] - (dragStartPos!==null ? dragStartPos:dragSize / 2)) / (trackSize - dragSize);
positionRatio=Math.max(Math.min(positionRatio, 1), 0);
if(rtl){
positionRatio=1 - positionRatio;
}
const position=swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;
swiper.updateProgress(position);
swiper.setTranslate(position);
swiper.updateActiveIndex();
swiper.updateSlidesClasses();
}
function onDragStart(e){
const params=swiper.params.scrollbar;
const {
scrollbar,
$wrapperEl
}=swiper;
const {
$el,
$dragEl
}=scrollbar;
isTouched=true;
dragStartPos=e.target===$dragEl[0]||e.target===$dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left':'top']:null;
e.preventDefault();
e.stopPropagation();
$wrapperEl.transition(100);
$dragEl.transition(100);
setDragPosition(e);
clearTimeout(dragTimeout);
$el.transition(0);
if(params.hide){
$el.css('opacity', 1);
}
if(swiper.params.cssMode){
swiper.$wrapperEl.css('scroll-snap-type', 'none');
}
emit('scrollbarDragStart', e);
}
function onDragMove(e){
const {
scrollbar,
$wrapperEl
}=swiper;
const {
$el,
$dragEl
}=scrollbar;
if(!isTouched) return;
if(e.preventDefault) e.preventDefault();else e.returnValue=false;
setDragPosition(e);
$wrapperEl.transition(0);
$el.transition(0);
$dragEl.transition(0);
emit('scrollbarDragMove', e);
}
function onDragEnd(e){
const params=swiper.params.scrollbar;
const {
scrollbar,
$wrapperEl
}=swiper;
const {
$el
}=scrollbar;
if(!isTouched) return;
isTouched=false;
if(swiper.params.cssMode){
swiper.$wrapperEl.css('scroll-snap-type', '');
$wrapperEl.transition('');
}
if(params.hide){
clearTimeout(dragTimeout);
dragTimeout=nextTick(()=> {
$el.css('opacity', 0);
$el.transition(400);
}, 1000);
}
emit('scrollbarDragEnd', e);
if(params.snapOnRelease){
swiper.slideToClosest();
}}
function events(method){
const {
scrollbar,
touchEventsTouch,
touchEventsDesktop,
params,
support
}=swiper;
const $el=scrollbar.$el;
if(!$el) return;
const target=$el[0];
const activeListener=support.passiveListener&&params.passiveListeners ? {
passive: false,
capture: false
}:false;
const passiveListener=support.passiveListener&&params.passiveListeners ? {
passive: true,
capture: false
}:false;
if(!target) return;
const eventMethod=method==='on' ? 'addEventListener':'removeEventListener';
if(!support.touch){
target[eventMethod](touchEventsDesktop.start, onDragStart, activeListener);
document[eventMethod](touchEventsDesktop.move, onDragMove, activeListener);
document[eventMethod](touchEventsDesktop.end, onDragEnd, passiveListener);
}else{
target[eventMethod](touchEventsTouch.start, onDragStart, activeListener);
target[eventMethod](touchEventsTouch.move, onDragMove, activeListener);
target[eventMethod](touchEventsTouch.end, onDragEnd, passiveListener);
}}
function enableDraggable(){
if(!swiper.params.scrollbar.el||!swiper.scrollbar.el) return;
events('on');
}
function disableDraggable(){
if(!swiper.params.scrollbar.el||!swiper.scrollbar.el) return;
events('off');
}
function init(){
const {
scrollbar,
$el: $swiperEl
}=swiper;
swiper.params.scrollbar=createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {
el: 'swiper-scrollbar'
});
const params=swiper.params.scrollbar;
if(!params.el) return;
let $el=$(params.el);
if(swiper.params.uniqueNavElements&&typeof params.el==='string'&&$el.length > 1&&$swiperEl.find(params.el).length===1){
$el=$swiperEl.find(params.el);
}
$el.addClass(swiper.isHorizontal() ? params.horizontalClass:params.verticalClass);
let $dragEl=$el.find(`.${swiper.params.scrollbar.dragClass}`);
if($dragEl.length===0){
$dragEl=$(`<div class="${swiper.params.scrollbar.dragClass}"></div>`);
$el.append($dragEl);
}
Object.assign(scrollbar, {
$el,
el: $el[0],
$dragEl,
dragEl: $dragEl[0]
});
if(params.draggable){
enableDraggable();
}
if($el){
$el[swiper.enabled ? 'removeClass':'addClass'](swiper.params.scrollbar.lockClass);
}}
function destroy(){
const params=swiper.params.scrollbar;
const $el=swiper.scrollbar.$el;
if($el){
$el.removeClass(swiper.isHorizontal() ? params.horizontalClass:params.verticalClass);
}
disableDraggable();
}
on('init', ()=> {
if(swiper.params.scrollbar.enabled===false){
disable();
}else{
init();
updateSize();
setTranslate();
}});
on('update resize observerUpdate lock unlock', ()=> {
updateSize();
});
on('setTranslate', ()=> {
setTranslate();
});
on('setTransition', (_s, duration)=> {
setTransition(duration);
});
on('enable disable', ()=> {
const {
$el
}=swiper.scrollbar;
if($el){
$el[swiper.enabled ? 'removeClass':'addClass'](swiper.params.scrollbar.lockClass);
}});
on('destroy', ()=> {
destroy();
});
const enable=()=> {
swiper.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);
if(swiper.scrollbar.$el){
swiper.scrollbar.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);
}
init();
updateSize();
setTranslate();
};
const disable=()=> {
swiper.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);
if(swiper.scrollbar.$el){
swiper.scrollbar.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);
}
destroy();
};
Object.assign(swiper.scrollbar, {
enable,
disable,
updateSize,
setTranslate,
init,
destroy
});
}
function Parallax(_ref){
let {
swiper,
extendParams,
on
}=_ref;
extendParams({
parallax: {
enabled: false
}});
const setTransform=(el, progress)=> {
const {
rtl
}=swiper;
const $el=$(el);
const rtlFactor=rtl ? -1:1;
const p=$el.attr('data-swiper-parallax')||'0';
let x=$el.attr('data-swiper-parallax-x');
let y=$el.attr('data-swiper-parallax-y');
const scale=$el.attr('data-swiper-parallax-scale');
const opacity=$el.attr('data-swiper-parallax-opacity');
if(x||y){
x=x||'0';
y=y||'0';
}else if(swiper.isHorizontal()){
x=p;
y='0';
}else{
y=p;
x='0';
}
if(x.indexOf('%') >=0){
x=`${parseInt(x, 10) * progress * rtlFactor}%`;
}else{
x=`${x * progress * rtlFactor}px`;
}
if(y.indexOf('%') >=0){
y=`${parseInt(y, 10) * progress}%`;
}else{
y=`${y * progress}px`;
}
if(typeof opacity!=='undefined'&&opacity!==null){
const currentOpacity=opacity - (opacity - 1) * (1 - Math.abs(progress));
$el[0].style.opacity=currentOpacity;
}
if(typeof scale==='undefined'||scale===null){
$el.transform(`translate3d(${x}, ${y}, 0px)`);
}else{
const currentScale=scale - (scale - 1) * (1 - Math.abs(progress));
$el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);
}};
const setTranslate=()=> {
const {
$el,
slides,
progress,
snapGrid
}=swiper;
$el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el=> {
setTransform(el, progress);
});
slides.each((slideEl, slideIndex)=> {
let slideProgress=slideEl.progress;
if(swiper.params.slidesPerGroup > 1&&swiper.params.slidesPerView!=='auto'){
slideProgress +=Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);
}
slideProgress=Math.min(Math.max(slideProgress, -1), 1);
$(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el=> {
setTransform(el, slideProgress);
});
});
};
const setTransition=function (duration){
if(duration===void 0){
duration=swiper.params.speed;
}
const {
$el
}=swiper;
$el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(parallaxEl=> {
const $parallaxEl=$(parallaxEl);
let parallaxDuration=parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10)||duration;
if(duration===0) parallaxDuration=0;
$parallaxEl.transition(parallaxDuration);
});
};
on('beforeInit', ()=> {
if(!swiper.params.parallax.enabled) return;
swiper.params.watchSlidesProgress=true;
swiper.originalParams.watchSlidesProgress=true;
});
on('init', ()=> {
if(!swiper.params.parallax.enabled) return;
setTranslate();
});
on('setTranslate', ()=> {
if(!swiper.params.parallax.enabled) return;
setTranslate();
});
on('setTransition', (_swiper, duration)=> {
if(!swiper.params.parallax.enabled) return;
setTransition(duration);
});
}
function Zoom(_ref){
let {
swiper,
extendParams,
on,
emit
}=_ref;
const window=getWindow();
extendParams({
zoom: {
enabled: false,
maxRatio: 3,
minRatio: 1,
toggle: true,
containerClass: 'swiper-zoom-container',
zoomedSlideClass: 'swiper-slide-zoomed'
}});
swiper.zoom={
enabled: false
};
let currentScale=1;
let isScaling=false;
let gesturesEnabled;
let fakeGestureTouched;
let fakeGestureMoved;
const gesture={
$slideEl: undefined,
slideWidth: undefined,
slideHeight: undefined,
$imageEl: undefined,
$imageWrapEl: undefined,
maxRatio: 3
};
const image={
isTouched: undefined,
isMoved: undefined,
currentX: undefined,
currentY: undefined,
minX: undefined,
minY: undefined,
maxX: undefined,
maxY: undefined,
width: undefined,
height: undefined,
startX: undefined,
startY: undefined,
touchesStart: {},
touchesCurrent: {}};
const velocity={
x: undefined,
y: undefined,
prevPositionX: undefined,
prevPositionY: undefined,
prevTime: undefined
};
let scale=1;
Object.defineProperty(swiper.zoom, 'scale', {
get(){
return scale;
},
set(value){
if(scale!==value){
const imageEl=gesture.$imageEl ? gesture.$imageEl[0]:undefined;
const slideEl=gesture.$slideEl ? gesture.$slideEl[0]:undefined;
emit('zoomChange', value, imageEl, slideEl);
}
scale=value;
}});
function getDistanceBetweenTouches(e){
if(e.targetTouches.length < 2) return 1;
const x1=e.targetTouches[0].pageX;
const y1=e.targetTouches[0].pageY;
const x2=e.targetTouches[1].pageX;
const y2=e.targetTouches[1].pageY;
const distance=Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);
return distance;
}
function onGestureStart(e){
const support=swiper.support;
const params=swiper.params.zoom;
fakeGestureTouched=false;
fakeGestureMoved=false;
if(!support.gestures){
if(e.type!=='touchstart'||e.type==='touchstart'&&e.targetTouches.length < 2){
return;
}
fakeGestureTouched=true;
gesture.scaleStart=getDistanceBetweenTouches(e);
}
if(!gesture.$slideEl||!gesture.$slideEl.length){
gesture.$slideEl=$(e.target).closest(`.${swiper.params.slideClass}`);
if(gesture.$slideEl.length===0) gesture.$slideEl=swiper.slides.eq(swiper.activeIndex);
gesture.$imageEl=gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);
gesture.$imageWrapEl=gesture.$imageEl.parent(`.${params.containerClass}`);
gesture.maxRatio=gesture.$imageWrapEl.attr('data-swiper-zoom')||params.maxRatio;
if(gesture.$imageWrapEl.length===0){
gesture.$imageEl=undefined;
return;
}}
if(gesture.$imageEl){
gesture.$imageEl.transition(0);
}
isScaling=true;
}
function onGestureChange(e){
const support=swiper.support;
const params=swiper.params.zoom;
const zoom=swiper.zoom;
if(!support.gestures){
if(e.type!=='touchmove'||e.type==='touchmove'&&e.targetTouches.length < 2){
return;
}
fakeGestureMoved=true;
gesture.scaleMove=getDistanceBetweenTouches(e);
}
if(!gesture.$imageEl||gesture.$imageEl.length===0){
if(e.type==='gesturechange') onGestureStart(e);
return;
}
if(support.gestures){
zoom.scale=e.scale * currentScale;
}else{
zoom.scale=gesture.scaleMove / gesture.scaleStart * currentScale;
}
if(zoom.scale > gesture.maxRatio){
zoom.scale=gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;
}
if(zoom.scale < params.minRatio){
zoom.scale=params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;
}
gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);
}
function onGestureEnd(e){
const device=swiper.device;
const support=swiper.support;
const params=swiper.params.zoom;
const zoom=swiper.zoom;
if(!support.gestures){
if(!fakeGestureTouched||!fakeGestureMoved){
return;
}
if(e.type!=='touchend'||e.type==='touchend'&&e.changedTouches.length < 2&&!device.android){
return;
}
fakeGestureTouched=false;
fakeGestureMoved=false;
}
if(!gesture.$imageEl||gesture.$imageEl.length===0) return;
zoom.scale=Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);
gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`);
currentScale=zoom.scale;
isScaling=false;
if(zoom.scale===1) gesture.$slideEl=undefined;
}
function onTouchStart(e){
const device=swiper.device;
if(!gesture.$imageEl||gesture.$imageEl.length===0) return;
if(image.isTouched) return;
if(device.android&&e.cancelable) e.preventDefault();
image.isTouched=true;
image.touchesStart.x=e.type==='touchstart' ? e.targetTouches[0].pageX:e.pageX;
image.touchesStart.y=e.type==='touchstart' ? e.targetTouches[0].pageY:e.pageY;
}
function onTouchMove(e){
const zoom=swiper.zoom;
if(!gesture.$imageEl||gesture.$imageEl.length===0) return;
swiper.allowClick=false;
if(!image.isTouched||!gesture.$slideEl) return;
if(!image.isMoved){
image.width=gesture.$imageEl[0].offsetWidth;
image.height=gesture.$imageEl[0].offsetHeight;
image.startX=getTranslate(gesture.$imageWrapEl[0], 'x')||0;
image.startY=getTranslate(gesture.$imageWrapEl[0], 'y')||0;
gesture.slideWidth=gesture.$slideEl[0].offsetWidth;
gesture.slideHeight=gesture.$slideEl[0].offsetHeight;
gesture.$imageWrapEl.transition(0);
}
const scaledWidth=image.width * zoom.scale;
const scaledHeight=image.height * zoom.scale;
if(scaledWidth < gesture.slideWidth&&scaledHeight < gesture.slideHeight) return;
image.minX=Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);
image.maxX=-image.minX;
image.minY=Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);
image.maxY=-image.minY;
image.touchesCurrent.x=e.type==='touchmove' ? e.targetTouches[0].pageX:e.pageX;
image.touchesCurrent.y=e.type==='touchmove' ? e.targetTouches[0].pageY:e.pageY;
if(!image.isMoved&&!isScaling){
if(swiper.isHorizontal()&&(Math.floor(image.minX)===Math.floor(image.startX)&&image.touchesCurrent.x < image.touchesStart.x||Math.floor(image.maxX)===Math.floor(image.startX)&&image.touchesCurrent.x > image.touchesStart.x)){
image.isTouched=false;
return;
}
if(!swiper.isHorizontal()&&(Math.floor(image.minY)===Math.floor(image.startY)&&image.touchesCurrent.y < image.touchesStart.y||Math.floor(image.maxY)===Math.floor(image.startY)&&image.touchesCurrent.y > image.touchesStart.y)){
image.isTouched=false;
return;
}}
if(e.cancelable){
e.preventDefault();
}
e.stopPropagation();
image.isMoved=true;
image.currentX=image.touchesCurrent.x - image.touchesStart.x + image.startX;
image.currentY=image.touchesCurrent.y - image.touchesStart.y + image.startY;
if(image.currentX < image.minX){
image.currentX=image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;
}
if(image.currentX > image.maxX){
image.currentX=image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;
}
if(image.currentY < image.minY){
image.currentY=image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;
}
if(image.currentY > image.maxY){
image.currentY=image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;
}
if(!velocity.prevPositionX) velocity.prevPositionX=image.touchesCurrent.x;
if(!velocity.prevPositionY) velocity.prevPositionY=image.touchesCurrent.y;
if(!velocity.prevTime) velocity.prevTime=Date.now();
velocity.x=(image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;
velocity.y=(image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;
if(Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x=0;
if(Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y=0;
velocity.prevPositionX=image.touchesCurrent.x;
velocity.prevPositionY=image.touchesCurrent.y;
velocity.prevTime=Date.now();
gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);
}
function onTouchEnd(){
const zoom=swiper.zoom;
if(!gesture.$imageEl||gesture.$imageEl.length===0) return;
if(!image.isTouched||!image.isMoved){
image.isTouched=false;
image.isMoved=false;
return;
}
image.isTouched=false;
image.isMoved=false;
let momentumDurationX=300;
let momentumDurationY=300;
const momentumDistanceX=velocity.x * momentumDurationX;
const newPositionX=image.currentX + momentumDistanceX;
const momentumDistanceY=velocity.y * momentumDurationY;
const newPositionY=image.currentY + momentumDistanceY;
if(velocity.x!==0) momentumDurationX=Math.abs((newPositionX - image.currentX) / velocity.x);
if(velocity.y!==0) momentumDurationY=Math.abs((newPositionY - image.currentY) / velocity.y);
const momentumDuration=Math.max(momentumDurationX, momentumDurationY);
image.currentX=newPositionX;
image.currentY=newPositionY;
const scaledWidth=image.width * zoom.scale;
const scaledHeight=image.height * zoom.scale;
image.minX=Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);
image.maxX=-image.minX;
image.minY=Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);
image.maxY=-image.minY;
image.currentX=Math.max(Math.min(image.currentX, image.maxX), image.minX);
image.currentY=Math.max(Math.min(image.currentY, image.maxY), image.minY);
gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);
}
function onTransitionEnd(){
const zoom=swiper.zoom;
if(gesture.$slideEl&&swiper.previousIndex!==swiper.activeIndex){
if(gesture.$imageEl){
gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');
}
if(gesture.$imageWrapEl){
gesture.$imageWrapEl.transform('translate3d(0,0,0)');
}
zoom.scale=1;
currentScale=1;
gesture.$slideEl=undefined;
gesture.$imageEl=undefined;
gesture.$imageWrapEl=undefined;
}}
function zoomIn(e){
const zoom=swiper.zoom;
const params=swiper.params.zoom;
if(!gesture.$slideEl){
if(e&&e.target){
gesture.$slideEl=$(e.target).closest(`.${swiper.params.slideClass}`);
}
if(!gesture.$slideEl){
if(swiper.params.virtual&&swiper.params.virtual.enabled&&swiper.virtual){
gesture.$slideEl=swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);
}else{
gesture.$slideEl=swiper.slides.eq(swiper.activeIndex);
}}
gesture.$imageEl=gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);
gesture.$imageWrapEl=gesture.$imageEl.parent(`.${params.containerClass}`);
}
if(!gesture.$imageEl||gesture.$imageEl.length===0||!gesture.$imageWrapEl||gesture.$imageWrapEl.length===0) return;
if(swiper.params.cssMode){
swiper.wrapperEl.style.overflow='hidden';
swiper.wrapperEl.style.touchAction='none';
}
gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);
let touchX;
let touchY;
let offsetX;
let offsetY;
let diffX;
let diffY;
let translateX;
let translateY;
let imageWidth;
let imageHeight;
let scaledWidth;
let scaledHeight;
let translateMinX;
let translateMinY;
let translateMaxX;
let translateMaxY;
let slideWidth;
let slideHeight;
if(typeof image.touchesStart.x==='undefined'&&e){
touchX=e.type==='touchend' ? e.changedTouches[0].pageX:e.pageX;
touchY=e.type==='touchend' ? e.changedTouches[0].pageY:e.pageY;
}else{
touchX=image.touchesStart.x;
touchY=image.touchesStart.y;
}
zoom.scale=gesture.$imageWrapEl.attr('data-swiper-zoom')||params.maxRatio;
currentScale=gesture.$imageWrapEl.attr('data-swiper-zoom')||params.maxRatio;
if(e){
slideWidth=gesture.$slideEl[0].offsetWidth;
slideHeight=gesture.$slideEl[0].offsetHeight;
offsetX=gesture.$slideEl.offset().left + window.scrollX;
offsetY=gesture.$slideEl.offset().top + window.scrollY;
diffX=offsetX + slideWidth / 2 - touchX;
diffY=offsetY + slideHeight / 2 - touchY;
imageWidth=gesture.$imageEl[0].offsetWidth;
imageHeight=gesture.$imageEl[0].offsetHeight;
scaledWidth=imageWidth * zoom.scale;
scaledHeight=imageHeight * zoom.scale;
translateMinX=Math.min(slideWidth / 2 - scaledWidth / 2, 0);
translateMinY=Math.min(slideHeight / 2 - scaledHeight / 2, 0);
translateMaxX=-translateMinX;
translateMaxY=-translateMinY;
translateX=diffX * zoom.scale;
translateY=diffY * zoom.scale;
if(translateX < translateMinX){
translateX=translateMinX;
}
if(translateX > translateMaxX){
translateX=translateMaxX;
}
if(translateY < translateMinY){
translateY=translateMinY;
}
if(translateY > translateMaxY){
translateY=translateMaxY;
}}else{
translateX=0;
translateY=0;
}
gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`);
gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);
}
function zoomOut(){
const zoom=swiper.zoom;
const params=swiper.params.zoom;
if(!gesture.$slideEl){
if(swiper.params.virtual&&swiper.params.virtual.enabled&&swiper.virtual){
gesture.$slideEl=swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);
}else{
gesture.$slideEl=swiper.slides.eq(swiper.activeIndex);
}
gesture.$imageEl=gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);
gesture.$imageWrapEl=gesture.$imageEl.parent(`.${params.containerClass}`);
}
if(!gesture.$imageEl||gesture.$imageEl.length===0||!gesture.$imageWrapEl||gesture.$imageWrapEl.length===0) return;
if(swiper.params.cssMode){
swiper.wrapperEl.style.overflow='';
swiper.wrapperEl.style.touchAction='';
}
zoom.scale=1;
currentScale=1;
gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');
gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');
gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);
gesture.$slideEl=undefined;
}
function zoomToggle(e){
const zoom=swiper.zoom;
if(zoom.scale&&zoom.scale!==1){
zoomOut();
}else{
zoomIn(e);
}}
function getListeners(){
const support=swiper.support;
const passiveListener=swiper.touchEvents.start==='touchstart'&&support.passiveListener&&swiper.params.passiveListeners ? {
passive: true,
capture: false
}:false;
const activeListenerWithCapture=support.passiveListener ? {
passive: false,
capture: true
}:true;
return {
passiveListener,
activeListenerWithCapture
};}
function getSlideSelector(){
return `.${swiper.params.slideClass}`;
}
function toggleGestures(method){
const {
passiveListener
}=getListeners();
const slideSelector=getSlideSelector();
swiper.$wrapperEl[method]('gesturestart', slideSelector, onGestureStart, passiveListener);
swiper.$wrapperEl[method]('gesturechange', slideSelector, onGestureChange, passiveListener);
swiper.$wrapperEl[method]('gestureend', slideSelector, onGestureEnd, passiveListener);
}
function enableGestures(){
if(gesturesEnabled) return;
gesturesEnabled=true;
toggleGestures('on');
}
function disableGestures(){
if(!gesturesEnabled) return;
gesturesEnabled=false;
toggleGestures('off');
}
function enable(){
const zoom=swiper.zoom;
if(zoom.enabled) return;
zoom.enabled=true;
const support=swiper.support;
const {
passiveListener,
activeListenerWithCapture
}=getListeners();
const slideSelector=getSlideSelector();
if(support.gestures){
swiper.$wrapperEl.on(swiper.touchEvents.start, enableGestures, passiveListener);
swiper.$wrapperEl.on(swiper.touchEvents.end, disableGestures, passiveListener);
}else if(swiper.touchEvents.start==='touchstart'){
swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);
swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);
swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);
if(swiper.touchEvents.cancel){
swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);
}}
swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture);
}
function disable(){
const zoom=swiper.zoom;
if(!zoom.enabled) return;
const support=swiper.support;
zoom.enabled=false;
const {
passiveListener,
activeListenerWithCapture
}=getListeners();
const slideSelector=getSlideSelector();
if(support.gestures){
swiper.$wrapperEl.off(swiper.touchEvents.start, enableGestures, passiveListener);
swiper.$wrapperEl.off(swiper.touchEvents.end, disableGestures, passiveListener);
}else if(swiper.touchEvents.start==='touchstart'){
swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);
swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);
swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);
if(swiper.touchEvents.cancel){
swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);
}}
swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture);
}
on('init', ()=> {
if(swiper.params.zoom.enabled){
enable();
}});
on('destroy', ()=> {
disable();
});
on('touchStart', (_s, e)=> {
if(!swiper.zoom.enabled) return;
onTouchStart(e);
});
on('touchEnd', (_s, e)=> {
if(!swiper.zoom.enabled) return;
onTouchEnd();
});
on('doubleTap', (_s, e)=> {
if(!swiper.animating&&swiper.params.zoom.enabled&&swiper.zoom.enabled&&swiper.params.zoom.toggle){
zoomToggle(e);
}});
on('transitionEnd', ()=> {
if(swiper.zoom.enabled&&swiper.params.zoom.enabled){
onTransitionEnd();
}});
on('slideChange', ()=> {
if(swiper.zoom.enabled&&swiper.params.zoom.enabled&&swiper.params.cssMode){
onTransitionEnd();
}});
Object.assign(swiper.zoom, {
enable,
disable,
in: zoomIn,
out: zoomOut,
toggle: zoomToggle
});
}
function Lazy(_ref){
let {
swiper,
extendParams,
on,
emit
}=_ref;
extendParams({
lazy: {
checkInView: false,
enabled: false,
loadPrevNext: false,
loadPrevNextAmount: 1,
loadOnTransitionStart: false,
scrollingElement: '',
elementClass: 'swiper-lazy',
loadingClass: 'swiper-lazy-loading',
loadedClass: 'swiper-lazy-loaded',
preloaderClass: 'swiper-lazy-preloader'
}});
swiper.lazy={};
let scrollHandlerAttached=false;
let initialImageLoaded=false;
function loadInSlide(index, loadInDuplicate){
if(loadInDuplicate===void 0){
loadInDuplicate=true;
}
const params=swiper.params.lazy;
if(typeof index==='undefined') return;
if(swiper.slides.length===0) return;
const isVirtual=swiper.virtual&&swiper.params.virtual.enabled;
const $slideEl=isVirtual ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index="${index}"]`):swiper.slides.eq(index);
const $images=$slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);
if($slideEl.hasClass(params.elementClass)&&!$slideEl.hasClass(params.loadedClass)&&!$slideEl.hasClass(params.loadingClass)){
$images.push($slideEl[0]);
}
if($images.length===0) return;
$images.each(imageEl=> {
const $imageEl=$(imageEl);
$imageEl.addClass(params.loadingClass);
const background=$imageEl.attr('data-background');
const src=$imageEl.attr('data-src');
const srcset=$imageEl.attr('data-srcset');
const sizes=$imageEl.attr('data-sizes');
const $pictureEl=$imageEl.parent('picture');
swiper.loadImage($imageEl[0], src||background, srcset, sizes, false, ()=> {
if(typeof swiper==='undefined'||swiper===null||!swiper||swiper&&!swiper.params||swiper.destroyed) return;
if(background){
$imageEl.css('background-image', `url("${background}")`);
$imageEl.removeAttr('data-background');
}else{
if(srcset){
$imageEl.attr('srcset', srcset);
$imageEl.removeAttr('data-srcset');
}
if(sizes){
$imageEl.attr('sizes', sizes);
$imageEl.removeAttr('data-sizes');
}
if($pictureEl.length){
$pictureEl.children('source').each(sourceEl=> {
const $source=$(sourceEl);
if($source.attr('data-srcset')){
$source.attr('srcset', $source.attr('data-srcset'));
$source.removeAttr('data-srcset');
}});
}
if(src){
$imageEl.attr('src', src);
$imageEl.removeAttr('data-src');
}}
$imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);
$slideEl.find(`.${params.preloaderClass}`).remove();
if(swiper.params.loop&&loadInDuplicate){
const slideOriginalIndex=$slideEl.attr('data-swiper-slide-index');
if($slideEl.hasClass(swiper.params.slideDuplicateClass)){
const originalSlide=swiper.$wrapperEl.children(`[data-swiper-slide-index="${slideOriginalIndex}"]:not(.${swiper.params.slideDuplicateClass})`);
loadInSlide(originalSlide.index(), false);
}else{
const duplicatedSlide=swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index="${slideOriginalIndex}"]`);
loadInSlide(duplicatedSlide.index(), false);
}}
emit('lazyImageReady', $slideEl[0], $imageEl[0]);
if(swiper.params.autoHeight){
swiper.updateAutoHeight();
}});
emit('lazyImageLoad', $slideEl[0], $imageEl[0]);
});
}
function load(){
const {
$wrapperEl,
params: swiperParams,
slides,
activeIndex
}=swiper;
const isVirtual=swiper.virtual&&swiperParams.virtual.enabled;
const params=swiperParams.lazy;
let slidesPerView=swiperParams.slidesPerView;
if(slidesPerView==='auto'){
slidesPerView=0;
}
function slideExist(index){
if(isVirtual){
if($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index="${index}"]`).length){
return true;
}}else if(slides[index]) return true;
return false;
}
function slideIndex(slideEl){
if(isVirtual){
return $(slideEl).attr('data-swiper-slide-index');
}
return $(slideEl).index();
}
if(!initialImageLoaded) initialImageLoaded=true;
if(swiper.params.watchSlidesProgress){
$wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each(slideEl=> {
const index=isVirtual ? $(slideEl).attr('data-swiper-slide-index'):$(slideEl).index();
loadInSlide(index);
});
}else if(slidesPerView > 1){
for (let i=activeIndex; i < activeIndex + slidesPerView; i +=1){
if(slideExist(i)) loadInSlide(i);
}}else{
loadInSlide(activeIndex);
}
if(params.loadPrevNext){
if(slidesPerView > 1||params.loadPrevNextAmount&&params.loadPrevNextAmount > 1){
const amount=params.loadPrevNextAmount;
const spv=Math.ceil(slidesPerView);
const maxIndex=Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);
const minIndex=Math.max(activeIndex - Math.max(spv, amount), 0);
for (let i=activeIndex + spv; i < maxIndex; i +=1){
if(slideExist(i)) loadInSlide(i);
}
for (let i=minIndex; i < activeIndex; i +=1){
if(slideExist(i)) loadInSlide(i);
}}else{
const nextSlide=$wrapperEl.children(`.${swiperParams.slideNextClass}`);
if(nextSlide.length > 0) loadInSlide(slideIndex(nextSlide));
const prevSlide=$wrapperEl.children(`.${swiperParams.slidePrevClass}`);
if(prevSlide.length > 0) loadInSlide(slideIndex(prevSlide));
}}
}
function checkInViewOnLoad(){
const window=getWindow();
if(!swiper||swiper.destroyed) return;
const $scrollElement=swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement):$(window);
const isWindow=$scrollElement[0]===window;
const scrollElementWidth=isWindow ? window.innerWidth:$scrollElement[0].offsetWidth;
const scrollElementHeight=isWindow ? window.innerHeight:$scrollElement[0].offsetHeight;
const swiperOffset=swiper.$el.offset();
const {
rtlTranslate: rtl
}=swiper;
let inView=false;
if(rtl) swiperOffset.left -=swiper.$el[0].scrollLeft;
const swiperCoord=[[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];
for (let i=0; i < swiperCoord.length; i +=1){
const point=swiperCoord[i];
if(point[0] >=0&&point[0] <=scrollElementWidth&&point[1] >=0&&point[1] <=scrollElementHeight){
if(point[0]===0&&point[1]===0) continue;
inView=true;
}}
const passiveListener=swiper.touchEvents.start==='touchstart'&&swiper.support.passiveListener&&swiper.params.passiveListeners ? {
passive: true,
capture: false
}:false;
if(inView){
load();
$scrollElement.off('scroll', checkInViewOnLoad, passiveListener);
}else if(!scrollHandlerAttached){
scrollHandlerAttached=true;
$scrollElement.on('scroll', checkInViewOnLoad, passiveListener);
}}
on('beforeInit', ()=> {
if(swiper.params.lazy.enabled&&swiper.params.preloadImages){
swiper.params.preloadImages=false;
}});
on('init', ()=> {
if(swiper.params.lazy.enabled){
if(swiper.params.lazy.checkInView){
checkInViewOnLoad();
}else{
load();
}}
});
on('scroll', ()=> {
if(swiper.params.freeMode&&swiper.params.freeMode.enabled&&!swiper.params.freeMode.sticky){
load();
}});
on('scrollbarDragMove resize _freeModeNoMomentumRelease', ()=> {
if(swiper.params.lazy.enabled){
if(swiper.params.lazy.checkInView){
checkInViewOnLoad();
}else{
load();
}}
});
on('transitionStart', ()=> {
if(swiper.params.lazy.enabled){
if(swiper.params.lazy.loadOnTransitionStart||!swiper.params.lazy.loadOnTransitionStart&&!initialImageLoaded){
if(swiper.params.lazy.checkInView){
checkInViewOnLoad();
}else{
load();
}}
}});
on('transitionEnd', ()=> {
if(swiper.params.lazy.enabled&&!swiper.params.lazy.loadOnTransitionStart){
if(swiper.params.lazy.checkInView){
checkInViewOnLoad();
}else{
load();
}}
});
on('slideChange', ()=> {
const {
lazy,
cssMode,
watchSlidesProgress,
touchReleaseOnEdges,
resistanceRatio
}=swiper.params;
if(lazy.enabled&&(cssMode||watchSlidesProgress&&(touchReleaseOnEdges||resistanceRatio===0))){
load();
}});
on('destroy', ()=> {
if(!swiper.$el) return;
swiper.$el.find(`.${swiper.params.lazy.loadingClass}`).removeClass(swiper.params.lazy.loadingClass);
});
Object.assign(swiper.lazy, {
load,
loadInSlide
});
}
function Controller(_ref){
let {
swiper,
extendParams,
on
}=_ref;
extendParams({
controller: {
control: undefined,
inverse: false,
by: 'slide'
}});
swiper.controller={
control: undefined
};
function LinearSpline(x, y){
const binarySearch=function search(){
let maxIndex;
let minIndex;
let guess;
return (array, val)=> {
minIndex=-1;
maxIndex=array.length;
while (maxIndex - minIndex > 1){
guess=maxIndex + minIndex >> 1;
if(array[guess] <=val){
minIndex=guess;
}else{
maxIndex=guess;
}}
return maxIndex;
};}();
this.x=x;
this.y=y;
this.lastIndex=x.length - 1;
let i1;
let i3;
this.interpolate=function interpolate(x2){
if(!x2) return 0;
i3=binarySearch(this.x, x2);
i1=i3 - 1;
return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];
};
return this;
}
function getInterpolateFunction(c){
if(!swiper.controller.spline){
swiper.controller.spline=swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid):new LinearSpline(swiper.snapGrid, c.snapGrid);
}}
function setTranslate(_t, byController){
const controlled=swiper.controller.control;
let multiplier;
let controlledTranslate;
const Swiper=swiper.constructor;
function setControlledTranslate(c){
const translate=swiper.rtlTranslate ? -swiper.translate:swiper.translate;
if(swiper.params.controller.by==='slide'){
getInterpolateFunction(c);
controlledTranslate=-swiper.controller.spline.interpolate(-translate);
}
if(!controlledTranslate||swiper.params.controller.by==='container'){
multiplier=(c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());
controlledTranslate=(translate - swiper.minTranslate()) * multiplier + c.minTranslate();
}
if(swiper.params.controller.inverse){
controlledTranslate=c.maxTranslate() - controlledTranslate;
}
c.updateProgress(controlledTranslate);
c.setTranslate(controlledTranslate, swiper);
c.updateActiveIndex();
c.updateSlidesClasses();
}
if(Array.isArray(controlled)){
for (let i=0; i < controlled.length; i +=1){
if(controlled[i]!==byController&&controlled[i] instanceof Swiper){
setControlledTranslate(controlled[i]);
}}
}else if(controlled instanceof Swiper&&byController!==controlled){
setControlledTranslate(controlled);
}}
function setTransition(duration, byController){
const Swiper=swiper.constructor;
const controlled=swiper.controller.control;
let i;
function setControlledTransition(c){
c.setTransition(duration, swiper);
if(duration!==0){
c.transitionStart();
if(c.params.autoHeight){
nextTick(()=> {
c.updateAutoHeight();
});
}
c.$wrapperEl.transitionEnd(()=> {
if(!controlled) return;
if(c.params.loop&&swiper.params.controller.by==='slide'){
c.loopFix();
}
c.transitionEnd();
});
}}
if(Array.isArray(controlled)){
for (i=0; i < controlled.length; i +=1){
if(controlled[i]!==byController&&controlled[i] instanceof Swiper){
setControlledTransition(controlled[i]);
}}
}else if(controlled instanceof Swiper&&byController!==controlled){
setControlledTransition(controlled);
}}
function removeSpline(){
if(!swiper.controller.control) return;
if(swiper.controller.spline){
swiper.controller.spline=undefined;
delete swiper.controller.spline;
}}
on('beforeInit', ()=> {
swiper.controller.control=swiper.params.controller.control;
});
on('update', ()=> {
removeSpline();
});
on('resize', ()=> {
removeSpline();
});
on('observerUpdate', ()=> {
removeSpline();
});
on('setTranslate', (_s, translate, byController)=> {
if(!swiper.controller.control) return;
swiper.controller.setTranslate(translate, byController);
});
on('setTransition', (_s, duration, byController)=> {
if(!swiper.controller.control) return;
swiper.controller.setTransition(duration, byController);
});
Object.assign(swiper.controller, {
setTranslate,
setTransition
});
}
function A11y(_ref){
let {
swiper,
extendParams,
on
}=_ref;
extendParams({
a11y: {
enabled: true,
notificationClass: 'swiper-notification',
prevSlideMessage: 'Previous slide',
nextSlideMessage: 'Next slide',
firstSlideMessage: 'This is the first slide',
lastSlideMessage: 'This is the last slide',
paginationBulletMessage: 'Go to slide {{index}}',
slideLabelMessage: '{{index}} / {{slidesLength}}',
containerMessage: null,
containerRoleDescriptionMessage: null,
itemRoleDescriptionMessage: null,
slideRole: 'group',
id: null
}});
swiper.a11y={
clicked: false
};
let liveRegion=null;
function notify(message){
const notification=liveRegion;
if(notification.length===0) return;
notification.html('');
notification.html(message);
}
function getRandomNumber(size){
if(size===void 0){
size=16;
}
const randomChar=()=> Math.round(16 * Math.random()).toString(16);
return 'x'.repeat(size).replace(/x/g, randomChar);
}
function makeElFocusable($el){
$el.attr('tabIndex', '0');
}
function makeElNotFocusable($el){
$el.attr('tabIndex', '-1');
}
function addElRole($el, role){
$el.attr('role', role);
}
function addElRoleDescription($el, description){
$el.attr('aria-roledescription', description);
}
function addElControls($el, controls){
$el.attr('aria-controls', controls);
}
function addElLabel($el, label){
$el.attr('aria-label', label);
}
function addElId($el, id){
$el.attr('id', id);
}
function addElLive($el, live){
$el.attr('aria-live', live);
}
function disableEl($el){
$el.attr('aria-disabled', true);
}
function enableEl($el){
$el.attr('aria-disabled', false);
}
function onEnterOrSpaceKey(e){
if(e.keyCode!==13&&e.keyCode!==32) return;
const params=swiper.params.a11y;
const $targetEl=$(e.target);
if(swiper.navigation&&swiper.navigation.$nextEl&&$targetEl.is(swiper.navigation.$nextEl)){
if(!(swiper.isEnd&&!swiper.params.loop)){
swiper.slideNext();
}
if(swiper.isEnd){
notify(params.lastSlideMessage);
}else{
notify(params.nextSlideMessage);
}}
if(swiper.navigation&&swiper.navigation.$prevEl&&$targetEl.is(swiper.navigation.$prevEl)){
if(!(swiper.isBeginning&&!swiper.params.loop)){
swiper.slidePrev();
}
if(swiper.isBeginning){
notify(params.firstSlideMessage);
}else{
notify(params.prevSlideMessage);
}}
if(swiper.pagination&&$targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))){
$targetEl[0].click();
}}
function updateNavigation(){
if(swiper.params.loop||swiper.params.rewind||!swiper.navigation) return;
const {
$nextEl,
$prevEl
}=swiper.navigation;
if($prevEl&&$prevEl.length > 0){
if(swiper.isBeginning){
disableEl($prevEl);
makeElNotFocusable($prevEl);
}else{
enableEl($prevEl);
makeElFocusable($prevEl);
}}
if($nextEl&&$nextEl.length > 0){
if(swiper.isEnd){
disableEl($nextEl);
makeElNotFocusable($nextEl);
}else{
enableEl($nextEl);
makeElFocusable($nextEl);
}}
}
function hasPagination(){
return swiper.pagination&&swiper.pagination.bullets&&swiper.pagination.bullets.length;
}
function hasClickablePagination(){
return hasPagination()&&swiper.params.pagination.clickable;
}
function updatePagination(){
const params=swiper.params.a11y;
if(!hasPagination()) return;
swiper.pagination.bullets.each(bulletEl=> {
const $bulletEl=$(bulletEl);
if(swiper.params.pagination.clickable){
makeElFocusable($bulletEl);
if(!swiper.params.pagination.renderBullet){
addElRole($bulletEl, 'button');
addElLabel($bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, $bulletEl.index() + 1));
}}
if($bulletEl.is(`.${swiper.params.pagination.bulletActiveClass}`)){
$bulletEl.attr('aria-current', 'true');
}else{
$bulletEl.removeAttr('aria-current');
}});
}
const initNavEl=($el, wrapperId, message)=> {
makeElFocusable($el);
if($el[0].tagName!=='BUTTON'){
addElRole($el, 'button');
$el.on('keydown', onEnterOrSpaceKey);
}
addElLabel($el, message);
addElControls($el, wrapperId);
};
const handlePointerDown=()=> {
swiper.a11y.clicked=true;
};
const handlePointerUp=()=> {
requestAnimationFrame(()=> {
requestAnimationFrame(()=> {
if(!swiper.destroyed){
swiper.a11y.clicked=false;
}});
});
};
const handleFocus=e => {
if(swiper.a11y.clicked) return;
const slideEl=e.target.closest(`.${swiper.params.slideClass}`);
if(!slideEl||!swiper.slides.includes(slideEl)) return;
const isActive=swiper.slides.indexOf(slideEl)===swiper.activeIndex;
const isVisible=swiper.params.watchSlidesProgress&&swiper.visibleSlides&&swiper.visibleSlides.includes(slideEl);
if(isActive||isVisible) return;
if(e.sourceCapabilities&&e.sourceCapabilities.firesTouchEvents) return;
if(swiper.isHorizontal()){
swiper.el.scrollLeft=0;
}else{
swiper.el.scrollTop=0;
}
swiper.slideTo(swiper.slides.indexOf(slideEl), 0);
};
const initSlides=()=> {
const params=swiper.params.a11y;
if(params.itemRoleDescriptionMessage){
addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);
}
if(params.slideRole){
addElRole($(swiper.slides), params.slideRole);
}
const slidesLength=swiper.params.loop ? swiper.slides.filter(el=> !el.classList.contains(swiper.params.slideDuplicateClass)).length:swiper.slides.length;
if(params.slideLabelMessage){
swiper.slides.each((slideEl, index)=> {
const $slideEl=$(slideEl);
const slideIndex=swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10):index;
const ariaLabelMessage=params.slideLabelMessage.replace(/\{\{index\}\}/, slideIndex + 1).replace(/\{\{slidesLength\}\}/, slidesLength);
addElLabel($slideEl, ariaLabelMessage);
});
}};
const init=()=> {
const params=swiper.params.a11y;
swiper.$el.append(liveRegion);
const $containerEl=swiper.$el;
if(params.containerRoleDescriptionMessage){
addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);
}
if(params.containerMessage){
addElLabel($containerEl, params.containerMessage);
}
const $wrapperEl=swiper.$wrapperEl;
const wrapperId=params.id||$wrapperEl.attr('id')||`swiper-wrapper-${getRandomNumber(16)}`;
const live=swiper.params.autoplay&&swiper.params.autoplay.enabled ? 'off':'polite';
addElId($wrapperEl, wrapperId);
addElLive($wrapperEl, live);
initSlides();
let $nextEl;
let $prevEl;
if(swiper.navigation&&swiper.navigation.$nextEl){
$nextEl=swiper.navigation.$nextEl;
}
if(swiper.navigation&&swiper.navigation.$prevEl){
$prevEl=swiper.navigation.$prevEl;
}
if($nextEl&&$nextEl.length){
initNavEl($nextEl, wrapperId, params.nextSlideMessage);
}
if($prevEl&&$prevEl.length){
initNavEl($prevEl, wrapperId, params.prevSlideMessage);
}
if(hasClickablePagination()){
swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);
}
swiper.$el.on('focus', handleFocus, true);
swiper.$el.on('pointerdown', handlePointerDown, true);
swiper.$el.on('pointerup', handlePointerUp, true);
};
function destroy(){
if(liveRegion&&liveRegion.length > 0) liveRegion.remove();
let $nextEl;
let $prevEl;
if(swiper.navigation&&swiper.navigation.$nextEl){
$nextEl=swiper.navigation.$nextEl;
}
if(swiper.navigation&&swiper.navigation.$prevEl){
$prevEl=swiper.navigation.$prevEl;
}
if($nextEl){
$nextEl.off('keydown', onEnterOrSpaceKey);
}
if($prevEl){
$prevEl.off('keydown', onEnterOrSpaceKey);
}
if(hasClickablePagination()){
swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);
}
swiper.$el.off('focus', handleFocus, true);
swiper.$el.off('pointerdown', handlePointerDown, true);
swiper.$el.off('pointerup', handlePointerUp, true);
}
on('beforeInit', ()=> {
liveRegion=$(`<span class="${swiper.params.a11y.notificationClass}" aria-live="assertive" aria-atomic="true"></span>`);
});
on('afterInit', ()=> {
if(!swiper.params.a11y.enabled) return;
init();
});
on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', ()=> {
if(!swiper.params.a11y.enabled) return;
initSlides();
});
on('fromEdge toEdge afterInit lock unlock', ()=> {
if(!swiper.params.a11y.enabled) return;
updateNavigation();
});
on('paginationUpdate', ()=> {
if(!swiper.params.a11y.enabled) return;
updatePagination();
});
on('destroy', ()=> {
if(!swiper.params.a11y.enabled) return;
destroy();
});
}
function History(_ref){
let {
swiper,
extendParams,
on
}=_ref;
extendParams({
history: {
enabled: false,
root: '',
replaceState: false,
key: 'slides',
keepQuery: false
}});
let initialized=false;
let paths={};
const slugify=text=> {
return text.toString().replace(/\s+/g, '-').replace(/[^\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');
};
const getPathValues=urlOverride=> {
const window=getWindow();
let location;
if(urlOverride){
location=new URL(urlOverride);
}else{
location=window.location;
}
const pathArray=location.pathname.slice(1).split('/').filter(part=> part!=='');
const total=pathArray.length;
const key=pathArray[total - 2];
const value=pathArray[total - 1];
return {
key,
value
};};
const setHistory=(key, index)=> {
const window=getWindow();
if(!initialized||!swiper.params.history.enabled) return;
let location;
if(swiper.params.url){
location=new URL(swiper.params.url);
}else{
location=window.location;
}
const slide=swiper.slides.eq(index);
let value=slugify(slide.attr('data-history'));
if(swiper.params.history.root.length > 0){
let root=swiper.params.history.root;
if(root[root.length - 1]==='/') root=root.slice(0, root.length - 1);
value=`${root}/${key}/${value}`;
}else if(!location.pathname.includes(key)){
value=`${key}/${value}`;
}
if(swiper.params.history.keepQuery){
value +=location.search;
}
const currentState=window.history.state;
if(currentState&&currentState.value===value){
return;
}
if(swiper.params.history.replaceState){
window.history.replaceState({
value
}, null, value);
}else{
window.history.pushState({
value
}, null, value);
}};
const scrollToSlide=(speed, value, runCallbacks)=> {
if(value){
for (let i=0, length=swiper.slides.length; i < length; i +=1){
const slide=swiper.slides.eq(i);
const slideHistory=slugify(slide.attr('data-history'));
if(slideHistory===value&&!slide.hasClass(swiper.params.slideDuplicateClass)){
const index=slide.index();
swiper.slideTo(index, speed, runCallbacks);
}}
}else{
swiper.slideTo(0, speed, runCallbacks);
}};
const setHistoryPopState=()=> {
paths=getPathValues(swiper.params.url);
scrollToSlide(swiper.params.speed, paths.value, false);
};
const init=()=> {
const window=getWindow();
if(!swiper.params.history) return;
if(!window.history||!window.history.pushState){
swiper.params.history.enabled=false;
swiper.params.hashNavigation.enabled=true;
return;
}
initialized=true;
paths=getPathValues(swiper.params.url);
if(!paths.key&&!paths.value) return;
scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);
if(!swiper.params.history.replaceState){
window.addEventListener('popstate', setHistoryPopState);
}};
const destroy=()=> {
const window=getWindow();
if(!swiper.params.history.replaceState){
window.removeEventListener('popstate', setHistoryPopState);
}};
on('init', ()=> {
if(swiper.params.history.enabled){
init();
}});
on('destroy', ()=> {
if(swiper.params.history.enabled){
destroy();
}});
on('transitionEnd _freeModeNoMomentumRelease', ()=> {
if(initialized){
setHistory(swiper.params.history.key, swiper.activeIndex);
}});
on('slideChange', ()=> {
if(initialized&&swiper.params.cssMode){
setHistory(swiper.params.history.key, swiper.activeIndex);
}});
}
function HashNavigation(_ref){
let {
swiper,
extendParams,
emit,
on
}=_ref;
let initialized=false;
const document=getDocument();
const window=getWindow();
extendParams({
hashNavigation: {
enabled: false,
replaceState: false,
watchState: false
}});
const onHashChange=()=> {
emit('hashChange');
const newHash=document.location.hash.replace('#', '');
const activeSlideHash=swiper.slides.eq(swiper.activeIndex).attr('data-hash');
if(newHash!==activeSlideHash){
const newIndex=swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash="${newHash}"]`).index();
if(typeof newIndex==='undefined') return;
swiper.slideTo(newIndex);
}};
const setHash=()=> {
if(!initialized||!swiper.params.hashNavigation.enabled) return;
if(swiper.params.hashNavigation.replaceState&&window.history&&window.history.replaceState){
window.history.replaceState(null, null, `#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}`||'');
emit('hashSet');
}else{
const slide=swiper.slides.eq(swiper.activeIndex);
const hash=slide.attr('data-hash')||slide.attr('data-history');
document.location.hash=hash||'';
emit('hashSet');
}};
const init=()=> {
if(!swiper.params.hashNavigation.enabled||swiper.params.history&&swiper.params.history.enabled) return;
initialized=true;
const hash=document.location.hash.replace('#', '');
if(hash){
const speed=0;
for (let i=0, length=swiper.slides.length; i < length; i +=1){
const slide=swiper.slides.eq(i);
const slideHash=slide.attr('data-hash')||slide.attr('data-history');
if(slideHash===hash&&!slide.hasClass(swiper.params.slideDuplicateClass)){
const index=slide.index();
swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);
}}
}
if(swiper.params.hashNavigation.watchState){
$(window).on('hashchange', onHashChange);
}};
const destroy=()=> {
if(swiper.params.hashNavigation.watchState){
$(window).off('hashchange', onHashChange);
}};
on('init', ()=> {
if(swiper.params.hashNavigation.enabled){
init();
}});
on('destroy', ()=> {
if(swiper.params.hashNavigation.enabled){
destroy();
}});
on('transitionEnd _freeModeNoMomentumRelease', ()=> {
if(initialized){
setHash();
}});
on('slideChange', ()=> {
if(initialized&&swiper.params.cssMode){
setHash();
}});
}
function Autoplay(_ref){
let {
swiper,
extendParams,
on,
emit
}=_ref;
let timeout;
swiper.autoplay={
running: false,
paused: false
};
extendParams({
autoplay: {
enabled: false,
delay: 3000,
waitForTransition: true,
disableOnInteraction: true,
stopOnLastSlide: false,
reverseDirection: false,
pauseOnMouseEnter: false
}});
function run(){
if(!swiper.size){
swiper.autoplay.running=false;
swiper.autoplay.paused=false;
return;
}
const $activeSlideEl=swiper.slides.eq(swiper.activeIndex);
let delay=swiper.params.autoplay.delay;
if($activeSlideEl.attr('data-swiper-autoplay')){
delay=$activeSlideEl.attr('data-swiper-autoplay')||swiper.params.autoplay.delay;
}
clearTimeout(timeout);
timeout=nextTick(()=> {
let autoplayResult;
if(swiper.params.autoplay.reverseDirection){
if(swiper.params.loop){
swiper.loopFix();
autoplayResult=swiper.slidePrev(swiper.params.speed, true, true);
emit('autoplay');
}else if(!swiper.isBeginning){
autoplayResult=swiper.slidePrev(swiper.params.speed, true, true);
emit('autoplay');
}else if(!swiper.params.autoplay.stopOnLastSlide){
autoplayResult=swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);
emit('autoplay');
}else{
stop();
}}else if(swiper.params.loop){
swiper.loopFix();
autoplayResult=swiper.slideNext(swiper.params.speed, true, true);
emit('autoplay');
}else if(!swiper.isEnd){
autoplayResult=swiper.slideNext(swiper.params.speed, true, true);
emit('autoplay');
}else if(!swiper.params.autoplay.stopOnLastSlide){
autoplayResult=swiper.slideTo(0, swiper.params.speed, true, true);
emit('autoplay');
}else{
stop();
}
if(swiper.params.cssMode&&swiper.autoplay.running) run();else if(autoplayResult===false){
run();
}}, delay);
}
function start(){
if(typeof timeout!=='undefined') return false;
if(swiper.autoplay.running) return false;
swiper.autoplay.running=true;
emit('autoplayStart');
run();
return true;
}
function stop(){
if(!swiper.autoplay.running) return false;
if(typeof timeout==='undefined') return false;
if(timeout){
clearTimeout(timeout);
timeout=undefined;
}
swiper.autoplay.running=false;
emit('autoplayStop');
return true;
}
function pause(speed){
if(!swiper.autoplay.running) return;
if(swiper.autoplay.paused) return;
if(timeout) clearTimeout(timeout);
swiper.autoplay.paused=true;
if(speed===0||!swiper.params.autoplay.waitForTransition){
swiper.autoplay.paused=false;
run();
}else{
['transitionend', 'webkitTransitionEnd'].forEach(event=> {
swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);
});
}}
function onVisibilityChange(){
const document=getDocument();
if(document.visibilityState==='hidden'&&swiper.autoplay.running){
pause();
}
if(document.visibilityState==='visible'&&swiper.autoplay.paused){
run();
swiper.autoplay.paused=false;
}}
function onTransitionEnd(e){
if(!swiper||swiper.destroyed||!swiper.$wrapperEl) return;
if(e.target!==swiper.$wrapperEl[0]) return;
['transitionend', 'webkitTransitionEnd'].forEach(event=> {
swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);
});
swiper.autoplay.paused=false;
if(!swiper.autoplay.running){
stop();
}else{
run();
}}
function onMouseEnter(){
if(swiper.params.autoplay.disableOnInteraction){
stop();
}else{
emit('autoplayPause');
pause();
}
['transitionend', 'webkitTransitionEnd'].forEach(event=> {
swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);
});
}
function onMouseLeave(){
if(swiper.params.autoplay.disableOnInteraction){
return;
}
swiper.autoplay.paused=false;
emit('autoplayResume');
run();
}
function attachMouseEvents(){
if(swiper.params.autoplay.pauseOnMouseEnter){
swiper.$el.on('mouseenter', onMouseEnter);
swiper.$el.on('mouseleave', onMouseLeave);
}}
function detachMouseEvents(){
swiper.$el.off('mouseenter', onMouseEnter);
swiper.$el.off('mouseleave', onMouseLeave);
}
on('init', ()=> {
if(swiper.params.autoplay.enabled){
start();
const document=getDocument();
document.addEventListener('visibilitychange', onVisibilityChange);
attachMouseEvents();
}});
on('beforeTransitionStart', (_s, speed, internal)=> {
if(swiper.autoplay.running){
if(internal||!swiper.params.autoplay.disableOnInteraction){
swiper.autoplay.pause(speed);
}else{
stop();
}}
});
on('sliderFirstMove', ()=> {
if(swiper.autoplay.running){
if(swiper.params.autoplay.disableOnInteraction){
stop();
}else{
pause();
}}
});
on('touchEnd', ()=> {
if(swiper.params.cssMode&&swiper.autoplay.paused&&!swiper.params.autoplay.disableOnInteraction){
run();
}});
on('destroy', ()=> {
detachMouseEvents();
if(swiper.autoplay.running){
stop();
}
const document=getDocument();
document.removeEventListener('visibilitychange', onVisibilityChange);
});
Object.assign(swiper.autoplay, {
pause,
run,
start,
stop
});
}
function Thumb(_ref){
let {
swiper,
extendParams,
on
}=_ref;
extendParams({
thumbs: {
swiper: null,
multipleActiveThumbs: true,
autoScrollOffset: 0,
slideThumbActiveClass: 'swiper-slide-thumb-active',
thumbsContainerClass: 'swiper-thumbs'
}});
let initialized=false;
let swiperCreated=false;
swiper.thumbs={
swiper: null
};
function onThumbClick(){
const thumbsSwiper=swiper.thumbs.swiper;
if(!thumbsSwiper||thumbsSwiper.destroyed) return;
const clickedIndex=thumbsSwiper.clickedIndex;
const clickedSlide=thumbsSwiper.clickedSlide;
if(clickedSlide&&$(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;
if(typeof clickedIndex==='undefined'||clickedIndex===null) return;
let slideToIndex;
if(thumbsSwiper.params.loop){
slideToIndex=parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);
}else{
slideToIndex=clickedIndex;
}
if(swiper.params.loop){
let currentIndex=swiper.activeIndex;
if(swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)){
swiper.loopFix();
swiper._clientLeft=swiper.$wrapperEl[0].clientLeft;
currentIndex=swiper.activeIndex;
}
const prevIndex=swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index="${slideToIndex}"]`).eq(0).index();
const nextIndex=swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index="${slideToIndex}"]`).eq(0).index();
if(typeof prevIndex==='undefined') slideToIndex=nextIndex;else if(typeof nextIndex==='undefined') slideToIndex=prevIndex;else if(nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex=nextIndex;else slideToIndex=prevIndex;
}
swiper.slideTo(slideToIndex);
}
function init(){
const {
thumbs: thumbsParams
}=swiper.params;
if(initialized) return false;
initialized=true;
const SwiperClass=swiper.constructor;
if(thumbsParams.swiper instanceof SwiperClass){
swiper.thumbs.swiper=thumbsParams.swiper;
Object.assign(swiper.thumbs.swiper.originalParams, {
watchSlidesProgress: true,
slideToClickedSlide: false
});
Object.assign(swiper.thumbs.swiper.params, {
watchSlidesProgress: true,
slideToClickedSlide: false
});
}else if(isObject(thumbsParams.swiper)){
const thumbsSwiperParams=Object.assign({}, thumbsParams.swiper);
Object.assign(thumbsSwiperParams, {
watchSlidesProgress: true,
slideToClickedSlide: false
});
swiper.thumbs.swiper=new SwiperClass(thumbsSwiperParams);
swiperCreated=true;
}
swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);
swiper.thumbs.swiper.on('tap', onThumbClick);
return true;
}
function update(initial){
const thumbsSwiper=swiper.thumbs.swiper;
if(!thumbsSwiper||thumbsSwiper.destroyed) return;
const slidesPerView=thumbsSwiper.params.slidesPerView==='auto' ? thumbsSwiper.slidesPerViewDynamic():thumbsSwiper.params.slidesPerView;
let thumbsToActivate=1;
const thumbActiveClass=swiper.params.thumbs.slideThumbActiveClass;
if(swiper.params.slidesPerView > 1&&!swiper.params.centeredSlides){
thumbsToActivate=swiper.params.slidesPerView;
}
if(!swiper.params.thumbs.multipleActiveThumbs){
thumbsToActivate=1;
}
thumbsToActivate=Math.floor(thumbsToActivate);
thumbsSwiper.slides.removeClass(thumbActiveClass);
if(thumbsSwiper.params.loop||thumbsSwiper.params.virtual&&thumbsSwiper.params.virtual.enabled){
for (let i=0; i < thumbsToActivate; i +=1){
thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index="${swiper.realIndex + i}"]`).addClass(thumbActiveClass);
}}else{
for (let i=0; i < thumbsToActivate; i +=1){
thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);
}}
const autoScrollOffset=swiper.params.thumbs.autoScrollOffset;
const useOffset=autoScrollOffset&&!thumbsSwiper.params.loop;
if(swiper.realIndex!==thumbsSwiper.realIndex||useOffset){
let currentThumbsIndex=thumbsSwiper.activeIndex;
let newThumbsIndex;
let direction;
if(thumbsSwiper.params.loop){
if(thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)){
thumbsSwiper.loopFix();
thumbsSwiper._clientLeft=thumbsSwiper.$wrapperEl[0].clientLeft;
currentThumbsIndex=thumbsSwiper.activeIndex;
}
const prevThumbsIndex=thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(`[data-swiper-slide-index="${swiper.realIndex}"]`).eq(0).index();
const nextThumbsIndex=thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(`[data-swiper-slide-index="${swiper.realIndex}"]`).eq(0).index();
if(typeof prevThumbsIndex==='undefined'){
newThumbsIndex=nextThumbsIndex;
}else if(typeof nextThumbsIndex==='undefined'){
newThumbsIndex=prevThumbsIndex;
}else if(nextThumbsIndex - currentThumbsIndex===currentThumbsIndex - prevThumbsIndex){
newThumbsIndex=thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex:currentThumbsIndex;
}else if(nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex){
newThumbsIndex=nextThumbsIndex;
}else{
newThumbsIndex=prevThumbsIndex;
}
direction=swiper.activeIndex > swiper.previousIndex ? 'next':'prev';
}else{
newThumbsIndex=swiper.realIndex;
direction=newThumbsIndex > swiper.previousIndex ? 'next':'prev';
}
if(useOffset){
newThumbsIndex +=direction==='next' ? autoScrollOffset:-1 * autoScrollOffset;
}
if(thumbsSwiper.visibleSlidesIndexes&&thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0){
if(thumbsSwiper.params.centeredSlides){
if(newThumbsIndex > currentThumbsIndex){
newThumbsIndex=newThumbsIndex - Math.floor(slidesPerView / 2) + 1;
}else{
newThumbsIndex=newThumbsIndex + Math.floor(slidesPerView / 2) - 1;
}}else if(newThumbsIndex > currentThumbsIndex&&thumbsSwiper.params.slidesPerGroup===1) ;
thumbsSwiper.slideTo(newThumbsIndex, initial ? 0:undefined);
}}
}
on('beforeInit', ()=> {
const {
thumbs
}=swiper.params;
if(!thumbs||!thumbs.swiper) return;
init();
update(true);
});
on('slideChange update resize observerUpdate', ()=> {
update();
});
on('setTransition', (_s, duration)=> {
const thumbsSwiper=swiper.thumbs.swiper;
if(!thumbsSwiper||thumbsSwiper.destroyed) return;
thumbsSwiper.setTransition(duration);
});
on('beforeDestroy', ()=> {
const thumbsSwiper=swiper.thumbs.swiper;
if(!thumbsSwiper||thumbsSwiper.destroyed) return;
if(swiperCreated){
thumbsSwiper.destroy();
}});
Object.assign(swiper.thumbs, {
init,
update
});
}
function freeMode(_ref){
let {
swiper,
extendParams,
emit,
once
}=_ref;
extendParams({
freeMode: {
enabled: false,
momentum: true,
momentumRatio: 1,
momentumBounce: true,
momentumBounceRatio: 1,
momentumVelocityRatio: 1,
sticky: false,
minimumVelocity: 0.02
}});
function onTouchStart(){
const translate=swiper.getTranslate();
swiper.setTranslate(translate);
swiper.setTransition(0);
swiper.touchEventsData.velocities.length=0;
swiper.freeMode.onTouchEnd({
currentPos: swiper.rtl ? swiper.translate:-swiper.translate
});
}
function onTouchMove(){
const {
touchEventsData: data,
touches
}=swiper;
if(data.velocities.length===0){
data.velocities.push({
position: touches[swiper.isHorizontal() ? 'startX':'startY'],
time: data.touchStartTime
});
}
data.velocities.push({
position: touches[swiper.isHorizontal() ? 'currentX':'currentY'],
time: now()
});
}
function onTouchEnd(_ref2){
let {
currentPos
}=_ref2;
const {
params,
$wrapperEl,
rtlTranslate: rtl,
snapGrid,
touchEventsData: data
}=swiper;
const touchEndTime=now();
const timeDiff=touchEndTime - data.touchStartTime;
if(currentPos < -swiper.minTranslate()){
swiper.slideTo(swiper.activeIndex);
return;
}
if(currentPos > -swiper.maxTranslate()){
if(swiper.slides.length < snapGrid.length){
swiper.slideTo(snapGrid.length - 1);
}else{
swiper.slideTo(swiper.slides.length - 1);
}
return;
}
if(params.freeMode.momentum){
if(data.velocities.length > 1){
const lastMoveEvent=data.velocities.pop();
const velocityEvent=data.velocities.pop();
const distance=lastMoveEvent.position - velocityEvent.position;
const time=lastMoveEvent.time - velocityEvent.time;
swiper.velocity=distance / time;
swiper.velocity /=2;
if(Math.abs(swiper.velocity) < params.freeMode.minimumVelocity){
swiper.velocity=0;
}
if(time > 150||now() - lastMoveEvent.time > 300){
swiper.velocity=0;
}}else{
swiper.velocity=0;
}
swiper.velocity *=params.freeMode.momentumVelocityRatio;
data.velocities.length=0;
let momentumDuration=1000 * params.freeMode.momentumRatio;
const momentumDistance=swiper.velocity * momentumDuration;
let newPosition=swiper.translate + momentumDistance;
if(rtl) newPosition=-newPosition;
let doBounce=false;
let afterBouncePosition;
const bounceAmount=Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;
let needsLoopFix;
if(newPosition < swiper.maxTranslate()){
if(params.freeMode.momentumBounce){
if(newPosition + swiper.maxTranslate() < -bounceAmount){
newPosition=swiper.maxTranslate() - bounceAmount;
}
afterBouncePosition=swiper.maxTranslate();
doBounce=true;
data.allowMomentumBounce=true;
}else{
newPosition=swiper.maxTranslate();
}
if(params.loop&&params.centeredSlides) needsLoopFix=true;
}else if(newPosition > swiper.minTranslate()){
if(params.freeMode.momentumBounce){
if(newPosition - swiper.minTranslate() > bounceAmount){
newPosition=swiper.minTranslate() + bounceAmount;
}
afterBouncePosition=swiper.minTranslate();
doBounce=true;
data.allowMomentumBounce=true;
}else{
newPosition=swiper.minTranslate();
}
if(params.loop&&params.centeredSlides) needsLoopFix=true;
}else if(params.freeMode.sticky){
let nextSlide;
for (let j=0; j < snapGrid.length; j +=1){
if(snapGrid[j] > -newPosition){
nextSlide=j;
break;
}}
if(Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition)||swiper.swipeDirection==='next'){
newPosition=snapGrid[nextSlide];
}else{
newPosition=snapGrid[nextSlide - 1];
}
newPosition=-newPosition;
}
if(needsLoopFix){
once('transitionEnd', ()=> {
swiper.loopFix();
});
}
if(swiper.velocity!==0){
if(rtl){
momentumDuration=Math.abs((-newPosition - swiper.translate) / swiper.velocity);
}else{
momentumDuration=Math.abs((newPosition - swiper.translate) / swiper.velocity);
}
if(params.freeMode.sticky){
const moveDistance=Math.abs((rtl ? -newPosition:newPosition) - swiper.translate);
const currentSlideSize=swiper.slidesSizesGrid[swiper.activeIndex];
if(moveDistance < currentSlideSize){
momentumDuration=params.speed;
}else if(moveDistance < 2 * currentSlideSize){
momentumDuration=params.speed * 1.5;
}else{
momentumDuration=params.speed * 2.5;
}}
}else if(params.freeMode.sticky){
swiper.slideToClosest();
return;
}
if(params.freeMode.momentumBounce&&doBounce){
swiper.updateProgress(afterBouncePosition);
swiper.setTransition(momentumDuration);
swiper.setTranslate(newPosition);
swiper.transitionStart(true, swiper.swipeDirection);
swiper.animating=true;
$wrapperEl.transitionEnd(()=> {
if(!swiper||swiper.destroyed||!data.allowMomentumBounce) return;
emit('momentumBounce');
swiper.setTransition(params.speed);
setTimeout(()=> {
swiper.setTranslate(afterBouncePosition);
$wrapperEl.transitionEnd(()=> {
if(!swiper||swiper.destroyed) return;
swiper.transitionEnd();
});
}, 0);
});
}else if(swiper.velocity){
emit('_freeModeNoMomentumRelease');
swiper.updateProgress(newPosition);
swiper.setTransition(momentumDuration);
swiper.setTranslate(newPosition);
swiper.transitionStart(true, swiper.swipeDirection);
if(!swiper.animating){
swiper.animating=true;
$wrapperEl.transitionEnd(()=> {
if(!swiper||swiper.destroyed) return;
swiper.transitionEnd();
});
}}else{
swiper.updateProgress(newPosition);
}
swiper.updateActiveIndex();
swiper.updateSlidesClasses();
}else if(params.freeMode.sticky){
swiper.slideToClosest();
return;
}else if(params.freeMode){
emit('_freeModeNoMomentumRelease');
}
if(!params.freeMode.momentum||timeDiff >=params.longSwipesMs){
swiper.updateProgress();
swiper.updateActiveIndex();
swiper.updateSlidesClasses();
}}
Object.assign(swiper, {
freeMode: {
onTouchStart,
onTouchMove,
onTouchEnd
}});
}
function Grid(_ref){
let {
swiper,
extendParams
}=_ref;
extendParams({
grid: {
rows: 1,
fill: 'column'
}});
let slidesNumberEvenToRows;
let slidesPerRow;
let numFullColumns;
const initSlides=slidesLength=> {
const {
slidesPerView
}=swiper.params;
const {
rows,
fill
}=swiper.params.grid;
slidesPerRow=slidesNumberEvenToRows / rows;
numFullColumns=Math.floor(slidesLength / rows);
if(Math.floor(slidesLength / rows)===slidesLength / rows){
slidesNumberEvenToRows=slidesLength;
}else{
slidesNumberEvenToRows=Math.ceil(slidesLength / rows) * rows;
}
if(slidesPerView!=='auto'&&fill==='row'){
slidesNumberEvenToRows=Math.max(slidesNumberEvenToRows, slidesPerView * rows);
}};
const updateSlide=(i, slide, slidesLength, getDirectionLabel)=> {
const {
slidesPerGroup,
spaceBetween
}=swiper.params;
const {
rows,
fill
}=swiper.params.grid;
let newSlideOrderIndex;
let column;
let row;
if(fill==='row'&&slidesPerGroup > 1){
const groupIndex=Math.floor(i / (slidesPerGroup * rows));
const slideIndexInGroup=i - rows * slidesPerGroup * groupIndex;
const columnsInGroup=groupIndex===0 ? slidesPerGroup:Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);
row=Math.floor(slideIndexInGroup / columnsInGroup);
column=slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;
newSlideOrderIndex=column + row * slidesNumberEvenToRows / rows;
slide.css({
'-webkit-order': newSlideOrderIndex,
order: newSlideOrderIndex
});
}else if(fill==='column'){
column=Math.floor(i / rows);
row=i - column * rows;
if(column > numFullColumns||column===numFullColumns&&row===rows - 1){
row +=1;
if(row >=rows){
row=0;
column +=1;
}}
}else{
row=Math.floor(i / slidesPerRow);
column=i - row * slidesPerRow;
}
slide.css(getDirectionLabel('margin-top'), row!==0 ? spaceBetween&&`${spaceBetween}px`:'');
};
const updateWrapperSize=(slideSize, snapGrid, getDirectionLabel)=> {
const {
spaceBetween,
centeredSlides,
roundLengths
}=swiper.params;
const {
rows
}=swiper.params.grid;
swiper.virtualSize=(slideSize + spaceBetween) * slidesNumberEvenToRows;
swiper.virtualSize=Math.ceil(swiper.virtualSize / rows) - spaceBetween;
swiper.$wrapperEl.css({
[getDirectionLabel('width')]: `${swiper.virtualSize + spaceBetween}px`
});
if(centeredSlides){
snapGrid.splice(0, snapGrid.length);
const newSlidesGrid=[];
for (let i=0; i < snapGrid.length; i +=1){
let slidesGridItem=snapGrid[i];
if(roundLengths) slidesGridItem=Math.floor(slidesGridItem);
if(snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);
}
snapGrid.push(...newSlidesGrid);
}};
swiper.grid={
initSlides,
updateSlide,
updateWrapperSize
};}
function appendSlide(slides){
const swiper=this;
const {
$wrapperEl,
params
}=swiper;
if(params.loop){
swiper.loopDestroy();
}
if(typeof slides==='object'&&'length' in slides){
for (let i=0; i < slides.length; i +=1){
if(slides[i]) $wrapperEl.append(slides[i]);
}}else{
$wrapperEl.append(slides);
}
if(params.loop){
swiper.loopCreate();
}
if(!params.observer){
swiper.update();
}}
function prependSlide(slides){
const swiper=this;
const {
params,
$wrapperEl,
activeIndex
}=swiper;
if(params.loop){
swiper.loopDestroy();
}
let newActiveIndex=activeIndex + 1;
if(typeof slides==='object'&&'length' in slides){
for (let i=0; i < slides.length; i +=1){
if(slides[i]) $wrapperEl.prepend(slides[i]);
}
newActiveIndex=activeIndex + slides.length;
}else{
$wrapperEl.prepend(slides);
}
if(params.loop){
swiper.loopCreate();
}
if(!params.observer){
swiper.update();
}
swiper.slideTo(newActiveIndex, 0, false);
}
function addSlide(index, slides){
const swiper=this;
const {
$wrapperEl,
params,
activeIndex
}=swiper;
let activeIndexBuffer=activeIndex;
if(params.loop){
activeIndexBuffer -=swiper.loopedSlides;
swiper.loopDestroy();
swiper.slides=$wrapperEl.children(`.${params.slideClass}`);
}
const baseLength=swiper.slides.length;
if(index <=0){
swiper.prependSlide(slides);
return;
}
if(index >=baseLength){
swiper.appendSlide(slides);
return;
}
let newActiveIndex=activeIndexBuffer > index ? activeIndexBuffer + 1:activeIndexBuffer;
const slidesBuffer=[];
for (let i=baseLength - 1; i >=index; i -=1){
const currentSlide=swiper.slides.eq(i);
currentSlide.remove();
slidesBuffer.unshift(currentSlide);
}
if(typeof slides==='object'&&'length' in slides){
for (let i=0; i < slides.length; i +=1){
if(slides[i]) $wrapperEl.append(slides[i]);
}
newActiveIndex=activeIndexBuffer > index ? activeIndexBuffer + slides.length:activeIndexBuffer;
}else{
$wrapperEl.append(slides);
}
for (let i=0; i < slidesBuffer.length; i +=1){
$wrapperEl.append(slidesBuffer[i]);
}
if(params.loop){
swiper.loopCreate();
}
if(!params.observer){
swiper.update();
}
if(params.loop){
swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
}else{
swiper.slideTo(newActiveIndex, 0, false);
}}
function removeSlide(slidesIndexes){
const swiper=this;
const {
params,
$wrapperEl,
activeIndex
}=swiper;
let activeIndexBuffer=activeIndex;
if(params.loop){
activeIndexBuffer -=swiper.loopedSlides;
swiper.loopDestroy();
swiper.slides=$wrapperEl.children(`.${params.slideClass}`);
}
let newActiveIndex=activeIndexBuffer;
let indexToRemove;
if(typeof slidesIndexes==='object'&&'length' in slidesIndexes){
for (let i=0; i < slidesIndexes.length; i +=1){
indexToRemove=slidesIndexes[i];
if(swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();
if(indexToRemove < newActiveIndex) newActiveIndex -=1;
}
newActiveIndex=Math.max(newActiveIndex, 0);
}else{
indexToRemove=slidesIndexes;
if(swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();
if(indexToRemove < newActiveIndex) newActiveIndex -=1;
newActiveIndex=Math.max(newActiveIndex, 0);
}
if(params.loop){
swiper.loopCreate();
}
if(!params.observer){
swiper.update();
}
if(params.loop){
swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
}else{
swiper.slideTo(newActiveIndex, 0, false);
}}
function removeAllSlides(){
const swiper=this;
const slidesIndexes=[];
for (let i=0; i < swiper.slides.length; i +=1){
slidesIndexes.push(i);
}
swiper.removeSlide(slidesIndexes);
}
function Manipulation(_ref){
let {
swiper
}=_ref;
Object.assign(swiper, {
appendSlide: appendSlide.bind(swiper),
prependSlide: prependSlide.bind(swiper),
addSlide: addSlide.bind(swiper),
removeSlide: removeSlide.bind(swiper),
removeAllSlides: removeAllSlides.bind(swiper)
});
}
function effectInit(params){
const {
effect,
swiper,
on,
setTranslate,
setTransition,
overwriteParams,
perspective,
recreateShadows,
getEffectParams
}=params;
on('beforeInit', ()=> {
if(swiper.params.effect!==effect) return;
swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);
if(perspective&&perspective()){
swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);
}
const overwriteParamsResult=overwriteParams ? overwriteParams():{};
Object.assign(swiper.params, overwriteParamsResult);
Object.assign(swiper.originalParams, overwriteParamsResult);
});
on('setTranslate', ()=> {
if(swiper.params.effect!==effect) return;
setTranslate();
});
on('setTransition', (_s, duration)=> {
if(swiper.params.effect!==effect) return;
setTransition(duration);
});
on('transitionEnd', ()=> {
if(swiper.params.effect!==effect) return;
if(recreateShadows){
if(!getEffectParams||!getEffectParams().slideShadows) return;
swiper.slides.each(slideEl=> {
const $slideEl=swiper.$(slideEl);
$slideEl.find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').remove();
});
recreateShadows();
}});
let requireUpdateOnVirtual;
on('virtualUpdate', ()=> {
if(swiper.params.effect!==effect) return;
if(!swiper.slides.length){
requireUpdateOnVirtual=true;
}
requestAnimationFrame(()=> {
if(requireUpdateOnVirtual&&swiper.slides&&swiper.slides.length){
setTranslate();
requireUpdateOnVirtual=false;
}});
});
}
function effectTarget(effectParams, $slideEl){
if(effectParams.transformEl){
return $slideEl.find(effectParams.transformEl).css({
'backface-visibility': 'hidden',
'-webkit-backface-visibility': 'hidden'
});
}
return $slideEl;
}
function effectVirtualTransitionEnd(_ref){
let {
swiper,
duration,
transformEl,
allSlides
}=_ref;
const {
slides,
activeIndex,
$wrapperEl
}=swiper;
if(swiper.params.virtualTranslate&&duration!==0){
let eventTriggered=false;
let $transitionEndTarget;
if(allSlides){
$transitionEndTarget=transformEl ? slides.find(transformEl):slides;
}else{
$transitionEndTarget=transformEl ? slides.eq(activeIndex).find(transformEl):slides.eq(activeIndex);
}
$transitionEndTarget.transitionEnd(()=> {
if(eventTriggered) return;
if(!swiper||swiper.destroyed) return;
eventTriggered=true;
swiper.animating=false;
const triggerEvents=['webkitTransitionEnd', 'transitionend'];
for (let i=0; i < triggerEvents.length; i +=1){
$wrapperEl.trigger(triggerEvents[i]);
}});
}}
function EffectFade(_ref){
let {
swiper,
extendParams,
on
}=_ref;
extendParams({
fadeEffect: {
crossFade: false,
transformEl: null
}});
const setTranslate=()=> {
const {
slides
}=swiper;
const params=swiper.params.fadeEffect;
for (let i=0; i < slides.length; i +=1){
const $slideEl=swiper.slides.eq(i);
const offset=$slideEl[0].swiperSlideOffset;
let tx=-offset;
if(!swiper.params.virtualTranslate) tx -=swiper.translate;
let ty=0;
if(!swiper.isHorizontal()){
ty=tx;
tx=0;
}
const slideOpacity=swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0):1 + Math.min(Math.max($slideEl[0].progress, -1), 0);
const $targetEl=effectTarget(params, $slideEl);
$targetEl.css({
opacity: slideOpacity
}).transform(`translate3d(${tx}px, ${ty}px, 0px)`);
}};
const setTransition=duration=> {
const {
transformEl
}=swiper.params.fadeEffect;
const $transitionElements=transformEl ? swiper.slides.find(transformEl):swiper.slides;
$transitionElements.transition(duration);
effectVirtualTransitionEnd({
swiper,
duration,
transformEl,
allSlides: true
});
};
effectInit({
effect: 'fade',
swiper,
on,
setTranslate,
setTransition,
overwriteParams: ()=> ({
slidesPerView: 1,
slidesPerGroup: 1,
watchSlidesProgress: true,
spaceBetween: 0,
virtualTranslate: !swiper.params.cssMode
})
});
}
function EffectCube(_ref){
let {
swiper,
extendParams,
on
}=_ref;
extendParams({
cubeEffect: {
slideShadows: true,
shadow: true,
shadowOffset: 20,
shadowScale: 0.94
}});
const createSlideShadows=($slideEl, progress, isHorizontal)=> {
let shadowBefore=isHorizontal ? $slideEl.find('.swiper-slide-shadow-left'):$slideEl.find('.swiper-slide-shadow-top');
let shadowAfter=isHorizontal ? $slideEl.find('.swiper-slide-shadow-right'):$slideEl.find('.swiper-slide-shadow-bottom');
if(shadowBefore.length===0){
shadowBefore=$(`<div class="swiper-slide-shadow-${isHorizontal ? 'left':'top'}"></div>`);
$slideEl.append(shadowBefore);
}
if(shadowAfter.length===0){
shadowAfter=$(`<div class="swiper-slide-shadow-${isHorizontal ? 'right':'bottom'}"></div>`);
$slideEl.append(shadowAfter);
}
if(shadowBefore.length) shadowBefore[0].style.opacity=Math.max(-progress, 0);
if(shadowAfter.length) shadowAfter[0].style.opacity=Math.max(progress, 0);
};
const recreateShadows=()=> {
const isHorizontal=swiper.isHorizontal();
swiper.slides.each(slideEl=> {
const progress=Math.max(Math.min(slideEl.progress, 1), -1);
createSlideShadows($(slideEl), progress, isHorizontal);
});
};
const setTranslate=()=> {
const {
$el,
$wrapperEl,
slides,
width: swiperWidth,
height: swiperHeight,
rtlTranslate: rtl,
size: swiperSize,
browser
}=swiper;
const params=swiper.params.cubeEffect;
const isHorizontal=swiper.isHorizontal();
const isVirtual=swiper.virtual&&swiper.params.virtual.enabled;
let wrapperRotate=0;
let $cubeShadowEl;
if(params.shadow){
if(isHorizontal){
$cubeShadowEl=$wrapperEl.find('.swiper-cube-shadow');
if($cubeShadowEl.length===0){
$cubeShadowEl=$('<div class="swiper-cube-shadow"></div>');
$wrapperEl.append($cubeShadowEl);
}
$cubeShadowEl.css({
height: `${swiperWidth}px`
});
}else{
$cubeShadowEl=$el.find('.swiper-cube-shadow');
if($cubeShadowEl.length===0){
$cubeShadowEl=$('<div class="swiper-cube-shadow"></div>');
$el.append($cubeShadowEl);
}}
}
for (let i=0; i < slides.length; i +=1){
const $slideEl=slides.eq(i);
let slideIndex=i;
if(isVirtual){
slideIndex=parseInt($slideEl.attr('data-swiper-slide-index'), 10);
}
let slideAngle=slideIndex * 90;
let round=Math.floor(slideAngle / 360);
if(rtl){
slideAngle=-slideAngle;
round=Math.floor(-slideAngle / 360);
}
const progress=Math.max(Math.min($slideEl[0].progress, 1), -1);
let tx=0;
let ty=0;
let tz=0;
if(slideIndex % 4===0){
tx=-round * 4 * swiperSize;
tz=0;
}else if((slideIndex - 1) % 4===0){
tx=0;
tz=-round * 4 * swiperSize;
}else if((slideIndex - 2) % 4===0){
tx=swiperSize + round * 4 * swiperSize;
tz=swiperSize;
}else if((slideIndex - 3) % 4===0){
tx=-swiperSize;
tz=3 * swiperSize + swiperSize * 4 * round;
}
if(rtl){
tx=-tx;
}
if(!isHorizontal){
ty=tx;
tx=0;
}
const transform=`rotateX(${isHorizontal ? 0:-slideAngle}deg) rotateY(${isHorizontal ? slideAngle:0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;
if(progress <=1&&progress > -1){
wrapperRotate=slideIndex * 90 + progress * 90;
if(rtl) wrapperRotate=-slideIndex * 90 - progress * 90;
}
$slideEl.transform(transform);
if(params.slideShadows){
createSlideShadows($slideEl, progress, isHorizontal);
}}
$wrapperEl.css({
'-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,
'transform-origin': `50% 50% -${swiperSize / 2}px`
});
if(params.shadow){
if(isHorizontal){
$cubeShadowEl.transform(`translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`);
}else{
const shadowAngle=Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;
const multiplier=1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);
const scale1=params.shadowScale;
const scale2=params.shadowScale / multiplier;
const offset=params.shadowOffset;
$cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`);
}}
const zFactor=browser.isSafari||browser.isWebView ? -swiperSize / 2:0;
$wrapperEl.transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0:wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate:0}deg)`);
$wrapperEl[0].style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);
};
const setTransition=duration=> {
const {
$el,
slides
}=swiper;
slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);
if(swiper.params.cubeEffect.shadow&&!swiper.isHorizontal()){
$el.find('.swiper-cube-shadow').transition(duration);
}};
effectInit({
effect: 'cube',
swiper,
on,
setTranslate,
setTransition,
recreateShadows,
getEffectParams: ()=> swiper.params.cubeEffect,
perspective: ()=> true,
overwriteParams: ()=> ({
slidesPerView: 1,
slidesPerGroup: 1,
watchSlidesProgress: true,
resistanceRatio: 0,
spaceBetween: 0,
centeredSlides: false,
virtualTranslate: true
})
});
}
function createShadow(params, $slideEl, side){
const shadowClass=`swiper-slide-shadow${side ? `-${side}`:''}`;
const $shadowContainer=params.transformEl ? $slideEl.find(params.transformEl):$slideEl;
let $shadowEl=$shadowContainer.children(`.${shadowClass}`);
if(!$shadowEl.length){
$shadowEl=$(`<div class="swiper-slide-shadow${side ? `-${side}`:''}"></div>`);
$shadowContainer.append($shadowEl);
}
return $shadowEl;
}
function EffectFlip(_ref){
let {
swiper,
extendParams,
on
}=_ref;
extendParams({
flipEffect: {
slideShadows: true,
limitRotation: true,
transformEl: null
}});
const createSlideShadows=($slideEl, progress, params)=> {
let shadowBefore=swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left'):$slideEl.find('.swiper-slide-shadow-top');
let shadowAfter=swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right'):$slideEl.find('.swiper-slide-shadow-bottom');
if(shadowBefore.length===0){
shadowBefore=createShadow(params, $slideEl, swiper.isHorizontal() ? 'left':'top');
}
if(shadowAfter.length===0){
shadowAfter=createShadow(params, $slideEl, swiper.isHorizontal() ? 'right':'bottom');
}
if(shadowBefore.length) shadowBefore[0].style.opacity=Math.max(-progress, 0);
if(shadowAfter.length) shadowAfter[0].style.opacity=Math.max(progress, 0);
};
const recreateShadows=()=> {
const params=swiper.params.flipEffect;
swiper.slides.each(slideEl=> {
const $slideEl=$(slideEl);
let progress=$slideEl[0].progress;
if(swiper.params.flipEffect.limitRotation){
progress=Math.max(Math.min(slideEl.progress, 1), -1);
}
createSlideShadows($slideEl, progress, params);
});
};
const setTranslate=()=> {
const {
slides,
rtlTranslate: rtl
}=swiper;
const params=swiper.params.flipEffect;
for (let i=0; i < slides.length; i +=1){
const $slideEl=slides.eq(i);
let progress=$slideEl[0].progress;
if(swiper.params.flipEffect.limitRotation){
progress=Math.max(Math.min($slideEl[0].progress, 1), -1);
}
const offset=$slideEl[0].swiperSlideOffset;
const rotate=-180 * progress;
let rotateY=rotate;
let rotateX=0;
let tx=swiper.params.cssMode ? -offset - swiper.translate:-offset;
let ty=0;
if(!swiper.isHorizontal()){
ty=tx;
tx=0;
rotateX=-rotateY;
rotateY=0;
}else if(rtl){
rotateY=-rotateY;
}
$slideEl[0].style.zIndex=-Math.abs(Math.round(progress)) + slides.length;
if(params.slideShadows){
createSlideShadows($slideEl, progress, params);
}
const transform=`translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;
const $targetEl=effectTarget(params, $slideEl);
$targetEl.transform(transform);
}};
const setTransition=duration=> {
const {
transformEl
}=swiper.params.flipEffect;
const $transitionElements=transformEl ? swiper.slides.find(transformEl):swiper.slides;
$transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);
effectVirtualTransitionEnd({
swiper,
duration,
transformEl
});
};
effectInit({
effect: 'flip',
swiper,
on,
setTranslate,
setTransition,
recreateShadows,
getEffectParams: ()=> swiper.params.flipEffect,
perspective: ()=> true,
overwriteParams: ()=> ({
slidesPerView: 1,
slidesPerGroup: 1,
watchSlidesProgress: true,
spaceBetween: 0,
virtualTranslate: !swiper.params.cssMode
})
});
}
function EffectCoverflow(_ref){
let {
swiper,
extendParams,
on
}=_ref;
extendParams({
coverflowEffect: {
rotate: 50,
stretch: 0,
depth: 100,
scale: 1,
modifier: 1,
slideShadows: true,
transformEl: null
}});
const setTranslate=()=> {
const {
width: swiperWidth,
height: swiperHeight,
slides,
slidesSizesGrid
}=swiper;
const params=swiper.params.coverflowEffect;
const isHorizontal=swiper.isHorizontal();
const transform=swiper.translate;
const center=isHorizontal ? -transform + swiperWidth / 2:-transform + swiperHeight / 2;
const rotate=isHorizontal ? params.rotate:-params.rotate;
const translate=params.depth;
for (let i=0, length=slides.length; i < length; i +=1){
const $slideEl=slides.eq(i);
const slideSize=slidesSizesGrid[i];
const slideOffset=$slideEl[0].swiperSlideOffset;
const centerOffset=(center - slideOffset - slideSize / 2) / slideSize;
const offsetMultiplier=typeof params.modifier==='function' ? params.modifier(centerOffset):centerOffset * params.modifier;
let rotateY=isHorizontal ? rotate * offsetMultiplier:0;
let rotateX=isHorizontal ? 0:rotate * offsetMultiplier;
let translateZ=-translate * Math.abs(offsetMultiplier);
let stretch=params.stretch;
if(typeof stretch==='string'&&stretch.indexOf('%')!==-1){
stretch=parseFloat(params.stretch) / 100 * slideSize;
}
let translateY=isHorizontal ? 0:stretch * offsetMultiplier;
let translateX=isHorizontal ? stretch * offsetMultiplier:0;
let scale=1 - (1 - params.scale) * Math.abs(offsetMultiplier);
if(Math.abs(translateX) < 0.001) translateX=0;
if(Math.abs(translateY) < 0.001) translateY=0;
if(Math.abs(translateZ) < 0.001) translateZ=0;
if(Math.abs(rotateY) < 0.001) rotateY=0;
if(Math.abs(rotateX) < 0.001) rotateX=0;
if(Math.abs(scale) < 0.001) scale=0;
const slideTransform=`translate3d(${translateX}px,${translateY}px,${translateZ}px)  rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;
const $targetEl=effectTarget(params, $slideEl);
$targetEl.transform(slideTransform);
$slideEl[0].style.zIndex=-Math.abs(Math.round(offsetMultiplier)) + 1;
if(params.slideShadows){
let $shadowBeforeEl=isHorizontal ? $slideEl.find('.swiper-slide-shadow-left'):$slideEl.find('.swiper-slide-shadow-top');
let $shadowAfterEl=isHorizontal ? $slideEl.find('.swiper-slide-shadow-right'):$slideEl.find('.swiper-slide-shadow-bottom');
if($shadowBeforeEl.length===0){
$shadowBeforeEl=createShadow(params, $slideEl, isHorizontal ? 'left':'top');
}
if($shadowAfterEl.length===0){
$shadowAfterEl=createShadow(params, $slideEl, isHorizontal ? 'right':'bottom');
}
if($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity=offsetMultiplier > 0 ? offsetMultiplier:0;
if($shadowAfterEl.length) $shadowAfterEl[0].style.opacity=-offsetMultiplier > 0 ? -offsetMultiplier:0;
}}
};
const setTransition=duration=> {
const {
transformEl
}=swiper.params.coverflowEffect;
const $transitionElements=transformEl ? swiper.slides.find(transformEl):swiper.slides;
$transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);
};
effectInit({
effect: 'coverflow',
swiper,
on,
setTranslate,
setTransition,
perspective: ()=> true,
overwriteParams: ()=> ({
watchSlidesProgress: true
})
});
}
function EffectCreative(_ref){
let {
swiper,
extendParams,
on
}=_ref;
extendParams({
creativeEffect: {
transformEl: null,
limitProgress: 1,
shadowPerProgress: false,
progressMultiplier: 1,
perspective: true,
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 getTranslateValue=value=> {
if(typeof value==='string') return value;
return `${value}px`;
};
const setTranslate=()=> {
const {
slides,
$wrapperEl,
slidesSizesGrid
}=swiper;
const params=swiper.params.creativeEffect;
const {
progressMultiplier: multiplier
}=params;
const isCenteredSlides=swiper.params.centeredSlides;
if(isCenteredSlides){
const margin=slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore||0;
$wrapperEl.transform(`translateX(calc(50% - ${margin}px))`);
}
for (let i=0; i < slides.length; i +=1){
const $slideEl=slides.eq(i);
const slideProgress=$slideEl[0].progress;
const progress=Math.min(Math.max($slideEl[0].progress, -params.limitProgress), params.limitProgress);
let originalProgress=progress;
if(!isCenteredSlides){
originalProgress=Math.min(Math.max($slideEl[0].originalProgress, -params.limitProgress), params.limitProgress);
}
const offset=$slideEl[0].swiperSlideOffset;
const t=[swiper.params.cssMode ? -offset - swiper.translate:-offset, 0, 0];
const r=[0, 0, 0];
let custom=false;
if(!swiper.isHorizontal()){
t[1]=t[0];
t[0]=0;
}
let data={
translate: [0, 0, 0],
rotate: [0, 0, 0],
scale: 1,
opacity: 1
};
if(progress < 0){
data=params.next;
custom=true;
}else if(progress > 0){
data=params.prev;
custom=true;
}
t.forEach((value, index)=> {
t[index]=`calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;
});
r.forEach((value, index)=> {
r[index]=data.rotate[index] * Math.abs(progress * multiplier);
});
$slideEl[0].style.zIndex=-Math.abs(Math.round(slideProgress)) + slides.length;
const translateString=t.join(', ');
const rotateString=`rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;
const scaleString=originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})`:`scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;
const opacityString=originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier:1 - (1 - data.opacity) * originalProgress * multiplier;
const transform=`translate3d(${translateString}) ${rotateString} ${scaleString}`;
if(custom&&data.shadow||!custom){
let $shadowEl=$slideEl.children('.swiper-slide-shadow');
if($shadowEl.length===0&&data.shadow){
$shadowEl=createShadow(params, $slideEl);
}
if($shadowEl.length){
const shadowOpacity=params.shadowPerProgress ? progress * (1 / params.limitProgress):progress;
$shadowEl[0].style.opacity=Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);
}}
const $targetEl=effectTarget(params, $slideEl);
$targetEl.transform(transform).css({
opacity: opacityString
});
if(data.origin){
$targetEl.css('transform-origin', data.origin);
}}
};
const setTransition=duration=> {
const {
transformEl
}=swiper.params.creativeEffect;
const $transitionElements=transformEl ? swiper.slides.find(transformEl):swiper.slides;
$transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);
effectVirtualTransitionEnd({
swiper,
duration,
transformEl,
allSlides: true
});
};
effectInit({
effect: 'creative',
swiper,
on,
setTranslate,
setTransition,
perspective: ()=> swiper.params.creativeEffect.perspective,
overwriteParams: ()=> ({
watchSlidesProgress: true,
virtualTranslate: !swiper.params.cssMode
})
});
}
function EffectCards(_ref){
let {
swiper,
extendParams,
on
}=_ref;
extendParams({
cardsEffect: {
slideShadows: true,
transformEl: null,
rotate: true,
perSlideRotate: 2,
perSlideOffset: 8
}});
const setTranslate=()=> {
const {
slides,
activeIndex
}=swiper;
const params=swiper.params.cardsEffect;
const {
startTranslate,
isTouched
}=swiper.touchEventsData;
const currentTranslate=swiper.translate;
for (let i=0; i < slides.length; i +=1){
const $slideEl=slides.eq(i);
const slideProgress=$slideEl[0].progress;
const progress=Math.min(Math.max(slideProgress, -4), 4);
let offset=$slideEl[0].swiperSlideOffset;
if(swiper.params.centeredSlides&&!swiper.params.cssMode){
swiper.$wrapperEl.transform(`translateX(${swiper.minTranslate()}px)`);
}
if(swiper.params.centeredSlides&&swiper.params.cssMode){
offset -=slides[0].swiperSlideOffset;
}
let tX=swiper.params.cssMode ? -offset - swiper.translate:-offset;
let tY=0;
const tZ=-100 * Math.abs(progress);
let scale=1;
let rotate=-params.perSlideRotate * progress;
let tXAdd=params.perSlideOffset - Math.abs(progress) * 0.75;
const slideIndex=swiper.virtual&&swiper.params.virtual.enabled ? swiper.virtual.from + i:i;
const isSwipeToNext=(slideIndex===activeIndex||slideIndex===activeIndex - 1)&&progress > 0&&progress < 1&&(isTouched||swiper.params.cssMode)&&currentTranslate < startTranslate;
const isSwipeToPrev=(slideIndex===activeIndex||slideIndex===activeIndex + 1)&&progress < 0&&progress > -1&&(isTouched||swiper.params.cssMode)&&currentTranslate > startTranslate;
if(isSwipeToNext||isSwipeToPrev){
const subProgress=(1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;
rotate +=-28 * progress * subProgress;
scale +=-0.5 * subProgress;
tXAdd +=96 * subProgress;
tY=`${-25 * subProgress * Math.abs(progress)}%`;
}
if(progress < 0){
tX=`calc(${tX}px + (${tXAdd * Math.abs(progress)}%))`;
}else if(progress > 0){
tX=`calc(${tX}px + (-${tXAdd * Math.abs(progress)}%))`;
}else{
tX=`${tX}px`;
}
if(!swiper.isHorizontal()){
const prevY=tY;
tY=tX;
tX=prevY;
}
const scaleString=progress < 0 ? `${1 + (1 - scale) * progress}`:`${1 - (1 - scale) * progress}`;
const transform=`
translate3d(${tX}, ${tY}, ${tZ}px)
rotateZ(${params.rotate ? rotate:0}deg)
scale(${scaleString})
`;
if(params.slideShadows){
let $shadowEl=$slideEl.find('.swiper-slide-shadow');
if($shadowEl.length===0){
$shadowEl=createShadow(params, $slideEl);
}
if($shadowEl.length) $shadowEl[0].style.opacity=Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);
}
$slideEl[0].style.zIndex=-Math.abs(Math.round(slideProgress)) + slides.length;
const $targetEl=effectTarget(params, $slideEl);
$targetEl.transform(transform);
}};
const setTransition=duration=> {
const {
transformEl
}=swiper.params.cardsEffect;
const $transitionElements=transformEl ? swiper.slides.find(transformEl):swiper.slides;
$transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);
effectVirtualTransitionEnd({
swiper,
duration,
transformEl
});
};
effectInit({
effect: 'cards',
swiper,
on,
setTranslate,
setTransition,
perspective: ()=> true,
overwriteParams: ()=> ({
watchSlidesProgress: true,
virtualTranslate: !swiper.params.cssMode
})
});
}
const modules=[Virtual, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Parallax, Zoom, Lazy, Controller, A11y, History, HashNavigation, Autoplay, Thumb, freeMode, Grid, Manipulation, EffectFade, EffectCube, EffectFlip, EffectCoverflow, EffectCreative, EffectCards];
Swiper.use(modules);
return Swiper;
}));
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.sbjs=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
"use strict";
var init=_dereq_('./init');
var sbjs={
init: function(prefs){
this.get=init(prefs);
if(prefs&&prefs.callback&&typeof prefs.callback==='function'){
prefs.callback(this.get);
}}
};
module.exports=sbjs;
},{"./init":6}],2:[function(_dereq_,module,exports){
"use strict";
var terms=_dereq_('./terms'),
utils=_dereq_('./helpers/utils');
var data={
containers: {
current:          'sbjs_current',
current_extra:    'sbjs_current_add',
first:            'sbjs_first',
first_extra:      'sbjs_first_add',
session:          'sbjs_session',
udata:            'sbjs_udata',
promocode:        'sbjs_promo'
},
service: {
migrations:       'sbjs_migrations'
},
delimiter:          '|||',
aliases: {
main: {
type:           'typ',
source:         'src',
medium:         'mdm',
campaign:       'cmp',
content:        'cnt',
term:           'trm',
id:             'id',
platform:       'plt',
format:         'fmt',
tactic:         'tct'
},
extra: {
fire_date:      'fd',
entrance_point: 'ep',
referer:        'rf'
},
session: {
pages_seen:     'pgs',
current_page:   'cpg'
},
udata: {
visits:         'vst',
ip:             'uip',
agent:          'uag'
},
promo:            'code'
},
pack: {
main: function(sbjs){
return (
data.aliases.main.type      + '=' + sbjs.type     + data.delimiter +
data.aliases.main.source    + '=' + sbjs.source   + data.delimiter +
data.aliases.main.medium    + '=' + sbjs.medium   + data.delimiter +
data.aliases.main.campaign  + '=' + sbjs.campaign + data.delimiter +
data.aliases.main.content   + '=' + sbjs.content  + data.delimiter +
data.aliases.main.term      + '=' + sbjs.term     + data.delimiter +
data.aliases.main.id        + '=' + sbjs.id       + data.delimiter +
data.aliases.main.platform  + '=' + sbjs.platform + data.delimiter +
data.aliases.main.format    + '=' + sbjs.format   + data.delimiter +
data.aliases.main.tactic    + '=' + sbjs.tactic
);
},
extra: function(timezone_offset){
return (
data.aliases.extra.fire_date      + '=' + utils.setDate(new Date, timezone_offset) + data.delimiter +
data.aliases.extra.entrance_point + '=' + document.location.href                   + data.delimiter +
data.aliases.extra.referer        + '=' + (document.referrer||terms.none)
);
},
user: function(visits, user_ip){
return (
data.aliases.udata.visits + '=' + visits  + data.delimiter +
data.aliases.udata.ip     + '=' + user_ip + data.delimiter +
data.aliases.udata.agent  + '=' + navigator.userAgent
);
},
session: function(pages){
return (
data.aliases.session.pages_seen   + '=' + pages + data.delimiter +
data.aliases.session.current_page + '=' + document.location.href
);
},
promo: function(promo){
return (
data.aliases.promo + '=' + utils.setLeadingZeroToInt(utils.randomInt(promo.min, promo.max), promo.max.toString().length)
);
}}
};
module.exports=data;
},{"./helpers/utils":5,"./terms":9}],3:[function(_dereq_,module,exports){
"use strict";
var delimiter=_dereq_('../data').delimiter;
module.exports={
useBase64: false,
setBase64Flag: function(value){
this.useBase64=value;
},
encodeData: function(s){
return encodeURIComponent(s).replace(/\!/g, '%21')
.replace(/\~/g, '%7E')
.replace(/\*/g, '%2A')
.replace(/\'/g, '%27')
.replace(/\(/g, '%28')
.replace(/\)/g, '%29');
},
decodeData: function(s){
try {
return decodeURIComponent(s).replace(/\%21/g, '!')
.replace(/\%7E/g, '~')
.replace(/\%2A/g, '*')
.replace(/\%27/g, "'")
.replace(/\%28/g, '(')
.replace(/\%29/g, ')');
} catch(err1){
try { return unescape(s); } catch(err2){ return ''; }}
},
set: function(name, value, minutes, domain, excl_subdomains){
var expires, basehost;
if(minutes){
var date=new Date();
date.setTime(date.getTime() + (minutes * 60 * 1000));
expires='; expires=' + date.toGMTString();
}else{
expires='';
}
if(domain&&!excl_subdomains){
basehost=';domain=.' + domain;
}else{
basehost='';
}
var cookie_content=this.encodeData(value);
if(this.useBase64){
cookie_content=btoa(cookie_content).replace(/=+$/, '');
}
document.cookie=this.encodeData(name) + '=' + cookie_content + expires + basehost + '; path=/';
},
get: function(name){
var nameEQ=this.encodeData(name) + '=',
ca=document.cookie.split(';');
for (var i=0; i < ca.length; i++){
var c=ca[i];
while (c.charAt(0)===' '){ c=c.substring(1, c.length); }
if(c.indexOf(nameEQ)===0){
var cookie_content=c.substring(nameEQ.length, c.length);
if(/^[A-Za-z0-9+/]+$/.test(cookie_content)){
try {
cookie_content=atob(cookie_content.padEnd(Math.ceil(cookie_content.length / 4) * 4, "="));
} catch (error){
}}
return this.decodeData(cookie_content);
}}
return null;
},
destroy: function(name, domain, excl_subdomains){
this.set(name, '', -1, domain, excl_subdomains);
},
parse: function(yummy){
var cookies=[],
data={};
if(typeof yummy==='string'){
cookies.push(yummy);
}else{
for (var prop in yummy){
if(yummy.hasOwnProperty(prop)){
cookies.push(yummy[prop]);
}}
}
for (var i1=0; i1 < cookies.length; i1++){
var cookie_array;
data[this.unsbjs(cookies[i1])]={};
if(this.get(cookies[i1])){
cookie_array=this.get(cookies[i1]).split(delimiter);
}else{
cookie_array=[];
}
for (var i2=0; i2 < cookie_array.length; i2++){
var tmp_array=cookie_array[i2].split('='),
result_array=tmp_array.splice(0, 1);
result_array.push(tmp_array.join('='));
data[this.unsbjs(cookies[i1])][result_array[0]]=this.decodeData(result_array[1]);
}}
return data;
},
unsbjs: function (string){
return string.replace('sbjs_', '');
}};},{"../data":2}],4:[function(_dereq_,module,exports){
"use strict";
module.exports={
parse: function(str){
var o=this.parseOptions,
m=o.parser[o.strictMode ? 'strict':'loose'].exec(str),
uri={},
i=14;
while (i--){ uri[o.key[i]]=m[i]||''; }
uri[o.q.name]={};
uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2){
if($1){ uri[o.q.name][$1]=$2; }});
return uri;
},
parseOptions: {
strictMode: false,
key: ['source','protocol','authority','userInfo','user','password','host','port','relative','path','directory','file','query','anchor'],
q: {
name:   'queryKey',
parser: /(?:^|&)([^&=]*)=?([^&]*)/g
},
parser: {
strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
loose:  /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
}},
getParam: function(custom_params){
var query_string={},
query=custom_params ? custom_params:window.location.search.substring(1),
vars=query.split('&');
for (var i=0; i < vars.length; i++){
var pair=vars[i].split('=');
if(typeof query_string[pair[0]]==='undefined'){
query_string[pair[0]]=pair[1];
}else if(typeof query_string[pair[0]]==='string'){
var arr=[ query_string[pair[0]], pair[1] ];
query_string[pair[0]]=arr;
}else{
query_string[pair[0]].push(pair[1]);
}}
return query_string;
},
getHost: function(request){
return this.parse(request).host.replace('www.', '');
}};},{}],5:[function(_dereq_,module,exports){
"use strict";
module.exports={
escapeRegexp: function(string){
return string.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
},
setDate: function(date, offset){
var utc_offset=date.getTimezoneOffset() / 60,
now_hours=date.getHours(),
custom_offset=offset||offset===0 ? offset:-utc_offset;
date.setHours(now_hours + utc_offset + custom_offset);
var year=date.getFullYear(),
month=this.setLeadingZeroToInt(date.getMonth() + 1,   2),
day=this.setLeadingZeroToInt(date.getDate(),        2),
hour=this.setLeadingZeroToInt(date.getHours(),       2),
minute=this.setLeadingZeroToInt(date.getMinutes(),     2),
second=this.setLeadingZeroToInt(date.getSeconds(),     2);
return (year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second);
},
setLeadingZeroToInt: function(num, size){
var s=num + '';
while (s.length < size){ s='0' + s; }
return s;
},
randomInt: function(min, max){
return Math.floor(Math.random() * (max - min + 1)) + min;
}};},{}],6:[function(_dereq_,module,exports){
"use strict";
var data=_dereq_('./data'),
terms=_dereq_('./terms'),
cookies=_dereq_('./helpers/cookies'),
uri=_dereq_('./helpers/uri'),
utils=_dereq_('./helpers/utils'),
params=_dereq_('./params'),
migrations=_dereq_('./migrations');
module.exports=function(prefs){
var p=params.fetch(prefs);
var get_param=uri.getParam();
var domain=p.domain.host,
isolate=p.domain.isolate,
lifetime=p.lifetime;
cookies.setBase64Flag(p.base64);
migrations.go(lifetime, domain, isolate);
var __sbjs_type,
__sbjs_source,
__sbjs_medium,
__sbjs_campaign,
__sbjs_content,
__sbjs_term,
__sbjs_id,
__sbjs_platform,
__sbjs_format,
__sbjs_tactic;
function mainData(){
var sbjs_data;
if(typeof get_param.utm_source!=='undefined' ||
typeof get_param.utm_medium!=='undefined' ||
typeof get_param.utm_campaign!=='undefined' ||
typeof get_param.utm_content!=='undefined' ||
typeof get_param.utm_term!=='undefined' ||
typeof get_param.utm_id!=='undefined' ||
typeof get_param.utm_source_platform!=='undefined' ||
typeof get_param.utm_creative_format!=='undefined' ||
typeof get_param.utm_marketing_tactic!=='undefined' ||
typeof get_param.gclid!=='undefined' ||
typeof get_param.yclid!=='undefined' ||
typeof get_param[p.campaign_param]!=='undefined' ||
typeof get_param[p.term_param]!=='undefined' ||
typeof get_param[p.content_param]!=='undefined'
){
setFirstAndCurrentExtraData();
sbjs_data=getData(terms.traffic.utm);
}else if(checkReferer(terms.traffic.organic)){
setFirstAndCurrentExtraData();
sbjs_data=getData(terms.traffic.organic);
}else if(!cookies.get(data.containers.session)&&checkReferer(terms.traffic.referral)){
setFirstAndCurrentExtraData();
sbjs_data=getData(terms.traffic.referral);
}else if(!cookies.get(data.containers.first)&&!cookies.get(data.containers.current)){
setFirstAndCurrentExtraData();
sbjs_data=getData(terms.traffic.typein);
}else{
return cookies.get(data.containers.current);
}
return sbjs_data;
}
function getData(type){
switch (type){
case terms.traffic.utm:
__sbjs_type=terms.traffic.utm;
if(typeof get_param.utm_source!=='undefined'){
__sbjs_source=get_param.utm_source;
}else if(typeof get_param.gclid!=='undefined'){
__sbjs_source='google';
}else if(typeof get_param.yclid!=='undefined'){
__sbjs_source='yandex';
}else{
__sbjs_source=terms.none;
}
if(typeof get_param.utm_medium!=='undefined'){
__sbjs_medium=get_param.utm_medium;
}else if(typeof get_param.gclid!=='undefined'){
__sbjs_medium='cpc';
}else if(typeof get_param.yclid!=='undefined'){
__sbjs_medium='cpc';
}else{
__sbjs_medium=terms.none;
}
if(typeof get_param.utm_campaign!=='undefined'){
__sbjs_campaign=get_param.utm_campaign;
}else if(typeof get_param[p.campaign_param]!=='undefined'){
__sbjs_campaign=get_param[p.campaign_param];
}else if(typeof get_param.gclid!=='undefined'){
__sbjs_campaign='google_cpc';
}else if(typeof get_param.yclid!=='undefined'){
__sbjs_campaign='yandex_cpc';
}else{
__sbjs_campaign=terms.none;
}
if(typeof get_param.utm_content!=='undefined'){
__sbjs_content=get_param.utm_content;
}else if(typeof get_param[p.content_param]!=='undefined'){
__sbjs_content=get_param[p.content_param];
}else{
__sbjs_content=terms.none;
}
__sbjs_id=get_param.utm_id||terms.none;
__sbjs_platform=get_param.utm_source_platform||terms.none;
__sbjs_format=get_param.utm_creative_format||terms.none;
__sbjs_tactic=get_param.utm_marketing_tactic||terms.none;
if(typeof get_param.utm_term!=='undefined'){
__sbjs_term=get_param.utm_term;
}else if(typeof get_param[p.term_param]!=='undefined'){
__sbjs_term=get_param[p.term_param];
}else{
__sbjs_term=getUtmTerm()||terms.none;
}
break;
case terms.traffic.organic:
__sbjs_type=terms.traffic.organic;
__sbjs_source=__sbjs_source||uri.getHost(document.referrer);
__sbjs_medium=terms.referer.organic;
__sbjs_campaign=terms.none;
__sbjs_content=terms.none;
__sbjs_term=terms.none;
__sbjs_id=terms.none;
__sbjs_platform=terms.none;
__sbjs_format=terms.none;
__sbjs_tactic=terms.none;
break;
case terms.traffic.referral:
__sbjs_type=terms.traffic.referral;
__sbjs_source=__sbjs_source||uri.getHost(document.referrer);
__sbjs_medium=__sbjs_medium||terms.referer.referral;
__sbjs_campaign=terms.none;
__sbjs_content=uri.parse(document.referrer).path;
__sbjs_term=terms.none;
__sbjs_id=terms.none;
__sbjs_platform=terms.none;
__sbjs_format=terms.none;
__sbjs_tactic=terms.none;
break;
case terms.traffic.typein:
__sbjs_type=terms.traffic.typein;
__sbjs_source=p.typein_attributes.source;
__sbjs_medium=p.typein_attributes.medium;
__sbjs_campaign=terms.none;
__sbjs_content=terms.none;
__sbjs_term=terms.none;
__sbjs_id=terms.none;
__sbjs_platform=terms.none;
__sbjs_format=terms.none;
__sbjs_tactic=terms.none;
break;
default:
__sbjs_type=terms.oops;
__sbjs_source=terms.oops;
__sbjs_medium=terms.oops;
__sbjs_campaign=terms.oops;
__sbjs_content=terms.oops;
__sbjs_term=terms.oops;
__sbjs_id=terms.oops;
__sbjs_platform=terms.oops;
__sbjs_format=terms.oops;
__sbjs_tactic=terms.oops;
}
var sbjs_data={
type:             __sbjs_type,
source:           __sbjs_source,
medium:           __sbjs_medium,
campaign:         __sbjs_campaign,
content:          __sbjs_content,
term:             __sbjs_term,
id:               __sbjs_id,
platform:         __sbjs_platform,
format:           __sbjs_format,
tactic:           __sbjs_tactic
};
return data.pack.main(sbjs_data);
}
function getUtmTerm(){
var referer=document.referrer;
if(get_param.utm_term){
return get_param.utm_term;
}else if(referer&&uri.parse(referer).host&&uri.parse(referer).host.match(/^(?:.*\.)?yandex\..{2,9}$/i)){
try {
return uri.getParam(uri.parse(document.referrer).query).text;
} catch (err){
return false;
}}else{
return false;
}}
function checkReferer(type){
var referer=document.referrer;
switch(type){
case terms.traffic.organic:
return (!!referer&&checkRefererHost(referer)&&isOrganic(referer));
case terms.traffic.referral:
return (!!referer&&checkRefererHost(referer)&&isReferral(referer));
default:
return false;
}}
function checkRefererHost(referer){
if(p.domain){
if(!isolate){
var host_regex=new RegExp('^(?:.*\\.)?' + utils.escapeRegexp(domain) + '$', 'i');
return !(uri.getHost(referer).match(host_regex));
}else{
return (uri.getHost(referer)!==uri.getHost(domain));
}}else{
return (uri.getHost(referer)!==uri.getHost(document.location.href));
}}
function isOrganic(referer){
var y_host='yandex',
y_param='text',
g_host='google';
var y_host_regex=new RegExp('^(?:.*\\.)?'  + utils.escapeRegexp(y_host)  + '\\..{2,9}$'),
y_param_regex=new RegExp('.*'           + utils.escapeRegexp(y_param) + '=.*'),
g_host_regex=new RegExp('^(?:www\\.)?' + utils.escapeRegexp(g_host)  + '\\..{2,9}$');
if(!!uri.parse(referer).query &&
!!uri.parse(referer).host.match(y_host_regex) &&
!!uri.parse(referer).query.match(y_param_regex)
){
__sbjs_source=y_host;
return true;
}else if(!!uri.parse(referer).host.match(g_host_regex)){
__sbjs_source=g_host;
return true;
}else if(!!uri.parse(referer).query){
for (var i=0; i < p.organics.length; i++){
if(uri.parse(referer).host.match(new RegExp('^(?:.*\\.)?' + utils.escapeRegexp(p.organics[i].host)  + '$', 'i')) &&
uri.parse(referer).query.match(new RegExp('.*'         + utils.escapeRegexp(p.organics[i].param) + '=.*', 'i'))
){
__sbjs_source=p.organics[i].display||p.organics[i].host;
return true;
}
if(i + 1===p.organics.length){
return false;
}}
}else{
return false;
}}
function isReferral(referer){
if(p.referrals.length > 0){
for (var i=0; i < p.referrals.length; i++){
if(uri.parse(referer).host.match(new RegExp('^(?:.*\\.)?' + utils.escapeRegexp(p.referrals[i].host) + '$', 'i'))){
__sbjs_source=p.referrals[i].display||p.referrals[i].host;
__sbjs_medium=p.referrals[i].medium||terms.referer.referral;
return true;
}
if(i + 1===p.referrals.length){
__sbjs_source=uri.getHost(referer);
return true;
}}
}else{
__sbjs_source=uri.getHost(referer);
return true;
}}
function setFirstAndCurrentExtraData(){
cookies.set(data.containers.current_extra, data.pack.extra(p.timezone_offset), lifetime, domain, isolate);
if(!cookies.get(data.containers.first_extra)){
cookies.set(data.containers.first_extra, data.pack.extra(p.timezone_offset), lifetime, domain, isolate);
}}
(function setData(){
cookies.set(data.containers.current, mainData(), lifetime, domain, isolate);
if(!cookies.get(data.containers.first)){
cookies.set(data.containers.first, cookies.get(data.containers.current), lifetime, domain, isolate);
}
var visits, udata;
if(!cookies.get(data.containers.udata)){
visits=1;
udata=data.pack.user(visits, p.user_ip);
}else{
visits=parseInt(cookies.parse(data.containers.udata)[cookies.unsbjs(data.containers.udata)][data.aliases.udata.visits])||1;
visits=cookies.get(data.containers.session) ? visits:visits + 1;
udata=data.pack.user(visits, p.user_ip);
}
cookies.set(data.containers.udata, udata, lifetime, domain, isolate);
var pages_count;
if(!cookies.get(data.containers.session)){
pages_count=1;
}else{
pages_count=parseInt(cookies.parse(data.containers.session)[cookies.unsbjs(data.containers.session)][data.aliases.session.pages_seen])||1;
pages_count +=1;
}
cookies.set(data.containers.session, data.pack.session(pages_count), p.session_length, domain, isolate);
if(p.promocode&&!cookies.get(data.containers.promocode)){
cookies.set(data.containers.promocode, data.pack.promo(p.promocode), lifetime, domain, isolate);
}})();
return cookies.parse(data.containers);
};},{"./data":2,"./helpers/cookies":3,"./helpers/uri":4,"./helpers/utils":5,"./migrations":7,"./params":8,"./terms":9}],7:[function(_dereq_,module,exports){
"use strict";
var data=_dereq_('./data'),
cookies=_dereq_('./helpers/cookies');
module.exports={
go: function(lifetime, domain, isolate){
var migrate=this.migrations,
_with={ l: lifetime, d: domain, i: isolate };
var i;
if(!cookies.get(data.containers.first)&&!cookies.get(data.service.migrations)){
var mids=[];
for (i=0; i < migrate.length; i++){ mids.push(migrate[i].id); }
var advance='';
for (i=0; i < mids.length; i++){
advance +=mids[i] + '=1';
if(i < mids.length - 1){ advance +=data.delimiter; }}
cookies.set(data.service.migrations, advance, _with.l, _with.d, _with.i);
}else if(!cookies.get(data.service.migrations)){
for (i=0; i < migrate.length; i++){
migrate[i].go(migrate[i].id, _with);
}}
},
migrations: [
{
id: '1418474375998',
version: '1.0.0-beta',
go: function(mid, _with){
var success=mid + '=1',
fail=mid + '=0';
var safeReplace=function($0, $1, $2){
return ($1||$2 ? $0:data.delimiter);
};
try {
var _in=[];
for (var prop in data.containers){
if(data.containers.hasOwnProperty(prop)){
_in.push(data.containers[prop]);
}}
for (var i=0; i < _in.length; i++){
if(cookies.get(_in[i])){
var buffer=cookies.get(_in[i]).replace(/(\|)?\|(\|)?/g, safeReplace);
cookies.destroy(_in[i], _with.d, _with.i);
cookies.destroy(_in[i], _with.d, !_with.i);
cookies.set(_in[i], buffer, _with.l, _with.d, _with.i);
}}
if(cookies.get(data.containers.session)){
cookies.set(data.containers.session, data.pack.session(0), _with.l, _with.d, _with.i);
}
cookies.set(data.service.migrations, success, _with.l, _with.d, _with.i);
} catch (err){
cookies.set(data.service.migrations, fail, _with.l, _with.d, _with.i);
}}
}
]
};},{"./data":2,"./helpers/cookies":3}],8:[function(_dereq_,module,exports){
"use strict";
var terms=_dereq_('./terms'),
uri=_dereq_('./helpers/uri');
module.exports={
fetch: function(prefs){
var user=prefs||{},
params={};
params.lifetime=this.validate.checkFloat(user.lifetime)||6;
params.lifetime=parseInt(params.lifetime * 30 * 24 * 60);
params.session_length=this.validate.checkInt(user.session_length)||30;
params.timezone_offset=this.validate.checkInt(user.timezone_offset);
params.base64=user.base64||false;
params.campaign_param=user.campaign_param||false;
params.term_param=user.term_param||false;
params.content_param=user.content_param||false;
params.user_ip=user.user_ip||terms.none;
if(user.promocode){
params.promocode={};
params.promocode.min=parseInt(user.promocode.min)||100000;
params.promocode.max=parseInt(user.promocode.max)||999999;
}else{
params.promocode=false;
}
if(user.typein_attributes&&user.typein_attributes.source&&user.typein_attributes.medium){
params.typein_attributes={};
params.typein_attributes.source=user.typein_attributes.source;
params.typein_attributes.medium=user.typein_attributes.medium;
}else{
params.typein_attributes={ source: '(direct)', medium: '(none)' };}
if(user.domain&&this.validate.isString(user.domain)){
params.domain={ host: user.domain, isolate: false };}else if(user.domain&&user.domain.host){
params.domain=user.domain;
}else{
params.domain={ host: uri.getHost(document.location.hostname), isolate: false };}
params.referrals=[];
if(user.referrals&&user.referrals.length > 0){
for (var ir=0; ir < user.referrals.length; ir++){
if(user.referrals[ir].host){
params.referrals.push(user.referrals[ir]);
}}
}
params.organics=[];
if(user.organics&&user.organics.length > 0){
for (var io=0; io < user.organics.length; io++){
if(user.organics[io].host&&user.organics[io].param){
params.organics.push(user.organics[io]);
}}
}
params.organics.push({ host: 'bing.com',      param: 'q',     display: 'bing'            });
params.organics.push({ host: 'yahoo.com',     param: 'p',     display: 'yahoo'           });
params.organics.push({ host: 'about.com',     param: 'q',     display: 'about'           });
params.organics.push({ host: 'aol.com',       param: 'q',     display: 'aol'             });
params.organics.push({ host: 'ask.com',       param: 'q',     display: 'ask'             });
params.organics.push({ host: 'globososo.com', param: 'q',     display: 'globo'           });
params.organics.push({ host: 'go.mail.ru',    param: 'q',     display: 'go.mail.ru'      });
params.organics.push({ host: 'rambler.ru',    param: 'query', display: 'rambler'         });
params.organics.push({ host: 'tut.by',        param: 'query', display: 'tut.by'          });
params.referrals.push({ host: 't.co',                         display: 'twitter.com'     });
params.referrals.push({ host: 'plus.url.google.com',          display: 'plus.google.com' });
return params;
},
validate: {
checkFloat: function(v){
return v&&this.isNumeric(parseFloat(v)) ? parseFloat(v):false;
},
checkInt: function(v){
return v&&this.isNumeric(parseInt(v)) ? parseInt(v):false;
},
isNumeric: function(v){
return !isNaN(v);
},
isString: function(v){
return Object.prototype.toString.call(v)==='[object String]';
}}
};},{"./helpers/uri":4,"./terms":9}],9:[function(_dereq_,module,exports){
"use strict";
module.exports={
traffic: {
utm:        'utm',
organic:    'organic',
referral:   'referral',
typein:     'typein'
},
referer: {
referral:   'referral',
organic:    'organic',
social:     'social'
},
none:         '(none)',
oops:         '(Houston, we have a problem)'
};},{}]},{},[1])(1)
});
(function(wc_order_attribution){
'use strict';
const params=wc_order_attribution.params;
const $=document.querySelector.bind(document);
const propertyAccessor=(obj, path)=> path.split('.').reduce(( acc, part)=> acc&&acc[ part ], obj);
const returnNull=()=> null;
const stringifyFalsyInputValue=(value)=> value===null||value===undefined ? '':value;
const CHECKOUT_STORE_KEY='wc/store/checkout';
wc_order_attribution.getAttributionData=function(){
const accessor=params.allowTracking&&isSbjsAvailable() ? propertyAccessor:returnNull;
const getter=isSbjsAvailable() ? sbjs.get:{};
const entries=Object.entries(wc_order_attribution.fields)
.map(( [ key, property ])=> [ key, accessor(getter, property) ]);
return Object.fromEntries(entries);
}
function removeDuplicateInputGroups(){
document.querySelectorAll('wc-order-attribution-inputs').forEach(( group, index)=> {
if(index > 0){
group.remove();
}});
}
function updateFormValues(values){
removeDuplicateInputGroups();
for(const element of document.querySelectorAll('wc-order-attribution-inputs') ){
element.values=values;
}};
function updateCheckoutBlockData(values){
if(window.wp &&
window.wp.data &&
window.wp.data.dispatch &&
window.wc &&
window.wc.wcBlocksData
){
window.wp.data
.dispatch(window.wc.wcBlocksData.CHECKOUT_STORE_KEY)
.setExtensionData('woocommerce/order-attribution',
values,
true
);
}}
function isSbjsAvailable(){
return typeof sbjs!=='undefined';
}
wc_order_attribution.setOrderTracking=function(allow){
params.allowTracking=allow;
if(! allow){
removeTrackingCookies();
}else if(! isSbjsAvailable()){
return;
}else{
sbjs.init({
lifetime: Number(params.lifetime),
session_length: Number(params.session),
base64: Boolean(params.base64),
timezone_offset: '0',
});
}
const values=wc_order_attribution.getAttributionData();
updateFormValues(values);
updateCheckoutBlockData(values);
}
function removeTrackingCookies(){
const domain=window.location.hostname;
const sbCookies=[
'sbjs_current',
'sbjs_current_add',
'sbjs_first',
'sbjs_first_add',
'sbjs_session',
'sbjs_udata',
'sbjs_migrations',
'sbjs_promo'
];
sbCookies.forEach(( name)=> {
document.cookie=`${name}=; path=/; max-age=-999; domain=.${domain};`;
});
}
wc_order_attribution.setOrderTracking(params.allowTracking);
function eventuallyInitializeCheckoutBlock(){
if(window.wp&&window.wp.data&&typeof window.wp.data.subscribe==='function'
){
const unsubscribe=window.wp.data.subscribe(function (){
unsubscribe();
updateCheckoutBlockData(wc_order_attribution.getAttributionData());
}, CHECKOUT_STORE_KEY);
}};
if(document.readyState==="loading"){
document.addEventListener("DOMContentLoaded", eventuallyInitializeCheckoutBlock);
}else{
eventuallyInitializeCheckoutBlock();
}
window.customElements.define('wc-order-attribution-inputs', class extends HTMLElement {
constructor(){
super();
this._fieldNames=Object.keys(wc_order_attribution.fields);
if(this.hasOwnProperty('_values') ){
let values=this.values;
delete this.values;
this.values=values||{};}}
connectedCallback(){
this.innerHTML='';
const inputs=new DocumentFragment();
for(const fieldName of this._fieldNames){
const input=document.createElement('input');
input.type='hidden';
input.name=`${params.prefix}${fieldName}`;
input.value=stringifyFalsyInputValue(( this.values&&this.values[ fieldName ])||'');
inputs.appendChild(input);
}
this.appendChild(inputs);
}
set values(values){
this._values=values;
if(this.isConnected){
for(const fieldName of this._fieldNames){
const input=this.querySelector(`input[name="${params.prefix}${fieldName}"]`);
if(input){
input.value=stringifyFalsyInputValue(this.values[ fieldName ]);
}else{
console.warn(`Field "${fieldName}" not found. ` +
`Most likely, the '<wc-order-attribution-inputs>' element was manipulated.`
);
}}
}}
get values(){
return this._values;
}});
}(window.wc_order_attribution) );