').parent();\r\n _.$slideTrack.css('opacity', 0);\r\n\r\n if (_.options.centerMode === true || _.options.swipeToSlide === true) {\r\n _.options.slidesToScroll = 1;\r\n }\r\n\r\n $('img[data-lazy]', _.$slider).not('[src]').addClass('slick-loading');\r\n\r\n _.setupInfinite();\r\n\r\n _.buildArrows();\r\n\r\n _.buildDots();\r\n\r\n _.updateDots();\r\n\r\n\r\n _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);\r\n\r\n if (_.options.draggable === true) {\r\n _.$list.addClass('draggable');\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.buildRows = function () {\r\n\r\n var _ = this, a, b, c, newSlides, numOfSlides, originalSlides, slidesPerSection;\r\n\r\n newSlides = document.createDocumentFragment();\r\n originalSlides = _.$slider.children();\r\n\r\n if (_.options.rows > 1) {\r\n\r\n slidesPerSection = _.options.slidesPerRow * _.options.rows;\r\n numOfSlides = Math.ceil(\r\n originalSlides.length / slidesPerSection\r\n );\r\n\r\n for (a = 0; a < numOfSlides; a++) {\r\n var slide = document.createElement('div');\r\n for (b = 0; b < _.options.rows; b++) {\r\n var row = document.createElement('div');\r\n for (c = 0; c < _.options.slidesPerRow; c++) {\r\n var target = (a * slidesPerSection + ((b * _.options.slidesPerRow) + c));\r\n if (originalSlides.get(target)) {\r\n row.appendChild(originalSlides.get(target));\r\n }\r\n }\r\n slide.appendChild(row);\r\n }\r\n newSlides.appendChild(slide);\r\n }\r\n\r\n _.$slider.empty().append(newSlides);\r\n _.$slider.children().children().children()\r\n .css({\r\n 'width': (100 / _.options.slidesPerRow) + '%',\r\n 'display': 'inline-block'\r\n });\r\n\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.checkResponsive = function (initial, forceUpdate) {\r\n\r\n var _ = this,\r\n breakpoint, targetBreakpoint, respondToWidth, triggerBreakpoint = false;\r\n var sliderWidth = _.$slider.width();\r\n var windowWidth = window.innerWidth || $(window).width();\r\n\r\n if (_.respondTo === 'window') {\r\n respondToWidth = windowWidth;\r\n } else if (_.respondTo === 'slider') {\r\n respondToWidth = sliderWidth;\r\n } else if (_.respondTo === 'min') {\r\n respondToWidth = Math.min(windowWidth, sliderWidth);\r\n }\r\n\r\n if (_.options.responsive &&\r\n _.options.responsive.length &&\r\n _.options.responsive !== null) {\r\n\r\n targetBreakpoint = null;\r\n\r\n for (breakpoint in _.breakpoints) {\r\n if (_.breakpoints.hasOwnProperty(breakpoint)) {\r\n if (_.originalSettings.mobileFirst === false) {\r\n if (respondToWidth < _.breakpoints[breakpoint]) {\r\n targetBreakpoint = _.breakpoints[breakpoint];\r\n }\r\n } else {\r\n if (respondToWidth > _.breakpoints[breakpoint]) {\r\n targetBreakpoint = _.breakpoints[breakpoint];\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (targetBreakpoint !== null) {\r\n if (_.activeBreakpoint !== null) {\r\n if (targetBreakpoint !== _.activeBreakpoint || forceUpdate) {\r\n _.activeBreakpoint =\r\n targetBreakpoint;\r\n if (_.breakpointSettings[targetBreakpoint] === 'unslick') {\r\n _.unslick(targetBreakpoint);\r\n } else {\r\n _.options = $.extend({}, _.originalSettings,\r\n _.breakpointSettings[\r\n targetBreakpoint]);\r\n if (initial === true) {\r\n _.currentSlide = _.options.initialSlide;\r\n }\r\n _.refresh(initial);\r\n }\r\n triggerBreakpoint = targetBreakpoint;\r\n }\r\n } else {\r\n _.activeBreakpoint = targetBreakpoint;\r\n if (_.breakpointSettings[targetBreakpoint] === 'unslick') {\r\n _.unslick(targetBreakpoint);\r\n } else {\r\n _.options = $.extend({}, _.originalSettings,\r\n _.breakpointSettings[\r\n targetBreakpoint]);\r\n if (initial === true) {\r\n _.currentSlide = _.options.initialSlide;\r\n }\r\n _.refresh(initial);\r\n }\r\n triggerBreakpoint = targetBreakpoint;\r\n }\r\n } else {\r\n if (_.activeBreakpoint !== null) {\r\n _.activeBreakpoint = null;\r\n _.options = _.originalSettings;\r\n if (initial === true) {\r\n _.currentSlide = _.options.initialSlide;\r\n }\r\n _.refresh(initial);\r\n triggerBreakpoint = targetBreakpoint;\r\n }\r\n }\r\n\r\n // only trigger breakpoints during an actual break. not on initialize.\r\n if (!initial && triggerBreakpoint !== false) {\r\n _.$slider.trigger('breakpoint', [_, triggerBreakpoint]);\r\n }\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.changeSlide = function (event, dontAnimate) {\r\n\r\n var _ = this,\r\n $target = $(event.currentTarget),\r\n indexOffset, slideOffset, unevenOffset;\r\n\r\n // If target is a link, prevent default action.\r\n if ($target.is('a')) {\r\n event.preventDefault();\r\n }\r\n\r\n // If target is not the
element (ie: a child), find the .\r\n if (!$target.is('li')) {\r\n $target = $target.closest('li');\r\n }\r\n\r\n unevenOffset = (_.slideCount % _.options.slidesToScroll !== 0);\r\n indexOffset = unevenOffset ? 0 : (_.slideCount - _.currentSlide) % _.options.slidesToScroll;\r\n\r\n switch (event.data.message) {\r\n\r\n case 'previous':\r\n slideOffset = indexOffset === 0 ? _.options.slidesToScroll : _.options.slidesToShow - indexOffset;\r\n if (_.slideCount > _.options.slidesToShow) {\r\n _.slideHandler(_.currentSlide - slideOffset, false, dontAnimate);\r\n }\r\n break;\r\n\r\n case 'next':\r\n slideOffset = indexOffset === 0 ? _.options.slidesToScroll : indexOffset;\r\n if (_.slideCount > _.options.slidesToShow) {\r\n _.slideHandler(_.currentSlide + slideOffset, false, dontAnimate);\r\n }\r\n break;\r\n\r\n case 'index':\r\n var index = event.data.index === 0 ? 0 :\r\n event.data.index || $target.index() * _.options.slidesToScroll;\r\n\r\n _.slideHandler(_.checkNavigable(index), false, dontAnimate);\r\n $target.children().trigger('focus');\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.checkNavigable = function (index) {\r\n\r\n var _ = this,\r\n navigables, prevNavigable;\r\n\r\n navigables = _.getNavigableIndexes();\r\n prevNavigable = 0;\r\n if (index > navigables[navigables.length - 1]) {\r\n index = navigables[navigables.length - 1];\r\n } else {\r\n for (var n in navigables) {\r\n if (index < navigables[n]) {\r\n index = prevNavigable;\r\n break;\r\n }\r\n prevNavigable = navigables[n];\r\n }\r\n }\r\n\r\n return index;\r\n };\r\n\r\n Slick.prototype.cleanUpEvents = function () {\r\n\r\n var _ = this;\r\n\r\n if (_.options.dots && _.$dots !== null) {\r\n\r\n $('li', _.$dots)\r\n .off('click.slick', _.changeSlide)\r\n .off('mouseenter.slick', $.proxy(_.interrupt, _, true))\r\n .off('mouseleave.slick', $.proxy(_.interrupt, _, false));\r\n\r\n }\r\n\r\n _.$slider.off('focus.slick blur.slick');\r\n\r\n if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {\r\n _.$prevArrow && _.$prevArrow.off('click.slick', _.changeSlide);\r\n _.$nextArrow && _.$nextArrow.off('click.slick', _.changeSlide);\r\n }\r\n\r\n _.$list.off('touchstart.slick mousedown.slick', _.swipeHandler);\r\n _.$list.off('touchmove.slick mousemove.slick', _.swipeHandler);\r\n _.$list.off('touchend.slick mouseup.slick', _.swipeHandler);\r\n _.$list.off('touchcancel.slick mouseleave.slick', _.swipeHandler);\r\n\r\n _.$list.off('click.slick', _.clickHandler);\r\n\r\n $(document).off(_.visibilityChange, _.visibility);\r\n\r\n _.cleanUpSlideEvents();\r\n\r\n if (_.options.accessibility === true) {\r\n _.$list.off('keydown.slick', _.keyHandler);\r\n }\r\n\r\n if (_.options.focusOnSelect === true) {\r\n $(_.$slideTrack).children().off('click.slick', _.selectHandler);\r\n }\r\n\r\n $(window).off('orientationchange.slick.slick-' + _.instanceUid, _.orientationChange);\r\n\r\n $(window).off('resize.slick.slick-' + _.instanceUid, _.resize);\r\n\r\n $('[draggable!=true]', _.$slideTrack).off('dragstart', _.preventDefault);\r\n\r\n $(window).off('load.slick.slick-' + _.instanceUid, _.setPosition);\r\n $(document).off('ready.slick.slick-' + _.instanceUid, _.setPosition);\r\n\r\n };\r\n\r\n Slick.prototype.cleanUpSlideEvents = function () {\r\n\r\n var _ = this;\r\n\r\n _.$list.off('mouseenter.slick', $.proxy(_.interrupt, _, true));\r\n _.$list.off('mouseleave.slick', $.proxy(_.interrupt, _, false));\r\n\r\n };\r\n\r\n Slick.prototype.cleanUpRows = function () {\r\n\r\n var _ = this, originalSlides;\r\n\r\n if (_.options.rows > 1) {\r\n originalSlides = _.$slides.children().children();\r\n originalSlides.removeAttr('style');\r\n _.$slider.empty().append(originalSlides);\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.clickHandler = function (event) {\r\n\r\n var _ = this;\r\n\r\n if (_.shouldClick === false) {\r\n event.stopImmediatePropagation();\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.destroy = function (refresh) {\r\n\r\n var _ = this;\r\n\r\n _.autoPlayClear();\r\n\r\n _.touchObject = {};\r\n\r\n _.cleanUpEvents();\r\n\r\n $('.slick-cloned', _.$slider).detach();\r\n\r\n if (_.$dots) {\r\n _.$dots.remove();\r\n }\r\n\r\n\r\n if (_.$prevArrow && _.$prevArrow.length) {\r\n\r\n _.$prevArrow\r\n .removeClass('slick-disabled slick-arrow slick-hidden')\r\n .removeAttr('aria-hidden aria-disabled tabindex')\r\n .css('display', '');\r\n\r\n if (_.htmlExpr.test(_.options.prevArrow)) {\r\n _.$prevArrow.remove();\r\n }\r\n }\r\n\r\n if (_.$nextArrow && _.$nextArrow.length) {\r\n\r\n _.$nextArrow\r\n .removeClass('slick-disabled slick-arrow slick-hidden')\r\n .removeAttr('aria-hidden aria-disabled tabindex')\r\n .css('display', '');\r\n\r\n if (_.htmlExpr.test(_.options.nextArrow)) {\r\n _.$nextArrow.remove();\r\n }\r\n\r\n }\r\n\r\n\r\n if (_.$slides) {\r\n\r\n _.$slides\r\n .removeClass('slick-slide slick-active slick-center slick-visible slick-current')\r\n .removeAttr('aria-hidden')\r\n .removeAttr('data-slick-index')\r\n .each(function () {\r\n $(this).attr('style', $(this).data('originalStyling'));\r\n });\r\n\r\n _.$slideTrack.children(this.options.slide).detach();\r\n\r\n _.$slideTrack.detach();\r\n\r\n _.$list.detach();\r\n\r\n _.$slider.append(_.$slides);\r\n }\r\n\r\n _.cleanUpRows();\r\n\r\n _.$slider.removeClass('slick-slider');\r\n _.$slider.removeClass('slick-initialized');\r\n _.$slider.removeClass('slick-dotted');\r\n\r\n _.unslicked = true;\r\n\r\n if (!refresh) {\r\n _.$slider.trigger('destroy', [_]);\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.disableTransition = function (slide) {\r\n\r\n var _ = this,\r\n transition = {};\r\n\r\n transition[_.transitionType] = '';\r\n\r\n if (_.options.fade === false) {\r\n _.$slideTrack.css(transition);\r\n } else {\r\n _.$slides.eq(slide).css(transition);\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.fadeSlide = function (slideIndex, callback) {\r\n\r\n var _ = this;\r\n\r\n if (_.cssTransitions === false) {\r\n\r\n _.$slides.eq(slideIndex).css({\r\n zIndex: _.options.zIndex\r\n });\r\n\r\n _.$slides.eq(slideIndex).animate({\r\n opacity: 1\r\n }, _.options.speed, _.options.easing, callback);\r\n\r\n } else {\r\n\r\n _.applyTransition(slideIndex);\r\n\r\n _.$slides.eq(slideIndex).css({\r\n opacity: 1,\r\n zIndex: _.options.zIndex\r\n });\r\n\r\n if (callback) {\r\n setTimeout(function () {\r\n\r\n _.disableTransition(slideIndex);\r\n\r\n callback.call();\r\n }, _.options.speed);\r\n }\r\n\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.fadeSlideOut = function (slideIndex) {\r\n\r\n var _ = this;\r\n\r\n if (_.cssTransitions === false) {\r\n\r\n _.$slides.eq(slideIndex).animate({\r\n opacity: 0,\r\n zIndex: _.options.zIndex - 2\r\n }, _.options.speed, _.options.easing);\r\n\r\n } else {\r\n\r\n _.applyTransition(slideIndex);\r\n\r\n _.$slides.eq(slideIndex).css({\r\n opacity: 0,\r\n zIndex: _.options.zIndex - 2\r\n });\r\n\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.filterSlides = Slick.prototype.slickFilter = function (filter) {\r\n\r\n var _ = this;\r\n\r\n if (filter !== null) {\r\n\r\n _.$slidesCache = _.$slides;\r\n\r\n _.unload();\r\n\r\n _.$slideTrack.children(this.options.slide).detach();\r\n\r\n _.$slidesCache.filter(filter).appendTo(_.$slideTrack);\r\n\r\n _.reinit();\r\n\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.focusHandler = function () {\r\n\r\n var _ = this;\r\n\r\n _.$slider\r\n .off('focus.slick blur.slick')\r\n .on('focus.slick blur.slick',\r\n '*:not(.slick-arrow)', function (event) {\r\n\r\n event.stopImmediatePropagation();\r\n var $sf = $(this);\r\n\r\n setTimeout(function () {\r\n\r\n if (_.options.pauseOnFocus) {\r\n _.focussed = $sf.is(':focus');\r\n _.autoPlay();\r\n }\r\n\r\n }, 0);\r\n\r\n });\r\n };\r\n\r\n Slick.prototype.getCurrent = Slick.prototype.slickCurrentSlide = function () {\r\n\r\n var _ = this;\r\n return _.currentSlide;\r\n\r\n };\r\n\r\n Slick.prototype.getDotCount = function () {\r\n\r\n var _ = this;\r\n\r\n var breakPoint = 0;\r\n var counter = 0;\r\n var pagerQty = 0;\r\n\r\n if (_.options.infinite === true) {\r\n while (breakPoint < _.slideCount) {\r\n ++pagerQty;\r\n breakPoint = counter + _.options.slidesToScroll;\r\n counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;\r\n }\r\n } else if (_.options.centerMode === true) {\r\n pagerQty = _.slideCount;\r\n } else if (!_.options.asNavFor) {\r\n pagerQty = 1 + Math.ceil((_.slideCount - _.options.slidesToShow) / _.options.slidesToScroll);\r\n } else {\r\n while (breakPoint < _.slideCount) {\r\n ++pagerQty;\r\n breakPoint = counter + _.options.slidesToScroll;\r\n counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;\r\n }\r\n }\r\n\r\n return pagerQty - 1;\r\n\r\n };\r\n\r\n Slick.prototype.getLeft = function (slideIndex) {\r\n\r\n var _ = this,\r\n targetLeft,\r\n verticalHeight,\r\n verticalOffset = 0,\r\n targetSlide;\r\n\r\n _.slideOffset = 0;\r\n verticalHeight = _.$slides.first().outerHeight(true);\r\n\r\n if (_.options.infinite === true) {\r\n if (_.slideCount > _.options.slidesToShow) {\r\n _.slideOffset = (_.slideWidth * _.options.slidesToShow) * -1;\r\n verticalOffset = (verticalHeight * _.options.slidesToShow) * -1;\r\n }\r\n if (_.slideCount % _.options.slidesToScroll !== 0) {\r\n if (slideIndex + _.options.slidesToScroll > _.slideCount && _.slideCount > _.options.slidesToShow) {\r\n if (slideIndex > _.slideCount) {\r\n _.slideOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * _.slideWidth) * -1;\r\n verticalOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * verticalHeight) * -1;\r\n } else {\r\n _.slideOffset = ((_.slideCount % _.options.slidesToScroll) * _.slideWidth) * -1;\r\n verticalOffset = ((_.slideCount % _.options.slidesToScroll) * verticalHeight) * -1;\r\n }\r\n }\r\n }\r\n } else {\r\n if (slideIndex + _.options.slidesToShow > _.slideCount) {\r\n _.slideOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * _.slideWidth;\r\n verticalOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * verticalHeight;\r\n }\r\n }\r\n\r\n if (_.slideCount <= _.options.slidesToShow) {\r\n _.slideOffset = 0;\r\n verticalOffset = 0;\r\n }\r\n\r\n if (_.options.centerMode === true && _.options.infinite === true) {\r\n _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2) - _.slideWidth;\r\n } else if (_.options.centerMode === true) {\r\n _.slideOffset = 0;\r\n _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2);\r\n }\r\n\r\n if (_.options.vertical === false) {\r\n targetLeft = ((slideIndex * _.slideWidth) * -1) + _.slideOffset;\r\n } else {\r\n targetLeft = ((slideIndex * verticalHeight) * -1) + verticalOffset;\r\n }\r\n\r\n if (_.options.variableWidth === true) {\r\n\r\n if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {\r\n targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);\r\n } else {\r\n targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow);\r\n }\r\n\r\n if (_.options.rtl === true) {\r\n if (targetSlide[0]) {\r\n targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;\r\n } else {\r\n targetLeft = 0;\r\n }\r\n } else {\r\n targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;\r\n }\r\n\r\n if (_.options.centerMode === true) {\r\n if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {\r\n targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);\r\n } else {\r\n targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow + 1);\r\n }\r\n\r\n if (_.options.rtl === true) {\r\n if (targetSlide[0]) {\r\n targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;\r\n } else {\r\n targetLeft = 0;\r\n }\r\n } else {\r\n targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;\r\n }\r\n\r\n targetLeft += (_.$list.width() - targetSlide.outerWidth()) / 2;\r\n }\r\n }\r\n\r\n return targetLeft;\r\n\r\n };\r\n\r\n Slick.prototype.getOption = Slick.prototype.slickGetOption = function (option) {\r\n\r\n var _ = this;\r\n\r\n return _.options[option];\r\n\r\n };\r\n\r\n Slick.prototype.getNavigableIndexes = function () {\r\n\r\n var _ = this,\r\n breakPoint = 0,\r\n counter = 0,\r\n indexes = [],\r\n max;\r\n\r\n if (_.options.infinite === false) {\r\n max = _.slideCount;\r\n } else {\r\n breakPoint = _.options.slidesToScroll * -1;\r\n counter = _.options.slidesToScroll * -1;\r\n max = _.slideCount * 2;\r\n }\r\n\r\n while (breakPoint < max) {\r\n indexes.push(breakPoint);\r\n breakPoint = counter + _.options.slidesToScroll;\r\n counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;\r\n }\r\n\r\n return indexes;\r\n\r\n };\r\n\r\n Slick.prototype.getSlick = function () {\r\n\r\n return this;\r\n\r\n };\r\n\r\n Slick.prototype.getSlideCount = function () {\r\n\r\n var _ = this,\r\n slidesTraversed, swipedSlide, centerOffset;\r\n\r\n centerOffset = _.options.centerMode === true ? _.slideWidth * Math.floor(_.options.slidesToShow / 2) : 0;\r\n\r\n if (_.options.swipeToSlide === true) {\r\n _.$slideTrack.find('.slick-slide').each(function (index, slide) {\r\n if (slide.offsetLeft - centerOffset + ($(slide).outerWidth() / 2) > (_.swipeLeft * -1)) {\r\n swipedSlide = slide;\r\n return false;\r\n }\r\n });\r\n\r\n slidesTraversed = Math.abs($(swipedSlide).attr('data-slick-index') - _.currentSlide) || 1;\r\n\r\n return slidesTraversed;\r\n\r\n } else {\r\n return _.options.slidesToScroll;\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.goTo = Slick.prototype.slickGoTo = function (slide, dontAnimate) {\r\n\r\n var _ = this;\r\n\r\n _.changeSlide({\r\n data: {\r\n message: 'index',\r\n index: parseInt(slide)\r\n }\r\n }, dontAnimate);\r\n\r\n };\r\n\r\n Slick.prototype.init = function (creation) {\r\n\r\n var _ = this;\r\n\r\n if (!$(_.$slider).hasClass('slick-initialized')) {\r\n\r\n $(_.$slider).addClass('slick-initialized');\r\n\r\n _.buildRows();\r\n _.buildOut();\r\n _.setProps();\r\n _.startLoad();\r\n _.loadSlider();\r\n _.initializeEvents();\r\n _.updateArrows();\r\n _.updateDots();\r\n _.checkResponsive(true);\r\n _.focusHandler();\r\n\r\n }\r\n\r\n if (creation) {\r\n _.$slider.trigger('init', [_]);\r\n }\r\n\r\n if (_.options.accessibility === true) {\r\n _.initADA();\r\n }\r\n\r\n if (_.options.autoplay) {\r\n\r\n _.paused = false;\r\n _.autoPlay();\r\n\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.initADA = function () {\r\n var _ = this;\r\n _.$slides.add(_.$slideTrack.find('.slick-cloned')).attr({\r\n 'aria-hidden': 'true',\r\n 'tabindex': '-1'\r\n }).find('a, input, button, select').attr({\r\n 'tabindex': '-1'\r\n });\r\n\r\n _.$slideTrack.attr('role', 'listbox');\r\n\r\n _.$slides.not(_.$slideTrack.find('.slick-cloned')).each(function (i) {\r\n $(this).attr({\r\n 'role': 'option',\r\n 'aria-describedby': 'slick-slide' + _.instanceUid + i + ''\r\n });\r\n });\r\n\r\n if (_.$dots !== null) {\r\n _.$dots.attr('role', 'tablist').find('li').each(function (i) {\r\n $(this).attr({\r\n 'role': 'presentation',\r\n 'aria-selected': 'false',\r\n 'aria-controls': 'navigation' + _.instanceUid + i + '',\r\n 'id': 'slick-slide' + _.instanceUid + i + ''\r\n });\r\n })\r\n .first().attr('aria-selected', 'true').end()\r\n .find('button').attr('role', 'button').end()\r\n .closest('div').attr('role', 'toolbar');\r\n }\r\n _.activateADA();\r\n\r\n };\r\n\r\n Slick.prototype.initArrowEvents = function () {\r\n\r\n var _ = this;\r\n\r\n if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {\r\n _.$prevArrow\r\n .off('click.slick')\r\n .on('click.slick', {\r\n message: 'previous'\r\n }, _.changeSlide);\r\n _.$nextArrow\r\n .off('click.slick')\r\n .on('click.slick', {\r\n message: 'next'\r\n }, _.changeSlide);\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.initDotEvents = function () {\r\n\r\n var _ = this;\r\n\r\n if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {\r\n $('li', _.$dots).on('click.slick', {\r\n message: 'index'\r\n }, _.changeSlide);\r\n }\r\n\r\n if (_.options.dots === true && _.options.pauseOnDotsHover === true) {\r\n\r\n $('li', _.$dots)\r\n .on('mouseenter.slick', $.proxy(_.interrupt, _, true))\r\n .on('mouseleave.slick', $.proxy(_.interrupt, _, false));\r\n\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.initSlideEvents = function () {\r\n\r\n var _ = this;\r\n\r\n if (_.options.pauseOnHover) {\r\n\r\n _.$list.on('mouseenter.slick', $.proxy(_.interrupt, _, true));\r\n _.$list.on('mouseleave.slick', $.proxy(_.interrupt, _, false));\r\n\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.initializeEvents = function () {\r\n\r\n var _ = this;\r\n\r\n _.initArrowEvents();\r\n\r\n _.initDotEvents();\r\n _.initSlideEvents();\r\n\r\n _.$list.on('touchstart.slick mousedown.slick', {\r\n action: 'start'\r\n }, _.swipeHandler);\r\n _.$list.on('touchmove.slick mousemove.slick', {\r\n action: 'move'\r\n }, _.swipeHandler);\r\n _.$list.on('touchend.slick mouseup.slick', {\r\n action: 'end'\r\n }, _.swipeHandler);\r\n _.$list.on('touchcancel.slick mouseleave.slick', {\r\n action: 'end'\r\n }, _.swipeHandler);\r\n\r\n _.$list.on('click.slick', _.clickHandler);\r\n\r\n $(document).on(_.visibilityChange, $.proxy(_.visibility, _));\r\n\r\n if (_.options.accessibility === true) {\r\n _.$list.on('keydown.slick', _.keyHandler);\r\n }\r\n\r\n if (_.options.focusOnSelect === true) {\r\n $(_.$slideTrack).children().on('click.slick', _.selectHandler);\r\n }\r\n\r\n $(window).on('orientationchange.slick.slick-' + _.instanceUid, $.proxy(_.orientationChange, _));\r\n\r\n $(window).on('resize.slick.slick-' + _.instanceUid, $.proxy(_.resize, _));\r\n\r\n $('[draggable!=true]', _.$slideTrack).on('dragstart', _.preventDefault);\r\n\r\n $(window).on('load.slick.slick-' + _.instanceUid, _.setPosition);\r\n $(document).on('ready.slick.slick-' + _.instanceUid, _.setPosition);\r\n\r\n };\r\n\r\n Slick.prototype.initUI = function () {\r\n\r\n var _ = this;\r\n\r\n if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {\r\n\r\n _.$prevArrow.show();\r\n _.$nextArrow.show();\r\n\r\n }\r\n\r\n if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {\r\n\r\n _.$dots.show();\r\n\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.keyHandler = function (event) {\r\n\r\n var _ = this;\r\n //Dont slide if the cursor is inside the form fields and arrow keys are pressed\r\n if (!event.target.tagName.match('TEXTAREA|INPUT|SELECT')) {\r\n if (event.keyCode === 37 && _.options.accessibility === true) {\r\n _.changeSlide({\r\n data: {\r\n message: _.options.rtl === true ? 'next' : 'previous'\r\n }\r\n });\r\n } else if (event.keyCode === 39 && _.options.accessibility === true) {\r\n _.changeSlide({\r\n data: {\r\n message: _.options.rtl === true ? 'previous' : 'next'\r\n }\r\n });\r\n }\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.lazyLoad = function () {\r\n\r\n var _ = this,\r\n loadRange, cloneRange, rangeStart, rangeEnd;\r\n\r\n function loadImages(imagesScope) {\r\n\r\n $('img[data-lazy]', imagesScope).each(function () {\r\n\r\n var image = $(this),\r\n imageSource = $(this).attr('data-lazy'),\r\n imageToLoad = document.createElement('img');\r\n\r\n imageToLoad.onload = function () {\r\n\r\n image\r\n .animate({ opacity: 0 }, 100, function () {\r\n image\r\n .attr('src', imageSource)\r\n .animate({ opacity: 1 }, 200, function () {\r\n image\r\n .removeAttr('data-lazy')\r\n .removeClass('slick-loading');\r\n });\r\n _.$slider.trigger('lazyLoaded', [_, image, imageSource]);\r\n });\r\n\r\n };\r\n\r\n imageToLoad.onerror = function () {\r\n\r\n image\r\n .removeAttr('data-lazy')\r\n .removeClass('slick-loading')\r\n .addClass('slick-lazyload-error');\r\n\r\n _.$slider.trigger('lazyLoadError', [_, image, imageSource]);\r\n\r\n };\r\n\r\n imageToLoad.src = imageSource;\r\n\r\n });\r\n\r\n }\r\n\r\n if (_.options.centerMode === true) {\r\n if (_.options.infinite === true) {\r\n rangeStart = _.currentSlide + (_.options.slidesToShow / 2 + 1);\r\n rangeEnd = rangeStart + _.options.slidesToShow + 2;\r\n } else {\r\n rangeStart = Math.max(0, _.currentSlide - (_.options.slidesToShow / 2 + 1));\r\n rangeEnd = 2 + (_.options.slidesToShow / 2 + 1) + _.currentSlide;\r\n }\r\n } else {\r\n rangeStart = _.options.infinite ? _.options.slidesToShow + _.currentSlide : _.currentSlide;\r\n rangeEnd = Math.ceil(rangeStart + _.options.slidesToShow);\r\n if (_.options.fade === true) {\r\n if (rangeStart > 0) rangeStart--;\r\n if (rangeEnd <= _.slideCount) rangeEnd++;\r\n }\r\n }\r\n\r\n loadRange = _.$slider.find('.slick-slide').slice(rangeStart, rangeEnd);\r\n loadImages(loadRange);\r\n\r\n if (_.slideCount <= _.options.slidesToShow) {\r\n cloneRange = _.$slider.find('.slick-slide');\r\n loadImages(cloneRange);\r\n } else\r\n if (_.currentSlide >= _.slideCount - _.options.slidesToShow) {\r\n cloneRange = _.$slider.find('.slick-cloned').slice(0, _.options.slidesToShow);\r\n loadImages(cloneRange);\r\n } else if (_.currentSlide === 0) {\r\n cloneRange = _.$slider.find('.slick-cloned').slice(_.options.slidesToShow * -1);\r\n loadImages(cloneRange);\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.loadSlider = function () {\r\n\r\n var _ = this;\r\n\r\n _.setPosition();\r\n\r\n _.$slideTrack.css({\r\n opacity: 1\r\n });\r\n\r\n _.$slider.removeClass('slick-loading');\r\n\r\n _.initUI();\r\n\r\n if (_.options.lazyLoad === 'progressive') {\r\n _.progressiveLazyLoad();\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.next = Slick.prototype.slickNext = function () {\r\n\r\n var _ = this;\r\n\r\n _.changeSlide({\r\n data: {\r\n message: 'next'\r\n }\r\n });\r\n\r\n };\r\n\r\n Slick.prototype.orientationChange = function () {\r\n\r\n var _ = this;\r\n\r\n _.checkResponsive();\r\n _.setPosition();\r\n\r\n };\r\n\r\n Slick.prototype.pause = Slick.prototype.slickPause = function () {\r\n\r\n var _ = this;\r\n\r\n _.autoPlayClear();\r\n _.paused = true;\r\n\r\n };\r\n\r\n Slick.prototype.play = Slick.prototype.slickPlay = function () {\r\n\r\n var _ = this;\r\n\r\n _.autoPlay();\r\n _.options.autoplay = true;\r\n _.paused = false;\r\n _.focussed = false;\r\n _.interrupted = false;\r\n\r\n };\r\n\r\n Slick.prototype.postSlide = function (index) {\r\n\r\n var _ = this;\r\n\r\n if (!_.unslicked) {\r\n\r\n _.$slider.trigger('afterChange', [_, index]);\r\n\r\n _.animating = false;\r\n\r\n _.setPosition();\r\n\r\n _.swipeLeft = null;\r\n\r\n if (_.options.autoplay) {\r\n _.autoPlay();\r\n }\r\n\r\n if (_.options.accessibility === true) {\r\n _.initADA();\r\n }\r\n\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.prev = Slick.prototype.slickPrev = function () {\r\n\r\n var _ = this;\r\n\r\n _.changeSlide({\r\n data: {\r\n message: 'previous'\r\n }\r\n });\r\n\r\n };\r\n\r\n Slick.prototype.preventDefault = function (event) {\r\n\r\n event.preventDefault();\r\n\r\n };\r\n\r\n Slick.prototype.progressiveLazyLoad = function (tryCount) {\r\n\r\n tryCount = tryCount || 1;\r\n\r\n var _ = this,\r\n $imgsToLoad = $('img[data-lazy]', _.$slider),\r\n image,\r\n imageSource,\r\n imageToLoad;\r\n\r\n if ($imgsToLoad.length) {\r\n\r\n image = $imgsToLoad.first();\r\n imageSource = image.attr('data-lazy');\r\n imageToLoad = document.createElement('img');\r\n\r\n imageToLoad.onload = function () {\r\n\r\n image\r\n .attr('src', imageSource)\r\n .removeAttr('data-lazy')\r\n .removeClass('slick-loading');\r\n\r\n if (_.options.adaptiveHeight === true) {\r\n _.setPosition();\r\n }\r\n\r\n _.$slider.trigger('lazyLoaded', [_, image, imageSource]);\r\n _.progressiveLazyLoad();\r\n\r\n };\r\n\r\n imageToLoad.onerror = function () {\r\n\r\n if (tryCount < 3) {\r\n\r\n /**\r\n * try to load the image 3 times,\r\n * leave a slight delay so we don't get\r\n * servers blocking the request.\r\n */\r\n setTimeout(function () {\r\n _.progressiveLazyLoad(tryCount + 1);\r\n }, 500);\r\n\r\n } else {\r\n\r\n image\r\n .removeAttr('data-lazy')\r\n .removeClass('slick-loading')\r\n .addClass('slick-lazyload-error');\r\n\r\n _.$slider.trigger('lazyLoadError', [_, image, imageSource]);\r\n\r\n _.progressiveLazyLoad();\r\n\r\n }\r\n\r\n };\r\n\r\n imageToLoad.src = imageSource;\r\n\r\n } else {\r\n\r\n _.$slider.trigger('allImagesLoaded', [_]);\r\n\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.refresh = function (initializing) {\r\n\r\n var _ = this, currentSlide, lastVisibleIndex;\r\n\r\n lastVisibleIndex = _.slideCount - _.options.slidesToShow;\r\n\r\n // in non-infinite sliders, we don't want to go past the\r\n // last visible index.\r\n if (!_.options.infinite && (_.currentSlide > lastVisibleIndex)) {\r\n _.currentSlide = lastVisibleIndex;\r\n }\r\n\r\n // if less slides than to show, go to start.\r\n if (_.slideCount <= _.options.slidesToShow) {\r\n _.currentSlide = 0;\r\n\r\n }\r\n\r\n currentSlide = _.currentSlide;\r\n\r\n _.destroy(true);\r\n\r\n $.extend(_, _.initials, { currentSlide: currentSlide });\r\n\r\n _.init();\r\n\r\n if (!initializing) {\r\n\r\n _.changeSlide({\r\n data: {\r\n message: 'index',\r\n index: currentSlide\r\n }\r\n }, false);\r\n\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.registerBreakpoints = function () {\r\n\r\n var _ = this, breakpoint, currentBreakpoint, l,\r\n responsiveSettings = _.options.responsive || null;\r\n\r\n if ($.type(responsiveSettings) === 'array' && responsiveSettings.length) {\r\n\r\n _.respondTo = _.options.respondTo || 'window';\r\n\r\n for (breakpoint in responsiveSettings) {\r\n\r\n l = _.breakpoints.length - 1;\r\n currentBreakpoint = responsiveSettings[breakpoint].breakpoint;\r\n\r\n if (responsiveSettings.hasOwnProperty(breakpoint)) {\r\n\r\n // loop through the breakpoints and cut out any existing\r\n // ones with the same breakpoint number, we don't want dupes.\r\n while (l >= 0) {\r\n if (_.breakpoints[l] && _.breakpoints[l] === currentBreakpoint) {\r\n _.breakpoints.splice(l, 1);\r\n }\r\n l--;\r\n }\r\n\r\n _.breakpoints.push(currentBreakpoint);\r\n _.breakpointSettings[currentBreakpoint] = responsiveSettings[breakpoint].settings;\r\n\r\n }\r\n\r\n }\r\n\r\n _.breakpoints.sort(function (a, b) {\r\n return (_.options.mobileFirst) ? a - b : b - a;\r\n });\r\n\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.reinit = function () {\r\n\r\n var _ = this;\r\n\r\n _.$slides =\r\n _.$slideTrack\r\n .children(_.options.slide)\r\n .addClass('slick-slide');\r\n\r\n _.slideCount = _.$slides.length;\r\n\r\n if (_.currentSlide >= _.slideCount && _.currentSlide !== 0) {\r\n _.currentSlide = _.currentSlide - _.options.slidesToScroll;\r\n }\r\n\r\n if (_.slideCount <= _.options.slidesToShow) {\r\n _.currentSlide = 0;\r\n }\r\n\r\n _.registerBreakpoints();\r\n\r\n _.setProps();\r\n _.setupInfinite();\r\n _.buildArrows();\r\n _.updateArrows();\r\n _.initArrowEvents();\r\n _.buildDots();\r\n _.updateDots();\r\n _.initDotEvents();\r\n _.cleanUpSlideEvents();\r\n _.initSlideEvents();\r\n\r\n _.checkResponsive(false, true);\r\n\r\n if (_.options.focusOnSelect === true) {\r\n $(_.$slideTrack).children().on('click.slick', _.selectHandler);\r\n }\r\n\r\n _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);\r\n\r\n _.setPosition();\r\n _.focusHandler();\r\n\r\n _.paused = !_.options.autoplay;\r\n _.autoPlay();\r\n\r\n _.$slider.trigger('reInit', [_]);\r\n\r\n };\r\n\r\n Slick.prototype.resize = function () {\r\n\r\n var _ = this;\r\n\r\n if ($(window).width() !== _.windowWidth) {\r\n clearTimeout(_.windowDelay);\r\n _.windowDelay = window.setTimeout(function () {\r\n _.windowWidth = $(window).width();\r\n _.checkResponsive();\r\n if (!_.unslicked) { _.setPosition(); }\r\n }, 50);\r\n }\r\n };\r\n\r\n Slick.prototype.removeSlide = Slick.prototype.slickRemove = function (index, removeBefore, removeAll) {\r\n\r\n var _ = this;\r\n\r\n if (typeof (index) === 'boolean') {\r\n removeBefore = index;\r\n index = removeBefore === true ? 0 : _.slideCount - 1;\r\n } else {\r\n index = removeBefore === true ? --index : index;\r\n }\r\n\r\n if (_.slideCount < 1 || index < 0 || index > _.slideCount - 1) {\r\n return false;\r\n }\r\n\r\n _.unload();\r\n\r\n if (removeAll === true) {\r\n _.$slideTrack.children().remove();\r\n } else {\r\n _.$slideTrack.children(this.options.slide).eq(index).remove();\r\n }\r\n\r\n _.$slides = _.$slideTrack.children(this.options.slide);\r\n\r\n _.$slideTrack.children(this.options.slide).detach();\r\n\r\n _.$slideTrack.append(_.$slides);\r\n\r\n _.$slidesCache = _.$slides;\r\n\r\n _.reinit();\r\n\r\n };\r\n\r\n Slick.prototype.setCSS = function (position) {\r\n\r\n var _ = this,\r\n positionProps = {},\r\n x, y;\r\n\r\n if (_.options.rtl === true) {\r\n position = -position;\r\n }\r\n x = _.positionProp == 'left' ? Math.ceil(position) + 'px' : '0px';\r\n y = _.positionProp == 'top' ? Math.ceil(position) + 'px' : '0px';\r\n\r\n positionProps[_.positionProp] = position;\r\n\r\n if (_.transformsEnabled === false) {\r\n _.$slideTrack.css(positionProps);\r\n } else {\r\n positionProps = {};\r\n if (_.cssTransitions === false) {\r\n positionProps[_.animType] = 'translate(' + x + ', ' + y + ')';\r\n _.$slideTrack.css(positionProps);\r\n } else {\r\n positionProps[_.animType] = 'translate3d(' + x + ', ' + y + ', 0px)';\r\n _.$slideTrack.css(positionProps);\r\n }\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.setDimensions = function () {\r\n\r\n var _ = this;\r\n\r\n if (_.options.vertical === false) {\r\n if (_.options.centerMode === true) {\r\n _.$list.css({\r\n padding: ('0px ' + _.options.centerPadding)\r\n });\r\n }\r\n } else {\r\n _.$list.height(_.$slides.first().outerHeight(true) * _.options.slidesToShow);\r\n if (_.options.centerMode === true) {\r\n _.$list.css({\r\n padding: (_.options.centerPadding + ' 0px')\r\n });\r\n }\r\n }\r\n\r\n _.listWidth = _.$list.width();\r\n _.listHeight = _.$list.height();\r\n\r\n\r\n if (_.options.vertical === false && _.options.variableWidth === false) {\r\n _.slideWidth = Math.ceil(_.listWidth / _.options.slidesToShow);\r\n _.$slideTrack.width(Math.ceil((_.slideWidth * _.$slideTrack.children('.slick-slide').length)));\r\n\r\n } else if (_.options.variableWidth === true) {\r\n _.$slideTrack.width(5000 * _.slideCount);\r\n } else {\r\n _.slideWidth = Math.ceil(_.listWidth);\r\n _.$slideTrack.height(Math.ceil((_.$slides.first().outerHeight(true) * _.$slideTrack.children('.slick-slide').length)));\r\n }\r\n\r\n var offset = _.$slides.first().outerWidth(true) - _.$slides.first().width();\r\n if (_.options.variableWidth === false) _.$slideTrack.children('.slick-slide').width(_.slideWidth - offset);\r\n\r\n };\r\n\r\n Slick.prototype.setFade = function () {\r\n\r\n var _ = this,\r\n targetLeft;\r\n\r\n _.$slides.each(function (index, element) {\r\n targetLeft = (_.slideWidth * index) * -1;\r\n if (_.options.rtl === true) {\r\n $(element).css({\r\n position: 'relative',\r\n right: targetLeft,\r\n top: 0,\r\n zIndex: _.options.zIndex - 2,\r\n opacity: 0\r\n });\r\n } else {\r\n $(element).css({\r\n position: 'relative',\r\n left: targetLeft,\r\n top: 0,\r\n zIndex: _.options.zIndex - 2,\r\n opacity: 0\r\n });\r\n }\r\n });\r\n\r\n _.$slides.eq(_.currentSlide).css({\r\n zIndex: _.options.zIndex - 1,\r\n opacity: 1\r\n });\r\n\r\n };\r\n\r\n Slick.prototype.setHeight = function () {\r\n\r\n var _ = this;\r\n\r\n if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {\r\n var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);\r\n _.$list.css('height', targetHeight);\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.setOption =\r\n Slick.prototype.slickSetOption = function () {\r\n\r\n /**\r\n * accepts arguments in format of:\r\n *\r\n * - for changing a single option's value:\r\n * .slick(\"setOption\", option, value, refresh )\r\n *\r\n * - for changing a set of responsive options:\r\n * .slick(\"setOption\", 'responsive', [{}, ...], refresh )\r\n *\r\n * - for updating multiple values at once (not responsive)\r\n * .slick(\"setOption\", { 'option': value, ... }, refresh )\r\n */\r\n\r\n var _ = this, l, item, option, value, refresh = false, type;\r\n\r\n if ($.type(arguments[0]) === 'object') {\r\n\r\n option = arguments[0];\r\n refresh = arguments[1];\r\n type = 'multiple';\r\n\r\n } else if ($.type(arguments[0]) === 'string') {\r\n\r\n option = arguments[0];\r\n value = arguments[1];\r\n refresh = arguments[2];\r\n\r\n if (arguments[0] === 'responsive' && $.type(arguments[1]) === 'array') {\r\n\r\n type = 'responsive';\r\n\r\n } else if (typeof arguments[1] !== 'undefined') {\r\n\r\n type = 'single';\r\n\r\n }\r\n\r\n }\r\n\r\n if (type === 'single') {\r\n\r\n _.options[option] = value;\r\n\r\n\r\n } else if (type === 'multiple') {\r\n\r\n $.each(option, function (opt, val) {\r\n\r\n _.options[opt] = val;\r\n\r\n });\r\n\r\n\r\n } else if (type === 'responsive') {\r\n\r\n for (item in value) {\r\n\r\n if ($.type(_.options.responsive) !== 'array') {\r\n\r\n _.options.responsive = [value[item]];\r\n\r\n } else {\r\n\r\n l = _.options.responsive.length - 1;\r\n\r\n // loop through the responsive object and splice out duplicates.\r\n while (l >= 0) {\r\n\r\n if (_.options.responsive[l].breakpoint === value[item].breakpoint) {\r\n\r\n _.options.responsive.splice(l, 1);\r\n\r\n }\r\n\r\n l--;\r\n\r\n }\r\n\r\n _.options.responsive.push(value[item]);\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n if (refresh) {\r\n\r\n _.unload();\r\n _.reinit();\r\n\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.setPosition = function () {\r\n\r\n var _ = this;\r\n\r\n _.setDimensions();\r\n\r\n _.setHeight();\r\n\r\n if (_.options.fade === false) {\r\n _.setCSS(_.getLeft(_.currentSlide));\r\n } else {\r\n _.setFade();\r\n }\r\n\r\n _.$slider.trigger('setPosition', [_]);\r\n\r\n };\r\n\r\n Slick.prototype.setProps = function () {\r\n\r\n var _ = this,\r\n bodyStyle = document.body.style;\r\n\r\n _.positionProp = _.options.vertical === true ? 'top' : 'left';\r\n\r\n if (_.positionProp === 'top') {\r\n _.$slider.addClass('slick-vertical');\r\n } else {\r\n _.$slider.removeClass('slick-vertical');\r\n }\r\n\r\n if (bodyStyle.WebkitTransition !== undefined ||\r\n bodyStyle.MozTransition !== undefined ||\r\n bodyStyle.msTransition !== undefined) {\r\n if (_.options.useCSS === true) {\r\n _.cssTransitions = true;\r\n }\r\n }\r\n\r\n if (_.options.fade) {\r\n if (typeof _.options.zIndex === 'number') {\r\n if (_.options.zIndex < 3) {\r\n _.options.zIndex = 3;\r\n }\r\n } else {\r\n _.options.zIndex = _.defaults.zIndex;\r\n }\r\n }\r\n\r\n if (bodyStyle.OTransform !== undefined) {\r\n _.animType = 'OTransform';\r\n _.transformType = '-o-transform';\r\n _.transitionType = 'OTransition';\r\n if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;\r\n }\r\n if (bodyStyle.MozTransform !== undefined) {\r\n _.animType = 'MozTransform';\r\n _.transformType = '-moz-transform';\r\n _.transitionType = 'MozTransition';\r\n if (bodyStyle.perspectiveProperty === undefined && bodyStyle.MozPerspective === undefined) _.animType = false;\r\n }\r\n if (bodyStyle.webkitTransform !== undefined) {\r\n _.animType = 'webkitTransform';\r\n _.transformType = '-webkit-transform';\r\n _.transitionType = 'webkitTransition';\r\n if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;\r\n }\r\n if (bodyStyle.msTransform !== undefined) {\r\n _.animType = 'msTransform';\r\n _.transformType = '-ms-transform';\r\n _.transitionType = 'msTransition';\r\n if (bodyStyle.msTransform === undefined) _.animType = false;\r\n }\r\n if (bodyStyle.transform !== undefined && _.animType !== false) {\r\n _.animType = 'transform';\r\n _.transformType = 'transform';\r\n _.transitionType = 'transition';\r\n }\r\n _.transformsEnabled = _.options.useTransform && (_.animType !== null && _.animType !== false);\r\n };\r\n\r\n\r\n Slick.prototype.setSlideClasses = function (index) {\r\n\r\n var _ = this,\r\n centerOffset, allSlides, indexOffset, remainder;\r\n\r\n allSlides = _.$slider\r\n .find('.slick-slide')\r\n .removeClass('slick-active slick-center slick-current')\r\n .attr('aria-hidden', 'true');\r\n\r\n _.$slides\r\n .eq(index)\r\n .addClass('slick-current');\r\n\r\n if (_.options.centerMode === true) {\r\n\r\n centerOffset = Math.floor(_.options.slidesToShow / 2);\r\n\r\n if (_.options.infinite === true) {\r\n\r\n if (index >= centerOffset && index <= (_.slideCount - 1) - centerOffset) {\r\n\r\n _.$slides\r\n .slice(index - centerOffset, index + centerOffset + 1)\r\n .addClass('slick-active')\r\n .attr('aria-hidden', 'false');\r\n\r\n } else {\r\n\r\n indexOffset = _.options.slidesToShow + index;\r\n allSlides\r\n .slice(indexOffset - centerOffset + 1, indexOffset + centerOffset + 2)\r\n .addClass('slick-active')\r\n .attr('aria-hidden', 'false');\r\n\r\n }\r\n\r\n if (index === 0) {\r\n\r\n allSlides\r\n .eq(allSlides.length - 1 - _.options.slidesToShow)\r\n .addClass('slick-center');\r\n\r\n } else if (index === _.slideCount - 1) {\r\n\r\n allSlides\r\n .eq(_.options.slidesToShow)\r\n .addClass('slick-center');\r\n\r\n }\r\n\r\n }\r\n\r\n _.$slides\r\n .eq(index)\r\n .addClass('slick-center');\r\n\r\n } else {\r\n\r\n if (index >= 0 && index <= (_.slideCount - _.options.slidesToShow)) {\r\n\r\n _.$slides\r\n .slice(index, index + _.options.slidesToShow)\r\n .addClass('slick-active')\r\n .attr('aria-hidden', 'false');\r\n\r\n } else if (allSlides.length <= _.options.slidesToShow) {\r\n\r\n allSlides\r\n .addClass('slick-active')\r\n .attr('aria-hidden', 'false');\r\n\r\n } else {\r\n\r\n remainder = _.slideCount % _.options.slidesToShow;\r\n indexOffset = _.options.infinite === true ? _.options.slidesToShow + index : index;\r\n\r\n if (_.options.slidesToShow == _.options.slidesToScroll && (_.slideCount - index) < _.options.slidesToShow) {\r\n\r\n allSlides\r\n .slice(indexOffset - (_.options.slidesToShow - remainder), indexOffset + remainder)\r\n .addClass('slick-active')\r\n .attr('aria-hidden', 'false');\r\n\r\n } else {\r\n\r\n allSlides\r\n .slice(indexOffset, indexOffset + _.options.slidesToShow)\r\n .addClass('slick-active')\r\n .attr('aria-hidden', 'false');\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n if (_.options.lazyLoad === 'ondemand') {\r\n _.lazyLoad();\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.setupInfinite = function () {\r\n\r\n var _ = this,\r\n i, slideIndex, infiniteCount;\r\n\r\n if (_.options.fade === true) {\r\n _.options.centerMode = false;\r\n }\r\n\r\n if (_.options.infinite === true && _.options.fade === false) {\r\n\r\n slideIndex = null;\r\n\r\n if (_.slideCount > _.options.slidesToShow) {\r\n\r\n if (_.options.centerMode === true) {\r\n infiniteCount = _.options.slidesToShow + 1;\r\n } else {\r\n infiniteCount = _.options.slidesToShow;\r\n }\r\n\r\n for (i = _.slideCount; i > (_.slideCount -\r\n infiniteCount); i -= 1) {\r\n slideIndex = i - 1;\r\n $(_.$slides[slideIndex]).clone(true).attr('id', '')\r\n .attr('data-slick-index', slideIndex - _.slideCount)\r\n .prependTo(_.$slideTrack).addClass('slick-cloned');\r\n }\r\n for (i = 0; i < infiniteCount; i += 1) {\r\n slideIndex = i;\r\n $(_.$slides[slideIndex]).clone(true).attr('id', '')\r\n .attr('data-slick-index', slideIndex + _.slideCount)\r\n .appendTo(_.$slideTrack).addClass('slick-cloned');\r\n }\r\n _.$slideTrack.find('.slick-cloned').find('[id]').each(function () {\r\n $(this).attr('id', '');\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.interrupt = function (toggle) {\r\n\r\n var _ = this;\r\n\r\n if (!toggle) {\r\n _.autoPlay();\r\n }\r\n _.interrupted = toggle;\r\n\r\n };\r\n\r\n Slick.prototype.selectHandler = function (event) {\r\n\r\n var _ = this;\r\n\r\n var targetElement =\r\n $(event.target).is('.slick-slide') ?\r\n $(event.target) :\r\n $(event.target).parents('.slick-slide');\r\n\r\n var index = parseInt(targetElement.attr('data-slick-index'));\r\n\r\n if (!index) index = 0;\r\n\r\n if (_.slideCount <= _.options.slidesToShow) {\r\n\r\n _.setSlideClasses(index);\r\n _.asNavFor(index);\r\n return;\r\n\r\n }\r\n\r\n _.slideHandler(index);\r\n\r\n };\r\n\r\n Slick.prototype.slideHandler = function (index, sync, dontAnimate) {\r\n\r\n var targetSlide, animSlide, oldSlide, slideLeft, targetLeft = null,\r\n _ = this, navTarget;\r\n\r\n sync = sync || false;\r\n\r\n if (_.animating === true && _.options.waitForAnimate === true) {\r\n return;\r\n }\r\n\r\n if (_.options.fade === true && _.currentSlide === index) {\r\n return;\r\n }\r\n\r\n if (_.slideCount <= _.options.slidesToShow) {\r\n return;\r\n }\r\n\r\n if (sync === false) {\r\n _.asNavFor(index);\r\n }\r\n\r\n targetSlide = index;\r\n targetLeft = _.getLeft(targetSlide);\r\n slideLeft = _.getLeft(_.currentSlide);\r\n\r\n _.currentLeft = _.swipeLeft === null ? slideLeft : _.swipeLeft;\r\n\r\n if (_.options.infinite === false && _.options.centerMode === false && (index < 0 || index > _.getDotCount() * _.options.slidesToScroll)) {\r\n if (_.options.fade === false) {\r\n targetSlide = _.currentSlide;\r\n if (dontAnimate !== true) {\r\n _.animateSlide(slideLeft, function () {\r\n _.postSlide(targetSlide);\r\n });\r\n } else {\r\n _.postSlide(targetSlide);\r\n }\r\n }\r\n return;\r\n } else if (_.options.infinite === false && _.options.centerMode === true && (index < 0 || index > (_.slideCount - _.options.slidesToScroll))) {\r\n if (_.options.fade === false) {\r\n targetSlide = _.currentSlide;\r\n if (dontAnimate !== true) {\r\n _.animateSlide(slideLeft, function () {\r\n _.postSlide(targetSlide);\r\n });\r\n } else {\r\n _.postSlide(targetSlide);\r\n }\r\n }\r\n return;\r\n }\r\n\r\n if (_.options.autoplay) {\r\n clearInterval(_.autoPlayTimer);\r\n }\r\n\r\n if (targetSlide < 0) {\r\n if (_.slideCount % _.options.slidesToScroll !== 0) {\r\n animSlide = _.slideCount - (_.slideCount % _.options.slidesToScroll);\r\n } else {\r\n animSlide = _.slideCount + targetSlide;\r\n }\r\n } else if (targetSlide >= _.slideCount) {\r\n if (_.slideCount % _.options.slidesToScroll !== 0) {\r\n animSlide = 0;\r\n } else {\r\n animSlide = targetSlide - _.slideCount;\r\n }\r\n } else {\r\n animSlide = targetSlide;\r\n }\r\n\r\n _.animating = true;\r\n\r\n _.$slider.trigger('beforeChange', [_, _.currentSlide, animSlide]);\r\n\r\n oldSlide = _.currentSlide;\r\n _.currentSlide = animSlide;\r\n\r\n _.setSlideClasses(_.currentSlide);\r\n\r\n if (_.options.asNavFor) {\r\n\r\n navTarget = _.getNavTarget();\r\n navTarget = navTarget.slick('getSlick');\r\n\r\n if (navTarget.slideCount <= navTarget.options.slidesToShow) {\r\n navTarget.setSlideClasses(_.currentSlide);\r\n }\r\n\r\n }\r\n\r\n _.updateDots();\r\n _.updateArrows();\r\n\r\n if (_.options.fade === true) {\r\n if (dontAnimate !== true) {\r\n\r\n _.fadeSlideOut(oldSlide);\r\n\r\n _.fadeSlide(animSlide, function () {\r\n _.postSlide(animSlide);\r\n });\r\n\r\n } else {\r\n _.postSlide(animSlide);\r\n }\r\n _.animateHeight();\r\n return;\r\n }\r\n\r\n if (dontAnimate !== true) {\r\n _.animateSlide(targetLeft, function () {\r\n _.postSlide(animSlide);\r\n });\r\n } else {\r\n _.postSlide(animSlide);\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.startLoad = function () {\r\n\r\n var _ = this;\r\n\r\n if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {\r\n\r\n _.$prevArrow.hide();\r\n _.$nextArrow.hide();\r\n\r\n }\r\n\r\n if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {\r\n\r\n _.$dots.hide();\r\n\r\n }\r\n\r\n _.$slider.addClass('slick-loading');\r\n\r\n };\r\n\r\n Slick.prototype.swipeDirection = function () {\r\n\r\n var xDist, yDist, r, swipeAngle, _ = this;\r\n\r\n xDist = _.touchObject.startX - _.touchObject.curX;\r\n yDist = _.touchObject.startY - _.touchObject.curY;\r\n r = Math.atan2(yDist, xDist);\r\n\r\n swipeAngle = Math.round(r * 180 / Math.PI);\r\n if (swipeAngle < 0) {\r\n swipeAngle = 360 - Math.abs(swipeAngle);\r\n }\r\n\r\n if ((swipeAngle <= 45) && (swipeAngle >= 0)) {\r\n return (_.options.rtl === false ? 'left' : 'right');\r\n }\r\n if ((swipeAngle <= 360) && (swipeAngle >= 315)) {\r\n return (_.options.rtl === false ? 'left' : 'right');\r\n }\r\n if ((swipeAngle >= 135) && (swipeAngle <= 225)) {\r\n return (_.options.rtl === false ? 'right' : 'left');\r\n }\r\n if (_.options.verticalSwiping === true) {\r\n if ((swipeAngle >= 35) && (swipeAngle <= 135)) {\r\n return 'down';\r\n } else {\r\n return 'up';\r\n }\r\n }\r\n\r\n return 'vertical';\r\n\r\n };\r\n\r\n Slick.prototype.swipeEnd = function (event) {\r\n\r\n var _ = this,\r\n slideCount,\r\n direction;\r\n\r\n _.dragging = false;\r\n _.interrupted = false;\r\n _.shouldClick = (_.touchObject.swipeLength > 10) ? false : true;\r\n\r\n if (_.touchObject.curX === undefined) {\r\n return false;\r\n }\r\n\r\n if (_.touchObject.edgeHit === true) {\r\n _.$slider.trigger('edge', [_, _.swipeDirection()]);\r\n }\r\n\r\n if (_.touchObject.swipeLength >= _.touchObject.minSwipe) {\r\n\r\n direction = _.swipeDirection();\r\n\r\n switch (direction) {\r\n\r\n case 'left':\r\n case 'down':\r\n\r\n slideCount =\r\n _.options.swipeToSlide ?\r\n _.checkNavigable(_.currentSlide + _.getSlideCount()) :\r\n _.currentSlide + _.getSlideCount();\r\n\r\n _.currentDirection = 0;\r\n\r\n break;\r\n\r\n case 'right':\r\n case 'up':\r\n\r\n slideCount =\r\n _.options.swipeToSlide ?\r\n _.checkNavigable(_.currentSlide - _.getSlideCount()) :\r\n _.currentSlide - _.getSlideCount();\r\n\r\n _.currentDirection = 1;\r\n\r\n break;\r\n\r\n default:\r\n\r\n\r\n }\r\n\r\n if (direction != 'vertical') {\r\n\r\n _.slideHandler(slideCount);\r\n _.touchObject = {};\r\n _.$slider.trigger('swipe', [_, direction]);\r\n\r\n }\r\n\r\n } else {\r\n\r\n if (_.touchObject.startX !== _.touchObject.curX) {\r\n\r\n _.slideHandler(_.currentSlide);\r\n _.touchObject = {};\r\n\r\n }\r\n\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.swipeHandler = function (event) {\r\n\r\n var _ = this;\r\n\r\n if ((_.options.swipe === false) || ('ontouchend' in document && _.options.swipe === false)) {\r\n return;\r\n } else if (_.options.draggable === false && event.type.indexOf('mouse') !== -1) {\r\n return;\r\n }\r\n\r\n _.touchObject.fingerCount = event.originalEvent && event.originalEvent.touches !== undefined ?\r\n event.originalEvent.touches.length : 1;\r\n\r\n _.touchObject.minSwipe = _.listWidth / _.options\r\n .touchThreshold;\r\n\r\n if (_.options.verticalSwiping === true) {\r\n _.touchObject.minSwipe = _.listHeight / _.options\r\n .touchThreshold;\r\n }\r\n\r\n switch (event.data.action) {\r\n\r\n case 'start':\r\n _.swipeStart(event);\r\n break;\r\n\r\n case 'move':\r\n _.swipeMove(event);\r\n break;\r\n\r\n case 'end':\r\n _.swipeEnd(event);\r\n break;\r\n\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.swipeMove = function (event) {\r\n\r\n var _ = this,\r\n edgeWasHit = false,\r\n curLeft, swipeDirection, swipeLength, positionOffset, touches;\r\n\r\n touches = event.originalEvent !== undefined ? event.originalEvent.touches : null;\r\n\r\n if (!_.dragging || touches && touches.length !== 1) {\r\n return false;\r\n }\r\n\r\n curLeft = _.getLeft(_.currentSlide);\r\n\r\n _.touchObject.curX = touches !== undefined ? touches[0].pageX : event.clientX;\r\n _.touchObject.curY = touches !== undefined ? touches[0].pageY : event.clientY;\r\n\r\n _.touchObject.swipeLength = Math.round(Math.sqrt(\r\n Math.pow(_.touchObject.curX - _.touchObject.startX, 2)));\r\n\r\n if (_.options.verticalSwiping === true) {\r\n _.touchObject.swipeLength = Math.round(Math.sqrt(\r\n Math.pow(_.touchObject.curY - _.touchObject.startY, 2)));\r\n }\r\n\r\n swipeDirection = _.swipeDirection();\r\n\r\n if (swipeDirection === 'vertical') {\r\n return;\r\n }\r\n\r\n if (event.originalEvent !== undefined && _.touchObject.swipeLength > 4) {\r\n event.preventDefault();\r\n }\r\n\r\n positionOffset = (_.options.rtl === false ? 1 : -1) * (_.touchObject.curX > _.touchObject.startX ? 1 : -1);\r\n if (_.options.verticalSwiping === true) {\r\n positionOffset = _.touchObject.curY > _.touchObject.startY ? 1 : -1;\r\n }\r\n\r\n\r\n swipeLength = _.touchObject.swipeLength;\r\n\r\n _.touchObject.edgeHit = false;\r\n\r\n if (_.options.infinite === false) {\r\n if ((_.currentSlide === 0 && swipeDirection === 'right') || (_.currentSlide >= _.getDotCount() && swipeDirection === 'left')) {\r\n swipeLength = _.touchObject.swipeLength * _.options.edgeFriction;\r\n _.touchObject.edgeHit = true;\r\n }\r\n }\r\n\r\n if (_.options.vertical === false) {\r\n _.swipeLeft = curLeft + swipeLength * positionOffset;\r\n } else {\r\n _.swipeLeft = curLeft + (swipeLength * (_.$list.height() / _.listWidth)) * positionOffset;\r\n }\r\n if (_.options.verticalSwiping === true) {\r\n _.swipeLeft = curLeft + swipeLength * positionOffset;\r\n }\r\n\r\n if (_.options.fade === true || _.options.touchMove === false) {\r\n return false;\r\n }\r\n\r\n if (_.animating === true) {\r\n _.swipeLeft = null;\r\n return false;\r\n }\r\n\r\n _.setCSS(_.swipeLeft);\r\n\r\n };\r\n\r\n Slick.prototype.swipeStart = function (event) {\r\n\r\n var _ = this,\r\n touches;\r\n\r\n _.interrupted = true;\r\n\r\n if (_.touchObject.fingerCount !== 1 || _.slideCount <= _.options.slidesToShow) {\r\n _.touchObject = {};\r\n return false;\r\n }\r\n\r\n if (event.originalEvent !== undefined && event.originalEvent.touches !== undefined) {\r\n touches = event.originalEvent.touches[0];\r\n }\r\n\r\n _.touchObject.startX = _.touchObject.curX = touches !== undefined ? touches.pageX : event.clientX;\r\n _.touchObject.startY = _.touchObject.curY = touches !== undefined ? touches.pageY : event.clientY;\r\n\r\n _.dragging = true;\r\n\r\n };\r\n\r\n Slick.prototype.unfilterSlides = Slick.prototype.slickUnfilter = function () {\r\n\r\n var _ = this;\r\n\r\n if (_.$slidesCache !== null) {\r\n\r\n _.unload();\r\n\r\n _.$slideTrack.children(this.options.slide).detach();\r\n\r\n _.$slidesCache.appendTo(_.$slideTrack);\r\n\r\n _.reinit();\r\n\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.unload = function () {\r\n\r\n var _ = this;\r\n\r\n $('.slick-cloned', _.$slider).remove();\r\n\r\n if (_.$dots) {\r\n _.$dots.remove();\r\n }\r\n\r\n if (_.$prevArrow && _.htmlExpr.test(_.options.prevArrow)) {\r\n _.$prevArrow.remove();\r\n }\r\n\r\n if (_.$nextArrow && _.htmlExpr.test(_.options.nextArrow)) {\r\n _.$nextArrow.remove();\r\n }\r\n\r\n _.$slides\r\n .removeClass('slick-slide slick-active slick-visible slick-current')\r\n .attr('aria-hidden', 'true')\r\n .css('width', '');\r\n\r\n };\r\n\r\n Slick.prototype.unslick = function (fromBreakpoint) {\r\n\r\n var _ = this;\r\n _.$slider.trigger('unslick', [_, fromBreakpoint]);\r\n _.destroy();\r\n\r\n };\r\n\r\n Slick.prototype.updateArrows = function () {\r\n\r\n var _ = this,\r\n centerOffset;\r\n\r\n centerOffset = Math.floor(_.options.slidesToShow / 2);\r\n\r\n if (_.options.arrows === true &&\r\n _.slideCount > _.options.slidesToShow &&\r\n !_.options.infinite) {\r\n\r\n _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');\r\n _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');\r\n\r\n if (_.currentSlide === 0) {\r\n\r\n _.$prevArrow.addClass('slick-disabled').attr('aria-disabled', 'true');\r\n _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');\r\n\r\n } else if (_.currentSlide >= _.slideCount - _.options.slidesToShow && _.options.centerMode === false) {\r\n\r\n _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');\r\n _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');\r\n\r\n } else if (_.currentSlide >= _.slideCount - 1 && _.options.centerMode === true) {\r\n\r\n _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');\r\n _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');\r\n\r\n }\r\n\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.updateDots = function () {\r\n\r\n var _ = this;\r\n\r\n if (_.$dots !== null) {\r\n\r\n _.$dots\r\n .find('li')\r\n .removeClass('slick-active')\r\n .attr('aria-hidden', 'true');\r\n\r\n _.$dots\r\n .find('li')\r\n .eq(Math.floor(_.currentSlide / _.options.slidesToScroll))\r\n .addClass('slick-active')\r\n .attr('aria-hidden', 'false');\r\n\r\n }\r\n\r\n };\r\n\r\n Slick.prototype.visibility = function () {\r\n\r\n var _ = this;\r\n\r\n if (_.options.autoplay) {\r\n\r\n if (document[_.hidden]) {\r\n\r\n _.interrupted = true;\r\n\r\n } else {\r\n\r\n _.interrupted = false;\r\n\r\n }\r\n\r\n }\r\n\r\n };\r\n\r\n $.fn.slick = function () {\r\n var _ = this,\r\n opt = arguments[0],\r\n args = Array.prototype.slice.call(arguments, 1),\r\n l = _.length,\r\n i,\r\n ret;\r\n for (i = 0; i < l; i++) {\r\n if (typeof opt == 'object' || typeof opt == 'undefined')\r\n _[i].slick = new Slick(_[i], opt);\r\n else\r\n ret = _[i].slick[opt].apply(_[i].slick, args);\r\n if (typeof ret != 'undefined') return ret;\r\n }\r\n return _;\r\n };\r\n\r\n}));\n/*!\nWaypoints - 4.0.0\nCopyright © 2011-2015 Caleb Troughton\nLicensed under the MIT license.\nhttps://github.com/imakewebthings/waypoints/blob/master/licenses.txt\n*/\n(function() {\n 'use strict'\n\n var keyCounter = 0\n var allWaypoints = {}\n\n /* http://imakewebthings.com/waypoints/api/waypoint */\n function Waypoint(options) {\n if (!options) {\n throw new Error('No options passed to Waypoint constructor')\n }\n if (!options.element) {\n throw new Error('No element option passed to Waypoint constructor')\n }\n if (!options.handler) {\n throw new Error('No handler option passed to Waypoint constructor')\n }\n\n this.key = 'waypoint-' + keyCounter\n this.options = Waypoint.Adapter.extend({}, Waypoint.defaults, options)\n this.element = this.options.element\n this.adapter = new Waypoint.Adapter(this.element)\n this.callback = options.handler\n this.axis = this.options.horizontal ? 'horizontal' : 'vertical'\n this.enabled = this.options.enabled\n this.triggerPoint = null\n this.group = Waypoint.Group.findOrCreate({\n name: this.options.group,\n axis: this.axis\n })\n this.context = Waypoint.Context.findOrCreateByElement(this.options.context)\n\n if (Waypoint.offsetAliases[this.options.offset]) {\n this.options.offset = Waypoint.offsetAliases[this.options.offset]\n }\n this.group.add(this)\n this.context.add(this)\n allWaypoints[this.key] = this\n keyCounter += 1\n }\n\n /* Private */\n Waypoint.prototype.queueTrigger = function(direction) {\n this.group.queueTrigger(this, direction)\n }\n\n /* Private */\n Waypoint.prototype.trigger = function(args) {\n if (!this.enabled) {\n return\n }\n if (this.callback) {\n this.callback.apply(this, args)\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/destroy */\n Waypoint.prototype.destroy = function() {\n this.context.remove(this)\n this.group.remove(this)\n delete allWaypoints[this.key]\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/disable */\n Waypoint.prototype.disable = function() {\n this.enabled = false\n return this\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/enable */\n Waypoint.prototype.enable = function() {\n this.context.refresh()\n this.enabled = true\n return this\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/next */\n Waypoint.prototype.next = function() {\n return this.group.next(this)\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/previous */\n Waypoint.prototype.previous = function() {\n return this.group.previous(this)\n }\n\n /* Private */\n Waypoint.invokeAll = function(method) {\n var allWaypointsArray = []\n for (var waypointKey in allWaypoints) {\n allWaypointsArray.push(allWaypoints[waypointKey])\n }\n for (var i = 0, end = allWaypointsArray.length; i < end; i++) {\n allWaypointsArray[i][method]()\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/destroy-all */\n Waypoint.destroyAll = function() {\n Waypoint.invokeAll('destroy')\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/disable-all */\n Waypoint.disableAll = function() {\n Waypoint.invokeAll('disable')\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/enable-all */\n Waypoint.enableAll = function() {\n Waypoint.invokeAll('enable')\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/refresh-all */\n Waypoint.refreshAll = function() {\n Waypoint.Context.refreshAll()\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/viewport-height */\n Waypoint.viewportHeight = function() {\n return window.innerHeight || document.documentElement.clientHeight\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/viewport-width */\n Waypoint.viewportWidth = function() {\n return document.documentElement.clientWidth\n }\n\n Waypoint.adapters = []\n\n Waypoint.defaults = {\n context: window,\n continuous: true,\n enabled: true,\n group: 'default',\n horizontal: false,\n offset: 0\n }\n\n Waypoint.offsetAliases = {\n 'bottom-in-view': function() {\n return this.context.innerHeight() - this.adapter.outerHeight()\n },\n 'right-in-view': function() {\n return this.context.innerWidth() - this.adapter.outerWidth()\n }\n }\n\n window.Waypoint = Waypoint\n}())\n;(function() {\n 'use strict'\n\n function requestAnimationFrameShim(callback) {\n window.setTimeout(callback, 1000 / 60)\n }\n\n var keyCounter = 0\n var contexts = {}\n var Waypoint = window.Waypoint\n var oldWindowLoad = window.onload\n\n /* http://imakewebthings.com/waypoints/api/context */\n function Context(element) {\n this.element = element\n this.Adapter = Waypoint.Adapter\n this.adapter = new this.Adapter(element)\n this.key = 'waypoint-context-' + keyCounter\n this.didScroll = false\n this.didResize = false\n this.oldScroll = {\n x: this.adapter.scrollLeft(),\n y: this.adapter.scrollTop()\n }\n this.waypoints = {\n vertical: {},\n horizontal: {}\n }\n\n element.waypointContextKey = this.key\n contexts[element.waypointContextKey] = this\n keyCounter += 1\n\n this.createThrottledScrollHandler()\n this.createThrottledResizeHandler()\n }\n\n /* Private */\n Context.prototype.add = function(waypoint) {\n var axis = waypoint.options.horizontal ? 'horizontal' : 'vertical'\n this.waypoints[axis][waypoint.key] = waypoint\n this.refresh()\n }\n\n /* Private */\n Context.prototype.checkEmpty = function() {\n var horizontalEmpty = this.Adapter.isEmptyObject(this.waypoints.horizontal)\n var verticalEmpty = this.Adapter.isEmptyObject(this.waypoints.vertical)\n if (horizontalEmpty && verticalEmpty) {\n this.adapter.off('.waypoints')\n delete contexts[this.key]\n }\n }\n\n /* Private */\n Context.prototype.createThrottledResizeHandler = function() {\n var self = this\n\n function resizeHandler() {\n self.handleResize()\n self.didResize = false\n }\n\n this.adapter.on('resize.waypoints', function() {\n if (!self.didResize) {\n self.didResize = true\n Waypoint.requestAnimationFrame(resizeHandler)\n }\n })\n }\n\n /* Private */\n Context.prototype.createThrottledScrollHandler = function() {\n var self = this\n function scrollHandler() {\n self.handleScroll()\n self.didScroll = false\n }\n\n this.adapter.on('scroll.waypoints', function() {\n if (!self.didScroll || Waypoint.isTouch) {\n self.didScroll = true\n Waypoint.requestAnimationFrame(scrollHandler)\n }\n })\n }\n\n /* Private */\n Context.prototype.handleResize = function() {\n Waypoint.Context.refreshAll()\n }\n\n /* Private */\n Context.prototype.handleScroll = function() {\n var triggeredGroups = {}\n var axes = {\n horizontal: {\n newScroll: this.adapter.scrollLeft(),\n oldScroll: this.oldScroll.x,\n forward: 'right',\n backward: 'left'\n },\n vertical: {\n newScroll: this.adapter.scrollTop(),\n oldScroll: this.oldScroll.y,\n forward: 'down',\n backward: 'up'\n }\n }\n\n for (var axisKey in axes) {\n var axis = axes[axisKey]\n var isForward = axis.newScroll > axis.oldScroll\n var direction = isForward ? axis.forward : axis.backward\n\n for (var waypointKey in this.waypoints[axisKey]) {\n var waypoint = this.waypoints[axisKey][waypointKey]\n var wasBeforeTriggerPoint = axis.oldScroll < waypoint.triggerPoint\n var nowAfterTriggerPoint = axis.newScroll >= waypoint.triggerPoint\n var crossedForward = wasBeforeTriggerPoint && nowAfterTriggerPoint\n var crossedBackward = !wasBeforeTriggerPoint && !nowAfterTriggerPoint\n if (crossedForward || crossedBackward) {\n waypoint.queueTrigger(direction)\n triggeredGroups[waypoint.group.id] = waypoint.group\n }\n }\n }\n\n for (var groupKey in triggeredGroups) {\n triggeredGroups[groupKey].flushTriggers()\n }\n\n this.oldScroll = {\n x: axes.horizontal.newScroll,\n y: axes.vertical.newScroll\n }\n }\n\n /* Private */\n Context.prototype.innerHeight = function() {\n /*eslint-disable eqeqeq */\n if (this.element == this.element.window) {\n return Waypoint.viewportHeight()\n }\n /*eslint-enable eqeqeq */\n return this.adapter.innerHeight()\n }\n\n /* Private */\n Context.prototype.remove = function(waypoint) {\n delete this.waypoints[waypoint.axis][waypoint.key]\n this.checkEmpty()\n }\n\n /* Private */\n Context.prototype.innerWidth = function() {\n /*eslint-disable eqeqeq */\n if (this.element == this.element.window) {\n return Waypoint.viewportWidth()\n }\n /*eslint-enable eqeqeq */\n return this.adapter.innerWidth()\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/context-destroy */\n Context.prototype.destroy = function() {\n var allWaypoints = []\n for (var axis in this.waypoints) {\n for (var waypointKey in this.waypoints[axis]) {\n allWaypoints.push(this.waypoints[axis][waypointKey])\n }\n }\n for (var i = 0, end = allWaypoints.length; i < end; i++) {\n allWaypoints[i].destroy()\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/context-refresh */\n Context.prototype.refresh = function() {\n /*eslint-disable eqeqeq */\n var isWindow = this.element == this.element.window\n /*eslint-enable eqeqeq */\n var contextOffset = isWindow ? undefined : this.adapter.offset()\n var triggeredGroups = {}\n var axes\n\n this.handleScroll()\n axes = {\n horizontal: {\n contextOffset: isWindow ? 0 : contextOffset.left,\n contextScroll: isWindow ? 0 : this.oldScroll.x,\n contextDimension: this.innerWidth(),\n oldScroll: this.oldScroll.x,\n forward: 'right',\n backward: 'left',\n offsetProp: 'left'\n },\n vertical: {\n contextOffset: isWindow ? 0 : contextOffset.top,\n contextScroll: isWindow ? 0 : this.oldScroll.y,\n contextDimension: this.innerHeight(),\n oldScroll: this.oldScroll.y,\n forward: 'down',\n backward: 'up',\n offsetProp: 'top'\n }\n }\n\n for (var axisKey in axes) {\n var axis = axes[axisKey]\n for (var waypointKey in this.waypoints[axisKey]) {\n var waypoint = this.waypoints[axisKey][waypointKey]\n var adjustment = waypoint.options.offset\n var oldTriggerPoint = waypoint.triggerPoint\n var elementOffset = 0\n var freshWaypoint = oldTriggerPoint == null\n var contextModifier, wasBeforeScroll, nowAfterScroll\n var triggeredBackward, triggeredForward\n\n if (waypoint.element !== waypoint.element.window) {\n elementOffset = waypoint.adapter.offset()[axis.offsetProp]\n }\n\n if (typeof adjustment === 'function') {\n adjustment = adjustment.apply(waypoint)\n }\n else if (typeof adjustment === 'string') {\n adjustment = parseFloat(adjustment)\n if (waypoint.options.offset.indexOf('%') > - 1) {\n adjustment = Math.ceil(axis.contextDimension * adjustment / 100)\n }\n }\n\n contextModifier = axis.contextScroll - axis.contextOffset\n waypoint.triggerPoint = elementOffset + contextModifier - adjustment\n wasBeforeScroll = oldTriggerPoint < axis.oldScroll\n nowAfterScroll = waypoint.triggerPoint >= axis.oldScroll\n triggeredBackward = wasBeforeScroll && nowAfterScroll\n triggeredForward = !wasBeforeScroll && !nowAfterScroll\n\n if (!freshWaypoint && triggeredBackward) {\n waypoint.queueTrigger(axis.backward)\n triggeredGroups[waypoint.group.id] = waypoint.group\n }\n else if (!freshWaypoint && triggeredForward) {\n waypoint.queueTrigger(axis.forward)\n triggeredGroups[waypoint.group.id] = waypoint.group\n }\n else if (freshWaypoint && axis.oldScroll >= waypoint.triggerPoint) {\n waypoint.queueTrigger(axis.forward)\n triggeredGroups[waypoint.group.id] = waypoint.group\n }\n }\n }\n\n Waypoint.requestAnimationFrame(function() {\n for (var groupKey in triggeredGroups) {\n triggeredGroups[groupKey].flushTriggers()\n }\n })\n\n return this\n }\n\n /* Private */\n Context.findOrCreateByElement = function(element) {\n return Context.findByElement(element) || new Context(element)\n }\n\n /* Private */\n Context.refreshAll = function() {\n for (var contextId in contexts) {\n contexts[contextId].refresh()\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/context-find-by-element */\n Context.findByElement = function(element) {\n return contexts[element.waypointContextKey]\n }\n\n window.onload = function() {\n if (oldWindowLoad) {\n oldWindowLoad()\n }\n Context.refreshAll()\n }\n\n Waypoint.requestAnimationFrame = function(callback) {\n var requestFn = window.requestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n requestAnimationFrameShim\n requestFn.call(window, callback)\n }\n Waypoint.Context = Context\n}())\n;(function() {\n 'use strict'\n\n function byTriggerPoint(a, b) {\n return a.triggerPoint - b.triggerPoint\n }\n\n function byReverseTriggerPoint(a, b) {\n return b.triggerPoint - a.triggerPoint\n }\n\n var groups = {\n vertical: {},\n horizontal: {}\n }\n var Waypoint = window.Waypoint\n\n /* http://imakewebthings.com/waypoints/api/group */\n function Group(options) {\n this.name = options.name\n this.axis = options.axis\n this.id = this.name + '-' + this.axis\n this.waypoints = []\n this.clearTriggerQueues()\n groups[this.axis][this.name] = this\n }\n\n /* Private */\n Group.prototype.add = function(waypoint) {\n this.waypoints.push(waypoint)\n }\n\n /* Private */\n Group.prototype.clearTriggerQueues = function() {\n this.triggerQueues = {\n up: [],\n down: [],\n left: [],\n right: []\n }\n }\n\n /* Private */\n Group.prototype.flushTriggers = function() {\n for (var direction in this.triggerQueues) {\n var waypoints = this.triggerQueues[direction]\n var reverse = direction === 'up' || direction === 'left'\n waypoints.sort(reverse ? byReverseTriggerPoint : byTriggerPoint)\n for (var i = 0, end = waypoints.length; i < end; i += 1) {\n var waypoint = waypoints[i]\n if (waypoint.options.continuous || i === waypoints.length - 1) {\n waypoint.trigger([direction])\n }\n }\n }\n this.clearTriggerQueues()\n }\n\n /* Private */\n Group.prototype.next = function(waypoint) {\n this.waypoints.sort(byTriggerPoint)\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\n var isLast = index === this.waypoints.length - 1\n return isLast ? null : this.waypoints[index + 1]\n }\n\n /* Private */\n Group.prototype.previous = function(waypoint) {\n this.waypoints.sort(byTriggerPoint)\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\n return index ? this.waypoints[index - 1] : null\n }\n\n /* Private */\n Group.prototype.queueTrigger = function(waypoint, direction) {\n this.triggerQueues[direction].push(waypoint)\n }\n\n /* Private */\n Group.prototype.remove = function(waypoint) {\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\n if (index > -1) {\n this.waypoints.splice(index, 1)\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/first */\n Group.prototype.first = function() {\n return this.waypoints[0]\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/last */\n Group.prototype.last = function() {\n return this.waypoints[this.waypoints.length - 1]\n }\n\n /* Private */\n Group.findOrCreate = function(options) {\n return groups[options.axis][options.name] || new Group(options)\n }\n\n Waypoint.Group = Group\n}())\n;(function() {\n 'use strict'\n\n var $ = window.jQuery\n var Waypoint = window.Waypoint\n\n function JQueryAdapter(element) {\n this.$element = $(element)\n }\n\n $.each([\n 'innerHeight',\n 'innerWidth',\n 'off',\n 'offset',\n 'on',\n 'outerHeight',\n 'outerWidth',\n 'scrollLeft',\n 'scrollTop'\n ], function(i, method) {\n JQueryAdapter.prototype[method] = function() {\n var args = Array.prototype.slice.call(arguments)\n return this.$element[method].apply(this.$element, args)\n }\n })\n\n $.each([\n 'extend',\n 'inArray',\n 'isEmptyObject'\n ], function(i, method) {\n JQueryAdapter[method] = $[method]\n })\n\n Waypoint.adapters.push({\n name: 'jquery',\n Adapter: JQueryAdapter\n })\n Waypoint.Adapter = JQueryAdapter\n}())\n;(function() {\n 'use strict'\n\n var Waypoint = window.Waypoint\n\n function createExtension(framework) {\n return function() {\n var waypoints = []\n var overrides = arguments[0]\n\n if (framework.isFunction(arguments[0])) {\n overrides = framework.extend({}, arguments[1])\n overrides.handler = arguments[0]\n }\n\n this.each(function() {\n var options = framework.extend({}, overrides, {\n element: this\n })\n if (typeof options.context === 'string') {\n options.context = framework(this).closest(options.context)[0]\n }\n waypoints.push(new Waypoint(options))\n })\n\n return waypoints\n }\n }\n\n if (window.jQuery) {\n window.jQuery.fn.waypoint = createExtension(window.jQuery)\n }\n if (window.Zepto) {\n window.Zepto.fn.waypoint = createExtension(window.Zepto)\n }\n}())\n;\n(function ($) {\r\n\r\n\t$.ZagParallax = function (element, options) {\r\n\r\n\t\toptions = $.extend({}, $.ZagParallax.defaultOptions, options);\r\n\t\t\r\n\t\tvar Component = element;\r\n\t\tComponent.addClass(\"zag-parallax\");\r\n\r\n\t\tif (Component.children(\".zag-parallax-bg\").length) {\r\n\r\n\t\t\tvar Background = Component.children(\".zag-parallax-bg\");\r\n\r\n\t\t\t$(window).on(\"load scroll resize\", function () {\r\n\r\n\t\t\t\tvar bgHeight = ($(window).height() - Component.outerHeight()) / options.divisor + Component.outerHeight();\r\n\t\t\t\tvar bgTop = ($(window).scrollTop() - Component.offset().top) / options.divisor;\r\n\r\n\t\t\t\tBackground.height(bgHeight);\r\n\t\t\t\tBackground.css({ marginTop: bgTop });\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t};\r\n\r\n\t$.fn.ZagParallax = (function (options) {\r\n\t\treturn this.each(function () {\r\n\t\t\t(new $.ZagParallax($(this), options));\r\n\t\t});\r\n\t});\r\n\r\n\t$.ZagParallax.defaultOptions = { divisor: 1 };\r\n\r\n})(jQuery);\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\t};\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 // if it's the first component in the component folder, ignore the offset and set it to 90\r\n var offsetUpdated = component.parent(\".component-folder\").length && component.is(\":first-child\") ? 90 : options.offset;\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: offsetUpdated + '%'\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\t$.fn.ZagScrollAnimate = (function (options) {\r\n\t\treturn this.each(function () {\r\n\t\t\t(new $.ZagScrollAnimate($(this), options));\r\n\t\t});\r\n\t});\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 HashSupport();\r\n ZagScrollAnimate();\r\n ZagParallax();\r\n\r\n }\r\n\r\n function HashSupport() {\r\n\r\n const Hash = $(location.hash);\r\n\r\n if (Hash.length == 1) {\r\n\r\n if (Hash.attr(\"data-bs-toggle\") == \"collapse\") {\r\n const Target = $(Hash.attr(\"data-bs-target\"));\r\n const Panel = document.getElementById(Target.attr(\"id\"));\r\n const Collapse = new bootstrap.Collapse(Panel);\r\n Collapse.show();\r\n }\r\n\r\n else if (Hash.attr(\"data-bs-toggle\") == \"tab\") {\r\n const Tab = new bootstrap.Tab(Hash);\r\n Tab.show();\r\n }\r\n\r\n else if (Hash.hasClass(\"modal\")) {\r\n const Modal = new bootstrap.Modal(Hash);\r\n Modal.show();\r\n }\r\n }\r\n }\r\n\r\n function ZagScrollAnimate() {\r\n\r\n $(\".page-masthead.home\").ZagScrollAnimate({\r\n offset: 75,\r\n targets: [\r\n { selector: \".page-masthead-content\", type: \"animate__fadeInUp\", stagger: 0 }\r\n ]\r\n });\r\n\r\n $(\".component-promos.image-right\").ZagScrollAnimate({\r\n offset: 75,\r\n targets: [\r\n { selector: \".component-promos-cards\", type: \"animate__fadeInLeft\", stagger: 0 },\r\n { selector: \".component-promos-image > div\", type: \"animate__fadeInRight\", stagger: 0 }\r\n ]\r\n });\r\n\r\n $(\".component-promos.image-left\").ZagScrollAnimate({\r\n offset: 75,\r\n targets: [\r\n { selector: \".component-promos-cards\", type: \"animate__fadeInRight\", stagger: 0 },\r\n { selector: \".component-promos-image > div\", type: \"animate__fadeInLeft\", stagger: 0 }\r\n ]\r\n });\r\n\r\n $(\".component-promo-image.image-right\").ZagScrollAnimate({\r\n offset: 75,\r\n targets: [\r\n { selector: \".component-promo-image-card\", type: \"animate__fadeInLeft\", stagger: 0 },\r\n { selector: \".component-promo-image-image > div\", type: \"animate__fadeInRight\", stagger: 0 }\r\n ]\r\n });\r\n\r\n $(\".component-promo-image.image-left\").ZagScrollAnimate({\r\n offset: 75,\r\n targets: [\r\n { selector: \".component-promo-image-card\", type: \"animate__fadeInRight\", stagger: 0 },\r\n { selector: \".component-promo-image-image > div\", type: \"animate__fadeInLeft\", stagger: 0 }\r\n ]\r\n });\r\n\r\n $(\".component-insights\").ZagScrollAnimate({\r\n offset: 75,\r\n targets: [\r\n { selector: \".item-insight\", type: \"animate__fadeInUp\", stagger: 200 }\r\n ]\r\n });\r\n\r\n $(\".component-features\").ZagScrollAnimate({\r\n offset: 75,\r\n targets: [\r\n { selector: \".item-feature\", type: \"animate__fadeInUp\", stagger: 200 }\r\n ]\r\n });\r\n\r\n $(\".component-testimonials\").ZagScrollAnimate({\r\n offset: 75,\r\n targets: [\r\n { selector: \".item-testimonial\", type: \"animate__fadeInUp\", stagger: 200 }\r\n ]\r\n });\r\n\r\n $(\".component-expertise\").ZagScrollAnimate({\r\n offset: 75,\r\n targets: [\r\n { selector: \".component-expertise-content\", type: \"animate__fadeInUp\", stagger: 0 }\r\n ]\r\n });\r\n\r\n $(\".component-section\").ZagScrollAnimate({\r\n offset: 75,\r\n targets: [\r\n { selector: \".component-section-layout.image-left .component-section-image\", type: \"animate__fadeInLeft\", stagger: 0 },\r\n { selector: \".component-section-layout.image-left .component-section-content\", type: \"animate__fadeInRight\", stagger: 0 },\r\n { selector: \".component-section-layout.image-right .component-section-image\", type: \"animate__fadeInRight\", stagger: 0 },\r\n { selector: \".component-section-layout.image-right .component-section-content\", type: \"animate__fadeInLeft\", stagger: 0 }\r\n ]\r\n });\r\n }\r\n\r\n function ZagParallax() {\r\n $(\".page-masthead.default .page-masthead-image\").ZagParallax({ divisor: 4 });\r\n $(\".component-promo-band\").ZagParallax({ divisor: 4 });\r\n }\r\n\r\n // https://davidwalsh.name/query-string-javascript\r\n function GetUrlParameter(name) {\r\n name = name.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\r\n var regex = new RegExp('[\\\\?&]' + name + '=([^]*)');\r\n var results = regex.exec(location.search);\r\n return results === null ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\r\n };\r\n\r\n return {\r\n init: init,\r\n GetUrlParameter: GetUrlParameter\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.Accessibility = (function () {\r\n 'use strict';\r\n\r\n function init() {\r\n $(\".shared-accessibility button[data-accessibility='online-banking']\").click(function () {\r\n $(\"#site-header-offcanvas-login\").offcanvas(\"show\");\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.Accessibility.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\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\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: 'MANU Mobile Banking',\r\n author: 'Manufacturers Bank',\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 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.BioDetails = (function ($) {\r\n 'use strict';\r\n\r\n function init() {\r\n\r\n $(\".component-bio-details\").each(function () {\r\n\r\n const Component = $(this);\r\n const Button = Component.find(\".component-bio-details-more\").children(\"button\");\r\n const Target = Component.find(\".component-bio-details-more\").children(\"div\");\r\n\r\n Button.on(\"click\", function () {\r\n Target.slideDown(200);\r\n Button.hide();\r\n });\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.BioDetails.init();\r\n});\nvar App = App || {};\r\n\r\nApp.Compare = (function ($) {\r\n 'use strict';\r\n\r\n var Bps = [\"xs\", \"sm\", \"md\"],\r\n Bp = ZAGFramework.GetCurrentBP(),\r\n Mobile = false;\r\n\r\n function init() {\r\n if (Bps.includes(Bp)) { CompareSetup(); }\r\n $(document).bind(\"enter-xs enter-sm enter-md\", function () { CompareSetup() });\r\n $(document).bind(\"enter-lg enter-xl enter-xxl\", function () { CompareMobileKill() });\r\n }\r\n\r\n function CompareSetup() {\r\n\r\n if (!Mobile) {\r\n\r\n $(\".component-compare-chart\").each(function () {\r\n\r\n var Component = $(this),\r\n Controls = Component.find(\".component-compare-chart-controls\").find(\".form-check-input\");\r\n\r\n Controls.prop(\"checked\", false);\r\n $(Controls[0]).prop(\"checked\", true);\r\n $(Controls[1]).prop(\"checked\", true);\r\n\r\n CompareUpdate(Component);\r\n Controls.on(\"change\", function () { CompareUpdate(Component); });\r\n\r\n });\r\n\r\n Mobile = true;\r\n }\r\n }\r\n\r\n function CompareUpdate(Component) {\r\n\r\n var Controls = Component.find(\".component-compare-chart-controls\"),\r\n ChartContent = Component.find(\".component-compare-chart-content\"),\r\n ControlsChecked = [];\r\n\r\n Controls.find(\".form-check-input\").each(function () {\r\n if ($(this).prop(\"checked\")) {\r\n ControlsChecked.push($(this).attr(\"id\"));\r\n }\r\n });\r\n\r\n if (!ControlsChecked.length) { ChartContent.hide(); }\r\n else { ChartContent.show(); }\r\n\r\n Component.find(\".target-column\").each(function () {\r\n var Control = $(this).attr(\"data-controlledby\");\r\n if (ControlsChecked.includes(Control)) {\r\n $(this).show();\r\n }\r\n else {\r\n $(this).hide();\r\n }\r\n });\r\n\r\n Component.find(\"tr\").each(function () {\r\n\r\n $(this).find(\"th, td\").removeClass(\"target-column-js-thead-odd target-column-js-thead-even target-column-js-tbody-odd target-column-js-tbody-even\");\r\n\r\n var i = 0;\r\n\r\n $(this).find(\"th:visible, td:visible\").each(function () {\r\n i++;\r\n\r\n if ($(this).parents(\"thead\").length) {\r\n if (i % 2 != 0) {\r\n $(this).addClass(\"target-column-js-thead-odd\");\r\n }\r\n else {\r\n $(this).addClass(\"target-column-js-thead-even\");\r\n }\r\n }\r\n\r\n if (i % 2 != 0) {\r\n $(this).addClass(\"target-column-js-tbody-odd\");\r\n }\r\n else {\r\n $(this).addClass(\"target-column-js-tbody-even\");\r\n }\r\n });\r\n });\r\n }\r\n\r\n function CompareMobileKill() {\r\n if (Mobile) {\r\n\r\n $(\".component-compare-chart\").each(function () {\r\n\r\n var Component = $(this),\r\n Controls = Component.find(\".component-compare-chart-controls\").find(\".form-check-input\"),\r\n ChartContent = Component.find(\".component-compare-chart-content\"),\r\n TargetColumns = Component.find(\".component-compare-chart-content\").find(\".target-column\"),\r\n TargetHeaders = Component.find(\".component-compare-chart-content\").find(\".target-header\");\r\n\r\n Controls.prop(\"checked\", false).removeAttr(\"disabled\");\r\n ChartContent.show();\r\n TargetColumns.show();\r\n TargetHeaders.attr(\"colspan\", Controls.length);\r\n\r\n });\r\n\r\n Mobile = false;\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.Compare.init();\r\n});\nvar App = App || {};\r\n\r\nvar $desktopNewsCarousel,\r\n $mobileNewsCarousel;\r\n\r\nApp.NewsInsights = (function ($) {\r\n 'use strict';\r\n\r\n function init() {\r\n $desktopNewsCarousel = $(\".news-list-items.desktop\");\r\n $mobileNewsCarousel = $(\".news-list-items.mobile\");\r\n\r\n if ($(\".news-insights-featured\").length) {\r\n $(\".page-navigation\").addClass(\"light-bg\");\r\n }\r\n\r\n Flickity.createMethods.push('_createPrevNextCells');\r\n Flickity.prototype._createPrevNextCells = function () {\r\n this.on('select', this.setPrevNextCells);\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 if ($desktopNewsCarousel.attr(\"data-count\") > 3) {\r\n $desktopNewsCarousel.addClass(\"carousel\");\r\n initNewsCarousel($desktopNewsCarousel);\r\n }\r\n\r\n if ($mobileNewsCarousel.attr(\"data-count\") > 1) {\r\n $mobileNewsCarousel.addClass(\"carousel\");\r\n initNewsCarousel($mobileNewsCarousel, true);\r\n }\r\n }\r\n\r\n function initNewsCarousel($carousel, isMobile = false) {\r\n $carousel.each(function () {\r\n var $this = $(this);\r\n\r\n $this.on('ready.flickity', function () {\r\n var navButtons = $this.find(\".flickity-prev-next-button\");\r\n\r\n navButtons.click(function () {\r\n $this.blur();\r\n });\r\n });\r\n\r\n $this.on('ready.flickity select.flickity', function (event, index) {\r\n $this\r\n .find('.news-card:not(.is-selected) a')\r\n .attr('tabindex', '-1')\r\n .end()\r\n .find('.news-card.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: isMobile,\r\n pageDots: false,\r\n prevNextButtons: true,\r\n wrapAround: false,\r\n imagesLoaded: true,\r\n groupCells: (isMobile ? 1 : 3),\r\n cellAlign: (isMobile ? 'center' : 'right'),\r\n selectedAttraction: 0.01,\r\n friction: 0.15\r\n });\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 return {\r\n init: init\r\n };\r\n\r\n})(jQuery);\r\n\r\n$(function () {\r\n App.NewsInsights.init();\r\n});\nvar App = App || {};\r\n\r\nApp.PageMasthead = (function ($) {\r\n 'use strict';\r\n\r\n function init() {\r\n Scroll();\r\n }\r\n\r\n function Scroll() {\r\n\r\n var Button = $(\".page-masthead.home .page-masthead-scroll button\");\r\n var Target = $(\".site-main\").find(\".component-folder\").first().children(\".component\").first();\r\n\r\n Button.on(\"click\", function () {\r\n $(\"html, body\").animate({\r\n scrollTop: Target.offset().top\r\n }, 250);\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.PageMasthead.init();\r\n});\nvar App = App || {};\r\n\r\nApp.Section = (function ($) {\r\n 'use strict';\r\n\r\n function init() {\r\n\r\n $(\".component-section\").each(function () {\r\n\r\n const component = $(this);\r\n const button = component.find(\".component-section-title\").find(\"div[role='heading']\").children(\"button\");\r\n\r\n button.on(\"click\", function () {\r\n alert(\"2ewfd\");\r\n });\r\n\r\n if (button.length) {\r\n new bootstrap.Dropdown(button);\r\n }\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.Section.init();\r\n});\nvar App = App || {};\r\n\r\nApp.SiteAlerts = (function ($) {\r\n 'use strict';\r\n\r\n function init() {\r\n $(\".site-alerts .site-alert\").each(function () {\r\n\r\n var Alert = $(this);\r\n var Dismiss = Alert.find(\".site-alert-dismiss > button\");\r\n var Collapse = Alert.find(\".site-alert-collapse > button\");\r\n\r\n Dismiss.on(\"click\", function () {\r\n Alert.slideUp(250);\r\n var AlertGuid = Alert.data(\"alertguid\");\r\n App.Cookies.setItem(AlertGuid, \"Dismissed\", Infinity, \"/\", window.location.hostname, window.location.protocol === \"https:\");\r\n });\r\n\r\n Collapse.on(\"click\", function () {\r\n\r\n var AlertGuid = Alert.data(\"alertguid\");\r\n\r\n if ($(this).attr(\"aria-expanded\") == \"false\") {\r\n $(this).attr(\"aria-expanded\", \"true\");\r\n Alert.removeClass(\"collapsed\").find(\".site-alert-content\").attr(\"aria-hidden\", \"false\");\r\n App.Cookies.setItem(AlertGuid, \"Collapsable\", Infinity, \"/\", window.location.hostname, window.location.protocol === \"https:\");\r\n }\r\n else {\r\n $(this).attr(\"aria-expanded\", \"false\");\r\n Alert.addClass(\"collapsed\").find(\".site-alert-content\").attr(\"aria-hidden\", \"true\");\r\n App.Cookies.setItem(AlertGuid, \"Collapsed\", Infinity, \"/\", window.location.hostname, window.location.protocol === \"https:\");\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.SiteAlerts.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(\"ManufacturersBank_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.SiteHeaderPrimary = (function ($) {\r\n \"use strict\";\r\n\r\n function init() {\r\n Mobile();\r\n Desktop();\r\n }\r\n\r\n function Mobile() {\r\n\r\n var level1Trigger = $(\".site-header-primary.mobile .mobile-menu-collapse-trigger\");\r\n\r\n level1Trigger.on(\"click\", function () {\r\n\r\n if ($(this).attr(\"aria-expanded\") == \"false\") { $(this).attr(\"aria-expanded\", \"true\").siblings(\".mobile-menu-collapse\").slideDown(300); }\r\n else { $(this).attr(\"aria-expanded\", \"false\").siblings(\".mobile-menu-collapse\").slideUp(300); }\r\n\r\n var siblingTrigger = $(this).parent(\"li\").siblings(\"li\").children(\".mobile-menu-collapse-trigger\");\r\n var siblingCollapse = $(this).parent(\"li\").siblings(\"li\").children(\".mobile-menu-collapse\");\r\n\r\n siblingTrigger.attr(\"aria-expanded\", \"false\");\r\n siblingCollapse.slideUp(300);\r\n\r\n });\r\n\r\n }\r\n\r\n function Desktop() {\r\n\r\n var hovering = false;\r\n var megaMenuSpeed = 300;\r\n\r\n var selectorMenu = $(\".site-header-primary.desktop > nav > ul\");\r\n var selectorItem = $(\".site-header-primary.desktop > nav > ul\").children(\"li\").children(\"a, button\");\r\n\r\n var level2Menu = [];\r\n var level2MenuWhich = 0;\r\n var level2MenuItems = $(\".site-header-primary.desktop > nav > ul\").children(\"li\").find(\".mega-menu\").find(\"a, button\");\r\n\r\n $(\".site-header-primary.desktop\").find(\".mega-menu\").each(function () {\r\n $(this).find(\"a\").attr(\"tabindex\", -2);\r\n });;\r\n\r\n /**********************************************************************************\r\n ENTIRE MENU END HOVER\r\n /*********************************************************************************/\r\n selectorMenu.hover(\r\n function () {\r\n\r\n },\r\n function () {\r\n hovering = false;\r\n selectorItem.blur();\r\n //DesktopMmOpen($(this).children(\"li\").children(\"a\"), megaMenuSpeed);\r\n }\r\n );\r\n\r\n /**********************************************************************************\r\n LEVEL ONE ITEM HOVER\r\n /*********************************************************************************/\r\n selectorItem.hover(\r\n function () {\r\n if (hovering !== true) {\r\n DesktopMmOpen($(this), megaMenuSpeed);\r\n }\r\n else {\r\n DesktopMmOpen($(this), 1);\r\n }\r\n hovering = true;\r\n },\r\n function () { }\r\n );\r\n\r\n /**********************************************************************************\r\n LEVEL ONE ITEM FOCUS\r\n /*********************************************************************************/\r\n selectorItem.focus(function () {\r\n DesktopMmOpen($(this), 1);\r\n hovering = true;\r\n });\r\n\r\n /**********************************************************************************\r\n LEVEL ONE ITEM BLUR\r\n /*********************************************************************************/\r\n selectorItem.blur(function () {\r\n if (hovering === false) {\r\n DesktopMmClose($(this), megaMenuSpeed);\r\n }\r\n });\r\n\r\n /**********************************************************************************\r\n LEVEL ONE ITEM ARROWS\r\n /*********************************************************************************/\r\n selectorItem.keydown(function (e) {\r\n // right arrow\r\n if (e.keyCode === 39) {\r\n e.preventDefault();\r\n $(this).parent(\"li\").next(\"li\").children(\"a, button\").focus();\r\n }\r\n // left arrow\r\n else if (e.keyCode === 37) {\r\n e.preventDefault();\r\n $(this).parent(\"li\").prev(\"li\").children(\"a, button\").focus();\r\n }\r\n // down arrow\r\n else if (e.keyCode === 40) {\r\n hovering = true;\r\n e.preventDefault();\r\n level2Menu = [];\r\n $(this).siblings(\".mega-menu\").find(\"a:visible, button:visible\").each(function () { level2Menu.push(this); });\r\n level2MenuWhich = 0;\r\n $(level2Menu[level2MenuWhich]).focus();\r\n }\r\n // escape\r\n else if (e.keyCode === 27) {\r\n DesktopMmClose($(this), megaMenuSpeed);\r\n }\r\n });\r\n\r\n /**********************************************************************************\r\n LEVEL 2 ITEMS ARROWS\r\n /*********************************************************************************/\r\n level2MenuItems.keydown(function (e) {\r\n /* right arrow */\r\n if (e.keyCode === 39) {\r\n hovering = true;\r\n e.preventDefault();\r\n $(this).parents(\".mega-menu\").parent(\"li\").next(\"li\").children(\"a, button\").focus();\r\n }\r\n /* left arrow */\r\n else if (e.keyCode === 37) {\r\n hovering = true;\r\n e.preventDefault();\r\n $(this).parents(\".mega-menu\").parent(\"li\").prev(\"li\").children(\"a, button\").focus();\r\n }\r\n // down arrow\r\n else if (e.keyCode === 40) {\r\n hovering = true;\r\n e.preventDefault();\r\n if (level2MenuWhich < level2Menu.length - 1) { level2MenuWhich++; }\r\n else { level2MenuWhich = 0; }\r\n $(level2Menu[level2MenuWhich]).focus();\r\n }\r\n // up arrow\r\n else if (e.keyCode === 38) {\r\n hovering = true;\r\n e.preventDefault();\r\n if (level2MenuWhich > 0) { level2MenuWhich--; }\r\n else { level2MenuWhich = level2Menu.length - 1; }\r\n $(level2Menu[level2MenuWhich]).focus();\r\n }\r\n // escape\r\n else if (e.keyCode === 27) {\r\n DesktopMmClose($(this).parents(\".mega-menu\").siblings(\"a, button\"), megaMenuSpeed);\r\n }\r\n });\r\n\r\n /**********************************************************************************\r\n ENTIRE EVERYTHING KEYPRESS - should we close that menu??\r\n /*********************************************************************************/\r\n selectorMenu.keydown(function (e) {\r\n if (e.keyCode === 9) {\r\n hovering = false;\r\n DesktopMmClose($(this).children(\"li\").children(\"a, button\"), 1);\r\n }\r\n });\r\n }\r\n\r\n function DesktopMmOpen(Menu, Speed) {\r\n Menu.attr(\"aria-expanded\", \"true\").siblings(\".mega-menu\").stop().slideDown(Speed);\r\n DesktopMmClose(Menu.parents(\"li\").siblings(\"li\").children(\"a, button\"), Speed);\r\n }\r\n\r\n function DesktopMmClose(Menu, Speed) {\r\n Menu.attr(\"aria-expanded\", \"false\").siblings(\".mega-menu\").stop().slideUp(Speed);\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.SiteHeaderPrimary.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\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\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);\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) {\r\n\r\n var SpeedbumpModal = new bootstrap.Modal(document.getElementById('SpeedbumpModal'));\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.Video = (function ($) {\r\n 'use strict';\r\n\r\n function init() {\r\n\r\n $(\".component-video\").each(function () {\r\n\r\n var Target = $(this).find(\".component-video-embed\");\r\n var Button = Target.find(\".component-video-embed-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","getBoundingClientRect","element","rect","width","height","top","right","bottom","left","x","y","getWindow","node","window","toString","ownerDocument","defaultView","getWindowScroll","win","scrollLeft","pageXOffset","scrollTop","pageYOffset","isElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","getNodeName","nodeName","toLowerCase","getDocumentElement","document","documentElement","getWindowScrollBarX","getComputedStyle","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","test","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetWidth","offsetHeight","scroll","offsets","clientLeft","clientTop","getLayoutRect","clientRect","Math","abs","offsetLeft","offsetTop","getParentNode","assignedSlot","parentNode","host","listScrollParents","list","scrollParent","getScrollParent","indexOf","body","isBody","_element$ownerDocumen","target","concat","visualViewport","updatedList","getTrueOffsetParent","position","getOffsetParent","isFirefox","navigator","userAgent","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","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","max","min","round","contains","parent","child","rootNode","getRootNode","next","isSameNode","rectToClientRect","Object","assign","getClientRectFromMixedType","clippingParent","html","clientWidth","clientHeight","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$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","padding","popperRect","rects","elements","clippingClientRect","contextElement","referenceClientRect","popperOffsets","strategy","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","item","identifier","index","console","error","String","join","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","dpr","devicePixelRatio","_ref3$x","_ref3$y","hasX","hasOwnProperty","hasY","sideX","sideY","commonStyles","heightProp","_Object$assign2","computeStyles$1","_ref4","_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","maxOffset","tetherMin","tetherMax","_offset","_min","_preventedOffset","tether","_options$tether","tetherOffset","_options$tetherOffset","isBasePlacement","tetherOffsetValue","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrowRect","arrowPaddingMin","arrowPaddingObject","arrowPaddingMax","arrowLen","minOffset","clientOffset","arrowOffsetParent","offsetModifierValue","preventedOffset","_max","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","currentTarget","_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","_disposePopper","_isWithContent","shadowRoot","isInTheDom","_getTipElement","previousHoverState","_getTitle","_createTipElement","_getContentForTemplate","_getTemplateFactory","tipId","prefix","floor","random","getElementById","getUID","setContent",".tooltip-inner","originalTitle","_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","DefaultType$1","ScrollSpy","_targetLinks","_observableSections","_rootElement","_activeTarget","_observer","_previousScrollData","visibleEntryTop","parentScrollTop","refresh","_initializeTargetsAndObservables","_maybeEnableSmoothScroll","disconnect","_getNewObserver","section","observe","observableSection","scrollTo","behavior","threshold","_getRootMargin","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","version","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","instanceUid","Slick","settings","_","defaults","accessibility","adaptiveHeight","appendArrows","appendDots","arrows","asNavFor","prevArrow","nextArrow","autoplay","autoplaySpeed","centerMode","centerPadding","cssEase","customPaging","slider","dots","dotsClass","draggable","easing","edgeFriction","fade","focusOnSelect","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","slideCount","slideWidth","$slideTrack","$slides","sliding","slideOffset","swipeLeft","$list","touchObject","transformsEnabled","unslicked","activeBreakpoint","animType","animProp","breakpoints","breakpointSettings","cssTransitions","focussed","interrupted","paused","positionProp","rowCount","shouldClick","$slider","$slidesCache","transformType","transitionType","visibilityChange","windowWidth","windowTimer","dataSettings","originalSettings","mozHidden","webkitHidden","autoPlay","proxy","autoPlayClear","autoPlayIterator","changeSlide","clickHandler","selectHandler","setPosition","swipeHandler","dragHandler","keyHandler","htmlExpr","registerBreakpoints","init","activateADA","attr","aria-hidden","tabindex","addSlide","slickAdd","markup","addBefore","unload","appendTo","insertBefore","eq","insertAfter","prependTo","detach","reinit","animateHeight","targetHeight","outerHeight","animate","animateSlide","targetLeft","animProps","animStart","duration","step","now","ceil","complete","applyTransition","disableTransition","getNavTarget","not","slick","slideHandler","transition","slideTo","buildArrows","addClass","removeClass","removeAttr","aria-disabled","buildDots","dot","getDotCount","first","buildOut","wrapAll","setupInfinite","updateDots","setSlideClasses","buildRows","numOfSlides","slidesPerSection","newSlides","createDocumentFragment","originalSlides","row","empty","checkResponsive","initial","breakpoint","targetBreakpoint","respondToWidth","triggerBreakpoint","sliderWidth","unslick","dontAnimate","indexOffset","$target","is","message","checkNavigable","navigables","getNavigableIndexes","prevNavigable","cleanUpEvents","interrupt","visibility","cleanUpSlideEvents","orientationChange","cleanUpRows","stopImmediatePropagation","fadeSlide","opacity","fadeSlideOut","filterSlides","slickFilter","focusHandler","$sf","getCurrent","slickCurrentSlide","breakPoint","counter","pagerQty","getLeft","verticalHeight","verticalOffset","targetSlide","outerWidth","getOption","slickGetOption","option","indexes","getSlick","getSlideCount","swipedSlide","goTo","slickGoTo","creation","hasClass","setProps","startLoad","loadSlider","initializeEvents","updateArrows","initADA","role","aria-describedby","aria-selected","aria-controls","initArrowEvents","initDotEvents","initSlideEvents","action","initUI","keyCode","rangeStart","rangeEnd","loadImages","imagesScope","image","imageSource","imageToLoad","onload","onerror","src","progressiveLazyLoad","slickNext","slickPause","play","slickPlay","postSlide","slickPrev","tryCount","$imgsToLoad","initializing","lastVisibleIndex","currentBreakpoint","responsiveSettings","splice","windowDelay","removeSlide","slickRemove","removeBefore","removeAll","setCSS","positionProps","setDimensions","setFade","setHeight","setOption","slickSetOption","opt","val","bodyStyle","WebkitTransition","MozTransition","msTransition","OTransform","perspectiveProperty","webkitPerspective","MozTransform","MozPerspective","webkitTransform","msTransform","remainder","allSlides","infiniteCount","clone","sync","animSlide","navTarget","slideLeft","oldSlide","swipeDirection","xDist","startX","curX","yDist","startY","curY","atan2","swipeAngle","PI","swipeEnd","swipeLength","edgeHit","minSwipe","fingerCount","originalEvent","swipeStart","swipeMove","curLeft","pageX","pageY","clientY","sqrt","pow","positionOffset","unfilterSlides","slickUnfilter","fromBreakpoint","ret","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","ZagParallax","Background","Component","bgHeight","divisor","bgTop","ZagScrollAnimate","ZagScrollAnimateSetup","targets","count","stagger","offsetUpdated","ZagScrollAnimateExecute","triggerOnce","methods","GetViewport","GetCurrentBP","BP","xs","matchMedia","sm","md","lg","xl","xxl","App","jQueryBridget","arraySlice","logError","PluginClass","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","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","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","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","url","Image","reURL","backgroundImage","addBackground","loadingImage","onProgress","progressedCount","hasAnyBroken","isLoaded","notify","debug","log","isComplete","jqMethod","getIsImageComplete","confirm","naturalWidth","proxyImage","unbindEvents","makeJQueryPlugin","promise","_createImagesLoaded","$desktopNewsCarousel","$mobileNewsCarousel","Base","HashSupport","Hash","location","Target","Panel","GetUrlParameter","results","search","Accessibility","offcanvas","Cookies","getItem","sKey","encodeURIComponent","setItem","sValue","vEnd","sPath","sDomain","bSecure","sExpires","toUTCString","removeItem","hasItem","aKeys","nLen","nIdx","FormValidation","ValidateText","Operator","CompareGuid","CompareValue","ValidateRadio","ComponentName","ComponentValue","ComponentError","ValidateCheckboxes","ComponentGuid","trimEnd","ValidateCheckbox","ComponentCheckbox","ValidateFile","CountErrors","ErrorContainer","ErrorContainerId","ErrorCount","AriaDescribedBy","Form","KenticoSubmit","KenticoUpdate","input","label","replaceWith","onsubmit","data-ktc-ajax-update","SharedSmartAppBanner","BioDetails","slideDown","Compare","Bps","Bp","Mobile","CompareSetup","Controls","CompareUpdate","ChartContent","ControlsChecked","Control","TargetColumns","TargetHeaders","NewsInsights","initNewsCarousel","$carousel","isMobile","$this","changeSlideClasses","_createPrevNextCells","setPrevNextCells","previousSlide","nextSlide","previousI","nextI","PageMasthead","Section","alert","SiteAlerts","Dismiss","slideUp","AlertGuid","hostname","protocol","SiteCookieNotice","Notice","SiteHeaderPrimary","DesktopMmOpen","Menu","Speed","siblings","DesktopMmClose","hovering","selectorMenu","selectorItem","level2Menu","level2MenuWhich","level2MenuItems","siblingTrigger","siblingCollapse","hover","keydown","SiteSpeedbump","exemptList","Speedbump","ExemptList","uriSchemes","SpeedbumpTriggers","isUriSchema","SpeedbumpModal","href","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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"}