').parent(),e.$slideTrack.css(\"opacity\",0),e.options.centerMode!==!0&&e.options.swipeToSlide!==!0||(e.options.slidesToScroll=1),i(\"img[data-lazy]\",e.$slider).not(\"[src]\").addClass(\"slick-loading\"),e.setupInfinite(),e.buildArrows(),e.buildDots(),e.updateDots(),e.setSlideClasses(\"number\"==typeof e.currentSlide?e.currentSlide:0),e.options.draggable===!0&&e.$list.addClass(\"draggable\")},e.prototype.buildRows=function(){var i,e,t,o,s,n,r,l=this;if(o=document.createDocumentFragment(),n=l.$slider.children(),l.options.rows>0){for(r=l.options.slidesPerRow*l.options.rows,s=Math.ceil(n.length/r),i=0;i
r.breakpoints[o]&&(s=r.breakpoints[o]));null!==s?null!==r.activeBreakpoint?(s!==r.activeBreakpoint||t)&&(r.activeBreakpoint=s,\"unslick\"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),e===!0&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):(r.activeBreakpoint=s,\"unslick\"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),e===!0&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):null!==r.activeBreakpoint&&(r.activeBreakpoint=null,r.options=r.originalSettings,e===!0&&(r.currentSlide=r.options.initialSlide),r.refresh(e),l=s),e||l===!1||r.$slider.trigger(\"breakpoint\",[r,l])}},e.prototype.changeSlide=function(e,t){var o,s,n,r=this,l=i(e.currentTarget);switch(l.is(\"a\")&&e.preventDefault(),l.is(\"li\")||(l=l.closest(\"li\")),n=r.slideCount%r.options.slidesToScroll!==0,o=n?0:(r.slideCount-r.currentSlide)%r.options.slidesToScroll,e.data.message){case\"previous\":s=0===o?r.options.slidesToScroll:r.options.slidesToShow-o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide-s,!1,t);break;case\"next\":s=0===o?r.options.slidesToScroll:o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide+s,!1,t);break;case\"index\":var d=0===e.data.index?0:e.data.index||l.index()*r.options.slidesToScroll;r.slideHandler(r.checkNavigable(d),!1,t),l.children().trigger(\"focus\");break;default:return}},e.prototype.checkNavigable=function(i){var e,t,o=this;if(e=o.getNavigableIndexes(),t=0,i>e[e.length-1])i=e[e.length-1];else for(var s in e){if(ie.options.slidesToShow&&(e.$prevArrow&&e.$prevArrow.off(\"click.slick\",e.changeSlide),e.$nextArrow&&e.$nextArrow.off(\"click.slick\",e.changeSlide),e.options.accessibility===!0&&(e.$prevArrow&&e.$prevArrow.off(\"keydown.slick\",e.keyHandler),e.$nextArrow&&e.$nextArrow.off(\"keydown.slick\",e.keyHandler))),e.$list.off(\"touchstart.slick mousedown.slick\",e.swipeHandler),e.$list.off(\"touchmove.slick mousemove.slick\",e.swipeHandler),e.$list.off(\"touchend.slick mouseup.slick\",e.swipeHandler),e.$list.off(\"touchcancel.slick mouseleave.slick\",e.swipeHandler),e.$list.off(\"click.slick\",e.clickHandler),i(document).off(e.visibilityChange,e.visibility),e.cleanUpSlideEvents(),e.options.accessibility===!0&&e.$list.off(\"keydown.slick\",e.keyHandler),e.options.focusOnSelect===!0&&i(e.$slideTrack).children().off(\"click.slick\",e.selectHandler),i(window).off(\"orientationchange.slick.slick-\"+e.instanceUid,e.orientationChange),i(window).off(\"resize.slick.slick-\"+e.instanceUid,e.resize),i(\"[draggable!=true]\",e.$slideTrack).off(\"dragstart\",e.preventDefault),i(window).off(\"load.slick.slick-\"+e.instanceUid,e.setPosition)},e.prototype.cleanUpSlideEvents=function(){var e=this;e.$list.off(\"mouseenter.slick\",i.proxy(e.interrupt,e,!0)),e.$list.off(\"mouseleave.slick\",i.proxy(e.interrupt,e,!1))},e.prototype.cleanUpRows=function(){var i,e=this;e.options.rows>0&&(i=e.$slides.children().children(),i.removeAttr(\"style\"),e.$slider.empty().append(i))},e.prototype.clickHandler=function(i){var e=this;e.shouldClick===!1&&(i.stopImmediatePropagation(),i.stopPropagation(),i.preventDefault())},e.prototype.destroy=function(e){var t=this;t.autoPlayClear(),t.touchObject={},t.cleanUpEvents(),i(\".slick-cloned\",t.$slider).detach(),t.$dots&&t.$dots.remove(),t.$prevArrow&&t.$prevArrow.length&&(t.$prevArrow.removeClass(\"slick-disabled slick-arrow slick-hidden\").removeAttr(\"aria-hidden aria-disabled tabindex\").css(\"display\",\"\"),t.htmlExpr.test(t.options.prevArrow)&&t.$prevArrow.remove()),t.$nextArrow&&t.$nextArrow.length&&(t.$nextArrow.removeClass(\"slick-disabled slick-arrow slick-hidden\").removeAttr(\"aria-hidden aria-disabled tabindex\").css(\"display\",\"\"),t.htmlExpr.test(t.options.nextArrow)&&t.$nextArrow.remove()),t.$slides&&(t.$slides.removeClass(\"slick-slide slick-active slick-center slick-visible slick-current\").removeAttr(\"aria-hidden\").removeAttr(\"data-slick-index\").each(function(){i(this).attr(\"style\",i(this).data(\"originalStyling\"))}),t.$slideTrack.children(this.options.slide).detach(),t.$slideTrack.detach(),t.$list.detach(),t.$slider.append(t.$slides)),t.cleanUpRows(),t.$slider.removeClass(\"slick-slider\"),t.$slider.removeClass(\"slick-initialized\"),t.$slider.removeClass(\"slick-dotted\"),t.unslicked=!0,e||t.$slider.trigger(\"destroy\",[t])},e.prototype.disableTransition=function(i){var e=this,t={};t[e.transitionType]=\"\",e.options.fade===!1?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.fadeSlide=function(i,e){var t=this;t.cssTransitions===!1?(t.$slides.eq(i).css({zIndex:t.options.zIndex}),t.$slides.eq(i).animate({opacity:1},t.options.speed,t.options.easing,e)):(t.applyTransition(i),t.$slides.eq(i).css({opacity:1,zIndex:t.options.zIndex}),e&&setTimeout(function(){t.disableTransition(i),e.call()},t.options.speed))},e.prototype.fadeSlideOut=function(i){var e=this;e.cssTransitions===!1?e.$slides.eq(i).animate({opacity:0,zIndex:e.options.zIndex-2},e.options.speed,e.options.easing):(e.applyTransition(i),e.$slides.eq(i).css({opacity:0,zIndex:e.options.zIndex-2}))},e.prototype.filterSlides=e.prototype.slickFilter=function(i){var e=this;null!==i&&(e.$slidesCache=e.$slides,e.unload(),e.$slideTrack.children(this.options.slide).detach(),e.$slidesCache.filter(i).appendTo(e.$slideTrack),e.reinit())},e.prototype.focusHandler=function(){var e=this;e.$slider.off(\"focus.slick blur.slick\").on(\"focus.slick\",\"*\",function(t){var o=i(this);setTimeout(function(){e.options.pauseOnFocus&&o.is(\":focus\")&&(e.focussed=!0,e.autoPlay())},0)}).on(\"blur.slick\",\"*\",function(t){i(this);e.options.pauseOnFocus&&(e.focussed=!1,e.autoPlay())})},e.prototype.getCurrent=e.prototype.slickCurrentSlide=function(){var i=this;return i.currentSlide},e.prototype.getDotCount=function(){var i=this,e=0,t=0,o=0;if(i.options.infinite===!0)if(i.slideCount<=i.options.slidesToShow)++o;else for(;en.options.slidesToShow&&(n.slideOffset=n.slideWidth*n.options.slidesToShow*-1,s=-1,n.options.vertical===!0&&n.options.centerMode===!0&&(2===n.options.slidesToShow?s=-1.5:1===n.options.slidesToShow&&(s=-2)),r=t*n.options.slidesToShow*s),n.slideCount%n.options.slidesToScroll!==0&&i+n.options.slidesToScroll>n.slideCount&&n.slideCount>n.options.slidesToShow&&(i>n.slideCount?(n.slideOffset=(n.options.slidesToShow-(i-n.slideCount))*n.slideWidth*-1,r=(n.options.slidesToShow-(i-n.slideCount))*t*-1):(n.slideOffset=n.slideCount%n.options.slidesToScroll*n.slideWidth*-1,r=n.slideCount%n.options.slidesToScroll*t*-1))):i+n.options.slidesToShow>n.slideCount&&(n.slideOffset=(i+n.options.slidesToShow-n.slideCount)*n.slideWidth,r=(i+n.options.slidesToShow-n.slideCount)*t),n.slideCount<=n.options.slidesToShow&&(n.slideOffset=0,r=0),n.options.centerMode===!0&&n.slideCount<=n.options.slidesToShow?n.slideOffset=n.slideWidth*Math.floor(n.options.slidesToShow)/2-n.slideWidth*n.slideCount/2:n.options.centerMode===!0&&n.options.infinite===!0?n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)-n.slideWidth:n.options.centerMode===!0&&(n.slideOffset=0,n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)),e=n.options.vertical===!1?i*n.slideWidth*-1+n.slideOffset:i*t*-1+r,n.options.variableWidth===!0&&(o=n.slideCount<=n.options.slidesToShow||n.options.infinite===!1?n.$slideTrack.children(\".slick-slide\").eq(i):n.$slideTrack.children(\".slick-slide\").eq(i+n.options.slidesToShow),e=n.options.rtl===!0?o[0]?(n.$slideTrack.width()-o[0].offsetLeft-o.width())*-1:0:o[0]?o[0].offsetLeft*-1:0,n.options.centerMode===!0&&(o=n.slideCount<=n.options.slidesToShow||n.options.infinite===!1?n.$slideTrack.children(\".slick-slide\").eq(i):n.$slideTrack.children(\".slick-slide\").eq(i+n.options.slidesToShow+1),e=n.options.rtl===!0?o[0]?(n.$slideTrack.width()-o[0].offsetLeft-o.width())*-1:0:o[0]?o[0].offsetLeft*-1:0,e+=(n.$list.width()-o.outerWidth())/2)),e},e.prototype.getOption=e.prototype.slickGetOption=function(i){var e=this;return e.options[i]},e.prototype.getNavigableIndexes=function(){var i,e=this,t=0,o=0,s=[];for(e.options.infinite===!1?i=e.slideCount:(t=e.options.slidesToScroll*-1,o=e.options.slidesToScroll*-1,i=2*e.slideCount);t=0&&ii.options.slidesToShow&&(i.$prevArrow.off(\"click.slick\").on(\"click.slick\",{message:\"previous\"},i.changeSlide),i.$nextArrow.off(\"click.slick\").on(\"click.slick\",{message:\"next\"},i.changeSlide),i.options.accessibility===!0&&(i.$prevArrow.on(\"keydown.slick\",i.keyHandler),i.$nextArrow.on(\"keydown.slick\",i.keyHandler)))},e.prototype.initDotEvents=function(){var e=this;e.options.dots===!0&&e.slideCount>e.options.slidesToShow&&(i(\"li\",e.$dots).on(\"click.slick\",{message:\"index\"},e.changeSlide),e.options.accessibility===!0&&e.$dots.on(\"keydown.slick\",e.keyHandler)),e.options.dots===!0&&e.options.pauseOnDotsHover===!0&&e.slideCount>e.options.slidesToShow&&i(\"li\",e.$dots).on(\"mouseenter.slick\",i.proxy(e.interrupt,e,!0)).on(\"mouseleave.slick\",i.proxy(e.interrupt,e,!1))},e.prototype.initSlideEvents=function(){var e=this;e.options.pauseOnHover&&(e.$list.on(\"mouseenter.slick\",i.proxy(e.interrupt,e,!0)),e.$list.on(\"mouseleave.slick\",i.proxy(e.interrupt,e,!1)))},e.prototype.initializeEvents=function(){var e=this;e.initArrowEvents(),e.initDotEvents(),e.initSlideEvents(),e.$list.on(\"touchstart.slick mousedown.slick\",{action:\"start\"},e.swipeHandler),e.$list.on(\"touchmove.slick mousemove.slick\",{action:\"move\"},e.swipeHandler),e.$list.on(\"touchend.slick mouseup.slick\",{action:\"end\"},e.swipeHandler),e.$list.on(\"touchcancel.slick mouseleave.slick\",{action:\"end\"},e.swipeHandler),e.$list.on(\"click.slick\",e.clickHandler),i(document).on(e.visibilityChange,i.proxy(e.visibility,e)),e.options.accessibility===!0&&e.$list.on(\"keydown.slick\",e.keyHandler),e.options.focusOnSelect===!0&&i(e.$slideTrack).children().on(\"click.slick\",e.selectHandler),i(window).on(\"orientationchange.slick.slick-\"+e.instanceUid,i.proxy(e.orientationChange,e)),i(window).on(\"resize.slick.slick-\"+e.instanceUid,i.proxy(e.resize,e)),i(\"[draggable!=true]\",e.$slideTrack).on(\"dragstart\",e.preventDefault),i(window).on(\"load.slick.slick-\"+e.instanceUid,e.setPosition),i(e.setPosition)},e.prototype.initUI=function(){var i=this;i.options.arrows===!0&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.show(),i.$nextArrow.show()),i.options.dots===!0&&i.slideCount>i.options.slidesToShow&&i.$dots.show()},e.prototype.keyHandler=function(i){var e=this;i.target.tagName.match(\"TEXTAREA|INPUT|SELECT\")||(37===i.keyCode&&e.options.accessibility===!0?e.changeSlide({data:{message:e.options.rtl===!0?\"next\":\"previous\"}}):39===i.keyCode&&e.options.accessibility===!0&&e.changeSlide({data:{message:e.options.rtl===!0?\"previous\":\"next\"}}))},e.prototype.lazyLoad=function(){function e(e){i(\"img[data-lazy]\",e).each(function(){var e=i(this),t=i(this).attr(\"data-lazy\"),o=i(this).attr(\"data-srcset\"),s=i(this).attr(\"data-sizes\")||r.$slider.attr(\"data-sizes\"),n=document.createElement(\"img\");n.onload=function(){e.animate({opacity:0},100,function(){o&&(e.attr(\"srcset\",o),s&&e.attr(\"sizes\",s)),e.attr(\"src\",t).animate({opacity:1},200,function(){e.removeAttr(\"data-lazy data-srcset data-sizes\").removeClass(\"slick-loading\")}),r.$slider.trigger(\"lazyLoaded\",[r,e,t])})},n.onerror=function(){e.removeAttr(\"data-lazy\").removeClass(\"slick-loading\").addClass(\"slick-lazyload-error\"),r.$slider.trigger(\"lazyLoadError\",[r,e,t])},n.src=t})}var t,o,s,n,r=this;if(r.options.centerMode===!0?r.options.infinite===!0?(s=r.currentSlide+(r.options.slidesToShow/2+1),n=s+r.options.slidesToShow+2):(s=Math.max(0,r.currentSlide-(r.options.slidesToShow/2+1)),n=2+(r.options.slidesToShow/2+1)+r.currentSlide):(s=r.options.infinite?r.options.slidesToShow+r.currentSlide:r.currentSlide,n=Math.ceil(s+r.options.slidesToShow),r.options.fade===!0&&(s>0&&s--,n<=r.slideCount&&n++)),t=r.$slider.find(\".slick-slide\").slice(s,n),\"anticipated\"===r.options.lazyLoad)for(var l=s-1,d=n,a=r.$slider.find(\".slick-slide\"),c=0;c=r.slideCount-r.options.slidesToShow?(o=r.$slider.find(\".slick-cloned\").slice(0,r.options.slidesToShow),e(o)):0===r.currentSlide&&(o=r.$slider.find(\".slick-cloned\").slice(r.options.slidesToShow*-1),e(o))},e.prototype.loadSlider=function(){var i=this;i.setPosition(),i.$slideTrack.css({opacity:1}),i.$slider.removeClass(\"slick-loading\"),i.initUI(),\"progressive\"===i.options.lazyLoad&&i.progressiveLazyLoad()},e.prototype.next=e.prototype.slickNext=function(){var i=this;i.changeSlide({data:{message:\"next\"}})},e.prototype.orientationChange=function(){var i=this;i.checkResponsive(),i.setPosition()},e.prototype.pause=e.prototype.slickPause=function(){var i=this;i.autoPlayClear(),i.paused=!0},e.prototype.play=e.prototype.slickPlay=function(){var i=this;i.autoPlay(),i.options.autoplay=!0,i.paused=!1,i.focussed=!1,i.interrupted=!1},e.prototype.postSlide=function(e){var t=this;if(!t.unslicked&&(t.$slider.trigger(\"afterChange\",[t,e]),t.animating=!1,t.slideCount>t.options.slidesToShow&&t.setPosition(),t.swipeLeft=null,t.options.autoplay&&t.autoPlay(),t.options.accessibility===!0&&(t.initADA(),t.options.focusOnChange))){var o=i(t.$slides.get(t.currentSlide));o.attr(\"tabindex\",0).focus()}},e.prototype.prev=e.prototype.slickPrev=function(){var i=this;i.changeSlide({data:{message:\"previous\"}})},e.prototype.preventDefault=function(i){i.preventDefault()},e.prototype.progressiveLazyLoad=function(e){e=e||1;var t,o,s,n,r,l=this,d=i(\"img[data-lazy]\",l.$slider);d.length?(t=d.first(),o=t.attr(\"data-lazy\"),s=t.attr(\"data-srcset\"),n=t.attr(\"data-sizes\")||l.$slider.attr(\"data-sizes\"),r=document.createElement(\"img\"),r.onload=function(){s&&(t.attr(\"srcset\",s),n&&t.attr(\"sizes\",n)),t.attr(\"src\",o).removeAttr(\"data-lazy data-srcset data-sizes\").removeClass(\"slick-loading\"),l.options.adaptiveHeight===!0&&l.setPosition(),l.$slider.trigger(\"lazyLoaded\",[l,t,o]),l.progressiveLazyLoad()},r.onerror=function(){e<3?setTimeout(function(){l.progressiveLazyLoad(e+1)},500):(t.removeAttr(\"data-lazy\").removeClass(\"slick-loading\").addClass(\"slick-lazyload-error\"),l.$slider.trigger(\"lazyLoadError\",[l,t,o]),l.progressiveLazyLoad())},r.src=o):l.$slider.trigger(\"allImagesLoaded\",[l])},e.prototype.refresh=function(e){var t,o,s=this;o=s.slideCount-s.options.slidesToShow,!s.options.infinite&&s.currentSlide>o&&(s.currentSlide=o),s.slideCount<=s.options.slidesToShow&&(s.currentSlide=0),t=s.currentSlide,s.destroy(!0),i.extend(s,s.initials,{currentSlide:t}),s.init(),e||s.changeSlide({data:{message:\"index\",index:t}},!1)},e.prototype.registerBreakpoints=function(){var e,t,o,s=this,n=s.options.responsive||null;if(\"array\"===i.type(n)&&n.length){s.respondTo=s.options.respondTo||\"window\";for(e in n)if(o=s.breakpoints.length-1,n.hasOwnProperty(e)){for(t=n[e].breakpoint;o>=0;)s.breakpoints[o]&&s.breakpoints[o]===t&&s.breakpoints.splice(o,1),o--;s.breakpoints.push(t),s.breakpointSettings[t]=n[e].settings}s.breakpoints.sort(function(i,e){return s.options.mobileFirst?i-e:e-i})}},e.prototype.reinit=function(){var e=this;e.$slides=e.$slideTrack.children(e.options.slide).addClass(\"slick-slide\"),e.slideCount=e.$slides.length,e.currentSlide>=e.slideCount&&0!==e.currentSlide&&(e.currentSlide=e.currentSlide-e.options.slidesToScroll),e.slideCount<=e.options.slidesToShow&&(e.currentSlide=0),e.registerBreakpoints(),e.setProps(),e.setupInfinite(),e.buildArrows(),e.updateArrows(),e.initArrowEvents(),e.buildDots(),e.updateDots(),e.initDotEvents(),e.cleanUpSlideEvents(),e.initSlideEvents(),e.checkResponsive(!1,!0),e.options.focusOnSelect===!0&&i(e.$slideTrack).children().on(\"click.slick\",e.selectHandler),e.setSlideClasses(\"number\"==typeof e.currentSlide?e.currentSlide:0),e.setPosition(),e.focusHandler(),e.paused=!e.options.autoplay,e.autoPlay(),e.$slider.trigger(\"reInit\",[e])},e.prototype.resize=function(){var e=this;i(window).width()!==e.windowWidth&&(clearTimeout(e.windowDelay),e.windowDelay=window.setTimeout(function(){e.windowWidth=i(window).width(),e.checkResponsive(),e.unslicked||e.setPosition()},50))},e.prototype.removeSlide=e.prototype.slickRemove=function(i,e,t){var o=this;return\"boolean\"==typeof i?(e=i,i=e===!0?0:o.slideCount-1):i=e===!0?--i:i,!(o.slideCount<1||i<0||i>o.slideCount-1)&&(o.unload(),t===!0?o.$slideTrack.children().remove():o.$slideTrack.children(this.options.slide).eq(i).remove(),o.$slides=o.$slideTrack.children(this.options.slide),o.$slideTrack.children(this.options.slide).detach(),o.$slideTrack.append(o.$slides),o.$slidesCache=o.$slides,void o.reinit())},e.prototype.setCSS=function(i){var e,t,o=this,s={};o.options.rtl===!0&&(i=-i),e=\"left\"==o.positionProp?Math.ceil(i)+\"px\":\"0px\",t=\"top\"==o.positionProp?Math.ceil(i)+\"px\":\"0px\",s[o.positionProp]=i,o.transformsEnabled===!1?o.$slideTrack.css(s):(s={},o.cssTransitions===!1?(s[o.animType]=\"translate(\"+e+\", \"+t+\")\",o.$slideTrack.css(s)):(s[o.animType]=\"translate3d(\"+e+\", \"+t+\", 0px)\",o.$slideTrack.css(s)))},e.prototype.setDimensions=function(){var i=this;i.options.vertical===!1?i.options.centerMode===!0&&i.$list.css({padding:\"0px \"+i.options.centerPadding}):(i.$list.height(i.$slides.first().outerHeight(!0)*i.options.slidesToShow),i.options.centerMode===!0&&i.$list.css({padding:i.options.centerPadding+\" 0px\"})),i.listWidth=i.$list.width(),i.listHeight=i.$list.height(),i.options.vertical===!1&&i.options.variableWidth===!1?(i.slideWidth=Math.ceil(i.listWidth/i.options.slidesToShow),i.$slideTrack.width(Math.ceil(i.slideWidth*i.$slideTrack.children(\".slick-slide\").length))):i.options.variableWidth===!0?i.$slideTrack.width(5e3*i.slideCount):(i.slideWidth=Math.ceil(i.listWidth),i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0)*i.$slideTrack.children(\".slick-slide\").length)));var e=i.$slides.first().outerWidth(!0)-i.$slides.first().width();i.options.variableWidth===!1&&i.$slideTrack.children(\".slick-slide\").width(i.slideWidth-e)},e.prototype.setFade=function(){var e,t=this;t.$slides.each(function(o,s){e=t.slideWidth*o*-1,t.options.rtl===!0?i(s).css({position:\"relative\",right:e,top:0,zIndex:t.options.zIndex-2,opacity:0}):i(s).css({position:\"relative\",left:e,top:0,zIndex:t.options.zIndex-2,opacity:0})}),t.$slides.eq(t.currentSlide).css({zIndex:t.options.zIndex-1,opacity:1})},e.prototype.setHeight=function(){var i=this;if(1===i.options.slidesToShow&&i.options.adaptiveHeight===!0&&i.options.vertical===!1){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.css(\"height\",e)}},e.prototype.setOption=e.prototype.slickSetOption=function(){var e,t,o,s,n,r=this,l=!1;if(\"object\"===i.type(arguments[0])?(o=arguments[0],l=arguments[1],n=\"multiple\"):\"string\"===i.type(arguments[0])&&(o=arguments[0],s=arguments[1],l=arguments[2],\"responsive\"===arguments[0]&&\"array\"===i.type(arguments[1])?n=\"responsive\":\"undefined\"!=typeof arguments[1]&&(n=\"single\")),\"single\"===n)r.options[o]=s;else if(\"multiple\"===n)i.each(o,function(i,e){r.options[i]=e});else if(\"responsive\"===n)for(t in s)if(\"array\"!==i.type(r.options.responsive))r.options.responsive=[s[t]];else{for(e=r.options.responsive.length-1;e>=0;)r.options.responsive[e].breakpoint===s[t].breakpoint&&r.options.responsive.splice(e,1),e--;r.options.responsive.push(s[t])}l&&(r.unload(),r.reinit())},e.prototype.setPosition=function(){var i=this;i.setDimensions(),i.setHeight(),i.options.fade===!1?i.setCSS(i.getLeft(i.currentSlide)):i.setFade(),i.$slider.trigger(\"setPosition\",[i])},e.prototype.setProps=function(){var i=this,e=document.body.style;i.positionProp=i.options.vertical===!0?\"top\":\"left\",\n\"top\"===i.positionProp?i.$slider.addClass(\"slick-vertical\"):i.$slider.removeClass(\"slick-vertical\"),void 0===e.WebkitTransition&&void 0===e.MozTransition&&void 0===e.msTransition||i.options.useCSS===!0&&(i.cssTransitions=!0),i.options.fade&&(\"number\"==typeof i.options.zIndex?i.options.zIndex<3&&(i.options.zIndex=3):i.options.zIndex=i.defaults.zIndex),void 0!==e.OTransform&&(i.animType=\"OTransform\",i.transformType=\"-o-transform\",i.transitionType=\"OTransition\",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.MozTransform&&(i.animType=\"MozTransform\",i.transformType=\"-moz-transform\",i.transitionType=\"MozTransition\",void 0===e.perspectiveProperty&&void 0===e.MozPerspective&&(i.animType=!1)),void 0!==e.webkitTransform&&(i.animType=\"webkitTransform\",i.transformType=\"-webkit-transform\",i.transitionType=\"webkitTransition\",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.msTransform&&(i.animType=\"msTransform\",i.transformType=\"-ms-transform\",i.transitionType=\"msTransition\",void 0===e.msTransform&&(i.animType=!1)),void 0!==e.transform&&i.animType!==!1&&(i.animType=\"transform\",i.transformType=\"transform\",i.transitionType=\"transition\"),i.transformsEnabled=i.options.useTransform&&null!==i.animType&&i.animType!==!1},e.prototype.setSlideClasses=function(i){var e,t,o,s,n=this;if(t=n.$slider.find(\".slick-slide\").removeClass(\"slick-active slick-center slick-current\").attr(\"aria-hidden\",\"true\"),n.$slides.eq(i).addClass(\"slick-current\"),n.options.centerMode===!0){var r=n.options.slidesToShow%2===0?1:0;e=Math.floor(n.options.slidesToShow/2),n.options.infinite===!0&&(i>=e&&i<=n.slideCount-1-e?n.$slides.slice(i-e+r,i+e+1).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"):(o=n.options.slidesToShow+i,t.slice(o-e+1+r,o+e+2).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\")),0===i?t.eq(t.length-1-n.options.slidesToShow).addClass(\"slick-center\"):i===n.slideCount-1&&t.eq(n.options.slidesToShow).addClass(\"slick-center\")),n.$slides.eq(i).addClass(\"slick-center\")}else i>=0&&i<=n.slideCount-n.options.slidesToShow?n.$slides.slice(i,i+n.options.slidesToShow).addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"):t.length<=n.options.slidesToShow?t.addClass(\"slick-active\").attr(\"aria-hidden\",\"false\"):(s=n.slideCount%n.options.slidesToShow,o=n.options.infinite===!0?n.options.slidesToShow+i:i,n.options.slidesToShow==n.options.slidesToScroll&&n.slideCount-is.options.slidesToShow)){for(o=s.options.centerMode===!0?s.options.slidesToShow+1:s.options.slidesToShow,e=s.slideCount;e>s.slideCount-o;e-=1)t=e-1,i(s.$slides[t]).clone(!0).attr(\"id\",\"\").attr(\"data-slick-index\",t-s.slideCount).prependTo(s.$slideTrack).addClass(\"slick-cloned\");for(e=0;ea.getDotCount()*a.options.slidesToScroll)?void(a.options.fade===!1&&(o=a.currentSlide,t!==!0&&a.slideCount>a.options.slidesToShow?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o))):a.options.infinite===!1&&a.options.centerMode===!0&&(i<0||i>a.slideCount-a.options.slidesToScroll)?void(a.options.fade===!1&&(o=a.currentSlide,t!==!0&&a.slideCount>a.options.slidesToShow?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o))):(a.options.autoplay&&clearInterval(a.autoPlayTimer),s=o<0?a.slideCount%a.options.slidesToScroll!==0?a.slideCount-a.slideCount%a.options.slidesToScroll:a.slideCount+o:o>=a.slideCount?a.slideCount%a.options.slidesToScroll!==0?0:o-a.slideCount:o,a.animating=!0,a.$slider.trigger(\"beforeChange\",[a,a.currentSlide,s]),n=a.currentSlide,a.currentSlide=s,a.setSlideClasses(a.currentSlide),a.options.asNavFor&&(l=a.getNavTarget(),l=l.slick(\"getSlick\"),l.slideCount<=l.options.slidesToShow&&l.setSlideClasses(a.currentSlide)),a.updateDots(),a.updateArrows(),a.options.fade===!0?(t!==!0?(a.fadeSlideOut(n),a.fadeSlide(s,function(){a.postSlide(s)})):a.postSlide(s),void a.animateHeight()):void(t!==!0&&a.slideCount>a.options.slidesToShow?a.animateSlide(d,function(){a.postSlide(s)}):a.postSlide(s)))},e.prototype.startLoad=function(){var i=this;i.options.arrows===!0&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.hide(),i.$nextArrow.hide()),i.options.dots===!0&&i.slideCount>i.options.slidesToShow&&i.$dots.hide(),i.$slider.addClass(\"slick-loading\")},e.prototype.swipeDirection=function(){var i,e,t,o,s=this;return i=s.touchObject.startX-s.touchObject.curX,e=s.touchObject.startY-s.touchObject.curY,t=Math.atan2(e,i),o=Math.round(180*t/Math.PI),o<0&&(o=360-Math.abs(o)),o<=45&&o>=0?s.options.rtl===!1?\"left\":\"right\":o<=360&&o>=315?s.options.rtl===!1?\"left\":\"right\":o>=135&&o<=225?s.options.rtl===!1?\"right\":\"left\":s.options.verticalSwiping===!0?o>=35&&o<=135?\"down\":\"up\":\"vertical\"},e.prototype.swipeEnd=function(i){var e,t,o=this;if(o.dragging=!1,o.swiping=!1,o.scrolling)return o.scrolling=!1,!1;if(o.interrupted=!1,o.shouldClick=!(o.touchObject.swipeLength>10),void 0===o.touchObject.curX)return!1;if(o.touchObject.edgeHit===!0&&o.$slider.trigger(\"edge\",[o,o.swipeDirection()]),o.touchObject.swipeLength>=o.touchObject.minSwipe){switch(t=o.swipeDirection()){case\"left\":case\"down\":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide+o.getSlideCount()):o.currentSlide+o.getSlideCount(),o.currentDirection=0;break;case\"right\":case\"up\":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide-o.getSlideCount()):o.currentSlide-o.getSlideCount(),o.currentDirection=1}\"vertical\"!=t&&(o.slideHandler(e),o.touchObject={},o.$slider.trigger(\"swipe\",[o,t]))}else o.touchObject.startX!==o.touchObject.curX&&(o.slideHandler(o.currentSlide),o.touchObject={})},e.prototype.swipeHandler=function(i){var e=this;if(!(e.options.swipe===!1||\"ontouchend\"in document&&e.options.swipe===!1||e.options.draggable===!1&&i.type.indexOf(\"mouse\")!==-1))switch(e.touchObject.fingerCount=i.originalEvent&&void 0!==i.originalEvent.touches?i.originalEvent.touches.length:1,e.touchObject.minSwipe=e.listWidth/e.options.touchThreshold,e.options.verticalSwiping===!0&&(e.touchObject.minSwipe=e.listHeight/e.options.touchThreshold),i.data.action){case\"start\":e.swipeStart(i);break;case\"move\":e.swipeMove(i);break;case\"end\":e.swipeEnd(i)}},e.prototype.swipeMove=function(i){var e,t,o,s,n,r,l=this;return n=void 0!==i.originalEvent?i.originalEvent.touches:null,!(!l.dragging||l.scrolling||n&&1!==n.length)&&(e=l.getLeft(l.currentSlide),l.touchObject.curX=void 0!==n?n[0].pageX:i.clientX,l.touchObject.curY=void 0!==n?n[0].pageY:i.clientY,l.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(l.touchObject.curX-l.touchObject.startX,2))),r=Math.round(Math.sqrt(Math.pow(l.touchObject.curY-l.touchObject.startY,2))),!l.options.verticalSwiping&&!l.swiping&&r>4?(l.scrolling=!0,!1):(l.options.verticalSwiping===!0&&(l.touchObject.swipeLength=r),t=l.swipeDirection(),void 0!==i.originalEvent&&l.touchObject.swipeLength>4&&(l.swiping=!0,i.preventDefault()),s=(l.options.rtl===!1?1:-1)*(l.touchObject.curX>l.touchObject.startX?1:-1),l.options.verticalSwiping===!0&&(s=l.touchObject.curY>l.touchObject.startY?1:-1),o=l.touchObject.swipeLength,l.touchObject.edgeHit=!1,l.options.infinite===!1&&(0===l.currentSlide&&\"right\"===t||l.currentSlide>=l.getDotCount()&&\"left\"===t)&&(o=l.touchObject.swipeLength*l.options.edgeFriction,l.touchObject.edgeHit=!0),l.options.vertical===!1?l.swipeLeft=e+o*s:l.swipeLeft=e+o*(l.$list.height()/l.listWidth)*s,l.options.verticalSwiping===!0&&(l.swipeLeft=e+o*s),l.options.fade!==!0&&l.options.touchMove!==!1&&(l.animating===!0?(l.swipeLeft=null,!1):void l.setCSS(l.swipeLeft))))},e.prototype.swipeStart=function(i){var e,t=this;return t.interrupted=!0,1!==t.touchObject.fingerCount||t.slideCount<=t.options.slidesToShow?(t.touchObject={},!1):(void 0!==i.originalEvent&&void 0!==i.originalEvent.touches&&(e=i.originalEvent.touches[0]),t.touchObject.startX=t.touchObject.curX=void 0!==e?e.pageX:i.clientX,t.touchObject.startY=t.touchObject.curY=void 0!==e?e.pageY:i.clientY,void(t.dragging=!0))},e.prototype.unfilterSlides=e.prototype.slickUnfilter=function(){var i=this;null!==i.$slidesCache&&(i.unload(),i.$slideTrack.children(this.options.slide).detach(),i.$slidesCache.appendTo(i.$slideTrack),i.reinit())},e.prototype.unload=function(){var e=this;i(\".slick-cloned\",e.$slider).remove(),e.$dots&&e.$dots.remove(),e.$prevArrow&&e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.remove(),e.$nextArrow&&e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.remove(),e.$slides.removeClass(\"slick-slide slick-active slick-visible slick-current\").attr(\"aria-hidden\",\"true\").css(\"width\",\"\")},e.prototype.unslick=function(i){var e=this;e.$slider.trigger(\"unslick\",[e,i]),e.destroy()},e.prototype.updateArrows=function(){var i,e=this;i=Math.floor(e.options.slidesToShow/2),e.options.arrows===!0&&e.slideCount>e.options.slidesToShow&&!e.options.infinite&&(e.$prevArrow.removeClass(\"slick-disabled\").attr(\"aria-disabled\",\"false\"),e.$nextArrow.removeClass(\"slick-disabled\").attr(\"aria-disabled\",\"false\"),0===e.currentSlide?(e.$prevArrow.addClass(\"slick-disabled\").attr(\"aria-disabled\",\"true\"),e.$nextArrow.removeClass(\"slick-disabled\").attr(\"aria-disabled\",\"false\")):e.currentSlide>=e.slideCount-e.options.slidesToShow&&e.options.centerMode===!1?(e.$nextArrow.addClass(\"slick-disabled\").attr(\"aria-disabled\",\"true\"),e.$prevArrow.removeClass(\"slick-disabled\").attr(\"aria-disabled\",\"false\")):e.currentSlide>=e.slideCount-1&&e.options.centerMode===!0&&(e.$nextArrow.addClass(\"slick-disabled\").attr(\"aria-disabled\",\"true\"),e.$prevArrow.removeClass(\"slick-disabled\").attr(\"aria-disabled\",\"false\")))},e.prototype.updateDots=function(){var i=this;null!==i.$dots&&(i.$dots.find(\"li\").removeClass(\"slick-active\").end(),i.$dots.find(\"li\").eq(Math.floor(i.currentSlide/i.options.slidesToScroll)).addClass(\"slick-active\"))},e.prototype.visibility=function(){var i=this;i.options.autoplay&&(document[i.hidden]?i.interrupted=!0:i.interrupted=!1)},i.fn.slick=function(){var i,t,o=this,s=arguments[0],n=Array.prototype.slice.call(arguments,1),r=o.length;for(i=0;i axis.oldScroll\r\n var direction = isForward ? axis.forward : axis.backward\r\n\r\n for (var waypointKey in this.waypoints[axisKey]) {\r\n var waypoint = this.waypoints[axisKey][waypointKey]\r\n var wasBeforeTriggerPoint = axis.oldScroll < waypoint.triggerPoint\r\n var nowAfterTriggerPoint = axis.newScroll >= waypoint.triggerPoint\r\n var crossedForward = wasBeforeTriggerPoint && nowAfterTriggerPoint\r\n var crossedBackward = !wasBeforeTriggerPoint && !nowAfterTriggerPoint\r\n if (crossedForward || crossedBackward) {\r\n waypoint.queueTrigger(direction)\r\n triggeredGroups[waypoint.group.id] = waypoint.group\r\n }\r\n }\r\n }\r\n\r\n for (var groupKey in triggeredGroups) {\r\n triggeredGroups[groupKey].flushTriggers()\r\n }\r\n\r\n this.oldScroll = {\r\n x: axes.horizontal.newScroll,\r\n y: axes.vertical.newScroll\r\n }\r\n }\r\n\r\n /* Private */\r\n Context.prototype.innerHeight = function() {\r\n /*eslint-disable eqeqeq */\r\n if (this.element == this.element.window) {\r\n return Waypoint.viewportHeight()\r\n }\r\n /*eslint-enable eqeqeq */\r\n return this.adapter.innerHeight()\r\n }\r\n\r\n /* Private */\r\n Context.prototype.remove = function(waypoint) {\r\n delete this.waypoints[waypoint.axis][waypoint.key]\r\n this.checkEmpty()\r\n }\r\n\r\n /* Private */\r\n Context.prototype.innerWidth = function() {\r\n /*eslint-disable eqeqeq */\r\n if (this.element == this.element.window) {\r\n return Waypoint.viewportWidth()\r\n }\r\n /*eslint-enable eqeqeq */\r\n return this.adapter.innerWidth()\r\n }\r\n\r\n /* Public */\r\n /* http://imakewebthings.com/waypoints/api/context-destroy */\r\n Context.prototype.destroy = function() {\r\n var allWaypoints = []\r\n for (var axis in this.waypoints) {\r\n for (var waypointKey in this.waypoints[axis]) {\r\n allWaypoints.push(this.waypoints[axis][waypointKey])\r\n }\r\n }\r\n for (var i = 0, end = allWaypoints.length; i < end; i++) {\r\n allWaypoints[i].destroy()\r\n }\r\n }\r\n\r\n /* Public */\r\n /* http://imakewebthings.com/waypoints/api/context-refresh */\r\n Context.prototype.refresh = function() {\r\n /*eslint-disable eqeqeq */\r\n var isWindow = this.element == this.element.window\r\n /*eslint-enable eqeqeq */\r\n var contextOffset = isWindow ? undefined : this.adapter.offset()\r\n var triggeredGroups = {}\r\n var axes\r\n\r\n this.handleScroll()\r\n axes = {\r\n horizontal: {\r\n contextOffset: isWindow ? 0 : contextOffset.left,\r\n contextScroll: isWindow ? 0 : this.oldScroll.x,\r\n contextDimension: this.innerWidth(),\r\n oldScroll: this.oldScroll.x,\r\n forward: 'right',\r\n backward: 'left',\r\n offsetProp: 'left'\r\n },\r\n vertical: {\r\n contextOffset: isWindow ? 0 : contextOffset.top,\r\n contextScroll: isWindow ? 0 : this.oldScroll.y,\r\n contextDimension: this.innerHeight(),\r\n oldScroll: this.oldScroll.y,\r\n forward: 'down',\r\n backward: 'up',\r\n offsetProp: 'top'\r\n }\r\n }\r\n\r\n for (var axisKey in axes) {\r\n var axis = axes[axisKey]\r\n for (var waypointKey in this.waypoints[axisKey]) {\r\n var waypoint = this.waypoints[axisKey][waypointKey]\r\n var adjustment = waypoint.options.offset\r\n var oldTriggerPoint = waypoint.triggerPoint\r\n var elementOffset = 0\r\n var freshWaypoint = oldTriggerPoint == null\r\n var contextModifier, wasBeforeScroll, nowAfterScroll\r\n var triggeredBackward, triggeredForward\r\n\r\n if (waypoint.element !== waypoint.element.window) {\r\n elementOffset = waypoint.adapter.offset()[axis.offsetProp]\r\n }\r\n\r\n if (typeof adjustment === 'function') {\r\n adjustment = adjustment.apply(waypoint)\r\n }\r\n else if (typeof adjustment === 'string') {\r\n adjustment = parseFloat(adjustment)\r\n if (waypoint.options.offset.indexOf('%') > - 1) {\r\n adjustment = Math.ceil(axis.contextDimension * adjustment / 100)\r\n }\r\n }\r\n\r\n contextModifier = axis.contextScroll - axis.contextOffset\r\n waypoint.triggerPoint = elementOffset + contextModifier - adjustment\r\n wasBeforeScroll = oldTriggerPoint < axis.oldScroll\r\n nowAfterScroll = waypoint.triggerPoint >= axis.oldScroll\r\n triggeredBackward = wasBeforeScroll && nowAfterScroll\r\n triggeredForward = !wasBeforeScroll && !nowAfterScroll\r\n\r\n if (!freshWaypoint && triggeredBackward) {\r\n waypoint.queueTrigger(axis.backward)\r\n triggeredGroups[waypoint.group.id] = waypoint.group\r\n }\r\n else if (!freshWaypoint && triggeredForward) {\r\n waypoint.queueTrigger(axis.forward)\r\n triggeredGroups[waypoint.group.id] = waypoint.group\r\n }\r\n else if (freshWaypoint && axis.oldScroll >= waypoint.triggerPoint) {\r\n waypoint.queueTrigger(axis.forward)\r\n triggeredGroups[waypoint.group.id] = waypoint.group\r\n }\r\n }\r\n }\r\n\r\n Waypoint.requestAnimationFrame(function() {\r\n for (var groupKey in triggeredGroups) {\r\n triggeredGroups[groupKey].flushTriggers()\r\n }\r\n })\r\n\r\n return this\r\n }\r\n\r\n /* Private */\r\n Context.findOrCreateByElement = function(element) {\r\n return Context.findByElement(element) || new Context(element)\r\n }\r\n\r\n /* Private */\r\n Context.refreshAll = function() {\r\n for (var contextId in contexts) {\r\n contexts[contextId].refresh()\r\n }\r\n }\r\n\r\n /* Public */\r\n /* http://imakewebthings.com/waypoints/api/context-find-by-element */\r\n Context.findByElement = function(element) {\r\n return contexts[element.waypointContextKey]\r\n }\r\n\r\n window.onload = function() {\r\n if (oldWindowLoad) {\r\n oldWindowLoad()\r\n }\r\n Context.refreshAll()\r\n }\r\n\r\n Waypoint.requestAnimationFrame = function(callback) {\r\n var requestFn = window.requestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n requestAnimationFrameShim\r\n requestFn.call(window, callback)\r\n }\r\n Waypoint.Context = Context\r\n}())\r\n;(function() {\r\n 'use strict'\r\n\r\n function byTriggerPoint(a, b) {\r\n return a.triggerPoint - b.triggerPoint\r\n }\r\n\r\n function byReverseTriggerPoint(a, b) {\r\n return b.triggerPoint - a.triggerPoint\r\n }\r\n\r\n var groups = {\r\n vertical: {},\r\n horizontal: {}\r\n }\r\n var Waypoint = window.Waypoint\r\n\r\n /* http://imakewebthings.com/waypoints/api/group */\r\n function Group(options) {\r\n this.name = options.name\r\n this.axis = options.axis\r\n this.id = this.name + '-' + this.axis\r\n this.waypoints = []\r\n this.clearTriggerQueues()\r\n groups[this.axis][this.name] = this\r\n }\r\n\r\n /* Private */\r\n Group.prototype.add = function(waypoint) {\r\n this.waypoints.push(waypoint)\r\n }\r\n\r\n /* Private */\r\n Group.prototype.clearTriggerQueues = function() {\r\n this.triggerQueues = {\r\n up: [],\r\n down: [],\r\n left: [],\r\n right: []\r\n }\r\n }\r\n\r\n /* Private */\r\n Group.prototype.flushTriggers = function() {\r\n for (var direction in this.triggerQueues) {\r\n var waypoints = this.triggerQueues[direction]\r\n var reverse = direction === 'up' || direction === 'left'\r\n waypoints.sort(reverse ? byReverseTriggerPoint : byTriggerPoint)\r\n for (var i = 0, end = waypoints.length; i < end; i += 1) {\r\n var waypoint = waypoints[i]\r\n if (waypoint.options.continuous || i === waypoints.length - 1) {\r\n waypoint.trigger([direction])\r\n }\r\n }\r\n }\r\n this.clearTriggerQueues()\r\n }\r\n\r\n /* Private */\r\n Group.prototype.next = function(waypoint) {\r\n this.waypoints.sort(byTriggerPoint)\r\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\r\n var isLast = index === this.waypoints.length - 1\r\n return isLast ? null : this.waypoints[index + 1]\r\n }\r\n\r\n /* Private */\r\n Group.prototype.previous = function(waypoint) {\r\n this.waypoints.sort(byTriggerPoint)\r\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\r\n return index ? this.waypoints[index - 1] : null\r\n }\r\n\r\n /* Private */\r\n Group.prototype.queueTrigger = function(waypoint, direction) {\r\n this.triggerQueues[direction].push(waypoint)\r\n }\r\n\r\n /* Private */\r\n Group.prototype.remove = function(waypoint) {\r\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\r\n if (index > -1) {\r\n this.waypoints.splice(index, 1)\r\n }\r\n }\r\n\r\n /* Public */\r\n /* http://imakewebthings.com/waypoints/api/first */\r\n Group.prototype.first = function() {\r\n return this.waypoints[0]\r\n }\r\n\r\n /* Public */\r\n /* http://imakewebthings.com/waypoints/api/last */\r\n Group.prototype.last = function() {\r\n return this.waypoints[this.waypoints.length - 1]\r\n }\r\n\r\n /* Private */\r\n Group.findOrCreate = function(options) {\r\n return groups[options.axis][options.name] || new Group(options)\r\n }\r\n\r\n Waypoint.Group = Group\r\n}())\r\n;(function() {\r\n 'use strict'\r\n\r\n var $ = window.jQuery\r\n var Waypoint = window.Waypoint\r\n\r\n function JQueryAdapter(element) {\r\n this.$element = $(element)\r\n }\r\n\r\n $.each([\r\n 'innerHeight',\r\n 'innerWidth',\r\n 'off',\r\n 'offset',\r\n 'on',\r\n 'outerHeight',\r\n 'outerWidth',\r\n 'scrollLeft',\r\n 'scrollTop'\r\n ], function(i, method) {\r\n JQueryAdapter.prototype[method] = function() {\r\n var args = Array.prototype.slice.call(arguments)\r\n return this.$element[method].apply(this.$element, args)\r\n }\r\n })\r\n\r\n $.each([\r\n 'extend',\r\n 'inArray',\r\n 'isEmptyObject'\r\n ], function(i, method) {\r\n JQueryAdapter[method] = $[method]\r\n })\r\n\r\n Waypoint.adapters.push({\r\n name: 'jquery',\r\n Adapter: JQueryAdapter\r\n })\r\n Waypoint.Adapter = JQueryAdapter\r\n}())\r\n;(function() {\r\n 'use strict'\r\n\r\n var Waypoint = window.Waypoint\r\n\r\n function createExtension(framework) {\r\n return function() {\r\n var waypoints = []\r\n var overrides = arguments[0]\r\n\r\n if (framework.isFunction(arguments[0])) {\r\n overrides = framework.extend({}, arguments[1])\r\n overrides.handler = arguments[0]\r\n }\r\n\r\n this.each(function() {\r\n var options = framework.extend({}, overrides, {\r\n element: this\r\n })\r\n if (typeof options.context === 'string') {\r\n options.context = framework(this).closest(options.context)[0]\r\n }\r\n waypoints.push(new Waypoint(options))\r\n })\r\n\r\n return waypoints\r\n }\r\n }\r\n\r\n if (window.jQuery) {\r\n window.jQuery.fn.waypoint = createExtension(window.jQuery)\r\n }\r\n if (window.Zepto) {\r\n window.Zepto.fn.waypoint = createExtension(window.Zepto)\r\n }\r\n}())\r\n;\n(function ($) {\r\n\r\n $.ZagScrollAnimate = function (element, options) {\r\n\r\n var component = element;\r\n var options = $.extend({}, $.ZagScrollAnimate.defaultOptions, options);\r\n ZagScrollAnimateSetup(component, options);\r\n\r\n };\r\n\r\n ZagScrollAnimateSetup = function (component, options) {\r\n\r\n options.targets.forEach((target) => {\r\n count = 0;\r\n component.find(target.selector).each(function () {\r\n $(this).attr(\"data-scroll_animate_type\", target.type);\r\n $(this).attr(\"data-scroll_animate_stagger\", count * target.stagger);\r\n count++;\r\n });\r\n });\r\n\r\n var waypoint = new Waypoint({\r\n element: component,\r\n handler: function (direction) {\r\n ZagScrollAnimateExecute(this.element, direction);\r\n },\r\n triggerOnce: true,\r\n offset: options.offset + '%'\r\n })\r\n };\r\n\r\n ZagScrollAnimateExecute = function (waypoint, direction) {\r\n if (direction == \"down\") {\r\n waypoint.find(\"[data-scroll_animate_type]\").each(function () {\r\n var element = $(this);\r\n var type = $(this).attr(\"data-scroll_animate_type\");\r\n var stagger = $(this).attr(\"data-scroll_animate_stagger\");\r\n\r\n setTimeout(\r\n function (e) {\r\n element.addClass(\"animate__animated\");\r\n element.addClass(type);\r\n }, stagger);\r\n });\r\n }\r\n };\r\n\r\n $.fn.ZagScrollAnimate = (function (options) {\r\n return this.each(function () {\r\n (new $.ZagScrollAnimate($(this), options));\r\n });\r\n });\r\n\r\n $.ZagScrollAnimate.defaultOptions = { offset: 50, targets: [] };\r\n\r\n})(jQuery);\n// Avoid `console` errors in browsers that lack a console.\r\n(function () {\r\n var method;\r\n var noop = function () { };\r\n var methods = [\r\n 'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',\r\n 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',\r\n 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',\r\n 'timeStamp', 'trace', 'warn'\r\n ];\r\n var length = methods.length;\r\n var console = (window.console = window.console || {});\r\n\r\n while (length--) {\r\n method = methods[length];\r\n\r\n // Only stub undefined methods.\r\n if (!console[method]) {\r\n console[method] = noop;\r\n }\r\n }\r\n}());\r\n\r\n// Place any jQuery/helper plugins in here.\r\nvar ZAGFramework = ZAGFramework || {\r\n GetViewport: function () {\r\n var e = window, a = 'inner';\r\n if (!('innerWidth' in window)) {\r\n a = 'client';\r\n e = document.documentElement || document.body;\r\n }\r\n return { width: e[a + 'Width'], height: e[a + 'Height'] };\r\n },\r\n GetCurrentBP: function () {\r\n for (var key in this.BP) {\r\n if (key !== \"compareArrays\" && key !== \"indexOf\") {\r\n if (this.BP[key].matches) {\r\n return key.toString();\r\n }\r\n }\r\n }\r\n },\r\n BP: {\r\n xs : window.matchMedia('(max-width: 575.98px)'),\r\n sm : window.matchMedia('(min-width: 576px) and (max-width: 767.98px)'),\r\n md : window.matchMedia('(min-width: 768px) and (max-width: 991.98px)'),\r\n lg : window.matchMedia('(min-width: 992px) and (max-width: 1199.98px)'),\r\n xl : window.matchMedia('(min-width: 1200px) and (max-width: 1399.98px)'),\r\n xxl : window.matchMedia('(min-width: 1400px)')\r\n }\r\n};\n/*!\r\n * Flickity PACKAGED v2.2.1\r\n * Touch, responsive, flickable carousels\r\n *\r\n * Licensed GPLv3 for open source use\r\n * or Flickity Commercial License for commercial use\r\n *\r\n * https://flickity.metafizzy.co\r\n * Copyright 2015-2019 Metafizzy\r\n */\r\n\r\n/**\r\n * Bridget makes jQuery widgets\r\n * v2.0.1\r\n * MIT license\r\n */\r\n\r\n/* jshint browser: true, strict: true, undef: true, unused: true */\r\n\r\n(function (window, factory) {\r\n // universal module definition\r\n /*jshint strict: false */ /* globals define, module, require */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('jquery-bridget/jquery-bridget', ['jquery'], function (jQuery) {\r\n return factory(window, jQuery);\r\n });\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('jquery')\r\n );\r\n } else {\r\n // browser global\r\n window.jQueryBridget = factory(\r\n window,\r\n window.jQuery\r\n );\r\n }\r\n\r\n}(window, function factory(window, jQuery) {\r\n 'use strict';\r\n\r\n // ----- utils ----- //\r\n\r\n var arraySlice = Array.prototype.slice;\r\n\r\n // helper function for logging errors\r\n // $.error breaks jQuery chaining\r\n var console = window.console;\r\n var logError = typeof console == 'undefined' ? function () { } :\r\n function (message) {\r\n console.error(message);\r\n };\r\n\r\n // ----- jQueryBridget ----- //\r\n\r\n function jQueryBridget(namespace, PluginClass, $) {\r\n $ = $ || jQuery || window.jQuery;\r\n if (!$) {\r\n return;\r\n }\r\n\r\n // add option method -> $().plugin('option', {...})\r\n if (!PluginClass.prototype.option) {\r\n // option setter\r\n PluginClass.prototype.option = function (opts) {\r\n // bail out if not an object\r\n if (!$.isPlainObject(opts)) {\r\n return;\r\n }\r\n this.options = $.extend(true, this.options, opts);\r\n };\r\n }\r\n\r\n // make jQuery plugin\r\n $.fn[namespace] = function (arg0 /*, arg1 */) {\r\n if (typeof arg0 == 'string') {\r\n // method call $().plugin( 'methodName', { options } )\r\n // shift arguments by 1\r\n var args = arraySlice.call(arguments, 1);\r\n return methodCall(this, arg0, args);\r\n }\r\n // just $().plugin({ options })\r\n plainCall(this, arg0);\r\n return this;\r\n };\r\n\r\n // $().plugin('methodName')\r\n function methodCall($elems, methodName, args) {\r\n var returnValue;\r\n var pluginMethodStr = '$().' + namespace + '(\"' + methodName + '\")';\r\n\r\n $elems.each(function (i, elem) {\r\n // get instance\r\n var instance = $.data(elem, namespace);\r\n if (!instance) {\r\n logError(namespace + ' not initialized. Cannot call methods, i.e. ' +\r\n pluginMethodStr);\r\n return;\r\n }\r\n\r\n var method = instance[methodName];\r\n if (!method || methodName.charAt(0) == '_') {\r\n logError(pluginMethodStr + ' is not a valid method');\r\n return;\r\n }\r\n\r\n // apply method, get return value\r\n var value = method.apply(instance, args);\r\n // set return value if value is returned, use only first value\r\n returnValue = returnValue === undefined ? value : returnValue;\r\n });\r\n\r\n return returnValue !== undefined ? returnValue : $elems;\r\n }\r\n\r\n function plainCall($elems, options) {\r\n $elems.each(function (i, elem) {\r\n var instance = $.data(elem, namespace);\r\n if (instance) {\r\n // set options & init\r\n instance.option(options);\r\n instance._init();\r\n } else {\r\n // initialize new instance\r\n instance = new PluginClass(elem, options);\r\n $.data(elem, namespace, instance);\r\n }\r\n });\r\n }\r\n\r\n updateJQuery($);\r\n\r\n }\r\n\r\n // ----- updateJQuery ----- //\r\n\r\n // set $.bridget for v1 backwards compatibility\r\n function updateJQuery($) {\r\n if (!$ || ($ && $.bridget)) {\r\n return;\r\n }\r\n $.bridget = jQueryBridget;\r\n }\r\n\r\n updateJQuery(jQuery || window.jQuery);\r\n\r\n // ----- ----- //\r\n\r\n return jQueryBridget;\r\n\r\n}));\r\n\r\n/**\r\n * EvEmitter v1.1.0\r\n * Lil' event emitter\r\n * MIT License\r\n */\r\n\r\n/* jshint unused: true, undef: true, strict: true */\r\n\r\n(function (global, factory) {\r\n // universal module definition\r\n /* jshint strict: false */ /* globals define, module, window */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD - RequireJS\r\n define('ev-emitter/ev-emitter', factory);\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS - Browserify, Webpack\r\n module.exports = factory();\r\n } else {\r\n // Browser globals\r\n global.EvEmitter = factory();\r\n }\r\n\r\n}(typeof window != 'undefined' ? window : this, function () {\r\n\r\n\r\n\r\n function EvEmitter() { }\r\n\r\n var proto = EvEmitter.prototype;\r\n\r\n proto.on = function (eventName, listener) {\r\n if (!eventName || !listener) {\r\n return;\r\n }\r\n // set events hash\r\n var events = this._events = this._events || {};\r\n // set listeners array\r\n var listeners = events[eventName] = events[eventName] || [];\r\n // only add once\r\n if (listeners.indexOf(listener) == -1) {\r\n listeners.push(listener);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n proto.once = function (eventName, listener) {\r\n if (!eventName || !listener) {\r\n return;\r\n }\r\n // add event\r\n this.on(eventName, listener);\r\n // set once flag\r\n // set onceEvents hash\r\n var onceEvents = this._onceEvents = this._onceEvents || {};\r\n // set onceListeners object\r\n var onceListeners = onceEvents[eventName] = onceEvents[eventName] || {};\r\n // set flag\r\n onceListeners[listener] = true;\r\n\r\n return this;\r\n };\r\n\r\n proto.off = function (eventName, listener) {\r\n var listeners = this._events && this._events[eventName];\r\n if (!listeners || !listeners.length) {\r\n return;\r\n }\r\n var index = listeners.indexOf(listener);\r\n if (index != -1) {\r\n listeners.splice(index, 1);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n proto.emitEvent = function (eventName, args) {\r\n var listeners = this._events && this._events[eventName];\r\n if (!listeners || !listeners.length) {\r\n return;\r\n }\r\n // copy over to avoid interference if .off() in listener\r\n listeners = listeners.slice(0);\r\n args = args || [];\r\n // once stuff\r\n var onceListeners = this._onceEvents && this._onceEvents[eventName];\r\n\r\n for (var i = 0; i < listeners.length; i++) {\r\n var listener = listeners[i]\r\n var isOnce = onceListeners && onceListeners[listener];\r\n if (isOnce) {\r\n // remove listener\r\n // remove before trigger to prevent recursion\r\n this.off(eventName, listener);\r\n // unset once flag\r\n delete onceListeners[listener];\r\n }\r\n // trigger listener\r\n listener.apply(this, args);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n proto.allOff = function () {\r\n delete this._events;\r\n delete this._onceEvents;\r\n };\r\n\r\n return EvEmitter;\r\n\r\n}));\r\n\r\n/*!\r\n * getSize v2.0.3\r\n * measure size of elements\r\n * MIT license\r\n */\r\n\r\n/* jshint browser: true, strict: true, undef: true, unused: true */\r\n/* globals console: false */\r\n\r\n(function (window, factory) {\r\n /* jshint strict: false */ /* globals define, module */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('get-size/get-size', factory);\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory();\r\n } else {\r\n // browser global\r\n window.getSize = factory();\r\n }\r\n\r\n})(window, function factory() {\r\n 'use strict';\r\n\r\n // -------------------------- helpers -------------------------- //\r\n\r\n // get a number from a string, not a percentage\r\n function getStyleSize(value) {\r\n var num = parseFloat(value);\r\n // not a percent like '100%', and a number\r\n var isValid = value.indexOf('%') == -1 && !isNaN(num);\r\n return isValid && num;\r\n }\r\n\r\n function noop() { }\r\n\r\n var logError = typeof console == 'undefined' ? noop :\r\n function (message) {\r\n console.error(message);\r\n };\r\n\r\n // -------------------------- measurements -------------------------- //\r\n\r\n var measurements = [\r\n 'paddingLeft',\r\n 'paddingRight',\r\n 'paddingTop',\r\n 'paddingBottom',\r\n 'marginLeft',\r\n 'marginRight',\r\n 'marginTop',\r\n 'marginBottom',\r\n 'borderLeftWidth',\r\n 'borderRightWidth',\r\n 'borderTopWidth',\r\n 'borderBottomWidth'\r\n ];\r\n\r\n var measurementsLength = measurements.length;\r\n\r\n function getZeroSize() {\r\n var size = {\r\n width: 0,\r\n height: 0,\r\n innerWidth: 0,\r\n innerHeight: 0,\r\n outerWidth: 0,\r\n outerHeight: 0\r\n };\r\n for (var i = 0; i < measurementsLength; i++) {\r\n var measurement = measurements[i];\r\n size[measurement] = 0;\r\n }\r\n return size;\r\n }\r\n\r\n // -------------------------- getStyle -------------------------- //\r\n\r\n /**\r\n * getStyle, get style of element, check for Firefox bug\r\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\r\n */\r\n function getStyle(elem) {\r\n var style = getComputedStyle(elem);\r\n if (!style) {\r\n logError('Style returned ' + style +\r\n '. Are you running this code in a hidden iframe on Firefox? ' +\r\n 'See https://bit.ly/getsizebug1');\r\n }\r\n return style;\r\n }\r\n\r\n // -------------------------- setup -------------------------- //\r\n\r\n var isSetup = false;\r\n\r\n var isBoxSizeOuter;\r\n\r\n /**\r\n * setup\r\n * check isBoxSizerOuter\r\n * do on first getSize() rather than on page load for Firefox bug\r\n */\r\n function setup() {\r\n // setup once\r\n if (isSetup) {\r\n return;\r\n }\r\n isSetup = true;\r\n\r\n // -------------------------- box sizing -------------------------- //\r\n\r\n /**\r\n * Chrome & Safari measure the outer-width on style.width on border-box elems\r\n * IE11 & Firefox<29 measures the inner-width\r\n */\r\n var div = document.createElement('div');\r\n div.style.width = '200px';\r\n div.style.padding = '1px 2px 3px 4px';\r\n div.style.borderStyle = 'solid';\r\n div.style.borderWidth = '1px 2px 3px 4px';\r\n div.style.boxSizing = 'border-box';\r\n\r\n var body = document.body || document.documentElement;\r\n body.appendChild(div);\r\n var style = getStyle(div);\r\n // round value for browser zoom. desandro/masonry#928\r\n isBoxSizeOuter = Math.round(getStyleSize(style.width)) == 200;\r\n getSize.isBoxSizeOuter = isBoxSizeOuter;\r\n\r\n body.removeChild(div);\r\n }\r\n\r\n // -------------------------- getSize -------------------------- //\r\n\r\n function getSize(elem) {\r\n setup();\r\n\r\n // use querySeletor if elem is string\r\n if (typeof elem == 'string') {\r\n elem = document.querySelector(elem);\r\n }\r\n\r\n // do not proceed on non-objects\r\n if (!elem || typeof elem != 'object' || !elem.nodeType) {\r\n return;\r\n }\r\n\r\n var style = getStyle(elem);\r\n\r\n // if hidden, everything is 0\r\n if (style.display == 'none') {\r\n return getZeroSize();\r\n }\r\n\r\n var size = {};\r\n size.width = elem.offsetWidth;\r\n size.height = elem.offsetHeight;\r\n\r\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\r\n\r\n // get all measurements\r\n for (var i = 0; i < measurementsLength; i++) {\r\n var measurement = measurements[i];\r\n var value = style[measurement];\r\n var num = parseFloat(value);\r\n // any 'auto', 'medium' value will be 0\r\n size[measurement] = !isNaN(num) ? num : 0;\r\n }\r\n\r\n var paddingWidth = size.paddingLeft + size.paddingRight;\r\n var paddingHeight = size.paddingTop + size.paddingBottom;\r\n var marginWidth = size.marginLeft + size.marginRight;\r\n var marginHeight = size.marginTop + size.marginBottom;\r\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\r\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\r\n\r\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\r\n\r\n // overwrite width and height if we can get it from style\r\n var styleWidth = getStyleSize(style.width);\r\n if (styleWidth !== false) {\r\n size.width = styleWidth +\r\n // add padding and border unless it's already including it\r\n (isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth);\r\n }\r\n\r\n var styleHeight = getStyleSize(style.height);\r\n if (styleHeight !== false) {\r\n size.height = styleHeight +\r\n // add padding and border unless it's already including it\r\n (isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight);\r\n }\r\n\r\n size.innerWidth = size.width - (paddingWidth + borderWidth);\r\n size.innerHeight = size.height - (paddingHeight + borderHeight);\r\n\r\n size.outerWidth = size.width + marginWidth;\r\n size.outerHeight = size.height + marginHeight;\r\n\r\n return size;\r\n }\r\n\r\n return getSize;\r\n\r\n});\r\n\r\n/**\r\n * matchesSelector v2.0.2\r\n * matchesSelector( element, '.selector' )\r\n * MIT license\r\n */\r\n\r\n/*jshint browser: true, strict: true, undef: true, unused: true */\r\n\r\n(function (window, factory) {\r\n /*global define: false, module: false */\r\n 'use strict';\r\n // universal module definition\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('desandro-matches-selector/matches-selector', factory);\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory();\r\n } else {\r\n // browser global\r\n window.matchesSelector = factory();\r\n }\r\n\r\n}(window, function factory() {\r\n 'use strict';\r\n\r\n var matchesMethod = (function () {\r\n var ElemProto = window.Element.prototype;\r\n // check for the standard method name first\r\n if (ElemProto.matches) {\r\n return 'matches';\r\n }\r\n // check un-prefixed\r\n if (ElemProto.matchesSelector) {\r\n return 'matchesSelector';\r\n }\r\n // check vendor prefixes\r\n var prefixes = ['webkit', 'moz', 'ms', 'o'];\r\n\r\n for (var i = 0; i < prefixes.length; i++) {\r\n var prefix = prefixes[i];\r\n var method = prefix + 'MatchesSelector';\r\n if (ElemProto[method]) {\r\n return method;\r\n }\r\n }\r\n })();\r\n\r\n return function matchesSelector(elem, selector) {\r\n return elem[matchesMethod](selector);\r\n };\r\n\r\n}));\r\n\r\n/**\r\n * Fizzy UI utils v2.0.7\r\n * MIT license\r\n */\r\n\r\n/*jshint browser: true, undef: true, unused: true, strict: true */\r\n\r\n(function (window, factory) {\r\n // universal module definition\r\n /*jshint strict: false */ /*globals define, module, require */\r\n\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('fizzy-ui-utils/utils', [\r\n 'desandro-matches-selector/matches-selector'\r\n ], function (matchesSelector) {\r\n return factory(window, matchesSelector);\r\n });\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('desandro-matches-selector')\r\n );\r\n } else {\r\n // browser global\r\n window.fizzyUIUtils = factory(\r\n window,\r\n window.matchesSelector\r\n );\r\n }\r\n\r\n}(window, function factory(window, matchesSelector) {\r\n\r\n\r\n\r\n var utils = {};\r\n\r\n // ----- extend ----- //\r\n\r\n // extends objects\r\n utils.extend = function (a, b) {\r\n for (var prop in b) {\r\n a[prop] = b[prop];\r\n }\r\n return a;\r\n };\r\n\r\n // ----- modulo ----- //\r\n\r\n utils.modulo = function (num, div) {\r\n return ((num % div) + div) % div;\r\n };\r\n\r\n // ----- makeArray ----- //\r\n\r\n var arraySlice = Array.prototype.slice;\r\n\r\n // turn element or nodeList into an array\r\n utils.makeArray = function (obj) {\r\n if (Array.isArray(obj)) {\r\n // use object if already an array\r\n return obj;\r\n }\r\n // return empty array if undefined or null. #6\r\n if (obj === null || obj === undefined) {\r\n return [];\r\n }\r\n\r\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\r\n if (isArrayLike) {\r\n // convert nodeList to array\r\n return arraySlice.call(obj);\r\n }\r\n\r\n // array of single index\r\n return [obj];\r\n };\r\n\r\n // ----- removeFrom ----- //\r\n\r\n utils.removeFrom = function (ary, obj) {\r\n var index = ary.indexOf(obj);\r\n if (index != -1) {\r\n ary.splice(index, 1);\r\n }\r\n };\r\n\r\n // ----- getParent ----- //\r\n\r\n utils.getParent = function (elem, selector) {\r\n while (elem.parentNode && elem != document.body) {\r\n elem = elem.parentNode;\r\n if (matchesSelector(elem, selector)) {\r\n return elem;\r\n }\r\n }\r\n };\r\n\r\n // ----- getQueryElement ----- //\r\n\r\n // use element as selector string\r\n utils.getQueryElement = function (elem) {\r\n if (typeof elem == 'string') {\r\n return document.querySelector(elem);\r\n }\r\n return elem;\r\n };\r\n\r\n // ----- handleEvent ----- //\r\n\r\n // enable .ontype to trigger from .addEventListener( elem, 'type' )\r\n utils.handleEvent = function (event) {\r\n var method = 'on' + event.type;\r\n if (this[method]) {\r\n this[method](event);\r\n }\r\n };\r\n\r\n // ----- filterFindElements ----- //\r\n\r\n utils.filterFindElements = function (elems, selector) {\r\n // make array of elems\r\n elems = utils.makeArray(elems);\r\n var ffElems = [];\r\n\r\n elems.forEach(function (elem) {\r\n // check that elem is an actual element\r\n if (!(elem instanceof HTMLElement)) {\r\n return;\r\n }\r\n // add elem if no selector\r\n if (!selector) {\r\n ffElems.push(elem);\r\n return;\r\n }\r\n // filter & find items if we have a selector\r\n // filter\r\n if (matchesSelector(elem, selector)) {\r\n ffElems.push(elem);\r\n }\r\n // find children\r\n var childElems = elem.querySelectorAll(selector);\r\n // concat childElems to filterFound array\r\n for (var i = 0; i < childElems.length; i++) {\r\n ffElems.push(childElems[i]);\r\n }\r\n });\r\n\r\n return ffElems;\r\n };\r\n\r\n // ----- debounceMethod ----- //\r\n\r\n utils.debounceMethod = function (_class, methodName, threshold) {\r\n threshold = threshold || 100;\r\n // original method\r\n var method = _class.prototype[methodName];\r\n var timeoutName = methodName + 'Timeout';\r\n\r\n _class.prototype[methodName] = function () {\r\n var timeout = this[timeoutName];\r\n clearTimeout(timeout);\r\n\r\n var args = arguments;\r\n var _this = this;\r\n this[timeoutName] = setTimeout(function () {\r\n method.apply(_this, args);\r\n delete _this[timeoutName];\r\n }, threshold);\r\n };\r\n };\r\n\r\n // ----- docReady ----- //\r\n\r\n utils.docReady = function (callback) {\r\n var readyState = document.readyState;\r\n if (readyState == 'complete' || readyState == 'interactive') {\r\n // do async to allow for other scripts to run. metafizzy/flickity#441\r\n setTimeout(callback);\r\n } else {\r\n document.addEventListener('DOMContentLoaded', callback);\r\n }\r\n };\r\n\r\n // ----- htmlInit ----- //\r\n\r\n // http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\r\n utils.toDashed = function (str) {\r\n return str.replace(/(.)([A-Z])/g, function (match, $1, $2) {\r\n return $1 + '-' + $2;\r\n }).toLowerCase();\r\n };\r\n\r\n var console = window.console;\r\n /**\r\n * allow user to initialize classes via [data-namespace] or .js-namespace class\r\n * htmlInit( Widget, 'widgetName' )\r\n * options are parsed from data-namespace-options\r\n */\r\n utils.htmlInit = function (WidgetClass, namespace) {\r\n utils.docReady(function () {\r\n var dashedNamespace = utils.toDashed(namespace);\r\n var dataAttr = 'data-' + dashedNamespace;\r\n var dataAttrElems = document.querySelectorAll('[' + dataAttr + ']');\r\n var jsDashElems = document.querySelectorAll('.js-' + dashedNamespace);\r\n var elems = utils.makeArray(dataAttrElems)\r\n .concat(utils.makeArray(jsDashElems));\r\n var dataOptionsAttr = dataAttr + '-options';\r\n var jQuery = window.jQuery;\r\n\r\n elems.forEach(function (elem) {\r\n var attr = elem.getAttribute(dataAttr) ||\r\n elem.getAttribute(dataOptionsAttr);\r\n var options;\r\n try {\r\n options = attr && JSON.parse(attr);\r\n } catch (error) {\r\n // log error, do not initialize\r\n if (console) {\r\n console.error('Error parsing ' + dataAttr + ' on ' + elem.className +\r\n ': ' + error);\r\n }\r\n return;\r\n }\r\n // initialize\r\n var instance = new WidgetClass(elem, options);\r\n // make available via $().data('namespace')\r\n if (jQuery) {\r\n jQuery.data(elem, namespace, instance);\r\n }\r\n });\r\n\r\n });\r\n };\r\n\r\n // ----- ----- //\r\n\r\n return utils;\r\n\r\n}));\r\n\r\n// Flickity.Cell\r\n(function (window, factory) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('flickity/js/cell', [\r\n 'get-size/get-size'\r\n ], function (getSize) {\r\n return factory(window, getSize);\r\n });\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('get-size')\r\n );\r\n } else {\r\n // browser global\r\n window.Flickity = window.Flickity || {};\r\n window.Flickity.Cell = factory(\r\n window,\r\n window.getSize\r\n );\r\n }\r\n\r\n}(window, function factory(window, getSize) {\r\n\r\n\r\n\r\n function Cell(elem, parent) {\r\n this.element = elem;\r\n this.parent = parent;\r\n\r\n this.create();\r\n }\r\n\r\n var proto = Cell.prototype;\r\n\r\n proto.create = function () {\r\n this.element.style.position = 'absolute';\r\n this.element.setAttribute('aria-hidden', 'true');\r\n this.x = 0;\r\n this.shift = 0;\r\n };\r\n\r\n proto.destroy = function () {\r\n // reset style\r\n this.unselect();\r\n this.element.style.position = '';\r\n var side = this.parent.originSide;\r\n this.element.style[side] = '';\r\n };\r\n\r\n proto.getSize = function () {\r\n this.size = getSize(this.element);\r\n };\r\n\r\n proto.setPosition = function (x) {\r\n this.x = x;\r\n this.updateTarget();\r\n this.renderPosition(x);\r\n };\r\n\r\n // setDefaultTarget v1 method, backwards compatibility, remove in v3\r\n proto.updateTarget = proto.setDefaultTarget = function () {\r\n var marginProperty = this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';\r\n this.target = this.x + this.size[marginProperty] +\r\n this.size.width * this.parent.cellAlign;\r\n };\r\n\r\n proto.renderPosition = function (x) {\r\n // render position of cell with in slider\r\n var side = this.parent.originSide;\r\n this.element.style[side] = this.parent.getPositionValue(x);\r\n };\r\n\r\n proto.select = function () {\r\n this.element.classList.add('is-selected');\r\n this.element.removeAttribute('aria-hidden');\r\n };\r\n\r\n proto.unselect = function () {\r\n this.element.classList.remove('is-selected');\r\n this.element.setAttribute('aria-hidden', 'true');\r\n };\r\n\r\n /**\r\n * @param {Integer} factor - 0, 1, or -1\r\n **/\r\n proto.wrapShift = function (shift) {\r\n this.shift = shift;\r\n this.renderPosition(this.x + this.parent.slideableWidth * shift);\r\n };\r\n\r\n proto.remove = function () {\r\n this.element.parentNode.removeChild(this.element);\r\n };\r\n\r\n return Cell;\r\n\r\n}));\r\n\r\n// slide\r\n(function (window, factory) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('flickity/js/slide', factory);\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory();\r\n } else {\r\n // browser global\r\n window.Flickity = window.Flickity || {};\r\n window.Flickity.Slide = factory();\r\n }\r\n\r\n}(window, function factory() {\r\n 'use strict';\r\n\r\n function Slide(parent) {\r\n this.parent = parent;\r\n this.isOriginLeft = parent.originSide == 'left';\r\n this.cells = [];\r\n this.outerWidth = 0;\r\n this.height = 0;\r\n }\r\n\r\n var proto = Slide.prototype;\r\n\r\n proto.addCell = function (cell) {\r\n this.cells.push(cell);\r\n this.outerWidth += cell.size.outerWidth;\r\n this.height = Math.max(cell.size.outerHeight, this.height);\r\n // first cell stuff\r\n if (this.cells.length == 1) {\r\n this.x = cell.x; // x comes from first cell\r\n var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\r\n this.firstMargin = cell.size[beginMargin];\r\n }\r\n };\r\n\r\n proto.updateTarget = function () {\r\n var endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft';\r\n var lastCell = this.getLastCell();\r\n var lastMargin = lastCell ? lastCell.size[endMargin] : 0;\r\n var slideWidth = this.outerWidth - (this.firstMargin + lastMargin);\r\n this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign;\r\n };\r\n\r\n proto.getLastCell = function () {\r\n return this.cells[this.cells.length - 1];\r\n };\r\n\r\n proto.select = function () {\r\n this.cells.forEach(function (cell) {\r\n cell.select();\r\n });\r\n };\r\n\r\n proto.unselect = function () {\r\n this.cells.forEach(function (cell) {\r\n cell.unselect();\r\n });\r\n };\r\n\r\n proto.getCellElements = function () {\r\n return this.cells.map(function (cell) {\r\n return cell.element;\r\n });\r\n };\r\n\r\n return Slide;\r\n\r\n}));\r\n\r\n// animate\r\n(function (window, factory) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('flickity/js/animate', [\r\n 'fizzy-ui-utils/utils'\r\n ], function (utils) {\r\n return factory(window, utils);\r\n });\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('fizzy-ui-utils')\r\n );\r\n } else {\r\n // browser global\r\n window.Flickity = window.Flickity || {};\r\n window.Flickity.animatePrototype = factory(\r\n window,\r\n window.fizzyUIUtils\r\n );\r\n }\r\n\r\n}(window, function factory(window, utils) {\r\n\r\n\r\n\r\n // -------------------------- animate -------------------------- //\r\n\r\n var proto = {};\r\n\r\n proto.startAnimation = function () {\r\n if (this.isAnimating) {\r\n return;\r\n }\r\n\r\n this.isAnimating = true;\r\n this.restingFrames = 0;\r\n this.animate();\r\n };\r\n\r\n proto.animate = function () {\r\n this.applyDragForce();\r\n this.applySelectedAttraction();\r\n\r\n var previousX = this.x;\r\n\r\n this.integratePhysics();\r\n this.positionSlider();\r\n this.settle(previousX);\r\n // animate next frame\r\n if (this.isAnimating) {\r\n var _this = this;\r\n requestAnimationFrame(function animateFrame() {\r\n _this.animate();\r\n });\r\n }\r\n };\r\n\r\n proto.positionSlider = function () {\r\n var x = this.x;\r\n // wrap position around\r\n if (this.options.wrapAround && this.cells.length > 1) {\r\n x = utils.modulo(x, this.slideableWidth);\r\n x = x - this.slideableWidth;\r\n this.shiftWrapCells(x);\r\n }\r\n\r\n this.setTranslateX(x, this.isAnimating);\r\n this.dispatchScrollEvent();\r\n };\r\n\r\n proto.setTranslateX = function (x, is3d) {\r\n x += this.cursorPosition;\r\n // reverse if right-to-left and using transform\r\n x = this.options.rightToLeft ? -x : x;\r\n var translateX = this.getPositionValue(x);\r\n // use 3D tranforms for hardware acceleration on iOS\r\n // but use 2D when settled, for better font-rendering\r\n this.slider.style.transform = is3d ?\r\n 'translate3d(' + translateX + ',0,0)' : 'translateX(' + translateX + ')';\r\n };\r\n\r\n proto.dispatchScrollEvent = function () {\r\n var firstSlide = this.slides[0];\r\n if (!firstSlide) {\r\n return;\r\n }\r\n var positionX = -this.x - firstSlide.target;\r\n var progress = positionX / this.slidesWidth;\r\n this.dispatchEvent('scroll', null, [progress, positionX]);\r\n };\r\n\r\n proto.positionSliderAtSelected = function () {\r\n if (!this.cells.length) {\r\n return;\r\n }\r\n this.x = -this.selectedSlide.target;\r\n this.velocity = 0; // stop wobble\r\n this.positionSlider();\r\n };\r\n\r\n proto.getPositionValue = function (position) {\r\n if (this.options.percentPosition) {\r\n // percent position, round to 2 digits, like 12.34%\r\n return (Math.round((position / this.size.innerWidth) * 10000) * 0.01) + '%';\r\n } else {\r\n // pixel positioning\r\n return Math.round(position) + 'px';\r\n }\r\n };\r\n\r\n proto.settle = function (previousX) {\r\n // keep track of frames where x hasn't moved\r\n if (!this.isPointerDown && Math.round(this.x * 100) == Math.round(previousX * 100)) {\r\n this.restingFrames++;\r\n }\r\n // stop animating if resting for 3 or more frames\r\n if (this.restingFrames > 2) {\r\n this.isAnimating = false;\r\n delete this.isFreeScrolling;\r\n // render position with translateX when settled\r\n this.positionSlider();\r\n this.dispatchEvent('settle', null, [this.selectedIndex]);\r\n }\r\n };\r\n\r\n proto.shiftWrapCells = function (x) {\r\n // shift before cells\r\n var beforeGap = this.cursorPosition + x;\r\n this._shiftCells(this.beforeShiftCells, beforeGap, -1);\r\n // shift after cells\r\n var afterGap = this.size.innerWidth - (x + this.slideableWidth + this.cursorPosition);\r\n this._shiftCells(this.afterShiftCells, afterGap, 1);\r\n };\r\n\r\n proto._shiftCells = function (cells, gap, shift) {\r\n for (var i = 0; i < cells.length; i++) {\r\n var cell = cells[i];\r\n var cellShift = gap > 0 ? shift : 0;\r\n cell.wrapShift(cellShift);\r\n gap -= cell.size.outerWidth;\r\n }\r\n };\r\n\r\n proto._unshiftCells = function (cells) {\r\n if (!cells || !cells.length) {\r\n return;\r\n }\r\n for (var i = 0; i < cells.length; i++) {\r\n cells[i].wrapShift(0);\r\n }\r\n };\r\n\r\n // -------------------------- physics -------------------------- //\r\n\r\n proto.integratePhysics = function () {\r\n this.x += this.velocity;\r\n this.velocity *= this.getFrictionFactor();\r\n };\r\n\r\n proto.applyForce = function (force) {\r\n this.velocity += force;\r\n };\r\n\r\n proto.getFrictionFactor = function () {\r\n return 1 - this.options[this.isFreeScrolling ? 'freeScrollFriction' : 'friction'];\r\n };\r\n\r\n proto.getRestingPosition = function () {\r\n // my thanks to Steven Wittens, who simplified this math greatly\r\n return this.x + this.velocity / (1 - this.getFrictionFactor());\r\n };\r\n\r\n proto.applyDragForce = function () {\r\n if (!this.isDraggable || !this.isPointerDown) {\r\n return;\r\n }\r\n // change the position to drag position by applying force\r\n var dragVelocity = this.dragX - this.x;\r\n var dragForce = dragVelocity - this.velocity;\r\n this.applyForce(dragForce);\r\n };\r\n\r\n proto.applySelectedAttraction = function () {\r\n // do not attract if pointer down or no slides\r\n var dragDown = this.isDraggable && this.isPointerDown;\r\n if (dragDown || this.isFreeScrolling || !this.slides.length) {\r\n return;\r\n }\r\n var distance = this.selectedSlide.target * -1 - this.x;\r\n var force = distance * this.options.selectedAttraction;\r\n this.applyForce(force);\r\n };\r\n\r\n return proto;\r\n\r\n}));\r\n\r\n// Flickity main\r\n(function (window, factory) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('flickity/js/flickity', [\r\n 'ev-emitter/ev-emitter',\r\n 'get-size/get-size',\r\n 'fizzy-ui-utils/utils',\r\n './cell',\r\n './slide',\r\n './animate'\r\n ], function (EvEmitter, getSize, utils, Cell, Slide, animatePrototype) {\r\n return factory(window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype);\r\n });\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('ev-emitter'),\r\n require('get-size'),\r\n require('fizzy-ui-utils'),\r\n require('./cell'),\r\n require('./slide'),\r\n require('./animate')\r\n );\r\n } else {\r\n // browser global\r\n var _Flickity = window.Flickity;\r\n\r\n window.Flickity = factory(\r\n window,\r\n window.EvEmitter,\r\n window.getSize,\r\n window.fizzyUIUtils,\r\n _Flickity.Cell,\r\n _Flickity.Slide,\r\n _Flickity.animatePrototype\r\n );\r\n }\r\n\r\n}(window, function factory(window, EvEmitter, getSize,\r\n utils, Cell, Slide, animatePrototype) {\r\n\r\n\r\n\r\n // vars\r\n var jQuery = window.jQuery;\r\n var getComputedStyle = window.getComputedStyle;\r\n var console = window.console;\r\n\r\n function moveElements(elems, toElem) {\r\n elems = utils.makeArray(elems);\r\n while (elems.length) {\r\n toElem.appendChild(elems.shift());\r\n }\r\n }\r\n\r\n // -------------------------- Flickity -------------------------- //\r\n\r\n // globally unique identifiers\r\n var GUID = 0;\r\n // internal store of all Flickity intances\r\n var instances = {};\r\n\r\n function Flickity(element, options) {\r\n var queryElement = utils.getQueryElement(element);\r\n if (!queryElement) {\r\n if (console) {\r\n console.error('Bad element for Flickity: ' + (queryElement || element));\r\n }\r\n return;\r\n }\r\n this.element = queryElement;\r\n // do not initialize twice on same element\r\n if (this.element.flickityGUID) {\r\n var instance = instances[this.element.flickityGUID];\r\n instance.option(options);\r\n return instance;\r\n }\r\n\r\n // add jQuery\r\n if (jQuery) {\r\n this.$element = jQuery(this.element);\r\n }\r\n // options\r\n this.options = utils.extend({}, this.constructor.defaults);\r\n this.option(options);\r\n\r\n // kick things off\r\n this._create();\r\n }\r\n\r\n Flickity.defaults = {\r\n accessibility: true,\r\n // adaptiveHeight: false,\r\n cellAlign: 'center',\r\n // cellSelector: undefined,\r\n // contain: false,\r\n freeScrollFriction: 0.075, // friction when free-scrolling\r\n friction: 0.28, // friction when selecting\r\n namespaceJQueryEvents: true,\r\n // initialIndex: 0,\r\n percentPosition: true,\r\n resize: true,\r\n selectedAttraction: 0.025,\r\n setGallerySize: true\r\n // watchCSS: false,\r\n // wrapAround: false\r\n };\r\n\r\n // hash of methods triggered on _create()\r\n Flickity.createMethods = [];\r\n\r\n var proto = Flickity.prototype;\r\n // inherit EventEmitter\r\n utils.extend(proto, EvEmitter.prototype);\r\n\r\n proto._create = function () {\r\n // add id for Flickity.data\r\n var id = this.guid = ++GUID;\r\n this.element.flickityGUID = id; // expando\r\n instances[id] = this; // associate via id\r\n // initial properties\r\n this.selectedIndex = 0;\r\n // how many frames slider has been in same position\r\n this.restingFrames = 0;\r\n // initial physics properties\r\n this.x = 0;\r\n this.velocity = 0;\r\n this.originSide = this.options.rightToLeft ? 'right' : 'left';\r\n // create viewport & slider\r\n this.viewport = document.createElement('div');\r\n this.viewport.className = 'flickity-viewport';\r\n this._createSlider();\r\n\r\n if (this.options.resize || this.options.watchCSS) {\r\n window.addEventListener('resize', this);\r\n }\r\n\r\n // add listeners from on option\r\n for (var eventName in this.options.on) {\r\n var listener = this.options.on[eventName];\r\n this.on(eventName, listener);\r\n }\r\n\r\n Flickity.createMethods.forEach(function (method) {\r\n this[method]();\r\n }, this);\r\n\r\n if (this.options.watchCSS) {\r\n this.watchCSS();\r\n } else {\r\n this.activate();\r\n }\r\n\r\n };\r\n\r\n /**\r\n * set options\r\n * @param {Object} opts\r\n */\r\n proto.option = function (opts) {\r\n utils.extend(this.options, opts);\r\n };\r\n\r\n proto.activate = function () {\r\n if (this.isActive) {\r\n return;\r\n }\r\n this.isActive = true;\r\n this.element.classList.add('flickity-enabled');\r\n if (this.options.rightToLeft) {\r\n this.element.classList.add('flickity-rtl');\r\n }\r\n\r\n this.getSize();\r\n // move initial cell elements so they can be loaded as cells\r\n var cellElems = this._filterFindCellElements(this.element.children);\r\n moveElements(cellElems, this.slider);\r\n this.viewport.appendChild(this.slider);\r\n this.element.appendChild(this.viewport);\r\n // get cells from children\r\n this.reloadCells();\r\n\r\n if (this.options.accessibility) {\r\n // allow element to focusable\r\n this.element.tabIndex = 0;\r\n // listen for key presses\r\n this.element.addEventListener('keydown', this);\r\n }\r\n\r\n this.emitEvent('activate');\r\n this.selectInitialIndex();\r\n // flag for initial activation, for using initialIndex\r\n this.isInitActivated = true;\r\n // ready event. #493\r\n this.dispatchEvent('ready');\r\n };\r\n\r\n // slider positions the cells\r\n proto._createSlider = function () {\r\n // slider element does all the positioning\r\n var slider = document.createElement('div');\r\n slider.className = 'flickity-slider';\r\n slider.style[this.originSide] = 0;\r\n this.slider = slider;\r\n };\r\n\r\n proto._filterFindCellElements = function (elems) {\r\n return utils.filterFindElements(elems, this.options.cellSelector);\r\n };\r\n\r\n // goes through all children\r\n proto.reloadCells = function () {\r\n // collection of item elements\r\n this.cells = this._makeCells(this.slider.children);\r\n this.positionCells();\r\n this._getWrapShiftCells();\r\n this.setGallerySize();\r\n };\r\n\r\n /**\r\n * turn elements into Flickity.Cells\r\n * @param {Array or NodeList or HTMLElement} elems\r\n * @returns {Array} items - collection of new Flickity Cells\r\n */\r\n proto._makeCells = function (elems) {\r\n var cellElems = this._filterFindCellElements(elems);\r\n\r\n // create new Flickity for collection\r\n var cells = cellElems.map(function (cellElem) {\r\n return new Cell(cellElem, this);\r\n }, this);\r\n\r\n return cells;\r\n };\r\n\r\n proto.getLastCell = function () {\r\n return this.cells[this.cells.length - 1];\r\n };\r\n\r\n proto.getLastSlide = function () {\r\n return this.slides[this.slides.length - 1];\r\n };\r\n\r\n // positions all cells\r\n proto.positionCells = function () {\r\n // size all cells\r\n this._sizeCells(this.cells);\r\n // position all cells\r\n this._positionCells(0);\r\n };\r\n\r\n /**\r\n * position certain cells\r\n * @param {Integer} index - which cell to start with\r\n */\r\n proto._positionCells = function (index) {\r\n index = index || 0;\r\n // also measure maxCellHeight\r\n // start 0 if positioning all cells\r\n this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\r\n var cellX = 0;\r\n // get cellX\r\n if (index > 0) {\r\n var startCell = this.cells[index - 1];\r\n cellX = startCell.x + startCell.size.outerWidth;\r\n }\r\n var len = this.cells.length;\r\n for (var i = index; i < len; i++) {\r\n var cell = this.cells[i];\r\n cell.setPosition(cellX);\r\n cellX += cell.size.outerWidth;\r\n this.maxCellHeight = Math.max(cell.size.outerHeight, this.maxCellHeight);\r\n }\r\n // keep track of cellX for wrap-around\r\n this.slideableWidth = cellX;\r\n // slides\r\n this.updateSlides();\r\n // contain slides target\r\n this._containSlides();\r\n // update slidesWidth\r\n this.slidesWidth = len ? this.getLastSlide().target - this.slides[0].target : 0;\r\n };\r\n\r\n /**\r\n * cell.getSize() on multiple cells\r\n * @param {Array} cells\r\n */\r\n proto._sizeCells = function (cells) {\r\n cells.forEach(function (cell) {\r\n cell.getSize();\r\n });\r\n };\r\n\r\n // -------------------------- -------------------------- //\r\n\r\n proto.updateSlides = function () {\r\n this.slides = [];\r\n if (!this.cells.length) {\r\n return;\r\n }\r\n\r\n var slide = new Slide(this);\r\n this.slides.push(slide);\r\n var isOriginLeft = this.originSide == 'left';\r\n var nextMargin = isOriginLeft ? 'marginRight' : 'marginLeft';\r\n\r\n var canCellFit = this._getCanCellFit();\r\n\r\n this.cells.forEach(function (cell, i) {\r\n // just add cell if first cell in slide\r\n if (!slide.cells.length) {\r\n slide.addCell(cell);\r\n return;\r\n }\r\n\r\n var slideWidth = (slide.outerWidth - slide.firstMargin) +\r\n (cell.size.outerWidth - cell.size[nextMargin]);\r\n\r\n if (canCellFit.call(this, i, slideWidth)) {\r\n slide.addCell(cell);\r\n } else {\r\n // doesn't fit, new slide\r\n slide.updateTarget();\r\n\r\n slide = new Slide(this);\r\n this.slides.push(slide);\r\n slide.addCell(cell);\r\n }\r\n }, this);\r\n // last slide\r\n slide.updateTarget();\r\n // update .selectedSlide\r\n this.updateSelectedSlide();\r\n };\r\n\r\n proto._getCanCellFit = function () {\r\n var groupCells = this.options.groupCells;\r\n if (!groupCells) {\r\n return function () {\r\n return false;\r\n };\r\n } else if (typeof groupCells == 'number') {\r\n // group by number. 3 -> [0,1,2], [3,4,5], ...\r\n var number = parseInt(groupCells, 10);\r\n return function (i) {\r\n return (i % number) !== 0;\r\n };\r\n }\r\n // default, group by width of slide\r\n // parse '75%\r\n var percentMatch = typeof groupCells == 'string' &&\r\n groupCells.match(/^(\\d+)%$/);\r\n var percent = percentMatch ? parseInt(percentMatch[1], 10) / 100 : 1;\r\n return function (i, slideWidth) {\r\n return slideWidth <= (this.size.innerWidth + 1) * percent;\r\n };\r\n };\r\n\r\n // alias _init for jQuery plugin .flickity()\r\n proto._init =\r\n proto.reposition = function () {\r\n this.positionCells();\r\n this.positionSliderAtSelected();\r\n };\r\n\r\n proto.getSize = function () {\r\n this.size = getSize(this.element);\r\n this.setCellAlign();\r\n this.cursorPosition = this.size.innerWidth * this.cellAlign;\r\n };\r\n\r\n var cellAlignShorthands = {\r\n // cell align, then based on origin side\r\n center: {\r\n left: 0.5,\r\n right: 0.5\r\n },\r\n left: {\r\n left: 0,\r\n right: 1\r\n },\r\n right: {\r\n right: 0,\r\n left: 1\r\n }\r\n };\r\n\r\n proto.setCellAlign = function () {\r\n var shorthand = cellAlignShorthands[this.options.cellAlign];\r\n this.cellAlign = shorthand ? shorthand[this.originSide] : this.options.cellAlign;\r\n };\r\n\r\n proto.setGallerySize = function () {\r\n if (this.options.setGallerySize) {\r\n var height = this.options.adaptiveHeight && this.selectedSlide ?\r\n this.selectedSlide.height : this.maxCellHeight;\r\n this.viewport.style.height = height + 'px';\r\n }\r\n };\r\n\r\n proto._getWrapShiftCells = function () {\r\n // only for wrap-around\r\n if (!this.options.wrapAround) {\r\n return;\r\n }\r\n // unshift previous cells\r\n this._unshiftCells(this.beforeShiftCells);\r\n this._unshiftCells(this.afterShiftCells);\r\n // get before cells\r\n // initial gap\r\n var gapX = this.cursorPosition;\r\n var cellIndex = this.cells.length - 1;\r\n this.beforeShiftCells = this._getGapCells(gapX, cellIndex, -1);\r\n // get after cells\r\n // ending gap between last cell and end of gallery viewport\r\n gapX = this.size.innerWidth - this.cursorPosition;\r\n // start cloning at first cell, working forwards\r\n this.afterShiftCells = this._getGapCells(gapX, 0, 1);\r\n };\r\n\r\n proto._getGapCells = function (gapX, cellIndex, increment) {\r\n // keep adding cells until the cover the initial gap\r\n var cells = [];\r\n while (gapX > 0) {\r\n var cell = this.cells[cellIndex];\r\n if (!cell) {\r\n break;\r\n }\r\n cells.push(cell);\r\n cellIndex += increment;\r\n gapX -= cell.size.outerWidth;\r\n }\r\n return cells;\r\n };\r\n\r\n // ----- contain ----- //\r\n\r\n // contain cell targets so no excess sliding\r\n proto._containSlides = function () {\r\n if (!this.options.contain || this.options.wrapAround || !this.cells.length) {\r\n return;\r\n }\r\n var isRightToLeft = this.options.rightToLeft;\r\n var beginMargin = isRightToLeft ? 'marginRight' : 'marginLeft';\r\n var endMargin = isRightToLeft ? 'marginLeft' : 'marginRight';\r\n var contentWidth = this.slideableWidth - this.getLastCell().size[endMargin];\r\n // content is less than gallery size\r\n var isContentSmaller = contentWidth < this.size.innerWidth;\r\n // bounds\r\n var beginBound = this.cursorPosition + this.cells[0].size[beginMargin];\r\n var endBound = contentWidth - this.size.innerWidth * (1 - this.cellAlign);\r\n // contain each cell target\r\n this.slides.forEach(function (slide) {\r\n if (isContentSmaller) {\r\n // all cells fit inside gallery\r\n slide.target = contentWidth * this.cellAlign;\r\n } else {\r\n // contain to bounds\r\n slide.target = Math.max(slide.target, beginBound);\r\n slide.target = Math.min(slide.target, endBound);\r\n }\r\n }, this);\r\n };\r\n\r\n // ----- ----- //\r\n\r\n /**\r\n * emits events via eventEmitter and jQuery events\r\n * @param {String} type - name of event\r\n * @param {Event} event - original event\r\n * @param {Array} args - extra arguments\r\n */\r\n proto.dispatchEvent = function (type, event, args) {\r\n var emitArgs = event ? [event].concat(args) : args;\r\n this.emitEvent(type, emitArgs);\r\n\r\n if (jQuery && this.$element) {\r\n // default trigger with type if no event\r\n type += this.options.namespaceJQueryEvents ? '.flickity' : '';\r\n var $event = type;\r\n if (event) {\r\n // create jQuery event\r\n var jQEvent = jQuery.Event(event);\r\n jQEvent.type = type;\r\n $event = jQEvent;\r\n }\r\n this.$element.trigger($event, args);\r\n }\r\n };\r\n\r\n // -------------------------- select -------------------------- //\r\n\r\n /**\r\n * @param {Integer} index - index of the slide\r\n * @param {Boolean} isWrap - will wrap-around to last/first if at the end\r\n * @param {Boolean} isInstant - will immediately set position at selected cell\r\n */\r\n proto.select = function (index, isWrap, isInstant) {\r\n if (!this.isActive) {\r\n return;\r\n }\r\n index = parseInt(index, 10);\r\n this._wrapSelect(index);\r\n\r\n if (this.options.wrapAround || isWrap) {\r\n index = utils.modulo(index, this.slides.length);\r\n }\r\n // bail if invalid index\r\n if (!this.slides[index]) {\r\n return;\r\n }\r\n var prevIndex = this.selectedIndex;\r\n this.selectedIndex = index;\r\n this.updateSelectedSlide();\r\n if (isInstant) {\r\n this.positionSliderAtSelected();\r\n } else {\r\n this.startAnimation();\r\n }\r\n if (this.options.adaptiveHeight) {\r\n this.setGallerySize();\r\n }\r\n // events\r\n this.dispatchEvent('select', null, [index]);\r\n // change event if new index\r\n if (index != prevIndex) {\r\n this.dispatchEvent('change', null, [index]);\r\n }\r\n // old v1 event name, remove in v3\r\n this.dispatchEvent('cellSelect');\r\n };\r\n\r\n // wraps position for wrapAround, to move to closest slide. #113\r\n proto._wrapSelect = function (index) {\r\n var len = this.slides.length;\r\n var isWrapping = this.options.wrapAround && len > 1;\r\n if (!isWrapping) {\r\n return index;\r\n }\r\n var wrapIndex = utils.modulo(index, len);\r\n // go to shortest\r\n var delta = Math.abs(wrapIndex - this.selectedIndex);\r\n var backWrapDelta = Math.abs((wrapIndex + len) - this.selectedIndex);\r\n var forewardWrapDelta = Math.abs((wrapIndex - len) - this.selectedIndex);\r\n if (!this.isDragSelect && backWrapDelta < delta) {\r\n index += len;\r\n } else if (!this.isDragSelect && forewardWrapDelta < delta) {\r\n index -= len;\r\n }\r\n // wrap position so slider is within normal area\r\n if (index < 0) {\r\n this.x -= this.slideableWidth;\r\n } else if (index >= len) {\r\n this.x += this.slideableWidth;\r\n }\r\n };\r\n\r\n proto.previous = function (isWrap, isInstant) {\r\n this.select(this.selectedIndex - 1, isWrap, isInstant);\r\n };\r\n\r\n proto.next = function (isWrap, isInstant) {\r\n this.select(this.selectedIndex + 1, isWrap, isInstant);\r\n };\r\n\r\n proto.updateSelectedSlide = function () {\r\n var slide = this.slides[this.selectedIndex];\r\n // selectedIndex could be outside of slides, if triggered before resize()\r\n if (!slide) {\r\n return;\r\n }\r\n // unselect previous selected slide\r\n this.unselectSelectedSlide();\r\n // update new selected slide\r\n this.selectedSlide = slide;\r\n slide.select();\r\n this.selectedCells = slide.cells;\r\n this.selectedElements = slide.getCellElements();\r\n // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\r\n // Remove in v3?\r\n this.selectedCell = slide.cells[0];\r\n this.selectedElement = this.selectedElements[0];\r\n };\r\n\r\n proto.unselectSelectedSlide = function () {\r\n if (this.selectedSlide) {\r\n this.selectedSlide.unselect();\r\n }\r\n };\r\n\r\n proto.selectInitialIndex = function () {\r\n var initialIndex = this.options.initialIndex;\r\n // already activated, select previous selectedIndex\r\n if (this.isInitActivated) {\r\n this.select(this.selectedIndex, false, true);\r\n return;\r\n }\r\n // select with selector string\r\n if (initialIndex && typeof initialIndex == 'string') {\r\n var cell = this.queryCell(initialIndex);\r\n if (cell) {\r\n this.selectCell(initialIndex, false, true);\r\n return;\r\n }\r\n }\r\n\r\n var index = 0;\r\n // select with number\r\n if (initialIndex && this.slides[initialIndex]) {\r\n index = initialIndex;\r\n }\r\n // select instantly\r\n this.select(index, false, true);\r\n };\r\n\r\n /**\r\n * select slide from number or cell element\r\n * @param {Element or Number} elem\r\n */\r\n proto.selectCell = function (value, isWrap, isInstant) {\r\n // get cell\r\n var cell = this.queryCell(value);\r\n if (!cell) {\r\n return;\r\n }\r\n\r\n var index = this.getCellSlideIndex(cell);\r\n this.select(index, isWrap, isInstant);\r\n };\r\n\r\n proto.getCellSlideIndex = function (cell) {\r\n // get index of slides that has cell\r\n for (var i = 0; i < this.slides.length; i++) {\r\n var slide = this.slides[i];\r\n var index = slide.cells.indexOf(cell);\r\n if (index != -1) {\r\n return i;\r\n }\r\n }\r\n };\r\n\r\n // -------------------------- get cells -------------------------- //\r\n\r\n /**\r\n * get Flickity.Cell, given an Element\r\n * @param {Element} elem\r\n * @returns {Flickity.Cell} item\r\n */\r\n proto.getCell = function (elem) {\r\n // loop through cells to get the one that matches\r\n for (var i = 0; i < this.cells.length; i++) {\r\n var cell = this.cells[i];\r\n if (cell.element == elem) {\r\n return cell;\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * get collection of Flickity.Cells, given Elements\r\n * @param {Element, Array, NodeList} elems\r\n * @returns {Array} cells - Flickity.Cells\r\n */\r\n proto.getCells = function (elems) {\r\n elems = utils.makeArray(elems);\r\n var cells = [];\r\n elems.forEach(function (elem) {\r\n var cell = this.getCell(elem);\r\n if (cell) {\r\n cells.push(cell);\r\n }\r\n }, this);\r\n return cells;\r\n };\r\n\r\n /**\r\n * get cell elements\r\n * @returns {Array} cellElems\r\n */\r\n proto.getCellElements = function () {\r\n return this.cells.map(function (cell) {\r\n return cell.element;\r\n });\r\n };\r\n\r\n /**\r\n * get parent cell from an element\r\n * @param {Element} elem\r\n * @returns {Flickit.Cell} cell\r\n */\r\n proto.getParentCell = function (elem) {\r\n // first check if elem is cell\r\n var cell = this.getCell(elem);\r\n if (cell) {\r\n return cell;\r\n }\r\n // try to get parent cell elem\r\n elem = utils.getParent(elem, '.flickity-slider > *');\r\n return this.getCell(elem);\r\n };\r\n\r\n /**\r\n * get cells adjacent to a slide\r\n * @param {Integer} adjCount - number of adjacent slides\r\n * @param {Integer} index - index of slide to start\r\n * @returns {Array} cells - array of Flickity.Cells\r\n */\r\n proto.getAdjacentCellElements = function (adjCount, index) {\r\n if (!adjCount) {\r\n return this.selectedSlide.getCellElements();\r\n }\r\n index = index === undefined ? this.selectedIndex : index;\r\n\r\n var len = this.slides.length;\r\n if (1 + (adjCount * 2) >= len) {\r\n return this.getCellElements();\r\n }\r\n\r\n var cellElems = [];\r\n for (var i = index - adjCount; i <= index + adjCount; i++) {\r\n var slideIndex = this.options.wrapAround ? utils.modulo(i, len) : i;\r\n var slide = this.slides[slideIndex];\r\n if (slide) {\r\n cellElems = cellElems.concat(slide.getCellElements());\r\n }\r\n }\r\n return cellElems;\r\n };\r\n\r\n /**\r\n * select slide from number or cell element\r\n * @param {Element, Selector String, or Number} selector\r\n */\r\n proto.queryCell = function (selector) {\r\n if (typeof selector == 'number') {\r\n // use number as index\r\n return this.cells[selector];\r\n }\r\n if (typeof selector == 'string') {\r\n // do not select invalid selectors from hash: #123, #/. #791\r\n if (selector.match(/^[#\\.]?[\\d\\/]/)) {\r\n return;\r\n }\r\n // use string as selector, get element\r\n selector = this.element.querySelector(selector);\r\n }\r\n // get cell from element\r\n return this.getCell(selector);\r\n };\r\n\r\n // -------------------------- events -------------------------- //\r\n\r\n proto.uiChange = function () {\r\n this.emitEvent('uiChange');\r\n };\r\n\r\n // keep focus on element when child UI elements are clicked\r\n proto.childUIPointerDown = function (event) {\r\n // HACK iOS does not allow touch events to bubble up?!\r\n if (event.type != 'touchstart') {\r\n event.preventDefault();\r\n }\r\n this.focus();\r\n };\r\n\r\n // ----- resize ----- //\r\n\r\n proto.onresize = function () {\r\n this.watchCSS();\r\n this.resize();\r\n };\r\n\r\n utils.debounceMethod(Flickity, 'onresize', 150);\r\n\r\n proto.resize = function () {\r\n if (!this.isActive) {\r\n return;\r\n }\r\n this.getSize();\r\n // wrap values\r\n if (this.options.wrapAround) {\r\n this.x = utils.modulo(this.x, this.slideableWidth);\r\n }\r\n this.positionCells();\r\n this._getWrapShiftCells();\r\n this.setGallerySize();\r\n this.emitEvent('resize');\r\n // update selected index for group slides, instant\r\n // TODO: position can be lost between groups of various numbers\r\n var selectedElement = this.selectedElements && this.selectedElements[0];\r\n this.selectCell(selectedElement, false, true);\r\n };\r\n\r\n // watches the :after property, activates/deactivates\r\n proto.watchCSS = function () {\r\n var watchOption = this.options.watchCSS;\r\n if (!watchOption) {\r\n return;\r\n }\r\n\r\n var afterContent = getComputedStyle(this.element, ':after').content;\r\n // activate if :after { content: 'flickity' }\r\n if (afterContent.indexOf('flickity') != -1) {\r\n this.activate();\r\n } else {\r\n this.deactivate();\r\n }\r\n };\r\n\r\n // ----- keydown ----- //\r\n\r\n // go previous/next if left/right keys pressed\r\n proto.onkeydown = function (event) {\r\n // only work if element is in focus\r\n var isNotFocused = document.activeElement && document.activeElement != this.element;\r\n if (!this.options.accessibility || isNotFocused) {\r\n return;\r\n }\r\n\r\n var handler = Flickity.keyboardHandlers[event.keyCode];\r\n if (handler) {\r\n handler.call(this);\r\n }\r\n };\r\n\r\n Flickity.keyboardHandlers = {\r\n // left arrow\r\n 37: function () {\r\n var leftMethod = this.options.rightToLeft ? 'next' : 'previous';\r\n this.uiChange();\r\n this[leftMethod]();\r\n },\r\n // right arrow\r\n 39: function () {\r\n var rightMethod = this.options.rightToLeft ? 'previous' : 'next';\r\n this.uiChange();\r\n this[rightMethod]();\r\n },\r\n };\r\n\r\n // ----- focus ----- //\r\n\r\n proto.focus = function () {\r\n // TODO remove scrollTo once focus options gets more support\r\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#Browser_compatibility\r\n var prevScrollY = window.pageYOffset;\r\n this.element.focus({ preventScroll: true });\r\n // hack to fix scroll jump after focus, #76\r\n if (window.pageYOffset != prevScrollY) {\r\n window.scrollTo(window.pageXOffset, prevScrollY);\r\n }\r\n };\r\n\r\n // -------------------------- destroy -------------------------- //\r\n\r\n // deactivate all Flickity functionality, but keep stuff available\r\n proto.deactivate = function () {\r\n if (!this.isActive) {\r\n return;\r\n }\r\n this.element.classList.remove('flickity-enabled');\r\n this.element.classList.remove('flickity-rtl');\r\n this.unselectSelectedSlide();\r\n // destroy cells\r\n this.cells.forEach(function (cell) {\r\n cell.destroy();\r\n });\r\n this.element.removeChild(this.viewport);\r\n // move child elements back into element\r\n moveElements(this.slider.children, this.element);\r\n if (this.options.accessibility) {\r\n this.element.removeAttribute('tabIndex');\r\n this.element.removeEventListener('keydown', this);\r\n }\r\n // set flags\r\n this.isActive = false;\r\n this.emitEvent('deactivate');\r\n };\r\n\r\n proto.destroy = function () {\r\n this.deactivate();\r\n window.removeEventListener('resize', this);\r\n this.allOff();\r\n this.emitEvent('destroy');\r\n if (jQuery && this.$element) {\r\n jQuery.removeData(this.element, 'flickity');\r\n }\r\n delete this.element.flickityGUID;\r\n delete instances[this.guid];\r\n };\r\n\r\n // -------------------------- prototype -------------------------- //\r\n\r\n utils.extend(proto, animatePrototype);\r\n\r\n // -------------------------- extras -------------------------- //\r\n\r\n /**\r\n * get Flickity instance from element\r\n * @param {Element} elem\r\n * @returns {Flickity}\r\n */\r\n Flickity.data = function (elem) {\r\n elem = utils.getQueryElement(elem);\r\n var id = elem && elem.flickityGUID;\r\n return id && instances[id];\r\n };\r\n\r\n utils.htmlInit(Flickity, 'flickity');\r\n\r\n if (jQuery && jQuery.bridget) {\r\n jQuery.bridget('flickity', Flickity);\r\n }\r\n\r\n // set internal jQuery, for Webpack + jQuery v3, #478\r\n Flickity.setJQuery = function (jq) {\r\n jQuery = jq;\r\n };\r\n\r\n Flickity.Cell = Cell;\r\n Flickity.Slide = Slide;\r\n\r\n return Flickity;\r\n\r\n}));\r\n\r\n/*!\r\n * Unipointer v2.3.0\r\n * base class for doing one thing with pointer event\r\n * MIT license\r\n */\r\n\r\n/*jshint browser: true, undef: true, unused: true, strict: true */\r\n\r\n(function (window, factory) {\r\n // universal module definition\r\n /* jshint strict: false */ /*global define, module, require */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('unipointer/unipointer', [\r\n 'ev-emitter/ev-emitter'\r\n ], function (EvEmitter) {\r\n return factory(window, EvEmitter);\r\n });\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('ev-emitter')\r\n );\r\n } else {\r\n // browser global\r\n window.Unipointer = factory(\r\n window,\r\n window.EvEmitter\r\n );\r\n }\r\n\r\n}(window, function factory(window, EvEmitter) {\r\n\r\n\r\n\r\n function noop() { }\r\n\r\n function Unipointer() { }\r\n\r\n // inherit EvEmitter\r\n var proto = Unipointer.prototype = Object.create(EvEmitter.prototype);\r\n\r\n proto.bindStartEvent = function (elem) {\r\n this._bindStartEvent(elem, true);\r\n };\r\n\r\n proto.unbindStartEvent = function (elem) {\r\n this._bindStartEvent(elem, false);\r\n };\r\n\r\n /**\r\n * Add or remove start event\r\n * @param {Boolean} isAdd - remove if falsey\r\n */\r\n proto._bindStartEvent = function (elem, isAdd) {\r\n // munge isAdd, default to true\r\n isAdd = isAdd === undefined ? true : isAdd;\r\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\r\n\r\n // default to mouse events\r\n var startEvent = 'mousedown';\r\n if (window.PointerEvent) {\r\n // Pointer Events\r\n startEvent = 'pointerdown';\r\n } else if ('ontouchstart' in window) {\r\n // Touch Events. iOS Safari\r\n startEvent = 'touchstart';\r\n }\r\n elem[bindMethod](startEvent, this);\r\n };\r\n\r\n // trigger handler methods for events\r\n proto.handleEvent = function (event) {\r\n var method = 'on' + event.type;\r\n if (this[method]) {\r\n this[method](event);\r\n }\r\n };\r\n\r\n // returns the touch that we're keeping track of\r\n proto.getTouch = function (touches) {\r\n for (var i = 0; i < touches.length; i++) {\r\n var touch = touches[i];\r\n if (touch.identifier == this.pointerIdentifier) {\r\n return touch;\r\n }\r\n }\r\n };\r\n\r\n // ----- start event ----- //\r\n\r\n proto.onmousedown = function (event) {\r\n // dismiss clicks from right or middle buttons\r\n var button = event.button;\r\n if (button && (button !== 0 && button !== 1)) {\r\n return;\r\n }\r\n this._pointerDown(event, event);\r\n };\r\n\r\n proto.ontouchstart = function (event) {\r\n this._pointerDown(event, event.changedTouches[0]);\r\n };\r\n\r\n proto.onpointerdown = function (event) {\r\n this._pointerDown(event, event);\r\n };\r\n\r\n /**\r\n * pointer start\r\n * @param {Event} event\r\n * @param {Event or Touch} pointer\r\n */\r\n proto._pointerDown = function (event, pointer) {\r\n // dismiss right click and other pointers\r\n // button = 0 is okay, 1-4 not\r\n if (event.button || this.isPointerDown) {\r\n return;\r\n }\r\n\r\n this.isPointerDown = true;\r\n // save pointer identifier to match up touch events\r\n this.pointerIdentifier = pointer.pointerId !== undefined ?\r\n // pointerId for pointer events, touch.indentifier for touch events\r\n pointer.pointerId : pointer.identifier;\r\n\r\n this.pointerDown(event, pointer);\r\n };\r\n\r\n proto.pointerDown = function (event, pointer) {\r\n this._bindPostStartEvents(event);\r\n this.emitEvent('pointerDown', [event, pointer]);\r\n };\r\n\r\n // hash of events to be bound after start event\r\n var postStartEvents = {\r\n mousedown: ['mousemove', 'mouseup'],\r\n touchstart: ['touchmove', 'touchend', 'touchcancel'],\r\n pointerdown: ['pointermove', 'pointerup', 'pointercancel'],\r\n };\r\n\r\n proto._bindPostStartEvents = function (event) {\r\n if (!event) {\r\n return;\r\n }\r\n // get proper events to match start event\r\n var events = postStartEvents[event.type];\r\n // bind events to node\r\n events.forEach(function (eventName) {\r\n window.addEventListener(eventName, this);\r\n }, this);\r\n // save these arguments\r\n this._boundPointerEvents = events;\r\n };\r\n\r\n proto._unbindPostStartEvents = function () {\r\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\r\n if (!this._boundPointerEvents) {\r\n return;\r\n }\r\n this._boundPointerEvents.forEach(function (eventName) {\r\n window.removeEventListener(eventName, this);\r\n }, this);\r\n\r\n delete this._boundPointerEvents;\r\n };\r\n\r\n // ----- move event ----- //\r\n\r\n proto.onmousemove = function (event) {\r\n this._pointerMove(event, event);\r\n };\r\n\r\n proto.onpointermove = function (event) {\r\n if (event.pointerId == this.pointerIdentifier) {\r\n this._pointerMove(event, event);\r\n }\r\n };\r\n\r\n proto.ontouchmove = function (event) {\r\n var touch = this.getTouch(event.changedTouches);\r\n if (touch) {\r\n this._pointerMove(event, touch);\r\n }\r\n };\r\n\r\n /**\r\n * pointer move\r\n * @param {Event} event\r\n * @param {Event or Touch} pointer\r\n * @private\r\n */\r\n proto._pointerMove = function (event, pointer) {\r\n this.pointerMove(event, pointer);\r\n };\r\n\r\n // public\r\n proto.pointerMove = function (event, pointer) {\r\n this.emitEvent('pointerMove', [event, pointer]);\r\n };\r\n\r\n // ----- end event ----- //\r\n\r\n\r\n proto.onmouseup = function (event) {\r\n this._pointerUp(event, event);\r\n };\r\n\r\n proto.onpointerup = function (event) {\r\n if (event.pointerId == this.pointerIdentifier) {\r\n this._pointerUp(event, event);\r\n }\r\n };\r\n\r\n proto.ontouchend = function (event) {\r\n var touch = this.getTouch(event.changedTouches);\r\n if (touch) {\r\n this._pointerUp(event, touch);\r\n }\r\n };\r\n\r\n /**\r\n * pointer up\r\n * @param {Event} event\r\n * @param {Event or Touch} pointer\r\n * @private\r\n */\r\n proto._pointerUp = function (event, pointer) {\r\n this._pointerDone();\r\n this.pointerUp(event, pointer);\r\n };\r\n\r\n // public\r\n proto.pointerUp = function (event, pointer) {\r\n this.emitEvent('pointerUp', [event, pointer]);\r\n };\r\n\r\n // ----- pointer done ----- //\r\n\r\n // triggered on pointer up & pointer cancel\r\n proto._pointerDone = function () {\r\n this._pointerReset();\r\n this._unbindPostStartEvents();\r\n this.pointerDone();\r\n };\r\n\r\n proto._pointerReset = function () {\r\n // reset properties\r\n this.isPointerDown = false;\r\n delete this.pointerIdentifier;\r\n };\r\n\r\n proto.pointerDone = noop;\r\n\r\n // ----- pointer cancel ----- //\r\n\r\n proto.onpointercancel = function (event) {\r\n if (event.pointerId == this.pointerIdentifier) {\r\n this._pointerCancel(event, event);\r\n }\r\n };\r\n\r\n proto.ontouchcancel = function (event) {\r\n var touch = this.getTouch(event.changedTouches);\r\n if (touch) {\r\n this._pointerCancel(event, touch);\r\n }\r\n };\r\n\r\n /**\r\n * pointer cancel\r\n * @param {Event} event\r\n * @param {Event or Touch} pointer\r\n * @private\r\n */\r\n proto._pointerCancel = function (event, pointer) {\r\n this._pointerDone();\r\n this.pointerCancel(event, pointer);\r\n };\r\n\r\n // public\r\n proto.pointerCancel = function (event, pointer) {\r\n this.emitEvent('pointerCancel', [event, pointer]);\r\n };\r\n\r\n // ----- ----- //\r\n\r\n // utility function for getting x/y coords from event\r\n Unipointer.getPointerPoint = function (pointer) {\r\n return {\r\n x: pointer.pageX,\r\n y: pointer.pageY\r\n };\r\n };\r\n\r\n // ----- ----- //\r\n\r\n return Unipointer;\r\n\r\n}));\r\n\r\n/*!\r\n * Unidragger v2.3.0\r\n * Draggable base class\r\n * MIT license\r\n */\r\n\r\n/*jshint browser: true, unused: true, undef: true, strict: true */\r\n\r\n(function (window, factory) {\r\n // universal module definition\r\n /*jshint strict: false */ /*globals define, module, require */\r\n\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('unidragger/unidragger', [\r\n 'unipointer/unipointer'\r\n ], function (Unipointer) {\r\n return factory(window, Unipointer);\r\n });\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('unipointer')\r\n );\r\n } else {\r\n // browser global\r\n window.Unidragger = factory(\r\n window,\r\n window.Unipointer\r\n );\r\n }\r\n\r\n}(window, function factory(window, Unipointer) {\r\n\r\n\r\n\r\n // -------------------------- Unidragger -------------------------- //\r\n\r\n function Unidragger() { }\r\n\r\n // inherit Unipointer & EvEmitter\r\n var proto = Unidragger.prototype = Object.create(Unipointer.prototype);\r\n\r\n // ----- bind start ----- //\r\n\r\n proto.bindHandles = function () {\r\n this._bindHandles(true);\r\n };\r\n\r\n proto.unbindHandles = function () {\r\n this._bindHandles(false);\r\n };\r\n\r\n /**\r\n * Add or remove start event\r\n * @param {Boolean} isAdd\r\n */\r\n proto._bindHandles = function (isAdd) {\r\n // munge isAdd, default to true\r\n isAdd = isAdd === undefined ? true : isAdd;\r\n // bind each handle\r\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\r\n var touchAction = isAdd ? this._touchActionValue : '';\r\n for (var i = 0; i < this.handles.length; i++) {\r\n var handle = this.handles[i];\r\n this._bindStartEvent(handle, isAdd);\r\n handle[bindMethod]('click', this);\r\n // touch-action: none to override browser touch gestures. metafizzy/flickity#540\r\n if (window.PointerEvent) {\r\n handle.style.touchAction = touchAction;\r\n }\r\n }\r\n };\r\n\r\n // prototype so it can be overwriteable by Flickity\r\n proto._touchActionValue = 'none';\r\n\r\n // ----- start event ----- //\r\n\r\n /**\r\n * pointer start\r\n * @param {Event} event\r\n * @param {Event or Touch} pointer\r\n */\r\n proto.pointerDown = function (event, pointer) {\r\n var isOkay = this.okayPointerDown(event);\r\n if (!isOkay) {\r\n return;\r\n }\r\n // track start event position\r\n this.pointerDownPointer = pointer;\r\n\r\n event.preventDefault();\r\n this.pointerDownBlur();\r\n // bind move and end events\r\n this._bindPostStartEvents(event);\r\n this.emitEvent('pointerDown', [event, pointer]);\r\n };\r\n\r\n // nodes that have text fields\r\n var cursorNodes = {\r\n TEXTAREA: true,\r\n INPUT: true,\r\n SELECT: true,\r\n OPTION: true,\r\n };\r\n\r\n // input types that do not have text fields\r\n var clickTypes = {\r\n radio: true,\r\n checkbox: true,\r\n button: true,\r\n submit: true,\r\n image: true,\r\n file: true,\r\n };\r\n\r\n // dismiss inputs with text fields. flickity#403, flickity#404\r\n proto.okayPointerDown = function (event) {\r\n var isCursorNode = cursorNodes[event.target.nodeName];\r\n var isClickType = clickTypes[event.target.type];\r\n var isOkay = !isCursorNode || isClickType;\r\n if (!isOkay) {\r\n this._pointerReset();\r\n }\r\n return isOkay;\r\n };\r\n\r\n // kludge to blur previously focused input\r\n proto.pointerDownBlur = function () {\r\n var focused = document.activeElement;\r\n // do not blur body for IE10, metafizzy/flickity#117\r\n var canBlur = focused && focused.blur && focused != document.body;\r\n if (canBlur) {\r\n focused.blur();\r\n }\r\n };\r\n\r\n // ----- move event ----- //\r\n\r\n /**\r\n * drag move\r\n * @param {Event} event\r\n * @param {Event or Touch} pointer\r\n */\r\n proto.pointerMove = function (event, pointer) {\r\n var moveVector = this._dragPointerMove(event, pointer);\r\n this.emitEvent('pointerMove', [event, pointer, moveVector]);\r\n this._dragMove(event, pointer, moveVector);\r\n };\r\n\r\n // base pointer move logic\r\n proto._dragPointerMove = function (event, pointer) {\r\n var moveVector = {\r\n x: pointer.pageX - this.pointerDownPointer.pageX,\r\n y: pointer.pageY - this.pointerDownPointer.pageY\r\n };\r\n // start drag if pointer has moved far enough to start drag\r\n if (!this.isDragging && this.hasDragStarted(moveVector)) {\r\n this._dragStart(event, pointer);\r\n }\r\n return moveVector;\r\n };\r\n\r\n // condition if pointer has moved far enough to start drag\r\n proto.hasDragStarted = function (moveVector) {\r\n return Math.abs(moveVector.x) > 3 || Math.abs(moveVector.y) > 3;\r\n };\r\n\r\n // ----- end event ----- //\r\n\r\n /**\r\n * pointer up\r\n * @param {Event} event\r\n * @param {Event or Touch} pointer\r\n */\r\n proto.pointerUp = function (event, pointer) {\r\n this.emitEvent('pointerUp', [event, pointer]);\r\n this._dragPointerUp(event, pointer);\r\n };\r\n\r\n proto._dragPointerUp = function (event, pointer) {\r\n if (this.isDragging) {\r\n this._dragEnd(event, pointer);\r\n } else {\r\n // pointer didn't move enough for drag to start\r\n this._staticClick(event, pointer);\r\n }\r\n };\r\n\r\n // -------------------------- drag -------------------------- //\r\n\r\n // dragStart\r\n proto._dragStart = function (event, pointer) {\r\n this.isDragging = true;\r\n // prevent clicks\r\n this.isPreventingClicks = true;\r\n this.dragStart(event, pointer);\r\n };\r\n\r\n proto.dragStart = function (event, pointer) {\r\n this.emitEvent('dragStart', [event, pointer]);\r\n };\r\n\r\n // dragMove\r\n proto._dragMove = function (event, pointer, moveVector) {\r\n // do not drag if not dragging yet\r\n if (!this.isDragging) {\r\n return;\r\n }\r\n\r\n this.dragMove(event, pointer, moveVector);\r\n };\r\n\r\n proto.dragMove = function (event, pointer, moveVector) {\r\n event.preventDefault();\r\n this.emitEvent('dragMove', [event, pointer, moveVector]);\r\n };\r\n\r\n // dragEnd\r\n proto._dragEnd = function (event, pointer) {\r\n // set flags\r\n this.isDragging = false;\r\n // re-enable clicking async\r\n setTimeout(function () {\r\n delete this.isPreventingClicks;\r\n }.bind(this));\r\n\r\n this.dragEnd(event, pointer);\r\n };\r\n\r\n proto.dragEnd = function (event, pointer) {\r\n this.emitEvent('dragEnd', [event, pointer]);\r\n };\r\n\r\n // ----- onclick ----- //\r\n\r\n // handle all clicks and prevent clicks when dragging\r\n proto.onclick = function (event) {\r\n if (this.isPreventingClicks) {\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n // ----- staticClick ----- //\r\n\r\n // triggered after pointer down & up with no/tiny movement\r\n proto._staticClick = function (event, pointer) {\r\n // ignore emulated mouse up clicks\r\n if (this.isIgnoringMouseUp && event.type == 'mouseup') {\r\n return;\r\n }\r\n\r\n this.staticClick(event, pointer);\r\n\r\n // set flag for emulated clicks 300ms after touchend\r\n if (event.type != 'mouseup') {\r\n this.isIgnoringMouseUp = true;\r\n // reset flag after 300ms\r\n setTimeout(function () {\r\n delete this.isIgnoringMouseUp;\r\n }.bind(this), 400);\r\n }\r\n };\r\n\r\n proto.staticClick = function (event, pointer) {\r\n this.emitEvent('staticClick', [event, pointer]);\r\n };\r\n\r\n // ----- utils ----- //\r\n\r\n Unidragger.getPointerPoint = Unipointer.getPointerPoint;\r\n\r\n // ----- ----- //\r\n\r\n return Unidragger;\r\n\r\n}));\r\n\r\n// drag\r\n(function (window, factory) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('flickity/js/drag', [\r\n './flickity',\r\n 'unidragger/unidragger',\r\n 'fizzy-ui-utils/utils'\r\n ], function (Flickity, Unidragger, utils) {\r\n return factory(window, Flickity, Unidragger, utils);\r\n });\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('./flickity'),\r\n require('unidragger'),\r\n require('fizzy-ui-utils')\r\n );\r\n } else {\r\n // browser global\r\n window.Flickity = factory(\r\n window,\r\n window.Flickity,\r\n window.Unidragger,\r\n window.fizzyUIUtils\r\n );\r\n }\r\n\r\n}(window, function factory(window, Flickity, Unidragger, utils) {\r\n\r\n\r\n\r\n // ----- defaults ----- //\r\n\r\n utils.extend(Flickity.defaults, {\r\n draggable: '>1',\r\n dragThreshold: 3,\r\n });\r\n\r\n // ----- create ----- //\r\n\r\n Flickity.createMethods.push('_createDrag');\r\n\r\n // -------------------------- drag prototype -------------------------- //\r\n\r\n var proto = Flickity.prototype;\r\n utils.extend(proto, Unidragger.prototype);\r\n proto._touchActionValue = 'pan-y';\r\n\r\n // -------------------------- -------------------------- //\r\n\r\n var isTouch = 'createTouch' in document;\r\n var isTouchmoveScrollCanceled = false;\r\n\r\n proto._createDrag = function () {\r\n this.on('activate', this.onActivateDrag);\r\n this.on('uiChange', this._uiChangeDrag);\r\n this.on('deactivate', this.onDeactivateDrag);\r\n this.on('cellChange', this.updateDraggable);\r\n // TODO updateDraggable on resize? if groupCells & slides change\r\n // HACK - add seemingly innocuous handler to fix iOS 10 scroll behavior\r\n // #457, RubaXa/Sortable#973\r\n if (isTouch && !isTouchmoveScrollCanceled) {\r\n window.addEventListener('touchmove', function () { });\r\n isTouchmoveScrollCanceled = true;\r\n }\r\n };\r\n\r\n proto.onActivateDrag = function () {\r\n this.handles = [this.viewport];\r\n this.bindHandles();\r\n this.updateDraggable();\r\n };\r\n\r\n proto.onDeactivateDrag = function () {\r\n this.unbindHandles();\r\n this.element.classList.remove('is-draggable');\r\n };\r\n\r\n proto.updateDraggable = function () {\r\n // disable dragging if less than 2 slides. #278\r\n if (this.options.draggable == '>1') {\r\n this.isDraggable = this.slides.length > 1;\r\n } else {\r\n this.isDraggable = this.options.draggable;\r\n }\r\n if (this.isDraggable) {\r\n this.element.classList.add('is-draggable');\r\n } else {\r\n this.element.classList.remove('is-draggable');\r\n }\r\n };\r\n\r\n // backwards compatibility\r\n proto.bindDrag = function () {\r\n this.options.draggable = true;\r\n this.updateDraggable();\r\n };\r\n\r\n proto.unbindDrag = function () {\r\n this.options.draggable = false;\r\n this.updateDraggable();\r\n };\r\n\r\n proto._uiChangeDrag = function () {\r\n delete this.isFreeScrolling;\r\n };\r\n\r\n // -------------------------- pointer events -------------------------- //\r\n\r\n proto.pointerDown = function (event, pointer) {\r\n if (!this.isDraggable) {\r\n this._pointerDownDefault(event, pointer);\r\n return;\r\n }\r\n var isOkay = this.okayPointerDown(event);\r\n if (!isOkay) {\r\n return;\r\n }\r\n\r\n this._pointerDownPreventDefault(event);\r\n this.pointerDownFocus(event);\r\n // blur\r\n if (document.activeElement != this.element) {\r\n // do not blur if already focused\r\n this.pointerDownBlur();\r\n }\r\n\r\n // stop if it was moving\r\n this.dragX = this.x;\r\n this.viewport.classList.add('is-pointer-down');\r\n // track scrolling\r\n this.pointerDownScroll = getScrollPosition();\r\n window.addEventListener('scroll', this);\r\n\r\n this._pointerDownDefault(event, pointer);\r\n };\r\n\r\n // default pointerDown logic, used for staticClick\r\n proto._pointerDownDefault = function (event, pointer) {\r\n // track start event position\r\n // Safari 9 overrides pageX and pageY. These values needs to be copied. #779\r\n this.pointerDownPointer = {\r\n pageX: pointer.pageX,\r\n pageY: pointer.pageY,\r\n };\r\n // bind move and end events\r\n this._bindPostStartEvents(event);\r\n this.dispatchEvent('pointerDown', event, [pointer]);\r\n };\r\n\r\n var focusNodes = {\r\n INPUT: true,\r\n TEXTAREA: true,\r\n SELECT: true,\r\n };\r\n\r\n proto.pointerDownFocus = function (event) {\r\n var isFocusNode = focusNodes[event.target.nodeName];\r\n if (!isFocusNode) {\r\n this.focus();\r\n }\r\n };\r\n\r\n proto._pointerDownPreventDefault = function (event) {\r\n var isTouchStart = event.type == 'touchstart';\r\n var isTouchPointer = event.pointerType == 'touch';\r\n var isFocusNode = focusNodes[event.target.nodeName];\r\n if (!isTouchStart && !isTouchPointer && !isFocusNode) {\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n // ----- move ----- //\r\n\r\n proto.hasDragStarted = function (moveVector) {\r\n return Math.abs(moveVector.x) > this.options.dragThreshold;\r\n };\r\n\r\n // ----- up ----- //\r\n\r\n proto.pointerUp = function (event, pointer) {\r\n delete this.isTouchScrolling;\r\n this.viewport.classList.remove('is-pointer-down');\r\n this.dispatchEvent('pointerUp', event, [pointer]);\r\n this._dragPointerUp(event, pointer);\r\n };\r\n\r\n proto.pointerDone = function () {\r\n window.removeEventListener('scroll', this);\r\n delete this.pointerDownScroll;\r\n };\r\n\r\n // -------------------------- dragging -------------------------- //\r\n\r\n proto.dragStart = function (event, pointer) {\r\n if (!this.isDraggable) {\r\n return;\r\n }\r\n this.dragStartPosition = this.x;\r\n this.startAnimation();\r\n window.removeEventListener('scroll', this);\r\n this.dispatchEvent('dragStart', event, [pointer]);\r\n };\r\n\r\n proto.pointerMove = function (event, pointer) {\r\n var moveVector = this._dragPointerMove(event, pointer);\r\n this.dispatchEvent('pointerMove', event, [pointer, moveVector]);\r\n this._dragMove(event, pointer, moveVector);\r\n };\r\n\r\n proto.dragMove = function (event, pointer, moveVector) {\r\n if (!this.isDraggable) {\r\n return;\r\n }\r\n event.preventDefault();\r\n\r\n this.previousDragX = this.dragX;\r\n // reverse if right-to-left\r\n var direction = this.options.rightToLeft ? -1 : 1;\r\n if (this.options.wrapAround) {\r\n // wrap around move. #589\r\n moveVector.x = moveVector.x % this.slideableWidth;\r\n }\r\n var dragX = this.dragStartPosition + moveVector.x * direction;\r\n\r\n if (!this.options.wrapAround && this.slides.length) {\r\n // slow drag\r\n var originBound = Math.max(-this.slides[0].target, this.dragStartPosition);\r\n dragX = dragX > originBound ? (dragX + originBound) * 0.5 : dragX;\r\n var endBound = Math.min(-this.getLastSlide().target, this.dragStartPosition);\r\n dragX = dragX < endBound ? (dragX + endBound) * 0.5 : dragX;\r\n }\r\n\r\n this.dragX = dragX;\r\n\r\n this.dragMoveTime = new Date();\r\n this.dispatchEvent('dragMove', event, [pointer, moveVector]);\r\n };\r\n\r\n proto.dragEnd = function (event, pointer) {\r\n if (!this.isDraggable) {\r\n return;\r\n }\r\n if (this.options.freeScroll) {\r\n this.isFreeScrolling = true;\r\n }\r\n // set selectedIndex based on where flick will end up\r\n var index = this.dragEndRestingSelect();\r\n\r\n if (this.options.freeScroll && !this.options.wrapAround) {\r\n // if free-scroll & not wrap around\r\n // do not free-scroll if going outside of bounding slides\r\n // so bounding slides can attract slider, and keep it in bounds\r\n var restingX = this.getRestingPosition();\r\n this.isFreeScrolling = -restingX > this.slides[0].target &&\r\n -restingX < this.getLastSlide().target;\r\n } else if (!this.options.freeScroll && index == this.selectedIndex) {\r\n // boost selection if selected index has not changed\r\n index += this.dragEndBoostSelect();\r\n }\r\n delete this.previousDragX;\r\n // apply selection\r\n // TODO refactor this, selecting here feels weird\r\n // HACK, set flag so dragging stays in correct direction\r\n this.isDragSelect = this.options.wrapAround;\r\n this.select(index);\r\n delete this.isDragSelect;\r\n this.dispatchEvent('dragEnd', event, [pointer]);\r\n };\r\n\r\n proto.dragEndRestingSelect = function () {\r\n var restingX = this.getRestingPosition();\r\n // how far away from selected slide\r\n var distance = Math.abs(this.getSlideDistance(-restingX, this.selectedIndex));\r\n // get closet resting going up and going down\r\n var positiveResting = this._getClosestResting(restingX, distance, 1);\r\n var negativeResting = this._getClosestResting(restingX, distance, -1);\r\n // use closer resting for wrap-around\r\n var index = positiveResting.distance < negativeResting.distance ?\r\n positiveResting.index : negativeResting.index;\r\n return index;\r\n };\r\n\r\n /**\r\n * given resting X and distance to selected cell\r\n * get the distance and index of the closest cell\r\n * @param {Number} restingX - estimated post-flick resting position\r\n * @param {Number} distance - distance to selected cell\r\n * @param {Integer} increment - +1 or -1, going up or down\r\n * @returns {Object} - { distance: {Number}, index: {Integer} }\r\n */\r\n proto._getClosestResting = function (restingX, distance, increment) {\r\n var index = this.selectedIndex;\r\n var minDistance = Infinity;\r\n var condition = this.options.contain && !this.options.wrapAround ?\r\n // if contain, keep going if distance is equal to minDistance\r\n function (d, md) { return d <= md; } : function (d, md) { return d < md; };\r\n while (condition(distance, minDistance)) {\r\n // measure distance to next cell\r\n index += increment;\r\n minDistance = distance;\r\n distance = this.getSlideDistance(-restingX, index);\r\n if (distance === null) {\r\n break;\r\n }\r\n distance = Math.abs(distance);\r\n }\r\n return {\r\n distance: minDistance,\r\n // selected was previous index\r\n index: index - increment\r\n };\r\n };\r\n\r\n /**\r\n * measure distance between x and a slide target\r\n * @param {Number} x\r\n * @param {Integer} index - slide index\r\n */\r\n proto.getSlideDistance = function (x, index) {\r\n var len = this.slides.length;\r\n // wrap around if at least 2 slides\r\n var isWrapAround = this.options.wrapAround && len > 1;\r\n var slideIndex = isWrapAround ? utils.modulo(index, len) : index;\r\n var slide = this.slides[slideIndex];\r\n if (!slide) {\r\n return null;\r\n }\r\n // add distance for wrap-around slides\r\n var wrap = isWrapAround ? this.slideableWidth * Math.floor(index / len) : 0;\r\n return x - (slide.target + wrap);\r\n };\r\n\r\n proto.dragEndBoostSelect = function () {\r\n // do not boost if no previousDragX or dragMoveTime\r\n if (this.previousDragX === undefined || !this.dragMoveTime ||\r\n // or if drag was held for 100 ms\r\n new Date() - this.dragMoveTime > 100) {\r\n return 0;\r\n }\r\n\r\n var distance = this.getSlideDistance(-this.dragX, this.selectedIndex);\r\n var delta = this.previousDragX - this.dragX;\r\n if (distance > 0 && delta > 0) {\r\n // boost to next if moving towards the right, and positive velocity\r\n return 1;\r\n } else if (distance < 0 && delta < 0) {\r\n // boost to previous if moving towards the left, and negative velocity\r\n return -1;\r\n }\r\n return 0;\r\n };\r\n\r\n // ----- staticClick ----- //\r\n\r\n proto.staticClick = function (event, pointer) {\r\n // get clickedCell, if cell was clicked\r\n var clickedCell = this.getParentCell(event.target);\r\n var cellElem = clickedCell && clickedCell.element;\r\n var cellIndex = clickedCell && this.cells.indexOf(clickedCell);\r\n this.dispatchEvent('staticClick', event, [pointer, cellElem, cellIndex]);\r\n };\r\n\r\n // ----- scroll ----- //\r\n\r\n proto.onscroll = function () {\r\n var scroll = getScrollPosition();\r\n var scrollMoveX = this.pointerDownScroll.x - scroll.x;\r\n var scrollMoveY = this.pointerDownScroll.y - scroll.y;\r\n // cancel click/tap if scroll is too much\r\n if (Math.abs(scrollMoveX) > 3 || Math.abs(scrollMoveY) > 3) {\r\n this._pointerDone();\r\n }\r\n };\r\n\r\n // ----- utils ----- //\r\n\r\n function getScrollPosition() {\r\n return {\r\n x: window.pageXOffset,\r\n y: window.pageYOffset\r\n };\r\n }\r\n\r\n // ----- ----- //\r\n\r\n return Flickity;\r\n\r\n}));\r\n\r\n// prev/next buttons\r\n(function (window, factory) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('flickity/js/prev-next-button', [\r\n './flickity',\r\n 'unipointer/unipointer',\r\n 'fizzy-ui-utils/utils'\r\n ], function (Flickity, Unipointer, utils) {\r\n return factory(window, Flickity, Unipointer, utils);\r\n });\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('./flickity'),\r\n require('unipointer'),\r\n require('fizzy-ui-utils')\r\n );\r\n } else {\r\n // browser global\r\n factory(\r\n window,\r\n window.Flickity,\r\n window.Unipointer,\r\n window.fizzyUIUtils\r\n );\r\n }\r\n\r\n}(window, function factory(window, Flickity, Unipointer, utils) {\r\n 'use strict';\r\n\r\n var svgURI = 'http://www.w3.org/2000/svg';\r\n\r\n // -------------------------- PrevNextButton -------------------------- //\r\n\r\n function PrevNextButton(direction, parent) {\r\n this.direction = direction;\r\n this.parent = parent;\r\n this._create();\r\n }\r\n\r\n PrevNextButton.prototype = Object.create(Unipointer.prototype);\r\n\r\n PrevNextButton.prototype._create = function () {\r\n // properties\r\n this.isEnabled = true;\r\n this.isPrevious = this.direction == -1;\r\n var leftDirection = this.parent.options.rightToLeft ? 1 : -1;\r\n this.isLeft = this.direction == leftDirection;\r\n\r\n var element = this.element = document.createElement('button');\r\n element.className = 'flickity-button flickity-prev-next-button';\r\n element.className += this.isPrevious ? ' previous' : ' next';\r\n // prevent button from submitting form http://stackoverflow.com/a/10836076/182183\r\n element.setAttribute('type', 'button');\r\n // init as disabled\r\n this.disable();\r\n\r\n element.setAttribute('aria-label', this.isPrevious ? 'Previous' : 'Next');\r\n\r\n // create arrow\r\n var svg = this.createSVG();\r\n element.appendChild(svg);\r\n // events\r\n this.parent.on('select', this.update.bind(this));\r\n this.on('pointerDown', this.parent.childUIPointerDown.bind(this.parent));\r\n };\r\n\r\n PrevNextButton.prototype.activate = function () {\r\n this.bindStartEvent(this.element);\r\n this.element.addEventListener('click', this);\r\n // add to DOM\r\n this.parent.element.appendChild(this.element);\r\n };\r\n\r\n PrevNextButton.prototype.deactivate = function () {\r\n // remove from DOM\r\n this.parent.element.removeChild(this.element);\r\n // click events\r\n this.unbindStartEvent(this.element);\r\n this.element.removeEventListener('click', this);\r\n };\r\n\r\n PrevNextButton.prototype.createSVG = function () {\r\n var svg = document.createElementNS(svgURI, 'svg');\r\n svg.setAttribute('class', 'flickity-button-icon');\r\n svg.setAttribute('viewBox', '0 0 100 100');\r\n var path = document.createElementNS(svgURI, 'path');\r\n var pathMovements = getArrowMovements(this.parent.options.arrowShape);\r\n path.setAttribute('d', pathMovements);\r\n path.setAttribute('class', 'arrow');\r\n // rotate arrow\r\n if (!this.isLeft) {\r\n path.setAttribute('transform', 'translate(100, 100) rotate(180) ');\r\n }\r\n svg.appendChild(path);\r\n return svg;\r\n };\r\n\r\n // get SVG path movmement\r\n function getArrowMovements(shape) {\r\n // use shape as movement if string\r\n if (typeof shape == 'string') {\r\n return shape;\r\n }\r\n // create movement string\r\n return 'M ' + shape.x0 + ',50' +\r\n ' L ' + shape.x1 + ',' + (shape.y1 + 50) +\r\n ' L ' + shape.x2 + ',' + (shape.y2 + 50) +\r\n ' L ' + shape.x3 + ',50 ' +\r\n ' L ' + shape.x2 + ',' + (50 - shape.y2) +\r\n ' L ' + shape.x1 + ',' + (50 - shape.y1) +\r\n ' Z';\r\n }\r\n\r\n PrevNextButton.prototype.handleEvent = utils.handleEvent;\r\n\r\n PrevNextButton.prototype.onclick = function () {\r\n if (!this.isEnabled) {\r\n return;\r\n }\r\n this.parent.uiChange();\r\n var method = this.isPrevious ? 'previous' : 'next';\r\n this.parent[method]();\r\n };\r\n\r\n // ----- ----- //\r\n\r\n PrevNextButton.prototype.enable = function () {\r\n if (this.isEnabled) {\r\n return;\r\n }\r\n this.element.disabled = false;\r\n this.isEnabled = true;\r\n };\r\n\r\n PrevNextButton.prototype.disable = function () {\r\n if (!this.isEnabled) {\r\n return;\r\n }\r\n this.element.disabled = true;\r\n this.isEnabled = false;\r\n };\r\n\r\n PrevNextButton.prototype.update = function () {\r\n // index of first or last slide, if previous or next\r\n var slides = this.parent.slides;\r\n // enable is wrapAround and at least 2 slides\r\n if (this.parent.options.wrapAround && slides.length > 1) {\r\n this.enable();\r\n return;\r\n }\r\n var lastIndex = slides.length ? slides.length - 1 : 0;\r\n var boundIndex = this.isPrevious ? 0 : lastIndex;\r\n var method = this.parent.selectedIndex == boundIndex ? 'disable' : 'enable';\r\n this[method]();\r\n };\r\n\r\n PrevNextButton.prototype.destroy = function () {\r\n this.deactivate();\r\n this.allOff();\r\n };\r\n\r\n // -------------------------- Flickity prototype -------------------------- //\r\n\r\n utils.extend(Flickity.defaults, {\r\n prevNextButtons: true,\r\n arrowShape: {\r\n x0: 10,\r\n x1: 60, y1: 50,\r\n x2: 70, y2: 40,\r\n x3: 30\r\n }\r\n });\r\n\r\n Flickity.createMethods.push('_createPrevNextButtons');\r\n var proto = Flickity.prototype;\r\n\r\n proto._createPrevNextButtons = function () {\r\n if (!this.options.prevNextButtons) {\r\n return;\r\n }\r\n\r\n this.prevButton = new PrevNextButton(-1, this);\r\n this.nextButton = new PrevNextButton(1, this);\r\n\r\n this.on('activate', this.activatePrevNextButtons);\r\n };\r\n\r\n proto.activatePrevNextButtons = function () {\r\n this.prevButton.activate();\r\n this.nextButton.activate();\r\n this.on('deactivate', this.deactivatePrevNextButtons);\r\n };\r\n\r\n proto.deactivatePrevNextButtons = function () {\r\n this.prevButton.deactivate();\r\n this.nextButton.deactivate();\r\n this.off('deactivate', this.deactivatePrevNextButtons);\r\n };\r\n\r\n // -------------------------- -------------------------- //\r\n\r\n Flickity.PrevNextButton = PrevNextButton;\r\n\r\n return Flickity;\r\n\r\n}));\r\n\r\n// page dots\r\n(function (window, factory) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('flickity/js/page-dots', [\r\n './flickity',\r\n 'unipointer/unipointer',\r\n 'fizzy-ui-utils/utils'\r\n ], function (Flickity, Unipointer, utils) {\r\n return factory(window, Flickity, Unipointer, utils);\r\n });\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('./flickity'),\r\n require('unipointer'),\r\n require('fizzy-ui-utils')\r\n );\r\n } else {\r\n // browser global\r\n factory(\r\n window,\r\n window.Flickity,\r\n window.Unipointer,\r\n window.fizzyUIUtils\r\n );\r\n }\r\n\r\n}(window, function factory(window, Flickity, Unipointer, utils) {\r\n\r\n // -------------------------- PageDots -------------------------- //\r\n\r\n\r\n\r\n function PageDots(parent) {\r\n this.parent = parent;\r\n this._create();\r\n }\r\n\r\n PageDots.prototype = Object.create(Unipointer.prototype);\r\n\r\n PageDots.prototype._create = function () {\r\n // create holder element\r\n this.holder = document.createElement('ol');\r\n this.holder.className = 'flickity-page-dots';\r\n // create dots, array of elements\r\n this.dots = [];\r\n // events\r\n this.handleClick = this.onClick.bind(this);\r\n this.on('pointerDown', this.parent.childUIPointerDown.bind(this.parent));\r\n };\r\n\r\n PageDots.prototype.activate = function () {\r\n this.setDots();\r\n this.holder.addEventListener('click', this.handleClick);\r\n this.bindStartEvent(this.holder);\r\n // add to DOM\r\n this.parent.element.appendChild(this.holder);\r\n };\r\n\r\n PageDots.prototype.deactivate = function () {\r\n this.holder.removeEventListener('click', this.handleClick);\r\n this.unbindStartEvent(this.holder);\r\n // remove from DOM\r\n this.parent.element.removeChild(this.holder);\r\n };\r\n\r\n PageDots.prototype.setDots = function () {\r\n // get difference between number of slides and number of dots\r\n var delta = this.parent.slides.length - this.dots.length;\r\n if (delta > 0) {\r\n this.addDots(delta);\r\n } else if (delta < 0) {\r\n this.removeDots(-delta);\r\n }\r\n };\r\n\r\n PageDots.prototype.addDots = function (count) {\r\n var fragment = document.createDocumentFragment();\r\n var newDots = [];\r\n var length = this.dots.length;\r\n var max = length + count;\r\n\r\n for (var i = length; i < max; i++) {\r\n var dot = document.createElement('li');\r\n dot.className = 'dot';\r\n dot.setAttribute('aria-label', 'Page dot ' + (i + 1));\r\n fragment.appendChild(dot);\r\n newDots.push(dot);\r\n }\r\n\r\n this.holder.appendChild(fragment);\r\n this.dots = this.dots.concat(newDots);\r\n };\r\n\r\n PageDots.prototype.removeDots = function (count) {\r\n // remove from this.dots collection\r\n var removeDots = this.dots.splice(this.dots.length - count, count);\r\n // remove from DOM\r\n removeDots.forEach(function (dot) {\r\n this.holder.removeChild(dot);\r\n }, this);\r\n };\r\n\r\n PageDots.prototype.updateSelected = function () {\r\n // remove selected class on previous\r\n if (this.selectedDot) {\r\n this.selectedDot.className = 'dot';\r\n this.selectedDot.removeAttribute('aria-current');\r\n }\r\n // don't proceed if no dots\r\n if (!this.dots.length) {\r\n return;\r\n }\r\n this.selectedDot = this.dots[this.parent.selectedIndex];\r\n this.selectedDot.className = 'dot is-selected';\r\n this.selectedDot.setAttribute('aria-current', 'step');\r\n };\r\n\r\n PageDots.prototype.onTap = // old method name, backwards-compatible\r\n PageDots.prototype.onClick = function (event) {\r\n var target = event.target;\r\n // only care about dot clicks\r\n if (target.nodeName != 'LI') {\r\n return;\r\n }\r\n\r\n this.parent.uiChange();\r\n var index = this.dots.indexOf(target);\r\n this.parent.select(index);\r\n };\r\n\r\n PageDots.prototype.destroy = function () {\r\n this.deactivate();\r\n this.allOff();\r\n };\r\n\r\n Flickity.PageDots = PageDots;\r\n\r\n // -------------------------- Flickity -------------------------- //\r\n\r\n utils.extend(Flickity.defaults, {\r\n pageDots: true\r\n });\r\n\r\n Flickity.createMethods.push('_createPageDots');\r\n\r\n var proto = Flickity.prototype;\r\n\r\n proto._createPageDots = function () {\r\n if (!this.options.pageDots) {\r\n return;\r\n }\r\n this.pageDots = new PageDots(this);\r\n // events\r\n this.on('activate', this.activatePageDots);\r\n this.on('select', this.updateSelectedPageDots);\r\n this.on('cellChange', this.updatePageDots);\r\n this.on('resize', this.updatePageDots);\r\n this.on('deactivate', this.deactivatePageDots);\r\n };\r\n\r\n proto.activatePageDots = function () {\r\n this.pageDots.activate();\r\n };\r\n\r\n proto.updateSelectedPageDots = function () {\r\n this.pageDots.updateSelected();\r\n };\r\n\r\n proto.updatePageDots = function () {\r\n this.pageDots.setDots();\r\n };\r\n\r\n proto.deactivatePageDots = function () {\r\n this.pageDots.deactivate();\r\n };\r\n\r\n // ----- ----- //\r\n\r\n Flickity.PageDots = PageDots;\r\n\r\n return Flickity;\r\n\r\n}));\r\n\r\n// player & autoPlay\r\n(function (window, factory) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('flickity/js/player', [\r\n 'ev-emitter/ev-emitter',\r\n 'fizzy-ui-utils/utils',\r\n './flickity'\r\n ], function (EvEmitter, utils, Flickity) {\r\n return factory(EvEmitter, utils, Flickity);\r\n });\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n require('ev-emitter'),\r\n require('fizzy-ui-utils'),\r\n require('./flickity')\r\n );\r\n } else {\r\n // browser global\r\n factory(\r\n window.EvEmitter,\r\n window.fizzyUIUtils,\r\n window.Flickity\r\n );\r\n }\r\n\r\n}(window, function factory(EvEmitter, utils, Flickity) {\r\n\r\n\r\n\r\n // -------------------------- Player -------------------------- //\r\n\r\n function Player(parent) {\r\n this.parent = parent;\r\n this.state = 'stopped';\r\n // visibility change event handler\r\n this.onVisibilityChange = this.visibilityChange.bind(this);\r\n this.onVisibilityPlay = this.visibilityPlay.bind(this);\r\n }\r\n\r\n Player.prototype = Object.create(EvEmitter.prototype);\r\n\r\n // start play\r\n Player.prototype.play = function () {\r\n if (this.state == 'playing') {\r\n return;\r\n }\r\n // do not play if page is hidden, start playing when page is visible\r\n var isPageHidden = document.hidden;\r\n if (isPageHidden) {\r\n document.addEventListener('visibilitychange', this.onVisibilityPlay);\r\n return;\r\n }\r\n\r\n this.state = 'playing';\r\n // listen to visibility change\r\n document.addEventListener('visibilitychange', this.onVisibilityChange);\r\n // start ticking\r\n this.tick();\r\n };\r\n\r\n Player.prototype.tick = function () {\r\n // do not tick if not playing\r\n if (this.state != 'playing') {\r\n return;\r\n }\r\n\r\n var time = this.parent.options.autoPlay;\r\n // default to 3 seconds\r\n time = typeof time == 'number' ? time : 3000;\r\n var _this = this;\r\n // HACK: reset ticks if stopped and started within interval\r\n this.clear();\r\n this.timeout = setTimeout(function () {\r\n _this.parent.next(true);\r\n _this.tick();\r\n }, time);\r\n };\r\n\r\n Player.prototype.stop = function () {\r\n this.state = 'stopped';\r\n this.clear();\r\n // remove visibility change event\r\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\r\n };\r\n\r\n Player.prototype.clear = function () {\r\n clearTimeout(this.timeout);\r\n };\r\n\r\n Player.prototype.pause = function () {\r\n if (this.state == 'playing') {\r\n this.state = 'paused';\r\n this.clear();\r\n }\r\n };\r\n\r\n Player.prototype.unpause = function () {\r\n // re-start play if paused\r\n if (this.state == 'paused') {\r\n this.play();\r\n }\r\n };\r\n\r\n // pause if page visibility is hidden, unpause if visible\r\n Player.prototype.visibilityChange = function () {\r\n var isPageHidden = document.hidden;\r\n this[isPageHidden ? 'pause' : 'unpause']();\r\n };\r\n\r\n Player.prototype.visibilityPlay = function () {\r\n this.play();\r\n document.removeEventListener('visibilitychange', this.onVisibilityPlay);\r\n };\r\n\r\n // -------------------------- Flickity -------------------------- //\r\n\r\n utils.extend(Flickity.defaults, {\r\n pauseAutoPlayOnHover: true\r\n });\r\n\r\n Flickity.createMethods.push('_createPlayer');\r\n var proto = Flickity.prototype;\r\n\r\n proto._createPlayer = function () {\r\n this.player = new Player(this);\r\n\r\n this.on('activate', this.activatePlayer);\r\n this.on('uiChange', this.stopPlayer);\r\n this.on('pointerDown', this.stopPlayer);\r\n this.on('deactivate', this.deactivatePlayer);\r\n };\r\n\r\n proto.activatePlayer = function () {\r\n if (!this.options.autoPlay) {\r\n return;\r\n }\r\n this.player.play();\r\n this.element.addEventListener('mouseenter', this);\r\n };\r\n\r\n // Player API, don't hate the ... thanks I know where the door is\r\n\r\n proto.playPlayer = function () {\r\n this.player.play();\r\n };\r\n\r\n proto.stopPlayer = function () {\r\n this.player.stop();\r\n };\r\n\r\n proto.pausePlayer = function () {\r\n this.player.pause();\r\n };\r\n\r\n proto.unpausePlayer = function () {\r\n this.player.unpause();\r\n };\r\n\r\n proto.deactivatePlayer = function () {\r\n this.player.stop();\r\n this.element.removeEventListener('mouseenter', this);\r\n };\r\n\r\n // ----- mouseenter/leave ----- //\r\n\r\n // pause auto-play on hover\r\n proto.onmouseenter = function () {\r\n if (!this.options.pauseAutoPlayOnHover) {\r\n return;\r\n }\r\n this.player.pause();\r\n this.element.addEventListener('mouseleave', this);\r\n };\r\n\r\n // resume auto-play on hover off\r\n proto.onmouseleave = function () {\r\n this.player.unpause();\r\n this.element.removeEventListener('mouseleave', this);\r\n };\r\n\r\n // ----- ----- //\r\n\r\n Flickity.Player = Player;\r\n\r\n return Flickity;\r\n\r\n}));\r\n\r\n// add, remove cell\r\n(function (window, factory) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('flickity/js/add-remove-cell', [\r\n './flickity',\r\n 'fizzy-ui-utils/utils'\r\n ], function (Flickity, utils) {\r\n return factory(window, Flickity, utils);\r\n });\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('./flickity'),\r\n require('fizzy-ui-utils')\r\n );\r\n } else {\r\n // browser global\r\n factory(\r\n window,\r\n window.Flickity,\r\n window.fizzyUIUtils\r\n );\r\n }\r\n\r\n}(window, function factory(window, Flickity, utils) {\r\n\r\n\r\n\r\n // append cells to a document fragment\r\n function getCellsFragment(cells) {\r\n var fragment = document.createDocumentFragment();\r\n cells.forEach(function (cell) {\r\n fragment.appendChild(cell.element);\r\n });\r\n return fragment;\r\n }\r\n\r\n // -------------------------- add/remove cell prototype -------------------------- //\r\n\r\n var proto = Flickity.prototype;\r\n\r\n /**\r\n * Insert, prepend, or append cells\r\n * @param {Element, Array, NodeList} elems\r\n * @param {Integer} index\r\n */\r\n proto.insert = function (elems, index) {\r\n var cells = this._makeCells(elems);\r\n if (!cells || !cells.length) {\r\n return;\r\n }\r\n var len = this.cells.length;\r\n // default to append\r\n index = index === undefined ? len : index;\r\n // add cells with document fragment\r\n var fragment = getCellsFragment(cells);\r\n // append to slider\r\n var isAppend = index == len;\r\n if (isAppend) {\r\n this.slider.appendChild(fragment);\r\n } else {\r\n var insertCellElement = this.cells[index].element;\r\n this.slider.insertBefore(fragment, insertCellElement);\r\n }\r\n // add to this.cells\r\n if (index === 0) {\r\n // prepend, add to start\r\n this.cells = cells.concat(this.cells);\r\n } else if (isAppend) {\r\n // append, add to end\r\n this.cells = this.cells.concat(cells);\r\n } else {\r\n // insert in this.cells\r\n var endCells = this.cells.splice(index, len - index);\r\n this.cells = this.cells.concat(cells).concat(endCells);\r\n }\r\n\r\n this._sizeCells(cells);\r\n this.cellChange(index, true);\r\n };\r\n\r\n proto.append = function (elems) {\r\n this.insert(elems, this.cells.length);\r\n };\r\n\r\n proto.prepend = function (elems) {\r\n this.insert(elems, 0);\r\n };\r\n\r\n /**\r\n * Remove cells\r\n * @param {Element, Array, NodeList} elems\r\n */\r\n proto.remove = function (elems) {\r\n var cells = this.getCells(elems);\r\n if (!cells || !cells.length) {\r\n return;\r\n }\r\n\r\n var minCellIndex = this.cells.length - 1;\r\n // remove cells from collection & DOM\r\n cells.forEach(function (cell) {\r\n cell.remove();\r\n var index = this.cells.indexOf(cell);\r\n minCellIndex = Math.min(index, minCellIndex);\r\n utils.removeFrom(this.cells, cell);\r\n }, this);\r\n\r\n this.cellChange(minCellIndex, true);\r\n };\r\n\r\n /**\r\n * logic to be run after a cell's size changes\r\n * @param {Element} elem - cell's element\r\n */\r\n proto.cellSizeChange = function (elem) {\r\n var cell = this.getCell(elem);\r\n if (!cell) {\r\n return;\r\n }\r\n cell.getSize();\r\n\r\n var index = this.cells.indexOf(cell);\r\n this.cellChange(index);\r\n };\r\n\r\n /**\r\n * logic any time a cell is changed: added, removed, or size changed\r\n * @param {Integer} changedCellIndex - index of the changed cell, optional\r\n */\r\n proto.cellChange = function (changedCellIndex, isPositioningSlider) {\r\n var prevSelectedElem = this.selectedElement;\r\n this._positionCells(changedCellIndex);\r\n this._getWrapShiftCells();\r\n this.setGallerySize();\r\n // update selectedIndex\r\n // try to maintain position & select previous selected element\r\n var cell = this.getCell(prevSelectedElem);\r\n if (cell) {\r\n this.selectedIndex = this.getCellSlideIndex(cell);\r\n }\r\n this.selectedIndex = Math.min(this.slides.length - 1, this.selectedIndex);\r\n\r\n this.emitEvent('cellChange', [changedCellIndex]);\r\n // position slider\r\n this.select(this.selectedIndex);\r\n // do not position slider after lazy load\r\n if (isPositioningSlider) {\r\n this.positionSliderAtSelected();\r\n }\r\n };\r\n\r\n // ----- ----- //\r\n\r\n return Flickity;\r\n\r\n}));\r\n\r\n// lazyload\r\n(function (window, factory) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('flickity/js/lazyload', [\r\n './flickity',\r\n 'fizzy-ui-utils/utils'\r\n ], function (Flickity, utils) {\r\n return factory(window, Flickity, utils);\r\n });\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('./flickity'),\r\n require('fizzy-ui-utils')\r\n );\r\n } else {\r\n // browser global\r\n factory(\r\n window,\r\n window.Flickity,\r\n window.fizzyUIUtils\r\n );\r\n }\r\n\r\n}(window, function factory(window, Flickity, utils) {\r\n 'use strict';\r\n\r\n Flickity.createMethods.push('_createLazyload');\r\n var proto = Flickity.prototype;\r\n\r\n proto._createLazyload = function () {\r\n this.on('select', this.lazyLoad);\r\n };\r\n\r\n proto.lazyLoad = function () {\r\n var lazyLoad = this.options.lazyLoad;\r\n if (!lazyLoad) {\r\n return;\r\n }\r\n // get adjacent cells, use lazyLoad option for adjacent count\r\n var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\r\n var cellElems = this.getAdjacentCellElements(adjCount);\r\n // get lazy images in those cells\r\n var lazyImages = [];\r\n cellElems.forEach(function (cellElem) {\r\n var lazyCellImages = getCellLazyImages(cellElem);\r\n lazyImages = lazyImages.concat(lazyCellImages);\r\n });\r\n // load lazy images\r\n lazyImages.forEach(function (img) {\r\n new LazyLoader(img, this);\r\n }, this);\r\n };\r\n\r\n function getCellLazyImages(cellElem) {\r\n // check if cell element is lazy image\r\n if (cellElem.nodeName == 'IMG') {\r\n var lazyloadAttr = cellElem.getAttribute('data-flickity-lazyload');\r\n var srcAttr = cellElem.getAttribute('data-flickity-lazyload-src');\r\n var srcsetAttr = cellElem.getAttribute('data-flickity-lazyload-srcset');\r\n if (lazyloadAttr || srcAttr || srcsetAttr) {\r\n return [cellElem];\r\n }\r\n }\r\n // select lazy images in cell\r\n var lazySelector = 'img[data-flickity-lazyload], ' +\r\n 'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]';\r\n var imgs = cellElem.querySelectorAll(lazySelector);\r\n return utils.makeArray(imgs);\r\n }\r\n\r\n // -------------------------- LazyLoader -------------------------- //\r\n\r\n /**\r\n * class to handle loading images\r\n */\r\n function LazyLoader(img, flickity) {\r\n this.img = img;\r\n this.flickity = flickity;\r\n this.load();\r\n }\r\n\r\n LazyLoader.prototype.handleEvent = utils.handleEvent;\r\n\r\n LazyLoader.prototype.load = function () {\r\n this.img.addEventListener('load', this);\r\n this.img.addEventListener('error', this);\r\n // get src & srcset\r\n var src = this.img.getAttribute('data-flickity-lazyload') ||\r\n this.img.getAttribute('data-flickity-lazyload-src');\r\n var srcset = this.img.getAttribute('data-flickity-lazyload-srcset');\r\n // set src & serset\r\n this.img.src = src;\r\n if (srcset) {\r\n this.img.setAttribute('srcset', srcset);\r\n }\r\n // remove attr\r\n this.img.removeAttribute('data-flickity-lazyload');\r\n this.img.removeAttribute('data-flickity-lazyload-src');\r\n this.img.removeAttribute('data-flickity-lazyload-srcset');\r\n };\r\n\r\n LazyLoader.prototype.onload = function (event) {\r\n this.complete(event, 'flickity-lazyloaded');\r\n };\r\n\r\n LazyLoader.prototype.onerror = function (event) {\r\n this.complete(event, 'flickity-lazyerror');\r\n };\r\n\r\n LazyLoader.prototype.complete = function (event, className) {\r\n // unbind events\r\n this.img.removeEventListener('load', this);\r\n this.img.removeEventListener('error', this);\r\n\r\n var cell = this.flickity.getParentCell(this.img);\r\n var cellElem = cell && cell.element;\r\n this.flickity.cellSizeChange(cellElem);\r\n\r\n this.img.classList.add(className);\r\n this.flickity.dispatchEvent('lazyLoad', event, cellElem);\r\n };\r\n\r\n // ----- ----- //\r\n\r\n Flickity.LazyLoader = LazyLoader;\r\n\r\n return Flickity;\r\n\r\n}));\r\n\r\n/*!\r\n * Flickity v2.2.1\r\n * Touch, responsive, flickable carousels\r\n *\r\n * Licensed GPLv3 for open source use\r\n * or Flickity Commercial License for commercial use\r\n *\r\n * https://flickity.metafizzy.co\r\n * Copyright 2015-2019 Metafizzy\r\n */\r\n\r\n(function (window, factory) {\r\n // universal module definition\r\n /* jshint strict: false */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('flickity/js/index', [\r\n './flickity',\r\n './drag',\r\n './prev-next-button',\r\n './page-dots',\r\n './player',\r\n './add-remove-cell',\r\n './lazyload'\r\n ], factory);\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n require('./flickity'),\r\n require('./drag'),\r\n require('./prev-next-button'),\r\n require('./page-dots'),\r\n require('./player'),\r\n require('./add-remove-cell'),\r\n require('./lazyload')\r\n );\r\n }\r\n\r\n})(window, function factory(Flickity) {\r\n /*jshint strict: false*/\r\n return Flickity;\r\n});\r\n\r\n/*!\r\n * Flickity asNavFor v2.0.2\r\n * enable asNavFor for Flickity\r\n */\r\n\r\n/*jshint browser: true, undef: true, unused: true, strict: true*/\r\n\r\n(function (window, factory) {\r\n // universal module definition\r\n /*jshint strict: false */ /*globals define, module, require */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('flickity-as-nav-for/as-nav-for', [\r\n 'flickity/js/index',\r\n 'fizzy-ui-utils/utils'\r\n ], factory);\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n require('flickity'),\r\n require('fizzy-ui-utils')\r\n );\r\n } else {\r\n // browser global\r\n window.Flickity = factory(\r\n window.Flickity,\r\n window.fizzyUIUtils\r\n );\r\n }\r\n\r\n}(window, function factory(Flickity, utils) {\r\n\r\n\r\n\r\n // -------------------------- asNavFor prototype -------------------------- //\r\n\r\n // Flickity.defaults.asNavFor = null;\r\n\r\n Flickity.createMethods.push('_createAsNavFor');\r\n\r\n var proto = Flickity.prototype;\r\n\r\n proto._createAsNavFor = function () {\r\n this.on('activate', this.activateAsNavFor);\r\n this.on('deactivate', this.deactivateAsNavFor);\r\n this.on('destroy', this.destroyAsNavFor);\r\n\r\n var asNavForOption = this.options.asNavFor;\r\n if (!asNavForOption) {\r\n return;\r\n }\r\n // HACK do async, give time for other flickity to be initalized\r\n var _this = this;\r\n setTimeout(function initNavCompanion() {\r\n _this.setNavCompanion(asNavForOption);\r\n });\r\n };\r\n\r\n proto.setNavCompanion = function (elem) {\r\n elem = utils.getQueryElement(elem);\r\n var companion = Flickity.data(elem);\r\n // stop if no companion or companion is self\r\n if (!companion || companion == this) {\r\n return;\r\n }\r\n\r\n this.navCompanion = companion;\r\n // companion select\r\n var _this = this;\r\n this.onNavCompanionSelect = function () {\r\n _this.navCompanionSelect();\r\n };\r\n companion.on('select', this.onNavCompanionSelect);\r\n // click\r\n this.on('staticClick', this.onNavStaticClick);\r\n\r\n this.navCompanionSelect(true);\r\n };\r\n\r\n proto.navCompanionSelect = function (isInstant) {\r\n // wait for companion & selectedCells first. #8\r\n var companionCells = this.navCompanion && this.navCompanion.selectedCells;\r\n if (!companionCells) {\r\n return;\r\n }\r\n // select slide that matches first cell of slide\r\n var selectedCell = companionCells[0];\r\n var firstIndex = this.navCompanion.cells.indexOf(selectedCell);\r\n var lastIndex = firstIndex + companionCells.length - 1;\r\n var selectIndex = Math.floor(lerp(firstIndex, lastIndex,\r\n this.navCompanion.cellAlign));\r\n this.selectCell(selectIndex, false, isInstant);\r\n // set nav selected class\r\n this.removeNavSelectedElements();\r\n // stop if companion has more cells than this one\r\n if (selectIndex >= this.cells.length) {\r\n return;\r\n }\r\n\r\n var selectedCells = this.cells.slice(firstIndex, lastIndex + 1);\r\n this.navSelectedElements = selectedCells.map(function (cell) {\r\n return cell.element;\r\n });\r\n this.changeNavSelectedClass('add');\r\n };\r\n\r\n function lerp(a, b, t) {\r\n return (b - a) * t + a;\r\n }\r\n\r\n proto.changeNavSelectedClass = function (method) {\r\n this.navSelectedElements.forEach(function (navElem) {\r\n navElem.classList[method]('is-nav-selected');\r\n });\r\n };\r\n\r\n proto.activateAsNavFor = function () {\r\n this.navCompanionSelect(true);\r\n };\r\n\r\n proto.removeNavSelectedElements = function () {\r\n if (!this.navSelectedElements) {\r\n return;\r\n }\r\n this.changeNavSelectedClass('remove');\r\n delete this.navSelectedElements;\r\n };\r\n\r\n proto.onNavStaticClick = function (event, pointer, cellElement, cellIndex) {\r\n if (typeof cellIndex == 'number') {\r\n this.navCompanion.selectCell(cellIndex);\r\n }\r\n };\r\n\r\n proto.deactivateAsNavFor = function () {\r\n this.removeNavSelectedElements();\r\n };\r\n\r\n proto.destroyAsNavFor = function () {\r\n if (!this.navCompanion) {\r\n return;\r\n }\r\n this.navCompanion.off('select', this.onNavCompanionSelect);\r\n this.off('staticClick', this.onNavStaticClick);\r\n delete this.navCompanion;\r\n };\r\n\r\n // ----- ----- //\r\n\r\n return Flickity;\r\n\r\n}));\r\n\r\n/*!\r\n * imagesLoaded v4.1.4\r\n * JavaScript is all like \"You images are done yet or what?\"\r\n * MIT License\r\n */\r\n\r\n(function (window, factory) {\r\n 'use strict';\r\n // universal module definition\r\n\r\n /*global define: false, module: false, require: false */\r\n\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define('imagesloaded/imagesloaded', [\r\n 'ev-emitter/ev-emitter'\r\n ], function (EvEmitter) {\r\n return factory(window, EvEmitter);\r\n });\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('ev-emitter')\r\n );\r\n } else {\r\n // browser global\r\n window.imagesLoaded = factory(\r\n window,\r\n window.EvEmitter\r\n );\r\n }\r\n\r\n})(typeof window !== 'undefined' ? window : this,\r\n\r\n // -------------------------- factory -------------------------- //\r\n\r\n function factory(window, EvEmitter) {\r\n\r\n\r\n\r\n var $ = window.jQuery;\r\n var console = window.console;\r\n\r\n // -------------------------- helpers -------------------------- //\r\n\r\n // extend objects\r\n function extend(a, b) {\r\n for (var prop in b) {\r\n a[prop] = b[prop];\r\n }\r\n return a;\r\n }\r\n\r\n var arraySlice = Array.prototype.slice;\r\n\r\n // turn element or nodeList into an array\r\n function makeArray(obj) {\r\n if (Array.isArray(obj)) {\r\n // use object if already an array\r\n return obj;\r\n }\r\n\r\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\r\n if (isArrayLike) {\r\n // convert nodeList to array\r\n return arraySlice.call(obj);\r\n }\r\n\r\n // array of single index\r\n return [obj];\r\n }\r\n\r\n // -------------------------- imagesLoaded -------------------------- //\r\n\r\n /**\r\n * @param {Array, Element, NodeList, String} elem\r\n * @param {Object or Function} options - if function, use as callback\r\n * @param {Function} onAlways - callback function\r\n */\r\n function ImagesLoaded(elem, options, onAlways) {\r\n // coerce ImagesLoaded() without new, to be new ImagesLoaded()\r\n if (!(this instanceof ImagesLoaded)) {\r\n return new ImagesLoaded(elem, options, onAlways);\r\n }\r\n // use elem as selector string\r\n var queryElem = elem;\r\n if (typeof elem == 'string') {\r\n queryElem = document.querySelectorAll(elem);\r\n }\r\n // bail if bad element\r\n if (!queryElem) {\r\n console.error('Bad element for imagesLoaded ' + (queryElem || elem));\r\n return;\r\n }\r\n\r\n this.elements = makeArray(queryElem);\r\n this.options = extend({}, this.options);\r\n // shift arguments if no options set\r\n if (typeof options == 'function') {\r\n onAlways = options;\r\n } else {\r\n extend(this.options, options);\r\n }\r\n\r\n if (onAlways) {\r\n this.on('always', onAlways);\r\n }\r\n\r\n this.getImages();\r\n\r\n if ($) {\r\n // add jQuery Deferred object\r\n this.jqDeferred = new $.Deferred();\r\n }\r\n\r\n // HACK check async to allow time to bind listeners\r\n setTimeout(this.check.bind(this));\r\n }\r\n\r\n ImagesLoaded.prototype = Object.create(EvEmitter.prototype);\r\n\r\n ImagesLoaded.prototype.options = {};\r\n\r\n ImagesLoaded.prototype.getImages = function () {\r\n this.images = [];\r\n\r\n // filter & find items if we have an item selector\r\n this.elements.forEach(this.addElementImages, this);\r\n };\r\n\r\n /**\r\n * @param {Node} element\r\n */\r\n ImagesLoaded.prototype.addElementImages = function (elem) {\r\n // filter siblings\r\n if (elem.nodeName == 'IMG') {\r\n this.addImage(elem);\r\n }\r\n // get background image on element\r\n if (this.options.background === true) {\r\n this.addElementBackgroundImages(elem);\r\n }\r\n\r\n // find children\r\n // no non-element nodes, #143\r\n var nodeType = elem.nodeType;\r\n if (!nodeType || !elementNodeTypes[nodeType]) {\r\n return;\r\n }\r\n var childImgs = elem.querySelectorAll('img');\r\n // concat childElems to filterFound array\r\n for (var i = 0; i < childImgs.length; i++) {\r\n var img = childImgs[i];\r\n this.addImage(img);\r\n }\r\n\r\n // get child background images\r\n if (typeof this.options.background == 'string') {\r\n var children = elem.querySelectorAll(this.options.background);\r\n for (i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n this.addElementBackgroundImages(child);\r\n }\r\n }\r\n };\r\n\r\n var elementNodeTypes = {\r\n 1: true,\r\n 9: true,\r\n 11: true\r\n };\r\n\r\n ImagesLoaded.prototype.addElementBackgroundImages = function (elem) {\r\n var style = getComputedStyle(elem);\r\n if (!style) {\r\n // Firefox returns null if in a hidden iframe https://bugzil.la/548397\r\n return;\r\n }\r\n // get url inside url(\"...\")\r\n var reURL = /url\\((['\"])?(.*?)\\1\\)/gi;\r\n var matches = reURL.exec(style.backgroundImage);\r\n while (matches !== null) {\r\n var url = matches && matches[2];\r\n if (url) {\r\n this.addBackground(url, elem);\r\n }\r\n matches = reURL.exec(style.backgroundImage);\r\n }\r\n };\r\n\r\n /**\r\n * @param {Image} img\r\n */\r\n ImagesLoaded.prototype.addImage = function (img) {\r\n var loadingImage = new LoadingImage(img);\r\n this.images.push(loadingImage);\r\n };\r\n\r\n ImagesLoaded.prototype.addBackground = function (url, elem) {\r\n var background = new Background(url, elem);\r\n this.images.push(background);\r\n };\r\n\r\n ImagesLoaded.prototype.check = function () {\r\n var _this = this;\r\n this.progressedCount = 0;\r\n this.hasAnyBroken = false;\r\n // complete if no images\r\n if (!this.images.length) {\r\n this.complete();\r\n return;\r\n }\r\n\r\n function onProgress(image, elem, message) {\r\n // HACK - Chrome triggers event before object properties have changed. #83\r\n setTimeout(function () {\r\n _this.progress(image, elem, message);\r\n });\r\n }\r\n\r\n this.images.forEach(function (loadingImage) {\r\n loadingImage.once('progress', onProgress);\r\n loadingImage.check();\r\n });\r\n };\r\n\r\n ImagesLoaded.prototype.progress = function (image, elem, message) {\r\n this.progressedCount++;\r\n this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;\r\n // progress event\r\n this.emitEvent('progress', [this, image, elem]);\r\n if (this.jqDeferred && this.jqDeferred.notify) {\r\n this.jqDeferred.notify(this, image);\r\n }\r\n // check if completed\r\n if (this.progressedCount == this.images.length) {\r\n this.complete();\r\n }\r\n\r\n if (this.options.debug && console) {\r\n console.log('progress: ' + message, image, elem);\r\n }\r\n };\r\n\r\n ImagesLoaded.prototype.complete = function () {\r\n var eventName = this.hasAnyBroken ? 'fail' : 'done';\r\n this.isComplete = true;\r\n this.emitEvent(eventName, [this]);\r\n this.emitEvent('always', [this]);\r\n if (this.jqDeferred) {\r\n var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';\r\n this.jqDeferred[jqMethod](this);\r\n }\r\n };\r\n\r\n // -------------------------- -------------------------- //\r\n\r\n function LoadingImage(img) {\r\n this.img = img;\r\n }\r\n\r\n LoadingImage.prototype = Object.create(EvEmitter.prototype);\r\n\r\n LoadingImage.prototype.check = function () {\r\n // If complete is true and browser supports natural sizes,\r\n // try to check for image status manually.\r\n var isComplete = this.getIsImageComplete();\r\n if (isComplete) {\r\n // report based on naturalWidth\r\n this.confirm(this.img.naturalWidth !== 0, 'naturalWidth');\r\n return;\r\n }\r\n\r\n // If none of the checks above matched, simulate loading on detached element.\r\n this.proxyImage = new Image();\r\n this.proxyImage.addEventListener('load', this);\r\n this.proxyImage.addEventListener('error', this);\r\n // bind to image as well for Firefox. #191\r\n this.img.addEventListener('load', this);\r\n this.img.addEventListener('error', this);\r\n this.proxyImage.src = this.img.src;\r\n };\r\n\r\n LoadingImage.prototype.getIsImageComplete = function () {\r\n // check for non-zero, non-undefined naturalWidth\r\n // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671\r\n return this.img.complete && this.img.naturalWidth;\r\n };\r\n\r\n LoadingImage.prototype.confirm = function (isLoaded, message) {\r\n this.isLoaded = isLoaded;\r\n this.emitEvent('progress', [this, this.img, message]);\r\n };\r\n\r\n // ----- events ----- //\r\n\r\n // trigger specified handler for event type\r\n LoadingImage.prototype.handleEvent = function (event) {\r\n var method = 'on' + event.type;\r\n if (this[method]) {\r\n this[method](event);\r\n }\r\n };\r\n\r\n LoadingImage.prototype.onload = function () {\r\n this.confirm(true, 'onload');\r\n this.unbindEvents();\r\n };\r\n\r\n LoadingImage.prototype.onerror = function () {\r\n this.confirm(false, 'onerror');\r\n this.unbindEvents();\r\n };\r\n\r\n LoadingImage.prototype.unbindEvents = function () {\r\n this.proxyImage.removeEventListener('load', this);\r\n this.proxyImage.removeEventListener('error', this);\r\n this.img.removeEventListener('load', this);\r\n this.img.removeEventListener('error', this);\r\n };\r\n\r\n // -------------------------- Background -------------------------- //\r\n\r\n function Background(url, element) {\r\n this.url = url;\r\n this.element = element;\r\n this.img = new Image();\r\n }\r\n\r\n // inherit LoadingImage prototype\r\n Background.prototype = Object.create(LoadingImage.prototype);\r\n\r\n Background.prototype.check = function () {\r\n this.img.addEventListener('load', this);\r\n this.img.addEventListener('error', this);\r\n this.img.src = this.url;\r\n // check if image is already complete\r\n var isComplete = this.getIsImageComplete();\r\n if (isComplete) {\r\n this.confirm(this.img.naturalWidth !== 0, 'naturalWidth');\r\n this.unbindEvents();\r\n }\r\n };\r\n\r\n Background.prototype.unbindEvents = function () {\r\n this.img.removeEventListener('load', this);\r\n this.img.removeEventListener('error', this);\r\n };\r\n\r\n Background.prototype.confirm = function (isLoaded, message) {\r\n this.isLoaded = isLoaded;\r\n this.emitEvent('progress', [this, this.element, message]);\r\n };\r\n\r\n // -------------------------- jQuery -------------------------- //\r\n\r\n ImagesLoaded.makeJQueryPlugin = function (jQuery) {\r\n jQuery = jQuery || window.jQuery;\r\n if (!jQuery) {\r\n return;\r\n }\r\n // set local variable\r\n $ = jQuery;\r\n // $().imagesLoaded()\r\n $.fn.imagesLoaded = function (options, callback) {\r\n var instance = new ImagesLoaded(this, options, callback);\r\n return instance.jqDeferred.promise($(this));\r\n };\r\n };\r\n // try making plugin\r\n ImagesLoaded.makeJQueryPlugin();\r\n\r\n // -------------------------- -------------------------- //\r\n\r\n return ImagesLoaded;\r\n\r\n });\r\n\r\n/*!\r\n * Flickity imagesLoaded v2.0.0\r\n * enables imagesLoaded option for Flickity\r\n */\r\n\r\n/*jshint browser: true, strict: true, undef: true, unused: true */\r\n\r\n(function (window, factory) {\r\n // universal module definition\r\n /*jshint strict: false */ /*globals define, module, require */\r\n if (typeof define == 'function' && define.amd) {\r\n // AMD\r\n define([\r\n 'flickity/js/index',\r\n 'imagesloaded/imagesloaded'\r\n ], function (Flickity, imagesLoaded) {\r\n return factory(window, Flickity, imagesLoaded);\r\n });\r\n } else if (typeof module == 'object' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(\r\n window,\r\n require('flickity'),\r\n require('imagesloaded')\r\n );\r\n } else {\r\n // browser global\r\n window.Flickity = factory(\r\n window,\r\n window.Flickity,\r\n window.imagesLoaded\r\n );\r\n }\r\n\r\n}(window, function factory(window, Flickity, imagesLoaded) {\r\n 'use strict';\r\n\r\n Flickity.createMethods.push('_createImagesLoaded');\r\n\r\n var proto = Flickity.prototype;\r\n\r\n proto._createImagesLoaded = function () {\r\n this.on('activate', this.imagesLoaded);\r\n };\r\n\r\n proto.imagesLoaded = function () {\r\n if (!this.options.imagesLoaded) {\r\n return;\r\n }\r\n var _this = this;\r\n function onImagesLoadedProgress(instance, image) {\r\n var cell = _this.getParentCell(image.img);\r\n _this.cellSizeChange(cell && cell.element);\r\n if (!_this.options.freeScroll) {\r\n _this.positionSliderAtSelected();\r\n }\r\n }\r\n imagesLoaded(this.slider).on('progress', onImagesLoadedProgress);\r\n };\r\n\r\n return Flickity;\r\n\r\n}));\nvar App = App || {};\r\n\r\nApp.Base = (function ($) {\r\n 'use strict';\r\n\r\n function init() {\r\n AnchorSupport();\r\n $(window).on(\"hashchange\", function (e) { AnchorSupport(); });\r\n ZagScrollAnimate();\r\n }\r\n\r\n function AnchorSupport() {\r\n\r\n var Hash = $(location.hash);\r\n\r\n if (Hash.length == 1) {\r\n\r\n if (Hash.attr(\"data-bs-toggle\") == \"collapse\") {\r\n var Target = $(Hash.attr(\"data-bs-target\"));\r\n var Panel = document.getElementById(Target.attr(\"id\"));\r\n var Collapse = new bootstrap.Collapse(Panel);\r\n Collapse.show();\r\n\r\n // BS5 collapse methods don't seem to intersect with how accordions are promised to work\r\n // Look for and close collapses within the same accordion\r\n var SiblingTarget = Target.parents(\".accordion\").find(\".collapse.show\");\r\n var SiblingPanel = document.getElementById(SiblingTarget.attr(\"id\"));\r\n var SiblingCollapse = new bootstrap.Collapse(SiblingPanel);\r\n SiblingCollapse.hide();\r\n }\r\n\r\n else if (Hash.attr(\"data-bs-toggle\") == \"tab\") {\r\n var Panel = document.getElementById(Hash.attr(\"id\"));\r\n var Tab = new bootstrap.Tab(Panel);\r\n Tab.show();\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n function ZagScrollAnimate() {\r\n\r\n $(\".component-resourcesband .cardrow\").ZagScrollAnimate({\r\n offset: 100,\r\n targets: [\r\n { selector: \".resourcesband-card\", type: \"animate__fadeIn\", stagger: 400 }\r\n ]\r\n });\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n})(jQuery);\r\n\r\n$(function () {\r\n App.Base.init();\r\n});\nvar App = App || {};\r\n\r\nApp.Cookies = (function () {\r\n 'use strict';\r\n\r\n function getItem(sKey) {\r\n if (!sKey) { return null; }\r\n return decodeURIComponent(document.cookie.replace(new RegExp(\"(?:(?:^|.*;)\\\\s*\" + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\"), \"$1\")) || null;\r\n }\r\n\r\n function setItem(sKey, sValue, vEnd, sPath, sDomain, bSecure) {\r\n if (!sKey || /^(?:expires|max\\-age|path|domain|secure)$/i.test(sKey)) { return false; }\r\n var sExpires = \"\";\r\n if (vEnd) {\r\n switch (vEnd.constructor) {\r\n case Number:\r\n sExpires = vEnd === Infinity ? \"; expires=Fri, 31 Dec 9999 23:59:59 GMT\" : \"; max-age=\" + vEnd;\r\n break;\r\n case String:\r\n sExpires = \"; expires=\" + vEnd;\r\n break;\r\n case Date:\r\n sExpires = \"; expires=\" + vEnd.toUTCString();\r\n break;\r\n }\r\n }\r\n document.cookie = encodeURIComponent(sKey) + \"=\" + encodeURIComponent(sValue) + sExpires + (sDomain ? \"; domain=\" + sDomain : \"\") + (sPath ? \"; path=\" + sPath : \"\") + (bSecure ? \"; secure\" : \"\");\r\n return true;\r\n }\r\n\r\n function removeItem(sKey, sPath, sDomain) {\r\n if (!this.hasItem(sKey)) { return false; }\r\n document.cookie = encodeURIComponent(sKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 GMT\" + (sDomain ? \"; domain=\" + sDomain : \"\") + (sPath ? \"; path=\" + sPath : \"\");\r\n return true;\r\n }\r\n\r\n function hasItem(sKey) {\r\n if (!sKey) { return false; }\r\n return (new RegExp(\"(?:^|;\\\\s*)\" + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\")).test(document.cookie);\r\n }\r\n\r\n function keys() {\r\n var aKeys = document.cookie.replace(/((?:^|\\s*;)[^\\=]+)(?=;|$)|^\\s*|\\s*(?:\\=[^;]*)?(?:\\1|$)/g, \"\").split(/\\s*(?:\\=[^;]*)?;\\s*/);\r\n for (var nLen = aKeys.length, nIdx = 0; nIdx < nLen; nIdx++) { aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]); }\r\n return aKeys;\r\n }\r\n\r\n return {\r\n getItem: getItem,\r\n setItem: setItem,\r\n removeItem: removeItem,\r\n hasItem: hasItem,\r\n keys: keys\r\n };\r\n})();\nvar App = App || {};\r\n\r\nApp.FormValidation = (function () {\r\n 'use strict';\r\n\r\n function init() {\r\n $(\"form.kentico-form\").each(function (e) {\r\n FormLoad($(this));\r\n FormSubmit($(this));\r\n });\r\n }\r\n\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n // FORM LOAD\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n function FormLoad(Form) {\r\n // add floating labels\r\n Form.find(\".form-group.form-group-text\").each(function () {\r\n var input = $(this).find(\"input.form-control, select.form-select, textarea.form-control\");\r\n var label = $(this).find(\"label\");\r\n\r\n $(this).addClass(\"form-floating\");\r\n label.remove().insertAfter(input);\r\n });\r\n\r\n // update kentico's radio and checkbox markup to match bootstrap\r\n Form.find(\".ktc-radio-list > span.ktc-radio, span.ktc-checkbox\").each(function () {\r\n var input = $(this).find(\"input.form-control\");\r\n var label = $(this).find(\"label\");\r\n var id = input.attr(\"id\").replace(\" \", \"_\");\r\n\r\n input.removeClass(\"form-control\").addClass(\"form-check-input\").attr(\"id\", id);\r\n label.addClass(\"form-check-label\").attr(\"for\", id);\r\n\r\n var markup = $(this).html();\r\n $(this).replaceWith(\"\" + markup + \"
\");\r\n });\r\n\r\n // different validation tactics\r\n Form.find(\".zag-validation-input-text\").on(\"input\", function () { ValidateText($(this)); CountErrors($(this)); });\r\n Form.find(\".zag-validation-input-radio\").on(\"input\", function () { ValidateRadio($(this)); CountErrors($(this)); });\r\n Form.find(\".zag-validation-input-checkboxes\").on(\"input\", function () { ValidateCheckboxes($(this)); CountErrors($(this)); });\r\n Form.find(\".zag-validation-input-checkbox\").on(\"input\", function () { ValidateCheckbox($(this)); CountErrors($(this)); });\r\n Form.find(\".zag-validation-input-file\").on(\"input\", function () { ValidateFile($(this)); CountErrors($(this)); });\r\n }\r\n\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n // FORM SUBMIT\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n function FormSubmit(Form) {\r\n // remove kentico's update and onsubmit functions\r\n var KenticoSubmit = Form.attr(\"onsubmit\") || \"\",\r\n KenticoUpdate = Form.attr(\"data-ktc-ajax-update\") || \"\";\r\n\r\n Form.removeAttr(\"onsubmit data-ktc-ajax-update\").on(\"submit\", function (e) {\r\n e.preventDefault();\r\n\r\n $(this).removeClass(\"kentico-form-loaded\").addClass(\"kentico-form-submitted\");\r\n\r\n // different validation tactics\r\n $(this).find(\".zag-validation-input-text\").each(function () { ValidateText($(this)); CountErrors($(this)); });\r\n $(this).find(\".zag-validation-input-radio\").each(function () { ValidateRadio($(this)); CountErrors($(this)); });\r\n $(this).find(\".zag-validation-input-checkboxes\").each(function () { ValidateCheckboxes($(this)); CountErrors($(this)); });\r\n $(this).find(\".zag-validation-input-checkbox\").each(function () { ValidateCheckbox($(this)); CountErrors($(this)); });\r\n $(this).find(\".zag-validation-input-recaptcha\").each(function () { ValidateRecaptcha($(this)); CountErrors($(this)); });\r\n $(this).find(\".zag-validation-input-file\").each(function () { ValidateFile($(this)); CountErrors($(this)); });\r\n\r\n // if there are no error messages, submit the form\r\n if ($(this).find(\".zag-validation-invalid\").length > 0) {\r\n $(this).find(\".zag-validation-invalid\").first().focus();\r\n }\r\n else {\r\n if (KenticoSubmit !== \"\" && KenticoUpdate !== \"\") {\r\n //replace kentico's onsubmit, etc. function from attribute list\r\n $(this).attr({ \"onsubmit\": KenticoSubmit, \"data-ktc-ajax-update\": KenticoUpdate });\r\n // and allow it to submit\r\n $(this).off(\"submit\").submit().find(\"input[type='submit']\").prop(\"disabled\", \"true\");\r\n\r\n // The user may have had to scroll through the form to fill it out. If so, they may not see the top of the form any longer, which\r\n // means they also won't see the \"thank you\" note to indicate their submission was successful. Scroll up so they see it.\r\n $(\"html, body\").animate({\r\n scrollTop: $(this).offset().top - 65\r\n }, 300);\r\n }\r\n // if there is no onsubmit, etc. function from attribute list maybe this isn't a Kentico form so submit it\r\n else {\r\n $(this).off(\"submit\").submit();\r\n }\r\n }\r\n });\r\n }\r\n\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n // VALIDATE TEXT\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n function ValidateText(Component) {\r\n // validate individual input against required\r\n Component.parents(\".form-group\").find(\".zag-validation-error[data-ruletype='required']\").each(function () {\r\n Component.val() !== \"\" ? $(this).hide() : $(this).show()\r\n });\r\n\r\n // validate individual input against min-length\r\n Component.parents(\".form-group\").find(\".zag-validation-error[data-ruletype='minlength']\").each(function () {\r\n Component.val().length >= $(this).attr(\"data-rulemin\") ? $(this).hide() : $(this).show()\r\n });\r\n\r\n // validate individual input against max-length\r\n Component.parents(\".form-group\").find(\".zag-validation-error[data-ruletype='maxlength']\").each(function () {\r\n Component.val().length <= $(this).attr(\"data-rulemax\") ? $(this).hide() : $(this).show()\r\n });\r\n\r\n // validate individual input against compare to another field\r\n Component.parents(\".form-group\").find(\".zag-validation-error[data-ruletype='compare']\").each(function () {\r\n\r\n var Operator = $(this).attr(\"data-rulecomparison\"),\r\n CompareGuid = $(this).attr(\"data-rulecomparisonfield\"),\r\n CompareValue = $(\"[data-guid='\" + CompareGuid + \"']\").val();\r\n\r\n if (Component.val() !== \"\" && CompareValue !== \"\") {\r\n if (Operator === \"NotEqual\") {\r\n Component.val() !== CompareValue ? $(this).hide() : $(this).show()\r\n }\r\n else if (Operator === \"Equal\") {\r\n Component.val() === CompareValue ? $(this).hide() : $(this).show()\r\n }\r\n }\r\n else {\r\n $(this).show()\r\n }\r\n\r\n });\r\n\r\n // validate individual input against regex\r\n Component.parents(\".form-group\").find(\".zag-validation-error[data-ruletype='regex']\").each(function () {\r\n Component.val().match($(this).attr(\"data-ruleregex\")) ? $(this).hide() : $(this).show()\r\n });\r\n }\r\n\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n // VALIDATE RADIO\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n function ValidateRadio(Component) {\r\n // because this is structured data we can assume no validation rule other than required is needed\r\n var ComponentName = Component.attr(\"name\");\r\n var ComponentValue = $(\"input[name='\" + ComponentName + \"']:checked\").val() || \"\";\r\n var ComponentError = Component.parents(\".form-group\").find(\".zag-validation-error[data-ruletype='required']\");\r\n ComponentValue !== \"\" ? ComponentError.hide() : ComponentError.show()\r\n }\r\n\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n // VALIDATE CHECKBOXES\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n function ValidateCheckboxes(Component) {\r\n // because this is structured data we can assume no validation rule other than required is needed\r\n var ComponentGuid = Component.attr(\"data-guid\");\r\n var ComponentValue = \"\";\r\n\r\n $(\"input[data-guid='\" + ComponentGuid + \"']:checked\").each(function () { ComponentValue += $(this).val() + \"|\"; });\r\n ComponentValue.trimEnd(\"|\");\r\n\r\n var ComponentError = Component.parents(\".form-group\").find(\".zag-validation-error[data-ruletype='required']\");\r\n ComponentValue !== \"\" ? ComponentError.hide() : ComponentError.show()\r\n }\r\n\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n // VALIDATE CHECKBOX\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n function ValidateCheckbox(Component) {\r\n // bool is set is the only kentico validation for this component\r\n var ComponentCheckbox = Component.parents(\".form-group\").find(\".zag-validation-input-checkbox\");\r\n var ComponentError = Component.parents(\".form-group\").find(\".zag-validation-error[data-ruletype='boolisset']\");\r\n ComponentCheckbox.is(\":checked\") ? ComponentError.hide() : ComponentError.show()\r\n }\r\n\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n // VALIDATE FILE UPLOAD\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n function ValidateFile(Component) {\r\n Component.parents(\".form-group\").find(\".zag-validation-error[data-ruletype='required']\").each(function () {\r\n Component.val() !== \"\" ? $(this).hide() : $(this).show()\r\n });\r\n }\r\n\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n // VALIDATE RECAPTCHA\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n function ValidateRecaptcha(Component) {\r\n var ComponentError = Component.parents(\".form-group\").find(\".zag-validation-error[data-ruletype='recaptcha']\");\r\n var RecaptchaResponse = Component.parent().find(\".g-recaptcha-response\").val();\r\n RecaptchaResponse != \"\" ? ComponentError.hide() : ComponentError.show();\r\n }\r\n\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n // COUNT ERRORS\r\n ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n function CountErrors(Component) {\r\n // count error messages of individual input and update ui\r\n\r\n Component.parents(\".form-group\").find(\".zag-validation-errors\").show();\r\n\r\n var ErrorContainer = Component.parents(\".form-group\").find(\".zag-validation-errors\"),\r\n ErrorContainerId = ErrorContainer.attr(\"id\"),\r\n ErrorCount = ErrorContainer.children(\".zag-validation-error:visible\").length,\r\n AriaDescribedBy = Component.attr(\"aria-describedby\") || \"\";\r\n\r\n if (ErrorCount > 0) {\r\n Component.addClass(\"zag-validation-invalid\");\r\n if (AriaDescribedBy != \"\") { Component.attr(\"aria-describedby\", AriaDescribedBy + \" \" + ErrorContainerId); }\r\n else { Component.attr(\"aria-describedby\", ErrorContainerId); }\r\n ErrorContainer.show();\r\n }\r\n else {\r\n Component.removeClass(\"zag-validation-invalid\");\r\n if (AriaDescribedBy != \"\") { Component.attr(\"aria-describedby\", AriaDescribedBy); }\r\n else { Component.removeAttr(\"aria-describedby\"); }\r\n ErrorContainer.hide();\r\n }\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n})(jQuery);\r\n\r\n$(function () {\r\n App.FormValidation.init();\r\n});\nvar App = App || {};\r\n\r\nApp.SharedSmartAppBanner = (function ($) {\r\n 'use strict';\r\n\r\n function init() {\r\n if ($(\"meta[name=apple-itunes-app]\").length || $(\"meta[name=google-play-app]\").length) {\r\n new SmartBanner({\r\n daysHidden: 15, // days to hide banner after close button is clicked (defaults to 15)\r\n daysReminder: 90, // days to hide banner after \"VIEW\" button is clicked (defaults to 90)\r\n appStoreLanguage: 'us', // language code for the App Store (defaults to user's browser language)\r\n title: 'Empower Mobile',\r\n author: 'Empower FCU',\r\n button: 'VIEW',\r\n store: {\r\n ios: 'On the App Store',\r\n android: 'In Google Play',\r\n windows: 'In Windows store'\r\n },\r\n price: {\r\n ios: 'FREE',\r\n android: 'FREE',\r\n windows: 'FREE'\r\n }\r\n // , theme: '' // put platform type ('ios', 'android', etc.) here to force single theme on all device\r\n // , icon: '' // full path to icon image if not using website icon image\r\n // , force: 'ios' // Uncomment for platform emulation\r\n });\r\n }\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n})(jQuery);\r\n\r\n$(function () {\r\n App.SharedSmartAppBanner.init();\r\n});\nvar App = App || {};\r\n\r\nApp.Alerts = (function ($) {\r\n 'use strict';\r\n\r\n function init() {\r\n $(\".alerts .alert\").each(function () {\r\n this.addEventListener('closed.bs.alert', function () {\r\n var AlertGuid = $(this).data(\"alertguid\");\r\n App.Cookies.setItem(AlertGuid, \"closed\", Infinity, \"/\", window.location.hostname, window.location.protocol === \"https:\");\r\n })\r\n });\r\n\r\n $(\".alerts .alert .btn-minimize\").click(function () {\r\n var AlertGuid = $(this).data(\"alertguid\");\r\n $(\".alerts .alert\").each(function () {\r\n if ($(this).data(\"alertguid\") == AlertGuid) {\r\n hideAlert($(this));\r\n App.Cookies.setItem(AlertGuid, \"minimized\", Infinity, \"/\", window.location.hostname, window.location.protocol === \"https:\");\r\n }\r\n })\r\n });\r\n\r\n $(\".alerts .alert .btn-maximize\").click(function () {\r\n var AlertGuid = $(this).data(\"alertguid\");\r\n $(\".alerts .alert\").each(function () {\r\n if ($(this).data(\"alertguid\") == AlertGuid) {\r\n showAlert($(this));\r\n App.Cookies.setItem(AlertGuid, \"maximized\", Infinity, \"/\", window.location.hostname, window.location.protocol === \"https:\");\r\n }\r\n })\r\n });\r\n\r\n $(\".alerts .alert\").each(function () {\r\n if (App.Cookies.getItem($(this).data(\"alertguid\")) != \"minimized\") {\r\n showAlert($(this));\r\n }\r\n });\r\n }\r\n\r\n\r\n function showAlert(elem) {\r\n elem.find(\".alert-content\").show();\r\n elem.find(\".alert-show\").hide();\r\n elem.find(\".alert-layout\").css(\"justify-content\", \"flex-start\");\r\n }\r\n\r\n function hideAlert(elem) {\r\n elem.find(\".alert-content\").hide();\r\n elem.find(\".alert-show\").show();\r\n elem.find(\".alert-layout\").css(\"justify-content\", \"flex-end\");\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n})(jQuery);\r\n\r\n$(function () {\r\n App.Alerts.init();\r\n});\nvar App = App || {};\r\n\r\nApp.HomepageBanner = (function ($) {\r\n \"use strict\";\r\n\r\n var winWidthTouchpoint,\r\n LgBp = 992;\r\n\r\n function init() {\r\n var $homepageBanner = $(\"#homepage-banner\");\r\n\r\n $(document).ready(function () {\r\n resizeSlides();\r\n\r\n $homepageBanner.each(function () {\r\n hideInactiveSlides($(this));\r\n });\r\n });\r\n\r\n $homepageBanner.each(function () {\r\n var $banner = $(this),\r\n $carousel = $(this).find('.homepage-banner-slides'),\r\n $controlPrev = $(this).find('.slider-prev'),\r\n $controlNext = $(this).find('.slider-next'),\r\n $controlPause = $(this).find('.slider-pause'),\r\n $controlPlay = $(this).find('.slider-play'),\r\n manuallyPaused = false,\r\n windowBelow = false,\r\n slideBottom = 0;\r\n\r\n $carousel.slick({\r\n autoplay: true,\r\n autoplaySpeed: 5000,\r\n accessibility: false,\r\n slidesToScroll: 1,\r\n slidesToShow: 1,\r\n swipe: false,\r\n arrows: false,\r\n dots: false,\r\n fade: false,\r\n focusOnSelect: true,\r\n centerMode: true,\r\n adaptiveHeight: true,\r\n infinite: true,\r\n variableWidth: true,\r\n });\r\n\r\n $carousel.on(\"beforeChange\", function () {\r\n resizeSlides();\r\n })\r\n\r\n $carousel.on(\"afterChange\", function () {\r\n hideInactiveSlides($banner);\r\n })\r\n\r\n $controlPrev.on(\"click\", function () {\r\n $carousel.slick(\"slickPrev\");\r\n });\r\n $controlNext.on(\"click\", function () {\r\n $carousel.slick(\"slickNext\");\r\n });\r\n $controlPause.on(\"click\", function () {\r\n manuallyPaused = true;\r\n pauseCarousel($carousel, $controlPlay, $controlPause);\r\n });\r\n $controlPlay.on(\"click\", function () {\r\n manuallyPaused = false;\r\n playCarousel($carousel, $controlPlay, $controlPause);\r\n });\r\n\r\n //autoplay false for mobile, true for desktop\r\n winWidthTouchpoint = $(window).width();\r\n if (winWidthTouchpoint < LgBp) {\r\n $carousel.slick(\"slickPause\");\r\n }\r\n $(window).resize(function () {\r\n if (winWidthTouchpoint < LgBp) {\r\n if ($(window).width() >= LgBp) {\r\n winWidthTouchpoint = $(window).width();\r\n resizeSlides();\r\n if (!manuallyPaused && !windowBelow) {\r\n playCarousel($carousel, $controlPlay, $controlPause);\r\n }\r\n }\r\n }\r\n if (winWidthTouchpoint >= LgBp) {\r\n if ($(window).width() < LgBp) {\r\n winWidthTouchpoint = $(window).width();\r\n pauseCarousel($carousel, $controlPlay, $controlPause);\r\n }\r\n }\r\n });\r\n\r\n $(document).on(\"scroll\", function () {\r\n //pause carousel when user scrolls below it to prevent screen jittering when transitioning between varied-height slides\r\n $carousel.each(function () {\r\n slideBottom = $(this).offset().top + $(this).outerHeight();\r\n if ($(document).scrollTop() > slideBottom) {\r\n if (!windowBelow) {\r\n pauseCarousel($carousel, $controlPlay, $controlPause);\r\n windowBelow = true;\r\n }\r\n }\r\n else {\r\n if (windowBelow && !manuallyPaused) {\r\n windowBelow = false;\r\n if ($(window).width() >= LgBp) {\r\n playCarousel($carousel, $controlPlay, $controlPause);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n\r\n function playCarousel($carousel, $controlPlay, $controlPause) {\r\n $controlPlay.addClass(\"hidden\");\r\n $controlPause.removeClass(\"hidden\");\r\n $carousel.slick(\"slickPlay\");\r\n }\r\n function pauseCarousel($carousel, $controlPlay, $controlPause) {\r\n $controlPause.addClass(\"hidden\");\r\n $controlPlay.removeClass(\"hidden\");\r\n $carousel.slick(\"slickPause\");\r\n }\r\n function resizeSlides() {\r\n //ensure content box can overflow past the banner image\r\n $(\".homepage-banner-slide\").each(function () {\r\n var box = $(this).find(\".homepage-banner-box\").first();\r\n var slideMinHeight = box.position().top + box.outerHeight() + 5;\r\n $(this).css(\"min-height\", slideMinHeight + \"px\");\r\n });\r\n }\r\n function hideInactiveSlides(banner) {\r\n //set all links within banner to tabindex-1\r\n banner.find(\".homepage-banner-box a, .homepage-banner-box button\").attr(\"tabindex\", \"-1\");\r\n //set active slide's links to tabindex0\r\n banner.find(\".slick-current.slick-active .homepage-banner-box a, .slick-current.slick-active .homepage-banner-box button\").attr(\"tabindex\", \"0\");\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n})(jQuery);\r\n\r\n$(function () {\r\n App.HomepageBanner.init();\r\n});\nvar App = App || {};\r\n\r\nApp.InternalMasthead = (function ($) {\r\n \"use strict\";\r\n\r\n var winWidthTouchpoint,\r\n LgBp = 992,\r\n XlBp = 1200,\r\n topOffset,\r\n pageNav,\r\n mastheadContentContainer,\r\n mastheadImage;\r\n\r\n function init() {\r\n\r\n $(document).ready(function () {\r\n pageNav = $(\".page-navigation\"),\r\n mastheadContentContainer = $(\".page-masthead-content\"),\r\n mastheadImage = $(\".page-masthead-image .masthead-image\");\r\n\r\n winWidthTouchpoint = $(window).width();\r\n if (winWidthTouchpoint >= LgBp) {\r\n topOffset = mastheadImage.outerHeight() - mastheadContentContainer.outerHeight();\r\n if (topOffset < 0) {\r\n pageNav.css(\"margin-top\", topOffset)\r\n }\r\n }\r\n });\r\n\r\n $(window).resize(function () {\r\n if ($(window).width() >= XlBp) {\r\n winWidthTouchpoint = $(window).width();\r\n topOffset = mastheadImage.outerHeight() - mastheadContentContainer.outerHeight();\r\n if (topOffset < 0) {\r\n pageNav.css(\"margin-top\", topOffset)\r\n }\r\n }\r\n if (winWidthTouchpoint < LgBp || winWidthTouchpoint >= XlBp) {\r\n if ($(window).width() >= LgBp && $(window).width() < XlBp) {\r\n winWidthTouchpoint = $(window).width();\r\n topOffset = mastheadImage.outerHeight() - mastheadContentContainer.outerHeight();\r\n if (topOffset < 0) {\r\n pageNav.css(\"margin-top\", topOffset)\r\n }\r\n }\r\n }\r\n if (winWidthTouchpoint >= LgBp) {\r\n if ($(window).width() < LgBp) {\r\n winWidthTouchpoint = $(window).width();\r\n pageNav.css(\"margin-top\", \"\")\r\n }\r\n }\r\n });\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n})(jQuery);\r\n\r\n$(function () {\r\n App.InternalMasthead.init();\r\n});\nvar App = App || {};\r\n\r\nApp.LoginModal = (function ($) {\r\n 'use strict';\r\n\r\n function init() {\r\n var LoginModal = new bootstrap.Modal(document.getElementById('LoginModal'));\r\n var trigger = ($(\"#LoginModal\").attr(\"data-trigger\") ? $(\"#LoginModal\").attr(\"data-trigger\") : \"login-modal\" );\r\n\r\n $(\"a\").on(\"click\", function (e) {\r\n var url = $(this).attr(\"href\");\r\n\r\n if (url.indexOf(\"#\" + trigger) == 0){\r\n e.preventDefault();\r\n LoginModal.show();\r\n }\r\n });\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n})(jQuery);\r\n\r\n$(function () {\r\n App.LoginModal.init();\r\n});\nvar App = App || {};\r\n\r\nApp.SiteCookieNotice = (function ($) {\r\n 'use strict';\r\n\r\n function init() {\r\n\r\n var Notice = $(\".site-cookie-notice\");\r\n var Confirm = Notice.find(\"[data-cookieNotice='confirm']\");\r\n\r\n Confirm.click(function () {\r\n Notice.slideUp(200);\r\n App.Cookies.setItem(\"EmpowerFCU_CookieNotice\", \"confirmed\", Infinity, \"/\", window.location.hostname, window.location.protocol === \"https:\");\r\n });\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n})(jQuery);\r\n\r\n$(function () {\r\n App.SiteCookieNotice.init();\r\n});\nvar App = App || {};\r\n\r\nApp.SiteHeader = (function ($) {\r\n \"use strict\";\r\n\r\n var navLvl1Item = $(\".site-header-primary > nav\").children(\"a, button\");\r\n var mobileLvl1Item = $(\".site-header-upper-mobile .nav-lvl1-btn\");\r\n var navLvl2Item = $(\".nav-lvl2-btn\");\r\n var navLvl3Item = $(\".nav-lvl3-dropdown a\");\r\n\r\n function init() {\r\n $(document).ready(function () {\r\n $(\".site-header-primary .nav-lvl1-btn\").click(function () {\r\n $(\".site-header-primary .nav-lvl1-btn.active\").removeClass(\"active\").attr(\"aria-selected\", \"false\");\r\n $(this).addClass(\"active\").attr(\"aria-selected\", \"true\");\r\n $(\".mega-menu.show\").removeClass(\"show\");\r\n $($(this).data(\"target\")).addClass(\"show\");\r\n });\r\n\r\n mobileLvl1Item.click(function () {\r\n updateActiveMobileLvl1s($(this).attr(\"data-target-panel\"));\r\n $($($(this).attr(\"data-target-panel\")).attr(\"href\")).collapse('show');\r\n });\r\n\r\n $(\".nav-lvl2-btn\").click(function () {\r\n if ($(this).hasClass(\"active\")) {\r\n closeAllNavDropdowns();\r\n }\r\n else {\r\n closeAllNavDropdowns();\r\n openNavDropdown($(this));\r\n }\r\n });\r\n\r\n $(\".offcanvas-button\").click(function () {\r\n $($(this).attr(\"data-bs-target\") + \" .offcanvas-close\").focus();\r\n });\r\n\r\n $(\"#mega-menu-mobile-collapse-parent > a\").click(function () {\r\n var menuId = '#' + $(this).attr(\"id\");\r\n updateActiveMobileLvl1s(menuId);\r\n });\r\n\r\n });\r\n\r\n\r\n $(\"#site-header\").hover(\r\n function () {\r\n\r\n },\r\n function () {\r\n closeAllNavDropdowns();\r\n }\r\n );\r\n\r\n navLvl2Item.hover(\r\n function () {\r\n if (!$(this).hasClass(\"active\")) {\r\n $(this).click();\r\n }\r\n },\r\n function () {\r\n }\r\n );\r\n\r\n $(\".site-header-primary\").find(\"mega-menu\").each(function () {\r\n $(this).find(\"a\").attr(\"tabindex\", -2);\r\n });;\r\n\r\n /**********************************************************************************\r\n LEVEL ONE ITEM ARROWS\r\n /*********************************************************************************/\r\n navLvl1Item.keydown(function (e) {\r\n // right arrow\r\n if (e.keyCode === 39) {\r\n e.preventDefault();\r\n $(this).next().focus();\r\n }\r\n // left arrow\r\n else if (e.keyCode === 37) {\r\n e.preventDefault();\r\n $(this).prev().focus();\r\n }\r\n // down arrow\r\n else if (e.keyCode === 40) {\r\n e.preventDefault();\r\n $(this).click();\r\n $(\".mega-menu.show .nav-lvl2-btn\").first().focus();\r\n }\r\n });\r\n\r\n /**********************************************************************************\r\n LEVEL 2 ITEMS ARROWS\r\n /*********************************************************************************/\r\n\r\n navLvl2Item.keydown(function (e) {\r\n // right arrow\r\n if (e.keyCode === 39) {\r\n e.preventDefault();\r\n $(this).next().focus();\r\n $(this).parent(\".dropdown\").next(\".dropdown\").children(\".nav-lvl2-btn\").focus();\r\n }\r\n // left arrow\r\n else if (e.keyCode === 37) {\r\n e.preventDefault();\r\n $(this).prev().focus();\r\n $(this).parent(\".dropdown\").prev(\".dropdown\").children(\".nav-lvl2-btn\").focus();\r\n }\r\n // up arrow\r\n else if (e.keyCode === 38) {\r\n e.preventDefault();\r\n $(\".nav-lvl1-btn.active\").first().focus();\r\n }\r\n // down arrow\r\n else if (e.keyCode === 40) {\r\n e.preventDefault();\r\n $(this).click();\r\n $($(this).attr(\"data-target\")).find(\"a\").first().focus();\r\n }\r\n });\r\n\r\n /**********************************************************************************\r\n LEVEL 3 ITEMS ARROWS\r\n /*********************************************************************************/\r\n\r\n navLvl3Item.keydown(function (e) {\r\n // right arrow\r\n if (e.keyCode === 39) {\r\n e.preventDefault();\r\n var nextLvlItem = $(this).closest(\".dropdown\").next(\".dropdown\").children(\".nav-lvl2-btn\");\r\n nextLvlItem.click();\r\n $(nextLvlItem.attr(\"data-target\")).find(\"a\").first().focus();\r\n }\r\n // left arrow\r\n else if (e.keyCode === 37) {\r\n e.preventDefault();\r\n var prevLvlItem = $(this).closest(\".dropdown\").prev(\".dropdown\").children(\".nav-lvl2-btn\");\r\n prevLvlItem.click();\r\n $(prevLvlItem.attr(\"data-target\")).find(\"a\").first().focus();\r\n }\r\n // up arrow\r\n else if (e.keyCode === 38) {\r\n e.preventDefault();\r\n if ($(this).parent(\"li\").prev(\"li\").length) {\r\n $(this).parent(\"li\").prev(\"li\").children(\"a\").focus();\r\n } else {\r\n closeAllNavDropdowns();\r\n $(this).closest(\".dropdown\").children(\".nav-lvl2-btn\").focus();\r\n }\r\n }\r\n // down arrow\r\n else if (e.keyCode === 40) {\r\n e.preventDefault();\r\n $(this).parent(\"li\").next(\"li\").children(\"a\").focus();\r\n }\r\n });\r\n\r\n /**********************************************************************************\r\n ENTIRE EVERYTHING KEYPRESS - should we close that menu??\r\n /*********************************************************************************/\r\n\r\n $(document).on('keydown', function (event) {\r\n if (event.key == \"Escape\") {\r\n closeAllNavDropdowns();\r\n }\r\n });\r\n }\r\n\r\n function closeAllNavDropdowns() {\r\n $(\".nav-lvl2-btn.active\").removeClass(\"active\").attr(\"aria-expanded\", \"false\");\r\n $(\".nav-lvl3-dropdown.show\").removeClass(\"show\").css(\"max-height\", \"0px\");;\r\n }\r\n\r\n function openNavDropdown(elem) {\r\n elem.addClass(\"active\").attr(\"aria-expanded\", \"true\");\r\n $(elem.data(\"target\")).addClass(\"show\").css(\"max-height\", $(elem.data(\"target\"))[0].scrollHeight + 35 + \"px\");\r\n }\r\n\r\n function updateActiveMobileLvl1s(menuId) {\r\n mobileLvl1Item.each(function (index) {\r\n if ($(this).attr(\"data-target-panel\") == menuId) {\r\n $(this).addClass(\"active\");\r\n } else {\r\n $(this).removeClass(\"active\");\r\n }\r\n }); \r\n }\r\n \r\n\r\n return {\r\n init: init\r\n };\r\n\r\n})(jQuery);\r\n\r\n$(function () {\r\n App.SiteHeader.init();\r\n});\nvar App = App || {};\r\n\r\nApp.SiteSpeedbump = (function ($) {\r\n 'use strict';\r\n\r\n var exemptList = Speedbump.ExemptList,\r\n uriSchemes = ['javascript:', 'mailto:', 'tel:'];\r\n var speedbumpModalID = \"SpeedbumpModal\";\r\n\r\n function init() {\r\n SpeedbumpTriggers($(\"a\"));\r\n }\r\n\r\n ////////////////////////////////////////////////////////////////////////////\r\n // MODAL TRIGGERS\r\n ////////////////////////////////////////////////////////////////////////////\r\n function SpeedbumpTriggers(selector) {\r\n selector.on(\"click\", function (e) {\r\n\r\n var url = $(this).attr(\"href\");\r\n const parentModal = $(this).parents(\".modal\");\r\n\r\n if (this.hostname !== location.hostname\r\n && $.inArray(this.hostname, exemptList) === -1\r\n && url\r\n && url.indexOf(\"#\") !== 0\r\n && !isUriSchema(url)) {\r\n\r\n e.preventDefault();\r\n SpeedbumpModal(url, parentModal);\r\n }\r\n });\r\n }\r\n\r\n ////////////////////////////////////////////////////////////////////////////\r\n // SEPARATE SPEEDBUMP FUNCTIONALITY TO USE ELSEWHERE (like locations)\r\n ////////////////////////////////////////////////////////////////////////////\r\n function SpeedbumpModal(href, parentModal) {\r\n\r\n // if speedbump was opened from a modal\r\n // temporarily close modal when speedbump opens\r\n // reopen modal when speedbump closes\r\n if (parentModal != null) {\r\n parentModal.modal(\"hide\");\r\n $('#' + speedbumpModalID).on(\"hidden.bs.modal\", function () {\r\n parentModal.modal(\"show\");\r\n })\r\n }\r\n\r\n var SpeedbumpModal = new bootstrap.Modal(document.getElementById(speedbumpModalID));\r\n SpeedbumpModal.show();\r\n\r\n // open third party in new window\r\n $(\"#SpeedbumpModal button[data-bs-proceed='modal']\")\r\n .off(\"click\")\r\n .on(\"click\", function () {\r\n SpeedbumpModal.hide();\r\n window.open(href);\r\n }\r\n );\r\n }\r\n\r\n function isUriSchema(url) {\r\n for (var i in uriSchemes) {\r\n if (url.indexOf(uriSchemes[i]) > -1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n return {\r\n init: init,\r\n SpeedbumpTriggers: SpeedbumpTriggers,\r\n SpeedbumpModal: SpeedbumpModal\r\n };\r\n\r\n})(jQuery);\r\n\r\n$(function () {\r\n App.SiteSpeedbump.init();\r\n});\nvar App = App || {};\r\n\r\nApp.SiteTour = (function ($) {\r\n \"use strict\";\r\n\r\n function init() {\r\n SiteTourTriggers();\r\n SiteTourModal();\r\n SiteTourCarousel();\r\n $(document).ready(function () {\r\n $(\"*[data-site-tour='open']\").on(\"click\", function () {\r\n SiteTourTriggers()\r\n });\r\n });\r\n }\r\n\r\n ////////////////////////////////////////////////////////////////////////////\r\n // MODAL TRIGGERS\r\n ////////////////////////////////////////////////////////////////////////////\r\n function SiteTourTriggers() {\r\n $(\"#SiteTourModal\").modal(\"show\");\r\n $(\"#SiteTourModal\").find(\"*[data-bs-dismiss='modal']\").on(\"click\", function () {\r\n App.Cookies.setItem(\"EmpowerFCU_SiteTour\", \"closed\", Infinity, \"/\", window.location.hostname, window.location.protocol === \"https:\");\r\n });\r\n }\r\n\r\n ////////////////////////////////////////////////////////////////////////////\r\n // SITE TOUR MODAL\r\n ////////////////////////////////////////////////////////////////////////////\r\n function SiteTourModal() {\r\n\r\n $(\"#SiteTourModal\").find(\"button[data-bs-advance='modal']\").on(\"click\", function () {\r\n $(\"#SiteTourModal .site-tour-items\").slick(\"slickGoTo\", 1, false);\r\n });\r\n\r\n $(\"#SiteTourModal\").find(\"button[data-bs-scroll='modal']\").on(\"click\", function () {\r\n var Target = $(this).parents(\".modal\");\r\n var Height = $(this).parents(\".site-tour-item\").next(\".site-tour-item\").position().top;\r\n var Speed = 400;\r\n\r\n Target.animate({\r\n scrollTop: Height\r\n }, Speed);\r\n });\r\n }\r\n\r\n ////////////////////////////////////////////////////////////////////////////\r\n // SITE TOUR CAROUSEL\r\n ////////////////////////////////////////////////////////////////////////////\r\n function SiteTourCarousel() {\r\n\r\n var Carousel = $(\".site-tour .site-tour-items\");\r\n\r\n Carousel.on(\"init\", function (event, slick) {\r\n SiteTourChange(Carousel, slick, 0);\r\n });\r\n\r\n Carousel.on(\"afterChange\", function (event, slick, currentSlide, nextSlide) {\r\n SiteTourChange(Carousel, slick, currentSlide);\r\n });\r\n\r\n $(\"#SiteTourModal\").on('shown.bs.modal', function (e) {\r\n if (ZAGFramework.GetCurrentBP() == \"xxl\" || ZAGFramework.GetCurrentBP() == \"xl\" || ZAGFramework.GetCurrentBP() == \"lg\") {\r\n SiteTourCarouselDestroy(Carousel);\r\n SiteTourCarouselSetup(Carousel);\r\n }\r\n $(document).bind(\"enter-xxl enter-xl enter-lg\", function () {\r\n SiteTourCarouselDestroy(Carousel);\r\n SiteTourCarouselSetup(Carousel);\r\n });\r\n $(document).bind(\"enter-md enter-sm enter-xs\", function () {\r\n SiteTourCarouselDestroy(Carousel);\r\n });\r\n\r\n $(\"#SiteTourModal\").find(\"button[data-bs-reset='carousel']\").on(\"click\", function () {\r\n Carousel.slick(\"slickGoTo\", 0, false);\r\n });\r\n });\r\n }\r\n\r\n ////////////////////////////////////////////////////////////////////////////\r\n // SITE TOUR CAROUSEL SETUP\r\n ////////////////////////////////////////////////////////////////////////////\r\n function SiteTourCarouselSetup(Carousel) {\r\n Carousel.slick({\r\n dots: false,\r\n arrows: true,\r\n appendArrows: $(\".site-tour-carousel-controls\"),\r\n prevArrow: '',\r\n nextArrow: '',\r\n autoplay: false,\r\n adaptiveHeight: false,\r\n infinite: false,\r\n speed: 300,\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n });\r\n }\r\n\r\n ////////////////////////////////////////////////////////////////////////////\r\n // SITE TOUR CAROUSEL DESTROY\r\n ////////////////////////////////////////////////////////////////////////////\r\n function SiteTourCarouselDestroy(Carousel) {\r\n if (Carousel.hasClass(\"slick-initialized\") == true) {\r\n Carousel.slick(\"unslick\");\r\n }\r\n }\r\n\r\n ////////////////////////////////////////////////////////////////////////////\r\n // SITE TOUR CAROUSEL COUNTER\r\n ////////////////////////////////////////////////////////////////////////////\r\n function SiteTourChange(carousel, slick, current) {\r\n\r\n var TargetCurrent = carousel.siblings(\".site-tour-carousel-controls\").find(\".site-tour-carousel-status-current\");\r\n var TargetCount = carousel.siblings(\".site-tour-carousel-controls\").find(\".site-tour-carousel-status-count\");\r\n\r\n TargetCurrent.text(current + 1);\r\n TargetCount.text(slick.$slides.length);\r\n\r\n var text = $(slick.$slides[current]).find('.text').text();\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n})(jQuery);\r\n\r\n$(function () {\r\n App.SiteTour.init();\r\n});\nvar App = App || {};\r\n\r\nvar $promos;\r\n\r\nApp.TabbedPromos = (function ($) {\r\n \"use strict\";\r\n\r\n function init() {\r\n $(\".tabbedpromos-card-link\").click(function () {\r\n giveFocus($(this));\r\n fixOptionRowHeight();\r\n window.dispatchEvent(new Event('resize')); // flickity only likes to properly display cards on resize\r\n });\r\n\r\n $(document).ready(function () {\r\n var promoCardList;\r\n var delay = 0, cardIndex = 0;\r\n var winWidthTouchpoint = $(window).width();\r\n $(\".component.tabbedpromos\").each(function () { //flickity doesn't properly position cards within tab panels until they're visible, so we open each panel on page load\r\n promoCardList = $($(this).find(\".tabbedpromos-card-link\").get().reverse())\r\n promoCardList.each(function () {\r\n setTimeout(function () {\r\n $(promoCardList[cardIndex]).click();\r\n cardIndex++;\r\n }, delay);\r\n delay += 300;\r\n });\r\n });\r\n\r\n $(window).resize(function () {\r\n if (winWidthTouchpoint >= 992 && $(window).width() < 992) {\r\n fixOptionRowHeight(); //height needs to be set when transitioning to md bp\r\n }\r\n else {\r\n winWidthTouchpoint = $(window).width();\r\n }\r\n });\r\n });\r\n\r\n $promos = $('.tabbedpromos .tabbedpromooptions-row-mobile');\r\n\r\n Flickity.createMethods.push('_createPrevNextCells');\r\n\r\n Flickity.prototype._createPrevNextCells = function () {\r\n this.on('select', this.setPrevNextCells);\r\n };\r\n\r\n Flickity.prototype.setPrevNextCells = function () {\r\n // remove classes\r\n changeSlideClasses(this.previousSlide, 'remove', 'is-previous');\r\n changeSlideClasses(this.nextSlide, 'remove', 'is-next');\r\n // set slides\r\n var previousI = fizzyUIUtils.modulo(this.selectedIndex - 1, this.slides.length);\r\n var nextI = fizzyUIUtils.modulo(this.selectedIndex + 1, this.slides.length);\r\n this.previousSlide = this.slides[previousI];\r\n this.nextSlide = this.slides[nextI];\r\n // add classes\r\n changeSlideClasses(this.previousSlide, 'add', 'is-previous');\r\n changeSlideClasses(this.nextSlide, 'add', 'is-next');\r\n };\r\n\r\n initPromoCarousel();\r\n }\r\n\r\n function initPromoCarousel() {\r\n $promos.each(function () {\r\n var $this = $(this);\r\n\r\n $this.on('ready.flickity select.flickity', function (event, index) {\r\n $this\r\n .find('.slide:not(.is-selected) > a')\r\n .attr('tabindex', '-1')\r\n .end()\r\n .find('.slide.is-selected > a')\r\n .attr('tabindex', '');\r\n });\r\n\r\n if (!$this.hasClass('flickity-enabled')) {\r\n $this.flickity({\r\n adaptiveHeight: true,\r\n draggable: true,\r\n pageDots: false,\r\n prevNextButtons: true,\r\n wrapAround: false,\r\n imagesLoaded: true,\r\n cellAlign: 'left',\r\n selectedAttraction: 0.01,\r\n friction: 0.15\r\n });\r\n }\r\n });\r\n }\r\n\r\n function destroyCarousel() {\r\n $promos.each(function () {\r\n var $this = $(this);\r\n if ($this.hasClass('flickity-enabled')) {\r\n $this.flickity('destroy');\r\n }\r\n });\r\n }\r\n\r\n function changeSlideClasses(slide, method, className) {\r\n if (!slide) {\r\n return;\r\n }\r\n slide.getCellElements().forEach(function (cellElem) {\r\n cellElem.classList[method](className);\r\n });\r\n }\r\n\r\n\r\n function fixOptionRowHeight() {\r\n //flickity slider wants to dynamically set height based on card height\r\n //card height needs to be dynamically set based on slider height\r\n //handling this with js as css is a catch-22\r\n $(\".tabbedpromooptions-row-mobile\").each(function (index) {\r\n var maxSlideHeight = 0;\r\n $(this).find(\".slide\").each(function (index) {\r\n if ($(this).height() > maxSlideHeight) {\r\n maxSlideHeight = $(this).height();\r\n }\r\n });\r\n $(this).height(maxSlideHeight)\r\n $(this).find(\".slide\").each(function (index) {\r\n if ($(this).height() != maxSlideHeight) {\r\n $(this).height(maxSlideHeight);\r\n $(this).find(\".tabbedpromooptions-option-link\").height(maxSlideHeight);\r\n }\r\n });\r\n });\r\n }\r\n\r\n function giveFocus(elem) {\r\n //remove focus from all cards\r\n $(\".tabbedpromos-inner-cardcol .tabbedpromos-card-link\").each(function (index) {\r\n removeFocus($(this));\r\n });\r\n //add focus to selected card and show associated options\r\n elem.attr(\"aria-selected\", \"true\");\r\n $(\".tabbedpromooptions-row-\" + elem.data(\"id\")).parent().removeAttr(\"hidden\").attr(\"aria-expanded\", \"true\");\r\n }\r\n function removeFocus(elem) {\r\n elem.attr(\"aria-selected\", \"false\");\r\n $(\".tabbedpromooptions-row-\" + elem.data(\"id\")).parent().attr(\"hidden\", \"true\").attr(\"aria-expanded\", \"false\");\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n})(jQuery);\r\n\r\n$(function () {\r\n App.TabbedPromos.init();\r\n});\nvar App = App || {};\r\n\r\nApp.Video = (function ($) {\r\n 'use strict';\r\n\r\n function init() {\r\n\r\n $(\".video-wrapper\").each(function () {\r\n\r\n var Target = $(this).find(\".component-video-placeholder\");\r\n var Button = Target.find(\".component-video-button\");\r\n var Source = Button.attr(\"data-src\");\r\n var Title = Button.attr(\"data-title\");\r\n\r\n Button.click(function () {\r\n\r\n var source = Source.toLowerCase();\r\n\r\n switch (true) {\r\n case source.indexOf(\"youtube\") >= 0:\r\n Youtube(Target, Source, Title);\r\n break;\r\n case source.indexOf(\"vimeo\") >= 0:\r\n Vimeo(Target, Source, Title);\r\n break;\r\n default:\r\n console.log(\"Could not locate video content\");\r\n }\r\n\r\n });\r\n });\r\n }\r\n\r\n function Youtube(Target, Source, Title) {\r\n var Template = \"\";\r\n Target.html(Template);\r\n }\r\n\r\n function Vimeo(Target, Source, Title) {\r\n var Template = \"\";\r\n Target.html(Template);\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n})(jQuery);\r\n\r\n$(function () {\r\n App.Video.init();\r\n});\n/* global ZAGFramework */\r\n// Place any jQuery/helper plugins in here.\r\n\r\n//AutoClone\r\n(function ($) {\r\n \"use strict\";\r\n\r\n $.AutoClone = function ($element, options) {\r\n\r\n $element.data('AutoClone', this);\r\n\r\n this.init = function ($element, options) {\r\n this.options = $.extend({}, $.AutoClone.defaultOptions, options);\r\n this.cloneElements();\r\n };\r\n\r\n this.cloneElements = function () {\r\n var key = $element.data('key');\r\n $element.trigger('cloning-from');\r\n $(\"[data-action='clone'][data-key='\" + key + \"'][data-type='dest']\").trigger('cloning-to');\r\n $element.clone().appendTo(\"[data-action='clone'][data-key='\" + key + \"'][data-type='dest']\").prepend('').find('> div:first-child').unwrap().remove();\r\n $element.trigger('cloned-from');\r\n $(\"[data-action='clone'][data-key='\" + key + \"'][data-type='dest']\").trigger('cloned-to');\r\n };\r\n\r\n this.init($element, options);\r\n };\r\n\r\n $.fn.AutoClone = (function (options) {\r\n return this.each(function () {\r\n (new $.AutoClone($(this), options));\r\n });\r\n });\r\n\r\n $.AutoClone.defaultOptions = {};\r\n\r\n $(\"[data-action='clone'][data-type='src']\").AutoClone();\r\n\r\n})(jQuery);\r\n\r\n//AutoMove\r\n(function ($) {\r\n \"use strict\";\r\n\r\n $.AutoMove = function ($element, options) {\r\n\r\n $element.data('AutoMove', this);\r\n\r\n this.$currentObject = $element;\r\n this.key = null;\r\n\r\n this.init = function ($element, options) {\r\n this.options = $.extend({}, $.AutoMove.defaultOptions, options);\r\n $(document).on({\r\n 'enter-xs': $.proxy(function () { this.bpChange('xs'); }, this),\r\n 'enter-sm': $.proxy(function () { this.bpChange('sm'); }, this),\r\n 'enter-md': $.proxy(function () { this.bpChange('md'); }, this),\r\n 'enter-lg': $.proxy(function () { this.bpChange('lg'); }, this),\r\n 'enter-xl': $.proxy(function () { this.bpChange('xl'); }, this)\r\n });\r\n };\r\n\r\n this.bpChange = function (bp) {\r\n var key = this.$currentObject.data('key');\r\n\r\n /* find which of two matching elements have the right bp */\r\n $(\"[data-action='move'][data-key='\" + key + \"']\").each(function () {\r\n if ($(this).attr(\"data-bp\").indexOf(bp) === -1) { $(this).attr({ \"data-type\": \"src\" }); } else { $(this).attr({ \"data-type\": \"dest\" }); }\r\n });\r\n\r\n /* if the destination is empty, clone the partner */\r\n if ($(\"[data-action='move'][data-key='\" + key + \"'][data-type='dest']\").is(\":empty\") === true) {\r\n $(\"[data-action='move'][data-key='\" + key + \"'][data-type='src']\").trigger('moving-from');\r\n $(\"[data-action='move'][data-key='\" + key + \"'][data-type='dest']\").trigger('moving-to');\r\n $(\"[data-action='move'][data-key='\" + key + \"'][data-type='src']\").clone(true).appendTo($(\"[data-action='move'][data-key='\" + key + \"'][data-type='dest']\")).prepend('').find('> div:first-child').unwrap().remove();\r\n $(\"[data-action='move'][data-key='\" + key + \"'][data-type='src']\").empty();\r\n $(\"[data-action='move'][data-key='\" + key + \"'][data-type='src']\").trigger('moved-from');\r\n $(\"[data-action='move'][data-key='\" + key + \"'][data-type='dest']\").trigger('moved-to');\r\n }\r\n\r\n /* remove data-type attributes for next bp */\r\n $(\"[data-action='move'][data-key='\" + key + \"']\").removeAttr(\"data-type\");\r\n\r\n };\r\n\r\n this.init($element, options);\r\n };\r\n\r\n $.fn.AutoMove = (function (options) {\r\n return this.each(function () {\r\n (new $.AutoMove($(this), options));\r\n });\r\n });\r\n\r\n $.AutoMove.defaultOptions = {};\r\n\r\n $(\"[data-action='move']\").AutoMove();\r\n\r\n})(jQuery);\r\n\r\n//BPEvents\r\n(function ($) {\r\n \"use strict\";\r\n\r\n $.BPEvents = function (options) {\r\n\r\n this.init = function (options) {\r\n this.options = $.extend({}, $.BPEvents.defaultOptions, options);\r\n if (window.matchMedia) {\r\n for (var key in ZAGFramework.BP) {\r\n if (key !== \"compareArrays\" && key !== \"indexOf\") {\r\n ZAGFramework.BP[key].addListener($.proxy(this.bpChange, this));\r\n if (ZAGFramework.BP[key].matches) {\r\n $(document).trigger('enter-' + key);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n this.bpChange = function (media) {\r\n var type = (media.matches) ? 'enter' : 'leave';\r\n $(document).trigger(type + '-' + this.getBP(media));\r\n };\r\n\r\n this.getBP = function (media) {\r\n for (var key in ZAGFramework.BP) {\r\n if (ZAGFramework.BP[key].media === media.media) { return key; }\r\n }\r\n };\r\n\r\n if (ZAGFramework) {\r\n this.init(options);\r\n }\r\n };\r\n\r\n $.fn.BPEvents = (function (options) {\r\n (new $.BPEvents(options));\r\n });\r\n\r\n $.BPEvents.defaultOptions = {};\r\n\r\n $.BPEvents();\r\n\r\n})(jQuery);"],"names":["global","factory","exports","module","define","amd","globalThis","self","Popper","this","getWindow","node","window","toString","ownerDocument","defaultView","isElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","max","Math","min","round","getUAString","uaData","navigator","userAgentData","brands","map","item","brand","version","join","userAgent","isLayoutViewport","test","getBoundingClientRect","element","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","offsetWidth","width","offsetHeight","height","visualViewport","addVisualOffsets","x","left","offsetLeft","y","top","offsetTop","right","bottom","getWindowScroll","win","scrollLeft","pageXOffset","scrollTop","pageYOffset","getNodeName","nodeName","toLowerCase","getDocumentElement","document","documentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","rect","scroll","offsets","clientLeft","clientTop","getLayoutRect","abs","getParentNode","assignedSlot","parentNode","host","listScrollParents","list","scrollParent","getScrollParent","indexOf","body","isBody","_element$ownerDocumen","target","concat","updatedList","getTrueOffsetParent","position","getOffsetParent","isFirefox","isIE","currentNode","css","transform","perspective","contain","willChange","filter","getContainingBlock","auto","basePlacements","start","end","clippingParents","viewport","popper","reference","variationPlacements","reduce","acc","placement","placements","modifierPhases","order","modifiers","Map","visited","Set","result","forEach","modifier","set","name","has","sort","add","requires","requiresIfExists","dep","depModifier","get","push","format","str","_len","arguments","length","args","Array","_key","p","c","replace","INVALID_MODIFIER_ERROR","MISSING_DEPENDENCY_ERROR","VALID_PROPERTIES","getBasePlacement","split","contains","parent","child","rootNode","getRootNode","next","isSameNode","rectToClientRect","Object","assign","getClientRectFromMixedType","clippingParent","strategy","html","clientWidth","clientHeight","layoutViewport","winScroll","scrollWidth","scrollHeight","direction","getClippingRect","boundary","rootBoundary","clipperElement","mainClippingParents","firstClippingParent","clippingRect","accRect","getVariation","getMainAxisFromPlacement","computeOffsets","_ref","basePlacement","variation","commonX","commonY","mainAxis","len","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","value","keys","hashMap","key","detectOverflow","state","options","offset","_options","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","padding","popperRect","rects","elements","clippingClientRect","contextElement","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","multiply","axis","INVALID_ELEMENT_ERROR","DEFAULT_OPTIONS","areValidElements","some","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","fn","pending","orderedModifiers","attributes","styles","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","merged","identifiers","cleanupModifierEffects","scrollParents","current","existing","data","phase","m","enabled","arr","identifier","index","console","error","String","effect","isArray","s","requirement","find","mod","_ref2","marginTop","marginRight","marginBottom","marginLeft","margin","parseFloat","warn","_ref3","_ref3$options","cleanupFn","update","forceUpdate","_state$elements","reset","_state$orderedModifie2","__debug_loops__","_state$orderedModifie","Promise","resolve","then","undefined","destroy","onFirstUpdate","passive","eventListeners","_options$scroll","resize","_options$resize","addEventListener","removeEventListener","popperOffsets$1","unsetSides","mapToStyles","widthProp","_Object$assign","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasOwnProperty","hasY","sideX","sideY","commonStyles","heightProp","_ref4","dpr","devicePixelRatio","_Object$assign2","computeStyles$1","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","transitionProperty","property","arrow","data-popper-placement","applyStyles$1","style","removeAttribute","setAttribute","initialStyles","attribute","offset$1","_options$offset","invertDistance","skidding","distance","_data$state$placement","hash$1","getOppositePlacement","matched","hash","getOppositeVariationPlacement","flip$1","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","placements$1","allowedPlacements","overflows","a","b","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","i","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","_i","fittingPlacement","slice","_loop","within","min$1","max$1","preventOverflow$1","_offsetModifierState$2","_offset","_min","isOriginSide","_tetherMin","_preventedOffset","tether","_options$tether","tetherOffset","_options$tetherOffset","isBasePlacement","normalizedTetherOffsetValue","tetherOffsetValue","offsetModifierState","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrowRect","arrowPaddingMin","arrowPaddingObject","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","arrowOffsetParent","tetherMax","offsetModifierValue","_offsetModifierState$","preventedOffset","_max","_offsetModifierValue","_tetherMax","v","arrow$1","endDiff","center","minProp","maxProp","startDiff","clientSize","_state$modifiersData$","centerOffset","_options$element","querySelector","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","hide$1","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","data-popper-reference-hidden","data-popper-escaped","createPopper$1","createPopper","applyStyles","computeStyles","createPopperLite","flip","hide","defineProperty","require","bootstrap","_interopNamespace","e","__esModule","n","create","Symbol","toStringTag","k","d","getOwnPropertyDescriptor","enumerable","default","freeze","Popper__namespace","MILLISECONDS_MULTIPLIER","TRANSITION_END","getSelector","let","selector","getAttribute","hrefAttribute","includes","startsWith","trim","getSelectorFromElement","getElementFromSelector","triggerTransitionEnd","dispatchEvent","Event","object","jquery","nodeType","getElement","isVisible","getClientRects","elementIsVisible","getPropertyValue","closedDetails","closest","summary","isDisabled","Node","ELEMENT_NODE","classList","disabled","hasAttribute","findShadowRoot","attachShadow","root","noop","reflow","getjQuery","jQuery","DOMContentLoadedCallbacks","isRTL","dir","defineJQueryPlugin","plugin","callback","$","NAME","JQUERY_NO_CONFLICT","jQueryInterface","Constructor","noConflict","readyState","execute","executeAfterTransition","transitionElement","waitForTransition","emulatedDuration","transitionDuration","transitionDelay","floatTransitionDuration","Number","floatTransitionDelay","getTransitionDurationFromElement","called","handler","setTimeout","getNextActiveElement","activeElement","shouldGetNext","isCycleAllowed","listLength","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","makeEventUid","uid","getElementEvents","findHandler","events","callable","delegationSelector","values","event","normalizeParameters","originalTypeEvent","delegationFunction","isDelegated","typeEvent","getTypeEvent","addHandler","oneOff","relatedTarget","delegateTarget","call","handlers","previousFunction","domElements","querySelectorAll","domElement","hydrateObj","EventHandler","off","type","apply","removeHandler","Boolean","on","one","inNamespace","storeElementEvent","isNamespace","elementEvent","namespace","removeNamespacedHandlers","handlerKey","keyHandlers","trigger","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","cancelable","preventDefault","obj","meta","entries","_unused","configurable","elementMap","Data","instanceMap","size","from","remove","delete","normalizeData","JSON","parse","decodeURIComponent","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","dataset","pureKey","charAt","getDataAttribute","Config","Default","DefaultType","Error","_getConfig","config","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","jsonConfig","constructor","configTypes","expectedTypes","valueType","prototype","match","RegExp","TypeError","toUpperCase","BaseComponent","super","_element","_config","DATA_KEY","dispose","EVENT_KEY","propertyName","getOwnPropertyNames","_queueCallback","isAnimated","getInstance","getOrCreateInstance","VERSION","eventName","enableDismissTrigger","component","method","clickEvent","tagName","Alert","close","_destroyElement","each","SELECTOR_DATA_TOGGLE$5","Button","toggle","button","SelectorEngine","findOne","children","matches","parents","ancestor","prev","previous","previousElementSibling","nextElementSibling","focusableChildren","focusables","el","EVENT_KEY$9","Default$c","endCallback","leftCallback","rightCallback","DefaultType$c","Swipe","isSupported","_deltaX","_supportPointerEvents","PointerEvent","_initEvents","_start","_eventIsPointerPenTouch","clientX","touches","_end","_handleSwipe","_move","absDeltaX","pointerType","maxTouchPoints","EVENT_KEY$8","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLID","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE$2","SELECTOR_ACTIVE","SELECTOR_ITEM","KEY_TO_DIRECTION","ArrowLeft","ArrowRight","Default$b","interval","keyboard","pause","ride","touch","wrap","DefaultType$b","Carousel","_interval","_activeElement","_isSliding","touchTimeout","_swipeHelper","_indicatorsElement","_addEventListeners","cycle","_slide","nextWhenVisible","hidden","_clearInterval","_updateInterval","setInterval","_maybeEnableCycle","to","items","_getItems","activeIndex","_getItemIndex","_getActive","defaultInterval","_keydown","_addTouchEventListeners","img","swipeConfig","_directionToOrder","clearTimeout","_setActiveIndicatorElement","activeIndicator","newActiveIndicator","elementInterval","parseInt","isNext","nextElement","nextElementIndex","triggerEvent","_orderToDirection","slideEvent","isCycling","directionalClassName","orderClassName","_isAnimated","clearInterval","carousel","slideIndex","CLASS_NAME_SHOW$7","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","SELECTOR_DATA_TOGGLE$4","Default$a","DefaultType$a","Collapse","_isTransitioning","_triggerArray","elem","filterElement","foundElement","_initializeChildren","_addAriaAndCollapsedClass","_isShown","show","activeChildren","_getFirstLevelChildren","startEvent","activeInstance","dimension","_getDimension","scrollSize","selected","triggerArray","isOpen","NAME$a","EVENT_KEY$6","DATA_API_KEY$3","ARROW_DOWN_KEY$1","EVENT_CLICK_DATA_API$3","EVENT_KEYDOWN_DATA_API","CLASS_NAME_SHOW$6","SELECTOR_DATA_TOGGLE$3","SELECTOR_MENU","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default$9","autoClose","display","popperConfig","DefaultType$9","Dropdown","_popper","_parent","_menu","_inNavbar","_detectNavbar","showEvent","_createPopper","focus","_completeHide","hideEvent","referenceElement","_getPopperConfig","_getPlacement","parentDropdown","isEnd","_getOffset","popperData","defaultBsPopperConfig","_selectMenuItem","clearMenus","context","composedPath","isMenuTarget","dataApiKeydownHandler","isInput","isEscapeEvent","isUpOrDownEvent","getToggleButton","stopPropagation","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","PROPERTY_PADDING","PROPERTY_MARGIN","ScrollBarHelper","getWidth","documentWidth","innerWidth","_disableOverFlow","_setElementAttributes","calculatedValue","_resetElementAttributes","isOverflowing","_saveInitialAttribute","styleProperty","scrollbarWidth","_applyManipulationCallback","setProperty","actualValue","removeProperty","callBack","sel","NAME$9","EVENT_MOUSEDOWN","Default$8","className","clickCallback","rootElement","DefaultType$8","Backdrop","_isAppended","_append","_getElement","_emulateAnimation","backdrop","createElement","append","EVENT_KEY$5","TAB_NAV_BACKWARD","Default$7","autofocus","trapElement","DefaultType$7","FocusTrap","_isActive","_lastTabNavDirection","activate","_handleFocusin","_handleKeydown","deactivate","shiftKey","EVENT_KEY$4","EVENT_HIDDEN$4","EVENT_SHOW$4","CLASS_NAME_OPEN","CLASS_NAME_STATIC","Default$6","DefaultType$6","Modal","_dialog","_backdrop","_initializeBackDrop","_focustrap","_initializeFocusTrap","_scrollBar","_adjustDialog","_showElement","_hideModal","htmlElement","handleUpdate","modalBody","_triggerBackdropTransition","event2","_resetAdjustments","isModalOverflowing","initialOverflowY","isBodyOverflowing","paddingLeft","paddingRight","alreadyOpen","EVENT_KEY$3","CLASS_NAME_SHOWING$1","OPEN_SELECTOR","EVENT_HIDE_PREVENTED","EVENT_HIDDEN$3","Default$5","DefaultType$5","Offcanvas","blur","uriAttributes","SAFE_URL_PATTERN","DATA_URL_PATTERN","DefaultAllowlist","*","area","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","li","ol","pre","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","allowList","sanitizeFunction","domParser","DOMParser","createdDocument","parseFromString","elementName","attributeList","allowedAttributes","allowedAttributeList","attributeName","nodeValue","attributeRegex","regex","allowedAttribute","innerHTML","Default$4","content","extraClass","sanitize","sanitizeFn","template","DefaultType$4","DefaultContentType","entry","TemplateFactory","getContent","_resolvePossibleFunction","hasContent","changeContent","_checkContent","toHtml","templateWrapper","_maybeSanitize","text","_setContent","arg","templateElement","_putElementInTemplate","textContent","DISALLOWED_ATTRIBUTES","CLASS_NAME_FADE$2","CLASS_NAME_SHOW$2","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$3","animation","container","customClass","delay","title","DefaultType$3","Tooltip","_isEnabled","_timeout","_isHovered","_activeTrigger","_templateFactory","_newContent","tip","_setListeners","enable","disable","toggleEnabled","_initializeOnDelegatedTarget","click","_isWithActiveTrigger","_enter","_leave","_hideModalHandler","originalTitle","_disposePopper","_isWithContent","shadowRoot","isInTheDom","_getTipElement","_getTitle","_createTipElement","_getContentForTemplate","_getTemplateFactory","tipId","prefix","floor","random","getElementById","getUID","setContent",".tooltip-inner","_getDelegateConfig","attachment","eventIn","eventOut","_fixTitle","_setTimeout","timeout","dataAttributes","dataAttribute","Default$2","DefaultType$2","Popover","_getContent",".popover-header",".popover-body","EVENT_KEY$2","EVENT_CLICK","CLASS_NAME_ACTIVE$1","SELECTOR_TARGET_LINKS","Default$1","rootMargin","smoothScroll","threshold","DefaultType$1","ScrollSpy","_targetLinks","_observableSections","_rootElement","_activeTarget","_observer","_previousScrollData","visibleEntryTop","parentScrollTop","refresh","_initializeTargetsAndObservables","_maybeEnableSmoothScroll","disconnect","_getNewObserver","section","observe","observableSection","scrollTo","behavior","IntersectionObserver","_observerCallback","targetElement","id","_process","userScrollsDown","isIntersecting","entryIsLowerThanPrevious","_clearActiveClass","anchor","_activateParents","listGroup","spy","ARROW_RIGHT_KEY","ARROW_DOWN_KEY","CLASS_NAME_ACTIVE","CLASS_NAME_SHOW$1","SELECTOR_DATA_TOGGLE","SELECTOR_INNER_ELEM","Tab","_setInitialAttributes","_getChildren","active","innerElem","_elemIsActive","_getActiveElem","_deactivate","_activate","relatedElem","_toggleDropDown","nextActiveElement","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","isActive","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","open","CLASS_NAME_SHOW","CLASS_NAME_SHOWING","autohide","Toast","_hasMouseInteraction","_hasKeyboardInteraction","_clearTimeout","_maybeScheduleHide","isShown","_onInteraction","isInteracting","$jscomp","ZAGFramework","scope","ASSUME_ES5","ASSUME_NO_NATIVE_MAP","ASSUME_NO_NATIVE_SET","defineProperties","getGlobal","polyfill","writable","SYMBOL_PREFIX","initSymbol","initSymbolIterator","iterator","arrayIterator","iteratorPrototype","done","iteratorFromArray","owns","SmartBanner","f","r","1","language","userLanguage","browserLanguage","g","ios","appMeta","iconRels","getStoreLink","appStoreLanguage","appId","android","windows","l","daysHidden","daysReminder","store","price","theme","icon","force","os","parseAppId","browser","standalone","t","author","appendChild","install","bind","path","expires","Date","exec","component-query","cookie-cutter","get-doc","object-assign","ua-parser-js","2","all","engine","3","cookie","unescape","escape","domain","secure","4","has-dom","5","6","getOwnPropertySymbols","propertyIsEnumerable","fromCharCode","7","h","q","getResult","extend","getBrowser","major","getCPU","architecture","cpu","getDevice","vendor","model","device","getEngine","getOS","ua","getUA","setUA","1.0","1.2","1.3","2.0","2.0.2","2.0.3","2.0.4","?","lowerize","Fire Phone","HTC","Sprint","Evo Shift 4G","ME","NT 3.11","NT 4.0","2000","XP","Vista","8","8.1","10","RT","BROWSER","MAJOR","CPU","ARCHITECTURE","DEVICE","MODEL","VENDOR","TYPE","CONSOLE","MOBILE","SMARTTV","TABLET","WEARABLE","EMBEDDED","ENGINE","OS","UAParser","Zepto","Slick","o","defaults","accessibility","adaptiveHeight","appendArrows","appendDots","arrows","asNavFor","prevArrow","nextArrow","autoplay","autoplaySpeed","centerMode","centerPadding","cssEase","customPaging","dots","dotsClass","draggable","easing","edgeFriction","fade","focusOnSelect","focusOnChange","infinite","initialSlide","lazyLoad","mobileFirst","pauseOnHover","pauseOnFocus","pauseOnDotsHover","respondTo","responsive","rows","rtl","slide","slidesPerRow","slidesToShow","slidesToScroll","speed","swipe","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","vertical","verticalSwiping","waitForAnimate","zIndex","initials","animating","dragging","autoPlayTimer","currentDirection","currentLeft","currentSlide","$dots","listWidth","listHeight","loadIndex","$nextArrow","$prevArrow","scrolling","slideCount","slideWidth","$slideTrack","$slides","sliding","slideOffset","swipeLeft","swiping","$list","touchObject","transformsEnabled","unslicked","activeBreakpoint","animType","animProp","breakpoints","breakpointSettings","cssTransitions","focussed","interrupted","paused","positionProp","rowCount","shouldClick","$slider","$slidesCache","transformType","transitionType","visibilityChange","windowWidth","windowTimer","originalSettings","mozHidden","webkitHidden","autoPlay","proxy","autoPlayClear","autoPlayIterator","changeSlide","clickHandler","selectHandler","setPosition","swipeHandler","dragHandler","keyHandler","instanceUid","htmlExpr","registerBreakpoints","init","activateADA","attr","aria-hidden","tabindex","addSlide","slickAdd","unload","appendTo","insertBefore","eq","insertAfter","prependTo","detach","reinit","animateHeight","outerHeight","animate","animateSlide","animStart","duration","step","ceil","complete","applyTransition","disableTransition","getNavTarget","not","slick","slideHandler","buildArrows","addClass","removeClass","removeAttr","aria-disabled","buildDots","getDotCount","first","buildOut","wrapAll","setupInfinite","updateDots","setSlideClasses","buildRows","createDocumentFragment","empty","checkResponsive","unslick","currentTarget","is","message","checkNavigable","getNavigableIndexes","cleanUpEvents","interrupt","visibility","cleanUpSlideEvents","orientationChange","cleanUpRows","stopImmediatePropagation","fadeSlide","opacity","fadeSlideOut","filterSlides","slickFilter","focusHandler","getCurrent","slickCurrentSlide","getLeft","outerWidth","getOption","slickGetOption","getSlick","getSlideCount","goTo","slickGoTo","hasClass","setProps","startLoad","loadSlider","initializeEvents","updateArrows","initADA","role","aria-describedby","aria-controls","aria-label","aria-selected","initArrowEvents","initDotEvents","initSlideEvents","action","initUI","keyCode","onload","onerror","src","progressiveLazyLoad","slickNext","slickPause","play","slickPlay","postSlide","slickPrev","breakpoint","splice","settings","windowDelay","removeSlide","slickRemove","setCSS","setDimensions","setFade","setHeight","setOption","slickSetOption","WebkitTransition","MozTransition","msTransition","OTransform","perspectiveProperty","webkitPerspective","MozTransform","MozPerspective","webkitTransform","msTransform","clone","swipeDirection","startX","curX","startY","curY","atan2","PI","swipeEnd","swipeLength","edgeHit","minSwipe","fingerCount","originalEvent","swipeStart","swipeMove","pageX","pageY","clientY","sqrt","pow","unfilterSlides","slickUnfilter","keyCounter","allWaypoints","Waypoint","Adapter","adapter","horizontal","triggerPoint","group","Group","findOrCreate","Context","findOrCreateByElement","offsetAliases","queueTrigger","invokeAll","waypointKey","allWaypointsArray","destroyAll","disableAll","enableAll","refreshAll","viewportHeight","innerHeight","viewportWidth","adapters","continuous","bottom-in-view","right-in-view","requestAnimationFrameShim","contexts","oldWindowLoad","didScroll","didResize","oldScroll","waypoints","waypointContextKey","createThrottledScrollHandler","createThrottledResizeHandler","waypoint","checkEmpty","horizontalEmpty","isEmptyObject","verticalEmpty","resizeHandler","handleResize","requestAnimationFrame","scrollHandler","handleScroll","isTouch","axisKey","groupKey","triggeredGroups","axes","newScroll","forward","backward","wasBeforeTriggerPoint","nowAfterTriggerPoint","flushTriggers","isWindow","contextOffset","contextScroll","contextDimension","offsetProp","nowAfterScroll","adjustment","oldTriggerPoint","elementOffset","freshWaypoint","contextModifier","wasBeforeScroll","triggeredForward","findByElement","contextId","mozRequestAnimationFrame","webkitRequestAnimationFrame","byTriggerPoint","byReverseTriggerPoint","groups","clearTriggerQueues","triggerQueues","up","down","inArray","last","JQueryAdapter","$element","createExtension","framework","overrides","isFunction","ZagScrollAnimate","ZagScrollAnimateSetup","targets","count","stagger","ZagScrollAnimateExecute","triggerOnce","methods","GetViewport","GetCurrentBP","BP","xs","matchMedia","sm","md","lg","xl","xxl","App","jQueryBridget","arraySlice","logError","PluginClass","option","opts","isPlainObject","arg0","$elems","methodName","returnValue","pluginMethodStr","_init","updateJQuery","bridget","EvEmitter","proto","listener","listeners","_events","once","onceEvents","_onceEvents","emitEvent","onceListeners","allOff","getSize","getStyleSize","num","isNaN","measurements","measurementsLength","getStyle","isBoxSizeOuter","isSetup","borderStyle","borderWidth","boxSizing","removeChild","isBorderBox","measurement","paddingWidth","paddingHeight","paddingTop","paddingBottom","marginWidth","marginHeight","borderLeftWidth","borderRightWidth","borderHeight","borderTopWidth","borderBottomWidth","isBorderBoxSizeOuter","styleWidth","styleHeight","matchesSelector","matchesMethod","ElemProto","prefixes","fizzyUIUtils","utils","prop","modulo","makeArray","removeFrom","ary","getParent","getQueryElement","handleEvent","filterFindElements","elems","ffElems","childElems","debounceMethod","_class","timeoutName","_this","docReady","toDashed","$1","$2","htmlInit","WidgetClass","dashedNamespace","dataAttr","dataAttrElems","jsDashElems","dataOptionsAttr","Flickity","Cell","shift","unselect","originSide","updateTarget","renderPosition","setDefaultTarget","marginProperty","cellAlign","getPositionValue","select","wrapShift","slideableWidth","Slide","isOriginLeft","cells","addCell","cell","beginMargin","firstMargin","endMargin","lastCell","getLastCell","lastMargin","getCellElements","animatePrototype","startAnimation","isAnimating","restingFrames","applyDragForce","applySelectedAttraction","previousX","integratePhysics","positionSlider","settle","wrapAround","shiftWrapCells","setTranslateX","dispatchScrollEvent","is3d","cursorPosition","rightToLeft","translateX","slider","progress","firstSlide","slides","positionX","slidesWidth","positionSliderAtSelected","selectedSlide","velocity","percentPosition","isPointerDown","isFreeScrolling","selectedIndex","beforeGap","afterGap","_shiftCells","beforeShiftCells","afterShiftCells","gap","_unshiftCells","getFrictionFactor","applyForce","getRestingPosition","dragForce","isDraggable","dragX","selectedAttraction","_Flickity","moveElements","toElem","GUID","instances","queryElement","flickityGUID","_create","freeScrollFriction","friction","namespaceJQueryEvents","setGallerySize","createMethods","cellAlignShorthands","guid","_createSlider","watchCSS","_filterFindCellElements","reloadCells","tabIndex","selectInitialIndex","isInitActivated","cellSelector","_makeCells","positionCells","_getWrapShiftCells","cellElem","getLastSlide","_sizeCells","_positionCells","maxCellHeight","startCell","cellX","updateSlides","_containSlides","nextMargin","canCellFit","_getCanCellFit","updateSelectedSlide","number","groupCells","percentMatch","percent","reposition","setCellAlign","shorthand","gapX","cellIndex","_getGapCells","increment","contentWidth","isContentSmaller","beginBound","endBound","isRightToLeft","emitArgs","$event","jQEvent","isWrap","isInstant","_wrapSelect","prevIndex","wrapIndex","delta","backWrapDelta","forewardWrapDelta","isDragSelect","unselectSelectedSlide","selectedCells","selectedElements","selectedCell","selectedElement","initialIndex","queryCell","selectCell","getCellSlideIndex","getCell","getCells","getParentCell","getAdjacentCellElements","adjCount","cellElems","uiChange","childUIPointerDown","onresize","onkeydown","isNotFocused","keyboardHandlers","37","leftMethod","39","rightMethod","prevScrollY","preventScroll","removeData","setJQuery","jq","Unipointer","postStartEvents","bindStartEvent","_bindStartEvent","unbindStartEvent","isAdd","bindMethod","getTouch","pointerIdentifier","onmousedown","_pointerDown","ontouchstart","changedTouches","onpointerdown","pointer","pointerId","pointerDown","_bindPostStartEvents","mousedown","touchstart","pointerdown","_boundPointerEvents","_unbindPostStartEvents","onmousemove","_pointerMove","onpointermove","ontouchmove","pointerMove","onmouseup","_pointerUp","onpointerup","ontouchend","_pointerDone","pointerUp","_pointerReset","pointerDone","onpointercancel","_pointerCancel","ontouchcancel","pointerCancel","getPointerPoint","Unidragger","cursorNodes","bindHandles","_bindHandles","unbindHandles","touchAction","_touchActionValue","handles","handle","okayPointerDown","pointerDownPointer","pointerDownBlur","TEXTAREA","INPUT","SELECT","OPTION","clickTypes","radio","checkbox","submit","image","file","isCursorNode","isClickType","isOkay","focused","moveVector","_dragPointerMove","_dragMove","isDragging","hasDragStarted","_dragStart","_dragPointerUp","_dragEnd","_staticClick","isPreventingClicks","dragStart","dragMove","dragEnd","onclick","isIgnoringMouseUp","staticClick","dragThreshold","isTouchmoveScrollCanceled","focusNodes","_createDrag","onActivateDrag","_uiChangeDrag","onDeactivateDrag","updateDraggable","bindDrag","unbindDrag","_pointerDownPreventDefault","pointerDownFocus","pointerDownScroll","getScrollPosition","_pointerDownDefault","isTouchStart","isTouchPointer","isFocusNode","isTouchScrolling","dragStartPosition","previousDragX","originBound","dragMoveTime","restingX","freeScroll","dragEndRestingSelect","dragEndBoostSelect","getSlideDistance","positiveResting","_getClosestResting","negativeResting","minDistance","Infinity","condition","isWrapAround","clickedCell","onscroll","scrollMoveX","scrollMoveY","svgURI","PrevNextButton","isEnabled","isPrevious","leftDirection","isLeft","svg","createSVG","createElementNS","pathMovements","shape","arrowShape","x0","x1","y1","x2","y2","x3","lastIndex","boundIndex","prevNextButtons","_createPrevNextButtons","prevButton","nextButton","activatePrevNextButtons","deactivatePrevNextButtons","PageDots","holder","handleClick","onClick","setDots","addDots","removeDots","fragment","newDots","dot","updateSelected","selectedDot","onTap","pageDots","_createPageDots","activatePageDots","updateSelectedPageDots","updatePageDots","deactivatePageDots","Player","onVisibilityChange","onVisibilityPlay","visibilityPlay","tick","time","clear","stop","unpause","pauseAutoPlayOnHover","_createPlayer","player","activatePlayer","stopPlayer","deactivatePlayer","playPlayer","pausePlayer","unpausePlayer","onmouseenter","onmouseleave","insert","isAppend","insertCellElement","endCells","cellChange","prepend","minCellIndex","cellSizeChange","changedCellIndex","isPositioningSlider","prevSelectedElem","LazyLoader","flickity","load","_createLazyload","lazyImages","lazyCellImages","lazyloadAttr","srcAttr","srcsetAttr","imgs","getCellLazyImages","srcset","_createAsNavFor","activateAsNavFor","deactivateAsNavFor","destroyAsNavFor","asNavForOption","setNavCompanion","companion","navCompanion","onNavCompanionSelect","navCompanionSelect","onNavStaticClick","firstIndex","companionCells","selectIndex","removeNavSelectedElements","navSelectedElements","changeNavSelectedClass","navElem","cellElement","imagesLoaded","ImagesLoaded","onAlways","queryElem","getImages","jqDeferred","Deferred","images","addElementImages","addImage","background","addElementBackgroundImages","elementNodeTypes","childImgs","9","11","LoadingImage","Background","url","Image","reURL","backgroundImage","addBackground","loadingImage","onProgress","progressedCount","hasAnyBroken","isLoaded","notify","debug","log","isComplete","jqMethod","getIsImageComplete","confirm","naturalWidth","proxyImage","unbindEvents","makeJQueryPlugin","promise","_createImagesLoaded","$promos","Base","AnchorSupport","SiblingPanel","Panel","Hash","location","Target","SiblingTarget","Cookies","getItem","sKey","encodeURIComponent","setItem","sValue","vEnd","sPath","sDomain","bSecure","sExpires","toUTCString","removeItem","hasItem","aKeys","nLen","nIdx","FormValidation","ValidateText","Component","val","Operator","CompareGuid","CompareValue","ValidateRadio","ComponentName","ComponentValue","ComponentError","ValidateCheckboxes","ComponentGuid","trimEnd","ValidateCheckbox","ComponentCheckbox","ValidateFile","CountErrors","ErrorContainer","ErrorContainerId","ErrorCount","AriaDescribedBy","Form","KenticoSubmit","KenticoUpdate","input","label","markup","replaceWith","onsubmit","data-ktc-ajax-update","SharedSmartAppBanner","Alerts","showAlert","AlertGuid","hostname","protocol","HomepageBanner","winWidthTouchpoint","playCarousel","$carousel","$controlPlay","$controlPause","pauseCarousel","resizeSlides","box","slideMinHeight","hideInactiveSlides","banner","$homepageBanner","ready","slideBottom","$banner","$controlPrev","$controlNext","manuallyPaused","windowBelow","InternalMasthead","topOffset","pageNav","mastheadContentContainer","mastheadImage","LoginModal","SiteCookieNotice","Notice","slideUp","SiteHeader","navLvl1Item","mobileLvl1Item","navLvl2Item","navLvl3Item","closeAllNavDropdowns","updateActiveMobileLvl1s","menuId","collapse","hover","keydown","prevLvlItem","nextLvlItem","SiteSpeedbump","exemptList","Speedbump","ExemptList","uriSchemes","speedbumpModalID","SpeedbumpTriggers","parentModal","isUriSchema","SpeedbumpModal","href","modal","SiteTour","SiteTourTriggers","SiteTourCarouselSetup","SiteTourCarouselDestroy","SiteTourChange","TargetCurrent","siblings","TargetCount","Height","nextSlide","TabbedPromos","changeSlideClasses","fixOptionRowHeight","maxSlideHeight","promoCardList","cardIndex","reverse","_createPrevNextCells","setPrevNextCells","previousSlide","previousI","nextI","$this","Video","Source","Title","source","Youtube","Template","AutoClone","cloneElements","unwrap","AutoMove","$currentObject","enter-xs","bpChange","enter-sm","enter-md","enter-lg","enter-xl","bp","data-type","BPEvents","addListener","media","getBP"],"mappings":"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"}