{"version":3,"file":"common.js","mappings":"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","sources":["webpack:///./node_modules/fitvids.1.1.0/jquery.fitvids.js","webpack:///webpack/bootstrap","webpack:///./js/src/responsive-nav.jquery.js","webpack:///./node_modules/throttle-debounce/esm/index.js","webpack:///./js/src/jquery.accordion.js","webpack:///./node_modules/swiper/shared/ssr-window.esm.mjs","webpack:///./node_modules/swiper/shared/utils.mjs","webpack:///./node_modules/swiper/shared/swiper-core.mjs","webpack:///./node_modules/swiper/shared/classes-to-selector.mjs","webpack:///./node_modules/swiper/modules/a11y.mjs","webpack:///./node_modules/swiper/modules/free-mode.mjs","webpack:///./js/src/common.js"],"sourcesContent":["/*jshint browser:true */\n/*!\n* FitVids 1.1\n*\n* Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com\n* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/\n* Released under the WTFPL license - http://sam.zoy.org/wtfpl/\n*\n*/\n\n;(function( $ ){\n\n 'use strict';\n\n $.fn.fitVids = function( options ) {\n var settings = {\n customSelector: null,\n ignore: null\n };\n\n if(!document.getElementById('fit-vids-style')) {\n // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js\n var head = document.head || document.getElementsByTagName('head')[0];\n var css = '.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}';\n var div = document.createElement(\"div\");\n div.innerHTML = '

x

';\n head.appendChild(div.childNodes[1]);\n }\n\n if ( options ) {\n $.extend( settings, options );\n }\n\n return this.each(function(){\n var selectors = [\n 'iframe[src*=\"player.vimeo.com\"]',\n 'iframe[src*=\"youtube.com\"]',\n 'iframe[src*=\"youtube-nocookie.com\"]',\n 'iframe[src*=\"kickstarter.com\"][src*=\"video.html\"]',\n 'object',\n 'embed'\n ];\n\n if (settings.customSelector) {\n selectors.push(settings.customSelector);\n }\n\n var ignoreList = '.fitvidsignore';\n\n if(settings.ignore) {\n ignoreList = ignoreList + ', ' + settings.ignore;\n }\n\n var $allVideos = $(this).find(selectors.join(','));\n $allVideos = $allVideos.not('object object'); // SwfObj conflict patch\n $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video.\n\n $allVideos.each(function(){\n var $this = $(this);\n if($this.parents(ignoreList).length > 0) {\n return; // Disable FitVids on this video.\n }\n if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; }\n if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width'))))\n {\n $this.attr('height', 9);\n $this.attr('width', 16);\n }\n var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(),\n width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(),\n aspectRatio = height / width;\n if(!$this.attr('name')){\n var videoName = 'fitvid' + $.fn.fitVids._count;\n $this.attr('name', videoName);\n $.fn.fitVids._count++;\n }\n $this.wrap('
').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%');\n $this.removeAttr('height').removeAttr('width');\n });\n });\n };\n \n // Internal counter for unique video names.\n $.fn.fitVids._count = 0;\n \n// Works with either jQuery or Zepto\n})( window.jQuery || window.Zepto );\n","// 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](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","/* globals jQuery */\n\nimport { debounce } from 'throttle-debounce'\n\n/**\n * jQueryResponsiveNav module\n *\n * Usage:\n *\n * ```js\n * $.fn.responsiveNav = require('./responsive-nav.jquery.js')\n *\n * $('.my-nav-element').responsiveNav({\n * navType: 'offCanvas'\n * })\n * ```\n */\nexport default (($) => {\n\nreturn function jQueryResponsiveNav( options ) {\n\n options = $.extend({}, {\n wrapperSelector: '.site-wrapper',\n menuButtonSelector: '.menu-btn',\n menuOpenWrapperClass: 'menu-open',\n activeClass: 'active',\n dropdownSelector: '',\n navType: 'offCanvas',\n debounceTime: 150,\n closeOnOutsideClick: false,\n showTabsOnFocus: true,\n }, options)\n\n const $this = $(this),\n $wrapper = $( options.wrapperSelector ),\n $menuButton = $( options.menuButtonSelector )\n\n // target dropdown element, which may be distinct from $this\n const $dropdownElem = options.dropdownSelector ?\n $(options.dropdownSelector) :\n $this\n\n function _menuIsOpen() {\n //site wrapper has the menu-open class\n return $menuButton.hasClass( options.activeClass )\n }\n\n /*\n * CLOSE NAVIGATION SETUP\n */\n function _closeDropdownNav() {\n $dropdownElem.slideUp()\n }\n\n function _closeOffCanvasNav() {\n $wrapper.removeClass( options.menuOpenWrapperClass )\n }\n\n const closeNavStrategies = {\n dropdown: _closeDropdownNav,\n offCanvas: _closeOffCanvasNav,\n }\n\n //set what type of closeNav we want\n const closeNavStrategy = closeNavStrategies[options.navType] || _closeOffCanvasNav\n\n //THIS IS THE ACTUAL FUNCTION THAT GETS CALLED TO CLOSE THE NAV\n function closeNav() {\n closeNavStrategy()\n $menuButton.removeClass( options.activeClass )\n }\n\n /*\n * OPEN NAVIGATION SETUP\n */\n function _openDropdownNav() {\n $dropdownElem.slideDown()\n }\n\n function _openOffCanvasNav() {\n $wrapper.addClass( options.menuOpenWrapperClass )\n }\n\n const openNavStrategies = {\n dropdown: _openDropdownNav,\n offCanvas: _openOffCanvasNav,\n }\n //set what type of closeNav we want\n const openNavStrategy = openNavStrategies[options.navType] || _openOffCanvasNav\n\n //THIS IS THE ACTUAL FUNCTION THAT GETS CALLED TO OPEN THE NAV\n function openNav() {\n\n openNavStrategy();\n $menuButton.addClass( options.activeClass );\n\n if (options.closeOnOutsideClick) {\n // close the menu when the user clicks anywhere outside it\n $(options.wrapperSelector).on('touchstart, click', function _onOutsideClick(evt) {\n //if not nav container or a decendant of nav container\n if( !$this.is(evt.target) && $this.has(evt.target).length === 0 ) {\n closeNav();\n }\n });\n }\n }\n\n //KEYBOARD FUNCTIONALITY\n if( options.showTabsOnFocus ) {\n // Adding quick Tab Functionality for Navigation\n $('nav.main-nav > ul > li.menu-item-has-children > a').on('focus', function () {\n $(this).siblings('ul').addClass('tab-show');\n }).on('blur',function(){\n $(this).siblings('ul').removeClass('tab-show');\n });\n\n // focusing on sub menu item show its dropdown\n $('nav.main-nav > ul > li.menu-item-has-children > ul > li > a').on('focus', function () {\n $(this).parent().parent('ul').addClass('tab-show');\n }).on('blur',function(){\n $(this).parent().parent('ul').removeClass('tab-show');\n });\n }\n\n const sublevelNav = function() {\n\t\t$this.find('.nav-expander').each(function(){\n\t\t\t$(this).on('touchstart, click', function(event) {\n\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t//if menu is open and the subnav is not visible and subnav exists\n\t\t\t\tif ( _menuIsOpen() && !$(this).parent().next().is(':visible') && $(this).parent().next().length > 0) {\n\n\t\t\t\t\t//close what's already open at the same level\n\t\t\t\t\t//remove toggle class from the li and slide up its child ul\n\t\t\t\t\t$(this).parent().parent().siblings().removeClass('toggle').children('ul').slideUp(250);\n\n\t\t\t\t\t//expand current click\n\t\t\t\t\t$(this).parent().parent().addClass('toggle');\n\t\t\t\t\t$(this).parent().next('ul').slideDown(250);\n\n\t\t\t\t}\n\t\t\t\telse if ( _menuIsOpen() && $(this).parent().next('ul').is(':visible') ) {\n\t\t\t\t\t\t//close this item\n\t\t\t\t\t\t$(this).parent().parent().removeClass('toggle');\n\t\t\t\t\t\t$(this).parent().next('ul').slideUp(250);\n\t\t\t\t}\n\n\t\t\t}); //end bind\n\t\t});//end find span.dropper\n\t};//end sublevelNav\n\n const activeToggleFn = function(){\n //on mobile check for active navigation and set open accordingly\n if( $menuButton.is(':visible') ){\n\n $this.find('li.current_page_item, li.current_page_ancestor').each(function(){\n if( !$(this).hasClass('toggle') ){\n $(this).addClass('toggle');\n }\n if( !$(this).children('ul').is(':visible') ){\n $(this).children('ul').show();\n }\n });\n }\n } //end activeToggleFn\n\n\n $menuButton.on( 'touchstart, click', function(event) {\n\n event.stopPropagation();\n event.preventDefault();\n\n if ( _menuIsOpen() ) {\n closeNav();\n }\n else{\n openNav();\n }\n }) //end button on\n\n sublevelNav()\n activeToggleFn()\n\n $(window).on('resize', debounce(options.debounceTime, function() {\n\n if( !$menuButton.is(':visible') ) {\n //close mobile menu\n if ( _menuIsOpen() ) {\n //closeNav() - we dont want to run the function cause we dont want all transitions with the dropdown\n $menuButton.removeClass( options.activeClass );\n $wrapper.removeClass( options.menuOpenWrapperClass );\n $this.removeAttr('style');\n }\n //remove any inline styles from subnavigation\n $this.find( 'ul' ).removeAttr( 'style' )\n $this.find('.menu-item-has-children').removeClass('toggle')\n $this.removeAttr('style')\n }\n else{\n activeToggleFn()\n }\n\n }));\n\n return this;\n}\n\n})(jQuery)\n","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)\n * are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,\n * as-is, to `callback` when the throttled-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds\n * while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed\n * one final time after the last throttled-function call. (After the throttled-function has not been called for\n * `delay` milliseconds, the internal counter is reset).\n * @param {boolean} [options.noLeading] - Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback\n * immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that\n * callback will never executed if both noLeading = true and noTrailing = true.\n * @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is\n * false (at end), schedule `callback` to execute after `delay` ms.\n *\n * @returns {Function} A new, throttled, function.\n */\nfunction throttle (delay, callback, options) {\n var _ref = options || {},\n _ref$noTrailing = _ref.noTrailing,\n noTrailing = _ref$noTrailing === void 0 ? false : _ref$noTrailing,\n _ref$noLeading = _ref.noLeading,\n noLeading = _ref$noLeading === void 0 ? false : _ref$noLeading,\n _ref$debounceMode = _ref.debounceMode,\n debounceMode = _ref$debounceMode === void 0 ? undefined : _ref$debounceMode;\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n\n\n var timeoutID;\n var cancelled = false; // Keep track of the last time `callback` was executed.\n\n var lastExec = 0; // Function to clear existing timeout\n\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n } // Function to cancel next exec\n\n\n function cancel(options) {\n var _ref2 = options || {},\n _ref2$upcomingOnly = _ref2.upcomingOnly,\n upcomingOnly = _ref2$upcomingOnly === void 0 ? false : _ref2$upcomingOnly;\n\n clearExistingTimeout();\n cancelled = !upcomingOnly;\n }\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n\n\n function wrapper() {\n for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {\n arguments_[_key] = arguments[_key];\n }\n\n var self = this;\n var elapsed = Date.now() - lastExec;\n\n if (cancelled) {\n return;\n } // Execute `callback` and update the `lastExec` timestamp.\n\n\n function exec() {\n lastExec = Date.now();\n callback.apply(self, arguments_);\n }\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n\n\n function clear() {\n timeoutID = undefined;\n }\n\n if (!noLeading && debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`\n * and noLeading != true.\n */\n exec();\n }\n\n clearExistingTimeout();\n\n if (debounceMode === undefined && elapsed > delay) {\n if (noLeading) {\n /*\n * In throttle mode with noLeading, if `delay` time has\n * been exceeded, update `lastExec` and schedule `callback`\n * to execute after `delay` ms.\n */\n lastExec = Date.now();\n\n if (!noTrailing) {\n timeoutID = setTimeout(debounceMode ? clear : exec, delay);\n }\n } else {\n /*\n * In throttle mode without noLeading, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n }\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n\n wrapper.cancel = cancel; // Return the wrapper function.\n\n return wrapper;\n}\n\n/* eslint-disable no-undefined */\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n *\n * @returns {Function} A new, debounced function.\n */\n\nfunction debounce (delay, callback, options) {\n var _ref = options || {},\n _ref$atBegin = _ref.atBegin,\n atBegin = _ref$atBegin === void 0 ? false : _ref$atBegin;\n\n return throttle(delay, callback, {\n debounceMode: atBegin !== false\n });\n}\n\nexport { debounce, throttle };\n//# sourceMappingURL=index.js.map\n","/**\n * ## jQueryAccordion module Usage\n *\n * ### Markup:\n *
\n *

