{"version":3,"file":"bundle.modern.js","mappings":"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","sources":["webpack://goshop/webpack/runtime/create fake namespace object","webpack://goshop/webpack/runtime/load script","webpack://goshop/./src/js/modules/cart/cart-commands.js","webpack://goshop/./src/js/modules/cart/cart-management.js","webpack://goshop/./src/js/modules/cart/small-cart-refresh.js","webpack://goshop/./src/js/modules/general/calculate-free-shipment.js","webpack://goshop/./src/js/modules/general/comments.js","webpack://goshop/./src/js/modules/modals.js","webpack://goshop/./node_modules/swiper/modules/manipulation.mjs","webpack://goshop/./src/js/modules/product-detail/banners-product-card.js","webpack://goshop/./src/js/modules/question-form.js","webpack://goshop/./src/js/modules/recaptcha.js","webpack://goshop/./src/js/modules/scroll-to-element.js","webpack://goshop/./src/js/modules/utils/utils.js","webpack://goshop/./node_modules/basiclightbox/dist/basicLightbox.min.js","webpack://goshop/./node_modules/selector-set/selector-set.next.js","webpack://goshop/./node_modules/delegated-events/dist/index.js","webpack://goshop/./node_modules/vanilla-lazyload/dist/lazyload.min.js","webpack://goshop/./node_modules/swiper/modules/navigation.mjs","webpack://goshop/./node_modules/swiper/shared/create-element-if-not-defined.mjs","webpack://goshop/./node_modules/swiper/shared/ssr-window.esm.mjs","webpack://goshop/./node_modules/swiper/shared/swiper-core.mjs","webpack://goshop/./node_modules/swiper/shared/utils.mjs","webpack://goshop/webpack/bootstrap","webpack://goshop/webpack/runtime/compat get default export","webpack://goshop/webpack/runtime/define property getters","webpack://goshop/webpack/runtime/ensure chunk","webpack://goshop/webpack/runtime/get javascript chunk filename","webpack://goshop/webpack/runtime/global","webpack://goshop/webpack/runtime/hasOwnProperty shorthand","webpack://goshop/webpack/runtime/make namespace object","webpack://goshop/webpack/runtime/publicPath","webpack://goshop/webpack/runtime/jsonp chunk loading","webpack://goshop/./node_modules/swiper/shared/classes-to-selector.mjs","webpack://goshop/./node_modules/swiper/modules/pagination.mjs","webpack://goshop/./src/js/modules/general/observer.js","webpack://goshop/./node_modules/js-cookie/dist/js.cookie.mjs","webpack://goshop/./src/js/modules/general/consent-manager.js","webpack://goshop/./src/js/modules/general/consent-bar.js","webpack://goshop/./src/js/modules/return-to-top.js","webpack://goshop/./src/js/modules/newsletter-cookie-modal.js","webpack://goshop/./src/js/modules/create-pills.js","webpack://goshop/./src/js/modules/wishlist.js","webpack://goshop/./src/js/modules/dropdown-picker.js","webpack://goshop/./src/js/modules/pjax-code.js","webpack://goshop/./src/js/modules/polls.js","webpack://goshop/./src/js/modules/search-engine.js","webpack://goshop/./src/js/modules/desc-navigation.js","webpack://goshop/./src/js/index.js","webpack://goshop/./src/js/modules/price-filtering.js","webpack://goshop/./src/js/modules/filter-narrow-down.js","webpack://goshop/./src/js/modules/amount-handler.js","webpack://goshop/./src/js/modules/availability-popup.js","webpack://goshop/./src/js/modules/advanced-search.js","webpack://goshop/./src/js/modules/banners.js","webpack://goshop/./src/js/modules/button-events.js","webpack://goshop/./src/js/modules/general/rwd.js","webpack://goshop/./src/js/modules/treebox-count.js","webpack://goshop/./src/js/modules/general/widget-facebook.js","webpack://goshop/./src/js/modules/newsletter-popup.js","webpack://goshop/./src/js/modules/utils/event-receiver.js","webpack://goshop/./src/js/modules/product-adder.js","webpack://goshop/./src/js/modules/tabs.js","webpack://goshop/./src/js/modules/general/showcase.js","webpack://goshop/./src/js/modules/video-placeholders.js"],"sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"goshop:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","import { on } from 'delegated-events';\n\nimport smallCartRefresh from '../cart/small-cart-refresh';\nimport { showLoader, hideLoader } from '../utils/utils';\nimport showPopup from '../modals';\nimport { maskProductsAmount } from './cart-management.js';\n\nexport default function () {\n on('click', '[data-cart-command]', function (e) {\n const arg = this.value;\n const command = this.getAttribute(\"data-cart-command\");\n\n cartCommand(command, arg);\n });\n\n on('click', \".payment-channels-modal .goshop-modal [data-channel-id]\", function () {\n window.currentModalInstance.close();\n\n cartCommand(\"set-channel\", this.getAttribute(\"data-channel-id\"));\n });\n\n on('click', \"#validate-voucher\", function (e) {\n cartCommand(\"voucher\", document.getElementById(\"voucher-value\").value);\n });\n}\n\nfunction cartCommand(command, arg) {\n showLoader();\n\n fetch('/cartaction/command', {\n method: 'POST',\n credentials: 'same-origin',\n body: JSON.stringify({\n request: {\n command: command,\n argument: arg\n }\n }),\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n }\n })\n .then(response => response.json())\n .then(data => {\n document.getElementById('cartaction-content').innerHTML = data.Html;\n smallCartRefresh();\n window.lazyLoadInstance.update();\n hideLoader();\n\n if (data.PositionChanges) {\n for (const item of data.PositionChanges) {\n document.dispatchEvent(new CustomEvent('goshop:cart_action', { detail: item }));\n }\n }\n\n if (data.PositionsCount == 0) {\n document.location.href = \"/emptycart\";\n }\n\n if (data.ErrorMessage) {\n showPopup({ body: data.ErrorMessage, overloadClass: 'error-modal' });\n }\n\n maskProductsAmount('.cart-product-amount input[type=\"text\"]');\n }).catch(error => {\n console.log(error);\n hideLoader();\n });\n}\n\nexport { cartCommand };","import { on } from 'delegated-events';\n\nimport { cartCommand } from './cart-commands';\nimport showPopup from '../modals';\n\nexport function maskProductsAmount(selector) {\n const inputs = document.querySelectorAll(selector);\n\n if (inputs.length === 0) return;\n\n import('imask').then((module) => {\n inputs.forEach(input => {\n const maskOptions = {\n mask: Number,\n min: 1,\n max: 9999\n };\n\n module.default(input, maskOptions);\n });\n });\n}\n\nexport default function () {\n maskProductsAmount('.cart-product-amount input[type=\"text\"]');\n\n on('click', '.cart-product-remove button', function () {\n const tr = this.closest('.cart-product');\n tr.parentElement.removeChild(tr);\n recalculateQuantity();\n });\n\n on('keydown', '#voucher-value', function (e) {\n if (e.keyCode === 13) {\n e.preventDefault();\n this.nextElementSibling.click();\n }\n });\n\n on('keydown', '.cart-product-amount input', function (e) {\n if (e.keyCode === 13) {\n e.preventDefault();\n recalculateQuantity();\n }\n });\n\n on('click', '.cart-select-wrapper li.selected label', function (e) {\n e.preventDefault();\n });\n\n const cartCheckAll = document.querySelector('#cart-check-all');\n\n if (cartCheckAll) {\n const needCartCheckAll = cartCheckAll.closest('fieldset').querySelectorAll('.checking-reg:not(.cart-check-all)').length > 1;\n\n if (needCartCheckAll) {\n cartCheckAll.closest('fieldset').classList.add('has-many-checkboxes');\n }\n }\n\n on('change', '#cart-check-all', function () {\n const isChecked = this.checked;\n const allCheckboxes = this.closest('fieldset').querySelectorAll('input[type=\"checkbox\"]:not(#cart-check-all)');\n\n allCheckboxes.forEach(checkbox => {\n if (isChecked != checkbox.checked) {\n checkbox.click();\n }\n });\n });\n\n on('click', '.pick-payment-method', function () {\n showPopup({ header: 'Wybierz kanał płatności', body: this.nextElementSibling.innerHTML, overloadClass: 'payment-channels-modal' });\n });\n\n on('click', '.recalculate-all', function () {\n recalculateQuantity();\n });\n\n on('click', '.cart-product-amount button', function () {\n const inputField = this.parentElement.querySelector(\"input\");\n const inputValue = Number(inputField.value);\n\n if (isNaN(inputValue)) {\n inputField.value = 1;\n recalculateQuantity();\n return;\n\n }\n\n if (this.classList.contains('plus')) {\n inputField.value = inputValue + 1;\n }\n\n if (this.classList.contains('minus')) {\n if (inputValue > 1)\n inputField.value = inputValue - 1;\n else return;\n }\n\n recalculateQuantity();\n });\n\n // Odliczanie na ostatnim kroku koszyka\n const paymentRedirectButton = document.getElementById('auto-redirect');\n\n if (paymentRedirectButton) {\n let seconds = +document.querySelector('.cart-final-payment').getAttribute('data-payment-timer');\n paymentRedirectButton.querySelectorAll('em')[0].textContent = seconds;\n\n const timer = setInterval(function () {\n paymentRedirectButton.querySelectorAll('em')[0].textContent = --seconds;\n\n if (seconds === 0) {\n paymentRedirectButton.click();\n clearInterval(timer);\n }\n }, 1000);\n\n paymentRedirectButton.addEventListener('click', function (e) {\n if (!paymentRedirectButton.getAttribute(\"href\")) {\n e.preventDefault();\n document.getElementById('payment-start').submit();\n }\n });\n }\n}\n\nfunction recalculateQuantity() {\n const items = Array.from(document.querySelectorAll(\"[data-cart-item]\")).map(element => {\n\n return {\n key: element.getAttribute(\"data-cart-item\"),\n quantity: !isNaN(element.value) ? +element.value : 1\n }\n });\n\n cartCommand(\"quantity\", JSON.stringify(items));\n}","import calculateFreeShipment from '../general/calculate-free-shipment';\n\nexport default function () {\n fetch('/smallcart', { method: 'POST', credentials: 'same-origin' })\n .then(response => response.text())\n .then(data => {\n document.querySelector('[data-role=\"cart-refresh\"]').innerHTML = data;\n calculateFreeShipment();\n });\n}","export default function () {\n const headerShipment = document.querySelector('.header-shipment');\n\n function calculateShipment() {\n const freeShipmentValue = parseFloat(headerShipment.getAttribute('data-free-shipment-value'));\n const currentPaymentValue = parseFloat(document.querySelector('#cart-box > span').getAttribute('data-current-payment-value'));\n const diff = +(freeShipmentValue - currentPaymentValue).toFixed(2);\n\n if (diff > 0) {\n headerShipment.innerHTML = `Do darmowej dostawy brakuje ${diff.toFixed(2).replace('.', ',')} zł`;\n } else {\n headerShipment.innerHTML = `Dostawa gratis!`;\n }\n }\n\n if (headerShipment) {\n calculateShipment();\n }\n}","import scrollToElement from '../scroll-to-element';\nimport showPopup from '../modals';\nimport { showLoader, hideLoader } from '../utils/utils';\n\nconst commentFormSubmit = form => {\n showLoader();\n\n const productId = form.getAttribute('data-product-id');\n const positionId = form.getAttribute('data-position-id');\n const token = form.getAttribute('data-token');\n const request = {\n Rating: Number(form.elements['product-comment-rating'].value),\n RatingUser: form.elements['product-comment-author'].value,\n RatingBody: form.elements['product-comment-opinion'].value,\n PositionId: positionId,\n ProductId: productId,\n Token: token,\n };\n\n fetch('/api/frontend/RateProduct', {\n method: 'POST',\n credentials: 'same-origin',\n body: JSON.stringify(request),\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n }\n })\n .then(response => response.json())\n .then(data => {\n form.closest('.single-comment-row').classList.add('product-commented');\n hideLoader();\n showPopup({ body: data.message });\n })\n .catch(error => {\n console.log(error);\n hideLoader();\n });\n};\n\nexport default function () {\n const addCommentForm = document.querySelectorAll('.add-comment-form');\n\n addCommentForm.forEach(form => {\n form.querySelectorAll('.stars-rating li').forEach((star, index) => {\n star.addEventListener('click', function (e) {\n const starIndex = index + 1;\n const starsContainer = this.parentElement.parentElement;\n\n starsContainer.querySelectorAll('li').forEach(li => li.classList.remove('rated'));\n\n for (let i = 0; i < starIndex; i++) {\n starsContainer.querySelectorAll('li')[i].classList.add('rated');\n }\n\n form.querySelector('[name=product-comment-rating]').value = starIndex;\n e.preventDefault();\n });\n });\n });\n\n const comments = document.querySelectorAll('.comment');\n\n if (comments.length > 0) {\n comments.forEach(comment => {\n const starsContainer = comment.getElementsByClassName('stars-rating')[0];\n const starRating = starsContainer.getAttribute('data-rating');\n let newStars = '';\n\n for (let i = 1; i <= 5; i++) {\n i <= starRating ? newStars += '
  • ' : newStars += '
  • ';\n }\n\n starsContainer.querySelectorAll('ul')[0].innerHTML = newStars;\n });\n }\n\n const averageRating = document.querySelectorAll('.average-rating');\n\n averageRating.forEach(rating => {\n const starsContainer = rating;\n const starsRating = (starsContainer.getAttribute('data-rating') * 20).toFixed(2, 10);\n\n starsContainer.querySelectorAll('div')[0].style.width = `${starsRating}%`;\n starsContainer.querySelectorAll('div')[1].style.width = `${100 - starsRating}%`;\n\n if (rating.parentElement.classList.contains('detail-stars-wrapper')) {\n rating.addEventListener('click', function () {\n const target = document.getElementById('detail-comments');\n scrollToElement(target);\n });\n }\n });\n}\n\nexport { commentFormSubmit };","import * as basicLightbox from 'basiclightbox';\nimport { on } from 'delegated-events';\n\non('click', '.goshop-modal-close', function () {\n if (window.currentModalInstance) {\n window.currentModalInstance.close();\n } else {\n document.querySelector('.basicLightbox').click();\n }\n});\n\nexport default function ({\n header = 'Powiadomienie',\n body,\n overloadClass = '',\n showCallback = null,\n closeCallback = null,\n anotherCloseSelector = null,\n leftLinks = null,\n rightLinks = null\n}) {\n const instance = basicLightbox.create(`\n
    \n ${header !== null ? `
    ${header}
    ` : ''}\n
    \n ${body}\n\n ${leftLinks || rightLinks ? `\n
    \n ${leftLinks ? leftLinks : ''}\n ${rightLinks ? rightLinks : ''}\n
    \n ` : ''}\n
    \n \n
    \n `, {\n className: `${overloadClass}`,\n onShow: (instance) => {\n if (anotherCloseSelector) {\n instance.element().querySelector(anotherCloseSelector).onclick = instance.close;\n }\n\n if (showCallback) {\n showCallback();\n }\n },\n onClose: () => {\n window.currentModalInstance = null;\n\n if (closeCallback) {\n closeCallback();\n }\n }\n });\n\n window.currentModalInstance = instance;\n instance.show();\n}","function appendSlide(slides) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n const appendElement = slideEl => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.append(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.append(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) appendElement(slides[i]);\n }\n } else {\n appendElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n}\n\nfunction prependSlide(slides) {\n const swiper = this;\n const {\n params,\n activeIndex,\n slidesEl\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n const prependElement = slideEl => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.prepend(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.prepend(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) prependElement(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n prependElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n\nfunction addSlide(index, slides) {\n const swiper = this;\n const {\n params,\n activeIndex,\n slidesEl\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.recalcSlides();\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides[i];\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) slidesEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n slidesEl.append(slides);\n }\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n slidesEl.append(slidesBuffer[i]);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeSlide(slidesIndexes) {\n const swiper = this;\n const {\n params,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeAllSlides() {\n const swiper = this;\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n\nfunction Manipulation(_ref) {\n let {\n swiper\n } = _ref;\n Object.assign(swiper, {\n appendSlide: appendSlide.bind(swiper),\n prependSlide: prependSlide.bind(swiper),\n addSlide: addSlide.bind(swiper),\n removeSlide: removeSlide.bind(swiper),\n removeAllSlides: removeAllSlides.bind(swiper)\n });\n}\n\nexport { Manipulation as default };\n","import { Navigation, Manipulation } from 'swiper/modules';\n\nlet bigPhotos;\nlet smallPhotos;\n\nconst moveSlides = function (index) {\n const nextSlide = this.slides[index + 1];\n const prevSlide = this.slides[index - 1];\n \n if (this.slides[index].classList.contains('active')) return;\n\n document.querySelector('#detail-images .size-custom.active').classList.remove('active');\n this.slides[index].classList.add('active');\n\n if (nextSlide && !nextSlide.classList.contains('swiper-slide-visible')) {\n this.slideNext();\n }\n\n if (prevSlide && !prevSlide.classList.contains('swiper-slide-visible')) {\n this.slidePrev();\n }\n};\n\nexport default function () {\n // PRODUCT DETAILS BIG PHOTOS\n window.addEventListener('load', () => {\n const detailImages = document.querySelector('#detail-images .product-images');\n\n import('swiper').then((module) => {\n const Swiper = module.default;\n\n bigPhotos = new Swiper(detailImages, {\n modules: [Navigation, Manipulation],\n slidesPerView: 1,\n preloadImages: false,\n navigation: {\n nextEl: '.swiper-button-next.detail-swiper-button',\n prevEl: '.swiper-button-prev.detail-swiper-button'\n },\n on: {\n beforeTransitionStart: function (instance) {\n const currentSlide = instance.slides[instance.activeIndex];\n const slideImg = currentSlide.querySelector('img');\n\n moveSlides.call(smallPhotos, instance.activeIndex);\n\n if (slideImg.hasAttribute('src')) return;\n\n slideImg.setAttribute('src', slideImg.getAttribute('data-src'));\n }\n }\n });\n\n // PRODUCT DETAILS SMALL PHOTOS\n smallPhotos = new Swiper('.product-images-mini', {\n modules: [Manipulation],\n watchSlidesProgress: true,\n threshold: 50,\n preloadImages: false,\n on: {\n init: function () {\n const smallGallery = document.querySelector('.product-images-mini');\n\n if (smallGallery.querySelectorAll('.size-custom').length > 1) {\n smallGallery.classList.add('show');\n this.slides[0].classList.add('active');\n }\n },\n click: function () {\n const clickedIndex = this.clickedIndex;\n\n if (clickedIndex === undefined) return;\n\n moveSlides.call(this, clickedIndex);\n bigPhotos.slideTo(clickedIndex);\n }\n },\n breakpoints: {\n 1: {\n slidesPerView: 'auto',\n direction: 'horizontal',\n centeredSlides: true\n },\n 1280: {\n slidesPerView: 4,\n direction: 'vertical',\n spaceBetween: 20\n }\n }\n });\n });\n });\n}\n\n// Zmiana slajdów po wyborze wariantu\nconst bannersReload = (images) => {\n let bigPhotoArray = [];\n let smallPhotoArray = [];\n\n bigPhotos.slideTo(0, 0);\n bigPhotos.off('slideChange');\n bigPhotos.removeAllSlides();\n\n images.forEach(image => {\n bigPhotoArray.push(`\n \n \n \"${image.ImageAlt}\"\n \n `\n );\n });\n\n bigPhotos.appendSlide(bigPhotoArray);\n bigPhotos.update();\n\n smallPhotos.removeAllSlides();\n if (images.length < 2) return;\n\n images.forEach(image => {\n smallPhotoArray.push(`
    \n \"${image.ImageAlt}\"\n
    `);\n });\n\n smallPhotos.appendSlide(smallPhotoArray);\n smallPhotos.update();\n\n bigPhotos.on('slideChange', function() {\n const activeIndex = this.activeIndex;\n moveSlides.call(smallPhotos, activeIndex);\n });\n\n if (smallPhotos.slides[0]) {\n smallPhotos.slides[0].classList.add('active');\n }\n};\n\nexport { bannersReload };","import showPopup from './modals';\nimport { DrawSingleCaptcha } from './recaptcha';\nimport { showLoader, hideLoader } from './utils/utils';\n\nconst sendQuestion = (form) => {\n const fields = [...form.elements].filter(elem => {\n return elem.type !== 'submit'\n }).map(({ name, type, value }) => {\n return {\n name,\n type,\n value\n };\n });\n\n if (window.currentModalInstance) {\n window.currentModalInstance.close();\n }\n\n const recaptchaItem = form.querySelector('.g-recaptcha-response');\n\n fetch('/api/frontend/SendQuestionForm', {\n method: 'POST',\n credentials: 'same-origin',\n body: JSON.stringify({\n fields,\n recaptcha: recaptchaItem ? recaptchaItem.value : ''\n }),\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n }\n })\n .then(response => response.json())\n .then(data => {\n hideLoader();\n\n showPopup({ body: data.message })\n\n form.querySelectorAll('.field-wrapper').forEach(wrapper => {\n wrapper.classList.remove('valid');\n wrapper.classList.remove('filled');\n });\n\n if (window.grecaptcha) {\n const grecaptchaInstances = document.querySelectorAll('.g-recaptcha-response');\n\n grecaptchaInstances.forEach((instance, index) => {\n if (recaptchaItem === instance) {\n window.grecaptcha.reset(index);\n }\n });\n }\n\n form.reset();\n });\n}\n\nexport default function () {\n \n const modalTrigger = document.querySelectorAll('[data-modal-form]');\n if (modalTrigger.length == 0)\n return;\n\n modalTrigger.forEach(trigger => {\n const type = +trigger.getAttribute('data-modal-form');\n const itemId = trigger.getAttribute('data-id') ? +trigger.getAttribute('data-id') : null;\n\n trigger.addEventListener('click', e => {\n e.preventDefault();\n\n showLoader();\n\n fetch('/forms/QuestionForm', {\n method: 'POST',\n credentials: 'same-origin',\n body: JSON.stringify({\n type,\n itemId\n }),\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n }\n })\n .then(response => response.text())\n .then(data => {\n\n hideLoader();\n \n showPopup({\n header: 'Formularz zapytania',\n body: data,\n overloadClass: 'form-modal'\n });\n\n import('./front-validation').then(module => module.default([document.querySelector('.goshop-modal [data-run-validator]')]));\n DrawSingleCaptcha(document.querySelector('.goshop-modal .captcha-wrapper'));\n\n });\n\n });\n });\n\n}\n\nexport { sendQuestion };","import { getScript, isVisible } from './utils/utils';\n\n\nconst BuildRecaptcha = (captchaWrapper) => {\n window.grecaptcha.render(captchaWrapper, {\n 'callback': function (result) {\n \n const container = captchaWrapper.closest('[data-recaptcha-form]');\n container\n .querySelectorAll('.confirm-button[disabled]')\n .forEach(button => button.disabled = false);\n }\n });\n};\n\nvar defferedCaptchas = [];\n\nwindow.recaptchaLoadCallback = function () {\n\n for (let value of defferedCaptchas)\n BuildRecaptcha(value);\n defferedCaptchas = [];\n};\n\nexport function DrawInlineCaptcha() {\n const captchaWrappers = document.querySelectorAll('[data-recaptcha-form] .captcha-wrapper');\n\n captchaWrappers.forEach((item) => {\n if (isVisible(item))\n DrawSingleCaptcha(item);\n });\n\n}\n\nexport function DrawSingleCaptcha(target) {\n\n if (!target)\n return;\n\n if (typeof window.grecaptcha === 'undefined') {\n defferedCaptchas.push(target);\n\n getScript('https://www.google.com/recaptcha/api.js?render=explicit&onload=recaptchaLoadCallback', null);\n\n }\n else BuildRecaptcha(target);\n\n\n\n}","export default function (target, customOffsetTop, customOffsetBottom, scrollFinishCallback) {\n if (!target) return;\n\n scrollToElement().then(scrollFinishCallback);\n\n\n function scrollToElement() {\n\n return new Promise((resolve) => {\n target.style.scrollMargin = `\n ${((customOffsetTop || customOffsetTop === 0) ? customOffsetTop : 16) + getPageHeaderOffset()}px\n ${((customOffsetBottom || customOffsetBottom === 0) ? customOffsetBottom : 16)}px`;\n\n target.scrollIntoView({\n behavior: 'smooth',\n });\n\n\n const onScroll = () => {\n clearTimeout(scrollTimeout);\n scrollTimeout = setTimeout(() => {\n window.removeEventListener(\"scroll\", onScroll);\n resolve();\n }, 50);\n };\n\n let scrollTimeout;\n window.addEventListener(\"scroll\", onScroll);\n });\n\n }\n}\n\n\nexport function getPageHeaderOffset() {\n const header = document.querySelector(\".shop-header\");\n if (!header) return 0;\n\n let headerOffset = header.clientHeight;\n\n const cs = getComputedStyle(document.documentElement);\n\n let headerScrollTransform = parseFloat(cs.getPropertyValue('--headerScrollTransform'));\n if (headerScrollTransform) headerOffset += headerScrollTransform;\n\n let headerHeightChange = parseFloat(cs.getPropertyValue('--headerHeightChange'));\n if (!header.classList.contains(\"stuck\") && headerHeightChange) headerOffset -= headerHeightChange;\n\n return headerOffset;\n}","// Usuwa element pozostawiając jego dzieci (el: selector, np. '.class')\nconst unwrap = (tab, elem) => {\n const element = tab.querySelector(elem);\n const parent = element.parentNode;\n\n while (element.firstChild) parent.insertBefore(element.firstChild, element);\n\n parent.removeChild(element);\n};\n\nconst isVisible = elem => !!elem && !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n\n//!!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length)\n\nconst debounce = (func, wait, immediate) => {\n var timeout;\n return function () {\n var context = this, args = arguments;\n var later = function () {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n};\n\nconst findSiblings = elem => {\n var siblings = [];\n var sibling = elem.parentNode.firstChild;\n\n while (sibling) {\n if (sibling.nodeType === 1 && sibling !== elem) {\n siblings.push(sibling);\n }\n sibling = sibling.nextSibling;\n }\n\n return siblings;\n};\n\nconst getQueryVariable = variable => {\n var query = window.location.search.substring(1);\n var vars = query.split(\"&\");\n for (var i = 0; i < vars.length; i++) {\n var pair = vars[i].split(\"=\");\n if (pair[0] == variable) { return pair[1]; }\n }\n return false;\n};\n\n// Serializowanie formularza\nconst serialize = function (form) {\n var serialized = [];\n\n for (var i = 0; i < form.elements.length; i++) {\n var field = form.elements[i];\n\n if (!field.name || field.disabled || field.type === 'file' || field.type === 'reset' || field.type === 'submit' || field.type === 'button') continue;\n\n if (field.type === 'select-multiple') {\n for (var n = 0; n < field.options.length; n++) {\n if (!field.options[n].selected) continue;\n serialized.push(encodeURIComponent(field.name) + \"=\" + encodeURIComponent(field.options[n].value));\n }\n }\n\n else if ((field.type !== 'checkbox' && field.type !== 'radio') || field.checked) {\n serialized.push(encodeURIComponent(field.name) + \"=\" + encodeURIComponent(field.value));\n }\n }\n\n return serialized.join('&');\n};\n\nconst slideUp = (target, duration = 500) => {\n target.style.transitionProperty = 'height, margin, padding';\n target.style.transitionDuration = duration + 'ms';\n target.style.boxSizing = 'border-box';\n target.style.height = target.offsetHeight + 'px';\n target.offsetHeight;\n target.style.overflow = 'hidden';\n target.style.height = 0;\n target.style.paddingTop = 0;\n target.style.paddingBottom = 0;\n target.style.marginTop = 0;\n target.style.marginBottom = 0;\n window.setTimeout(() => {\n target.style.display = 'none';\n target.style.removeProperty('height');\n target.style.removeProperty('padding-top');\n target.style.removeProperty('padding-bottom');\n target.style.removeProperty('margin-top');\n target.style.removeProperty('margin-bottom');\n target.style.removeProperty('overflow');\n target.style.removeProperty('transition-duration');\n target.style.removeProperty('transition-property');\n }, duration);\n};\n\nconst slideDown = (target, duration = 500) => {\n target.style.removeProperty('display');\n\n let display = window.getComputedStyle(target).display;\n\n if (display === 'none') {\n display = 'block';\n }\n\n target.style.display = display;\n\n let height = target.offsetHeight;\n\n target.style.overflow = 'hidden';\n target.style.height = 0;\n target.style.paddingTop = 0;\n target.style.paddingBottom = 0;\n target.style.marginTop = 0;\n target.style.marginBottom = 0;\n target.offsetHeight;\n target.style.boxSizing = 'border-box';\n target.style.transitionProperty = \"height, margin, padding\";\n target.style.transitionDuration = duration + 'ms';\n target.style.height = height + 'px';\n target.style.removeProperty('padding-top');\n target.style.removeProperty('padding-bottom');\n target.style.removeProperty('margin-top');\n target.style.removeProperty('margin-bottom');\n window.setTimeout(() => {\n target.style.removeProperty('height');\n target.style.removeProperty('overflow');\n target.style.removeProperty('transition-duration');\n target.style.removeProperty('transition-property');\n }, duration);\n};\n\nconst slideToggle = (target, duration = 500) => {\n if (window.getComputedStyle(target).display === 'none') {\n return slideDown(target, duration);\n } else {\n return slideUp(target, duration);\n }\n};\n\nconst offset = el => {\n var rect = el.getBoundingClientRect(),\n scrollLeft = window.pageXOffset || document.documentElement.scrollLeft,\n scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n return { top: rect.top + scrollTop, left: rect.left + scrollLeft };\n};\n\nconst getScript = (source, callback) => {\n var script = document.createElement('script');\n var prior = document.querySelectorAll('script')[0];\n script.async = 1;\n\n script.onload = script.onreadystatechange = (_, isAbort) => {\n if (isAbort || !script.readyState || /loaded|complete/.test(script.readyState)) {\n script.onload = script.onreadystatechange = null;\n script = undefined;\n if (!isAbort) if (callback) callback();\n }\n };\n\n script.src = source;\n prior.parentNode.insertBefore(script, prior);\n};\n\nconst showLoader = () => {\n document.querySelector('#loading').classList.add('show');\n}\n\nconst hideLoader = () => {\n setTimeout(() => {\n document.querySelector('#loading').classList.remove('show');\n }, 300);\n}\n\nconst conditionalContentSet = (scope, selector, value) => {\n\n const item = scope.querySelector(selector);\n if (!item)\n return;\n\n item.innerHTML = value || '';\n\n}\n\nexport {\n unwrap,\n isVisible,\n debounce,\n findSiblings,\n getQueryVariable,\n serialize,\n slideUp,\n slideDown,\n slideToggle,\n offset,\n getScript,\n showLoader,\n hideLoader,\n conditionalContentSet\n};","!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).basicLightbox=e()}}((function(){return function e(n,t,o){function r(c,u){if(!t[c]){if(!n[c]){var s=\"function\"==typeof require&&require;if(!u&&s)return s(c,!0);if(i)return i(c,!0);var a=new Error(\"Cannot find module '\"+c+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var l=t[c]={exports:{}};n[c][0].call(l.exports,(function(e){return r(n[c][1][e]||e)}),l,l.exports,e,n,t,o)}return t[c].exports}for(var i=\"function\"==typeof require&&require,c=0;c1&&void 0!==arguments[1]&&arguments[1],t=document.createElement(\"div\");return t.innerHTML=e.trim(),!0===n?t.children:t.firstChild},r=function(e,n){var t=e.children;return 1===t.length&&t[0].tagName===n},i=function(e){return null!=(e=e||document.querySelector(\".basicLightbox\"))&&!0===e.ownerDocument.body.contains(e)};t.visible=i;t.create=function(e,n){var t=function(e,n){var t=o('\\n\\t\\t
    \\n\\t\\t\\t
    \\n\\t\\t
    \\n\\t')),i=t.querySelector(\".basicLightbox__placeholder\");e.forEach((function(e){return i.appendChild(e)}));var c=r(i,\"IMG\"),u=r(i,\"VIDEO\"),s=r(i,\"IFRAME\");return!0===c&&t.classList.add(\"basicLightbox--img\"),!0===u&&t.classList.add(\"basicLightbox--video\"),!0===s&&t.classList.add(\"basicLightbox--iframe\"),t}(e=function(e){var n=\"string\"==typeof e,t=e instanceof HTMLElement==1;if(!1===n&&!1===t)throw new Error(\"Content must be a DOM element/node or string\");return!0===n?Array.from(o(e,!0)):\"TEMPLATE\"===e.tagName?[e.content.cloneNode(!0)]:Array.from(e.children)}(e),n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(null==(e=Object.assign({},e)).closable&&(e.closable=!0),null==e.className&&(e.className=\"\"),null==e.onShow&&(e.onShow=function(){}),null==e.onClose&&(e.onClose=function(){}),\"boolean\"!=typeof e.closable)throw new Error(\"Property `closable` must be a boolean\");if(\"string\"!=typeof e.className)throw new Error(\"Property `className` must be a string\");if(\"function\"!=typeof e.onShow)throw new Error(\"Property `onShow` must be a function\");if(\"function\"!=typeof e.onClose)throw new Error(\"Property `onClose` must be a function\");return e}(n)),c=function(e){return!1!==n.onClose(u)&&function(e,n){return e.classList.remove(\"basicLightbox--visible\"),setTimeout((function(){return!1===i(e)||e.parentElement.removeChild(e),n()}),410),!0}(t,(function(){if(\"function\"==typeof e)return e(u)}))};!0===n.closable&&t.addEventListener(\"click\",(function(e){e.target===t&&c()}));var u={element:function(){return t},visible:function(){return i(t)},show:function(e){return!1!==n.onShow(u)&&function(e,n){return document.body.appendChild(e),setTimeout((function(){requestAnimationFrame((function(){return e.classList.add(\"basicLightbox--visible\"),n()}))}),10),!0}(t,(function(){if(\"function\"==typeof e)return e(u)}))},close:c};return u}},{}]},{},[1])(1)}));","// Public: Create a new SelectorSet.\nexport default function SelectorSet() {\n // Construct new SelectorSet if called as a function.\n if (!(this instanceof SelectorSet)) {\n return new SelectorSet();\n }\n\n // Public: Number of selectors added to the set\n this.size = 0;\n\n // Internal: Incrementing ID counter\n this.uid = 0;\n\n // Internal: Array of String selectors in the set\n this.selectors = [];\n\n // Internal: Map of selector ids to objects\n this.selectorObjects = {};\n\n // Internal: All Object index String names mapping to Index objects.\n this.indexes = Object.create(this.indexes);\n\n // Internal: Used Object index String names mapping to Index objects.\n this.activeIndexes = [];\n}\n\n// Detect prefixed Element#matches function.\nvar docElem = window.document.documentElement;\nvar matches =\n docElem.matches ||\n docElem.webkitMatchesSelector ||\n docElem.mozMatchesSelector ||\n docElem.oMatchesSelector ||\n docElem.msMatchesSelector;\n\n// Public: Check if element matches selector.\n//\n// Maybe overridden with custom Element.matches function.\n//\n// el - An Element\n// selector - String CSS selector\n//\n// Returns true or false.\nSelectorSet.prototype.matchesSelector = function(el, selector) {\n return matches.call(el, selector);\n};\n\n// Public: Find all elements in the context that match the selector.\n//\n// Maybe overridden with custom querySelectorAll function.\n//\n// selectors - String CSS selectors.\n// context - Element context\n//\n// Returns non-live list of Elements.\nSelectorSet.prototype.querySelectorAll = function(selectors, context) {\n return context.querySelectorAll(selectors);\n};\n\n// Public: Array of indexes.\n//\n// name - Unique String name\n// selector - Function that takes a String selector and returns a String key\n// or undefined if it can't be used by the index.\n// element - Function that takes an Element and returns an Array of String\n// keys that point to indexed values.\n//\nSelectorSet.prototype.indexes = [];\n\n// Index by element id\nvar idRe = /^#((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)/g;\nSelectorSet.prototype.indexes.push({\n name: 'ID',\n selector: function matchIdSelector(sel) {\n var m;\n if ((m = sel.match(idRe))) {\n return m[0].slice(1);\n }\n },\n element: function getElementId(el) {\n if (el.id) {\n return [el.id];\n }\n }\n});\n\n// Index by all of its class names\nvar classRe = /^\\.((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)/g;\nSelectorSet.prototype.indexes.push({\n name: 'CLASS',\n selector: function matchClassSelector(sel) {\n var m;\n if ((m = sel.match(classRe))) {\n return m[0].slice(1);\n }\n },\n element: function getElementClassNames(el) {\n var className = el.className;\n if (className) {\n if (typeof className === 'string') {\n return className.split(/\\s/);\n } else if (typeof className === 'object' && 'baseVal' in className) {\n // className is a SVGAnimatedString\n // global SVGAnimatedString is not an exposed global in Opera 12\n return className.baseVal.split(/\\s/);\n }\n }\n }\n});\n\n// Index by tag/node name: `DIV`, `FORM`, `A`\nvar tagRe = /^((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)/g;\nSelectorSet.prototype.indexes.push({\n name: 'TAG',\n selector: function matchTagSelector(sel) {\n var m;\n if ((m = sel.match(tagRe))) {\n return m[0].toUpperCase();\n }\n },\n element: function getElementTagName(el) {\n return [el.nodeName.toUpperCase()];\n }\n});\n\n// Default index just contains a single array of elements.\nSelectorSet.prototype.indexes['default'] = {\n name: 'UNIVERSAL',\n selector: function() {\n return true;\n },\n element: function() {\n return [true];\n }\n};\n\n// Use ES Maps when supported\nvar Map;\nif (typeof window.Map === 'function') {\n Map = window.Map;\n} else {\n Map = (function() {\n function Map() {\n this.map = {};\n }\n Map.prototype.get = function(key) {\n return this.map[key + ' '];\n };\n Map.prototype.set = function(key, value) {\n this.map[key + ' '] = value;\n };\n return Map;\n })();\n}\n\n// Regexps adopted from Sizzle\n// https://github.com/jquery/sizzle/blob/1.7/sizzle.js\n//\nvar chunker = /((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^\\[\\]]*\\]|['\"][^'\"]*['\"]|[^\\[\\]'\"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g;\n\n// Internal: Get indexes for selector.\n//\n// selector - String CSS selector\n//\n// Returns Array of {index, key}.\nfunction parseSelectorIndexes(allIndexes, selector) {\n allIndexes = allIndexes.slice(0).concat(allIndexes['default']);\n\n var allIndexesLen = allIndexes.length,\n i,\n j,\n m,\n dup,\n rest = selector,\n key,\n index,\n indexes = [];\n\n do {\n chunker.exec('');\n if ((m = chunker.exec(rest))) {\n rest = m[3];\n if (m[2] || !rest) {\n for (i = 0; i < allIndexesLen; i++) {\n index = allIndexes[i];\n if ((key = index.selector(m[1]))) {\n j = indexes.length;\n dup = false;\n while (j--) {\n if (indexes[j].index === index && indexes[j].key === key) {\n dup = true;\n break;\n }\n }\n if (!dup) {\n indexes.push({ index: index, key: key });\n }\n break;\n }\n }\n }\n }\n } while (m);\n\n return indexes;\n}\n\n// Internal: Find first item in Array that is a prototype of `proto`.\n//\n// ary - Array of objects\n// proto - Prototype of expected item in `ary`\n//\n// Returns object from `ary` if found. Otherwise returns undefined.\nfunction findByPrototype(ary, proto) {\n var i, len, item;\n for (i = 0, len = ary.length; i < len; i++) {\n item = ary[i];\n if (proto.isPrototypeOf(item)) {\n return item;\n }\n }\n}\n\n// Public: Log when added selector falls under the default index.\n//\n// This API should not be considered stable. May change between\n// minor versions.\n//\n// obj - {selector, data} Object\n//\n// SelectorSet.prototype.logDefaultIndexUsed = function(obj) {\n// console.warn(obj.selector, \"could not be indexed\");\n// };\n//\n// Returns nothing.\nSelectorSet.prototype.logDefaultIndexUsed = function() {};\n\n// Public: Add selector to set.\n//\n// selector - String CSS selector\n// data - Optional data Object (default: undefined)\n//\n// Returns nothing.\nSelectorSet.prototype.add = function(selector, data) {\n var obj,\n i,\n indexProto,\n key,\n index,\n objs,\n selectorIndexes,\n selectorIndex,\n indexes = this.activeIndexes,\n selectors = this.selectors,\n selectorObjects = this.selectorObjects;\n\n if (typeof selector !== 'string') {\n return;\n }\n\n obj = {\n id: this.uid++,\n selector: selector,\n data: data\n };\n selectorObjects[obj.id] = obj;\n\n selectorIndexes = parseSelectorIndexes(this.indexes, selector);\n for (i = 0; i < selectorIndexes.length; i++) {\n selectorIndex = selectorIndexes[i];\n key = selectorIndex.key;\n indexProto = selectorIndex.index;\n\n index = findByPrototype(indexes, indexProto);\n if (!index) {\n index = Object.create(indexProto);\n index.map = new Map();\n indexes.push(index);\n }\n\n if (indexProto === this.indexes['default']) {\n this.logDefaultIndexUsed(obj);\n }\n objs = index.map.get(key);\n if (!objs) {\n objs = [];\n index.map.set(key, objs);\n }\n objs.push(obj);\n }\n\n this.size++;\n selectors.push(selector);\n};\n\n// Public: Remove selector from set.\n//\n// selector - String CSS selector\n// data - Optional data Object (default: undefined)\n//\n// Returns nothing.\nSelectorSet.prototype.remove = function(selector, data) {\n if (typeof selector !== 'string') {\n return;\n }\n\n var selectorIndexes,\n selectorIndex,\n i,\n j,\n k,\n selIndex,\n objs,\n obj,\n indexes = this.activeIndexes,\n selectors = (this.selectors = []),\n selectorObjects = this.selectorObjects,\n removedIds = {},\n removeAll = arguments.length === 1;\n\n selectorIndexes = parseSelectorIndexes(this.indexes, selector);\n for (i = 0; i < selectorIndexes.length; i++) {\n selectorIndex = selectorIndexes[i];\n\n j = indexes.length;\n while (j--) {\n selIndex = indexes[j];\n if (selectorIndex.index.isPrototypeOf(selIndex)) {\n objs = selIndex.map.get(selectorIndex.key);\n if (objs) {\n k = objs.length;\n while (k--) {\n obj = objs[k];\n if (obj.selector === selector && (removeAll || obj.data === data)) {\n objs.splice(k, 1);\n removedIds[obj.id] = true;\n }\n }\n }\n break;\n }\n }\n }\n\n for (i in removedIds) {\n delete selectorObjects[i];\n this.size--;\n }\n\n for (i in selectorObjects) {\n selectors.push(selectorObjects[i].selector);\n }\n};\n\n// Sort by id property handler.\n//\n// a - Selector obj.\n// b - Selector obj.\n//\n// Returns Number.\nfunction sortById(a, b) {\n return a.id - b.id;\n}\n\n// Public: Find all matching decendants of the context element.\n//\n// context - An Element\n//\n// Returns Array of {selector, data, elements} matches.\nSelectorSet.prototype.queryAll = function(context) {\n if (!this.selectors.length) {\n return [];\n }\n\n var matches = {},\n results = [];\n var els = this.querySelectorAll(this.selectors.join(', '), context);\n\n var i, j, len, len2, el, m, match, obj;\n for (i = 0, len = els.length; i < len; i++) {\n el = els[i];\n m = this.matches(el);\n for (j = 0, len2 = m.length; j < len2; j++) {\n obj = m[j];\n if (!matches[obj.id]) {\n match = {\n id: obj.id,\n selector: obj.selector,\n data: obj.data,\n elements: []\n };\n matches[obj.id] = match;\n results.push(match);\n } else {\n match = matches[obj.id];\n }\n match.elements.push(el);\n }\n }\n\n return results.sort(sortById);\n};\n\n// Public: Match element against all selectors in set.\n//\n// el - An Element\n//\n// Returns Array of {selector, data} matches.\nSelectorSet.prototype.matches = function(el) {\n if (!el) {\n return [];\n }\n\n var i, j, k, len, len2, len3, index, keys, objs, obj, id;\n var indexes = this.activeIndexes,\n matchedIds = {},\n matches = [];\n\n for (i = 0, len = indexes.length; i < len; i++) {\n index = indexes[i];\n keys = index.element(el);\n if (keys) {\n for (j = 0, len2 = keys.length; j < len2; j++) {\n if ((objs = index.map.get(keys[j]))) {\n for (k = 0, len3 = objs.length; k < len3; k++) {\n obj = objs[k];\n id = obj.id;\n if (!matchedIds[id] && this.matchesSelector(el, obj.selector)) {\n matchedIds[id] = true;\n matches.push(obj);\n }\n }\n }\n }\n }\n }\n\n return matches.sort(sortById);\n};\n","import SelectorSet from 'selector-set';\n\nvar bubbleEvents = {};\nvar captureEvents = {};\nvar propagationStopped = new WeakMap();\nvar immediatePropagationStopped = new WeakMap();\nvar currentTargets = new WeakMap();\nvar currentTargetDesc = Object.getOwnPropertyDescriptor(Event.prototype, 'currentTarget');\n\nfunction before(subject, verb, fn) {\n var source = subject[verb];\n\n subject[verb] = function () {\n fn.apply(subject, arguments);\n return source.apply(subject, arguments);\n };\n\n return subject;\n}\n\nfunction matches(selectors, target, reverse) {\n var queue = [];\n var node = target;\n\n do {\n if (node.nodeType !== 1) break;\n\n var _matches = selectors.matches(node);\n\n if (_matches.length) {\n var matched = {\n node: node,\n observers: _matches\n };\n\n if (reverse) {\n queue.unshift(matched);\n } else {\n queue.push(matched);\n }\n }\n } while (node = node.parentElement);\n\n return queue;\n}\n\nfunction trackPropagation() {\n propagationStopped.set(this, true);\n}\n\nfunction trackImmediate() {\n propagationStopped.set(this, true);\n immediatePropagationStopped.set(this, true);\n}\n\nfunction getCurrentTarget() {\n return currentTargets.get(this) || null;\n}\n\nfunction defineCurrentTarget(event, getter) {\n if (!currentTargetDesc) return;\n Object.defineProperty(event, 'currentTarget', {\n configurable: true,\n enumerable: true,\n get: getter || currentTargetDesc.get\n });\n}\n\nfunction canDispatch(event) {\n try {\n event.eventPhase;\n return true;\n } catch (_) {\n return false;\n }\n}\n\nfunction dispatch(event) {\n if (!canDispatch(event)) return;\n var events = event.eventPhase === 1 ? captureEvents : bubbleEvents;\n var selectors = events[event.type];\n if (!selectors) return;\n var queue = matches(selectors, event.target, event.eventPhase === 1);\n if (!queue.length) return;\n before(event, 'stopPropagation', trackPropagation);\n before(event, 'stopImmediatePropagation', trackImmediate);\n defineCurrentTarget(event, getCurrentTarget);\n\n for (var i = 0, len1 = queue.length; i < len1; i++) {\n if (propagationStopped.get(event)) break;\n var matched = queue[i];\n currentTargets.set(event, matched.node);\n\n for (var j = 0, len2 = matched.observers.length; j < len2; j++) {\n if (immediatePropagationStopped.get(event)) break;\n matched.observers[j].data.call(matched.node, event);\n }\n }\n\n currentTargets[\"delete\"](event);\n defineCurrentTarget(event);\n}\n\nfunction on(name, selector, fn) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var capture = options.capture ? true : false;\n var events = capture ? captureEvents : bubbleEvents;\n var selectors = events[name];\n\n if (!selectors) {\n selectors = new SelectorSet();\n events[name] = selectors;\n document.addEventListener(name, dispatch, capture);\n }\n\n selectors.add(selector, fn);\n}\nfunction off(name, selector, fn) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var capture = options.capture ? true : false;\n var events = capture ? captureEvents : bubbleEvents;\n var selectors = events[name];\n if (!selectors) return;\n selectors.remove(selector, fn);\n if (selectors.size) return;\n delete events[name];\n document.removeEventListener(name, dispatch, capture);\n}\nfunction fire(target, name, detail) {\n return target.dispatchEvent(new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: detail\n }));\n}\n\nexport { fire, off, on };\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).LazyLoad=t()}(this,(function(){\"use strict\";const e=\"undefined\"!=typeof window,t=e&&!(\"onscroll\"in window)||\"undefined\"!=typeof navigator&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),a=e&&window.devicePixelRatio>1,n={elements_selector:\".lazy\",container:t||e?document:null,threshold:300,thresholds:null,data_src:\"src\",data_srcset:\"srcset\",data_sizes:\"sizes\",data_bg:\"bg\",data_bg_hidpi:\"bg-hidpi\",data_bg_multi:\"bg-multi\",data_bg_multi_hidpi:\"bg-multi-hidpi\",data_bg_set:\"bg-set\",data_poster:\"poster\",class_applied:\"applied\",class_loading:\"loading\",class_loaded:\"loaded\",class_error:\"error\",class_entered:\"entered\",class_exited:\"exited\",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1,restore_on_error:!1},s=e=>Object.assign({},n,e),l=function(e,t){let a;const n=\"LazyLoad::Initialized\",s=new e(t);try{a=new CustomEvent(n,{detail:{instance:s}})}catch(e){a=document.createEvent(\"CustomEvent\"),a.initCustomEvent(n,!1,!1,{instance:s})}window.dispatchEvent(a)},o=\"src\",r=\"srcset\",i=\"sizes\",d=\"poster\",c=\"llOriginalAttrs\",_=\"data\",u=\"loading\",g=\"loaded\",b=\"applied\",h=\"error\",m=\"native\",p=\"data-\",f=\"ll-status\",v=(e,t)=>e.getAttribute(p+t),E=e=>v(e,f),I=(e,t)=>((e,t,a)=>{const n=p+t;null!==a?e.setAttribute(n,a):e.removeAttribute(n)})(e,f,t),y=e=>I(e,null),k=e=>null===E(e),A=e=>E(e)===m,L=[u,g,b,h],w=(e,t,a,n)=>{e&&\"function\"==typeof e&&(void 0===n?void 0===a?e(t):e(t,a):e(t,a,n))},x=(t,a)=>{e&&\"\"!==a&&t.classList.add(a)},C=(t,a)=>{e&&\"\"!==a&&t.classList.remove(a)},O=e=>e.llTempImage,M=(e,t)=>{if(!t)return;const a=t._observer;a&&a.unobserve(e)},z=(e,t)=>{e&&(e.loadingCount+=t)},N=(e,t)=>{e&&(e.toLoadCount=t)},T=e=>{let t=[];for(let a,n=0;a=e.children[n];n+=1)\"SOURCE\"===a.tagName&&t.push(a);return t},R=(e,t)=>{const a=e.parentNode;a&&\"PICTURE\"===a.tagName&&T(a).forEach(t)},G=(e,t)=>{T(e).forEach(t)},D=[o],H=[o,d],V=[o,r,i],F=[_],j=e=>!!e[c],B=e=>e[c],J=e=>delete e[c],S=(e,t)=>{if(j(e))return;const a={};t.forEach((t=>{a[t]=e.getAttribute(t)})),e[c]=a},P=(e,t)=>{if(!j(e))return;const a=B(e);t.forEach((t=>{((e,t,a)=>{a?e.setAttribute(t,a):e.removeAttribute(t)})(e,t,a[t])}))},U=(e,t,a)=>{x(e,t.class_applied),I(e,b),a&&(t.unobserve_completed&&M(e,t),w(t.callback_applied,e,a))},$=(e,t,a)=>{x(e,t.class_loading),I(e,u),a&&(z(a,1),w(t.callback_loading,e,a))},q=(e,t,a)=>{a&&e.setAttribute(t,a)},K=(e,t)=>{q(e,i,v(e,t.data_sizes)),q(e,r,v(e,t.data_srcset)),q(e,o,v(e,t.data_src))},Q={IMG:(e,t)=>{R(e,(e=>{S(e,V),K(e,t)})),S(e,V),K(e,t)},IFRAME:(e,t)=>{S(e,D),q(e,o,v(e,t.data_src))},VIDEO:(e,t)=>{G(e,(e=>{S(e,D),q(e,o,v(e,t.data_src))})),S(e,H),q(e,d,v(e,t.data_poster)),q(e,o,v(e,t.data_src)),e.load()},OBJECT:(e,t)=>{S(e,F),q(e,_,v(e,t.data_src))}},W=[\"IMG\",\"IFRAME\",\"VIDEO\",\"OBJECT\"],X=(e,t)=>{!t||(e=>e.loadingCount>0)(t)||(e=>e.toLoadCount>0)(t)||w(e.callback_finish,t)},Y=(e,t,a)=>{e.addEventListener(t,a),e.llEvLisnrs[t]=a},Z=(e,t,a)=>{e.removeEventListener(t,a)},ee=e=>!!e.llEvLisnrs,te=e=>{if(!ee(e))return;const t=e.llEvLisnrs;for(let a in t){const n=t[a];Z(e,a,n)}delete e.llEvLisnrs},ae=(e,t,a)=>{(e=>{delete e.llTempImage})(e),z(a,-1),(e=>{e&&(e.toLoadCount-=1)})(a),C(e,t.class_loading),t.unobserve_completed&&M(e,a)},ne=(e,t,a)=>{const n=O(e)||e;ee(n)||((e,t,a)=>{ee(e)||(e.llEvLisnrs={});const n=\"VIDEO\"===e.tagName?\"loadeddata\":\"load\";Y(e,n,t),Y(e,\"error\",a)})(n,(s=>{((e,t,a,n)=>{const s=A(t);ae(t,a,n),x(t,a.class_loaded),I(t,g),w(a.callback_loaded,t,n),s||X(a,n)})(0,e,t,a),te(n)}),(s=>{((e,t,a,n)=>{const s=A(t);ae(t,a,n),x(t,a.class_error),I(t,h),w(a.callback_error,t,n),a.restore_on_error&&P(t,V),s||X(a,n)})(0,e,t,a),te(n)}))},se=(e,t,n)=>{(e=>W.indexOf(e.tagName)>-1)(e)?((e,t,a)=>{ne(e,t,a),((e,t,a)=>{const n=Q[e.tagName];n&&(n(e,t),$(e,t,a))})(e,t,a)})(e,t,n):((e,t,n)=>{(e=>{e.llTempImage=document.createElement(\"IMG\")})(e),ne(e,t,n),(e=>{j(e)||(e[c]={backgroundImage:e.style.backgroundImage})})(e),((e,t,n)=>{const s=v(e,t.data_bg),l=v(e,t.data_bg_hidpi),r=a&&l?l:s;r&&(e.style.backgroundImage=`url(\"${r}\")`,O(e).setAttribute(o,r),$(e,t,n))})(e,t,n),((e,t,n)=>{const s=v(e,t.data_bg_multi),l=v(e,t.data_bg_multi_hidpi),o=a&&l?l:s;o&&(e.style.backgroundImage=o,U(e,t,n))})(e,t,n),((e,t,a)=>{const n=v(e,t.data_bg_set);if(!n)return;let s=n.split(\"|\").map((e=>`image-set(${e})`));e.style.backgroundImage=s.join(),U(e,t,a)})(e,t,n)})(e,t,n)},le=e=>{e.removeAttribute(o),e.removeAttribute(r),e.removeAttribute(i)},oe=e=>{R(e,(e=>{P(e,V)})),P(e,V)},re={IMG:oe,IFRAME:e=>{P(e,D)},VIDEO:e=>{G(e,(e=>{P(e,D)})),P(e,H),e.load()},OBJECT:e=>{P(e,F)}},ie=(e,t)=>{(e=>{const t=re[e.tagName];t?t(e):(e=>{if(!j(e))return;const t=B(e);e.style.backgroundImage=t.backgroundImage})(e)})(e),((e,t)=>{k(e)||A(e)||(C(e,t.class_entered),C(e,t.class_exited),C(e,t.class_applied),C(e,t.class_loading),C(e,t.class_loaded),C(e,t.class_error))})(e,t),y(e),J(e)},de=[\"IMG\",\"IFRAME\",\"VIDEO\"],ce=e=>e.use_native&&\"loading\"in HTMLImageElement.prototype,_e=(e,t,a)=>{e.forEach((e=>(e=>e.isIntersecting||e.intersectionRatio>0)(e)?((e,t,a,n)=>{const s=(e=>L.indexOf(E(e))>=0)(e);I(e,\"entered\"),x(e,a.class_entered),C(e,a.class_exited),((e,t,a)=>{t.unobserve_entered&&M(e,a)})(e,a,n),w(a.callback_enter,e,t,n),s||se(e,a,n)})(e.target,e,t,a):((e,t,a,n)=>{k(e)||(x(e,a.class_exited),((e,t,a,n)=>{a.cancel_on_exit&&(e=>E(e)===u)(e)&&\"IMG\"===e.tagName&&(te(e),(e=>{R(e,(e=>{le(e)})),le(e)})(e),oe(e),C(e,a.class_loading),z(n,-1),y(e),w(a.callback_cancel,e,t,n))})(e,t,a,n),w(a.callback_exit,e,t,n))})(e.target,e,t,a)))},ue=e=>Array.prototype.slice.call(e),ge=e=>e.container.querySelectorAll(e.elements_selector),be=e=>(e=>E(e)===h)(e),he=(e,t)=>(e=>ue(e).filter(k))(e||ge(t)),me=function(t,a){const n=s(t);this._settings=n,this.loadingCount=0,((e,t)=>{ce(e)||(t._observer=new IntersectionObserver((a=>{_e(a,e,t)}),(e=>({root:e.container===document?null:e.container,rootMargin:e.thresholds||e.threshold+\"px\"}))(e)))})(n,this),((t,a)=>{e&&(a._onlineHandler=()=>{((e,t)=>{var a;(a=ge(e),ue(a).filter(be)).forEach((t=>{C(t,e.class_error),y(t)})),t.update()})(t,a)},window.addEventListener(\"online\",a._onlineHandler))})(n,this),this.update(a)};return me.prototype={update:function(e){const a=this._settings,n=he(e,a);var s,l;N(this,n.length),t?this.loadAll(n):ce(a)?((e,t,a)=>{e.forEach((e=>{-1!==de.indexOf(e.tagName)&&((e,t,a)=>{e.setAttribute(\"loading\",\"lazy\"),ne(e,t,a),((e,t)=>{const a=Q[e.tagName];a&&a(e,t)})(e,t),I(e,m)})(e,t,a)})),N(a,0)})(n,a,this):(l=n,(e=>{e.disconnect()})(s=this._observer),((e,t)=>{t.forEach((t=>{e.observe(t)}))})(s,l))},destroy:function(){this._observer&&this._observer.disconnect(),e&&window.removeEventListener(\"online\",this._onlineHandler),ge(this._settings).forEach((e=>{J(e)})),delete this._observer,delete this._settings,delete this._onlineHandler,delete this.loadingCount,delete this.toLoadCount},loadAll:function(e){const t=this._settings;he(e,t).forEach((e=>{M(e,this),se(e,t,this)}))},restoreAll:function(){const e=this._settings;ge(e).forEach((t=>{ie(t,e)}))}},me.load=(e,t)=>{const a=s(t);se(e,a)},me.resetStatus=e=>{y(e)},e&&((e,t)=>{if(t)if(t.length)for(let a,n=0;a=t[n];n+=1)l(e,a);else l(e,t)})(me,window.lazyLoadOptions),me}));\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) || swiper.hostEl.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","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","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nconst ssrDocument = {\n body: {},\n addEventListener() {},\n removeEventListener() {},\n activeElement: {\n blur() {},\n nodeName: ''\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() {}\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() {},\n getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState() {},\n pushState() {},\n go() {},\n back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() {},\n removeEventListener() {},\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n }\n };\n },\n Image() {},\n Date() {},\n screen: {},\n setTimeout() {},\n clearTimeout() {},\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { getWindow as a, getDocument as g };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, p as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, q as elementNextAll, r as elementPrevAll, j as getTranslate, t as animateCSSModeScroll, n as nextTick, u as showWarning, c as createElement, v as elementIsChildOf, d as now, w as extend, h as elementIndex, x 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: swiper.isElement || (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 ? allSlidesSize - swiperSize : 0;\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.find(slideEl => slideEl.column === activeIndex);\n nextSlide = slides.find(slideEl => slideEl.column === activeIndex + 1);\n prevSlide = slides.find(slideEl => slideEl.column === activeIndex - 1);\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.find(slideEl => slideEl.column === activeIndex);\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 // initial virtual\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const isInitialVirtual = isVirtual && initial;\n // Update Index\n if (!isInitialVirtual && (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 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 const browser = getBrowser();\n const isSafari = browser.isSafari;\n if (isVirtual && !initial && isSafari && swiper.isElement) {\n swiper.virtual.update(false, false, slideIndex);\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.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).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.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).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 const isFreeMode = params.freeMode && params.freeMode.enabled;\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && (params.cssMode || isFreeMode)) {\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 = isFreeMode ? snapGrid[prevSnapIndex] : 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.find(el => el.classList.contains(params.slideActiveClass)));\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 (!elementIsChildOf(targetEl, swiper.wrapperEl)) 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 && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) {\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].find(t => t.identifier === data.touchId);\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 && document.activeElement.matches(data.focusableElements) && document.activeElement !== e.target && e.pointerType !== 'mouse') {\n document.activeElement.blur();\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 (params._loopSwapReset !== false && 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] - (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.activeIndex + 1] + swiper.params.spaceBetween : 0) - swiper.params.spaceBetween : 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.params.spaceBetween + (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween : 0) : 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].find(t => t.identifier === data.touchId);\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 const document = getDocument();\n\n // Get breakpoint for window/container width and update parameters\n const breakpointsBase = params.breakpointsBase === 'window' || !params.breakpointsBase ? params.breakpointsBase : 'container';\n const breakpointContainer = ['window', 'container'].includes(params.breakpointsBase) || !params.breakpointsBase ? swiper.el : document.querySelector(params.breakpointsBase);\n const breakpoint = swiper.getBreakpoint(breakpoints, breakpointsBase, breakpointContainer);\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.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index));\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 { 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 const window = getWindow();\n const children = [...element.children];\n if (window.HTMLSlotElement && element instanceof HTMLSlotElement) {\n children.push(...element.assignedElements());\n }\n if (!selector) {\n return children;\n }\n return children.filter(el => el.matches(selector));\n}\nfunction elementIsChildOfSlot(el, slot) {\n // Breadth-first search through all parent's children and assigned elements\n const elementsQueue = [slot];\n while (elementsQueue.length > 0) {\n const elementToCheck = elementsQueue.shift();\n if (el === elementToCheck) {\n return true;\n }\n elementsQueue.push(...elementToCheck.children, ...(elementToCheck.shadowRoot?.children || []), ...(elementToCheck.assignedElements?.() || []));\n }\n}\nfunction elementIsChildOf(el, parent) {\n const window = getWindow();\n let isChild = parent.contains(el);\n if (!isChild && window.HTMLSlotElement && parent instanceof HTMLSlotElement) {\n const children = [...parent.assignedElements()];\n isChild = children.includes(el);\n if (!isChild) {\n isChild = elementIsChildOfSlot(el, parent);\n }\n }\n return isChild;\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}\nfunction getRotateFix(swiper) {\n return v => {\n if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {\n return v + 0.001;\n }\n return v;\n };\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, getRotateFix as o, elementStyle as p, elementNextAll as q, elementPrevAll as r, setCSSProperty as s, animateCSSModeScroll as t, showWarning as u, elementIsChildOf as v, extend as w, deleteProps as x };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + {\"244\":\"44638326d32a4d496588\",\"307\":\"3b3e86f06e16d41defda\",\"395\":\"52a0b8083d261f109fc3\",\"505\":\"500fefeb493697c7e259\",\"527\":\"15d69d7ff167e30c7661\",\"624\":\"f8720b3b4d5d668667c3\",\"736\":\"62d04e0d0bd68b9d1a2a\",\"756\":\"680cef6f26b273d46594\",\"871\":\"9c6e5ef363973182872b\",\"889\":\"a723d72dbd4bc80a5a55\",\"985\":\"a3542784ec4f907bd7a4\"}[chunkId] + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/dist/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t165: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunkgoshop\"] = globalThis[\"webpackChunkgoshop\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","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 getMoveDirection(prevIndex, nextIndex, length) {\n prevIndex = prevIndex % length;\n nextIndex = nextIndex % length;\n if (nextIndex === prevIndex + 1) {\n return 'next';\n } else if (nextIndex === prevIndex - 1) {\n return 'previous';\n }\n return;\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 const moveDirection = getMoveDirection(swiper.realIndex, index, swiper.slides.length);\n if (moveDirection === 'next') {\n swiper.slideNext();\n } else if (moveDirection === 'previous') {\n swiper.slidePrev();\n } else {\n swiper.slideToLoop(index);\n }\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.find(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n });\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","const initObserver = (sentinel, onFunction, offFunction = null) => {\n if ('IntersectionObserver' in window) {\n let observer = null;\n\n observer = new IntersectionObserver(\n function (entries) {\n for (var i = 0; i < entries.length; i++) {\n if (entries[i].isIntersecting) {\n if (offFunction) offFunction();\n } else {\n onFunction();\n if (!offFunction) observer.unobserve(sentinel);\n }\n }\n }\n );\n\n observer.observe(sentinel);\n }\n}\n\nexport default initObserver;","/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","import Cookies from 'js-cookie';\nimport { fire } from 'delegated-events';\n\nexport const COOKIE_PRIVACY_NAME = 'gs_privacy_preferences';\n\n//document.addEventListener('consent:mandatory', function (e) {\n// console.debug('mandatory fired, with valuue',e.detail);\n//});\n\ndocument.addEventListener('consent_change', function () {\n\n\n var updateItem = {\n ad_storage: window.consent_table['marketing'] ? 'granted' : 'denied',\n ad_user_data: window.consent_table['marketing'] ? 'granted' : 'denied',\n ad_personalization: window.consent_table['marketing'] ? 'granted' : 'denied',\n analytics_storage: window.consent_table['analytics'] ? 'granted' : 'denied',\n functionality_storage: window.consent_table['mandatory'] ? 'granted' : 'denied',\n security_storage: window.consent_table['mandatory'] ? 'granted' : 'denied'\n }\n\n console.log('Consent update detected');\n\n if (typeof gtag !== 'undefined') {\n\n gtag('consent', 'update', updateItem);\n console.log('Consent item passed to gtag', updateItem);\n\n }\n});\n\nexport function refreshConsentTable(consents) {\n if (!consents) return;\n\n window.consent_table = [];\n\n consents.forEach(consent => {\n window.consent_table[consent] = true;\n });\n\n window.consent_table['mandatory'] = true;\n fire(document, 'consent_change');\n}\n\nexport function storeConsentCookie(consentsList) {\n Cookies.set(COOKIE_PRIVACY_NAME, JSON.stringify(consentsList), { expires: 365 });\n\n refreshConsentTable(consentsList);\n}\n\nexport function readConsentCookie() {\n const currentPreferences = Cookies.get(COOKIE_PRIVACY_NAME);\n\n if (!currentPreferences) return null;\n\n const parsedPreferences = JSON.parse(currentPreferences);\n\n refreshConsentTable(parsedPreferences);\n\n return parsedPreferences;\n}","import { on } from 'delegated-events';\n\nimport initObserver from './observer';\nimport {\n storeConsentCookie\n} from './consent-manager';\n\nexport default function () {\n const privacySettings = window.privacySettings;\n\n if (!privacySettings)\n return;\n\n const {\n links, description, consents\n } = privacySettings;\n const privacyBox = document.createElement('div');\n\n privacyBox.classList.add('privacy-box');\n\n const logoUrl = document.querySelector('.logo img').getAttribute('src') || \"\";\n const consentsHtml = consents && consents.length > 0 ? `\n ` : \"\";\n\n const linksHtml = links && links.length > 0 ? `\n \n ` : \"\";\n\n privacyBox.innerHTML = `\n
    \n ${logoUrl.length > 0 ? `\"\"` : \"\"}\n Zarządzaj zgodami plików cookie\n
    \n
    \n ${description.length > 0 ? `

    ${description}

    ` : \"\"}\n ${consentsHtml}\n
    \n
    \n \n \n \n
    \n ${linksHtml}\n `;\n\n function hidePrivacyBox() {\n privacyBox.remove();\n document.body.classList.remove('privacy-box-visible');\n showPrivacyBoxTrigger();\n }\n\n const showPrivacyBox = () => {\n document.body.appendChild(privacyBox);\n document.body.classList.add('privacy-box-visible');\n }\n\n const showPrivacyBoxTrigger = () => {\n const privacyBoxTrigger = document.querySelector('.privacy-box-trigger');\n\n if (privacyBoxTrigger) {\n privacyBoxTrigger.classList.add('show');\n\n privacyBoxTrigger.addEventListener('click', function () {\n showPrivacyBox();\n privacyBoxTrigger.classList.remove('show');\n });\n }\n }\n\n if (window.consent_table) {\n for (const consent in window.consent_table) {\n const checker = privacyBox.querySelector(`input[type=\"checkbox\"]#${consent}`);\n\n if (checker) {\n checker.checked = true;\n }\n }\n\n showPrivacyBoxTrigger();\n } else {\n // COOKIE OBSERVER\n const cookieSentinel = document.querySelector('.privacy-sentinel');\n\n initObserver(cookieSentinel, function () {\n setTimeout(function () {\n showPrivacyBox();\n }, 100);\n });\n }\n\n const saveUserPreferences = () => {\n const list = [...privacyBox.querySelectorAll('input[type=\"checkbox\"]:checked')].map(consent => consent.getAttribute('id'))\n\n storeConsentCookie(list);\n hidePrivacyBox();\n }\n\n on('click', '.privacy-box .toggleable .consent-detail__header > strong', function (e) {\n this.parentElement.parentElement.classList.toggle('show');\n });\n\n on('click', '.privacy-box__actions button', function () {\n const buttonType = this.classList[0];\n\n switch (buttonType) {\n case 'privacy-reject-all':\n [...privacyBox.querySelectorAll('input[type=\"checkbox\"]')].filter(consent => consent.getAttribute('id') !== 'mandatory').forEach(consent => consent.checked = false);\n saveUserPreferences();\n break;\n\n case 'privacy-preferences':\n if (privacyBox.classList.contains('preferences-visible')) {\n saveUserPreferences();\n }\n\n break;\n\n case 'privacy-accept-all':\n [...privacyBox.querySelectorAll('input[type=\"checkbox\"]')].forEach(consent => consent.checked = true);\n saveUserPreferences();\n break;\n\n default:\n break;\n }\n });\n\n on('click', '.privacy-box:not(.preferences-visible) .privacy-preferences', function () {\n privacyBox.classList.add('preferences-visible');\n this.textContent = 'Zapisz preferencje';\n });\n\n}\n","const pageContainer = document.querySelector('#container');\n\nexport default function () {\n const sentinel = document.querySelector('.return-to-top-sentinel');\n if (!pageContainer || !sentinel || window.innerWidth < 1279) return;\n if (pageContainer.offsetHeight < 2000) return;\n\n const returnButton = createReturnButton();\n trackScrollAmount();\n trackSentinel(sentinel, returnButton);\n\n returnButton.addEventListener(\"click\", function () {\n returnButton.style.setProperty('--scrollProgress', `0%`);\n window.scrollTo({\n top: 0,\n behavior: 'smooth'\n });\n });\n}\n\nfunction createReturnButton() {\n const returnButton = document.createElement('button');\n returnButton.classList.add(\"return-to-top\");\n returnButton.title = 'Wróć na górę strony';\n pageContainer.appendChild(returnButton);\n return returnButton;\n}\n\nfunction trackSentinel(sentinel, returnButton) {\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n\n if (entry.isIntersecting) {\n returnButton.classList.remove(\"show\");\n return;\n }\n\n setTimeout(function () {\n returnButton.classList.add('show');\n returnButton.style.position = 'fixed';\n updateCssCircle();\n }, 150);\n\n });\n });\n observer.observe(sentinel);\n}\n\nfunction trackScrollAmount() {\n let debounceTimeout;\n\n window.addEventListener('scroll', function () {\n\n clearTimeout(debounceTimeout);\n debounceTimeout = setTimeout(function () {\n updateCssCircle();\n }, 25);\n });\n}\n\nfunction updateCssCircle() {\n const scrollTop = window.scrollY;\n const pageHeight = document.documentElement.scrollHeight - window.innerHeight;\n const percentScrolled = (scrollTop / pageHeight) * 100;\n const returnButton = document.querySelector('.return-to-top');\n returnButton.style.setProperty('--scrollProgress', `${percentScrolled}%`);\n}\n","import Cookies from 'js-cookie';\n\nimport showPopup from './modals';\nimport { DrawSingleCaptcha } from './recaptcha';\nimport { COOKIE_PRIVACY_NAME } from './general/consent-manager';\n\nconst COOKIE_NEWSLETTER_POPUP = 'gs_newsletter_cookie';\n\nexport default function () {\n const newsletterSavePopupSettings = window.newsletterSavePopupSettings;\n const pageType = document.body.getAttribute('data-type');\n const allowedPageTypes = [\"listing\", \"mainpage\", \"detail\", \"cms\"];\n\n if (!newsletterSavePopupSettings || allowedPageTypes.indexOf(pageType) === -1) return;\n\n const {\n days,\n delay,\n mainText,\n subText,\n imgUrl,\n newsletterClause,\n recaptchaEnabled,\n dataSitekey\n } = newsletterSavePopupSettings;\n\n const onCloseNewsletterCookieModal = function () {\n Cookies.set(COOKIE_NEWSLETTER_POPUP, '1', { expires: days });\n };\n\n const onShowNewsletterCookieModal = function () {\n console.log('Newsletter modal shown');\n };\n\n const newsletterCookie = Cookies.get(COOKIE_NEWSLETTER_POPUP);\n const privacyCookie = !!Cookies.get(COOKIE_PRIVACY_NAME);\n const newsletterForceShow = window.location.href.includes('newsletter-force-show');\n\n if (!newsletterForceShow && (!privacyCookie || (privacyCookie && newsletterCookie))) return;\n\n const logoUrl = document.querySelector('.logo img').getAttribute('src') || \"\";\n\n const html = `\n ${imgUrl ? `
    \"Grafika
    ` : ''}\n
    \n ${logoUrl ? `\"Logo` : ''}\n ${mainText ? `${mainText}` : ''}\n ${subText ? `${subText}` : ''}\n \n \n
    \n `;\n\n //client settings indicates, that popup is disabled\n if (days == 0)\n return;\n\n setTimeout(function () {\n showPopup({\n header: null,\n body: html,\n overloadClass: 'newsletter-cookie-modal',\n showCallback: onShowNewsletterCookieModal,\n closeCallback: onCloseNewsletterCookieModal\n });\n\n import('./front-validation')\n .then(module => module.default([document.querySelector('.goshop-modal [data-run-validator]')]));\n\n DrawSingleCaptcha(document.querySelector('.newsletter-cookie-modal .captcha-wrapper'));\n\n }, newsletterForceShow ? 10 : delay * 1000);\n}","import { getQueryVariable } from './utils/utils';\n\nexport default function () {\n const filterGroups = document.querySelectorAll('.gs-filtr-container');\n const pillsContainer = document.getElementById('pills-container');\n const priceFiltering = document.querySelector('.price-filtering');\n\n if (priceFiltering) {\n const min = priceFiltering.querySelector('#price-filter-handles').getAttribute('data-price-min');\n const max = priceFiltering.querySelector('#price-filter-handles').getAttribute('data-price-max');\n const priceFrom = getQueryVariable('priceFrom') || min;\n const priceTo = getQueryVariable('priceTo') || max;\n const priceGroup = document.createElement('div');\n\n priceGroup.classList.add('pills-group');\n priceGroup.setAttribute('data-pills-group-name', 'Cena');\n let priceGroupInnerHtml = '';\n\n if (Number(priceFrom) > min) {\n const priceToElement = `
    od ${priceFrom} zł
    `;\n priceGroupInnerHtml += priceToElement;\n }\n\n if (Number(priceTo) < max) {\n const priceFromElement = `
    do ${priceTo} zł
    `;\n priceGroupInnerHtml += priceFromElement;\n }\n\n priceGroup.innerHTML = priceGroupInnerHtml;\n\n if (Number(priceFrom) > min || Number(priceTo) < max) {\n pillsContainer.insertBefore(priceGroup, pillsContainer.firstChild);\n }\n }\n\n if (filterGroups.length === 0) return;\n\n filterGroups.forEach(filterGroup => {\n const selectedParams = filterGroup.querySelectorAll('input[type=\"checkbox\"]:checked');\n const filterGroupHeadline = filterGroup.firstElementChild.firstElementChild;\n\n if (filterGroupHeadline) {\n filterGroupHeadline.innerHTML = '';\n }\n\n filterGroup.firstElementChild.classList.remove('any-selected');\n\n if (selectedParams.length === 0) return;\n\n let selectedParamsString = [...selectedParams].map(param => param.nextElementSibling.textContent.trim()).join(', ');\n\n if (filterGroupHeadline) {\n filterGroupHeadline.innerHTML = selectedParamsString;\n }\n\n filterGroup.firstElementChild.classList.add('any-selected');\n\n const pillsGroup = document.createElement('div');\n\n pillsGroup.classList.add('pills-group');\n pillsGroup.setAttribute('data-pills-group-name', filterGroup.querySelectorAll('div')[0].getAttribute('data-filter-group'));\n let pillsGroupInnerHtml = '';\n\n selectedParams.forEach(param => {\n const text = param.nextElementSibling.textContent;\n const name = param.getAttribute('id');\n pillsGroupInnerHtml += `
    ${text}
    `;\n\n pillsGroup.innerHTML = pillsGroupInnerHtml;\n });\n\n pillsContainer.appendChild(pillsGroup);\n });\n\n if (pillsContainer && pillsContainer.childElementCount > 0 && !pillsContainer.querySelector('button')) {\n const removeButton = document.createElement('span');\n\n removeButton.classList.add('remove-all-filters');\n removeButton.textContent = 'Usuń wszystkie filtry';\n pillsContainer.appendChild(removeButton);\n }\n}","import Cookies from 'js-cookie';\n\nconst MAX_ITEMS = 20;\nlet wishlistCookie = Cookies.get('wishlist-cookie');\nlet array = [];\n\nif (wishlistCookie) {\n array = JSON.parse(wishlistCookie);\n}\n\nfunction draw() {\n document.querySelectorAll('[data-wishlist-id]').forEach(wishlistItem => {\n const pid = wishlistItem.getAttribute('data-wishlist-id');\n const foundPid = array.find(arrayItem => Number(arrayItem.id) === Number(pid));\n\n if (foundPid) {\n wishlistItem.classList.add('existing');\n } else {\n wishlistItem.classList.remove('existing');\n }\n });\n}\n\nexport default function () {\n const wishlistLink = document.getElementById('wishlist-box');\n\n if (wishlistLink) {\n wishlistLink.setAttribute('data-wishlist-count', array.length);\n }\n\n document.querySelectorAll('[data-wishlist-id]').forEach(item => {\n item.addEventListener('click', function () {\n const pid = this.getAttribute('data-wishlist-id');\n const foundPid = array.find(arrayItem => Number(arrayItem.id) === Number(pid));\n\n if (foundPid) {\n let index;\n\n array.some(function (elem, i) {\n return Number(elem.id) === Number(pid) ? (index = i, true) : false;\n });\n\n array.splice(index, 1);\n } else {\n if (array.length >= MAX_ITEMS) {\n array.shift();\n }\n\n array.push({\n id: pid,\n date: new Date().getTime()\n });\n }\n\n array.sort(function (a, b) { return (a.date > b.date) ? 1 : b.date > a.date ? -1 : 0; });\n Cookies.set('wishlist-cookie', JSON.stringify(array), { expires: 30 });\n\n wishlistLink.setAttribute('data-wishlist-count', array.length);\n\n draw();\n });\n });\n\n draw();\n}","import { isVisible } from './utils/utils';\n\nexport default function () {\n const dropdownPickers = document.querySelectorAll('.dropdown-picker');\n\n dropdownPickers.forEach(dp => {\n document.addEventListener('click', function (event) {\n const element = dp;\n\n if (!element.contains(event.target) && isVisible(element)) {\n element.classList.remove('show-dropdown');\n }\n });\n\n const selectedLabelItem = dp.querySelector('input[type=\"radio\"]:checked + label');\n const selectedSpanText = selectedLabelItem ? selectedLabelItem.textContent : '---';\n const selectedButton = dp.querySelector('.dropdown-button');\n\n selectedButton.textContent = selectedSpanText;\n\n selectedButton.addEventListener('click', function () {\n this.parentElement.classList.toggle('show-dropdown');\n });\n });\n}","import { on } from 'delegated-events';\nimport createPills from './create-pills';\nimport wishlist from './wishlist';\nimport dropdownPicker from './dropdown-picker';\n\nimport { showLoader, hideLoader } from './utils/utils';\n\nfunction pjaxFormSubmit(form) {\n if (typeof (Event) !== 'function') {\n document.querySelector(`${form}`).submit();\n }\n\n document.querySelector(`${form}`).dispatchEvent(new Event('submit', {\n bubbles: true,\n cancelable: true,\n type: 'submit'\n }));\n}\n\nexport default function () {\n const pjaxContainer = document.querySelector('#pjax-container');\n\n if (!pjaxContainer) return;\n\n import('pjax/pjax.js').then(module => {\n const Pjax = module.default;\n\n new Pjax({\n elements: \"#filter\",\n selectors: [\"#pjax-container\"],\n scrollRestoration: false,\n scrollTo: false,\n cacheBust: false,\n scrollTo: false,\n switches: {\n \"#pjax-container\": Pjax.switches.innerHTML\n }\n });\n\n document.addEventListener('pjax:send', function () {\n showLoader();\n });\n\n document.addEventListener('pjax:complete', function () {\n window.lazyLoadInstance.update();\n hideLoader();\n });\n\n document.addEventListener('pjax:complete', function (xhr) {\n createPills();\n wishlist();\n dropdownPicker();\n\n const filterBottomButton = document.querySelector('.close-filter-bottom > span');\n\n if (filterBottomButton) {\n filterBottomButton.setAttribute('data-count', `(${xhr.request.getResponseHeader('x-filtered-count')})`);\n }\n\n const navigationSorter = document.querySelector('.navigation-wrapper .dropdown-picker[data-dropdown-type=\"sort\"]');\n\n if (navigationSorter && window.innerWidth < 1280) navigationSorter.remove();\n });\n\n on('click', '.dropdown-picker input[type=\"radio\"]', function () {\n const dropdownPickerType = this.closest('.dropdown-picker').getAttribute('data-dropdown-type');\n\n document.querySelector(`#filter [name=\"${dropdownPickerType}\"]`).value = this.value;\n pjaxFormSubmit('#filter');\n });\n\n on('change', '#filter input[type=\"checkbox\"]', function () {\n pjaxFormSubmit('#filter');\n });\n\n on('click', '#pills-container .single-pill[data-pill-id]', function () {\n const pillId = this.getAttribute('data-pill-id');\n const filterInput = document.querySelector(`.gs-filtr-container input[id=\"${pillId}\"]`);\n\n filterInput.checked = false;\n pjaxFormSubmit('#filter');\n });\n\n on('click', '.remove-all-filters', function () {\n const priceFiltering = document.querySelector('#filter .price-filtering');\n\n import('noUiSlider').then(({ default: noUiSlider }) => {\n if (priceFiltering) {\n const handles = priceFiltering.querySelector('#price-filter-handles');\n\n handles.noUiSlider.set([\n handles.getAttribute('data-price-min'),\n handles.getAttribute('data-price-max')\n ]);\n }\n\n document.querySelectorAll('.gs-filtr-container input[type=\"checkbox\"]:checked').forEach(input => {\n input.checked = false;\n });\n\n pjaxFormSubmit('#filter');\n });\n });\n\n createPills();\n });\n}\n\nexport { pjaxFormSubmit };","import { on } from 'delegated-events';\n\nconst POLL_VOTED_IDS = 'poll-voted-ids';\n\nexport default function () {\n const appendToStorage = (data) => {\n let existing = localStorage.getItem(POLL_VOTED_IDS);\n if (existing === null) existing = '';\n localStorage.setItem(POLL_VOTED_IDS, `${existing} ${data}`);\n };\n\n const checkInStorage = (pollId) => {\n const pollVotedIds = localStorage.getItem(POLL_VOTED_IDS);\n\n if (pollVotedIds === null) {\n return false;\n } else {\n const idsArray = localStorage.getItem(POLL_VOTED_IDS).trim().split(' ');\n return idsArray.includes(`${pollId}`);\n }\n }\n\n const fetchPoll = async (poll) => {\n const response = await fetch('/polls/fetchrandom', { method: 'POST' });\n const data = await response.json();\n return data;\n };\n\n const buildPoll = (pollData) => {\n const pollId = pollData.Id;\n const pollQuestion = pollData.Name;\n const pollAnswers = pollData.Items;\n const alreadyVoted = checkInStorage(pollId);\n\n const pollHtml = `\n Ankieta\n ${pollQuestion}\n \n `;\n\n return pollHtml;\n };\n\n on('click', '[data-poll-vote-id]', function () {\n const pollId = this.dataset.pollId;\n const pollVoteId = this.dataset.pollVoteId;\n const currentPoll = this.closest('[data-poll]');\n\n appendToStorage(pollId);\n\n fetch(`/polls/vote?positionId=${pollVoteId}`, { method: 'POST' })\n .then(response => response.json())\n .then(data => currentPoll.innerHTML = buildPoll(data));\n });\n\n if ('IntersectionObserver' in window) {\n const allPolls = document.querySelectorAll('[data-poll]');\n\n allPolls.forEach(poll => {\n const observer = new IntersectionObserver(\n function (entries) {\n for (var i = 0; i < entries.length; i++) {\n if (entries[i].isIntersecting) {\n fetchPoll(poll).then(data => poll.innerHTML = buildPoll(data));\n observer.unobserve(poll);\n }\n }\n }\n );\n\n observer.observe(poll);\n });\n }\n}","import { on } from 'delegated-events';\n\nimport { debounce } from './utils/utils';\n\nconst searchStorage = window.localStorage;\nconst searchStorageItems = searchStorage.getItem('searchStorageItems') ? JSON.parse(searchStorage.getItem('searchStorageItems')) : [];\n\nconst manageSearchStorage = (enteredValue) => {\n if (enteredValue) {\n if (searchStorageItems.length <= 5 && !searchStorageItems.includes(enteredValue)) {\n searchStorageItems.unshift(enteredValue);\n }\n\n if (searchStorageItems.length === 6) {\n searchStorageItems.pop();\n }\n\n searchStorage.setItem('searchStorageItems', JSON.stringify([...searchStorageItems]));\n } else {\n const itemExisting = searchStorage.getItem('searchStorageItems');\n\n if (itemExisting && itemExisting.length > 0) {\n const elements = JSON.parse(itemExisting);\n\n return elements;\n }\n }\n}\n\nexport default function searchEngine() {\n const searchEngine = document.querySelector('#search-engine');\n\n if (!searchEngine) return;\n\n const searchInput = searchEngine.querySelector('[name=\"query\"]');\n const searchForm = searchEngine.querySelector('form');\n const suggestions = searchEngine.querySelector('#suggestions');\n\n const productsWrapper = suggestions.querySelector('.suggestion-result-products');\n const producersWrapper = suggestions.querySelector('.suggestion-result-producers');\n const categoriesWrapper = suggestions.querySelector('.suggestion-result-categories');\n\n const fillSuggestions = (products, producers, categories) => {\n productsWrapper.innerHTML = '';\n\n if (products.length > 0) {\n productsWrapper.innerHTML = products.map((item) => {\n return `\n
  • \n \n \n \"${item.name}\"\n \n ${item.name}\n ${item.price} zł\n \n
  • \n `;\n }).join('');\n }\n\n producersWrapper.innerHTML = '';\n\n if (producers.length > 0) {\n producersWrapper.innerHTML = producers.map((item) => {\n return `\n
  • \n ${item.name}\n
  • \n `;\n }).join('');\n }\n\n categoriesWrapper.innerHTML = '';\n\n if (categories.length > 0) {\n categoriesWrapper.innerHTML = categories.map((item) => {\n return `\n
  • \n ${item.name}\n
  • \n `;\n }).join('');\n }\n };\n\n const searchProducts = (query) => {\n suggestions.classList.add('loading');\n\n fetch('/api/frontend/searchsuggestions', {\n method: 'POST',\n credentials: 'same-origin',\n body: JSON.stringify({ query }),\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n }\n })\n .then(response => response.json())\n .then(data => {\n const products = data.products;\n const producers = data.producers;\n const categories = data.categories;\n\n suggestions.classList.remove('loading');\n fillSuggestions(products, producers, categories);\n })\n .catch(error => {\n suggestions.classList.remove('loading');\n console.log(error);\n });\n };\n\n searchInput.addEventListener('input', debounce(function (e) {\n const value = e.target.value;\n\n if (value.length > 1) {\n searchEngine.classList.add('show');\n searchEngine.classList.remove('show-last-phrases');\n searchProducts(value);\n } else {\n searchEngine.classList.remove('show');\n\n if (manageSearchStorage()) {\n searchEngine.classList.add('show-last-phrases');\n }\n \n fillSuggestions([], [], []);\n }\n }, 500));\n\n searchInput.addEventListener('focus', function(e) {\n const value = e.target.value;\n const lastSearched = manageSearchStorage();\n\n if (value.length > 1) {\n searchEngine.classList.add('show');\n } else if (lastSearched) {\n const lastPhrasesWrapper = suggestions.querySelector('.suggestion-last-phrases');\n\n searchEngine.classList.add('show-last-phrases');\n lastPhrasesWrapper.innerHTML = '';\n lastPhrasesWrapper.innerHTML = lastSearched.map((item) => {\n const text = document.createTextNode(item);\n const html = document.createElement('span');\n\n html.appendChild(text);\n\n return \"
  • \" + html.innerHTML.toString() + \"
  • \";\n }).join('');\n }\n });\n\n document.addEventListener('click', function (e) {\n const isClickInside = searchEngine.contains(e.target);\n\n if (!isClickInside && window.outerWidth > 1279) {\n searchEngine.classList.remove('show');\n searchEngine.classList.remove('show-last-phrases');\n }\n });\n\n searchForm.addEventListener('submit', function (e) {\n const enteredValue = e.target.elements['query'];\n\n if (enteredValue.value.length > 1) {\n manageSearchStorage(enteredValue.value);\n }\n\n manageSearchStorage();\n });\n\n on('click', '.suggestion-last-phrases span', function () {\n searchInput.value = this.textContent;\n searchForm.submit();\n });\n\n on('click', '.suggestion-last-phrases .delete-hint-suggestion', function () {\n const clickedItem = this.previousElementSibling.textContent;\n const index = searchStorageItems.indexOf(clickedItem);\n\n this.parentElement.classList.add('hidden');\n\n if (index != -1) {\n searchStorageItems.splice(index, 1);\n }\n\n if (searchStorageItems.length === 0) {\n searchStorage.removeItem('searchStorageItems');\n searchEngine.classList.remove('show');\n searchEngine.classList.remove('show-last-phrases');\n return;\n }\n\n searchStorage.setItem('searchStorageItems', JSON.stringify(searchStorageItems));\n });\n}","import scrollToElement from './scroll-to-element';\nimport { getPageHeaderOffset } from './scroll-to-element';\n\nlet workSection;\nlet navBar;\nlet allHeaders;\nlet scrollingFromClick = false;\nlet viewportUpdateLines;\nlet middleUpdateLine;\n\nexport default function () {\n workSection = document.querySelector(\"[data-desc-navigation]\");\n if (!workSection) return;\n\n const moduleEnabled = Number(workSection.dataset.descNavigation);\n allHeaders = document.querySelectorAll('.description-header');\n if (!moduleEnabled || allHeaders.length < 2) return;\n\n createNavBar();\n initNavBarObserver();\n initNavButtons();\n}\n\nfunction createNavBar() {\n workSection.insertAdjacentHTML('afterbegin', `\n
    \n
    \n
    \n
    `);\n\n navBar = workSection.querySelector(\".desc-navigation-wrapper\");\n navBar.style.top = `${getPageHeaderOffset()}px`;\n}\nfunction initNavBarObserver() {\n const sentinel = document.querySelector('.nav-sentinel');\n\n const navBarObserver = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (!entry.isIntersecting) return navBar.classList.add(\"sticking\");\n \n navBar.classList.remove(\"sticking\");\n setButtonColor(0);\n\n });\n }, {\n rootMargin: `${-1 * getPageHeaderOffset()}px 0px 0px 0px`,\n });\n navBarObserver.observe(sentinel);\n}\n\nfunction initNavButtons() {\n allHeaders.forEach((header, index) => {\n\n const navButton = document.createElement(\"button\");\n navButton.innerText = header.innerText;\n navButton.setAttribute(\"title\", `Przewiń do - ${header.innerText}`);\n navBar.querySelector(\".desc-navigation\").appendChild(navButton);\n\n navButton.addEventListener(\"click\", () => { buttonClickActions(header, index) });\n initColorChanging(header, index);\n });\n}\nfunction buttonClickActions(header, index) {\n scrollingFromClick = true;\n setButtonColor(index, true);\n scrollToElement(header, navBar.clientHeight, '', () => { scrollingFromClick = false; });\n}\n\nfunction initColorChanging(singleHeader, index) {\n window.addEventListener(\"load\", function () {\n\n let stickyOffset = (-1 * (getPageHeaderOffset() + navBar.clientHeight + singleHeader.clientHeight));\n\n viewportUpdateLines = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n setButtonColor(getLikelyHeaderIndex());\n });\n }, {\n rootMargin: `${stickyOffset}px 0px 0px 0px`,\n });\n\n middleUpdateLine = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n setButtonColor(getLikelyHeaderIndex());\n });\n }, {\n rootMargin: `${-0.5 * window.innerHeight}px 0px ${-0.5 * window.innerHeight}px 0px`,\n });\n\n\n viewportUpdateLines.observe(singleHeader);\n middleUpdateLine.observe(singleHeader);\n });\n}\n\nfunction getLikelyHeaderIndex() {\n let stickyOffset = getPageHeaderOffset() + navBar.clientHeight;\n let likelyHeaderIndex;\n let previousSmallest = Infinity;\n\n allHeaders.forEach((header, index) => {\n const rect = header.getBoundingClientRect();\n\n const distanceToTop = Math.abs(rect.top - stickyOffset);\n const distanceToBottom = Math.abs(window.innerHeight - rect.bottom - stickyOffset);\n\n if (distanceToTop > distanceToBottom) return;\n\n if (distanceToTop < previousSmallest) {\n likelyHeaderIndex = index;\n previousSmallest = distanceToTop;\n }\n });\n\n return (likelyHeaderIndex ? likelyHeaderIndex : 0);\n}\nfunction setButtonColor(indexToColor, indexFromClick) {\n if (scrollingFromClick && !indexFromClick) return;\n\n let allButtons = navBar.querySelectorAll(\"button\");\n const className = \"highlighted\";\n allButtons.forEach((button, index) => {\n\n button.classList.remove(className);\n if (index !== indexToColor) return;\n\n button.classList.add(className);\n\n scrollNavBar(button);\n });\n}\n\n\nfunction scrollNavBar(button) {\n const container = navBar.querySelector(\".desc-navigation\");\n\n const containerLeft = container.scrollLeft;\n const containerRight = containerLeft + container.clientWidth;\n const buttonLeft = button.offsetLeft;\n const buttonRight = buttonLeft + button.clientWidth;\n\n let makeNextVisibleOffset = 48\n\n if (buttonRight > containerRight) return container.scrollTo({\n left: buttonRight - container.clientWidth + makeNextVisibleOffset,\n behavior: \"smooth\"\n });\n\n if (buttonLeft < containerLeft) return container.scrollTo({\n left: buttonLeft - makeNextVisibleOffset,\n behavior: \"smooth\"\n });\n}","if (!window.fetch) {\n import('whatwg-fetch');\n}\n\nimport LazyLoad from 'vanilla-lazyload';\nimport advancedSearch from './modules/advanced-search';\nimport amountHandler from './modules/amount-handler';\nimport availabilityPopup from './modules/availability-popup';\nimport banners from './modules/banners';\nimport buttonEvents from './modules/button-events';\nimport consentBar from './modules/general/consent-bar';\nimport returnToTop from './modules/return-to-top';\nimport { readConsentCookie } from './modules/general/consent-manager';\nimport rwd from './modules/general/rwd';\nimport widgetFacebook from './modules/general/widget-facebook';\nimport newsletterPopup from './modules/newsletter-popup';\nimport newsletterCookieModal from './modules/newsletter-cookie-modal';\nimport pjaxCode from './modules/pjax-code';\nimport polls from './modules/polls';\nimport priceFiltering from './modules/price-filtering';\nimport productAdder from './modules/product-adder';\nimport bannersProductCard from './modules/product-detail/banners-product-card';\nimport comments from './modules/general/comments';\nimport { DrawInlineCaptcha } from './modules/recaptcha';\n//import installWorker from './modules/utils/install-worker';\nimport searchEngine from './modules/search-engine';\nimport dropdownPicker from './modules/dropdown-picker';\nimport tabs from './modules/tabs';\nimport treeboxCount from './modules/treebox-count';\nimport eventReceiver from './modules/utils/event-receiver';\nimport wishlist from './modules/wishlist';\nimport calculateFreeShipment from './modules/general/calculate-free-shipment';\nimport questionForm from './modules/question-form';\nimport showcase from './modules/general/showcase';\nimport initObserver from './modules/general/observer';\nimport filterNarrowDown from './modules/filter-narrow-down';\nimport descNavigation from './modules/desc-navigation';\nimport videoPlaceholders from './modules/video-placeholders';\n\nwindow.initConsent = readConsentCookie;\n\nif ('IntersectionObserver' in window && document.querySelectorAll('[data-run-fancybox]').length > 0) {\n import('@fancyapps/ui/dist/fancybox/fancybox.umd').then(module => {\n module.Fancybox.bind('[data-run-fancybox=\"\"]', {\n autoFocus: false,\n trapFocus: false,\n placeFocusBack: false,\n groupAll: true,\n hideScrollbar: false\n });\n\n module.Fancybox.bind('[data-run-fancybox=\"single\"]', {\n autoFocus: false,\n trapFocus: false,\n placeFocusBack: false,\n groupAll: false,\n hideScrollbar: false\n });\n });\n}\n\n//available types of body: cart, listing, detail, mainpage, advanced-search\nconst typeOf = document.body.getAttribute('data-type');\n\nswitch (typeOf) {\n case 'cart':\n import('./modules/cart/_index.js').then((module) => {\n module.cartDeliveryPoints();\n module.cartCommands();\n module.cartManagement();\n module.cartStepBubbles();\n });\n break;\n case 'listing':\n pjaxCode();\n priceFiltering();\n filterNarrowDown();\n break;\n case 'detail':\n import('./modules/product-detail/option-chooser').then((module) => { module.default() });\n amountHandler();\n bannersProductCard();\n availabilityPopup();\n descNavigation();\n break;\n case 'mainpage':\n break;\n case 'advanced-search':\n advancedSearch();\n break;\n default:\n break;\n}\n\nDrawInlineCaptcha();\ncomments();\nbanners();\nbuttonEvents();\n\npolls();\nrwd();\ntreeboxCount();\nwidgetFacebook();\nwishlist();\ndropdownPicker();\nnewsletterPopup();\nnewsletterCookieModal();\neventReceiver();\nproductAdder();\ntabs();\nsearchEngine();\n//installWorker();\ncalculateFreeShipment();\nquestionForm();\nshowcase();\nreturnToTop();\nvideoPlaceholders();\n\n// HEADER OBERVER\nconst header = document.querySelector('.shop-header');\nconst headerSentinel = document.querySelector('.header-sentinel');\n\nif (header) {\n initObserver(headerSentinel, function () {\n header.classList.add('stuck');\n }, function () {\n header.classList.remove('stuck');\n });\n}\n\n// VALIDATIONS\nconst toValidateList = document.querySelectorAll('[data-run-validator]');\n\nif (toValidateList.length > 0) {\n import('./modules/front-validation').then(module => module.default(toValidateList));\n}\n\n// LAZY LOAD IMAGES\nwindow.lazyLoadInstance = new LazyLoad({\n elements_selector: '.lazyload',\n unobserve_entered: true\n});\n\n// INIT TOOLTIPS\nconst tippyNeeded = document.querySelectorAll('[data-tippy-content]').length > 0;\n\nif (tippyNeeded) {\n import('tippy.js').then((module) => {\n module.delegate('body', {\n target: '[data-tippy-content]',\n allowHTML: true\n });\n });\n}\n\n// LINKIFY CHAT\nconst threadMessages = document.querySelector('.thread-messages');\n\nif (threadMessages) {\n import('linkify-html').then((module) => {\n const messages = threadMessages.querySelectorAll('.message-body');\n\n messages.forEach(function (message) {\n const text = message.textContent;\n const linkifiedText = module.default(text, { target: \"_blank\" });\n\n message.innerHTML = linkifiedText;\n });\n });\n}\n\n// INP TESTING\n//let worstInp = 0;\n\n//const observer = new PerformanceObserver((list, obs, options) => {\n// for (let entry of list.getEntries()) {\n// if (!entry.interactionId) continue;\n\n// entry.renderTime = entry.startTime + entry.duration;\n// worstInp = Math.max(entry.duration, worstInp);\n\n// //console.clear();\n// console.log('[Interaction]', entry.duration, `type: ${entry.name} interactionCount: ${performance.interactionCount}, worstInp: ${worstInp}`, entry, options);\n\n// }\n//});\n\n//observer.observe({\n// type: 'event',\n// durationThreshold: 0,\n// buffered: true\n//});\n\ndocument.addEventListener(\"DOMContentLoaded\", (event) => {\n consentBar();\n});\n","import { on } from 'delegated-events';\n\nimport { debounce } from './utils/utils';\nimport { pjaxFormSubmit } from './pjax-code';\n\nexport default function () {\n const handlesSlider = document.getElementById('price-filter-handles');\n\n if (!handlesSlider) return;\n\n import('noUiSlider').then(({ default: noUiSlider }) => {\n const inputMin = document.getElementById('filter-price1');\n const inputMax = document.getElementById('filter-price2');\n const settings = {\n range: {\n 'min': [Number(handlesSlider.getAttribute('data-price-min'))],\n 'max': [Number(handlesSlider.getAttribute('data-price-max'))]\n },\n start: [Number(inputMin.getAttribute('data-from')) || Number(handlesSlider.getAttribute('data-price-min')), Number(inputMax.getAttribute('data-to')) || Number(handlesSlider.getAttribute('data-price-max'))],\n step: 1\n };\n\n noUiSlider.create(handlesSlider, settings);\n\n handlesSlider.noUiSlider.on('update', function (values, handle) {\n if (handle === 0) {\n inputMin.value = Math.round(values[handle]);\n }\n\n if (handle === 1) {\n inputMax.value = Math.round(values[handle]);\n }\n });\n\n handlesSlider.noUiSlider.on('change', debounce(function () {\n pjaxFormSubmit('#filter');\n }, 1000));\n\n inputMin.addEventListener('input', debounce(function () {\n handlesSlider.noUiSlider.set([inputMin.value, null]);\n pjaxFormSubmit('#filter');\n }, 1000));\n\n inputMax.addEventListener('input', debounce(function () {\n handlesSlider.noUiSlider.set([null, inputMax.value]);\n pjaxFormSubmit('#filter');\n }, 1000));\n\n on('click', '#pills-container .single-pill[data-pill-price]', function () {\n if (this.getAttribute('data-pill-price') === 'priceFrom') {\n inputMin.value = settings.range.min;\n handlesSlider.noUiSlider.set([inputMin.value, null]);\n pjaxFormSubmit('#filter');\n }\n\n if (this.getAttribute('data-pill-price') === 'priceTo') {\n inputMax.value = settings.range.max;\n handlesSlider.noUiSlider.set([null, inputMax.value]);\n pjaxFormSubmit('#filter');\n }\n });\n });\n}","export default function () {\n const inputsNarrowDown = document.querySelectorAll('.gs-filtr-container > input');\n\n inputsNarrowDown.forEach(input => {\n const filterContainer = input.parentElement;\n const allFiltersLabels = filterContainer.querySelectorAll('label');\n\n input.addEventListener('input', function (e) {\n const value = e.target.value.toLowerCase();\n\n if (value.length > 1) {\n allFiltersLabels.forEach(filterLabel => {\n let name = filterLabel.getAttribute('title').toLowerCase();\n\n if (!name.includes(value)) {\n filterLabel.classList.add('hide');\n } else {\n filterContainer.classList.remove('no-filters-found');\n\n const isBeginning = name.indexOf(value) === 0;\n\n if (!isBeginning) {\n name = name.charAt(0).toUpperCase() + name.slice(1);\n }\n\n filterLabel.innerHTML = name.replace(value, `${isBeginning ? value.charAt(0).toUpperCase() + value.slice(1) : value}`);\n //filterLabel.innerHTML = name.replace(value, `${value.toUpperCase()}`);\n filterLabel.classList.remove('hide');\n }\n });\n\n if ([...allFiltersLabels].every(label => label.classList.contains('hide'))) {\n filterContainer.classList.add('no-filters-found');\n }\n\n } else {\n allFiltersLabels.forEach(filterLabel => {\n filterLabel.innerHTML = filterLabel.getAttribute('title');\n filterLabel.classList.remove('hide');\n filterContainer.classList.remove('no-filters-found');\n });\n }\n });\n });\n}","import { maskProductsAmount } from './cart/cart-management.js';\n\nexport default function () {\n const countItems = document.querySelector('.detail-amount');\n\n if (!countItems) return;\n\n maskProductsAmount('.detail-amount input[type=\"text\"]');\n\n const inputField = countItems.querySelector('input');\n\n countItems.querySelector('.plus').addEventListener('click', function () {\n inputField.value = Number(inputField.value) + 1;\n }, false);\n countItems.querySelector('.plus').addEventListener('keydown', function (e) {\n if (e.key === 'Enter') {\n this.click();\n }\n }, false);\n\n countItems.querySelector('.minus').addEventListener('click', function () {\n if (Number(inputField.value) > 1) {\n inputField.value = Number(inputField.value) - 1;\n }\n }, false);\n countItems.querySelector('.minus').addEventListener('keydown', function (e) {\n if (e.key === 'Enter') {\n this.click();\n }\n }, false);\n\n}\n","import { on } from 'delegated-events';\nimport showPopup from './modals';\nimport { DrawSingleCaptcha } from './recaptcha';\n\nexport default function () {\n\n const availabilityTrigger = document.querySelector('.availability-modal-trigger');\n\n if (!availabilityTrigger)\n return;\n\n availabilityTrigger.addEventListener('click', function () {\n const scope = availabilityTrigger.closest('[data-scope=\"addcart\"]');\n\n const requestBody = {\n\n ProductId: +scope.querySelector('[data-pid]').getAttribute('data-pid'),\n OptionId: +scope.querySelector('[data-optionid]').getAttribute('data-optionid')\n\n };\n\n fetch('/availability/popup', {\n method: 'POST',\n credentials: 'same-origin',\n body: JSON.stringify(requestBody),\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n }\n })\n .then(response => response.text())\n .then(data => {\n\n showPopup({\n header: 'Powiadom o dostępności',\n body: data,\n overloadClass: 'availability-modal-wrapper'\n });\n\n DrawSingleCaptcha(document.querySelector('.goshop-modal .captcha-wrapper'));\n\n });\n });\n\n on('click', '#availability-subscribe', function (e) {\n const recaptchaItem = document.querySelector('.goshop-modal .g-recaptcha-response');\n\n fetch('/api/frontend/availability', {\n method: 'POST',\n credentials: 'same-origin',\n body: JSON.stringify({\n email: document.querySelector('.goshop-modal .availability-modal-inner input[type=\"text\"]').value,\n recaptcha: recaptchaItem ? recaptchaItem.value : '',\n optionId: document.querySelector('.goshop-modal input#optionId').value\n }),\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n }\n })\n .then(response => response.json())\n .then(data => {\n window.currentModalInstance.close();\n showPopup({ body: data.message });\n \n })\n .catch(error => {\n console.log(error);\n window.currentModalInstance.close();\n });\n });\n\n}","import { showLoader, hideLoader } from './utils/utils';\n\nexport default function () {\n const handlesSlider = document.getElementById('slider-handles');\n \n if (!handlesSlider) return;\n\n import('noUiSlider').then(({ default: noUiSlider }) => {\n const settings = {\n start: [handlesSlider.getAttribute('data-price-min'), handlesSlider.getAttribute('data-price-max')],\n range: {\n 'min': [Number(handlesSlider.getAttribute('data-price-min'))],\n 'max': [Number(handlesSlider.getAttribute('data-price-max'))]\n },\n step: 1\n };\n\n function createSlider(item, conf) {\n noUiSlider.create(item, conf);\n item.noUiSlider.on('update', function (values, handle) {\n if (handle === 0) {\n document.getElementById('priceFrom').value = Math.round(values[handle]);\n }\n\n if (handle === 1) {\n document.getElementById('priceTo').value = Math.round(values[handle]);\n }\n });\n }\n\n function updateSlider(item, from, to) {\n item.noUiSlider.destroy();\n settings.range.min = from;\n settings.range.max = to;\n settings.start = [from, to];\n\n createSlider(item, settings);\n }\n\n createSlider(handlesSlider, settings);\n\n const advSearchCategoryDropdown = document.querySelector('.adv-search-category-dropdown');\n\n if (!advSearchCategoryDropdown) return;\n\n advSearchCategoryDropdown.addEventListener('change', function () {\n const advSearchProducerDropdown = document.querySelector('.adv-search-producer-dropdown');\n const requestObject = { categoryId: advSearchCategoryDropdown.value };\n\n showLoader();\n\n fetch('/api/frontend/AdvancedSearch', {\n method: 'POST',\n credentials: 'same-origin',\n body: JSON.stringify(requestObject),\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n }\n })\n .then(response => response.json())\n .then(data => {\n const mmin = data.min;\n const mmax = data.max;\n\n updateSlider(handlesSlider, parseInt(mmin), parseInt(mmax));\n advSearchProducerDropdown.innerHTML = '';\n\n const startingOption = document.createElement('option');\n\n startingOption.value = '-1';\n startingOption.textContent = '- producent -';\n\n advSearchProducerDropdown.appendChild(startingOption);\n\n if (data.producers) {\n for (let i = 0; i < data.producers.length; i++) {\n const option = document.createElement('option');\n\n option.value = String(data.producers[i].id);\n option.textContent = data.producers[i].name;\n advSearchProducerDropdown.appendChild(option);\n }\n }\n\n hideLoader();\n })\n .catch(error => {\n console.log(error);\n hideLoader();\n });\n });\n });\n}\n","import Swiper from 'swiper';\nimport { Pagination, Navigation } from 'swiper/modules';\n\nexport default function () {\n\n performance.mark(\"Swiper module starts\")\n\n const cs = getComputedStyle(document.documentElement);\n\n //MAIN BANNER\n const mainBanner = new Swiper('.main-banner', {\n modules: [Pagination],\n preloadImages: false,\n //autoplay: {\n // delay: 1000\n //},\n lazy: false,\n loop: false,\n pagination: {\n el: '.swiper-pagination',\n type: 'bullets',\n clickable: true\n },\n on: {\n beforeTransitionStart: function (instance) {\n\n const currentSlide = instance.slides[instance.activeIndex];\n const slideImg = currentSlide.querySelector('img');\n\n if (slideImg.hasAttribute('src')) return;\n\n currentSlide.classList.add('loaded');\n slideImg.setAttribute('src', slideImg.getAttribute('data-src'));\n }\n }\n });\n\n //MAIN PAGE PRODUCTS\n const breakpoints = {\n 1: {},\n 360: {},\n 601: {},\n 769: {},\n 1280: {}\n };\n\n const slider1 = new Swiper('.slider-with-products.slider1 .swiper', {\n modules: [Navigation],\n preloadImages: false,\n navigation: {\n nextEl: '.swiper-button-next.slider-button1',\n prevEl: '.swiper-button-prev.slider-button1'\n },\n loop: false,\n breakpoints: breakpoints,\n slidesPerView: Number(cs.getPropertyValue('--prodSwiperCols')),\n spaceBetween: Number(cs.getPropertyValue('--prodGapHor').replace('px', '')),\n });\n\n slider1.on('breakpoint', function () {\n slider1.params.slidesPerView = Number(cs.getPropertyValue('--prodSwiperCols'));\n slider1.params.spaceBetween = Number(cs.getPropertyValue('--prodGapHor').replace('px', ''));\n slider1.update();\n });\n\n const slider2 = new Swiper('.slider-with-products.slider2 .swiper', {\n modules: [Navigation],\n preloadImages: false,\n navigation: {\n nextEl: '.swiper-button-next.slider-button2',\n prevEl: '.swiper-button-prev.slider-button2'\n },\n loop: false\n });\n\n const slider3 = new Swiper('.slider-with-products.slider3 .swiper', {\n modules: [Navigation],\n preloadImages: false,\n navigation: {\n nextEl: '.swiper-button-next.slider-button3',\n prevEl: '.swiper-button-prev.slider-button3'\n },\n loop: false,\n breakpoints: breakpoints,\n slidesPerView: Number(cs.getPropertyValue('--prodSwiperCols')),\n spaceBetween: Number(cs.getPropertyValue('--prodGapHor').replace('px', '')),\n });\n\n slider3.on('breakpoint', function () {\n slider3.params.slidesPerView = Number(cs.getPropertyValue('--prodSwiperCols'));\n slider3.params.spaceBetween = Number(cs.getPropertyValue('--prodGapHor').replace('px', ''));\n slider3.update();\n });\n\n //PRODUCERS\n const producersBanner = new Swiper('.producers-banner .swiper', {\n modules: [Navigation],\n preloadImages: false,\n navigation: {\n nextEl: '.swiper-button-next.producer-button',\n prevEl: '.swiper-button-prev.producer-button'\n },\n loop: false,\n spaceBetween: 61,\n breakpoints: {\n 1: {\n slidesPerView: 3,\n spaceBetween: 15\n },\n 601: {\n slidesPerView: 3\n },\n 1100: {\n slidesPerView: 4\n },\n 1280: {\n slidesPerView: 5\n },\n 1681: {\n slidesPerView: 6\n }\n }\n });\n\n performance.mark(\"Swiper module ends\")\n\n}","import { on } from 'delegated-events';\n\nimport showPopup from './modals';\nimport { isVisible, findSiblings, slideToggle, slideUp, slideDown } from './utils/utils';\n\nexport default function () {\n document.querySelectorAll('.user-orders-list .order-header button').forEach(button => {\n button.addEventListener('click', function () {\n findSiblings(this.parentElement.parentElement).forEach(orderInfo => slideUp(orderInfo.getElementsByClassName('order-detailed-info')[0]));\n slideToggle(this.parentElement.parentElement.querySelector('.order-detailed-info'));\n });\n });\n\n document.querySelectorAll('.single-saved-cart .buttons-wrapper > i').forEach(i => {\n i.addEventListener('click', function () {\n slideToggle(this.parentElement.nextElementSibling);\n });\n });\n\n // Guziki w drzewie kategorii\n const tree = document.getElementById('tree');\n\n if (tree) {\n tree.querySelectorAll('li.t0.parent').forEach(li => {\n const button = document.createElement('button');\n button.setAttribute('title', 'Rozwiń kategorię');\n\n li.appendChild(button);\n });\n\n tree.querySelectorAll('button').forEach(button => {\n button.addEventListener('click', function () {\n this.parentElement.classList.toggle('downarrow');\n });\n });\n }\n\n // DETAIL ACCORDION\n on('click', '.detail-accordion-trigger', function () {\n this.classList.toggle('info-visible');\n });\n\n // DETAIL LOUPE\n on('click', '.detail-loupe', function () {\n const toClick = document.querySelector('.product-images .swiper-slide-active');\n\n if (toClick) {\n toClick.click();\n }\n });\n\n // FAQ\n const faqListSpan = document.querySelectorAll('.faq-list span');\n\n faqListSpan.forEach(span => {\n span.addEventListener('click', function () {\n span.parentElement.classList.toggle('show');\n span.parentElement.classList.remove('instant');\n\n const id = span.parentElement.getAttribute('id');\n\n if (id) {\n if (history.pushState) {\n history.pushState(null, null, `faq#${id}`);\n } else {\n location.hash = `faq#${id}`;\n }\n }\n });\n });\n\n if (window.location.href.indexOf(\"faq\") > -1) {\n let hash = window.location.hash;\n\n if (hash) {\n hash = hash.substring(1);\n const elem = document.querySelector(`#${hash}`);\n\n elem.classList.add('show', 'instant');\n elem.parentElement.closest('li').classList.add('show', 'instant');\n }\n }\n\n // TOGGLER COMPANY\n on('click', '.cart-toggler', function () {\n let toShow;\n\n if (this.type === 'checkbox') {\n toShow = this.parentElement.nextElementSibling;\n slideToggle(toShow);\n }\n\n if (this.type === 'radio') {\n toShow = document.getElementsByClassName('toShowCompany')[0];\n\n if (this.value === '1' && !isVisible(toShow)) {\n slideDown(toShow);\n }\n\n if (this.value === '0' && isVisible(toShow)) {\n slideUp(toShow);\n }\n }\n });\n\n // FILTER\n const filter = document.getElementById('filter');\n const sorter = document.querySelector('[data-dropdown-type=\"sort\"]');\n\n if (filter) {\n function createFilterSorter() {\n const filterSorter = sorter.cloneNode(true);\n sorter.remove();\n filter.querySelector('.close-filter').insertAdjacentElement('afterend', filterSorter);\n filterSorter.querySelector('.dropdown-button').addEventListener('click', function () {\n this.parentElement.classList.toggle('show-dropdown-rwd');\n });\n document.addEventListener('click', function (event) {\n const element = filterSorter;\n\n if (!element.contains(event.target) && isVisible(element)) {\n element.classList.remove('show-dropdown-rwd');\n }\n });\n }\n\n const body = document.body;\n const isCanvasFilter = document.body.hasAttribute('data-canvas-filter');\n\n if (isCanvasFilter) { // IF CANVAS FILTER\n on('click', '.filter-trigger', function () {\n if (window.innerWidth < 1280) {\n body.classList.add('overlay-visible');\n body.classList.add('show-filter');\n filter.style.display = 'block';\n\n if (!filter.querySelector('.dropdown-picker[data-dropdown-type=\"sort\"]') && sorter) createFilterSorter();\n\n } else {\n document.getElementById('container').classList.toggle('show-side-filter');\n }\n });\n\n document.addEventListener('mouseup', function (e) {\n const isClickInside = filter.contains(e.target);\n\n if (!isClickInside) {\n document.getElementById('container').classList.remove('show-side-filter');\n }\n });\n\n } else { // IF NOT CANVAS FILTER\n on('click', '.filter-trigger', function () {\n if (window.innerWidth < 1280) {\n body.classList.add('overlay-visible');\n body.classList.add('show-filter');\n filter.style.display = 'block';\n\n if (!filter.querySelector('.dropdown-picker[data-dropdown-type=\"sort\"]') && sorter) createFilterSorter();\n }\n });\n }\n\n document.addEventListener('mouseup', function (e) {\n const isClickInside = filter.contains(e.target);\n\n if (!isClickInside) {\n document.getElementById('container').classList.remove('show-side-filter');\n }\n });\n\n document.querySelector('.close-filter').addEventListener('click', function () {\n if (window.innerWidth < 1280) {\n body.classList.remove('overlay-visible');\n body.classList.remove('show-filter');\n filter.style.display = 'none';\n }\n });\n\n filter.querySelectorAll('.gs-filtr-container > strong').forEach(strong => {\n strong.addEventListener('click', function () {\n if (window.innerWidth < 1280) {\n this.parentElement.classList.toggle('show-list');\n }\n });\n });\n\n filter.querySelector('.close-filter-bottom > span').addEventListener('click', function () {\n if (window.innerWidth < 1280) {\n body.classList.remove('overlay-visible');\n body.classList.remove('show-filter');\n filter.style.display = 'none';\n }\n });\n }\n\n // NEWSLETTER POPUP SUBMIT\n on('click', '.goshop-modal .newsletter-clauses-wrapper ~ button[type=\"submit\"]', function (e) {\n const modal = document.querySelector('.basicLightbox');\n const standardNewsletter = modal.classList.contains('standard-newsletter');\n const checkboxes = modal.querySelectorAll('[type=\"checkbox\"]:checked');\n\n if (checkboxes.length !== 1) {\n modal.querySelector('.newsletter-clauses-wrapper').classList.add('unchecked');\n e.preventDefault();\n } else if (!standardNewsletter && !modal.querySelector('.valid')) {\n const inputField = modal.querySelector('input[type=\"text\"]');\n\n inputField.dispatchEvent(new Event('focusin', {\n bubbles: true,\n cancelable: true,\n type: 'focusin'\n }));\n inputField.parentElement.classList.add('invalid', 'filled');\n } else {\n window.currentModalInstance.close();\n\n const recaptchaItem = modal.querySelector('.g-recaptcha-response');\n \n fetch('/api/frontend/newsletter', {\n method: 'POST',\n credentials: 'same-origin',\n body: JSON.stringify({\n email: standardNewsletter ? document.querySelector('#newsletter input[type=\"text\"]').value : modal.querySelector('input[type=\"text\"]').value,\n recaptcha: recaptchaItem ? recaptchaItem.value : ''\n }),\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n }\n })\n .then(response => response.json())\n .then(data => {\n standardNewsletter ? document.querySelector('#newsletter input[type=\"text\"]').value = '' : modal.querySelector('input[type=\"text\"]').value = '';\n showPopup({ body: data.message });\n })\n .catch(error => {\n standardNewsletter ? document.querySelector('#newsletter input[type=\"text\"]').value = '' : modal.querySelector('input[type=\"text\"]').value = '';\n console.log(error);\n });\n }\n });\n}\n","import { on } from 'delegated-events';\n\nimport { debounce, isVisible } from '../utils/utils';\n\nexport default function () {\n const body = document.body;\n let winWidth = window.innerWidth;\n\n let updateWidth = debounce(function () {\n winWidth = window.innerWidth;\n }, 100);\n\n window.addEventListener('resize', updateWidth);\n\n // TREE\n const tree = document.getElementById('tree');\n\n if (tree) {\n document.querySelector('.tree-trigger').addEventListener('click', function (e) {\n if (winWidth < 1280) {\n e.stopPropagation();\n\n if (!tree.querySelector('.close-tree-header')) {\n tree.firstElementChild.firstElementChild.insertAdjacentHTML('afterbegin', 'Menu');\n }\n\n const menuRwdWrapper = document.querySelector('.cms-rwd');\n const mainmenu = document.querySelector('.mainmenu');\n\n if (mainmenu && menuRwdWrapper && menuRwdWrapper.innerHTML === '') {\n menuRwdWrapper.innerHTML = mainmenu.innerHTML;\n }\n\n body.classList.toggle('show-menu');\n }\n });\n\n document.querySelector('.tree-canvas').addEventListener('click', function () {\n if (winWidth < 1280) {\n body.classList.remove('show-menu');\n }\n });\n\n on('click', '#tree .category-header', function () {\n const closestUl = this.closest('ul');\n const wrappingUl = closestUl.parentElement.parentElement;\n\n closestUl.classList.remove('active');\n wrappingUl.classList.remove('hide');\n });\n\n on('click', '#tree .close-tree-header', function () {\n body.classList.remove('show-menu');\n });\n\n on('click', '#tree a', function (e) {\n if (winWidth < 1280) {\n if (this.parentElement.classList.contains('parent')) {\n e.preventDefault();\n\n const nextUl = this.nextElementSibling;\n const closestUl = this.closest('ul');\n const parentName = nextUl.getAttribute('data-parent-name');\n const parentUrl = nextUl.getAttribute('data-parent-url');\n\n if (nextUl.firstElementChild.tagName != 'SPAN') {\n nextUl.insertAdjacentHTML('afterbegin', `${parentName}`);\n nextUl.firstElementChild.insertAdjacentHTML('afterend', `Pokaż wszystkie`);\n }\n\n closestUl.classList.add('hide');\n nextUl.classList.add('active');\n nextUl.scrollIntoView();\n }\n }\n });\n }\n\n // SEARCHBOX\n const searchEngineTrigger = document.querySelector('.search-engine-trigger');\n const searchEngineClose = document.querySelector('.search-engine-close');\n\n if (searchEngineTrigger && searchEngineClose) {\n searchEngineTrigger.addEventListener('click', function () {\n if (winWidth < 1280) {\n body.classList.add('overlay-visible');\n body.classList.add('show-search-engine');\n document.querySelector('#search-engine input[name=\"query\"]').focus();\n }\n });\n\n searchEngineClose.addEventListener('click', function () {\n if (winWidth < 1280) {\n body.classList.remove('overlay-visible');\n body.classList.remove('show-search-engine');\n }\n });\n }\n}","export default function () {\n const treeLi = document.querySelectorAll('#tree li');\n\n if (treeLi.length <= 0)\n return;\n\n treeLi.forEach(function (li) {\n const dataCount = li.getAttribute('data-count');\n const aElem = li.querySelectorAll('a')[0];\n\n if (!aElem) return;\n\n const smallElem = document.createElement('small');\n\n smallElem.textContent = `(${dataCount})`;\n aElem.appendChild(smallElem);\n });\n\n}","export default function () {\n const element = document.getElementById('fb-open');\n\n if (element) {\n element.addEventListener('click', function () {\n this.parentElement.classList.toggle('show');\n\n const iframeItem = this.parentElement.querySelector('iframe');\n if (iframeItem.getAttribute('src'))\n return;\n\n const iframeUrl = iframeItem.getAttribute('data-src');\n iframeItem.setAttribute('src', iframeUrl);\n\n });\n }\n}","import showPopup from './modals';\nimport { DrawSingleCaptcha } from './recaptcha';\n\nexport default function () {\n const newsletter = document.getElementById('newsletter');\n\n if (!newsletter)\n return;\n\n let trigger = newsletter.querySelector('.popup-trigger');\n\n trigger.addEventListener('click', function () {\n\n showPopup({\n header: 'Zapis do newslettera',\n body: newsletter.querySelector('.goshop-modal-content').innerHTML,\n overloadClass: 'standard-newsletter'\n });\n\n DrawSingleCaptcha(document.querySelector('.goshop-modal .captcha-wrapper'));\n });\n\n newsletter.querySelector('input[type=\"text\"]').addEventListener('keyup', function (e) {\n if ((e.key === \"Enter\" || e.keyCode === 13))\n trigger.click();\n\n });\n\n}","export default function () {\n\n document.addEventListener('goshop:cart_action', function (e) {\n\n var eventItem = e.detail;\n\n if (eventItem.Add || eventItem.Remove) {\n\n console.debug('Event cart_action received: ', e.detail);\n console.debug(`Action was: ${eventItem.Add ? 'ADD' : 'REMOVED'}`);\n\n eventItem.EcommerceItem = JSON.parse(eventItem.EcommerceItemJson);\n console.debug(`Item`, eventItem.EcommerceItem);\n if (typeof gtag !== 'undefined') {\n gtag('event', eventItem.Add ? 'add_to_cart' : \"remove_from_cart\", {\n value: eventItem.EcommerceItem.Price,\n items: [eventItem.EcommerceItem]\n });\n\n }\n\n if (typeof dataLayer !== 'undefined') {\n\n dataLayer.push({ ecommerce: null });\n dataLayer.push({\n event: eventItem.Add ? 'add_to_cart' : \"remove_from_cart\",\n ecommerce: {\n items: [eventItem.EcommerceItem]\n }\n });\n\n }\n if (typeof fbq !== 'undefined') {\n fbq('track', 'AddToCart', {\n content_type: 'product',\n content_ids: [eventItem.EcommerceItem.item_id]\n });\n }\n\n }\n\n\n });\n\n document.addEventListener('pjax:complete', function () {\n if (typeof gtag !== 'undefined') {\n gtag('event', 'page_view');\n }\n });\n}","import { on } from 'delegated-events';\n\nimport showPopup from './modals';\nimport smallCartRefresh from './cart/small-cart-refresh';\nimport { showLoader, hideLoader } from './utils/utils';\n\nexport default function () {\n on('click', '.cartadder', function () {\n showLoader();\n\n const scope = this.closest('[data-scope=\"addcart\"]');\n let amount;\n\n if (scope.querySelector('[data-role=\"product-amount\"]')) {\n amount = Number(scope.querySelector('[data-role=\"product-amount\"]').value) || 1;\n } else {\n amount = 1;\n }\n\n if (scope.querySelector('[data-optionid]') && scope.querySelector('[data-optionid]').getAttribute('data-optionid') === '-1') {\n showPopup({ body: 'Proszę wybrać opcję produktu', overloadClass: 'error-modal' });\n hideLoader();\n return;\n }\n\n const requestBody = {\n request: {\n Amount: amount,\n ProductId: scope.querySelector('[data-pid]').getAttribute('data-pid'),\n OptionId: scope.querySelector('[data-optionid]') ? scope.querySelector('[data-optionid]').getAttribute('data-optionid') : null\n }\n };\n\n const requestAddons = [];\n\n scope.querySelectorAll('[data-cart-custom]').forEach(dataCart => {\n requestAddons.push({\n key: dataCart.getAttribute('data-cart-custom'),\n value: dataCart.value\n });\n });\n\n requestBody.request['addons'] = requestAddons;\n\n fetch('cartaction/addcart', {\n method: 'POST',\n credentials: 'same-origin',\n body: JSON.stringify(requestBody),\n headers: {\n 'Content-Type': 'application/json; charset=utf-8'\n }\n })\n .then(response => response.json())\n .then(data => {\n\n hideLoader();\n\n if (data.RedirectToUrl) {\n location.href = data.ProductUrl;\n return false;\n }\n\n showPopup({\n header: 'Dodano do koszyka!',\n body: data.HtmlResponse,\n overloadClass: 'cart-modal success-modal',\n anotherCloseSelector: '.return-button',\n leftLinks: 'Wróć do zakupów',\n rightLinks: 'Przejdź do koszyka'\n });\n\n if (data.PositionChanges) {\n for (const item of data.PositionChanges) {\n\n document.dispatchEvent(new CustomEvent('goshop:cart_action', { detail: item }));\n\n }\n }\n\n smallCartRefresh();\n })\n .catch(error => {\n hideLoader();\n console.log(error);\n });\n });\n}","export default function () {\n const gsTabs = document.querySelectorAll('.gs-tabs');\n\n gsTabs.forEach((gsTab, gsTabIdx) => {\n const productsListTabs = gsTab.querySelectorAll('.products-list-tabs');\n\n if (productsListTabs.length <= 1) return;\n\n // Build nav\n const nav = document.createElement('nav');\n\n nav.setAttribute('role', 'tablist');\n nav.setAttribute('aria-label', 'Zakładki z produktami');\n\n productsListTabs.forEach((plt, idx) => {\n plt.setAttribute('role', 'tabpanel');\n plt.setAttribute('aria-labelledby', `tab-${gsTabIdx}-${idx}`);\n plt.setAttribute('id', `panel-${gsTabIdx}-${idx}`);\n\n const title = plt.firstElementChild.textContent;\n const button = document.createElement('button');\n\n button.setAttribute('id', `tab-${gsTabIdx}-${idx}`);\n button.setAttribute('aria-controls', `panel-${gsTabIdx}-${idx}`);\n button.setAttribute('role', 'tab');\n button.setAttribute('aria-selected', false);\n button.textContent = title;\n\n if (idx === 0) {\n button.setAttribute('aria-selected', true);\n }\n\n nav.appendChild(button);\n });\n gsTab.insertAdjacentElement('afterbegin', nav);\n\n const buttons = nav.querySelectorAll('button');\n\n buttons.forEach((button, idx) => {\n button.addEventListener('click', function () {\n buttons.forEach(button => button.setAttribute('aria-selected', false));\n button.setAttribute('aria-selected', true);\n\n productsListTabs.forEach(plt => plt.setAttribute('hidden', true));\n productsListTabs[idx].removeAttribute('hidden');\n });\n });\n\n productsListTabs.forEach(plt => plt.setAttribute('hidden', true));\n productsListTabs[0].removeAttribute('hidden');\n gsTab.classList.add('tab-done');\n });\n}","export default function () {\n const showcases = document.querySelectorAll('[data-showcase]');\n const points = window.showcases;\n\n if (showcases.length === 0 && (points === undefined || points.length === 0)) return;\n\n showcases.forEach(showcase => {\n const showcaseId = +showcase.getAttribute('data-showcase');\n let showcasePoints = points.find(point => point.Id === showcaseId).Points;\n\n if (showcasePoints.length === 0) return;\n\n const img = showcase.querySelector('img');\n\n const initShowcasePoints = () => {\n import('tippy.js').then((module) => {\n\n showcasePoints = showcasePoints;\n\n const showcaseCanvas = document.createElement('div');\n showcaseCanvas.classList.add('showcase-canvas');\n\n const tippyInstances = [];\n\n showcasePoints.forEach(point => {\n if (point.Url === '' && point.Description === '' && point.Name === '') return;\n\n const singlePoint = document.createElement('div');\n singlePoint.classList.add('showcase-point');\n singlePoint.style.top = `${point.Top}%`;\n singlePoint.style.left = `${point.Left}%`;\n singlePoint.innerHTML = '';\n showcaseCanvas.appendChild(singlePoint);\n\n tippyInstances.push(module.default(singlePoint, {\n allowHTML: true,\n interactive: point.Url !== '',\n delay: [0, 200],\n placement: 'bottom',\n arrow: false,\n animation: 'shift-toward',\n onShow(instance) {\n module.hideAll({ exclude: instance })\n },\n content:\n `\n
    \n ${point.Name !== '' ?\n `${point.Name}`\n : ''}\n ${point.Description !== '' ?\n `

    ${point.Description}

    `\n : ''}\n ${point.Url !== '' ?\n `Zobacz więcej`\n : ''}\n
    \n `\n }));\n });\n\n tippyInstances[0].show();\n\n showcase.querySelector('figure').insertAdjacentElement('beforeend', showcaseCanvas);\n });\n }\n\n if (img.complete) {\n initShowcasePoints();\n } else {\n img.addEventListener('load', initShowcasePoints);\n }\n });\n}","import { getScript } from './utils/utils';\nexport default function () {\n\n const players = document.querySelectorAll('.video-player-wrapper');\n\n if (players.length === 0)\n return;\n\n if (!window.Vimeo)\n getScript('https://player.vimeo.com/api/player.js', function () {\n players.forEach(function (item) {\n item.addEventListener('click', function () {\n const url = item.getAttribute('data-url');\n\n var player = new Vimeo.Player(item.id, {\n url: url,\n width: 960\n });\n \n player.on(\"play\", function (data) {\n\n if (typeof exponea !== 'undefined') {\n exponea.track('video_play', { video_name: player.element.title })\n\n }\n });\n\n player.play();\n\n\n });\n });\n });\n\n\n}"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","on","e","arg","this","value","cartCommand","getAttribute","window","currentModalInstance","close","document","getElementById","command","showLoader","fetch","method","credentials","body","JSON","stringify","request","argument","headers","then","response","json","data","innerHTML","Html","smallCartRefresh","lazyLoadInstance","update","hideLoader","PositionChanges","item","dispatchEvent","CustomEvent","detail","PositionsCount","location","href","ErrorMessage","showPopup","overloadClass","maskProductsAmount","catch","error","console","log","selector","inputs","querySelectorAll","length","module","forEach","input","maskOptions","mask","Number","min","max","default","tr","closest","parentElement","removeChild","recalculateQuantity","keyCode","preventDefault","nextElementSibling","click","cartCheckAll","querySelector","classList","add","isChecked","checked","checkbox","header","inputField","inputValue","isNaN","contains","paymentRedirectButton","seconds","textContent","timer","setInterval","clearInterval","addEventListener","submit","items","Array","from","map","element","key","quantity","text","calculateFreeShipment","headerShipment","diff","parseFloat","toFixed","replace","calculateShipment","commentFormSubmit","form","productId","positionId","token","Rating","elements","RatingUser","RatingBody","PositionId","ProductId","Token","message","star","index","starIndex","starsContainer","li","remove","i","comments","comment","getElementsByClassName","starRating","newStars","rating","starsRating","style","width","target","scrollToElement","showCallback","closeCallback","anotherCloseSelector","leftLinks","rightLinks","instance","basicLightbox","className","onShow","onclick","onClose","show","appendSlide","slides","swiper","params","slidesEl","loop","loopDestroy","appendElement","slideEl","tempDOM","createElement","append","children","recalcSlides","loopCreate","observer","isElement","prependSlide","activeIndex","newActiveIndex","prependElement","prepend","slideTo","addSlide","activeIndexBuffer","loopedSlides","baseLength","slidesBuffer","currentSlide","unshift","removeSlide","slidesIndexes","indexToRemove","Math","removeAllSlides","push","Manipulation","_ref","Object","assign","bind","bigPhotos","smallPhotos","moveSlides","nextSlide","prevSlide","slideNext","slidePrev","detailImages","Swiper","modules","Navigation","slidesPerView","preloadImages","navigation","nextEl","prevEl","beforeTransitionStart","slideImg","call","hasAttribute","setAttribute","watchSlidesProgress","threshold","init","smallGallery","clickedIndex","undefined","breakpoints","direction","centeredSlides","spaceBetween","bannersReload","images","bigPhotoArray","smallPhotoArray","off","image","ImageAlt","SourcePathName","SmallPathName","FullPathName","sendQuestion","fields","filter","elem","type","name","recaptchaItem","recaptcha","wrapper","grecaptcha","reset","modalTrigger","trigger","itemId","DrawSingleCaptcha","BuildRecaptcha","captchaWrapper","render","result","button","disabled","defferedCaptchas","DrawInlineCaptcha","isVisible","getScript","recaptchaLoadCallback","customOffsetTop","customOffsetBottom","scrollFinishCallback","Promise","resolve","scrollMargin","getPageHeaderOffset","scrollIntoView","behavior","onScroll","clearTimeout","scrollTimeout","setTimeout","removeEventListener","headerOffset","clientHeight","cs","getComputedStyle","documentElement","headerScrollTransform","getPropertyValue","headerHeightChange","offsetWidth","offsetHeight","getClientRects","debounce","func","wait","immediate","timeout","context","args","arguments","callNow","apply","findSiblings","siblings","sibling","parentNode","firstChild","nodeType","nextSibling","getQueryVariable","variable","vars","search","substring","split","pair","slideUp","duration","transitionProperty","transitionDuration","boxSizing","height","overflow","paddingTop","paddingBottom","marginTop","marginBottom","display","removeProperty","slideDown","slideToggle","source","callback","script","prior","async","onload","onreadystatechange","_","isAbort","readyState","test","src","insertBefore","conditionalContentSet","scope","exports","n","t","o","r","c","u","a","Error","code","l","defineProperty","create","visible","trim","tagName","ownerDocument","concat","appendChild","s","HTMLElement","content","cloneNode","closable","requestAnimationFrame","SelectorSet","size","uid","selectors","selectorObjects","indexes","activeIndexes","docElem","matches","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","prototype","matchesSelector","el","idRe","sel","m","match","slice","id","classRe","baseVal","Map","tagRe","toUpperCase","nodeName","get","set","chunker","parseSelectorIndexes","allIndexes","j","dup","allIndexesLen","rest","exec","findByPrototype","ary","proto","len","isPrototypeOf","sortById","b","logDefaultIndexUsed","obj","indexProto","objs","selectorIndexes","selectorIndex","k","selIndex","removedIds","removeAll","splice","queryAll","len2","results","els","join","sort","len3","keys","matchedIds","bubbleEvents","captureEvents","propagationStopped","WeakMap","immediatePropagationStopped","currentTargets","currentTargetDesc","getOwnPropertyDescriptor","Event","before","subject","verb","fn","trackPropagation","trackImmediate","getCurrentTarget","defineCurrentTarget","event","getter","configurable","enumerable","dispatch","eventPhase","canDispatch","queue","reverse","node","_matches","matched","observers","len1","capture","events","fire","bubbles","cancelable","navigator","userAgent","devicePixelRatio","elements_selector","container","thresholds","data_src","data_srcset","data_sizes","data_bg","data_bg_hidpi","data_bg_multi","data_bg_multi_hidpi","data_bg_set","data_poster","class_applied","class_loading","class_loaded","class_error","class_entered","class_exited","unobserve_completed","unobserve_entered","cancel_on_exit","callback_enter","callback_exit","callback_applied","callback_loading","callback_loaded","callback_error","callback_finish","callback_cancel","use_native","restore_on_error","createEvent","initCustomEvent","d","g","h","p","f","v","E","I","removeAttribute","y","A","L","w","x","C","O","llTempImage","M","_observer","unobserve","z","loadingCount","N","toLoadCount","T","R","G","D","H","V","F","B","J","S","P","U","$","q","K","Q","IMG","IFRAME","VIDEO","load","OBJECT","W","X","Y","llEvLisnrs","Z","ee","te","ae","ne","se","indexOf","backgroundImage","le","oe","re","ie","de","ce","HTMLImageElement","_e","isIntersecting","intersectionRatio","ue","ge","be","he","me","_settings","IntersectionObserver","root","rootMargin","_onlineHandler","loadAll","disconnect","observe","destroy","restoreAll","resetStatus","lazyLoadOptions","extendParams","emit","getEl","res","hostEl","uniqueNavElements","toggleEl","subEl","disabledClass","watchOverflow","enabled","isLocked","lockClass","isBeginning","rewind","isEnd","onPrevClick","onNextClick","originalParams","initButton","dir","destroyButton","hideOnClick","hiddenClass","navigationDisabledClass","disable","_s","targetEl","targetIsButton","includes","path","composedPath","find","pathEl","pagination","clickable","isHidden","toggle","enable","createElementIfNotDefined","checkProps","createElements","auto","isObject","constructor","extend","ssrDocument","activeElement","blur","initEvent","childNodes","getElementsByTagName","createElementNS","importNode","hash","host","hostname","origin","pathname","protocol","getDocument","doc","ssrWindow","history","replaceState","pushState","go","back","Image","Date","screen","matchMedia","cancelAnimationFrame","getWindow","win","support","deviceCached","browser","getSupport","smoothScroll","touch","DocumentTouch","calcSupport","getDevice","overrides","_temp","platform","ua","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","needPerspectiveFix","isSafari","toLowerCase","String","major","minor","num","isWebView","isSafariBrowser","need3dFix","calcBrowser","eventsEmitter","handler","priority","self","eventsListeners","destroyed","once","onceHandler","__emitterProxy","_len","_key","onAny","eventsAnyListeners","offAny","eventHandler","_len2","_key2","isArray","toggleSlideClasses$1","condition","toggleSlideClasses","processLazyPreloader","imageEl","slideClass","lazyEl","lazyPreloaderClass","shadowRoot","unlazy","preload","amount","lazyPreloadPrevNext","slidesPerViewDynamic","ceil","grid","rows","activeColumn","preloadColumns","column","slideIndexLastInView","realIndex","updateSize","clientWidth","isHorizontal","isVertical","parseInt","updateSlides","getDirectionPropertyValue","label","getDirectionLabel","wrapperEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","previousSlidesLength","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","cssMode","gridEnabled","slideSize","initSlides","unsetSlides","shouldResetSlideSize","slide","updateSlide","slideStyles","currentTransform","transform","currentWebKitTransform","webkitTransform","roundLengths","paddingLeft","paddingRight","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","checkOverflow","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","speed","activeSlides","newHeight","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","translate","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","slideVisibleClass","slideFullyVisibleClass","progress","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","activeSlide","slideActiveClass","slideNextClass","slidePrevClass","emitSlidesClasses","updateActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","firstSlideInColumn","activeSlideIndex","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","slideToClickedSlide","getTranslate","axis","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","targetPosition","side","scrollTo","onTranslateToWrapperTransitionEnd","transitionEmit","step","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","transitionEnd","scrollSnapType","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","targetSlideIndex","cols","needLoopFix","loopFix","slideRealIndex","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","_clientLeft","clientLeft","normalize","val","normalizedSnapGrid","isFreeMode","freeMode","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","currentSnap","slideToIndex","slideSelector","getSlideIndex","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","slideBlankClass","loopAddBlankSlides","byMousewheel","loopAdditionalSlides","fill","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","__preventObserver__","swiperLoopMoveDOM","currentSlideTranslate","touchEventsData","startTranslate","shift","controller","control","loopParams","newSlidesOrder","swiperSlideIndex","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","innerWidth","onTouchStart","originalEvent","pointerId","targetTouches","touchId","identifier","pageX","touches","simulateTouch","pointerType","touchEventsTarget","which","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","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","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","previousX","previousY","diffX","diffY","sqrt","touchAngle","atan2","PI","preventTouchMoveFromPointerMove","touchMoveStopPropagation","nested","stopPropagation","touchesDiff","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowLoopFix","evt","bySwiperTouchMove","allowMomentumBounce","grabCursor","setGrabCursor","getTime","_loopSwapReset","loopSwapReset","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","resizeTimeout","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","scrollLeft","scrollTop","onLoad","onDocumentTouchStart","documentTouchHandlerProceeded","touchAction","domMethod","swiperMethod","passive","updateOnWindowResize","isGridEnabled","defaults","swiperElementNodeName","resizeObserver","eventsPrefix","url","breakpointsBase","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","prototypes","transition","transitionDelay","moving","cursor","unsetGrabCursor","attachEvents","detachEvents","breakpointContainer","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","wasMultiRow","isMultiRow","wasGrabCursor","isGrabCursor","wasEnabled","emitContainerClasses","prop","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","wasLocked","lastSlideRightEdge","classes","addClasses","classNames","suffixes","entries","prefix","resultClasses","prepareClasses","removeClasses","extendedDefaults","toString","swipers","newParams","__swiper__","__modules__","mod","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","property","setProgress","current","cls","getSlideClasses","updates","view","exact","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","getWrapperSelector","getWrapper","slideSlots","lazyElements","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","prototypeGroup","protoMethod","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","attach","options","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","deleteProps","object","nextTick","delay","now","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","to","noExtend","nextSource","keysArray","nextIndex","nextKey","desc","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","startPosition","time","startTime","cssModeFrameID","isOutOfBound","animate","easeProgress","cos","currentPosition","elementChildren","HTMLSlotElement","assignedElements","elementIsChildOf","parent","isChild","slot","elementsQueue","elementToCheck","elementIsChildOfSlot","showWarning","warn","err","tag","classesToTokens","elementPrevAll","prevEls","previousElementSibling","prev","elementNextAll","nextEls","next","elementStyle","elementIndex","child","previousSibling","elementParents","parents","elementOuterSize","includeMargins","makeElementsArray","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","__esModule","getPrototypeOf","mode","ns","def","getOwnPropertyNames","definition","chunkId","all","reduce","promises","globalThis","Function","hasOwnProperty","done","needAttach","scripts","charset","nc","onScriptComplete","onerror","doneFns","head","Symbol","toStringTag","installedChunks","installedChunkData","promise","reject","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","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","moveDirection","total","firstIndex","midIndex","classesToRemove","suffix","flat","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","fractionEl","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","paginationHTML","numberOfBullets","initObserver","sentinel","onFunction","offFunction","api","converter","defaultAttributes","expires","toUTCString","encodeURIComponent","decodeURIComponent","escape","stringifiedAttributes","attributeName","cookie","write","cookies","jar","parts","read","withAttributes","withConverter","freeze","COOKIE_PRIVACY_NAME","refreshConsentTable","consents","consent_table","consent","privacySettings","links","description","privacyBox","logoUrl","consentsHtml","mandatory","linksHtml","link","anchor","showPrivacyBox","showPrivacyBoxTrigger","privacyBoxTrigger","checker","cookieSentinel","saveUserPreferences","list","consentsList","Cookies","updateItem","ad_storage","ad_user_data","ad_personalization","analytics_storage","functionality_storage","security_storage","gtag","pageContainer","updateCssCircle","percentScrolled","scrollY","scrollHeight","COOKIE_NEWSLETTER_POPUP","filterGroups","pillsContainer","priceFiltering","priceFrom","priceTo","priceGroup","priceGroupInnerHtml","filterGroup","selectedParams","filterGroupHeadline","firstElementChild","selectedParamsString","param","pillsGroup","pillsGroupInnerHtml","childElementCount","removeButton","MAX_ITEMS","wishlistCookie","array","draw","wishlistItem","pid","arrayItem","wishlistLink","date","dp","selectedLabelItem","selectedSpanText","selectedButton","pjaxFormSubmit","parse","POLL_VOTED_IDS","searchStorage","localStorage","searchStorageItems","getItem","manageSearchStorage","enteredValue","pop","setItem","itemExisting","workSection","navBar","allHeaders","viewportUpdateLines","middleUpdateLine","scrollingFromClick","getLikelyHeaderIndex","likelyHeaderIndex","stickyOffset","previousSmallest","Infinity","rect","getBoundingClientRect","distanceToTop","top","bottom","setButtonColor","indexToColor","indexFromClick","allButtons","containerLeft","containerRight","buttonLeft","buttonRight","makeNextVisibleOffset","left","scrollNavBar","initConsent","currentPreferences","parsedPreferences","Fancybox","autoFocus","trapFocus","placeFocusBack","groupAll","hideScrollbar","cartDeliveryPoints","cartCommands","cartManagement","cartStepBubbles","Pjax","scrollRestoration","cacheBust","switches","xhr","createPills","wishlist","dropdownPicker","filterBottomButton","getResponseHeader","navigationSorter","dropdownPickerType","pillId","noUiSlider","handles","handlesSlider","inputMin","inputMax","settings","range","start","values","handle","round","filterContainer","allFiltersLabels","filterLabel","charAt","every","countItems","amountHandler","bannersProductCard","availabilityTrigger","requestBody","OptionId","email","optionId","availabilityPopup","moduleEnabled","dataset","descNavigation","insertAdjacentHTML","entry","initNavBarObserver","navButton","singleHeader","innerText","buttonClickActions","createSlider","conf","advSearchCategoryDropdown","advSearchProducerDropdown","requestObject","categoryId","mmin","mmax","startingOption","producers","option","advancedSearch","performance","mark","lazy","slider1","slider3","banners","orderInfo","tree","toClick","span","toShow","sorter","createFilterSorter","filterSorter","insertAdjacentElement","strong","modal","standardNewsletter","buttonEvents","fetchPoll","buildPoll","pollData","pollId","Id","pollQuestion","Name","pollAnswers","Items","alreadyVoted","checkInStorage","PercentageVotes","answer","Question","pollVoteId","currentPoll","existing","appendToStorage","poll","polls","winWidth","updateWidth","menuRwdWrapper","mainmenu","closestUl","wrappingUl","nextUl","parentName","parentUrl","searchEngineTrigger","searchEngineClose","focus","rwd","treeLi","dataCount","aElem","smallElem","treeboxCount","iframeItem","iframeUrl","widgetFacebook","newsletter","newsletterPopup","newsletterSavePopupSettings","pageType","days","mainText","subText","imgUrl","newsletterClause","recaptchaEnabled","dataSitekey","onCloseNewsletterCookieModal","onShowNewsletterCookieModal","newsletterCookie","privacyCookie","newsletterForceShow","html","newsletterCookieModal","eventItem","Add","Remove","debug","EcommerceItem","EcommerceItemJson","Price","dataLayer","ecommerce","fbq","content_type","content_ids","item_id","Amount","requestAddons","dataCart","RedirectToUrl","ProductUrl","HtmlResponse","gsTab","gsTabIdx","productsListTabs","nav","plt","idx","title","buttons","searchEngine","searchInput","searchForm","suggestions","productsWrapper","producersWrapper","categoriesWrapper","fillSuggestions","products","categories","price","query","lastSearched","lastPhrasesWrapper","createTextNode","outerWidth","clickedItem","removeItem","questionForm","showcases","showcase","showcaseId","showcasePoints","Points","img","initShowcasePoints","showcaseCanvas","tippyInstances","Url","Description","singlePoint","Top","Left","allowHTML","interactive","placement","arrow","animation","hideAll","exclude","returnButton","createReturnButton","debounceTimeout","trackScrollAmount","trackSentinel","returnToTop","players","Vimeo","player","Player","exponea","track","video_name","play","videoPlaceholders","headerSentinel","toValidateList","LazyLoad","delegate","threadMessages","linkifiedText","consentBar"],"sourceRoot":""}