{"version":3,"file":"js/modules/prSlider.js","mappings":"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","sources":["webpack://Weiser/./js/lib/balanceText.js","webpack://Weiser/webpack/bootstrap","webpack://Weiser/./node_modules/ssr-window/ssr-window.esm.js","webpack://Weiser/./node_modules/dom7/dom7.esm.js","webpack://Weiser/./node_modules/swiper/shared/dom.js","webpack://Weiser/./node_modules/swiper/shared/utils.js","webpack://Weiser/./node_modules/swiper/shared/get-support.js","webpack://Weiser/./node_modules/swiper/shared/get-device.js","webpack://Weiser/./node_modules/swiper/shared/get-browser.js","webpack://Weiser/./node_modules/swiper/core/events-emitter.js","webpack://Weiser/./node_modules/swiper/core/update/index.js","webpack://Weiser/./node_modules/swiper/core/update/updateSize.js","webpack://Weiser/./node_modules/swiper/core/update/updateSlides.js","webpack://Weiser/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://Weiser/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://Weiser/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://Weiser/./node_modules/swiper/core/update/updateProgress.js","webpack://Weiser/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://Weiser/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://Weiser/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://Weiser/./node_modules/swiper/core/translate/index.js","webpack://Weiser/./node_modules/swiper/core/translate/getTranslate.js","webpack://Weiser/./node_modules/swiper/core/translate/setTranslate.js","webpack://Weiser/./node_modules/swiper/core/translate/minTranslate.js","webpack://Weiser/./node_modules/swiper/core/translate/maxTranslate.js","webpack://Weiser/./node_modules/swiper/core/translate/translateTo.js","webpack://Weiser/./node_modules/swiper/core/transition/transitionEmit.js","webpack://Weiser/./node_modules/swiper/core/slide/index.js","webpack://Weiser/./node_modules/swiper/core/slide/slideTo.js","webpack://Weiser/./node_modules/swiper/core/slide/slideToLoop.js","webpack://Weiser/./node_modules/swiper/core/slide/slideNext.js","webpack://Weiser/./node_modules/swiper/core/slide/slidePrev.js","webpack://Weiser/./node_modules/swiper/core/slide/slideReset.js","webpack://Weiser/./node_modules/swiper/core/slide/slideToClosest.js","webpack://Weiser/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://Weiser/./node_modules/swiper/core/loop/index.js","webpack://Weiser/./node_modules/swiper/core/loop/loopCreate.js","webpack://Weiser/./node_modules/swiper/core/loop/loopFix.js","webpack://Weiser/./node_modules/swiper/core/loop/loopDestroy.js","webpack://Weiser/./node_modules/swiper/core/events/onTouchStart.js","webpack://Weiser/./node_modules/swiper/core/events/onTouchMove.js","webpack://Weiser/./node_modules/swiper/core/events/onTouchEnd.js","webpack://Weiser/./node_modules/swiper/core/events/onResize.js","webpack://Weiser/./node_modules/swiper/core/events/onClick.js","webpack://Weiser/./node_modules/swiper/core/events/onScroll.js","webpack://Weiser/./node_modules/swiper/core/events/index.js","webpack://Weiser/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://Weiser/./node_modules/swiper/core/breakpoints/index.js","webpack://Weiser/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://Weiser/./node_modules/swiper/core/classes/index.js","webpack://Weiser/./node_modules/swiper/core/classes/addClasses.js","webpack://Weiser/./node_modules/swiper/core/classes/removeClasses.js","webpack://Weiser/./node_modules/swiper/core/check-overflow/index.js","webpack://Weiser/./node_modules/swiper/core/defaults.js","webpack://Weiser/./node_modules/swiper/core/moduleExtendParams.js","webpack://Weiser/./node_modules/swiper/core/core.js","webpack://Weiser/./node_modules/swiper/core/transition/index.js","webpack://Weiser/./node_modules/swiper/core/transition/setTransition.js","webpack://Weiser/./node_modules/swiper/core/transition/transitionStart.js","webpack://Weiser/./node_modules/swiper/core/transition/transitionEnd.js","webpack://Weiser/./node_modules/swiper/core/grab-cursor/index.js","webpack://Weiser/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://Weiser/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://Weiser/./node_modules/swiper/core/images/index.js","webpack://Weiser/./node_modules/swiper/core/images/loadImage.js","webpack://Weiser/./node_modules/swiper/core/images/preloadImages.js","webpack://Weiser/./node_modules/swiper/core/modules/resize/resize.js","webpack://Weiser/./node_modules/swiper/core/modules/observer/observer.js","webpack://Weiser/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://Weiser/./node_modules/swiper/shared/classes-to-selector.js","webpack://Weiser/./js/modules/prSlider.ts","webpack://Weiser/./node_modules/swiper/modules/pagination/pagination.js","webpack://Weiser/./node_modules/swiper/modules/navigation/navigation.js"],"sourcesContent":["\"use strict\";(function(root,factory){if(typeof define===\"function\"&&define.amd){define([],factory)}else if(typeof module===\"object\"&&module.exports){module.exports=factory()}else{root.balanceText=factory()}})(this,function(){var breakMatches,wsnwMatches,wsnwOffset;var watching={sel:[],el:[]};var handlersInitialized=false;var polyfilled=false;function noop(){return}function forEach(elements,callback){Array.prototype.forEach.call(elements,callback)}function ready(fn){if(document.readyState!==\"loading\"){fn()}else if(document.addEventListener){document.addEventListener(\"DOMContentLoaded\",fn)}else{document.attachEvent(\"onreadystatechange\",function(){if(document.readyState!==\"loading\"){fn()}})}}function debounce(func,threshold,execAsap){var timeout;return function debounced(){var obj=this,args=arguments;function delayed(){if(!execAsap){func.apply(obj,args)}timeout=null}if(timeout){clearTimeout(timeout)}else if(execAsap){func.apply(obj,args)}timeout=setTimeout(delayed,threshold||100)}}function hasTextWrap(){var style=document.documentElement.style;return style.textWrap||style.WebkitTextWrap||style.MozTextWrap||style.MsTextWrap}function NextWS_params(){this.reset()}NextWS_params.prototype.reset=function(){this.index=0;this.width=0};function isWhiteSpaceNoWrap(index){return wsnwMatches.some(function(range){return range.startlineCharOffset){newMatches.push({start:match.start-lineCharOffset,end:match.end-lineCharOffset})}});wsnwMatches=newMatches}}function removeTags(el){var brs=el.querySelectorAll('br[data-owner=\"balance-text-hyphen\"]');forEach(brs,function(br){br.outerHTML=\"\"});brs=el.querySelectorAll('br[data-owner=\"balance-text\"]');forEach(brs,function(br){br.outerHTML=\" \"});var spans=el.querySelectorAll('span[data-owner=\"balance-text-softhyphen\"]');if(spans.length>0){forEach(spans,function(span){var textNode=document.createTextNode(\"­\");span.parentNode.insertBefore(textNode,span);span.parentNode.removeChild(span)})}spans=el.querySelectorAll('span[data-owner=\"balance-text-justify\"]');if(spans.length>0){var txt=\"\";forEach(spans,function(span){txt+=span.textContent;span.parentNode.removeChild(span)});el.innerHTML=txt}}var isJustified=function(el){var style=el.currentStyle||window.getComputedStyle(el,null);return style.textAlign===\"justify\"};function justify(el,txt,conWidth){var div,size,tmp,words,wordSpacing;txt=txt.trim();words=txt.split(\" \").length;txt=txt+\" \";if(words<2){return txt}tmp=document.createElement(\"span\");tmp.innerHTML=txt;el.appendChild(tmp);size=tmp.offsetWidth;tmp.parentNode.removeChild(tmp);wordSpacing=Math.floor((conWidth-size)/(words-1));tmp.style.wordSpacing=wordSpacing+\"px\";tmp.setAttribute(\"data-owner\",\"balance-text-justify\");div=document.createElement(\"div\");div.appendChild(tmp);return div.innerHTML}function isBreakChar(txt,index){var re=/([^\\S\\u00a0]|-|\\u2014|\\u2013|\\u00ad)(?![^<]*>)/g,match;if(!breakMatches){breakMatches=[];match=re.exec(txt);while(match!==null){if(!isWhiteSpaceNoWrap(match.index)){breakMatches.push(match.index)}match=re.exec(txt)}}return breakMatches.indexOf(index)!==-1}function isBreakOpportunity(txt,index){return index===0||index===txt.length||isBreakChar(txt,index-1)&&!isBreakChar(txt,index)}function findBreakOpportunity(el,txt,conWidth,desWidth,dir,c,ret){var w;if(txt&&typeof txt===\"string\"){for(;;){while(!isBreakOpportunity(txt,c)){c+=dir}el.innerHTML=txt.substr(0,c);w=el.offsetWidth;if(dir<0){if(w<=desWidth||w<=0||c===0){break}}else{if(desWidth<=w||conWidth<=w||c===txt.length){break}}c+=dir}}ret.index=c;ret.width=w}function getSpaceWidth(el,h){var dims,space,spaceRatio,container=document.createElement(\"div\");container.style.display=\"block\";container.style.position=\"absolute\";container.style.bottom=0;container.style.right=0;container.style.width=0;container.style.height=0;container.style.margin=0;container.style.padding=0;container.style.visibility=\"hidden\";container.style.overflow=\"hidden\";space=document.createElement(\"span\");space.style.fontSize=\"2000px\";space.innerHTML=\" \";container.appendChild(space);el.appendChild(container);dims=space.getBoundingClientRect();container.parentNode.removeChild(container);spaceRatio=dims.height/dims.width;return h/spaceRatio}function getElementsList(elements){if(!elements){return[]}if(typeof elements===\"string\"){return document.querySelectorAll(elements)}if(elements.tagName&&elements.querySelectorAll){return[elements]}return elements}function balanceText(elements){forEach(getElementsList(elements),function(el){var maxTextWidth=5e3;removeTags(el);var oldWS=el.style.whiteSpace,oldFloat=el.style.float,oldDisplay=el.style.display,oldPosition=el.style.position,oldLH=el.style.lineHeight;el.style.lineHeight=\"normal\";var containerWidth=el.offsetWidth,containerHeight=el.offsetHeight;el.style.whiteSpace=\"nowrap\";el.style.float=\"none\";el.style.display=\"inline\";el.style.position=\"static\";var nowrapWidth=el.offsetWidth,nowrapHeight=el.offsetHeight,spaceWidth=oldWS===\"pre-wrap\"?0:getSpaceWidth(el,nowrapHeight);if(containerWidth>0&&nowrapWidth>containerWidth&&nowrapWidth1){breakMatches=null;calcNoWrapOffsetsForLine(el,oldWS,lineCharOffset);desiredWidth=Math.round((nowrapWidth+spaceWidth)/remLines-spaceWidth);guessIndex=Math.round((remainingText.length+1)/remLines)-1;le=new NextWS_params;findBreakOpportunity(el,remainingText,containerWidth,desiredWidth,-1,guessIndex,le);ge=new NextWS_params;guessIndex=le.index;findBreakOpportunity(el,remainingText,containerWidth,desiredWidth,+1,guessIndex,ge);le.reset();guessIndex=ge.index;findBreakOpportunity(el,remainingText,containerWidth,desiredWidth,-1,guessIndex,le);if(le.index===0){splitIndex=ge.index}else if(containerWidth-')}if(shouldJustify){newText+=justify(el,lineText,containerWidth)}else{newText+=lineText;isHyphen=isSoftHyphen||Boolean(lineText.match(/(-|\\u2014|\\u2013)$/));newText+=isHyphen?'
':'
'}remainingText=remainingText.substr(splitIndex);lineCharOffset=splitIndex;remLines--;el.innerHTML=remainingText;nowrapWidth=el.offsetWidth}if(shouldJustify){el.innerHTML=newText+justify(el,remainingText,containerWidth)}else{el.innerHTML=newText+remainingText}}el.style.whiteSpace=oldWS;el.style.float=oldFloat;el.style.display=oldDisplay;el.style.position=oldPosition;el.style.lineHeight=oldLH})}function updateWatched(){var selectors=watching.sel.join(\",\"),selectedElements=getElementsList(selectors),elements=Array.prototype.concat.apply(watching.el,selectedElements);balanceText(elements)}function initHandlers(){if(handlersInitialized){return}ready(updateWatched);window.addEventListener(\"load\",updateWatched);window.addEventListener(\"resize\",debounce(updateWatched));handlersInitialized=true}function balanceTextAndWatch(elements){if(typeof elements===\"string\"){watching.sel.push(elements)}else{forEach(getElementsList(elements),function(el){watching.el.push(el)})}initHandlers();updateWatched()}function unwatch(elements){if(typeof elements===\"string\"){watching.sel=watching.sel.filter(function(el){return el!==elements})}else{elements=getElementsList(elements);watching.el=watching.el.filter(function(el){return elements.indexOf(el)===-1})}}function polyfill(){if(polyfilled){return}watching.sel.push(\".balance-text\");initHandlers();polyfilled=true}function publicInterface(elements,options){if(!elements){polyfill()}else if(options&&options.watch===true){balanceTextAndWatch(elements)}else if(options&&options.watch===false){unwatch(elements)}else{balanceText(elements)}}publicInterface.updateWatched=updateWatched;if(hasTextWrap()){noop.updateWatched=noop;return noop}return publicInterface});","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.2\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n super(...(items || []));\n makeReactive(this);\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n }\n\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import Swiper, { Pagination, Navigation } from 'swiper';\r\nSwiper.use([Pagination, Navigation]);\r\nimport * as balanceText from 'Lib/balanceText.js';\r\n\r\nexport namespace JSSlider {\r\n let setupSlider = () => {\r\n let sliderContainers = document.querySelectorAll('.js-pr-slider');\r\n\r\n if (!sliderContainers.length) {\r\n return;\r\n }\r\n\r\n sliderContainers.forEach((slider, index) => {\r\n let sliderList = [];\r\n let sliderParent = slider.closest('.pr-slider__parent');\r\n sliderParent.classList.add(`pr-slider__parent--${index}`);\r\n slider.classList.add(`js-slider--${index}`);\r\n\r\n //setup each swiper instance\r\n let swiper: any = new Swiper(`.js-slider--${index}`, {\r\n // Optional parameters\r\n slidesPerView: 1,\r\n spaceBetween: 20,\r\n navigation: {\r\n nextEl: `.pr-slider__parent--${index} .swiper-button-next`,\r\n prevEl: `.pr-slider__parent--${index} .swiper-button-prev`,\r\n },\r\n breakpoints: {\r\n 0: {\r\n slidesPerView: 1,\r\n },\r\n 576: {\r\n slidesPerView: 2,\r\n },\r\n 768: {\r\n slidesPerView: 4,\r\n },\r\n },\r\n on: {\r\n init: function () {\r\n balanceText();\r\n },\r\n },\r\n });\r\n\r\n //push up the swiper data\r\n sliderList.push(swiper);\r\n swiper.init();\r\n });\r\n };\r\n\r\n export const init = () => {\r\n setupSlider();\r\n };\r\n}\r\n\r\n/**\r\n * DOMContentLoaded may fire before script has a chance to run, so it is wise to check before adding\r\n */\r\nif (document.readyState === 'loading') {\r\n // Loading hasn't finished yet\r\n document.addEventListener('DOMContentLoaded', JSSlider.init);\r\n} else {\r\n // `DOMContentLoaded` has already fired\r\n JSSlider.init();\r\n}\r\n","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - swiper.previousIndex;\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(params.modifierClass + swiper.params.direction);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(params.modifierClass + swiper.params.direction);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', () => {\n init();\n render();\n update();\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n Object.assign(swiper.pagination, {\n render,\n update,\n init,\n destroy\n });\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n let $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning);\n toggleEl($nextEl, swiper.isEnd);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n }\n\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', () => {\n init();\n update();\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n Object.assign(swiper.navigation, {\n update,\n init,\n destroy\n });\n}"],"names":["breakMatches","wsnwMatches","wsnwOffset","watching","sel","el","handlersInitialized","polyfilled","noop","forEach","elements","callback","Array","prototype","call","ready","fn","document","readyState","addEventListener","attachEvent","debounce","func","threshold","execAsap","timeout","obj","this","args","arguments","delayed","apply","clearTimeout","setTimeout","hasTextWrap","style","documentElement","textWrap","WebkitTextWrap","MozTextWrap","MsTextWrap","NextWS_params","reset","isWhiteSpaceNoWrap","index","some","range","start","end","recursiveCalcNoWrapOffsetsForLine","includeTag","nodeType","ELEMENT_NODE","window","getComputedStyle","whiteSpace","len","outerHTML","length","push","childNodes","child","innerHTML","COMMENT_NODE","PROCESSING_INSTRUCTION_NODE","calcNoWrapOffsetsForLine","oldWS","lineCharOffset","newMatches","match","removeTags","brs","querySelectorAll","br","spans","span","textNode","createTextNode","parentNode","insertBefore","removeChild","txt","textContent","width","isJustified","currentStyle","textAlign","justify","conWidth","div","size","tmp","words","wordSpacing","trim","split","createElement","appendChild","offsetWidth","Math","floor","setAttribute","isBreakChar","re","exec","indexOf","isBreakOpportunity","findBreakOpportunity","desWidth","dir","c","ret","w","substr","getSpaceWidth","h","dims","space","container","display","position","bottom","right","height","margin","padding","visibility","overflow","fontSize","getBoundingClientRect","getElementsList","tagName","balanceText","maxTextWidth","oldFloat","float","oldDisplay","oldPosition","oldLH","lineHeight","containerWidth","containerHeight","offsetHeight","nowrapWidth","nowrapHeight","spaceWidth","desiredWidth","le","ge","splitIndex","isSoftHyphen","remainingText","newText","lineText","shouldJustify","remLines","round","abs","replace","Boolean","updateWatched","selectedElements","join","concat","initHandlers","balanceTextAndWatch","unwatch","filter","polyfill","publicInterface","options","watch","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","constructor","Object","extend","target","src","keys","key","ssrDocument","body","removeEventListener","activeElement","blur","nodeName","querySelector","getElementById","createEvent","initEvent","children","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getPropertyValue","Image","Date","screen","matchMedia","requestAnimationFrame","cancelAnimationFrame","id","win","Dom7","items","super","proto","__proto__","defineProperty","get","set","value","makeReactive","arrayFlat","arr","res","isArray","arrayFilter","selector","context","html","toCreate","tempParent","i","a","qsa","uniqueArray","arrayUnique","noTrigger","shortcut","name","trigger","on","Methods","addClass","classes","classNames","map","classList","add","removeClass","remove","hasClass","className","contains","toggleClass","toggle","attr","attrs","getAttribute","attrName","removeAttr","removeAttribute","transform","transition","duration","transitionDuration","eventType","targetSelector","listener","capture","handleLiveEvent","e","eventData","dom7EventData","unshift","is","parents","k","handleEvent","events","j","event","dom7LiveListeners","proxyListener","dom7Listeners","off","handlers","handler","dom7proxy","splice","evt","detail","bubbles","cancelable","data","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","styles","parseFloat","outerHeight","offset","box","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","props","prop","each","text","compareWith","matches","webkitMatchesSelector","msMatchesSelector","previousSibling","eq","returnIndex","append","els","newChild","tempDiv","firstChild","prepend","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","parent","closest","find","foundElements","found","methodName","writable","delay","now","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","toString","m41","m42","o","slice","to","noExtend","nextSource","node","HTMLElement","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","side","startPosition","translate","time","startTime","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","isOutOfBound","current","animate","getTime","progress","max","min","easeProgress","cos","PI","currentPosition","scrollTo","support","deviceCached","browser","getSupport","smoothScroll","touch","DocumentTouch","passiveListener","supportsPassive","opts","gestures","calcSupport","getDevice","overrides","platform","ua","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isSafari","toLowerCase","isWebView","test","calcBrowser","priority","self","method","eventsListeners","once","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","emit","updateSize","$el","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","Number","isNaN","assign","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","label","$wrapperEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","centeredSlides","cssMode","gridEnabled","grid","rows","slideSize","initSlides","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","swiperSlideSize","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","_","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","visibleSlides","ceil","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","autoHeight","updateSlidesClasses","realIndex","activeSlide","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","loop","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","getTranslate","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","destroyed","transitionEmit","direction","step","slideTo","initial","Error","indexAsNumber","isFinite","initialSlide","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","t","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","slideReset","slideToClosest","currentSnap","slideToIndex","loopCreate","$selector","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","diff","loopDestroy","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","type","which","button","isTouched","isMoved","noSwipingClass","shadowRoot","path","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","grabCursor","setGrabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","onTouchEnd","touchEndTime","timeDiff","pathTree","composedPath","lastClickTime","currentPos","stopIndex","groupSize","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","autoplay","running","paused","run","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","passiveListeners","passive","move","cancel","updateOnWindowResize","attachEvents","bind","detachEvents","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","containerModifierClass","emitContainerClasses","fill","directionChanged","needsReLoop","changeDirection","isEnabled","disable","enable","containerEl","currentHeight","innerHeight","points","point","minRatio","sort","b","addClasses","suffixes","entries","prefix","resultClasses","item","prepareClasses","removeClasses","init","resizeObserver","createElements","url","simulateTouch","uniqueNavElements","preloadImages","updateOnImagesReady","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","update","moving","isLocked","cursor","unsetGrabCursor","wasLocked","lastSlideIndex","lastSlideRightEdge","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","extendParams","swiperParams","defaults","passedParams","eventName","$","velocity","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","setProgress","cls","getSlideClasses","slideEl","updates","view","exact","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","mount","mounted","getWrapperSelector","getWrapper","wrapper","destroy","deleteInstance","cleanStyles","object","deleteProps","static","newDefaults","m","installModule","prototypeGroup","protoMethod","use","observer","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","checkProps","element","JSSlider","pfx","bulletSize","pagination","bulletElement","clickable","hideOnClick","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","hiddenClass","progressbarFillClass","progressbarOppositeClass","clickableClass","lockClass","horizontalClass","verticalClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","total","paginationType","firstIndex","lastIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","progressbarDirection","scale","scaleX","scaleY","render","paginationHTML","numberOfBullets","_s","targetEl","isHidden","getEl","toggleEl","disabled","disabledClass","$nextEl","$prevEl","onPrevClick","onNextClick","sliderContainers","slider","setupSlider"],"sourceRoot":""}