{"version":3,"file":"front.js","sources":["../../node_modules/mdn-polyfills/NodeList.prototype.forEach.js","../../sources/javascripts/front/components/toggler/Toggler.js","../../sources/javascripts/front/components/navigation/Navigation.js","../../node_modules/vh-check/dist/vh-check.js","../../sources/javascripts/front/components/Header/Header.js","../../sources/javascripts/front/components/Header/lifecycle.js","../../node_modules/@lunaweb/vega-reactor-js/src/patterns/Component.js","../../sources/javascripts/front/components/Dropdown/Dropdown.js","../../sources/javascripts/front/components/Dropdown/lifecycle.js","../../node_modules/debounce/index.js","../../sources/javascripts/front/components/Breadcrumbs/Breadcrumbs.js","../../sources/javascripts/front/components/Breadcrumbs/lifecycle.js","../../sources/javascripts/front/components/Details/Details.js","../../node_modules/swiper/shared/ssr-window.esm.mjs","../../sources/javascripts/front/components/Details/lifecycle.js","../../node_modules/swiper/shared/utils.mjs","../../node_modules/swiper/shared/swiper-core.mjs","../../node_modules/swiper/shared/create-element-if-not-defined.mjs","../../node_modules/swiper/modules/navigation.mjs","../../node_modules/swiper/shared/classes-to-selector.mjs","../../node_modules/swiper/modules/pagination.mjs","../../node_modules/swiper/modules/autoplay.mjs","../../sources/javascripts/front/components/slider/Slider.js","../../sources/javascripts/front/components/slider/lifecycle.js","../../sources/javascripts/front/components/Loadix/Loadix.js","../../sources/javascripts/front/components/Loadix/lifecycle.js","../../node_modules/glightbox/dist/js/glightbox.min.js","../../sources/javascripts/front/components/Glightbox/Glightbox.js","../../sources/javascripts/front/components/Glightbox/lifecycle.js","../../sources/javascripts/front/components/Glightboxbutton/Glightboxbutton.js","../../sources/javascripts/front/components/Glightboxbutton/lifecycle.js","../../sources/javascripts/front.js"],"sourcesContent":["window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=function(o,t){t=t||window;for(var i=0;i {\n if (toggler.target !== e.detail.toggler.target && toggler.expanded) {\n toggler.hide();\n }\n });\n this.toggler = e.detail.toggler.element;\n this.updateBackdrop();\n this.element.dispatchEvent(new CustomEvent('navigation:update'));\n }\n\n updateBackdrop() {\n let hasTogglerExpanded = false;\n\n this.togglers.forEach((toggler) => {\n toggler.expanded ? hasTogglerExpanded = true : hasTogglerExpanded;\n })\n\n if(hasTogglerExpanded) {\n this.hasMegaMenu = true;\n this.header.classList.add('has-megamenu');\n } else {\n this.hasMegaMenu = false;\n this.header.classList.remove('has-megamenu');\n }\n }\n\n mount() {\n this.element.querySelectorAll('[data-navigation-toggler]').forEach((element) => {\n const target = document.getElementById(element.dataset.navigationToggler);\n const toggler = new Toggler(element, target, true);\n this.togglers.push(toggler);\n\n element.addEventListener('toggler:hide', this.handleTogglerHide);\n element.addEventListener('toggler:show', this.handleTogglerShow);\n element.addEventListener('toggler:change', this.handleTargetChange);\n\n toggler.mount();\n });\n }\n\n unmount() {\n this.hasMegaMenu = false;\n this.header.classList.remove('has-megamenu');\n\n this.togglers.forEach((toggler) => {\n toggler.element.removeEventListener('toggler:hide', this.handleTogglerHide);\n toggler.element.removeEventListener('toggler:show', this.handleTogglerShow);\n toggler.element.removeEventListener('toggler:change', this.handleTargetChange);\n toggler.unmount();\n });\n\n this.togglers = [];\n }\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.vhCheck = factory());\n}(this, (function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\n\n // don't know a better way to get the size of a CSS 100vh…\r\n function createTestElement() {\r\n var testElement = document.createElement('div');\r\n testElement.style.cssText =\r\n 'position: fixed; top: 0; height: 100vh; pointer-events: none;';\r\n document.documentElement.insertBefore(testElement, document.documentElement.firstChild);\r\n return testElement;\r\n }\r\n function removeTestElement(element) {\r\n document.documentElement.removeChild(element);\r\n }\r\n // in some browsers this will be bigger than window.innerHeight\r\n function checkSizes() {\r\n var vhTest = createTestElement();\r\n var windowHeight = window.innerHeight;\r\n var vh = vhTest.offsetHeight;\r\n var offset = vh - windowHeight;\r\n removeTestElement(vhTest);\r\n return {\r\n vh: vh,\r\n windowHeight: windowHeight,\r\n offset: offset,\r\n isNeeded: offset !== 0,\r\n value: 0,\r\n };\r\n }\r\n // export\r\n function noop() { }\r\n function computeDifference() {\r\n var sizes = checkSizes();\r\n sizes.value = sizes.offset;\r\n return sizes;\r\n }\r\n function redefineVhUnit() {\r\n var sizes = checkSizes();\r\n sizes.value = sizes.windowHeight * 0.01;\r\n return sizes;\r\n }\n\n var methods = /*#__PURE__*/Object.freeze({\n noop: noop,\n computeDifference: computeDifference,\n redefineVhUnit: redefineVhUnit\n });\n\n function isString(text) {\r\n return typeof text === \"string\" && text.length > 0;\r\n }\r\n function isFunction(f) {\r\n return typeof f === \"function\";\r\n }\r\n var defaultOptions = Object.freeze({\r\n cssVarName: 'vh-offset',\r\n redefineVh: false,\r\n method: computeDifference,\r\n force: false,\r\n bind: true,\r\n updateOnTouch: false,\r\n onUpdate: noop,\r\n });\r\n function getOptions(options) {\r\n // old options handling: only redefine the CSS var name\r\n if (isString(options)) {\r\n return __assign({}, defaultOptions, { cssVarName: options });\r\n }\r\n // be sure to have a configuration object\r\n if (typeof options !== 'object')\r\n return defaultOptions;\r\n // make sure we have the right options to start with\r\n var finalOptions = {\r\n force: options.force === true,\r\n bind: options.bind !== false,\r\n updateOnTouch: options.updateOnTouch === true,\r\n onUpdate: isFunction(options.onUpdate) ? options.onUpdate : noop,\r\n };\r\n // method change\r\n var redefineVh = options.redefineVh === true;\r\n finalOptions.method =\r\n methods[redefineVh ? 'redefineVhUnit' : 'computeDifference'];\r\n finalOptions.cssVarName = isString(options.cssVarName)\r\n ? options.cssVarName\r\n : redefineVh\r\n ? /*\r\n when redefining vh unit we follow this article name convention\r\n https://css-tricks.com/the-trick-to-viewport-units-on-mobile/\r\n */\r\n 'vh'\r\n : defaultOptions.cssVarName;\r\n return finalOptions;\r\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\r\n var passiveSupported = false;\r\n var eventListeners = [];\r\n /* istanbul ignore next */\r\n try {\r\n var options = Object.defineProperty({}, \"passive\", {\r\n get: function () {\r\n passiveSupported = true;\r\n },\r\n });\r\n window.addEventListener(\"test\", options, options);\r\n window.removeEventListener(\"test\", options, options);\r\n }\r\n catch (err) {\r\n passiveSupported = false;\r\n }\r\n function addListener(eventName, callback) {\r\n eventListeners.push({\r\n eventName: eventName,\r\n callback: callback,\r\n });\r\n window.addEventListener(eventName, callback, \r\n /* istanbul ignore next */\r\n passiveSupported ? { passive: true } : false);\r\n }\r\n function removeAll() {\r\n eventListeners.forEach(function (config) {\r\n window.removeEventListener(config.eventName, config.callback);\r\n });\r\n eventListeners = [];\r\n }\n\n function updateCssVar(cssVarName, result) {\r\n document.documentElement.style.setProperty(\"--\" + cssVarName, result.value + \"px\");\r\n }\r\n function formatResult(sizes, options) {\r\n return __assign({}, sizes, { unbind: removeAll, recompute: options.method });\r\n }\r\n function vhCheck(options) {\r\n var config = Object.freeze(getOptions(options));\r\n var result = formatResult(config.method(), config);\r\n // usefulness check\r\n if (!result.isNeeded && !config.force) {\r\n return result;\r\n }\r\n updateCssVar(config.cssVarName, result);\r\n config.onUpdate(result);\r\n // enabled by default\r\n if (!config.bind)\r\n return result;\r\n function onWindowChange() {\r\n window.requestAnimationFrame(function () {\r\n var sizes = config.method();\r\n updateCssVar(config.cssVarName, sizes);\r\n config.onUpdate(formatResult(sizes, config));\r\n });\r\n }\r\n // be sure we don't duplicates events listeners\r\n result.unbind();\r\n // listen for orientation change\r\n // - this can't be configured\r\n // - because it's convenient and not a real performance bottleneck\r\n addListener('orientationchange', onWindowChange);\r\n // listen to touch move for scrolling\r\n // – disabled by default\r\n // - listening to scrolling can be expansive…\r\n if (config.updateOnTouch) {\r\n addListener('touchmove', onWindowChange);\r\n }\r\n return result;\r\n }\n\n return vhCheck;\n\n})));\n","import 'mdn-polyfills/NodeList.prototype.forEach';\nimport Toggler from '../toggler/Toggler';\nimport Navigation from '../navigation/Navigation';\nimport vhCheck from 'vh-check';\n\nexport default class Header {\n constructor(element) {\n this.element = element;\n this.navigationTogglers = [];\n this.height = this.element.offsetHeight;\n this.hasResized = true;\n this.tmpWidth = 0;\n this.hasScrolled = true;\n this.tmpScroll = document.documentElement.scrollTop;\n this.lastDcrollDown = document.documentElement.scrollTop;\n this.navigation = null;\n this.navigationToggler = null;\n this.burger = null;\n this.direction = 'down';\n this.isPinned = false;\n this.isSticky = false;\n this.hasNavigationActive = false;\n\n this.handleNavigationHide = this.handleNavigationHide.bind(this);\n this.handleNavigationShow = this.handleNavigationShow.bind(this);\n this.handleNavigationUpdate = this.handleNavigationUpdate.bind(this);\n this.handleScroll = this.handleScroll.bind(this);\n this.handlePinned = this.handlePinned.bind(this);\n this.handleResize = this.handleResize.bind(this);\n }\n\n handleNavigationHide() {\n this.element.classList.remove('has-navigation-active');\n this.hasNavigationActive = false;\n\n this.navigation.togglers.forEach((toggler) => {\n toggler.hide(true);\n });\n\n this.navigationToggler.focus();\n this.navigationToggler = null;\n this.updateNavigation();\n }\n\n handleNavigationShow(e) {\n this.navigationToggler = e.detail.toggler.element;\n this.element.classList.add('has-navigation-active');\n this.hasNavigationActive = true;\n this.updateNavigation();\n }\n\n handleNavigationUpdate() {\n this.updateNavigation();\n }\n\n handlePinned() {\n this.element.removeEventListener('transitionend', this.handlePinned);\n this.element.classList.remove('is-pinned');\n document.querySelector(\"body\").classList.remove('is-pinned');\n this.element.classList.remove('is-leaving');\n this.isPinned = false;\n }\n\n handleScroll() {\n this.hasScrolled = true;\n }\n\n handleResize() {\n this.hasResized = true;\n }\n\n calculate() {\n const vh = vhCheck();\n this.height = this.element.offsetHeight;\n let scrollbarWidth = window.innerWidth - document.body.clientWidth;\n document.documentElement.style.setProperty(\"--scrollbarWidth\", `${scrollbarWidth}px`);\n document.documentElement.style.setProperty('--vh', `${window.innerHeight/100}px`);\n }\n\n updateNavigation() {\n let isNavigationHasTogglerExpanded = false;\n\n this.navigation.togglers.forEach((toggler) => {\n if (!toggler.target.contains(toggler.element)) {\n isNavigationHasTogglerExpanded = toggler.expanded === true ? true : isNavigationHasTogglerExpanded;\n }\n });\n\n this.calculate();\n }\n\n updateResize() {\n if (this.tmpWidth !== this.element.offsetWidth) {\n this.height = this.element.offsetHeight;\n this.navigationTogglers.forEach((toggler) => {\n const isTogglable = window.getComputedStyle(this.burger).getPropertyValue('display') !== 'none';\n\n if (toggler.mounted !== isTogglable) {\n if (isTogglable) {\n toggler.mount();\n } else {\n toggler.unmount();\n this.element.classList.remove('has-navigation-active');\n this.hasNavigationActive = false;\n }\n }\n });\n\n this.tmpWidth = this.element.offsetWidt;\n this.calculate();\n }\n }\n\n updateScroll() {\n let conditionSticky;\n if(this.element.classList.contains(\"c-header--landing\")) {\n conditionSticky = !this.hasNavigationActive;\n }else {\n conditionSticky = !this.hasNavigationActive && !this.navigation.hasMegaMenu\n }\n if(conditionSticky) {\n if(document.documentElement.scrollTop > this.tmpScroll) {\n this.lastDcrollDown = document.documentElement.scrollTop;\n this.direction = 'down';\n } else {\n this.direction = 'up';\n }\n\n if (document.documentElement.scrollTop > this.height) {\n this.element.classList.add('is-sticky');\n this.isSticky = true;\n this.calculate();\n } else {\n this.element.classList.remove('is-sticky');\n this.element.classList.remove('is-pinned');\n document.querySelector(\"body\").classList.remove('is-pinned');\n this.isSticky = false;\n this.isPinned = false;\n this.calculate();\n }\n\n if(this.isSticky) {\n if (this.direction === 'up') {\n const delta = this.lastDcrollDown - document.documentElement.scrollTop;\n if(delta > 150) {\n this.element.classList.add('is-pinned');\n document.querySelector(\"body\").classList.add('is-pinned');\n this.isPinned = true;\n }\n } else {\n if(this.isPinned) {\n this.element.addEventListener('transitionend', this.handlePinned);\n this.element.classList.add('is-leaving');\n }\n }\n }\n\n this.tmpScroll = document.documentElement.scrollTop;\n }\n }\n\n\n mount() {\n const nav = this.element.querySelector('#navigation');\n if (nav) {\n this.navigation = new Navigation(nav);\n this.navigation.element.addEventListener('navigation:update', this.handleNavigationUpdate);\n this.navigation.mount();\n }\n\n this.burger = this.element.querySelector('.js-header-burger');\n\n // pas met header height a jour pour evite le sauter\n this.height = this.element.offsetHeight;\n document.documentElement.style.setProperty('--header-height', `${this.height}px`);\n window.addEventListener('resize', function (e) {\n let headerHeight = this.document.querySelector(\".c-header\").offsetHeight;\n document.documentElement.style.setProperty('--header-height', `${headerHeight}px`);\n });\n\n this.element.querySelectorAll('[data-header-toggler=\"navigation\"]').forEach((element) => {\n const target = document.getElementById(element.dataset.headerToggler);\n const toggler = new Toggler(element, target);\n this.navigationTogglers.push(toggler);\n element.addEventListener('toggler:hide', this.handleNavigationHide);\n element.addEventListener('toggler:show', this.handleNavigationShow);\n\n if (\n window.getComputedStyle(this.burger).getPropertyValue('display') !== 'none'\n ) {\n toggler.mount();\n }\n });\n\n window.addEventListener('resize', this.handleResize);\n window.addEventListener('scroll', this.handleScroll);\n\n const loop = () => {\n if (this.hasScrolled) {\n this.updateScroll();\n this.hasScrolled = false;\n }\n if (this.hasResized) {\n this.updateResize();\n this.hasResized = false;\n }\n\n requestAnimationFrame(loop);\n }\n\n loop();\n\n this.element.classList.add('is-mounted');\n this.calculate();\n }\n\n unmount() {\n window.removeEventListener('resize', this.handleResize);\n window.removeEventListener('scroll', this.handleScroll);\n\n if(this.navigationTogglers) {\n this.navigationTogglers.forEach((toggler) => {\n toggler.element.removeEventListener('toggler:hide', this.handleNavigationHide);\n toggler.element.removeEventListener('toggler:show', this.handleNavigationShow);\n toggler.unmount();\n });\n this.navigationTogglers = [];\n }\n\n if (this.navigation) {\n this.navigation.element.removeEventListener('navigation:update', this.handleNavigationUpdate);\n this.navigation.unmount();\n this.navigation = null;\n }\n\n this.element.classList.remove('is-mounted');\n }\n}\n","import Header from './Header';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const headerElement = document.getElementById('header');\n if (headerElement) {\n const header = new Header(headerElement);\n header.mount();\n }\n});\n","/**\n * Name: Component\n * Description: Base model for all components\n */\n\nexport default class Component {\n static settings = {};\n\n #element;\n #mounted;\n #settings;\n\n #listeners = {};\n\n constructor (element, options = {}) {\n this.#element = element;\n this.#mounted = false;\n this.#settings = {\n ...Component.settings,\n ...options\n };\n }\n\n get element () {\n return this.#element;\n }\n\n get mounted () {\n return this.#mounted;\n }\n\n get settings () {\n return this.#settings;\n }\n\n getNode (parameter) {\n let element = null;\n\n if (parameter instanceof Element) {\n element = parameter;\n } else if (typeof parameter === 'string') {\n const testSelector = this.#element.querySelector(parameter);\n element = testSelector ? testSelector : element;\n }\n\n return element;\n }\n\n fire (type, data) {\n var listeners = this.#listeners[type] || [];\n\n listeners.forEach(function (listener) {\n listener(data);\n });\n }\n\n on (type, handler) {\n if (typeof this.#listeners[type] === 'undefined') {\n this.#listeners[type] = [];\n }\n\n this.#listeners[type].push(handler);\n\n return this;\n }\n\n off (type, handler) {\n var index = this.#listeners[type].indexOf(handler);\n\n if (index > -1) {\n this.#listeners[type].splice(index, 1);\n }\n\n return this;\n }\n\n mount () {\n this.#element.classList.add('is-mounted');\n this.#mounted = true;\n this.fire('mount', this);\n }\n\n unmount () {\n this.#element.classList.remove('is-mounted');\n this.#mounted = false;\n this.fire('unmount', this);\n }\n}\n","import Component from \"@lunaweb/vega-reactor-js/src/patterns/Component\";\n\nexport default class Dropdown extends Component {\n static settings = {\n isPersistent: false,\n hasTransition: false,\n control: null,\n target: null,\n controlSelector: '.js-dropdown-control',\n targetSelector: '.js-dropdown-target',\n };\n\n #control;\n #target;\n #isHiding;\n #fieldName;\n #hiddenField;\n #handleControlClick;\n #handleItemClick;\n #handleChoose;\n #handleFocusout;\n #handleKeydown;\n #handleOutsideClick;\n #handleTransitionEnd;\n\n constructor (element, options = {}) {\n super(element, {\n ...Dropdown.settings,\n ...options\n });\n\n this.#isHiding = false;\n this.#control = this.settings.control ? this.settings.control : this.element.querySelector(this.settings.controlSelector);\n this.#target = this.settings.target ? this.settings.target : this.element.querySelector(this.settings.targetSelector);\n this.#fieldName = this.element.getAttribute('data-field-name');\n this.#hiddenField = document.getElementById(this.#fieldName);\n\n this.listOptions = this.element.querySelectorAll(\".c-dropdown__option\");\n\n if (!this.#control) {\n throw new Error(`Dropdown error: A control with the '${ this.settings.controlSelector }' selector is missing.`);\n }\n\n if (!this.#target) {\n throw new Error(`Dropdown error: A target with the '${ this.settings.targetSelector }' selector is missing.`);\n }\n\n if (!this.#control.getAttribute('id')) {\n throw new Error(`Dropdown error: The control needs an id to work correctly.`, this.#control);\n }\n\n if (!this.#target.getAttribute('id')) {\n throw new Error(`Dropdown error: The target needs an id to work correctly.`, this.#target);\n }\n\n this.#handleControlClick = this._handleControlClick.bind(this);\n this.#handleChoose = this._handleChoose.bind(this);\n this.#handleItemClick = this._handleItemClick.bind(this);\n this.#handleFocusout = this._handleFocusout.bind(this);\n this.#handleKeydown = this._handleKeydown.bind(this);\n this.#handleOutsideClick = this._handleOutsideClick.bind(this);\n this.#handleTransitionEnd = this._handleTransitionEnd.bind(this);\n }\n\n get control () {\n return this.#control;\n }\n\n get target () {\n return this.#target;\n }\n\n get expanded () {\n return this.#control.getAttribute('aria-expanded') === 'true';\n }\n\n set expanded (state) {\n this.#control.setAttribute('aria-expanded', `${state}`);\n }\n\n get isHiding () {\n return this.#isHiding;\n }\n\n _handleControlClick (e) {\n this.toggle();\n }\n\n _handleChoose (choice) {\n if (choice.hasAttribute(\"aria-checked\")) {\n\n this.listOptions.forEach((item) => {\n item.removeAttribute('aria-checked');\n this.#control.removeAttribute('isActive');\n })\n\n }else {\n this.listOptions.forEach((item) => {\n item.removeAttribute('aria-checked');\n this.#control.removeAttribute('isActive');\n })\n\n choice.setAttribute('aria-checked', 'true');\n // pour branche a un form\n this.#control.setAttribute('isActive', 'true');\n this.#hiddenField.value = choice.getAttribute('data-value');\n\n // pour donne un feedback visuel sur la choix du dropdown avec le style du autocomplete\n if (this.element.classList.contains(\"c-dropdown--autocomplete\")) {\n this.element.querySelector(\".c-dropdown__placeholder\").innerHTML = choice.innerHTML;\n } else {\n this.element.querySelector(\".c-dropdown__label\").innerHTML = choice.innerHTML;\n }\n }\n }\n\n _handleItemClick (e) {\n this.#handleChoose(e.currentTarget);\n this.close(false);\n e.preventDefault();\n }\n\n _handleFocusout (e) {\n if (e.relatedTarget && !this.#target.contains(e.relatedTarget) && !this.#control.contains(e.relatedTarget)) {\n this.close(false);\n }\n }\n\n _handleKeydown (e) {\n // Close on escape\n if (this.expanded && e.keyCode === 27) {\n this.toggle();\n }\n }\n\n _handleOutsideClick (e) {\n if (!this.#target.contains(e.target) && !this.#control.contains(e.target)) {\n this.close(false);\n }\n }\n\n _handleTransitionEnd (e) {\n if (e.target === this.#target) {\n this.#target.removeEventListener('transitionend', this.#handleTransitionEnd);\n this.#target.classList.remove('is-hiding');\n this.#isHiding = false;\n this.close();\n }\n }\n\n open () {\n this.#control.setAttribute('aria-expanded', 'true');\n this.#target.removeAttribute('hidden');\n this.#target.setAttribute('tabindex', '1');\n\n if (!this.settings.isPersistent) {\n document.addEventListener('focusout', this.#handleFocusout);\n document.addEventListener('click', this.#handleOutsideClick);\n }\n\n this.fire('open', this);\n }\n\n close (refocus = true) {\n if (!this.settings.isPersistent) {\n document.removeEventListener('focusout', this.#handleFocusout);\n document.removeEventListener('click', this.#handleOutsideClick);\n }\n\n this.#control.setAttribute('aria-expanded', 'false');\n this.#target.setAttribute('hidden', '');\n this.#target.classList.remove('is-hiding');\n this.#target.setAttribute('tabindex', '-1');\n\n if (refocus) {\n this.#control.focus();\n }\n\n this.fire('close', this);\n }\n\n hide () {\n this.#target.classList.add('is-hiding');\n this.#isHiding = true;\n this.#target.addEventListener('transitionend', this.#handleTransitionEnd);\n }\n\n toggle () {\n if (this.settings.hasTransition) {\n this.expanded ? this.hide() : this.open();\n } else {\n this.expanded ? this.close() : this.open();\n }\n }\n\n mount () {\n this.#target.setAttribute('aria-labelledby', this.#control.getAttribute('id'));\n this.#target.setAttribute('tabindex', '-1');\n this.#target.setAttribute('hidden', '');\n this.#control.setAttribute('aria-haspopup', 'true');\n this.#control.setAttribute('aria-expanded', 'false');\n this.#control.setAttribute('aria-controls', this.#target.getAttribute('id'));\n\n this.#control.addEventListener('click', this.#handleControlClick);\n this.#target.addEventListener('keydown', this.#handleKeydown);\n\n for (let i = 0; i < this.listOptions.length; i++) {\n const element = this.listOptions[i];\n element.addEventListener('click', this.#handleItemClick);\n }\n\n // check if dropdown has hidden input\n if (this.element.getAttribute(\"data-field-name\")) {\n let formName=this.element.getAttribute(\"data-field-name\");\n // check if hidden input has value\n if (document.querySelector(\"[name='\"+formName+\"']\").value){\n let formValue=(document.querySelector(\"[name='\"+formName+\"']\").value);\n let fieldGroupOptions = this.element.querySelectorAll(\".c-dropdown__option\");\n // select value in dropdown\n for (let i = 0; i < fieldGroupOptions.length; i++) {\n const fieldGroupOption = fieldGroupOptions[i];\n if (fieldGroupOption.getAttribute(\"data-value\") == formValue) {\n fieldGroupOption.setAttribute(\"aria-checked\", \"true\");\n }\n }\n\n // update placeholder text\n if(this.element.querySelector(\".c-dropdown__placeholder\")) {\n for (let i = 0; i < fieldGroupOptions.length; i++) {\n const fieldGroupOption = fieldGroupOptions[i];\n if (fieldGroupOption.getAttribute(\"data-value\") == formValue) {\n this.element.querySelector(\".c-dropdown__placeholder\").innerHTML=fieldGroupOption.innerHTML;\n }\n }\n } else {\n // this.element.querySelector(\".c-dropdown__label\").innerHTML = choice.innerHTML;\n for (let i = 0; i < fieldGroupOptions.length; i++) {\n const fieldGroupOption = fieldGroupOptions[i];\n if (fieldGroupOption.getAttribute(\"data-value\") == formValue) {\n this.element.querySelector(\".c-dropdown__label\").innerHTML=fieldGroupOption.innerHTML;\n }\n }\n }\n // highlight if slection is active\n this.#control.setAttribute(\"isactive\", \"true\");\n }\n }\n\n\n\n\n super.mount();\n }\n\n unmount () {\n if (this.expanded) {\n this.close(false);\n }\n\n this.#control.removeEventListener('click', this.#handleControlClick);\n this.#target.removeEventListener('keydown', this.#handleKeydown);\n\n this.#control.removeAttribute('aria-haspopup');\n this.#control.removeAttribute('aria-expanded');\n this.#control.removeAttribute('aria-controls');\n this.#target.removeAttribute('aria-labelledby');\n this.#target.removeAttribute('tabindex');\n this.#target.removeAttribute('hidden');\n\n super.unmount();\n }\n}\n","\nimport Dropdown from './Dropdown';\n\nconst dropdownElements = document.querySelectorAll('.js-dropdown');\nif (dropdownElements.length) {\n dropdownElements.forEach((dropdownElement) => {\n const dropdown = new Dropdown(dropdownElement);\n dropdown.mount();\n });\n}\n","/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n };\n\n var debounced = function(){\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n \n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n \n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n};\n\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nmodule.exports = debounce;\n","import { debounce } from \"debounce\";\nimport Component from \"@lunaweb/vega-reactor-js/src/patterns/Component\";\n\nexport default class Breadcrumbs extends Component {\n static settings = {\n isResponsive: false,\n control: '.js-breadcrumbs-control',\n target: '.js-breadcrumbs-target',\n };\n\n #control;\n #target;\n #enabled;\n #hasEnded = false;\n #handleControlClick;\n #handleWindowDebouncedResize;\n\n constructor (element, options = {}) {\n super(element, {\n ...Breadcrumbs.settings,\n ...options\n });\n\n this.#control = this.getNode(this.settings.control);\n this.#target = this.getNode(this.settings.target);\n\n if (!this.#control) {\n throw new Error(`Breadcrumbs error: A control with the '${ this.settings.control }' selector is missing.`);\n }\n\n if (!this.#target) {\n throw new Error(`Breadcrumbs error: A target with the '${ this.settings.target }' selector is missing.`);\n }\n\n if (!this.#control.getAttribute('id')) {\n throw new Error(`Breadcrumbs error: The control needs an id to work correctly.`, this.#control);\n }\n\n if (!this.#target.getAttribute('id')) {\n throw new Error(`Breadcrumbs error: The target needs an id to work correctly.`, this.#target);\n }\n\n this.#handleControlClick = this._handleControlClick.bind(this);\n this.#handleWindowDebouncedResize = debounce(this._handleWindowDebouncedResize.bind(this), 20);\n }\n\n get control () {\n return this.#control;\n }\n\n get target () {\n return this.#target;\n }\n\n get expanded () {\n return this.#control.getAttribute('aria-expanded') === 'true';\n }\n\n get expandable () {\n return getComputedStyle(this.control).display !== 'none';\n }\n\n get enabled () {\n return this.#enabled;\n }\n\n get hasEnded () {\n return this.#hasEnded;\n }\n\n get windowWidth () {\n return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\n }\n\n _handleWindowDebouncedResize () {\n // If the window width has changed since last time\n // (it's not necessary to update breadcrumbs state when the resize is on the window height)\n if (this.tempWidth !== this.windowWidth) {\n this.update();\n\n // Update temporary with new window width\n this.tempWidth = this.windowWidth;\n }\n }\n\n _handleControlClick (e) {\n this.open();\n }\n\n open () {\n this.#control.setAttribute('aria-expanded', 'true');\n this.#target.removeAttribute('hidden');\n\n if (this.settings.isResponsive) {\n this.unsetResponsive();\n }\n\n this.element.classList.add('has-ended');\n this.unmount();\n this.#hasEnded = true;\n this.target.focus();\n this.control.remove();\n\n this.fire('open', this);\n }\n\n update () {\n // hasEnded is at true when control has been clicked\n if (!this.hasEnded) {\n if (this.expandable && !this.#enabled) {\n this.enable();\n } else if (!this.expandable && this.#enabled) {\n this.disable();\n }\n }\n }\n\n setResponsive () {\n this.tempWidth = 0;\n window.addEventListener(\"resize\", this.#handleWindowDebouncedResize);\n\n if (!this.hasEnded) {\n if (this.expandable && !this.#enabled) {\n this.enable();\n } else if (!this.expandable && this.#enabled) {\n this.disable();\n }\n }\n\n this.fire('setResponsive', this);\n }\n\n unsetResponsive () {\n delete this.tempWidth;\n window.removeEventListener(\"resize\", this.#handleWindowDebouncedResize);\n\n this.fire('unsetResponsive', this);\n }\n\n enable () {\n this.#target.setAttribute('aria-labelledby', this.#control.getAttribute('id'));\n this.#target.setAttribute('hidden', '');\n this.#control.setAttribute('aria-expanded', 'false');\n this.#control.setAttribute('aria-controls', this.#target.getAttribute('id'));\n\n this.#control.addEventListener('click', this.#handleControlClick);\n\n this.#enabled = true;\n\n this.fire('enable', this);\n }\n\n disable () {\n this.#control.removeEventListener('click', this.#handleControlClick);\n\n this.#control.removeAttribute('aria-expanded');\n this.#control.removeAttribute('aria-controls');\n this.#target.removeAttribute('aria-labelledby');\n this.#target.removeAttribute('hidden');\n\n this.#enabled = false;\n\n this.fire('disable', this);\n }\n\n mount () {\n super.mount();\n\n if (this.settings.isResponsive && this.tempWidth === undefined) {\n this.setResponsive();\n } else {\n this.enable();\n }\n }\n\n unmount () {\n if (this.settings.isResponsive) {\n this.unsetResponsive();\n }\n\n this.disable();\n\n super.unmount();\n }\n}\n","import Breadcrumbs from './Breadcrumbs';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const breadcrumbsElements = document.querySelectorAll('.js-breadcrumbs');\n if (!breadcrumbsElements.length) {\n return;\n }\n breadcrumbsElements.forEach((element) => {\n const breadcrumbsElement = new Breadcrumbs(element, {\n isResponsive: true,\n });\n breadcrumbsElement.mount();\n });\n});\n","/**\n * Name: Details\n * Description: Collapsing section\n */\n\nimport Component from \"@lunaweb/vega-reactor-js/src/patterns/Component\";\n\nexport default class Details extends Component {\n static settings = {\n open: false,\n rememberExpanded: false,\n hasAdditionalControl: false,\n i18n: {\n hideSection: 'Masquer la section',\n showSection: 'Afficher la section',\n }\n };\n\n #control;\n #content;\n #label;\n\n #handleControlClick;\n #handleContentBeforeMatch;\n #handleHashChange;\n #handleToggle;\n\n constructor (element, options = {}) {\n super(element, {\n ...Details.settings,\n ...options\n });\n\n this.#control = this.element.querySelector('.js-details-control');\n this.#content = this.element.querySelector('.js-details-content');\n\n if (!this.element.getAttribute('id')) {\n throw new Error(`Details error: An id is required on the '.js-details' element.`, this.element);\n }\n\n if (!this.#control) {\n throw new Error(`Details error: A control with the 'js-details-control' class is missing.`, this.element);\n }\n\n if (!this.#content) {\n throw new Error(`Details error: A content with the 'js-details-content' class is missing.`, this.element);\n }\n\n if (!this.isNativeDetails) {\n this.#label = this.element.querySelector('.js-details-label');\n\n if (!this.#label) {\n throw new Error(`Details error: A label with the 'js-details-label' class is missing.`, this.element);\n }\n }\n\n if (this.settings.rememberExpanded) {\n try {\n this.sessionStorageValue;\n } catch (e) {\n this.settings.rememberExpanded = false;\n console.error('sessionStorage is not usable.');\n }\n }\n\n this.#handleControlClick = this._handleControlClick.bind(this);\n this.#handleContentBeforeMatch = this._handleContentBeforeMatch.bind(this);\n this.#handleHashChange = this._handleHashChange.bind(this);\n this.#handleToggle = this._handleToggle.bind(this);\n }\n\n get control () {\n return this.#control;\n }\n\n get content () {\n return this.#content;\n }\n\n get expanded () {\n let state;\n\n if (this.isNativeDetails) {\n state = this.element.open;\n } else {\n state = this.#control.getAttribute('aria-expanded') === 'true';\n }\n\n return state;\n }\n\n get sessionStorageValue () {\n return sessionStorage.getItem(this.element.getAttribute('id'));\n }\n\n get isNativeDetails () {\n return this.element.tagName.toLowerCase() === \"details\";\n }\n\n set sessionStorageValue (value) {\n sessionStorage.setItem(this.element.getAttribute('id'), value);\n }\n\n _handleControlClick (e) {\n this.toggle();\n\n if (this.additionalControl && e.target === this.additionalControl) {\n this.#control.focus();\n }\n }\n\n _handleContentBeforeMatch (e) {\n this.open();\n }\n\n _handleHashChange (e) {\n if (this.element.id === location.hash.substring(1)) {\n this.open();\n }\n }\n\n _handleToggle (e) {\n const state = this.expanded ? 'open' : 'close';\n\n if (this.settings.rememberExpanded) {\n this.sessionStorageValue = state;\n }\n\n this.fire(state, this);\n }\n\n convertControlToButton () {\n let control = document.createElement('button');\n control.type = 'button';\n const attributes = this.#control.getAttributeNames().reduce((acc, name) => {\n control.setAttribute(name, this.#control.getAttribute(name));\n }, {});\n control.innerHTML = this.#control.innerHTML;\n this.#control.replaceWith(control);\n this.#control = control;\n }\n\n resetControl () {\n let control = document.createElement('span');\n const attributes = this.#control.getAttributeNames().reduce((acc, name) => {\n control.setAttribute(name, this.#control.getAttribute(name));\n }, {});\n control.removeAttribute('type');\n control.innerHTML = this.#control.innerHTML;\n this.#control.replaceWith(control);\n this.#control = control;\n }\n\n addAdditionalControl () {\n const additionalControl = document.createElement('button');\n additionalControl.type = 'button';\n additionalControl.classList.add('c-details__button');\n additionalControl.setAttribute('aria-controls', this.#content.getAttribute('id'));\n\n const marker = this.#control.querySelector('.js-details-marker');\n\n additionalControl.innerHTML = `${ this.settings.i18n.hideSection } ${ marker.outerHTML }`;\n\n this.#content.appendChild(additionalControl);\n this.additionalControl = additionalControl;\n this.additionalControl.addEventListener('click', this.#handleControlClick);\n }\n\n removeAdditionalControl () {\n this.additionalControl.removeEventListener('click', this.#handleControlClick);\n this.additionalControl.remove();\n }\n\n toggle () {\n this.expanded ? this.close() : this.open();\n }\n\n open () {\n if (this.isNativeDetails) {\n this.element.open = true;\n } else {\n this.#control.setAttribute('aria-expanded', 'true');\n this.#content.removeAttribute('hidden');\n this.#label.innerHTML = this.settings.i18n.hideSection;\n }\n\n if (this.settings.rememberExpanded) {\n this.sessionStorageValue = 'open';\n }\n\n this.fire('open', this);\n }\n\n close () {\n if (this.isNativeDetails) {\n this.element.open = false;\n } else {\n this.#control.setAttribute('aria-expanded', 'false');\n this.#content.setAttribute('hidden', 'until-found');\n this.#label.innerHTML = this.settings.i18n.showSection;\n }\n\n if (this.settings.rememberExpanded) {\n this.sessionStorageValue = 'close';\n }\n\n this.fire('close', this);\n }\n\n mount () {\n window.addEventListener('hashchange', this.#handleHashChange);\n\n if (!this.isNativeDetails) {\n this.convertControlToButton();\n this.#control.setAttribute('aria-controls', this.#content.getAttribute('id'));\n this.#content.setAttribute('aria-labelledby', this.#control.getAttribute('id'));\n\n this.#control.addEventListener('click', this.#handleControlClick);\n this.#content.addEventListener('beforematch', this.#handleContentBeforeMatch);\n } else {\n this.element.addEventListener('toggle', this.#handleToggle);\n }\n\n if (this.settings.hasAdditionalControl) {\n this.addAdditionalControl();\n }\n\n if (this.element.id === location.hash.substring(1)) {\n this.open();\n } else if (this.settings.rememberExpanded && this.sessionStorageValue) {\n this.sessionStorageValue === 'open' ? this.open() : this.close();\n } else {\n this.settings.open ? this.open() : this.close();\n }\n\n super.mount();\n }\n\n unmount () {\n window.removeEventListener('hashchange', this.#handleHashChange);\n\n if (!this.isNativeDetails) {\n this.#content.removeEventListener('beforematch', this.#handleContentBeforeMatch);\n this.#control.removeEventListener('click', this.#handleControlClick);\n\n this.#content.removeAttribute('hidden');\n this.#content.removeAttribute('aria-labelledby');\n this.#control.removeAttribute('tabindex');\n this.#control.removeAttribute('role');\n this.#control.removeAttribute('aria-controls');\n this.#control.removeAttribute('aria-expanded');\n this.resetControl();\n } else {\n this.element.addEventListener('toggle', this.#handleToggle);\n }\n\n if (this.settings.rememberExpanded) {\n sessionStorage.removeItem(this.element.getAttribute('id'));\n }\n\n if (this.additionalControl) {\n this.removeAdditionalControl();\n }\n\n super.unmount();\n }\n}\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && 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 Details from './Details';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const detailsElements = document.querySelectorAll('.js-details');\n if (!detailsElements.length) {\n return;\n }\n detailsElements.forEach((element,index) => {\n const detailsElement = new Details(element, {\n hasAdditionalControl: false,\n });\n detailsElement.mount();\n // if (index == 0) {\n // detailsElement.open();\n // }\n });\n\n const detailsArray = Array.from(detailsElements);\n\n const allDetails = detailsArray.map((element) => {\n const detailsElement = new Details(element, {\n hasAdditionalControl: false,\n });\n detailsElement.mount();\n\n if (element.classList.contains('current')) {\n detailsElement.open();\n }\n return detailsElement;\n });\n\n function closeOthers(openElement) {\n allDetails.forEach(details => {\n if (details !== openElement && details.expanded) {\n details.close();\n }\n });\n }\n\n allDetails.forEach(detailsElement => {\n detailsElement.on('open', () => {\n closeOthers(detailsElement);\n });\n });\n\n\n\n\n\n});\n\n\n// const allDetails = detailsArray.map((element) => {\n// const detailsElement = new Details(element, {\n// hasAdditionalControl: false,\n// });\n// detailsElement.mount();\n// if (element.classList.contains('current')) {\n// detailsElement.open();\n// }\n// return detailsElement;\n// });\n\n\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}\nfunction makeElementsArray(el) {\n return (Array.isArray(el) ? el : [el]).filter(e => !!e);\n}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, getSlideTransformEl as g, elementIndex as h, classesToTokens as i, getTranslate as j, elementTransitionEnd as k, isObject as l, makeElementsArray as m, nextTick as n, elementStyle as o, elementNextAll as p, elementPrevAll as q, animateCSSModeScroll as r, setCSSProperty as s, showWarning as t, extend as u, deleteProps as v };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, o as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, p as elementNextAll, q as elementPrevAll, j as getTranslate, r as animateCSSModeScroll, n as nextTick, t as showWarning, c as createElement, d as now, u as extend, h as elementIndex, v 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 const device = getDevice();\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 const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);\n const isSafariBrowser = isSafari();\n const need3dFix = isSafariBrowser || isWebView && device.ios;\n return {\n isSafari: needPerspectiveFix || isSafariBrowser,\n needPerspectiveFix,\n need3dFix,\n isWebView\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 const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);\n if (allSlidesSize + offsetSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 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 swiper.emit('slidesUpdated');\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\nconst toggleSlideClasses$1 = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\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 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 }\n toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\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\nconst toggleSlideClasses = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\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 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 if (!gridEnabled) {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\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 }\n }\n slides.forEach(slideEl => {\n toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\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 swiper.animating = false;\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 (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 (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\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 (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 if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\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 (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n needLoopFix = false;\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 (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\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 (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 || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\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 (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\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 (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\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 if (swiper.destroyed) return;\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 + Math.ceil(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 || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\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 detail: {\n bySwiperTouchMove: true\n }\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 const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\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 (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (swipeToLast || 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 if (!el || typeof el === 'string') return;\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 wasGrabCursor = swiper.params.grabCursor;\n const isGrabCursor = breakpointParams.grabCursor;\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 if (wasGrabCursor && !isGrabCursor) {\n swiper.unsetGrabCursor();\n } else if (!wasGrabCursor && isGrabCursor) {\n swiper.setGrabCursor();\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 if (!el || typeof el === 'string') return;\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 swiperElementNodeName: 'SWIPER-CONTAINER',\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] ? Math.ceil(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 += Math.ceil(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.params.swiperElementNodeName.toUpperCase()) {\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 if (el && typeof el !== 'string') {\n el.removeAttribute('style');\n }\n if (wrapperEl) {\n wrapperEl.removeAttribute('style');\n }\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 if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.swiper = null;\n }\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","import { e as elementChildren, c as createElement } from './utils.mjs';\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\n\nexport { createElementIfNotDefined as c };\n","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray } from '../shared/utils.mjs';\n\nfunction Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n } else if (res && res.length === 1) {\n res = res[0];\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (swiper.enabled) {\n update();\n return;\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);\n if (swiper.isElement && !targetIsButton) {\n const path = e.path || e.composedPath && e.composedPath();\n if (path) {\n targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl));\n }\n }\n if (swiper.params.navigation.hideOnClick && !targetIsButton) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\n\nexport { Navigation as default };\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 createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray, f as elementOuterSize, h as elementIndex, a as elementParents } from '../shared/utils.mjs';\n\nfunction Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\">`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(...(params.clickableClass || '').split(' '));\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\nexport { Pagination as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\n\n/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nfunction Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit,\n params\n } = _ref;\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: false,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime();\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n let pausedByPointerEnter;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {\n return;\n }\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n autoplayStartTime = new Date().getTime();\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pausedByPointerEnter = true;\n if (swiper.animating || swiper.autoplay.paused) return;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByPointerEnter = false;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n }\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('_freeModeStaticRelease', () => {\n if (pausedByTouch || pausedByInteraction) {\n resume();\n }\n });\n on('_freeModeNoMomentumRelease', () => {\n if (!swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\n\nexport { Autoplay as default };\n","import 'mdn-polyfills/NodeList.prototype.forEach';\nimport Swiper from 'swiper';\nimport { Navigation, Pagination, Autoplay } from 'swiper/modules';\n\nexport default class Slider {\n constructor(element) {\n this.element = element;\n this.next = this.element.querySelector(\".swiper-button-next .c-button\");\n this.prev = this.element.querySelector(\".swiper-button-prev .c-button\");\n this.pagination = this.element.querySelector(\".c-slider__pagination\");\n\n const slides = this.element.querySelectorAll(\".swiper-slide\");\n const slideCount = slides.length;\n\n\n\n this.swiperElement = this.element;\n\n this.swiperElement = this.element;\n\n this.innerWidth = window.innerWidth;\n\n this.handleResize = this.handleResize.bind(this);\n this.handleResize = this.handleResize.bind(this);\n\n this.paginationValues;\n this.autoplayValues;\n this.navigationValues;\n this.onChange;\n\n this.paginationValues = {\n el: \".swiper-pagination\",\n type: \"fraction\",\n }\n\n if (this.swiperElement.classList.contains(\"c-slider--product\")) {\n\n this.autoplayValues = {\n delay: 5000,\n }\n this.paginationValues = {\n el: \".swiper-pagination\",\n clickable: true,\n }\n this.navigationValues = false;\n\n this.onChangeValue = {\n autoplayTimeLeft(s, time, progress) {\n const progressCircle = document.querySelector(\".swiper-pagination-bullet-active\");\n progressCircle.style.setProperty(\"--progress\", 1 - progress);\n },\n slideChangeTransitionEnd:(swiper)=> {\n this.updateTabIndex(swiper);\n }\n }\n }\n else {\n this.navigationValues = {\n nextEl: \".swiper-button-next\",\n prevEl: \".swiper-button-prev\"\n }\n this.autoplayValues = false;\n this.onChangeValue = false;\n }\n\n\n this.settings = {\n modules: [Navigation, Pagination, Autoplay],\n navigation: this.navigationValues,\n pagination: this.paginationValues,\n autoplay: this.autoplayValues,\n slidesPerView: \"1\",\n loop: true,\n on:this.onChangeValue,\n };\n\n this.swiper;\n }\n\n handleResize() {\n }\n\n\n\n\n mount() {\n this.settings = {\n ...this.settings,\n }\n\n this.swiper = new Swiper(this.swiperElement, this.settings);\n window.addEventListener('resize', this.handleResize);\n\n if (this.swiperElement.classList.contains(\"c-slider--product\")) {\n\n const buttomAutoplayButtos = document.querySelectorAll(\".c-button--autoplay\");\n\n for (let i = 0; i < buttomAutoplayButtos.length; i++) {\n const element = buttomAutoplayButtos[i];\n let swiperProduit = this.swiper;\n element.addEventListener(\"click\", function() {\n if(element.getAttribute('data-state') == \"play\") {\n element.setAttribute('data-state', 'pause');\n element.querySelector(\".c-button__label\").innerHTML =\"Play\";\n element.querySelector(\".c-button__icon\").innerHTML ='';\n swiperProduit.autoplay.stop();\n }else {\n element.setAttribute('data-state', 'play');\n swiperProduit.autoplay.start();\n element.querySelector(\".c-button__label\").innerHTML =\"Pause\";\n element.querySelector(\".c-button__icon\").innerHTML ='';\n }\n\n })\n }\n }\n\n\n }\n\n updateTabIndex(){\n let slides = document.querySelectorAll(\".swiper-slide\");\n\n for (let i = 0; i < slides.length; i++) {\n const element = slides[i];\n if (element.classList.contains(\"swiper-slide-active\")) {\n let slideButtons=element.querySelectorAll(\".js-slider-button\");\n for (let index = 0; index < slideButtons.length; index++) {\n const elementButton = slideButtons[index];\n elementButton.setAttribute('tabIndex', '0');\n }\n }else {\n let slideButtons=element.querySelectorAll(\".js-slider-button\");\n for (let index = 0; index < slideButtons.length; index++) {\n const elementButton = slideButtons[index];\n elementButton.setAttribute('tabIndex', '-1');\n }\n }\n\n }\n }\n\n unmount() {\n this.destroy(this.swiper, true);\n }\n}\n","import 'mdn-polyfills/NodeList.prototype.forEach';\nimport Slider from './Slider';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const sliders = document.querySelectorAll('.swiper');\n if (!sliders.length) {\n return;\n }\n\n sliders.forEach((element) => {\n const slider = new Slider(element);\n slider.mount(element);\n });\n});\n","import 'mdn-polyfills/NodeList.prototype.forEach';\n\nexport default class Loadix {\n constructor(element) {\n this.element = element;\n this.details = this.element.querySelectorAll(\".js-loadix-detail\");\n this.buttons = this.element.querySelectorAll(\".js-loadix-button\");\n\n this.handleMouseenter = this._handleMouseenter.bind(this);\n this.handleMouseleave = this._handleMouseleave.bind(this);\n\n this.handleClickButton = this._handleClickButton.bind(this);\n\n this.selectedId;\n this.selectedDetail;\n\n }\n\n mount() {\n this.details.forEach((element) => {\n element.addEventListener('mouseenter', this.handleMouseenter);\n element.addEventListener('mouseleave', this.handleMouseleave);\n });\n\n this.buttons.forEach((element) => {\n element.addEventListener('click', this.handleClickButton);\n });\n }\n\n _handleClickButton(e) {\n for (let i = 0; i < this.details.length; i++) {\n const element = this.details[i];\n if (element.classList.contains(\"c-loadix__detail--active\")) {\n element.classList.remove(\"c-loadix__detail--active\")\n }\n }\n\n this.selectedId = e.target.id;\n let newId = this.selectedId.replace(\"-button\", \"\");\n document.getElementById(newId).classList.add(\"c-loadix__detail--active\");\n }\n\n _handleMouseenter(e) {\n for (let i = 0; i < this.buttons.length; i++) {\n const element = this.buttons[i];\n element.className = \"c-loadix__button js-loadix-button\";\n }\n\n this.selectedDetail = e.target.querySelector(\"summary\");\n this.selectedId = this.selectedDetail.id;\n\n let newId = this.selectedId.replace(\"-control\", \"-button\");\n\n document.getElementById(newId).classList.add(\"c-loadix__button--active\");\n }\n\n _handleMouseleave(e) {\n for (let i = 0; i < this.buttons.length; i++) {\n const element = this.buttons[i];\n element.className = \"c-loadix__button js-loadix-button\";\n\n }\n }\n\n unmount() {\n this.destroy(this.swiper, true);\n }\n}\n","import 'mdn-polyfills/NodeList.prototype.forEach';\nimport Loadix from './Loadix';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const loadix = document.querySelectorAll('.js-loadix');\n if (!loadix.length) {\n return;\n }\n\n loadix.forEach((element) => {\n const loadix = new Loadix(element);\n loadix.mount(element);\n });\n});\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=e||self).GLightbox=t()}(this,(function(){\"use strict\";function e(e){var t=function(e,t){if(\"object\"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||\"default\");if(\"object\"!=typeof n)return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==typeof t?t:t+\"\"}function t(e){return(t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function i(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function n(t,i){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=e[l]=e[l]||[],s={all:n,evt:null,found:null};return t&&i&&M(n)>0&&r(n,(function(e,n){if(e.eventName==t&&e.fn.toString()==i.toString())return s.found=!0,s.evt=n,!1})),s}function h(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t.onElement,n=t.withCallback,s=t.avoidDuplicate,l=void 0===s||s,o=t.once,h=void 0!==o&&o,d=t.useCapture,c=void 0!==d&&d,u=arguments.length>2?arguments[2]:void 0,g=i||[];function v(e){C(n)&&n.call(u,e,this),h&&v.destroy()}return k(g)&&(g=document.querySelectorAll(g)),v.destroy=function(){r(g,(function(t){var i=a(t,e,v);i.found&&i.all.splice(i.evt,1),t.removeEventListener&&t.removeEventListener(e,v,c)}))},r(g,(function(t){var i=a(t,e,v);(t.addEventListener&&l&&!i.found||!l)&&(t.addEventListener(e,v,c),i.all.push({eventName:e,fn:v}))})),v}function d(e,t){r(t.split(\" \"),(function(t){return e.classList.add(t)}))}function c(e,t){r(t.split(\" \"),(function(t){return e.classList.remove(t)}))}function u(e,t){return e.classList.contains(t)}function g(e,t){for(;e!==document.body;){if(!(e=e.parentElement))return!1;if(\"function\"==typeof e.matches?e.matches(t):e.msMatchesSelector(t))return e}}function v(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\",i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e||\"\"===t)return!1;if(\"none\"===t)return C(i)&&i(),!1;var n=b(),s=t.split(\" \");r(s,(function(t){d(e,\"g\"+t)})),h(n,{onElement:e,avoidDuplicate:!1,once:!0,withCallback:function(e,t){r(s,(function(e){c(t,\"g\"+e)})),C(i)&&i()}})}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"\";if(\"\"===t)return e.style.webkitTransform=\"\",e.style.MozTransform=\"\",e.style.msTransform=\"\",e.style.OTransform=\"\",e.style.transform=\"\",!1;e.style.webkitTransform=t,e.style.MozTransform=t,e.style.msTransform=t,e.style.OTransform=t,e.style.transform=t}function p(e){e.style.display=\"block\"}function m(e){e.style.display=\"none\"}function y(e){var t=document.createDocumentFragment(),i=document.createElement(\"div\");for(i.innerHTML=e;i.firstChild;)t.appendChild(i.firstChild);return t}function x(){return{width:window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,height:window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight}}function b(){var e,t=document.createElement(\"fakeelement\"),i={animation:\"animationend\",OAnimation:\"oAnimationEnd\",MozAnimation:\"animationend\",WebkitAnimation:\"webkitAnimationEnd\"};for(e in i)if(void 0!==t.style[e])return i[e]}function S(e,t,i,n){if(e())t();else{var s;i||(i=100);var l=setInterval((function(){e()&&(clearInterval(l),s&&clearTimeout(s),t())}),i);n&&(s=setTimeout((function(){clearInterval(l)}),n))}}function w(e,t,i){if(O(e))console.error(\"Inject assets error\");else if(C(t)&&(i=t,t=!1),k(t)&&t in window)C(i)&&i();else{var n;if(-1!==e.indexOf(\".css\")){if((n=document.querySelectorAll('link[href=\"'+e+'\"]'))&&n.length>0)return void(C(i)&&i());var s=document.getElementsByTagName(\"head\")[0],l=s.querySelectorAll('link[rel=\"stylesheet\"]'),o=document.createElement(\"link\");return o.rel=\"stylesheet\",o.type=\"text/css\",o.href=e,o.media=\"all\",l?s.insertBefore(o,l[0]):s.appendChild(o),void(C(i)&&i())}if((n=document.querySelectorAll('script[src=\"'+e+'\"]'))&&n.length>0){if(C(i)){if(k(t))return S((function(){return void 0!==window[t]}),(function(){i()})),!1;i()}}else{var r=document.createElement(\"script\");r.type=\"text/javascript\",r.src=e,r.onload=function(){if(C(i)){if(k(t))return S((function(){return void 0!==window[t]}),(function(){i()})),!1;i()}},document.body.appendChild(r)}}}function T(){return\"navigator\"in window&&window.navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(Android)|(PlayBook)|(BB10)|(BlackBerry)|(Opera Mini)|(IEMobile)|(webOS)|(MeeGo)/i)}function C(e){return\"function\"==typeof e}function k(e){return\"string\"==typeof e}function E(e){return!(!e||!e.nodeType||1!=e.nodeType)}function A(e){return Array.isArray(e)}function L(e){return e&&e.length&&isFinite(e.length)}function I(e){return\"object\"===t(e)&&null!=e&&!C(e)&&!A(e)}function O(e){return null==e}function P(e,t){return null!==e&&hasOwnProperty.call(e,t)}function M(e){if(I(e)){if(e.keys)return e.keys().length;var t=0;for(var i in e)P(e,i)&&t++;return t}return e.length}function z(e){return!isNaN(parseFloat(e))&&isFinite(e)}function X(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1,t=document.querySelectorAll(\".gbtn[data-taborder]:not(.disabled)\");if(!t.length)return!1;if(1==t.length)return t[0];\"string\"==typeof e&&(e=parseInt(e));var i=[];r(t,(function(e){i.push(e.getAttribute(\"data-taborder\"))}));var n=Math.max.apply(Math,i.map((function(e){return parseInt(e)}))),s=e<0?1:e+1;s>n&&(s=\"1\");var l=i.filter((function(e){return e>=parseInt(s)})),o=l.sort()[0];return document.querySelector('.gbtn[data-taborder=\"'.concat(o,'\"]'))}function Y(e){if(e.events.hasOwnProperty(\"keyboard\"))return!1;e.events.keyboard=h(\"keydown\",{onElement:window,withCallback:function(t,i){var n=(t=t||window.event).keyCode;if(9==n){var s=document.querySelector(\".gbtn.focused\");if(!s){var l=!(!document.activeElement||!document.activeElement.nodeName)&&document.activeElement.nodeName.toLocaleLowerCase();if(\"input\"==l||\"textarea\"==l||\"button\"==l)return}t.preventDefault();var o=document.querySelectorAll(\".gbtn[data-taborder]\");if(!o||o.length<=0)return;if(!s){var r=X();return void(r&&(r.focus(),d(r,\"focused\")))}var a=X(s.getAttribute(\"data-taborder\"));c(s,\"focused\"),a&&(a.focus(),d(a,\"focused\"))}39==n&&e.nextSlide(),37==n&&e.prevSlide(),27==n&&e.close()}})}var q=s((function e(t,n){var s=this,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(i(this,e),this.img=t,this.slide=n,this.onclose=l,this.img.setZoomEvents)return!1;this.active=!1,this.zoomedIn=!1,this.dragging=!1,this.currentX=null,this.currentY=null,this.initialX=null,this.initialY=null,this.xOffset=0,this.yOffset=0,this.img.addEventListener(\"mousedown\",(function(e){return s.dragStart(e)}),!1),this.img.addEventListener(\"mouseup\",(function(e){return s.dragEnd(e)}),!1),this.img.addEventListener(\"mousemove\",(function(e){return s.drag(e)}),!1),this.img.addEventListener(\"click\",(function(e){return s.slide.classList.contains(\"dragging-nav\")?(s.zoomOut(),!1):s.zoomedIn?void(s.zoomedIn&&!s.dragging&&s.zoomOut()):s.zoomIn()}),!1),this.img.setZoomEvents=!0}),[{key:\"zoomIn\",value:function(){var e=this.widowWidth();if(!(this.zoomedIn||e<=768)){var t=this.img;if(t.setAttribute(\"data-style\",t.getAttribute(\"style\")),t.style.maxWidth=t.naturalWidth+\"px\",t.style.maxHeight=t.naturalHeight+\"px\",t.naturalWidth>e){var i=e/2-t.naturalWidth/2;this.setTranslate(this.img.parentNode,i,0)}this.slide.classList.add(\"zoomed\"),this.zoomedIn=!0}}},{key:\"zoomOut\",value:function(){this.img.parentNode.setAttribute(\"style\",\"\"),this.img.setAttribute(\"style\",this.img.getAttribute(\"data-style\")),this.slide.classList.remove(\"zoomed\"),this.zoomedIn=!1,this.currentX=null,this.currentY=null,this.initialX=null,this.initialY=null,this.xOffset=0,this.yOffset=0,this.onclose&&\"function\"==typeof this.onclose&&this.onclose()}},{key:\"dragStart\",value:function(e){e.preventDefault(),this.zoomedIn?(\"touchstart\"===e.type?(this.initialX=e.touches[0].clientX-this.xOffset,this.initialY=e.touches[0].clientY-this.yOffset):(this.initialX=e.clientX-this.xOffset,this.initialY=e.clientY-this.yOffset),e.target===this.img&&(this.active=!0,this.img.classList.add(\"dragging\"))):this.active=!1}},{key:\"dragEnd\",value:function(e){var t=this;e.preventDefault(),this.initialX=this.currentX,this.initialY=this.currentY,this.active=!1,setTimeout((function(){t.dragging=!1,t.img.isDragging=!1,t.img.classList.remove(\"dragging\")}),100)}},{key:\"drag\",value:function(e){this.active&&(e.preventDefault(),\"touchmove\"===e.type?(this.currentX=e.touches[0].clientX-this.initialX,this.currentY=e.touches[0].clientY-this.initialY):(this.currentX=e.clientX-this.initialX,this.currentY=e.clientY-this.initialY),this.xOffset=this.currentX,this.yOffset=this.currentY,this.img.isDragging=!0,this.dragging=!0,this.setTranslate(this.img,this.currentX,this.currentY))}},{key:\"onMove\",value:function(e){if(this.zoomedIn){var t=e.clientX-this.img.naturalWidth/2,i=e.clientY-this.img.naturalHeight/2;this.setTranslate(this.img,t,i)}}},{key:\"setTranslate\",value:function(e,t,i){e.style.transform=\"translate3d(\"+t+\"px, \"+i+\"px, 0)\"}},{key:\"widowWidth\",value:function(){return window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth}}]),N=s((function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,e);var s=n.dragEl,l=n.toleranceX,o=void 0===l?40:l,r=n.toleranceY,a=void 0===r?65:r,h=n.slide,d=void 0===h?null:h,c=n.instance,u=void 0===c?null:c;this.el=s,this.active=!1,this.dragging=!1,this.currentX=null,this.currentY=null,this.initialX=null,this.initialY=null,this.xOffset=0,this.yOffset=0,this.direction=null,this.lastDirection=null,this.toleranceX=o,this.toleranceY=a,this.toleranceReached=!1,this.dragContainer=this.el,this.slide=d,this.instance=u,this.el.addEventListener(\"mousedown\",(function(e){return t.dragStart(e)}),!1),this.el.addEventListener(\"mouseup\",(function(e){return t.dragEnd(e)}),!1),this.el.addEventListener(\"mousemove\",(function(e){return t.drag(e)}),!1)}),[{key:\"dragStart\",value:function(e){if(this.slide.classList.contains(\"zoomed\"))this.active=!1;else{\"touchstart\"===e.type?(this.initialX=e.touches[0].clientX-this.xOffset,this.initialY=e.touches[0].clientY-this.yOffset):(this.initialX=e.clientX-this.xOffset,this.initialY=e.clientY-this.yOffset);var t=e.target.nodeName.toLowerCase();e.target.classList.contains(\"nodrag\")||g(e.target,\".nodrag\")||-1!==[\"input\",\"select\",\"textarea\",\"button\",\"a\"].indexOf(t)?this.active=!1:(e.preventDefault(),(e.target===this.el||\"img\"!==t&&g(e.target,\".gslide-inline\"))&&(this.active=!0,this.el.classList.add(\"dragging\"),this.dragContainer=g(e.target,\".ginner-container\")))}}},{key:\"dragEnd\",value:function(e){var t=this;e&&e.preventDefault(),this.initialX=0,this.initialY=0,this.currentX=null,this.currentY=null,this.initialX=null,this.initialY=null,this.xOffset=0,this.yOffset=0,this.active=!1,this.doSlideChange&&(this.instance.preventOutsideClick=!0,\"right\"==this.doSlideChange&&this.instance.prevSlide(),\"left\"==this.doSlideChange&&this.instance.nextSlide()),this.doSlideClose&&this.instance.close(),this.toleranceReached||this.setTranslate(this.dragContainer,0,0,!0),setTimeout((function(){t.instance.preventOutsideClick=!1,t.toleranceReached=!1,t.lastDirection=null,t.dragging=!1,t.el.isDragging=!1,t.el.classList.remove(\"dragging\"),t.slide.classList.remove(\"dragging-nav\"),t.dragContainer.style.transform=\"\",t.dragContainer.style.transition=\"\"}),100)}},{key:\"drag\",value:function(e){if(this.active){e.preventDefault(),this.slide.classList.add(\"dragging-nav\"),\"touchmove\"===e.type?(this.currentX=e.touches[0].clientX-this.initialX,this.currentY=e.touches[0].clientY-this.initialY):(this.currentX=e.clientX-this.initialX,this.currentY=e.clientY-this.initialY),this.xOffset=this.currentX,this.yOffset=this.currentY,this.el.isDragging=!0,this.dragging=!0,this.doSlideChange=!1,this.doSlideClose=!1;var t=Math.abs(this.currentX),i=Math.abs(this.currentY);if(t>0&&t>=Math.abs(this.currentY)&&(!this.lastDirection||\"x\"==this.lastDirection)){this.yOffset=0,this.lastDirection=\"x\",this.setTranslate(this.dragContainer,this.currentX,0);var n=this.shouldChange();if(!this.instance.settings.dragAutoSnap&&n&&(this.doSlideChange=n),this.instance.settings.dragAutoSnap&&n)return this.instance.preventOutsideClick=!0,this.toleranceReached=!0,this.active=!1,this.instance.preventOutsideClick=!0,this.dragEnd(null),\"right\"==n&&this.instance.prevSlide(),void(\"left\"==n&&this.instance.nextSlide())}if(this.toleranceY>0&&i>0&&i>=t&&(!this.lastDirection||\"y\"==this.lastDirection)){this.xOffset=0,this.lastDirection=\"y\",this.setTranslate(this.dragContainer,0,this.currentY);var s=this.shouldClose();return!this.instance.settings.dragAutoSnap&&s&&(this.doSlideClose=!0),void(this.instance.settings.dragAutoSnap&&s&&this.instance.close())}}}},{key:\"shouldChange\",value:function(){var e=!1;if(Math.abs(this.currentX)>=this.toleranceX){var t=this.currentX>0?\"right\":\"left\";(\"left\"==t&&this.slide!==this.slide.parentNode.lastChild||\"right\"==t&&this.slide!==this.slide.parentNode.firstChild)&&(e=t)}return e}},{key:\"shouldClose\",value:function(){var e=!1;return Math.abs(this.currentY)>=this.toleranceY&&(e=!0),e}},{key:\"setTranslate\",value:function(e,t,i){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];e.style.transition=n?\"all .2s ease\":\"\",e.style.transform=\"translate3d(\".concat(t,\"px, \").concat(i,\"px, 0)\")}}]);function D(e,t,i,n){var s=e.querySelector(\".gslide-media\"),l=new Image,o=\"gSlideTitle_\"+i,r=\"gSlideDesc_\"+i;l.addEventListener(\"load\",(function(){C(n)&&n()}),!1),l.src=t.href,\"\"!=t.sizes&&\"\"!=t.srcset&&(l.sizes=t.sizes,l.srcset=t.srcset),l.alt=\"\",O(t.alt)||\"\"===t.alt||(l.alt=t.alt),\"\"!==t.title&&l.setAttribute(\"aria-labelledby\",o),\"\"!==t.description&&l.setAttribute(\"aria-describedby\",r),t.hasOwnProperty(\"_hasCustomWidth\")&&t._hasCustomWidth&&(l.style.width=t.width),t.hasOwnProperty(\"_hasCustomHeight\")&&t._hasCustomHeight&&(l.style.height=t.height),s.insertBefore(l,s.firstChild)}function _(e,t,i,n){var s=this,l=e.querySelector(\".ginner-container\"),o=\"gvideo\"+i,r=e.querySelector(\".gslide-media\"),a=this.getAllPlayers();d(l,\"gvideo-container\"),r.insertBefore(y('
'),r.firstChild);var h=e.querySelector(\".gvideo-wrapper\");w(this.settings.plyr.css,\"Plyr\");var c=t.href,u=null==t?void 0:t.videoProvider,g=!1;r.style.maxWidth=t.width,w(this.settings.plyr.js,\"Plyr\",(function(){if(!u&&c.match(/vimeo\\.com\\/([0-9]*)/)&&(u=\"vimeo\"),!u&&(c.match(/(youtube\\.com|youtube-nocookie\\.com)\\/watch\\?v=([a-zA-Z0-9\\-_]+)/)||c.match(/youtu\\.be\\/([a-zA-Z0-9\\-_]+)/)||c.match(/(youtube\\.com|youtube-nocookie\\.com)\\/embed\\/([a-zA-Z0-9\\-_]+)/)||c.match(/(youtube\\.com|youtube-nocookie\\.com)\\/shorts\\/([a-zA-Z0-9\\-_]+)/))&&(u=\"youtube\"),\"local\"===u||!u){u=\"local\";var l='\")}var r=g||y('
'));d(h,\"\".concat(u,\"-video gvideo\")),h.appendChild(r),h.setAttribute(\"data-id\",o),h.setAttribute(\"data-index\",i);var v=P(s.settings.plyr,\"config\")?s.settings.plyr.config:{},f=new Plyr(\"#\"+o,v);f.on(\"ready\",(function(e){a[o]=e.detail.plyr,C(n)&&n()})),S((function(){return e.querySelector(\"iframe\")&&\"true\"==e.querySelector(\"iframe\").dataset.ready}),(function(){s.resize(e)})),f.on(\"enterfullscreen\",W),f.on(\"exitfullscreen\",W)}))}function W(e){var t=g(e.target,\".gslide-media\");\"enterfullscreen\"===e.type&&d(t,\"fullscreen\"),\"exitfullscreen\"===e.type&&c(t,\"fullscreen\")}function B(e,t,i,n){var s,l=this,o=e.querySelector(\".gslide-media\"),r=!(!P(t,\"href\")||!t.href)&&t.href.split(\"#\").pop().trim(),a=!(!P(t,\"content\")||!t.content)&&t.content;if(a&&(k(a)&&(s=y('
'.concat(a,\"
\"))),E(a))){\"none\"==a.style.display&&(a.style.display=\"block\");var c=document.createElement(\"div\");c.className=\"ginlined-content\",c.appendChild(a),s=c}if(r){var u=document.getElementById(r);if(!u)return!1;var g=u.cloneNode(!0);g.style.height=t.height,g.style.maxWidth=t.width,d(g,\"ginlined-content\"),s=g}if(!s)return console.error(\"Unable to append inline slide content\",t),!1;o.style.height=t.height,o.style.width=t.width,o.appendChild(s),this.events[\"inlineclose\"+r]=h(\"click\",{onElement:o.querySelectorAll(\".gtrigger-close\"),withCallback:function(e){e.preventDefault(),l.close()}}),C(n)&&n()}function H(e,t,i,n){var s=e.querySelector(\".gslide-media\"),l=function(e){var t=e.url,i=e.allow,n=e.callback,s=e.appendTo,l=document.createElement(\"iframe\");return l.className=\"vimeo-video gvideo\",l.src=t,l.style.width=\"100%\",l.style.height=\"100%\",i&&l.setAttribute(\"allow\",i),l.onload=function(){l.onload=null,d(l,\"node-ready\"),C(n)&&n()},s&&s.appendChild(l),l}({url:t.href,callback:n});s.parentNode.style.maxWidth=t.width,s.parentNode.style.height=t.height,s.appendChild(l)}var j=s((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,e),this.defaults={href:\"\",sizes:\"\",srcset:\"\",title:\"\",type:\"\",videoProvider:\"\",description:\"\",alt:\"\",descPosition:\"bottom\",effect:\"\",width:\"\",height:\"\",content:!1,zoomable:!0,draggable:!0},I(t)&&(this.defaults=o(this.defaults,t))}),[{key:\"sourceType\",value:function(e){var t=e;return null!==(e=e.toLowerCase()).match(/\\.(jpeg|jpg|jpe|gif|png|apn|webp|avif|svg)/)?\"image\":e.match(/(youtube\\.com|youtube-nocookie\\.com)\\/watch\\?v=([a-zA-Z0-9\\-_]+)/)||e.match(/youtu\\.be\\/([a-zA-Z0-9\\-_]+)/)||e.match(/(youtube\\.com|youtube-nocookie\\.com)\\/embed\\/([a-zA-Z0-9\\-_]+)/)||e.match(/(youtube\\.com|youtube-nocookie\\.com)\\/shorts\\/([a-zA-Z0-9\\-_]+)/)||e.match(/vimeo\\.com\\/([0-9]*)/)||null!==e.match(/\\.(mp4|ogg|webm|mov)/)?\"video\":null!==e.match(/\\.(mp3|wav|wma|aac|ogg)/)?\"audio\":e.indexOf(\"#\")>-1&&\"\"!==t.split(\"#\").pop().trim()?\"inline\":e.indexOf(\"goajax=true\")>-1?\"ajax\":\"external\"}},{key:\"parseConfig\",value:function(e,t){var i=this,n=o({descPosition:t.descPosition},this.defaults);if(I(e)&&!E(e)){P(e,\"type\")||(P(e,\"content\")&&e.content?e.type=\"inline\":P(e,\"href\")&&(e.type=this.sourceType(e.href)));var s=o(n,e);return this.setSize(s,t),s}var l=\"\",a=e.getAttribute(\"data-glightbox\"),h=e.nodeName.toLowerCase();if(\"a\"===h&&(l=e.href),\"img\"===h&&(l=e.src,n.alt=e.alt),n.href=l,r(n,(function(s,l){P(t,l)&&\"width\"!==l&&(n[l]=t[l]);var o=e.dataset[l];O(o)||(n[l]=i.sanitizeValue(o))})),n.content&&(n.type=\"inline\"),!n.type&&l&&(n.type=this.sourceType(l)),O(a)){if(!n.title&&\"a\"==h){var d=e.title;O(d)||\"\"===d||(n.title=d)}if(!n.title&&\"img\"==h){var c=e.alt;O(c)||\"\"===c||(n.title=c)}}else{var u=[];r(n,(function(e,t){u.push(\";\\\\s?\"+t)})),u=u.join(\"\\\\s?:|\"),\"\"!==a.trim()&&r(n,(function(e,t){var s=a,l=new RegExp(\"s?\"+t+\"s?:s?(.*?)(\"+u+\"s?:|$)\"),o=s.match(l);if(o&&o.length&&o[1]){var r=o[1].trim().replace(/;\\s*$/,\"\");n[t]=i.sanitizeValue(r)}}))}if(n.description&&\".\"===n.description.substring(0,1)){var g;try{g=document.querySelector(n.description).innerHTML}catch(e){if(!(e instanceof DOMException))throw e}g&&(n.description=g)}if(!n.description){var v=e.querySelector(\".glightbox-desc\");v&&(n.description=v.innerHTML)}return this.setSize(n,t,e),this.slideConfig=n,n}},{key:\"setSize\",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=\"video\"==e.type?this.checkSize(t.videosWidth):this.checkSize(t.width),s=this.checkSize(t.height);return e.width=P(e,\"width\")&&\"\"!==e.width?this.checkSize(e.width):n,e.height=P(e,\"height\")&&\"\"!==e.height?this.checkSize(e.height):s,i&&\"image\"==e.type&&(e._hasCustomWidth=!!i.dataset.width,e._hasCustomHeight=!!i.dataset.height),e}},{key:\"checkSize\",value:function(e){return z(e)?\"\".concat(e,\"px\"):e}},{key:\"sanitizeValue\",value:function(e){return\"true\"!==e&&\"false\"!==e?e:\"true\"===e}}]),V=s((function e(t,n,s){i(this,e),this.element=t,this.instance=n,this.index=s}),[{key:\"setContent\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(u(t,\"loaded\"))return!1;var n=this.instance.settings,s=this.slideConfig,l=T();C(n.beforeSlideLoad)&&n.beforeSlideLoad({index:this.index,slide:t,player:!1});var o=s.type,r=s.descPosition,a=t.querySelector(\".gslide-media\"),h=t.querySelector(\".gslide-title\"),c=t.querySelector(\".gslide-desc\"),g=t.querySelector(\".gdesc-inner\"),v=i,f=\"gSlideTitle_\"+this.index,p=\"gSlideDesc_\"+this.index;if(C(n.afterSlideLoad)&&(v=function(){C(i)&&i(),n.afterSlideLoad({index:e.index,slide:t,player:e.instance.getSlidePlayerInstance(e.index)})}),\"\"==s.title&&\"\"==s.description?g&&g.parentNode.parentNode.removeChild(g.parentNode):(h&&\"\"!==s.title?(h.id=f,h.innerHTML=s.title):h.parentNode.removeChild(h),c&&\"\"!==s.description?(c.id=p,l&&n.moreLength>0?(s.smallDescription=this.slideShortDesc(s.description,n.moreLength,n.moreText),c.innerHTML=s.smallDescription,this.descriptionEvents(c,s)):c.innerHTML=s.description):c.parentNode.removeChild(c),d(a.parentNode,\"desc-\".concat(r)),d(g.parentNode,\"description-\".concat(r))),d(a,\"gslide-\".concat(o)),d(t,\"loaded\"),\"video\"!==o){if(\"external\"!==o)return\"inline\"===o?(B.apply(this.instance,[t,s,this.index,v]),void(s.draggable&&new N({dragEl:t.querySelector(\".gslide-inline\"),toleranceX:n.dragToleranceX,toleranceY:n.dragToleranceY,slide:t,instance:this.instance}))):void(\"image\"!==o?C(v)&&v():D(t,s,this.index,(function(){var i=t.querySelector(\"img\");s.draggable&&new N({dragEl:i,toleranceX:n.dragToleranceX,toleranceY:n.dragToleranceY,slide:t,instance:e.instance}),s.zoomable&&i.naturalWidth>i.offsetWidth&&(d(i,\"zoomable\"),new q(i,t,(function(){e.instance.resize()}))),C(v)&&v()})));H.apply(this,[t,s,this.index,v])}else _.apply(this.instance,[t,s,this.index,v])}},{key:\"slideShortDesc\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:50,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=document.createElement(\"div\");n.innerHTML=e;var s=n.innerText,l=i;if((e=s.trim()).length<=t)return e;var o=e.substr(0,t-1);return l?(n=null,o+'... '+i+\"\"):o}},{key:\"descriptionEvents\",value:function(e,t){var i=this,n=e.querySelector(\".desc-more\");if(!n)return!1;h(\"click\",{onElement:n,withCallback:function(e,n){e.preventDefault();var s=document.body,l=g(n,\".gslide-desc\");if(!l)return!1;l.innerHTML=t.description,d(s,\"gdesc-open\");var o=h(\"click\",{onElement:[s,g(l,\".gslide-description\")],withCallback:function(e,n){\"a\"!==e.target.nodeName.toLowerCase()&&(c(s,\"gdesc-open\"),d(s,\"gdesc-closed\"),l.innerHTML=t.smallDescription,i.descriptionEvents(l,t),setTimeout((function(){c(s,\"gdesc-closed\")}),400),o.destroy())}})}})}},{key:\"create\",value:function(){return y(this.instance.settings.slideHTML)}},{key:\"getConfig\",value:function(){E(this.element)||this.element.hasOwnProperty(\"draggable\")||(this.element.draggable=this.instance.settings.draggable);var e=new j(this.instance.settings.slideExtraAttributes);return this.slideConfig=e.parseConfig(this.element,this.instance.settings),this.slideConfig}}]);function F(e){return Math.sqrt(e.x*e.x+e.y*e.y)}function R(e,t){var i=function(e,t){var i=F(e)*F(t);if(0===i)return 0;var n=function(e,t){return e.x*t.x+e.y*t.y}(e,t)/i;return n>1&&(n=1),Math.acos(n)}(e,t);return function(e,t){return e.x*t.y-t.x*e.y}(e,t)>0&&(i*=-1),180*i/Math.PI}var G=s((function e(t){i(this,e),this.handlers=[],this.el=t}),[{key:\"add\",value:function(e){this.handlers.push(e)}},{key:\"del\",value:function(e){e||(this.handlers=[]);for(var t=this.handlers.length;t>=0;t--)this.handlers[t]===e&&this.handlers.splice(t,1)}},{key:\"dispatch\",value:function(){for(var e=0,t=this.handlers.length;e=0)console.log(\"ignore drag for this touched element\",e.target.nodeName.toLowerCase());else{this.now=Date.now(),this.x1=e.touches[0].pageX,this.y1=e.touches[0].pageY,this.delta=this.now-(this.last||this.now),this.touchStart.dispatch(e,this.element),null!==this.preTapPosition.x&&(this.isDoubleTap=this.delta>0&&this.delta<=250&&Math.abs(this.preTapPosition.x-this.x1)<30&&Math.abs(this.preTapPosition.y-this.y1)<30,this.isDoubleTap&&clearTimeout(this.singleTapTimeout)),this.preTapPosition.x=this.x1,this.preTapPosition.y=this.y1,this.last=this.now;var t=this.preV;if(e.touches.length>1){this._cancelLongTap(),this._cancelSingleTap();var i={x:e.touches[1].pageX-this.x1,y:e.touches[1].pageY-this.y1};t.x=i.x,t.y=i.y,this.pinchStartLen=F(t),this.multipointStart.dispatch(e,this.element)}this._preventTap=!1,this.longTapTimeout=setTimeout(function(){this.longTap.dispatch(e,this.element),this._preventTap=!0}.bind(this),750)}}},{key:\"move\",value:function(e){if(e.touches){var t=this.preV,i=e.touches.length,n=e.touches[0].pageX,s=e.touches[0].pageY;if(this.isDoubleTap=!1,i>1){var l=e.touches[1].pageX,o=e.touches[1].pageY,r={x:e.touches[1].pageX-n,y:e.touches[1].pageY-s};null!==t.x&&(this.pinchStartLen>0&&(e.zoom=F(r)/this.pinchStartLen,this.pinch.dispatch(e,this.element)),e.angle=R(r,t),this.rotate.dispatch(e,this.element)),t.x=r.x,t.y=r.y,null!==this.x2&&null!==this.sx2?(e.deltaX=(n-this.x2+l-this.sx2)/2,e.deltaY=(s-this.y2+o-this.sy2)/2):(e.deltaX=0,e.deltaY=0),this.twoFingerPressMove.dispatch(e,this.element),this.sx2=l,this.sy2=o}else{if(null!==this.x2){e.deltaX=n-this.x2,e.deltaY=s-this.y2;var a=Math.abs(this.x1-this.x2),h=Math.abs(this.y1-this.y2);(a>10||h>10)&&(this._preventTap=!0)}else e.deltaX=0,e.deltaY=0;this.pressMove.dispatch(e,this.element)}this.touchMove.dispatch(e,this.element),this._cancelLongTap(),this.x2=n,this.y2=s,i>1&&e.preventDefault()}}},{key:\"end\",value:function(e){if(e.changedTouches){this._cancelLongTap();var t=this;e.touches.length<2&&(this.multipointEnd.dispatch(e,this.element),this.sx2=this.sy2=null),this.x2&&Math.abs(this.x1-this.x2)>30||this.y2&&Math.abs(this.y1-this.y2)>30?(e.direction=this._swipeDirection(this.x1,this.x2,this.y1,this.y2),this.swipeTimeout=setTimeout((function(){t.swipe.dispatch(e,t.element)}),0)):(this.tapTimeout=setTimeout((function(){t._preventTap||t.tap.dispatch(e,t.element),t.isDoubleTap&&(t.doubleTap.dispatch(e,t.element),t.isDoubleTap=!1)}),0),t.isDoubleTap||(t.singleTapTimeout=setTimeout((function(){t.singleTap.dispatch(e,t.element)}),250))),this.touchEnd.dispatch(e,this.element),this.preV.x=0,this.preV.y=0,this.zoom=1,this.pinchStartLen=null,this.x1=this.x2=this.y1=this.y2=null}}},{key:\"cancelAll\",value:function(){this._preventTap=!0,clearTimeout(this.singleTapTimeout),clearTimeout(this.tapTimeout),clearTimeout(this.longTapTimeout),clearTimeout(this.swipeTimeout)}},{key:\"cancel\",value:function(e){this.cancelAll(),this.touchCancel.dispatch(e,this.element)}},{key:\"_cancelLongTap\",value:function(){clearTimeout(this.longTapTimeout)}},{key:\"_cancelSingleTap\",value:function(){clearTimeout(this.singleTapTimeout)}},{key:\"_swipeDirection\",value:function(e,t,i,n){return Math.abs(e-t)>=Math.abs(i-n)?e-t>0?\"Left\":\"Right\":i-n>0?\"Up\":\"Down\"}},{key:\"on\",value:function(e,t){this[e]&&this[e].add(t)}},{key:\"off\",value:function(e,t){this[e]&&this[e].del(t)}},{key:\"destroy\",value:function(){return this.singleTapTimeout&&clearTimeout(this.singleTapTimeout),this.tapTimeout&&clearTimeout(this.tapTimeout),this.longTapTimeout&&clearTimeout(this.longTapTimeout),this.swipeTimeout&&clearTimeout(this.swipeTimeout),this.element.removeEventListener(\"touchstart\",this.start),this.element.removeEventListener(\"touchmove\",this.move),this.element.removeEventListener(\"touchend\",this.end),this.element.removeEventListener(\"touchcancel\",this.cancel),this.rotate.del(),this.touchStart.del(),this.multipointStart.del(),this.multipointEnd.del(),this.pinch.del(),this.swipe.del(),this.tap.del(),this.doubleTap.del(),this.longTap.del(),this.singleTap.del(),this.pressMove.del(),this.twoFingerPressMove.del(),this.touchMove.del(),this.touchEnd.del(),this.touchCancel.del(),this.preV=this.pinchStartLen=this.zoom=this.isDoubleTap=this.delta=this.last=this.now=this.tapTimeout=this.singleTapTimeout=this.longTapTimeout=this.swipeTimeout=this.x1=this.x2=this.y1=this.y2=this.preTapPosition=this.rotate=this.touchStart=this.multipointStart=this.multipointEnd=this.pinch=this.swipe=this.tap=this.doubleTap=this.longTap=this.singleTap=this.pressMove=this.touchMove=this.touchEnd=this.touchCancel=this.twoFingerPressMove=null,window.removeEventListener(\"scroll\",this._cancelAllHandler),null}}]);function $(e){var t=function(){var e,t=document.createElement(\"fakeelement\"),i={transition:\"transitionend\",OTransition:\"oTransitionEnd\",MozTransition:\"transitionend\",WebkitTransition:\"webkitTransitionEnd\"};for(e in i)if(void 0!==t.style[e])return i[e]}(),i=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,n=u(e,\"gslide-media\")?e:e.querySelector(\".gslide-media\"),s=g(n,\".ginner-container\"),l=e.querySelector(\".gslide-description\");i>769&&(n=s),d(n,\"greset\"),f(n,\"translate3d(0, 0, 0)\"),h(t,{onElement:n,once:!0,withCallback:function(e,t){c(n,\"greset\")}}),n.style.opacity=\"\",l&&(l.style.opacity=\"\")}function J(e){if(e.events.hasOwnProperty(\"touch\"))return!1;var t,i,n,s=x(),l=s.width,o=s.height,r=!1,a=null,h=null,v=null,p=!1,m=1,y=1,b=!1,S=!1,w=null,T=null,C=null,k=null,E=0,A=0,L=!1,I=!1,O={},P={},M=0,z=0,X=document.getElementById(\"glightbox-slider\"),Y=document.querySelector(\".goverlay\"),q=new U(X,{touchStart:function(t){if(r=!0,(u(t.targetTouches[0].target,\"ginner-container\")||g(t.targetTouches[0].target,\".gslide-desc\")||\"a\"==t.targetTouches[0].target.nodeName.toLowerCase())&&(r=!1),g(t.targetTouches[0].target,\".gslide-inline\")&&!u(t.targetTouches[0].target.parentNode,\"gslide-inline\")&&(r=!1),r){if(P=t.targetTouches[0],O.pageX=t.targetTouches[0].pageX,O.pageY=t.targetTouches[0].pageY,M=t.targetTouches[0].clientX,z=t.targetTouches[0].clientY,a=e.activeSlide,h=a.querySelector(\".gslide-media\"),n=a.querySelector(\".gslide-inline\"),v=null,u(h,\"gslide-image\")&&(v=h.querySelector(\"img\")),(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)>769&&(h=a.querySelector(\".ginner-container\")),c(Y,\"greset\"),t.pageX>20&&t.pageXo){var a=O.pageX-P.pageX;if(Math.abs(a)<=13)return!1}p=!0;var d,c=s.targetTouches[0].clientX,u=s.targetTouches[0].clientY,g=M-c,m=z-u;if(Math.abs(g)>Math.abs(m)?(L=!1,I=!0):(I=!1,L=!0),t=P.pageX-O.pageX,E=100*t/l,i=P.pageY-O.pageY,A=100*i/o,L&&v&&(d=1-Math.abs(i)/o,Y.style.opacity=d,e.settings.touchFollowAxis&&(E=0)),I&&(d=1-Math.abs(t)/l,h.style.opacity=d,e.settings.touchFollowAxis&&(A=0)),!v)return f(h,\"translate3d(\".concat(E,\"%, 0, 0)\"));f(h,\"translate3d(\".concat(E,\"%, \").concat(A,\"%, 0)\"))}},touchEnd:function(){if(r){if(p=!1,S||b)return C=w,void(k=T);var t=Math.abs(parseInt(A)),i=Math.abs(parseInt(E));if(!(t>29&&v))return t<29&&i<25?(d(Y,\"greset\"),Y.style.opacity=1,$(h)):void 0;e.close()}},multipointEnd:function(){setTimeout((function(){b=!1}),50)},multipointStart:function(){b=!0,m=y||1},pinch:function(e){if(!v||p)return!1;b=!0,v.scaleX=v.scaleY=m*e.zoom;var t=m*e.zoom;if(S=!0,t<=1)return S=!1,t=1,k=null,C=null,w=null,T=null,void v.setAttribute(\"style\",\"\");t>4.5&&(t=4.5),v.style.transform=\"scale3d(\".concat(t,\", \").concat(t,\", 1)\"),y=t},pressMove:function(e){if(S&&!b){var t=P.pageX-O.pageX,i=P.pageY-O.pageY;C&&(t+=C),k&&(i+=k),w=t,T=i;var n=\"translate3d(\".concat(t,\"px, \").concat(i,\"px, 0)\");y&&(n+=\" scale3d(\".concat(y,\", \").concat(y,\", 1)\")),f(v,n)}},swipe:function(t){if(!S)if(b)b=!1;else{if(\"Left\"==t.direction){if(e.index==e.elements.length-1)return $(h);e.nextSlide()}if(\"Right\"==t.direction){if(0==e.index)return $(h);e.prevSlide()}}}});e.events.touch=q}var K=T(),Q=null!==T()||void 0!==document.createTouch||\"ontouchstart\"in window||\"onmsgesturechange\"in window||navigator.msMaxTouchPoints,ee=document.getElementsByTagName(\"html\")[0],te={selector:\".glightbox\",elements:null,skin:\"clean\",theme:\"clean\",closeButton:!0,startAt:null,autoplayVideos:!0,autofocusVideos:!0,descPosition:\"bottom\",width:\"900px\",height:\"506px\",videosWidth:\"960px\",beforeSlideChange:null,afterSlideChange:null,beforeSlideLoad:null,afterSlideLoad:null,slideInserted:null,slideRemoved:null,slideExtraAttributes:null,onOpen:null,onClose:null,loop:!1,zoomable:!0,draggable:!0,dragAutoSnap:!1,dragToleranceX:40,dragToleranceY:65,preload:!0,oneSlidePerOpen:!1,touchNavigation:!0,touchFollowAxis:!0,keyboardNavigation:!0,closeOnOutsideClick:!0,plugins:!1,plyr:{css:\"https://cdn.plyr.io/3.6.12/plyr.css\",js:\"https://cdn.plyr.io/3.6.12/plyr.js\",config:{ratio:\"16:9\",fullscreen:{enabled:!0,iosNative:!0},youtube:{noCookie:!0,rel:0,showinfo:0,iv_load_policy:3},vimeo:{byline:!1,portrait:!1,title:!1,transparent:!1}}},openEffect:\"zoom\",closeEffect:\"zoom\",slideEffect:\"slide\",moreText:\"See more\",moreLength:60,cssEfects:{fade:{in:\"fadeIn\",out:\"fadeOut\"},zoom:{in:\"zoomIn\",out:\"zoomOut\"},slide:{in:\"slideInRight\",out:\"slideOutLeft\"},slideBack:{in:\"slideInLeft\",out:\"slideOutRight\"},none:{in:\"none\",out:\"none\"}},svg:{close:'',next:' ',prev:''},slideHTML:'
\\n
\\n
\\n
\\n
\\n
\\n
\\n

\\n
\\n
\\n
\\n
\\n
\\n
',lightboxHTML:'
\\n
\\n
\\n
\\n
\\n \\n \\n \\n
\\n
'},ie=s((function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,e),this.customOptions=t,this.settings=o(te,t),this.effectsClasses=this.getAnimationClasses(),this.videoPlayers={},this.apiEvents=[],this.fullElementsList=!1}),[{key:\"init\",value:function(){var e=this,t=this.getSelector();t&&(this.baseEvents=h(\"click\",{onElement:t,withCallback:function(t,i){t.preventDefault(),e.open(i)}})),this.elements=this.getElements()}},{key:\"open\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(0===this.elements.length)return!1;this.activeSlide=null,this.prevActiveSlideIndex=null,this.prevActiveSlide=null;var i=z(t)?t:this.settings.startAt;if(E(e)){var n=e.getAttribute(\"data-gallery\");n&&(this.fullElementsList=this.elements,this.elements=this.getGalleryElements(this.elements,n)),O(i)&&(i=this.getElementIndex(e))<0&&(i=0)}z(i)||(i=0),this.build(),v(this.overlay,\"none\"===this.settings.openEffect?\"none\":this.settings.cssEfects.fade.in);var s=document.body,l=window.innerWidth-document.documentElement.clientWidth;if(l>0){var o=document.createElement(\"style\");o.type=\"text/css\",o.className=\"gcss-styles\",o.innerText=\".gscrollbar-fixer {margin-right: \".concat(l,\"px}\"),document.head.appendChild(o),d(s,\"gscrollbar-fixer\")}d(s,\"glightbox-open\"),d(ee,\"glightbox-open\"),K&&(d(document.body,\"glightbox-mobile\"),this.settings.slideEffect=\"slide\"),this.showSlide(i,!0),1===this.elements.length?(d(this.prevButton,\"glightbox-button-hidden\"),d(this.nextButton,\"glightbox-button-hidden\")):(c(this.prevButton,\"glightbox-button-hidden\"),c(this.nextButton,\"glightbox-button-hidden\")),this.lightboxOpen=!0,this.trigger(\"open\"),C(this.settings.onOpen)&&this.settings.onOpen(),Q&&this.settings.touchNavigation&&J(this),this.settings.keyboardNavigation&&Y(this)}},{key:\"openAt\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.open(null,e)}},{key:\"showSlide\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];p(this.loader),this.index=parseInt(t);var n=this.slidesContainer.querySelector(\".current\");n&&c(n,\"current\"),this.slideAnimateOut();var s=this.slidesContainer.querySelectorAll(\".gslide\")[t];if(u(s,\"loaded\"))this.slideAnimateIn(s,i),m(this.loader);else{p(this.loader);var l=this.elements[t],o={index:this.index,slide:s,slideNode:s,slideConfig:l.slideConfig,slideIndex:this.index,trigger:l.node,player:null};this.trigger(\"slide_before_load\",o),l.instance.setContent(s,(function(){m(e.loader),e.resize(),e.slideAnimateIn(s,i),e.trigger(\"slide_after_load\",o)}))}this.slideDescription=s.querySelector(\".gslide-description\"),this.slideDescriptionContained=this.slideDescription&&u(this.slideDescription.parentNode,\"gslide-media\"),this.settings.preload&&(this.preloadSlide(t+1),this.preloadSlide(t-1)),this.updateNavigationClasses(),this.activeSlide=s}},{key:\"preloadSlide\",value:function(e){var t=this;if(e<0||e>this.elements.length-1)return!1;if(O(this.elements[e]))return!1;var i=this.slidesContainer.querySelectorAll(\".gslide\")[e];if(u(i,\"loaded\"))return!1;var n=this.elements[e],s=n.type,l={index:e,slide:i,slideNode:i,slideConfig:n.slideConfig,slideIndex:e,trigger:n.node,player:null};this.trigger(\"slide_before_load\",l),\"video\"===s||\"external\"===s?setTimeout((function(){n.instance.setContent(i,(function(){t.trigger(\"slide_after_load\",l)}))}),200):n.instance.setContent(i,(function(){t.trigger(\"slide_after_load\",l)}))}},{key:\"prevSlide\",value:function(){this.goToSlide(this.index-1)}},{key:\"nextSlide\",value:function(){this.goToSlide(this.index+1)}},{key:\"goToSlide\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(this.prevActiveSlide=this.activeSlide,this.prevActiveSlideIndex=this.index,!this.loop()&&(e<0||e>this.elements.length-1))return!1;e<0?e=this.elements.length-1:e>=this.elements.length&&(e=0),this.showSlide(e)}},{key:\"insertSlide\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;t<0&&(t=this.elements.length);var i=new V(e,this,t),n=i.getConfig(),s=o({},n),l=i.create(),r=this.elements.length-1;s.index=t,s.node=!1,s.instance=i,s.slideConfig=n,this.elements.splice(t,0,s);var a=null,h=null;if(this.slidesContainer){if(t>r)this.slidesContainer.appendChild(l);else{var d=this.slidesContainer.querySelectorAll(\".gslide\")[t];this.slidesContainer.insertBefore(l,d)}(this.settings.preload&&0==this.index&&0==t||this.index-1==t||this.index+1==t)&&this.preloadSlide(t),0===this.index&&0===t&&(this.index=1),this.updateNavigationClasses(),a=this.slidesContainer.querySelectorAll(\".gslide\")[t],h=this.getSlidePlayerInstance(t),s.slideNode=a}this.trigger(\"slide_inserted\",{index:t,slide:a,slideNode:a,slideConfig:n,slideIndex:t,trigger:null,player:h}),C(this.settings.slideInserted)&&this.settings.slideInserted({index:t,slide:a,player:h})}},{key:\"removeSlide\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1;if(e<0||e>this.elements.length-1)return!1;var t=this.slidesContainer&&this.slidesContainer.querySelectorAll(\".gslide\")[e];t&&(this.getActiveSlideIndex()==e&&(e==this.elements.length-1?this.prevSlide():this.nextSlide()),t.parentNode.removeChild(t)),this.elements.splice(e,1),this.trigger(\"slide_removed\",e),C(this.settings.slideRemoved)&&this.settings.slideRemoved(e)}},{key:\"slideAnimateIn\",value:function(e,t){var i=this,n=e.querySelector(\".gslide-media\"),s=e.querySelector(\".gslide-description\"),l={index:this.prevActiveSlideIndex,slide:this.prevActiveSlide,slideNode:this.prevActiveSlide,slideIndex:this.prevActiveSlide,slideConfig:O(this.prevActiveSlideIndex)?null:this.elements[this.prevActiveSlideIndex].slideConfig,trigger:O(this.prevActiveSlideIndex)?null:this.elements[this.prevActiveSlideIndex].node,player:this.getSlidePlayerInstance(this.prevActiveSlideIndex)},o={index:this.index,slide:this.activeSlide,slideNode:this.activeSlide,slideConfig:this.elements[this.index].slideConfig,slideIndex:this.index,trigger:this.elements[this.index].node,player:this.getSlidePlayerInstance(this.index)};if(n.offsetWidth>0&&s&&(m(s),s.style.display=\"\"),c(e,this.effectsClasses),t)v(e,this.settings.cssEfects[this.settings.openEffect].in,(function(){i.settings.autoplayVideos&&i.slidePlayerPlay(e),i.trigger(\"slide_changed\",{prev:l,current:o}),C(i.settings.afterSlideChange)&&i.settings.afterSlideChange.apply(i,[l,o])}));else{var r=this.settings.slideEffect,a=\"none\"!==r?this.settings.cssEfects[r].in:r;this.prevActiveSlideIndex>this.index&&\"slide\"==this.settings.slideEffect&&(a=this.settings.cssEfects.slideBack.in),v(e,a,(function(){i.settings.autoplayVideos&&i.slidePlayerPlay(e),i.trigger(\"slide_changed\",{prev:l,current:o}),C(i.settings.afterSlideChange)&&i.settings.afterSlideChange.apply(i,[l,o])}))}setTimeout((function(){i.resize(e)}),100),d(e,\"current\")}},{key:\"slideAnimateOut\",value:function(){if(!this.prevActiveSlide)return!1;var e=this.prevActiveSlide;c(e,this.effectsClasses),d(e,\"prev\");var t=this.settings.slideEffect,i=\"none\"!==t?this.settings.cssEfects[t].out:t;this.slidePlayerPause(e),this.trigger(\"slide_before_change\",{prev:{index:this.prevActiveSlideIndex,slide:this.prevActiveSlide,slideNode:this.prevActiveSlide,slideIndex:this.prevActiveSlideIndex,slideConfig:O(this.prevActiveSlideIndex)?null:this.elements[this.prevActiveSlideIndex].slideConfig,trigger:O(this.prevActiveSlideIndex)?null:this.elements[this.prevActiveSlideIndex].node,player:this.getSlidePlayerInstance(this.prevActiveSlideIndex)},current:{index:this.index,slide:this.activeSlide,slideNode:this.activeSlide,slideIndex:this.index,slideConfig:this.elements[this.index].slideConfig,trigger:this.elements[this.index].node,player:this.getSlidePlayerInstance(this.index)}}),C(this.settings.beforeSlideChange)&&this.settings.beforeSlideChange.apply(this,[{index:this.prevActiveSlideIndex,slide:this.prevActiveSlide,player:this.getSlidePlayerInstance(this.prevActiveSlideIndex)},{index:this.index,slide:this.activeSlide,player:this.getSlidePlayerInstance(this.index)}]),this.prevActiveSlideIndex>this.index&&\"slide\"==this.settings.slideEffect&&(i=this.settings.cssEfects.slideBack.out),v(e,i,(function(){var t=e.querySelector(\".ginner-container\"),i=e.querySelector(\".gslide-media\"),n=e.querySelector(\".gslide-description\");t.style.transform=\"\",i.style.transform=\"\",c(i,\"greset\"),i.style.opacity=\"\",n&&(n.style.opacity=\"\"),c(e,\"prev\")}))}},{key:\"getAllPlayers\",value:function(){return this.videoPlayers}},{key:\"getSlidePlayerInstance\",value:function(e){var t=\"gvideo\"+e,i=this.getAllPlayers();return!(!P(i,t)||!i[t])&&i[t]}},{key:\"stopSlideVideo\",value:function(e){if(E(e)){var t=e.querySelector(\".gvideo-wrapper\");t&&(e=t.getAttribute(\"data-index\"))}console.log(\"stopSlideVideo is deprecated, use slidePlayerPause\");var i=this.getSlidePlayerInstance(e);i&&i.playing&&i.pause()}},{key:\"slidePlayerPause\",value:function(e){if(E(e)){var t=e.querySelector(\".gvideo-wrapper\");t&&(e=t.getAttribute(\"data-index\"))}var i=this.getSlidePlayerInstance(e);i&&i.playing&&i.pause()}},{key:\"playSlideVideo\",value:function(e){if(E(e)){var t=e.querySelector(\".gvideo-wrapper\");t&&(e=t.getAttribute(\"data-index\"))}console.log(\"playSlideVideo is deprecated, use slidePlayerPlay\");var i=this.getSlidePlayerInstance(e);i&&!i.playing&&i.play()}},{key:\"slidePlayerPlay\",value:function(e){var t;if(!K||null!==(t=this.settings.plyr.config)&&void 0!==t&&t.muted){if(E(e)){var i=e.querySelector(\".gvideo-wrapper\");i&&(e=i.getAttribute(\"data-index\"))}var n=this.getSlidePlayerInstance(e);n&&!n.playing&&(n.play(),this.settings.autofocusVideos&&n.elements.container.focus())}}},{key:\"setElements\",value:function(e){var t=this;this.settings.elements=!1;var i=[];e&&e.length&&r(e,(function(e,n){var s=new V(e,t,n),l=s.getConfig(),r=o({},l);r.slideConfig=l,r.instance=s,r.index=n,i.push(r)})),this.elements=i,this.lightboxOpen&&(this.slidesContainer.innerHTML=\"\",this.elements.length&&(r(this.elements,(function(){var e=y(t.settings.slideHTML);t.slidesContainer.appendChild(e)})),this.showSlide(0,!0)))}},{key:\"getElementIndex\",value:function(e){var t=!1;return r(this.elements,(function(i,n){if(P(i,\"node\")&&i.node==e)return t=n,!0})),t}},{key:\"getElements\",value:function(){var e=this,t=[];this.elements=this.elements?this.elements:[],!O(this.settings.elements)&&A(this.settings.elements)&&this.settings.elements.length&&r(this.settings.elements,(function(i,n){var s=new V(i,e,n),l=s.getConfig(),r=o({},l);r.node=!1,r.index=n,r.instance=s,r.slideConfig=l,t.push(r)}));var i=!1;return this.getSelector()&&(i=document.querySelectorAll(this.getSelector())),i?(r(i,(function(i,n){var s=new V(i,e,n),l=s.getConfig(),r=o({},l);r.node=i,r.index=n,r.instance=s,r.slideConfig=l,r.gallery=i.getAttribute(\"data-gallery\"),t.push(r)})),t):t}},{key:\"getGalleryElements\",value:function(e,t){return e.filter((function(e){return e.gallery==t}))}},{key:\"getSelector\",value:function(){return!this.settings.elements&&(this.settings.selector&&\"data-\"==this.settings.selector.substring(0,5)?\"*[\".concat(this.settings.selector,\"]\"):this.settings.selector)}},{key:\"getActiveSlide\",value:function(){return this.slidesContainer.querySelectorAll(\".gslide\")[this.index]}},{key:\"getActiveSlideIndex\",value:function(){return this.index}},{key:\"getAnimationClasses\",value:function(){var e=[];for(var t in this.settings.cssEfects)if(this.settings.cssEfects.hasOwnProperty(t)){var i=this.settings.cssEfects[t];e.push(\"g\".concat(i.in)),e.push(\"g\".concat(i.out))}return e.join(\" \")}},{key:\"build\",value:function(){var e=this;if(this.built)return!1;var t=document.body.childNodes,i=[];r(t,(function(e){e.parentNode==document.body&&\"#\"!==e.nodeName.charAt(0)&&e.hasAttribute&&!e.hasAttribute(\"aria-hidden\")&&(i.push(e),e.setAttribute(\"aria-hidden\",\"true\"))}));var n=P(this.settings.svg,\"next\")?this.settings.svg.next:\"\",s=P(this.settings.svg,\"prev\")?this.settings.svg.prev:\"\",l=P(this.settings.svg,\"close\")?this.settings.svg.close:\"\",o=this.settings.lightboxHTML;o=y(o=(o=(o=o.replace(/{nextSVG}/g,n)).replace(/{prevSVG}/g,s)).replace(/{closeSVG}/g,l)),document.body.appendChild(o);var a=document.getElementById(\"glightbox-body\");this.modal=a;var c=a.querySelector(\".gclose\");this.prevButton=a.querySelector(\".gprev\"),this.nextButton=a.querySelector(\".gnext\"),this.overlay=a.querySelector(\".goverlay\"),this.loader=a.querySelector(\".gloader\"),this.slidesContainer=document.getElementById(\"glightbox-slider\"),this.bodyHiddenChildElms=i,this.events={},d(this.modal,\"glightbox-\"+this.settings.skin),this.settings.closeButton&&c&&(this.events.close=h(\"click\",{onElement:c,withCallback:function(t,i){t.preventDefault(),e.close()}})),c&&!this.settings.closeButton&&c.parentNode.removeChild(c),this.nextButton&&(this.events.next=h(\"click\",{onElement:this.nextButton,withCallback:function(t,i){t.preventDefault(),e.nextSlide()}})),this.prevButton&&(this.events.prev=h(\"click\",{onElement:this.prevButton,withCallback:function(t,i){t.preventDefault(),e.prevSlide()}})),this.settings.closeOnOutsideClick&&(this.events.outClose=h(\"click\",{onElement:a,withCallback:function(t,i){e.preventOutsideClick||u(document.body,\"glightbox-mobile\")||g(t.target,\".ginner-container\")||g(t.target,\".gbtn\")||u(t.target,\"gnext\")||u(t.target,\"gprev\")||e.close()}})),r(this.elements,(function(t,i){e.slidesContainer.appendChild(t.instance.create()),t.slideNode=e.slidesContainer.querySelectorAll(\".gslide\")[i]})),Q&&d(document.body,\"glightbox-touch\"),this.events.resize=h(\"resize\",{onElement:window,withCallback:function(){e.resize()}}),this.built=!0}},{key:\"resize\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if((e=e||this.activeSlide)&&!u(e,\"zoomed\")){var t=x(),i=e.querySelector(\".gvideo-wrapper\"),n=e.querySelector(\".gslide-image\"),s=this.slideDescription,l=t.width,o=t.height;if(l<=768?d(document.body,\"glightbox-mobile\"):c(document.body,\"glightbox-mobile\"),i||n){var r=!1;if(s&&(u(s,\"description-bottom\")||u(s,\"description-top\"))&&!u(s,\"gabsolute\")&&(r=!0),n)if(l<=768)n.querySelector(\"img\");else if(r){var a,h=s.offsetHeight,g=n.querySelector(\"img\"),v=this.elements[this.index].node,f=null!==(a=v.getAttribute(\"data-height\"))&&void 0!==a?a:\"100vh\";g.setAttribute(\"style\",\"max-height: calc(\".concat(f,\" - \").concat(h,\"px)\")),s.setAttribute(\"style\",\"max-width: \".concat(g.offsetWidth,\"px;\"))}if(i){var p=P(this.settings.plyr.config,\"ratio\")?this.settings.plyr.config.ratio:\"\";if(!p){var m=i.clientWidth,y=i.clientHeight,b=m/y;p=\"\".concat(m/b,\":\").concat(y/b)}var S=p.split(\":\"),w=this.settings.videosWidth,T=this.settings.videosWidth,C=(T=z(w)||-1!==w.indexOf(\"px\")?parseInt(w):-1!==w.indexOf(\"vw\")?l*parseInt(w)/100:-1!==w.indexOf(\"vh\")?o*parseInt(w)/100:-1!==w.indexOf(\"%\")?l*parseInt(w)/100:parseInt(i.clientWidth))/(parseInt(S[0])/parseInt(S[1]));if(C=Math.floor(C),r&&(o-=s.offsetHeight),T>l||C>o||oT){var k=i.offsetWidth,E=i.offsetHeight,A=o/E,L={width:k*A,height:E*A};i.parentNode.setAttribute(\"style\",\"max-width: \".concat(L.width,\"px\")),r&&s.setAttribute(\"style\",\"max-width: \".concat(L.width,\"px;\"))}else i.parentNode.style.maxWidth=\"\".concat(w),r&&s.setAttribute(\"style\",\"max-width: \".concat(w,\";\"))}}}}},{key:\"reload\",value:function(){this.init()}},{key:\"updateNavigationClasses\",value:function(){var e=this.loop();c(this.nextButton,\"disabled\"),c(this.prevButton,\"disabled\"),0==this.index&&this.elements.length-1==0?(d(this.prevButton,\"disabled\"),d(this.nextButton,\"disabled\")):0!==this.index||e?this.index!==this.elements.length-1||e||d(this.nextButton,\"disabled\"):d(this.prevButton,\"disabled\")}},{key:\"loop\",value:function(){var e=P(this.settings,\"loopAtEnd\")?this.settings.loopAtEnd:null;return e=P(this.settings,\"loop\")?this.settings.loop:e,e}},{key:\"close\",value:function(){var e=this;if(!this.lightboxOpen){if(this.events){for(var t in this.events)this.events.hasOwnProperty(t)&&this.events[t].destroy();this.events=null}return!1}if(this.closing)return!1;this.closing=!0,this.slidePlayerPause(this.activeSlide),this.fullElementsList&&(this.elements=this.fullElementsList),this.bodyHiddenChildElms.length&&r(this.bodyHiddenChildElms,(function(e){e.removeAttribute(\"aria-hidden\")})),d(this.modal,\"glightbox-closing\"),v(this.overlay,\"none\"==this.settings.openEffect?\"none\":this.settings.cssEfects.fade.out),v(this.activeSlide,this.settings.cssEfects[this.settings.closeEffect].out,(function(){if(e.activeSlide=null,e.prevActiveSlideIndex=null,e.prevActiveSlide=null,e.built=!1,e.events){for(var t in e.events)e.events.hasOwnProperty(t)&&e.events[t].destroy();e.events=null}var i=document.body;c(ee,\"glightbox-open\"),c(i,\"glightbox-open touching gdesc-open glightbox-touch glightbox-mobile gscrollbar-fixer\"),e.modal.parentNode.removeChild(e.modal),e.trigger(\"close\"),C(e.settings.onClose)&&e.settings.onClose();var n=document.querySelector(\".gcss-styles\");n&&n.parentNode.removeChild(n),e.lightboxOpen=!1,e.closing=null}))}},{key:\"destroy\",value:function(){this.close(),this.clearAllEvents(),this.baseEvents&&this.baseEvents.destroy()}},{key:\"on\",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e||!C(t))throw new TypeError(\"Event name and callback must be defined\");this.apiEvents.push({evt:e,once:i,callback:t})}},{key:\"once\",value:function(e,t){this.on(e,t,!0)}},{key:\"trigger\",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=[];r(this.apiEvents,(function(t,s){var l=t.evt,o=t.once,r=t.callback;l==e&&(r(i),o&&n.push(s))})),n.length&&r(n,(function(e){return t.apiEvents.splice(e,1)}))}},{key:\"clearAllEvents\",value:function(){this.apiEvents.splice(0,this.apiEvents.length)}},{key:\"version\",value:function(){return\"3.3.0\"}}]);return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=new ie(e);return t.init(),t}}));","\nimport GLightbox from 'GLightbox';\n\nexport default class Glightbox {\n constructor(element) {\n this.element = element;\n this.button = document.querySelector(\".js-glightbox__button\");\n }\n\n mount() {\n const lightbox = GLightbox({\n 'selector': '.glightbox'\n });\n }\n}\n","import Glightbox from './Glightbox';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n\n const glightboxElement = document.querySelectorAll('.glightbox');\n if (!glightboxElement.length) {\n return;\n }\n\n glightboxElement.forEach((element) => {\n const glightboxE = new Glightbox(element);\n glightboxE.mount(element);\n })\n});\n","\nimport GLightbox from 'GLightbox';\n\nexport default class Glightbox {\n constructor(element) {\n this.element = element;\n }\n\n mount() {\n const lightbox = GLightbox({\n 'selector': '.glightbox'\n });\n\n this.element.addEventListener('click', function(){\n lightbox.open();\n })\n }\n}\n","import Glightboxbutton from './Glightboxbutton';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n\n const glightboxElement = document.querySelectorAll('.js-glightbox__button');\n if (!glightboxElement.length) {\n return;\n }\n\n glightboxElement.forEach((element) => {\n const glightboxE = new Glightboxbutton(element);\n glightboxE.mount(element);\n })\n});\n","import \"./front/components/Header/lifecycle\";\nimport './front/components/Dropdown/lifecycle';\nimport './front/components/Breadcrumbs/lifecycle';\nimport './front/components/Details/lifecycle';\nimport './front/components/slider/lifecycle';\nimport './front/components/Loadix/lifecycle';\nimport './front/components/Glightbox/lifecycle';\nimport './front/components/Glightboxbutton/lifecycle';\n\nlet scrollbarWidth = window.innerWidth - document.body.clientWidth;\n document.documentElement.style.setProperty(\"--scrollbarWidth\", `${scrollbarWidth}px`);\n\nwindow.addEventListener('resize', function(event) {\n let scrollbarWidth = window.innerWidth - document.body.clientWidth;\n document.documentElement.style.setProperty(\"--scrollbarWidth\", `${scrollbarWidth}px`);\n}, true);\n"],"names":["window","NodeList","prototype","forEach","o","t","i","this","length","call","Toggler","constructor","element","target","autoClose","autoFocus","expanded","mounted","isWaiting","lastEventType","handleClick","bind","handleKeyup","handleTarget","handleToggling","handleTransitionEnd","handleAnimationEnd","handleAutoClose","e","type","contains","hide","document","removeEventListener","preventDefault","dispatchEvent","CustomEvent","detail","toggler","toggle","key","setAttribute","classList","remove","show","addEventListener","focus","ignore","add","mount","id","tagName","unmount","removeAttribute","Navigation","togglers","hasMegaMenu","tmp","offsetWidth","header","querySelector","handleTargetChange","handleTogglerHide","handleTogglerShow","updateBackdrop","hasTogglerExpanded","querySelectorAll","getElementById","dataset","navigationToggler","push","exports","__assign","Object","assign","s","n","arguments","p","hasOwnProperty","apply","createTestElement","testElement","createElement","style","cssText","documentElement","insertBefore","firstChild","removeTestElement","removeChild","checkSizes","vhTest","windowHeight","innerHeight","vh","offsetHeight","offset","isNeeded","value","noop","computeDifference","sizes","redefineVhUnit","methods","freeze","isString","text","isFunction","f","defaultOptions","cssVarName","redefineVh","method","force","updateOnTouch","onUpdate","getOptions","options","finalOptions","passiveSupported","eventListeners","defineProperty","get","err","addListener","eventName","callback","passive","removeAll","config","updateCssVar","result","setProperty","formatResult","unbind","recompute","vhCheck","onWindowChange","requestAnimationFrame","factory","Header","navigationTogglers","height","hasResized","tmpWidth","hasScrolled","tmpScroll","scrollTop","lastDcrollDown","navigation","burger","direction","isPinned","isSticky","hasNavigationActive","handleNavigationHide","handleNavigationShow","handleNavigationUpdate","handleScroll","handlePinned","handleResize","updateNavigation","calculate","scrollbarWidth","innerWidth","body","clientWidth","isNavigationHasTogglerExpanded","updateResize","isTogglable","getComputedStyle","getPropertyValue","offsetWidt","updateScroll","conditionSticky","nav","headerHeight","headerToggler","loop","headerElement","Component","static","settings","listeners","getNode","parameter","Element","testSelector","fire","data","listener","on","handler","off","index","indexOf","splice","Dropdown","super","_classPrivateFieldInitSpec","_control","writable","_target","_isHiding","_fieldName","_hiddenField","_handleControlClick","_handleItemClick","_handleChoose","_handleFocusout","_handleKeydown","_handleOutsideClick","_handleTransitionEnd","_classPrivateFieldSet","control","controlSelector","targetSelector","getAttribute","_classPrivateFieldGet","listOptions","Error","state","isHiding","choice","hasAttribute","item","innerHTML","currentTarget","close","relatedTarget","keyCode","open","isPersistent","refocus","hasTransition","formName","formValue","fieldGroupOptions","fieldGroupOption","dropdownElements","debounce","func","wait","immediate","timeout","args","context","timestamp","later","last","Date","now","setTimeout","debounced","callNow","clear","clearTimeout","flush","dropdownElement","debounce_1","Breadcrumbs","_enabled","_hasEnded","_handleWindowDebouncedResize","expandable","display","enabled","hasEnded","windowWidth","tempWidth","update","isResponsive","unsetResponsive","enable","disable","setResponsive","undefined","breadcrumbsElements","Details","_content","_label","_handleContentBeforeMatch","_handleHashChange","_handleToggle","isNativeDetails","rememberExpanded","sessionStorageValue","console","error","content","sessionStorage","getItem","toLowerCase","setItem","additionalControl","location","hash","substring","convertControlToButton","getAttributeNames","reduce","acc","name","replaceWith","resetControl","addAdditionalControl","marker","i18n","hideSection","outerHTML","appendChild","removeAdditionalControl","showSection","hasAdditionalControl","removeItem","isObject","obj","extend","src","keys","detailsElements","allDetails","Array","from","map","detailsElement","openElement","details","ssrDocument","activeElement","blur","nodeName","createEvent","initEvent","children","childNodes","getElementsByTagName","createElementNS","importNode","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","Image","screen","matchMedia","cancelAnimationFrame","getWindow","win","nextTick","delay","getTranslate","el","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","transform","webkitTransform","split","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","parseFloat","m42","slice","isNode","node","HTMLElement","nodeType","to","noExtend","nextSource","keysArray","filter","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","animateCSSModeScroll","_ref","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","elementChildren","selector","matches","showWarning","warn","tag","classes","isArray","trim","c","classesToTokens","elementStyle","prop","elementIndex","child","previousSibling","elementParents","parents","parent","parentElement","elementOuterSize","size","includeMargins","makeElementsArray","support","deviceCached","browser","getSupport","smoothScroll","touch","DocumentTouch","calcSupport","getDevice","overrides","_temp","platform","ua","device","ios","android","screenWidth","width","screenHeight","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","needPerspectiveFix","isSafari","String","includes","major","minor","num","Number","isWebView","test","isSafariBrowser","need3dFix","calcBrowser","eventsEmitter","events","priority","self","eventsListeners","destroyed","event","once","onceHandler","__emitterProxy","_len","_key","onAny","eventsAnyListeners","offAny","eventHandler","emit","_len2","_key2","unshift","toggleSlideClasses$1","slideEl","condition","className","toggleSlideClasses","processLazyPreloader","imageEl","closest","isElement","slideClass","lazyEl","lazyPreloaderClass","shadowRoot","unlazy","slides","preload","amount","lazyPreloadPrevNext","slidesPerView","slidesPerViewDynamic","ceil","activeIndex","grid","rows","activeColumn","preloadColumns","_","column","slideIndexLastInView","rewind","realIndex","updateSize","clientHeight","isHorizontal","isVertical","parseInt","isNaN","updateSlides","getDirectionPropertyValue","label","getDirectionLabel","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","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","currentWebKitTransform","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","offsetSize","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","isVisible","slideVisibleClass","slideFullyVisibleClass","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","activeSlide","prevSlide","nextSlide","nextEls","nextElementSibling","next","elementNextAll","prevEls","previousElementSibling","prev","elementPrevAll","slideActiveClass","slideNextClass","slidePrevClass","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","firstSlideInColumn","activeSlideIndex","initialized","runCallbacksOnInit","updateClickedSlide","path","pathEl","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","step","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","transitionEnd","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","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","byMousewheel","loopAdditionalSlides","fill","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","__preventObserver__","swiperLoopMoveDOM","prepend","currentSlideTranslate","diff","touchEventsData","startTranslate","shift","controller","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","onTouchStart","originalEvent","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","preventTouchMoveFromPointerMove","cancelable","touchMoveStopPropagation","nested","stopPropagation","touchesDiff","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowLoopFix","evt","bubbles","bySwiperTouchMove","allowMomentumBounce","grabCursor","setGrabCursor","loopSwapReset","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","nextEl","prevEl","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","resizeTimeout","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","scrollLeft","onLoad","onDocumentTouchStart","documentTouchHandlerProceeded","touchAction","capture","domMethod","swiperMethod","updateOnWindowResize","isGridEnabled","defaults","init","swiperElementNodeName","resizeObserver","createElements","eventsPrefix","url","breakpointsBase","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","transition","transitionDuration","transitionDelay","moving","isLocked","cursor","unsetGrabCursor","attachEvents","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasGrabCursor","isGrabCursor","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","containerEl","currentHeight","points","point","minRatio","substr","sort","b","wasLocked","lastSlideRightEdge","addClasses","classNames","suffixes","entries","prefix","resultClasses","prepareClasses","autoheight","centered","removeClasses","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","extendParams","swiperParams","passedParams","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","property","setProgress","cls","getSlideClasses","updates","view","exact","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","parentNode","toUpperCase","getWrapperSelector","getWrapper","slideSlots","hostEl","lazyElements","destroy","deleteInstance","cleanStyles","object","deleteProps","newDefaults","module","m","installModule","createElementIfNotDefined","checkProps","getEl","res","toggleEl","disabled","subEl","disabledClass","lockClass","onPrevClick","onNextClick","initButton","destroyButton","hideOnClick","hiddenClass","navigationDisabledClass","_s","targetIsButton","find","pagination","clickable","isHidden","classesToSelector","Pagination","pfx","bulletSize","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","position","onBulletClick","total","firstIndex","midIndex","classesToRemove","suffix","flat","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","fractionEl","textContent","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","render","paginationHTML","numberOfBullets","Autoplay","raf","timeLeft","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","autoplayTimeLeft","wasPaused","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","pausedByPointerEnter","autoplayDelayTotal","autoplayDelayCurrent","autoplayStartTime","onTransitionEnd","calcTimeLeft","run","delayForce","currentSlideDelay","activeSlideEl","getSlideDelay","proceed","start","stop","pause","reset","onVisibilityChange","visibilityState","onPointerEnter","onPointerLeave","prototypeGroup","protoMethod","use","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","Slider","swiperElement","paginationValues","autoplayValues","navigationValues","onChange","onChangeValue","slideChangeTransitionEnd","updateTabIndex","buttomAutoplayButtos","swiperProduit","slideButtons","sliders","Loadix","buttons","handleMouseenter","_handleMouseenter","handleMouseleave","_handleMouseleave","handleClickButton","_handleClickButton","selectedId","selectedDetail","newId","loadix","Symbol","toPrimitive","TypeError","iterator","configurable","l","r","E","L","I","M","P","all","fn","h","onElement","withCallback","avoidDuplicate","d","useCapture","u","g","C","k","msMatchesSelector","createDocumentFragment","animation","OAnimation","MozAnimation","WebkitAnimation","S","setInterval","clearInterval","w","O","rel","media","onload","T","A","isFinite","z","X","concat","Y","keyboard","toLocaleLowerCase","q","img","onclose","setZoomEvents","active","zoomedIn","dragging","initialX","initialY","xOffset","yOffset","dragStart","dragEnd","drag","zoomOut","zoomIn","widowWidth","maxWidth","naturalWidth","maxHeight","naturalHeight","clientX","clientY","isDragging","N","dragEl","toleranceX","toleranceY","instance","lastDirection","toleranceReached","dragContainer","doSlideChange","preventOutsideClick","doSlideClose","shouldChange","dragAutoSnap","shouldClose","lastChild","D","srcset","alt","title","description","_hasCustomWidth","_hasCustomHeight","getAllPlayers","plyr","css","videoProvider","js","Plyr","ready","resize","W","B","pop","cloneNode","H","allow","appendTo","j","descPosition","zoomable","draggable","sourceType","setSize","sanitizeValue","RegExp","DOMException","slideConfig","checkSize","videosWidth","V","beforeSlideLoad","player","afterSlideLoad","getSlidePlayerInstance","moreLength","smallDescription","slideShortDesc","moreText","descriptionEvents","dragToleranceX","dragToleranceY","innerText","slideHTML","slideExtraAttributes","parseConfig","F","R","acos","G","handlers","Z","U","move","end","cancel","preV","pinchStartLen","zoom","isDoubleTap","rotate","touchStart","multipointStart","multipointEnd","pinch","swipe","tap","doubleTap","longTap","singleTap","pressMove","twoFingerPressMove","touchMove","touchEnd","touchCancel","translateContainer","_cancelAllHandler","cancelAll","delta","tapTimeout","singleTapTimeout","longTapTimeout","swipeTimeout","x1","x2","y1","y2","preTapPosition","log","dispatch","_cancelLongTap","_cancelSingleTap","_preventTap","angle","sx2","deltaX","deltaY","sy2","_swipeDirection","del","$","OTransition","MozTransition","WebkitTransition","opacity","J","touchFollowAxis","elements","K","Q","createTouch","msMaxTouchPoints","ee","te","skin","theme","closeButton","startAt","autoplayVideos","autofocusVideos","beforeSlideChange","afterSlideChange","slideInserted","slideRemoved","onOpen","onClose","oneSlidePerOpen","touchNavigation","keyboardNavigation","closeOnOutsideClick","plugins","fullscreen","iosNative","youtube","noCookie","showinfo","iv_load_policy","vimeo","byline","portrait","transparent","openEffect","closeEffect","slideEffect","cssEfects","fade","in","out","slideBack","none","svg","lightboxHTML","ie","customOptions","effectsClasses","getAnimationClasses","videoPlayers","apiEvents","fullElementsList","getSelector","baseEvents","getElements","prevActiveSlideIndex","prevActiveSlide","getGalleryElements","getElementIndex","build","overlay","head","showSlide","prevButton","nextButton","lightboxOpen","trigger","loader","slidesContainer","slideAnimateOut","slideAnimateIn","slideNode","setContent","slideDescription","slideDescriptionContained","preloadSlide","updateNavigationClasses","goToSlide","getConfig","create","getActiveSlideIndex","slidePlayerPlay","slidePlayerPause","playing","play","muted","container","gallery","built","charAt","modal","bodyHiddenChildElms","outClose","loopAtEnd","closing","clearAllEvents","Glightbox","GLightbox","glightboxElement","lightbox","Glightboxbutton"],"mappings":"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"}