Tab Title

\n *
Panel Content
\n *

Tab Title

\n *
Panel Content
\n *
\n *\n * ### JS:\n * $.fn.accordion = require('./jquery.accordion.js');\n * $('dl.accordion').accordion();\n */\nexport default (($) => {\n\n return function() {\n\n //VARIABLES\n const $tabs = $('dl.accordion dt'),\n hashtag = window.location.hash,\n panelId = window.location.hash.replace('#','');\n\n //FUNCTIONS\n const toggleAccPanelFn = function( $this_hash, $this_tab, $this_panel ){\n if( $this_tab.hasClass('active') && $this_panel.is(':visible') ){\n $this_panel.slideUp();\n $this_tab.removeClass('active').addClass('inactive');\n }\n else{\n $this_panel.slideDown();\n $this_tab.addClass('active').removeClass('inactive');\n window.location.hash = $this_hash;\n }\n\n }\n\n //TAB ANCHOR CLICKS\n $tabs.find('a').on('click', function(e){\n e.preventDefault()\n const this_hash = $(this).attr('href');\n const this_tab = $(this).closest('dt');\n const this_panel = this_tab.next();\n\n toggleAccPanelFn(this_hash, this_tab, this_panel);\n });\n\n //PRESELECTED OPEN PANEL (USE OF HASHTAGS)\n if( hashtag && $('dl.accordion dt[data-id=\"'+panelId+'\"]').length>0 ){\n \n const selected_tab = $('dl.accordion dt[data-id=\"'+panelId+'\"]');\n const selected_panel = selected_tab.next();\n const accordionPos = selected_tab.offset().top;\n \n //open panel\n toggleAccPanelFn(hashtag, selected_tab, selected_panel)\n\n //set scroll position to the open accordion panel\n $(document).scrollTop(accordionPos);\n //$('html, body').animate({ scrollTop: accordionPos }, 500);\n\n }\n }\n\n})(jQuery)\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 && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\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}\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 { getWindow as a, getDocument as g };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\n\nfunction classesToTokens(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return classes.trim().split(' ').filter(c => !!c.trim());\n}\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\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 if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\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 return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\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 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 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 return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\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 const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\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 if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\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 swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n return [...element.children].filter(el => el.matches(selector));\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\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}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, elementIndex as g, classesToTokens as h, getTranslate as i, elementTransitionEnd as j, isObject as k, getSlideTransformEl as l, elementStyle as m, nextTick as n, elementNextAll as o, elementPrevAll as p, animateCSSModeScroll as q, showWarning as r, setCSSProperty as s, extend as t, deleteProps as u };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, m as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, o as elementNextAll, p as elementPrevAll, i as getTranslate, q as animateCSSModeScroll, n as nextTick, r as showWarning, c as createElement, d as now, t as extend, g as elementIndex, u as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nlet deviceCached;\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\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 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';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\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 }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n let needPerspectiveFix = false;\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 if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n return {\n isSafari: needPerspectiveFix || isSafari(),\n needPerspectiveFix,\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\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 if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\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}\n\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\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 (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\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 const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\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 once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\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 emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\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 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 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\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, '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}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\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 = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\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 if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\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 if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slides);\n } else if (swiper.grid) {\n swiper.grid.unsetSlides();\n }\n\n // Calc slides\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 for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[swiper.getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', 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 if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\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 if (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\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 swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= 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 if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\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 Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(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 if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\n\nfunction 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 if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(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 }\n\n // Find new height from highest slide in view\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 }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\n\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\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;\n\n // Visible Slides\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass);\n });\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides[i].classList.add(params.slideVisibleClass);\n }\n if (isFullyVisible) {\n slides[i].classList.add(params.slideFullyVisibleClass);\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n });\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0];\n nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0];\n prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0];\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n // Active classes\n activeSlide.classList.add(params.slideActiveClass);\n if (gridEnabled) {\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\n } else {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\n }\n }\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\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 }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\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 if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0];\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\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 if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('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 if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\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;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\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 wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\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 if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\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.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\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}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\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 if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\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 const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\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 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 }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = 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 wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\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 if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\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.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides\n } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled) return swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\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 if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\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 if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\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 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 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 if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\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}\n\nfunction slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\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 = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const initSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = amountOfSlides => {\n for (let i = 0; i < amountOfSlides; i += 1) {\n const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n swiper.slidesEl.append(slideEl);\n }\n };\n if (shouldFillGroup) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else if (shouldFillGrid) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else {\n initSlides();\n }\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n const {\n centeredSlides\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n let slidesPerView = params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) {\n loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n }\n loopedSlides += params.loopAdditionalSlides;\n swiper.loopedSlides = loopedSlides;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (slides.length < slidesPerView + loopedSlides) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n } else if (gridEnabled && params.grid.fill === 'row') {\n showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n }\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n }\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else {\n prependSlidesIndexes.push(cols - index - 1);\n }\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n slides.forEach((slide, slideIndex) => {\n if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n });\n } else {\n appendSlidesIndexes.push(index);\n }\n }\n }\n swiper.__preventObserver__ = true;\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n swiper.slides.forEach((slide, slideIndex) => {\n swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n });\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + slidesPrepended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n if (setTranslate) {\n const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\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 if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\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 let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction 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 if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\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 return;\n }\n if (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 if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\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 if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\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 if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\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 if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetTouch;\n const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n if (!isTouchEvent) {\n if (data.touchId !== null) return; // return from pointer if we use touch\n if (e.pointerId !== data.pointerId) return;\n targetTouch = e;\n } else {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\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 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 }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 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 clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction 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 if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\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 if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\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 // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\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 if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\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 return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\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 return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction 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}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\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 }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses,\n removeClasses\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\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 if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\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 eventsPrefix: 'swiper',\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\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: 5,\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 // loop\n loop: false,\n loopAddBlankSlides: true,\n loopAdditionalSlides: 0,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\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 maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-blank',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideFullyVisibleClass: 'swiper-slide-fully-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\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 if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\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 if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\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 });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\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 if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\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 // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\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 cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\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: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\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');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\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 getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\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 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 getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(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 slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\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 if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? slides[activeIndex].swiperSlideSize : 0;\n let breakLoop;\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 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 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 if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\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 let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(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 changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === 'SWIPER-CONTAINER') {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\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');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n el.removeAttribute('style');\n wrapperEl.removeAttribute('style');\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.el.swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\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]);\n\nexport { Swiper as S, defaults as d };\n","function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}\n\nexport { classesToSelector as c };\n","import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElement, g as elementIndex } from '../shared/utils.mjs';\n\nfunction A11y(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group',\n id: null\n }\n });\n swiper.a11y = {\n clicked: false\n };\n let liveRegion = null;\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.innerHTML = '';\n notification.innerHTML = message;\n }\n const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\n function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n function makeElFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '0');\n });\n }\n function makeElNotFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '-1');\n });\n }\n function addElRole(el, role) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('role', role);\n });\n }\n function addElRoleDescription(el, description) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-roledescription', description);\n });\n }\n function addElControls(el, controls) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-controls', controls);\n });\n }\n function addElLabel(el, label) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-label', label);\n });\n }\n function addElId(el, id) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('id', id);\n });\n }\n function addElLive(el, live) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-live', live);\n });\n }\n function disableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', true);\n });\n }\n function enableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', false);\n });\n }\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const targetEl = e.target;\n if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {\n if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return;\n }\n if (swiper.navigation && swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))) {\n targetEl.click();\n }\n }\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (prevEl) {\n if (swiper.isBeginning) {\n disableEl(prevEl);\n makeElNotFocusable(prevEl);\n } else {\n enableEl(prevEl);\n makeElFocusable(prevEl);\n }\n }\n if (nextEl) {\n if (swiper.isEnd) {\n disableEl(nextEl);\n makeElNotFocusable(nextEl);\n } else {\n enableEl(nextEl);\n makeElFocusable(nextEl);\n }\n }\n }\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.forEach(bulletEl => {\n if (swiper.params.pagination.clickable) {\n makeElFocusable(bulletEl);\n if (!swiper.params.pagination.renderBullet) {\n addElRole(bulletEl, 'button');\n addElLabel(bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, elementIndex(bulletEl) + 1));\n }\n }\n if (bulletEl.matches(classesToSelector(swiper.params.pagination.bulletActiveClass))) {\n bulletEl.setAttribute('aria-current', 'true');\n } else {\n bulletEl.removeAttribute('aria-current');\n }\n });\n }\n const initNavEl = (el, wrapperId, message) => {\n makeElFocusable(el);\n if (el.tagName !== 'BUTTON') {\n addElRole(el, 'button');\n el.addEventListener('keydown', onEnterOrSpaceKey);\n }\n addElLabel(el, message);\n addElControls(el, wrapperId);\n };\n const handlePointerDown = () => {\n swiper.a11y.clicked = true;\n };\n const handlePointerUp = () => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (!swiper.destroyed) {\n swiper.a11y.clicked = false;\n }\n });\n });\n };\n const handleFocus = e => {\n if (swiper.a11y.clicked) return;\n const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;\n if (swiper.isHorizontal()) {\n swiper.el.scrollLeft = 0;\n } else {\n swiper.el.scrollTop = 0;\n }\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n };\n const initSlides = () => {\n const params = swiper.params.a11y;\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);\n }\n if (params.slideRole) {\n addElRole(swiper.slides, params.slideRole);\n }\n const slidesLength = swiper.slides.length;\n if (params.slideLabelMessage) {\n swiper.slides.forEach((slideEl, index) => {\n const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel(slideEl, ariaLabelMessage);\n });\n }\n };\n const init = () => {\n const params = swiper.params.a11y;\n swiper.el.append(liveRegion);\n\n // Container\n const containerEl = swiper.el;\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);\n }\n if (params.containerMessage) {\n addElLabel(containerEl, params.containerMessage);\n }\n\n // Wrapper\n const wrapperEl = swiper.wrapperEl;\n const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId(wrapperEl, wrapperId);\n addElLive(wrapperEl, live);\n\n // Slide\n initSlides();\n\n // Navigation\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));\n }\n if (prevEl) {\n prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = Array.isArray(swiper.pagination.el) ? swiper.pagination.el : [swiper.pagination.el];\n paginationEl.forEach(el => {\n el.addEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n\n // Tab focus\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('pointerdown', handlePointerDown, true);\n swiper.el.addEventListener('pointerup', handlePointerUp, true);\n };\n function destroy() {\n if (liveRegion) liveRegion.remove();\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n if (prevEl) {\n prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = Array.isArray(swiper.pagination.el) ? swiper.pagination.el : [swiper.pagination.el];\n paginationEl.forEach(el => {\n el.removeEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n\n // Tab focus\n swiper.el.removeEventListener('focus', handleFocus, true);\n swiper.el.removeEventListener('pointerdown', handlePointerDown, true);\n swiper.el.removeEventListener('pointerup', handlePointerUp, true);\n }\n on('beforeInit', () => {\n liveRegion = createElement('span', swiper.params.a11y.notificationClass);\n liveRegion.setAttribute('aria-live', 'assertive');\n liveRegion.setAttribute('aria-atomic', 'true');\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\n if (!swiper.params.a11y.enabled) return;\n initSlides();\n });\n on('fromEdge toEdge afterInit lock unlock', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}\n\nexport { A11y as default };\n","import { d as now, j as elementTransitionEnd } from '../shared/utils.mjs';\n\nfunction freeMode(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n once\n } = _ref;\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n function onTouchStart() {\n if (swiper.params.cssMode) return;\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n function onTouchMove() {\n if (swiper.params.cssMode) return;\n const {\n touchEventsData: data,\n touches\n } = swiper;\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n function onTouchEnd(_ref2) {\n let {\n currentPos\n } = _ref2;\n if (swiper.params.cssMode) return;\n const {\n params,\n wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper;\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n emit('_freeModeStaticRelease');\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}\n\nexport { freeMode as default };\n","/* globals jQuery */\nimport 'fitvids.1.1.0'\n\nimport responsiveNav from './responsive-nav.jquery.js'\nimport accordion from './jquery.accordion.js'\n\nimport Swiper from 'swiper';\nimport {A11y, FreeMode} from 'swiper/modules';\n\n(($) => {\n\n $.fn.responsiveNav = responsiveNav\n $.fn.accordion = accordion\n\n const html = document.querySelector('html');\n html.classList.remove('no-js')\n html.classList.add('js');\n\n // Make nav menu nice & responsive\n $('nav.main-nav').responsiveNav({\n navType: 'offCanvas',\n closeOnOutsideClick: true\n });\n\n // Responsive Videos\n $('.rtecontent').fitVids();\n\n // Accordions\n $('dl.accordion').accordion();\n\n var swiper = new Swiper(\".swiper\", {\n modules: [A11y,FreeMode],\n slidesPerView: 1,\n initialSlide: 1,\n spaceBetween: 30,\n centerInsufficientSlides: true,\n freeMode: true,\n watchSlidesProgress: true,\n breakpoints: {\n 650: {\n slidesPerView: 2,\n initialSlide: 1\n },\n 768: {\n slidesPerView: 3,\n initialSlide: 0\n },\n 1024: {\n slidesPerView: 4,\n initialSlide: 0\n }\n\n }\n });\n\n\n})(jQuery)\n"],"names":["$","fn","fitVids","options","settings","customSelector","ignore","document","getElementById","head","getElementsByTagName","div","createElement","innerHTML","appendChild","childNodes","extend","this","each","selectors","push","ignoreList","$allVideos","find","join","not","$this","parents","length","tagName","toLowerCase","parent","css","isNaN","attr","aspectRatio","parseInt","height","width","videoName","_count","wrap","removeAttr","window","jQuery","Zepto","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","wrapperSelector","menuButtonSelector","menuOpenWrapperClass","activeClass","dropdownSelector","navType","debounceTime","closeOnOutsideClick","showTabsOnFocus","$wrapper","$menuButton","$dropdownElem","_menuIsOpen","hasClass","_closeOffCanvasNav","removeClass","closeNavStrategy","dropdown","slideUp","offCanvas","closeNav","_openOffCanvasNav","addClass","openNavStrategy","slideDown","on","siblings","activeToggleFn","is","children","show","event","stopPropagation","preventDefault","evt","target","has","next","delay","callback","_ref$atBegin","atBegin","timeoutID","_ref","_ref$noTrailing","noTrailing","_ref$noLeading","noLeading","_ref$debounceMode","debounceMode","cancelled","lastExec","clearExistingTimeout","clearTimeout","wrapper","_len","arguments","arguments_","Array","_key","self","elapsed","Date","now","exec","apply","clear","setTimeout","cancel","_ref2$upcomingOnly","upcomingOnly","throttle","debounce","$tabs","hashtag","location","hash","panelId","replace","toggleAccPanelFn","$this_hash","$this_tab","$this_panel","e","this_hash","this_tab","closest","this_panel","selected_tab","selected_panel","accordionPos","offset","top","scrollTop","obj","constructor","Object","src","keys","forEach","key","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","createEvent","initEvent","style","setAttribute","createElementNS","importNode","host","hostname","href","origin","pathname","protocol","search","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","screen","matchMedia","requestAnimationFrame","cancelAnimationFrame","id","win","o","prototype","toString","call","slice","to","noExtend","i","nextSource","node","HTMLElement","nodeType","keysArray","filter","indexOf","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","el","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","side","startPosition","translate","time","startTime","duration","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","element","selector","matches","showWarning","text","console","warn","err","tag","classes","classList","add","isArray","trim","split","c","elementStyle","prop","child","previousSibling","fireCallBack","size","includeMargins","parseFloat","offsetWidth","support","deviceCached","browser","getSupport","smoothScroll","documentElement","touch","DocumentTouch","calcSupport","eventsEmitter","events","handler","priority","eventsListeners","destroyed","method","once","onceHandler","off","__emitterProxy","args","onAny","eventsAnyListeners","offAny","index","splice","eventHandler","emit","data","context","_len2","_key2","unshift","processLazyPreloader","imageEl","slideEl","isElement","slideClass","lazyEl","lazyPreloaderClass","shadowRoot","remove","unlazy","slides","removeAttribute","preload","amount","lazyPreloadPrevNext","slidesPerView","slidesPerViewDynamic","ceil","activeIndex","grid","rows","activeColumn","preloadColumns","from","map","_","includes","column","slideIndexLastInView","rewind","loop","realIndex","update","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","Number","assign","updateSlides","getDirectionPropertyValue","label","getDirectionLabel","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","slideSize","initSlides","unsetSlides","shouldResetSlideSize","breakpoints","slide","updateSlide","slideStyles","currentTransform","transform","currentWebKitTransform","webkitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","groupSize","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","contains","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","offsetHeight","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","slideVisibleClass","slideFullyVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","activeSlide","prevSlide","nextSlide","slideActiveClass","slideNextClass","slidePrevClass","nextEls","nextElementSibling","elementNextAll","prevEls","previousElementSibling","prev","elementPrevAll","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","firstSlideInColumn","activeSlideIndex","getAttribute","initialized","runCallbacksOnInit","updateClickedSlide","path","pathEl","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","transitionEmit","runCallbacks","direction","step","slideTo","internal","initial","animating","preventInteractionOnTransition","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","setTranslate","transitionStart","transitionEnd","isH","t","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","behavior","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","targetSlideIndex","cols","needLoopFix","loopFix","slideRealIndex","slideNext","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","_clientLeft","clientLeft","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","slideSelector","loopedSlides","getSlideIndex","loopCreate","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","slideBlankClass","append","loopAddBlankSlides","recalcSlides","_temp","byController","byMousewheel","loopAdditionalSlides","fill","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","__preventObserver__","swiperLoopMoveDOM","prepend","currentSlideTranslate","diff","touchEventsData","startTranslate","currentTranslate","shift","controller","control","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","innerWidth","onTouchStart","originalEvent","type","pointerId","targetTouches","touchId","identifier","pageX","touches","simulateTouch","pointerType","targetEl","touchEventsTarget","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","found","getRootNode","closestElement","allowClick","swipeHandler","currentX","currentY","pageY","startY","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","previousX","previousY","diffX","diffY","sqrt","touchAngle","atan2","cancelable","touchMoveStopPropagation","nested","touchesDiff","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowLoopFix","getTranslate","bubbles","dispatchEvent","allowMomentumBounce","grabCursor","setGrabCursor","loopSwapReset","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","isSafari","isWebView","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","resizeTimeout","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","newProgress","previousTranslate","scrollLeft","onLoad","onDocumentTouchStart","documentTouchHandlerProceeded","touchAction","device","capture","domMethod","swiperMethod","passive","updateOnWindowResize","ios","android","isGridEnabled","defaults","init","resizeObserver","createElements","eventsPrefix","url","virtualTranslate","breakpointsBase","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","a","MozTransform","OTransform","MsTransform","msTransform","m41","m42","x","y","translateTo","translateBounds","newTranslate","onTranslateToWrapperTransitionEnd","transition","transitionDuration","transitionDelay","moving","isLocked","cursor","unsetGrabCursor","attachEvents","bind","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","value","sort","b","wasLocked","lastSlideRightEdge","addClasses","classNames","suffixes","entries","prefix","resultClasses","item","prepareClasses","removeClasses","extendedDefaults","Swiper","swipers","newParams","overrides","platform","ua","screenWidth","screenHeight","match","ipad","ipod","iphone","windows","macos","os","calcDevice","needPerspectiveFix","String","major","minor","num","test","calcBrowser","modules","__modules__","mod","extendParams","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","property","setProgress","cls","className","getSlideClasses","updates","view","exact","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","parentNode","getWrapperSelector","slideSlots","hostEl","lazyElements","destroy","deleteInstance","cleanStyles","object","deleteProps","static","newDefaults","m","installModule","A11y","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","clicked","liveRegion","notify","message","notification","makeElementsArray","makeElFocusable","subEl","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElLabel","disableEl","enableEl","onEnterOrSpaceKey","keyCode","pagination","bulletClass","click","hasPagination","bullets","hasClickablePagination","clickable","initNavEl","wrapperId","controls","addElControls","handlePointerDown","handlePointerUp","handleFocus","isActive","isVisible","sourceCapabilities","firesTouchEvents","repeat","round","random","live","addElLive","updateNavigation","bulletEl","renderBullet","bulletActiveClass","updatePagination","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","sticky","minimumVelocity","position","_ref2","lastMoveEvent","pop","velocityEvent","distance","momentumDuration","momentumDistance","newPosition","afterBouncePosition","doBounce","bounceAmount","needsLoopFix","j","moveDistance","currentSlideSize","prototypeGroup","protoMethod","use","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","parentElement","disconnect","responsiveNav","accordion","html","FreeMode"],"sourceRoot":""}