{"version":3,"file":"financetab.c7859af9b3338fcd246e.js","mappings":"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","sources":["webpack://gak.frontend/./ReskinScripts/Debounce.js","webpack://gak.frontend/./ReskinScripts/cookie-consent.js","webpack://gak.frontend/./ReskinScripts/enhanced-ecommerce.js","webpack://gak.frontend/./ReskinScripts/price-formatter.js","webpack://gak.frontend/./ReskinScripts/tracking-scripts.js","webpack://gak.frontend/./node_modules/tabbyjs/dist/js/tabby.min.js","webpack://gak.frontend/./ReskinScripts/common.ts","webpack://gak.frontend/./node_modules/@stripe/stripe-js/dist/stripe.esm.js","webpack://gak.frontend/./ReskinScripts/gak-DeliveryOptions.ts","webpack://gak.frontend/./ReskinScripts/gak-DeliveryOptions-persist.js","webpack://gak.frontend/./node_modules/@paypal/paypal-js/dist/esm/paypal-js.js","webpack://gak.frontend/./ReskinScripts/gak-PayPalButton.ts","webpack://gak.frontend/./ReskinScripts/price-helper.ts","webpack://gak.frontend/./ReskinScripts/gak-ProductDetail.ts","webpack://gak.frontend/./ReskinScripts/gak-ShoppingBasket.ts","webpack://gak.frontend/./ReskinScripts/shopping-basket-panel.ts","webpack://gak.frontend/./ReskinScripts/tabs.ts","webpack://gak.frontend/./ReskinScripts/utils.ts","webpack://gak.frontend/./node_modules/vue-slider-component/dist/index.js","webpack://gak.frontend/./node_modules/vue/dist/vue.min.js","webpack://gak.frontend/./node_modules/ssr-window/ssr-window.esm.js","webpack://gak.frontend/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://gak.frontend/./node_modules/swiper/core/breakpoints/index.js","webpack://gak.frontend/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://gak.frontend/./node_modules/swiper/core/check-overflow/index.js","webpack://gak.frontend/./node_modules/swiper/core/classes/addClasses.js","webpack://gak.frontend/./node_modules/swiper/core/classes/index.js","webpack://gak.frontend/./node_modules/swiper/core/classes/removeClasses.js","webpack://gak.frontend/./node_modules/swiper/core/core.js","webpack://gak.frontend/./node_modules/swiper/core/defaults.js","webpack://gak.frontend/./node_modules/swiper/core/events-emitter.js","webpack://gak.frontend/./node_modules/swiper/core/events/index.js","webpack://gak.frontend/./node_modules/swiper/core/events/onClick.js","webpack://gak.frontend/./node_modules/swiper/core/events/onLoad.js","webpack://gak.frontend/./node_modules/swiper/core/events/onResize.js","webpack://gak.frontend/./node_modules/swiper/core/events/onScroll.js","webpack://gak.frontend/./node_modules/swiper/core/events/onTouchEnd.js","webpack://gak.frontend/./node_modules/swiper/core/events/onTouchMove.js","webpack://gak.frontend/./node_modules/swiper/core/events/onTouchStart.js","webpack://gak.frontend/./node_modules/swiper/core/grab-cursor/index.js","webpack://gak.frontend/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://gak.frontend/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://gak.frontend/./node_modules/swiper/core/loop/index.js","webpack://gak.frontend/./node_modules/swiper/core/loop/loopCreate.js","webpack://gak.frontend/./node_modules/swiper/core/loop/loopDestroy.js","webpack://gak.frontend/./node_modules/swiper/core/loop/loopFix.js","webpack://gak.frontend/./node_modules/swiper/core/moduleExtendParams.js","webpack://gak.frontend/./node_modules/swiper/core/modules/observer/observer.js","webpack://gak.frontend/./node_modules/swiper/core/modules/resize/resize.js","webpack://gak.frontend/./node_modules/swiper/core/slide/index.js","webpack://gak.frontend/./node_modules/swiper/core/slide/slideNext.js","webpack://gak.frontend/./node_modules/swiper/core/slide/slidePrev.js","webpack://gak.frontend/./node_modules/swiper/core/slide/slideReset.js","webpack://gak.frontend/./node_modules/swiper/core/slide/slideTo.js","webpack://gak.frontend/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://gak.frontend/./node_modules/swiper/core/slide/slideToClosest.js","webpack://gak.frontend/./node_modules/swiper/core/slide/slideToLoop.js","webpack://gak.frontend/./node_modules/swiper/core/transition/index.js","webpack://gak.frontend/./node_modules/swiper/core/transition/setTransition.js","webpack://gak.frontend/./node_modules/swiper/core/transition/transitionEmit.js","webpack://gak.frontend/./node_modules/swiper/core/transition/transitionEnd.js","webpack://gak.frontend/./node_modules/swiper/core/transition/transitionStart.js","webpack://gak.frontend/./node_modules/swiper/core/translate/getTranslate.js","webpack://gak.frontend/./node_modules/swiper/core/translate/index.js","webpack://gak.frontend/./node_modules/swiper/core/translate/maxTranslate.js","webpack://gak.frontend/./node_modules/swiper/core/translate/minTranslate.js","webpack://gak.frontend/./node_modules/swiper/core/translate/setTranslate.js","webpack://gak.frontend/./node_modules/swiper/core/translate/translateTo.js","webpack://gak.frontend/./node_modules/swiper/core/update/index.js","webpack://gak.frontend/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://gak.frontend/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://gak.frontend/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://gak.frontend/./node_modules/swiper/core/update/updateProgress.js","webpack://gak.frontend/./node_modules/swiper/core/update/updateSize.js","webpack://gak.frontend/./node_modules/swiper/core/update/updateSlides.js","webpack://gak.frontend/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://gak.frontend/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://gak.frontend/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://gak.frontend/./node_modules/swiper/modules/navigation/navigation.js","webpack://gak.frontend/./node_modules/swiper/modules/pagination/pagination.js","webpack://gak.frontend/./node_modules/swiper/modules/thumbs/thumbs.js","webpack://gak.frontend/./node_modules/swiper/modules/zoom/zoom.js","webpack://gak.frontend/./node_modules/swiper/shared/classes-to-selector.js","webpack://gak.frontend/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://gak.frontend/./node_modules/swiper/shared/get-browser.js","webpack://gak.frontend/./node_modules/swiper/shared/get-device.js","webpack://gak.frontend/./node_modules/swiper/shared/get-support.js","webpack://gak.frontend/./node_modules/swiper/shared/process-lazy-preloader.js","webpack://gak.frontend/./node_modules/swiper/shared/utils.js","webpack://gak.frontend/webpack/bootstrap","webpack://gak.frontend/webpack/runtime/compat get default export","webpack://gak.frontend/webpack/runtime/define property getters","webpack://gak.frontend/webpack/runtime/global","webpack://gak.frontend/webpack/runtime/hasOwnProperty shorthand","webpack://gak.frontend/./ReskinScripts/NewV12Implementation.ts"],"sourcesContent":["/*\r\n * Debounce (with a few helpers as local functions, changes to remove dependencies)\r\n * extracted from Lohash (V4.17.4)\r\n * LoHash:\r\n * Copyright JS Foundation and other contributors \r\n * Released under MIT license \r\n */\r\n\r\n/**\r\n * Creates a debounced function that delays invoking `func` until after `wait`\r\n * milliseconds have elapsed since the last time the debounced function was\r\n * invoked. The debounced function comes with a `cancel` method to cancel\r\n * delayed `func` invocations and a `flush` method to immediately invoke them.\r\n * Provide `options` to indicate whether `func` should be invoked on the\r\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\r\n * with the last arguments provided to the debounced function. Subsequent\r\n * calls to the debounced function return the result of the last `func`\r\n * invocation.\r\n *\r\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\r\n * invoked on the trailing edge of the timeout only if the debounced function\r\n * is invoked more than once during the `wait` timeout.\r\n *\r\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\r\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\r\n *\r\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\r\n * for details over the differences between `_.debounce` and `_.throttle`.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @since 0.1.0\r\n * @category Function\r\n * @param {Function} func The function to debounce.\r\n * @param {number} [wait=0] The number of milliseconds to delay.\r\n * @param {Object} [options={}] The options object.\r\n * @param {boolean} [options.leading=false]\r\n * Specify invoking on the leading edge of the timeout.\r\n * @param {number} [options.maxWait]\r\n * The maximum time `func` is allowed to be delayed before it's invoked.\r\n * @param {boolean} [options.trailing=true]\r\n * Specify invoking on the trailing edge of the timeout.\r\n * @returns {Function} Returns the new debounced function.\r\n * @example\r\n *\r\n * // Avoid costly calculations while the window size is in flux.\r\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\r\n *\r\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\r\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\r\n * 'leading': true,\r\n * 'trailing': false\r\n * }));\r\n *\r\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\r\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\r\n * var source = new EventSource('/stream');\r\n * jQuery(source).on('message', debounced);\r\n *\r\n * // Cancel the trailing debounced invocation.\r\n * jQuery(window).on('popstate', debounced.cancel);\r\n */\r\nvar debounceScript = function debounce(func, wait, options) {\r\n var lastArgs,\r\n lastThis,\r\n maxWait,\r\n result,\r\n timerId,\r\n lastCallTime,\r\n lastInvokeTime = 0,\r\n leading = false,\r\n maxing = false,\r\n trailing = true;\r\n\r\n function toNumber(value) {\r\n if (typeof value == 'Number') {\r\n return value;\r\n } else {\r\n var v = parseInt(value);\r\n return isNaN(v) ? 0 : v;\r\n }\r\n }\r\n function isObject(value) {\r\n var type = typeof value;\r\n return value != null && (type == 'object' || type == 'function');\r\n }\r\n function now() {\r\n return Date.now();\r\n }\r\n\r\n if (typeof func != 'function') {\r\n throw \"debounce: param 'func' must be a function\";\r\n }\r\n wait = toNumber(wait) || 0;\r\n\r\n if (isObject(options)) {\r\n leading = !!options.leading;\r\n maxing = 'maxWait' in options;\r\n maxWait = maxing ? Math.max(toNumber(options.maxWait) || 0, wait) : maxWait;\r\n trailing = 'trailing' in options ? !!options.trailing : trailing;\r\n }\r\n\r\n function invokeFunc(time) {\r\n var args = lastArgs,\r\n thisArg = lastThis;\r\n\r\n lastArgs = lastThis = undefined;\r\n lastInvokeTime = time;\r\n result = func.apply(thisArg, args);\r\n return result;\r\n }\r\n\r\n function leadingEdge(time) {\r\n // Reset any `maxWait` timer.\r\n lastInvokeTime = time;\r\n // Start the timer for the trailing edge.\r\n timerId = setTimeout(timerExpired, wait);\r\n // Invoke the leading edge.\r\n return leading ? invokeFunc(time) : result;\r\n }\r\n\r\n function remainingWait(time) {\r\n var timeSinceLastCall = time - lastCallTime,\r\n timeSinceLastInvoke = time - lastInvokeTime,\r\n result = wait - timeSinceLastCall;\r\n\r\n return maxing ? Math.min(result, maxWait - timeSinceLastInvoke) : result;\r\n }\r\n\r\n function shouldInvoke(time) {\r\n var timeSinceLastCall = time - lastCallTime,\r\n timeSinceLastInvoke = time - lastInvokeTime;\r\n\r\n // Either this is the first call, activity has stopped and we're at the\r\n // trailing edge, the system time has gone backwards and we're treating\r\n // it as the trailing edge, or we've hit the `maxWait` limit.\r\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\r\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\r\n }\r\n\r\n function timerExpired() {\r\n var time = now();\r\n if (shouldInvoke(time)) {\r\n return trailingEdge(time);\r\n }\r\n // Restart the timer.\r\n timerId = setTimeout(timerExpired, remainingWait(time));\r\n }\r\n\r\n function trailingEdge(time) {\r\n timerId = undefined;\r\n\r\n // Only invoke if we have `lastArgs` which means `func` has been\r\n // debounced at least once.\r\n if (trailing && lastArgs) {\r\n return invokeFunc(time);\r\n }\r\n lastArgs = lastThis = undefined;\r\n return result;\r\n }\r\n\r\n function cancel() {\r\n if (timerId !== undefined) {\r\n clearTimeout(timerId);\r\n }\r\n lastInvokeTime = 0;\r\n lastArgs = lastCallTime = lastThis = timerId = undefined;\r\n }\r\n\r\n function flush() {\r\n return timerId === undefined ? result : trailingEdge(now());\r\n }\r\n\r\n function debounced() {\r\n\r\n var time = now(),\r\n isInvoking = shouldInvoke(time);\r\n\r\n lastArgs = arguments;\r\n lastThis = this;\r\n lastCallTime = time;\r\n\r\n if (isInvoking) {\r\n if (timerId === undefined) {\r\n return leadingEdge(lastCallTime);\r\n }\r\n if (maxing) {\r\n // Handle invocations in a tight loop.\r\n timerId = setTimeout(timerExpired, wait);\r\n return invokeFunc(lastCallTime);\r\n }\r\n }\r\n if (timerId === undefined) {\r\n timerId = setTimeout(timerExpired, wait);\r\n }\r\n return result;\r\n }\r\n debounced.cancel = cancel;\r\n debounced.flush = flush;\r\n return debounced;\r\n}\r\n\r\n\r\n\r\nexport { debounceScript }","var CookieConsentService = {\r\n CookieConsentKey: \"\",\r\n EnableImpliedCookieConsent: false,\r\n didConsentToAllCookies: function () {\r\n //Logic shared with MvcExtensions.DidConsentToCookie\r\n //Please keep in sync\r\n \r\n if (this.CookieConsentKey === \"\") {\r\n //console.log(\"Cookie consent key was not set\");\r\n return false;\r\n }\r\n\r\n var cookieSettings = this.getCookieSettings();\r\n\r\n var didConsent = cookieSettings.didConsentToAllManually ||\r\n (this.EnableImpliedCookieConsent && cookieSettings.didConsentImplicitly && !cookieSettings.didConsentToEssentialManually);\r\n return didConsent;\r\n },\r\n shouldShowCookieBanner: function () {\r\n var cookieSettings = this.getCookieSettings();\r\n\r\n return (this.EnableImpliedCookieConsent && cookieSettings.shouldShowImpliedCookieBanner) ||\r\n (!this.EnableImpliedCookieConsent && cookieSettings.shouldShowCookieBanner);\r\n },\r\n clearAllCookiesIfConsentNotGiven: function () {\r\n //Clearing all cookies but consent cookie and essential cookies\r\n var cookieSettings = this.getCookieSettings();\r\n\r\n if (!this.didConsentToAllCookies()) {\r\n var cookies = document.cookie.split(\";\");\r\n for (var cookie in cookies) {\r\n if (cookie !== this.CookieConsentKey && cookieSettings.essentialCookies.indexOf(cookie) == -1) {\r\n deleteCookie(cookie);\r\n }\r\n }\r\n }\r\n },\r\n getCookieSettings: function () {\r\n //Logic shared with MvcExtensions.DidConsentToCookie\r\n //Please keep in sync\r\n var result = {\r\n didConsentImplicitly: this.EnableImpliedCookieConsent,\r\n didConsentToAllManually: false,\r\n didConsentToEssentialManually: false,\r\n shouldShowCookieBanner: true,\r\n shouldShowImpliedCookieBanner: true,\r\n essentialCookies: [\"pdt\", \"GAK_ShoppinBasket\", \"GAK_CookieConsent\", \"GAK_SearchRef\",\r\n \"GAK_VoucherPromoPopup\", \"LocationId\", \"ChannelID\", \"__RequestVerificationToken\",\r\n \"GAK_FinanceOptions\", \"amazon-pay-connectedAuth\", \"apay-session-set\",\r\n \"GAK_FE_Email\", \".AspNet.ApplicationCookie\"]\r\n };\r\n\r\n ///Returning boolValue if it's a bool, fallbackBool otherwise\r\n function getSafeBool(boolValue, fallbackBool) {\r\n if (typeof (boolValue) === \"boolean\") {\r\n return boolValue;\r\n }\r\n\r\n return fallbackBool;\r\n }\r\n\r\n try {\r\n var consentCookie = unescape(getCookie(this.CookieConsentKey));\r\n var cookieObj = JSON.parse(consentCookie);\r\n\r\n if (cookieObj === true) {\r\n result.didConsentImplicitly = true;\r\n result.didConsentToAllManually = false;\r\n result.didConsentToEssentialManually = true;\r\n result.shouldShowCookieBanner = false;\r\n result.shouldShowImpliedCookieBanner = false;\r\n }\r\n else if (cookieObj != null && typeof (cookieObj) === \"object\") {\r\n result.didConsentImplicitly = getSafeBool(cookieObj.didConsentImplicitly, result.didConsentImplicitly);\r\n result.didConsentToAllManually = getSafeBool(cookieObj.didConsentToAllManually, result.didConsentToAllManually);\r\n result.didConsentToEssentialManually = getSafeBool(cookieObj.didConsentToEssentialManually, result.didConsentToEssentialManually);\r\n result.shouldShowCookieBanner = getSafeBool(cookieObj.shouldShowCookieBanner, result.shouldShowCookieBanner);\r\n result.shouldShowImpliedCookieBanner = getSafeBool(cookieObj.shouldShowImpliedCookieBanner, result.shouldShowImpliedCookieBanner);\r\n }\r\n\r\n } catch (e) {\r\n //In case of exception assume cookie doesn't exist\r\n //Nothing to do\r\n }\r\n\r\n return result;\r\n },\r\n onManuallyConsentToAllCookies: function () {\r\n var settings = CookieConsentService.getCookieSettings();\r\n settings.didConsentToAllManually = true;\r\n settings.didConsentImplicitly = true;\r\n settings.shouldShowCookieBanner = false;\r\n settings.shouldShowImpliedCookieBanner = false;\r\n\r\n CookieConsentService.saveCookieConsent(settings);\r\n },\r\n onManuallyConsentToEssentialCookies: function () {\r\n var settings = CookieConsentService.getCookieSettings();\r\n settings.didConsentToAllManually = false;\r\n settings.didConsentToEssentialManually = true;\r\n settings.didConsentImplicitly = true;\r\n settings.shouldShowCookieBanner = false;\r\n settings.shouldShowImpliedCookieBanner = false;\r\n\r\n CookieConsentService.saveCookieConsent(settings);\r\n },\r\n onHideImpliedConsentBanner: function () {\r\n var settings = CookieConsentService.getCookieSettings();\r\n settings.didConsentImplicitly = true;\r\n settings.shouldShowImpliedCookieBanner = false;\r\n\r\n CookieConsentService.saveCookieConsent(settings);\r\n },\r\n onRevokeConsent: function () {\r\n confirm(\"Checkout cannot work without cookies.
Are you sure you want to revoke your cookie consent?\",\r\n function (didConfirm) {\r\n if (didConfirm) {\r\n var settings = CookieConsentService.getCookieSettings();\r\n settings.didConsentToAllManually = false;\r\n settings.didConsentImplicitly = false;\r\n settings.shouldShowCookieBanner = true;\r\n settings.shouldShowImpliedCookieBanner = true;\r\n\r\n CookieConsentService.saveCookieConsent(settings);\r\n }\r\n },\r\n \"Cookie consent\",\r\n \"REVOKE CONSENT\",\r\n \"CANCEL\");\r\n },\r\n saveCookieConsent: function (consentSettings) {\r\n if (this.CookieConsentKey === \"\") {\r\n //console.log(\"Cookie consent key was not set\");\r\n return;\r\n }\r\n\r\n var settingsJson = JSON.stringify(consentSettings);\r\n\r\n //Checking if settings changed\r\n //If changed, cookie will be set and page reloaded\r\n var consentCookie = getCookie(this.CookieConsentKey);\r\n if (settingsJson !== consentCookie) {\r\n setCookie(this.CookieConsentKey, settingsJson, 730);\r\n }\r\n },\r\n showConsentModal: function () {\r\n var message = \"This feature is not available without cookie consent.\" +\r\n \"Learn more\";\r\n var title = \"Consent to cookies\";\r\n\r\n confirm(message, function (didNotConsent) {\r\n //We're inversing button names and hence meaning so that Consent is shown as blue (ie: safe option)\r\n if (!didNotConsent) {\r\n CookieConsentService.onManuallyConsentToAllCookies();\r\n }\r\n },\r\n title,\r\n \"CLOSE\",\r\n \"ACCEPT & CLOSE\",\r\n //Hiding close button for express consent\r\n //Putting back close button will also need extra work since \r\n //close and 'Consent to cookies' will have same meaning\r\n false);\r\n }\r\n};\r\n\r\n//Cookie consent bindings\r\n\r\n//Preventing redirect\r\n\r\nfunction ConsentBinding(event) {\r\n //TODO: improve on design so that instead of refresh we redirect to basket/account login\r\n if (!CookieConsentService.didConsentToAllCookies()) {\r\n //Preventing redirect\r\n event.preventDefault();\r\n\r\n CookieConsentService.showConsentModal();\r\n }\r\n}\r\n\r\n//document.getElementById(\"basketLink\").addEventListener(ConsentBinding);\r\n//document.getElementById(\"accountLoginLink\").addEventListener(ConsentBinding);\r\n\r\n//End - cookie consent bindings\r\nconst deleteCookie = (name) => {\r\n document.cookie = name + \"=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;\";\r\n};\r\n\r\nfunction getCookie(cookieName) {\r\n let cookie = {};\r\n document.cookie.split(';').forEach(function (el) {\r\n let [key, value] = el.split('=');\r\n cookie[key.trim()] = value;\r\n })\r\n return cookie[cookieName];\r\n}\r\n\r\nfunction setCookie(name, value, days) {\r\n var expires = \"\";\r\n if (days) {\r\n var date = new Date();\r\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\r\n expires = \"; expires=\" + date.toUTCString();\r\n }\r\n document.cookie = name + \"=\" + (value || \"\") + expires + \"; path=/\";\r\n}\r\n\r\n\r\n\r\nexport { CookieConsentService }\r\n\r\n","var elements = document.getElementsByClassName(\"product-card\");\r\nvar productDetailsEl = document.getElementsByClassName(\"pdp-basket\").item(0);\r\n\r\nvar pushEnhancedEcommerce = function () {\r\n pushEcommerce();\r\n}\r\n\r\nfunction getProductDetails() {\r\n if (productDetailsEl) {\r\n return getProductDetailObj(productDetailsEl);\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction getProductDetailObj(el) {\r\n var productObj =\r\n {\r\n 'name': el.getAttribute(\"data-name\"),\r\n 'id': el.getAttribute(\"data-google-product-id\")\r\n ?? el.getAttribute(\"data-product-id\")\r\n ?? el.getAttribute(\"data-id\"),\r\n 'internalId': el.getAttribute(\"data-product-id\") ?? el.getAttribute(\"data-id\"),\r\n 'price': el.getAttribute(\"data-price\"),\r\n 'brand': el.getAttribute(\"data-brand\"),\r\n 'category': el.getAttribute(\"data-category\")\r\n };\r\n\r\n return productObj;\r\n}\r\n\r\nfunction getProductObj(el) {\r\n var productObj =\r\n {\r\n 'name': el.getAttribute(\"data-name\"),\r\n 'id': el.getAttribute(\"data-google-product-id\") \r\n ?? el.getAttribute(\"data-product-id\")\r\n ?? el.getAttribute(\"data-id\"),\r\n 'internalId': el.getAttribute(\"data-product-id\") ?? el.getAttribute(\"data-id\"),\r\n 'price': el.getAttribute(\"data-price\"),\r\n 'brand': el.getAttribute(\"data-brand\"),\r\n 'category': el.getAttribute(\"data-category\"),\r\n 'position': el.getAttribute(\"data-position\"),\r\n 'list': el.getAttribute(\"data-list\")\r\n };\r\n\r\n return productObj;\r\n}\r\n\r\nfunction pushEcommerce() {\r\n var products = getProducts();\r\n var promotions = getPromotions();\r\n var productDetails = getProductDetails();\r\n\r\n var ecommerceObj = {\r\n ecommerce: {\r\n currencyCode: 'GBP'\r\n },\r\n }\r\n\r\n if (products.length > 0) {\r\n ecommerceObj.ecommerce.eec = {\r\n impressionView: { products }\r\n };\r\n }\r\n\r\n if (promotions.length > 0) {\r\n ecommerceObj.ecommerce.eec.promoView = {\r\n promoView: { promotions: promotions }\r\n };\r\n }\r\n\r\n if (productDetails != null) {\r\n ecommerceObj.ecommerce.eec = {\r\n detail: { products: [productDetails] }\r\n };\r\n }\r\n\r\n dataLayer.push({ ecommerce: null });\r\n dataLayer.push(ecommerceObj);\r\n}\r\n\r\nfunction getProducts() {\r\n var products = [];\r\n\r\n for (var i = 0; i < elements.length; i++) {\r\n elements[i].addEventListener('click', onProductClick);\r\n\r\n products.push(getProductObj(elements[i]));\r\n }\r\n\r\n return products;\r\n}\r\n\r\nfunction onProductClick(e) {\r\n e.preventDefault();\r\n\r\n var el = e.currentTarget;\r\n var productObj = getProductObj(el);\r\n var productUrl = el.getAttribute(\"href\");\r\n\r\n pushProductClick(productObj, productUrl);\r\n}\r\n\r\nfunction getPromotions() {\r\n var banners = document.querySelector('a.hero-banner');\r\n var promotionsObj = [];\r\n\r\n if (banners) {\r\n for (var i = 0; i < banners.length; i++) {\r\n banners[i].addEventListener('click', onBannerClick);\r\n\r\n promotionsObj.push(getPromotionObj(banners[i]));\r\n }\r\n }\r\n\r\n return promotionsObj;\r\n}\r\n\r\nfunction onBannerClick(e) {\r\n e.preventDefault();\r\n\r\n var el = e.currentTarget;\r\n var promotionObj = getPromotionObj(el);\r\n\r\n onPromoClick(promotionObj);\r\n}\r\n\r\nfunction getPromotionObj(el) {\r\n var promotionObj =\r\n {\r\n 'id': el.getAttribute(\"data-id\"),\r\n 'name': el.getAttribute(\"data-name\"),\r\n 'creative': el.getAttribute(\"data-creative\"),\r\n 'position': el.getAttribute(\"data-position\"),\r\n 'destinationUrl': el.getAttribute(\"href\")\r\n }\r\n\r\n return promotionObj;\r\n}\r\n\r\nfunction onPromoClick(promoObj) {\r\n dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.\r\n dataLayer.push({\r\n 'event': 'eec.promoClick',\r\n 'ecommerce': {\r\n 'promoClick': {\r\n 'promotions': [promoObj]\r\n }\r\n }\r\n });\r\n\r\n document.location = promoObj.destinationUrl;\r\n\r\n}\r\n\r\nfunction pushProductClick(productObj, productUrl) {\r\n dataLayer.push({ ecommerce: null });\r\n dataLayer.push({\r\n 'event': 'eec.productClick',\r\n 'ecommerce': {\r\n 'click': {\r\n 'products': [productObj]\r\n }\r\n }\r\n });\r\n\r\n if (productUrl)\r\n document.location = productUrl;\r\n}\r\n\r\nfunction pushAddToCart(productId, quantity = 1) {\r\n var product = getProductsToAddRemove(productId);\r\n product.quantity = quantity;\r\n\r\n dataLayer.push({ ecommerce: null });\r\n dataLayer.push({\r\n 'event': 'eec.addToCart',\r\n 'ecommerce': {\r\n 'add': {\r\n 'products': [product]\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction getProductsToAddRemove(productId) {\r\n var productContainer = document.querySelector(`[data-id=\"${productId}\"]`);\r\n\r\n if (!productContainer)\r\n productContainer = document.querySelector(`[data-product-id='${productId}']`);\r\n\r\n if (!productContainer)\r\n return;\r\n\r\n return getProductDetailObj(productContainer);\r\n}\r\n\r\nfunction pushRemoveFromCart(productId, quantity = 1) {\r\n var product = getProductsToAddRemove(productId);\r\n product.quantity = quantity;\r\n\r\n dataLayer.push({ ecommerce: null });\r\n dataLayer.push({\r\n 'event': 'eec.removeFromCart',\r\n 'ecommerce': {\r\n 'remove': {\r\n 'products': [product]\r\n }\r\n }\r\n });\r\n\r\n}\r\n\r\nfunction getCheckoutProducts() {\r\n var products = [];\r\n var el = document.getElementsByClassName(\"basket-item\");\r\n\r\n for (var i = 0; i < el.length; i++) {\r\n products.push(getProductDetailObj(el[i]));\r\n }\r\n\r\n return products;\r\n}\r\n\r\nfunction getBasketItems(step, option, basketItemsURL) {\r\n fetch(basketItemsURL, {\r\n method: \"POST\"\r\n }).then(response => response.json())\r\n .then(function (result) {\r\n var products = result.basketVm.Items;\r\n var basketContainer = document.getElementById(\"basketItemsContainer\");\r\n var ulElemen = document.createElement(\"ul\")\r\n var liElem = \"\";\r\n\r\n if (products) {\r\n products.forEach(function (item) {\r\n liElem +=\r\n `
  • \r\n
  • `\r\n });\r\n }\r\n\r\n ulElemen.innerHTML = liElem;\r\n basketContainer.append(ulElemen);\r\n pushCheckout(step, option);\r\n });\r\n}\r\n\r\nfunction onCheckout(step, option, basketItemsURL) {\r\n if (basketItemsURL) {\r\n getBasketItems(step, option, basketItemsURL);\r\n }\r\n else {\r\n pushCheckout(step, option);\r\n }\r\n}\r\n\r\nfunction pushCheckout(step, option) {\r\n var products = getCheckoutProducts();\r\n dataLayer.push({ ecommerce: null });\r\n\r\n var ecommerceObj = {\r\n event: 'eec.checkout',\r\n ecommerce: {\r\n checkout: {\r\n actionField: { step: step },\r\n }\r\n }\r\n }\r\n\r\n if (products && products.length > 0)\r\n ecommerceObj.ecommerce.checkout.products = products;\r\n\r\n if (option)\r\n ecommerceObj.ecommerce.checkout.actionField.option = option.toLowerCase();\r\n\r\n dataLayer.push(ecommerceObj);\r\n}\r\n\r\nfunction onCheckoutOption(step, checkoutOption) {\r\n dataLayer.push({ ecommerce: null });\r\n dataLayer.push({\r\n 'event': 'checkoutOption',\r\n 'ecommerce': {\r\n 'checkout_option': {\r\n 'actionField': { 'step': step, 'option': checkoutOption }\r\n }\r\n }\r\n });\r\n}\r\n\r\n\r\nfunction pushProductView() {\r\n dataLayer.push({ ecommerce: null });\r\n dataLayer.push({\r\n 'event': 'eec.detail',\r\n 'ecommerce': {\r\n 'detail': {\r\n 'products': [getProductDetailObj(productDetailsEl)]\r\n }\r\n }\r\n });\r\n}\r\n\r\nwindow.onload = function () {\r\n pushEcommerce();\r\n}\r\n\r\nexport { pushEnhancedEcommerce, pushAddToCart, pushRemoveFromCart, onCheckout, onCheckoutOption, pushProductView };","export function getFormattedPrice(myPrice, symbol, conversionRate) {\r\n var xPrice = parseFloat(myPrice);\r\n var formattedPrice = \"\";\r\n if (xPrice > 0) {\r\n formattedPrice = numberToCurrency(xPrice, symbol, conversionRate);\r\n }\r\n else {\r\n formattedPrice = \"FREE\";\r\n }\r\n return formattedPrice;\r\n};\r\n\r\nexport function numberToCurrency(number, symbol, conversionRate) {\r\n return symbol + (number * conversionRate).toFixed(2).replace(/\\d(?=(\\d{3})+\\.)/g, '$&,');\r\n};","var GoogleScriptsService = {\r\n addTagManager: function (id) {\r\n addScriptOnHead(`(function (w, d, s, l, i) {\r\n w[l] = w[l] || []; w[l].push({\r\n 'gtm.start':\r\n new Date().getTime(), event: 'gtm.js'\r\n }); var f = d.getElementsByTagName(s)[0],\r\n j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =\r\n '//www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);\r\n })(window, document, 'script', 'dataLayer', '${id}');`);\r\n },\r\n addOptmise: function (analyticsId, optmiseId) {\r\n //addScriptOnHead(`(function (i, s, o, g, r, a, m) {\r\n // i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {\r\n // (i[r].q = i[r].q || []).push(arguments)\r\n // }, i[r].l = 1 * new Date(); a = s.createElement(o),\r\n // m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)\r\n //})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');\r\n\r\n //ga('create', '${analyticsId}', 'auto');\r\n //ga('require', '${optmiseId}');`);\r\n },\r\n addConversionPage: function (paymentAmount) {\r\n addScriptOnBody(`gtag('event', 'conversion', {\r\n 'send_to': 'AW-1071972399/zlivCL7EpLoBEK-AlP8D',\r\n 'value': ${paymentAmount},\r\n 'currency': 'GBP',\r\n 'transaction_id': ''\r\n });`);\r\n },\r\n //commented as it was causing page flickers\r\n addAntiFlicker: function (id) {\r\n //addScriptOnHead(`(function(a,s,y,n,c,h,i,d,e){s.className += ' ' + y; h.start=1*new Date;\r\n // h.end=i=function(){s.className = s.className.replace(RegExp(' ?' + y), '')};\r\n // (a[n]=a[n]||[]).hide=h;setTimeout(function(){i(); h.end=null},c);h.timeout=c;\r\n // })(window,document.documentElement,'async-hide','dataLayer',4000,{'${id}': true});`);\r\n },\r\n consentGranted: function () {\r\n gtag('consent', 'update', {\r\n 'ad_storage': 'granted',\r\n 'analytics_storage': 'granted',\r\n 'security_storage': 'granted'\r\n });\r\n\r\n addScriptOnHead(`window.dataLayer.push({\r\n 'event': 'cookieConsent',\r\n 'consentStatus': true\r\n })`);\r\n\r\n },\r\n consentRevoked: function () {\r\n gtag('consent', 'update', {\r\n 'ad_storage': 'denied',\r\n 'analytics_storage': 'denied',\r\n 'security_storage': 'granted'\r\n });\r\n\r\n addScriptOnHead(`window.dataLayer.push({\r\n 'event': 'cookieConsent',\r\n 'consentStatus': false\r\n })`);\r\n\r\n },\r\n pushEvent: function (event) {\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push(event);\r\n }\r\n}\r\n\r\nvar FacebookScriptsService = {\r\n addFacebookTracking: function (isSearch) {\r\n addScriptOnBodyTop(`!function (f, b, e, v, n, t, s) {\r\n if (f.fbq) return; n = f.fbq = function () {\r\n n.callMethod ?\r\n n.callMethod.apply(n, arguments) : n.queue.push(arguments)\r\n };\r\n if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0';\r\n n.queue = []; t = b.createElement(e); t.async = !0;\r\n t.src = v; s = b.getElementsByTagName(e)[0];\r\n s.parentNode.insertBefore(t, s)\r\n }(window, document, 'script',\r\n 'https://connect.facebook.net/en_US/fbevents.js');\r\n fbq('init', '1755089831374739');\r\n fbq('track', 'PageView');`);\r\n },\r\n addFacebookEvent: function (event) {\r\n addScriptOnBody(`fbq('track', '${event}');`);\r\n },\r\n getFbq: function () {\r\n return fbq;\r\n }\r\n}\r\n\r\nvar BingScriptsService = {\r\n addBingTracking: function () {\r\n addScriptOnBody(`(function (w, d, t, r, u) { var f, n, i; w[u] = w[u] || [], f = function () { var o = { ti: \"5296147\" }; \r\n o.q = w[u], w[u] = new UET(o), w[u].push(\"pageLoad\") }, n = d.createElement(t), n.src = r, n.async = 1, n.onload = n.onreadystatechange = function () {\r\n var s = this.readyState; s && s !== \"loaded\" && s !== \"complete\" || (f(), n.onload = n.onreadystatechange = null) }, i = d.getElementsByTagName(t)[0], i.parentNode.insertBefore(n, i)\r\n })(window, document, \"script\", \"//bat.bing.com/bat.js\", \"uetq\");`)\r\n }\r\n}\r\n\r\nvar addScriptOnHead = function (script) {\r\n document.head.appendChild(createScriptElement(script));\r\n}\r\n\r\nvar addScriptOnBody = function (script) {\r\n document.body.appendChild(createScriptElement(script));\r\n}\r\n\r\n\r\nvar addScriptOnBodyTop = function (script) {\r\n document.body.insertBefore(createScriptElement(script), document.body.firstChild);\r\n}\r\n\r\nfunction createScriptElement(script) {\r\n var addDataLayer = document.createElement(\"script\");\r\n\r\n var dataLayerData = document.createTextNode(script);\r\n\r\n addDataLayer.appendChild(dataLayerData);\r\n return addDataLayer;\r\n}\r\n\r\nexport { GoogleScriptsService, FacebookScriptsService, BingScriptsService }","/*! tabbyjs v12.0.1 | (c) 2019 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/tabby */\nElement.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),(function(e,t){\"function\"==typeof define&&define.amd?define([],(function(){return t(e)})):\"object\"==typeof exports?module.exports=t(e):e.Tabby=t(e)})(\"undefined\"!=typeof global?global:\"undefined\"!=typeof window?window:this,(function(e){\"use strict\";var t={idPrefix:\"tabby-toggle_\",default:\"[data-tabby-default]\"},r=function(e){if(e&&\"true\"!=e.getAttribute(\"aria-selected\")){var t=document.querySelector(e.hash);t&&(function(e){var t=e.closest('[role=\"tablist\"]');if(t){var r=t.querySelector('[role=\"tab\"][aria-selected=\"true\"]');if(r){var o=document.querySelector(r.hash);r.setAttribute(\"aria-selected\",\"false\"),r.setAttribute(\"tabindex\",\"-1\"),o&&o.setAttribute(\"hidden\",\"hidden\")}}}(e),(function(e,t){e.setAttribute(\"aria-selected\",\"true\"),e.setAttribute(\"tabindex\",\"0\"),t.removeAttribute(\"hidden\"),e.focus()})(e,t),(function(e,t){var r=new CustomEvent(\"tabby\",{bubbles:!0,cancelable:!0,detail:{tab:e,content:t}});e.dispatchEvent(r)})(e,t))}},o=function(e,t){var o=(function(e){var t=e.closest('[role=\"tablist\"]'),r=t?t.querySelectorAll('[role=\"tab\"]'):null;if(r)return{tabs:r,index:Array.prototype.indexOf.call(r,e)}})(e);if(o){var n,i=o.tabs.length-1;[\"ArrowUp\",\"ArrowLeft\",\"Up\",\"Left\"].indexOf(t)>-1?n=o.index<1?i:o.index-1:[\"ArrowDown\",\"ArrowRight\",\"Down\",\"Right\"].indexOf(t)>-1?n=o.index===i?0:o.index+1:\"Home\"===t?n=0:\"End\"===t&&(n=i),r(o.tabs[n])}};return function(n,i){var a,l,u={};u.destroy=function(){var e=l.querySelectorAll(\"a\");Array.prototype.forEach.call(e,(function(e){var t=document.querySelector(e.hash);t&&(function(e,t,r){e.id.slice(0,r.idPrefix.length)===r.idPrefix&&(e.id=\"\"),e.removeAttribute(\"role\"),e.removeAttribute(\"aria-controls\"),e.removeAttribute(\"aria-selected\"),e.removeAttribute(\"tabindex\"),e.closest(\"li\").removeAttribute(\"role\"),t.removeAttribute(\"role\"),t.removeAttribute(\"aria-labelledby\"),t.removeAttribute(\"hidden\")})(e,t,a)})),l.removeAttribute(\"role\"),document.documentElement.removeEventListener(\"click\",c,!0),l.removeEventListener(\"keydown\",d,!0),a=null,l=null},u.setup=function(){if(l=document.querySelector(n)){var e=l.querySelectorAll(\"a\");l.setAttribute(\"role\",\"tablist\"),Array.prototype.forEach.call(e,(function(e){var t=document.querySelector(e.hash);t&&(function(e,t,r){e.id||(e.id=r.idPrefix+t.id),e.setAttribute(\"role\",\"tab\"),e.setAttribute(\"aria-controls\",t.id),e.closest(\"li\").setAttribute(\"role\",\"presentation\"),t.setAttribute(\"role\",\"tabpanel\"),t.setAttribute(\"aria-labelledby\",e.id),e.matches(r.default)?e.setAttribute(\"aria-selected\",\"true\"):(e.setAttribute(\"aria-selected\",\"false\"),e.setAttribute(\"tabindex\",\"-1\"),t.setAttribute(\"hidden\",\"hidden\"))})(e,t,a)}))}},u.toggle=function(e){var t=e;\"string\"==typeof e&&(t=document.querySelector(n+' [role=\"tab\"][href*=\"'+e+'\"]')),r(t)};var c=function(e){var t=e.target.closest(n+' [role=\"tab\"]');t&&(e.preventDefault(),r(t))},d=function(e){var t=document.activeElement;t.matches(n+' [role=\"tab\"]')&&([\"ArrowUp\",\"ArrowDown\",\"ArrowLeft\",\"ArrowRight\",\"Up\",\"Down\",\"Left\",\"Right\",\"Home\",\"End\"].indexOf(e.key)<0||o(t,e.key))};return a=(function(){var e={};return Array.prototype.forEach.call(arguments,(function(t){for(var r in t){if(!t.hasOwnProperty(r))return;e[r]=t[r]}})),e})(t,i||{}),u.setup(),(function(t){if(!(e.location.hash.length<1)){var o=document.querySelector(t+' [role=\"tab\"][href*=\"'+e.location.hash+'\"]');r(o)}})(n),document.documentElement.addEventListener(\"click\",c,!0),l.addEventListener(\"keydown\",d,!0),u}}));","import Utils from './utils';\r\n\r\ndeclare var ShoppingBasketParms: any;\r\ndeclare var globalParms: any;\r\n\r\n/**********************************\r\n* Mega Menu Functions \r\n**********************************/\r\n\r\nfunction getElementIndex(node: HTMLElement): number {\r\n var index = 0;\r\n while ((node = node.previousElementSibling as HTMLElement)) {\r\n index++;\r\n }\r\n return index;\r\n}\r\n\r\n//Initialise menu\r\nfunction initMenu(menu: any): void {\r\n //Only load the initial menu for desktop\r\n if (screen.width > 1023) {\r\n menu.setAttribute('data-display', 'd');\r\n var level2 = document.querySelectorAll('[data-navLevel = \"2\"]')[0];\r\n if (level2) {\r\n level2.querySelector('.category-column > ul > li:first-child')?.setAttribute('data-hovered', 'true')\r\n level2.querySelector('.category-column > ul > li:first-child button')?.setAttribute('aria-expanded', 'true');\r\n level2.querySelectorAll('.category-column-sub')[0].setAttribute('data-active', 'true');\r\n }\r\n }\r\n else {\r\n menu.setAttribute('data-display', 'm');\r\n }\r\n}\r\n\r\n//Reset menu\r\nfunction resetMenu(menu: any): void {\r\n menu.querySelectorAll('[aria-expanded]').forEach(function (item: any) {\r\n item.setAttribute('aria-expanded', 'false');\r\n });\r\n menu.querySelectorAll('[data-active]:not([data-navlevel=\"3\"])').forEach(function (item: any) {\r\n item.setAttribute('data-active', 'false');\r\n });\r\n menu.querySelectorAll('[data-hovered]').forEach(function (item: any) {\r\n item.setAttribute('data-hovered', 'false');\r\n });\r\n menu.querySelectorAll('.active').forEach(function (item: any) {\r\n item.classList.remove('active');\r\n });\r\n\r\n initMenu(menu);\r\n}\r\n\r\n//action: on|off\r\nfunction onOffItems(element: HTMLElement, action: string): void {\r\n element.setAttribute('aria-expanded', (action === \"on\") ? 'true' : 'false');\r\n if (action === \"on\") {\r\n element.parentElement?.classList.add('active');\r\n } else {\r\n element.parentElement?.classList.remove('active');\r\n }\r\n\r\n element.nextElementSibling?.setAttribute('data-active', (action === \"on\") ? 'true' : 'false');\r\n}\r\n\r\nfunction handleMobileMenu(this: HTMLElement) {\r\n var expanded = this.getAttribute('aria-expanded');\r\n var body = document.body;\r\n if (expanded == \"false\") {\r\n this.setAttribute('aria-expanded', \"true\");\r\n document.querySelector('header.site-head')?.setAttribute('data-mobile-toggled', \"true\");\r\n body.classList.add(\"menu-open\");\r\n } else {\r\n this.setAttribute('aria-expanded', \"false\");\r\n document.querySelector('header.site-head')?.setAttribute('data-mobile-toggled', \"false\");\r\n body.classList.remove(\"menu-open\");\r\n //TODO: what are we resetting? resetMenu();\r\n }\r\n}\r\n\r\nfunction closeMobileMenu() {\r\n var body = document.body;\r\n document.querySelector('button.mobile-menu')?.setAttribute('aria-expanded', \"false\");\r\n document.querySelector('header.site-head')?.setAttribute('data-mobile-toggled', \"false\");\r\n body.classList.remove(\"menu-open\");\r\n // handleMobileMenu;\r\n}\r\n\r\n// Standard offset.top not working properly: https://medium.com/@alexcambose/js-offsettop-property-is-not-great-and-here-is-why-b79842ef7582\r\nfunction getOffsetTop(element: any) {\r\n let offsetTop = 0;\r\n let parentElem = element;\r\n while (parentElem) {\r\n offsetTop += parentElem.offsetTop;\r\n parentElem = parentElem.offsetParent;\r\n }\r\n return offsetTop;\r\n}\r\n\r\n//we have js\r\nif (document.documentElement.classList.contains('no-js')) {\r\n document.documentElement.classList.remove('no-js');\r\n document.documentElement.classList.add('js');\r\n\r\n if (document.getElementsByClassName('site-head').length) {\r\n\r\n var menu = document.querySelector('#primary-navigation');\r\n\r\n if (menu) {\r\n\r\n initMenu(menu);\r\n\r\n //TODO - add debounce - resize init();\r\n //window.addEventListener('resize', function (e) {\r\n // if (screen.width > 1023 && menu.getAttribute('data-display') != \"d\") {\r\n // resetMenu(menu);\r\n // }\r\n // else if (screen.width <= 1023 && menu.getAttribute('data-display') != \"m\") {\r\n // resetMenu(menu);\r\n // }\r\n //});\r\n\r\n //Main menu click event\r\n menu.addEventListener('click', function (e) {\r\n let clickElement = e.srcElement;\r\n if ((clickElement as HTMLElement).tagName.toLowerCase() == 'span' || (clickElement as HTMLElement).tagName.toLowerCase() == 'svg') {\r\n clickElement = (clickElement as HTMLElement)?.closest('button')\r\n }\r\n if ((clickElement as HTMLElement)?.classList.contains('cat-link')) {\r\n var level = (clickElement as HTMLElement)?.closest('[data-navLevel]')?.getAttribute(\"data-navLevel\");\r\n if (level != \"2\") {\r\n //Simple toggle\r\n if ((clickElement as HTMLElement)?.getAttribute('aria-expanded') == \"false\") {\r\n //Switch off any items that are active\r\n var activeItemLevel = document.querySelector('[data-navLevel = \"' + level + '\"]');\r\n var activeItems = activeItemLevel?.querySelectorAll('button[aria-expanded=\"true\"]');\r\n for (var i = 0, max = activeItems?.length; i < (max ? max : 0); i++) {\r\n if (activeItems != null && activeItems[i]?.closest('[data-navLevel]')?.getAttribute(\"data-navLevel\") == level) {\r\n onOffItems(activeItems[i] as HTMLElement, 'off');\r\n }\r\n }\r\n onOffItems((clickElement as HTMLElement), 'on');\r\n }\r\n else {\r\n onOffItems((clickElement as HTMLElement), 'off');\r\n }\r\n }\r\n else {\r\n //Level 2 items\r\n var index = getElementIndex((clickElement as HTMLElement)?.parentElement as HTMLElement);\r\n var menuSubs = document.querySelectorAll('.category-column-sub');\r\n\r\n var menuSub = null;\r\n for (var i = 0, max1 = menuSubs.length; i < max1; i++) {\r\n if (index == i) {\r\n menuSub = menuSubs[i];\r\n }\r\n }\r\n if ((clickElement as HTMLElement).getAttribute('aria-expanded') == \"false\") {\r\n //Switch off any active items first\r\n var activeItem = document.querySelector('.category-column ul li[data-hovered=\"true\"]');\r\n if (activeItem !== null) {\r\n var activeItemIndex = getElementIndex(activeItem as HTMLElement);\r\n activeItem.setAttribute('data-hovered', 'false');//li\r\n activeItem.querySelector('button')?.setAttribute('aria-expanded', 'false');//button\r\n var menuSubOff = null;\r\n for (var i = 0, max2 = menuSubs.length; i < max2; i++) {\r\n if (activeItemIndex == i) {\r\n menuSubOff = menuSubs[i];\r\n }\r\n }\r\n menuSubOff?.setAttribute('data-active', 'false');\r\n }\r\n (clickElement as HTMLElement).setAttribute('aria-expanded', 'true');\r\n (clickElement as HTMLElement).parentElement?.setAttribute('data-hovered', 'true');\r\n menuSub?.setAttribute('data-active', 'true');\r\n }\r\n }\r\n }\r\n else {\r\n // if non .cat-link\r\n if ((clickElement as HTMLElement).closest('[data-navLevel]')?.getAttribute(\"data-navLevel\") == \"1\") {\r\n resetMenu(menu);\r\n }\r\n }\r\n\r\n });\r\n\r\n //Close menu when user clicks outside\r\n document.addEventListener('click', function (e) {\r\n // This closes menu on click outside\r\n let target = e.target;\r\n if (menu && target && !menu.contains(target as HTMLElement)) {\r\n resetMenu(menu);\r\n }\r\n });\r\n\r\n //TODO // key functions for keyboard navigation\r\n //var level2MenuCatColumns = menu.querySelectorAll('.category-column');\r\n //for (var i = 0, max = level2MenuCatColumns.length; i < max; i++) {\r\n // var level2MenuCatColumn = level2MenuCatColumns[i];\r\n // level2MenuCatColumn.addEventListener('keyup', function (e) {\r\n // if ((e as Event).key == \"Enter\") {\r\n // console.log(e.srcElement);\r\n // var firstElementSub = document.querySelectorAll('.category-column-sub[data-active=\"true\"] ul li a')[0];\r\n // firstElementSub.focus();\r\n // }\r\n // });\r\n //}\r\n\r\n var level2MenuSub = menu.querySelectorAll('.category-column-sub');\r\n let max = level2MenuSub.length;\r\n for (var i = 0; i < max; i++) {\r\n var level2MenuSubAnchors = level2MenuSub[i].querySelectorAll('a');\r\n let max2 = level2MenuSubAnchors.length;\r\n for (var b = 0; b < max2; b++) {\r\n if (b + 1 == max2) {\r\n level2MenuSubAnchors[b].addEventListener('keydown', function (e) {\r\n if (e.keyCode == 9) {\r\n menu?.querySelector('.category-column li[data-hovered=\"true\"]')?.querySelector('button')?.focus();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n //Breadcrumb functions\r\n var breadcrumbButtons = menu.querySelectorAll('.breadcrumb .parent-page');\r\n var maxBreadcrumbs = breadcrumbButtons.length;\r\n for (var i = 0; i < maxBreadcrumbs; i++) {\r\n breadcrumbButtons[i].addEventListener('click', function (e) {\r\n var navLevelElm = (e.srcElement as HTMLElement).closest('[data-navlevel]') as HTMLElement;\r\n var navLevel = navLevelElm.getAttribute('data-navlevel');\r\n if (navLevel && parseInt(navLevel) != 2) {\r\n navLevelElm = navLevelElm.closest('li') as HTMLElement;\r\n navLevelElm.setAttribute('class', 'false');\r\n }\r\n else {\r\n navLevelElm.setAttribute('data-active', 'false');\r\n }\r\n\r\n navLevelElm.querySelectorAll('[aria-expanded]').forEach(function (item: any) {\r\n item.setAttribute('aria-expanded', 'false');\r\n });\r\n navLevelElm.querySelectorAll('[data-active]:not([data-navlevel=\"3\"])').forEach(function (item: any) {\r\n item.setAttribute('data-active', 'false');\r\n });\r\n navLevelElm.querySelectorAll('[data-hovered]').forEach(function (item: any) {\r\n item.setAttribute('data-hovered', 'false');\r\n });\r\n navLevelElm.querySelectorAll('.active').forEach(function (item: any) {\r\n item.classList.remove('active');\r\n });\r\n\r\n if (navLevel && parseInt(navLevel) == 2) {\r\n //Go up a level and switch off the button that opened the level\r\n var navLevelElmUp1 = navLevelElm.closest('[data-navlevel=\"' + (parseInt(navLevel) - 1) + '\"]');\r\n var navLevelElmUp1Button = navLevelElmUp1?.querySelector('button[aria-expanded=\"true\"]');\r\n if (navLevelElmUp1Button != null) {\r\n navLevelElmUp1Button.setAttribute('aria-expanded', 'false');\r\n }\r\n }\r\n });\r\n }\r\n\r\n //Mobile menu functions\r\n var mobilemenu = document.querySelector('button.mobile-menu');\r\n mobilemenu?.addEventListener(\"click\", handleMobileMenu); \r\n\r\n var mobilebg = document.querySelector('.mobile-background');\r\n mobilebg?.addEventListener(\"click\", closeMobileMenu);\r\n\r\n var tertiarynav = document.querySelector('.tertiary-nav');\r\n if (tertiarynav && mobilemenu && mobilebg) {\r\n var primarynav = document.getElementById('nav-container');\r\n if (primarynav) {\r\n primarynav.style.top = \"81px\";\r\n }\r\n (mobilebg as HTMLElement).style.top = \"81px\";\r\n }\r\n }\r\n\r\n ///////////////////////////////////////////////////////////////////\r\n // Sticky search bar on mobile //\r\n ///////////////////////////////////////////////////////////////////\r\n\r\n var sh = document.querySelector(\".site-head\");\r\n var h = document.querySelector(\".search-container\");\r\n var stuck = false;\r\n var stickPoint = getOffsetTop(h);\r\n\r\n window.onscroll = function (e) {\r\n var offset = window.pageYOffset;\r\n\r\n if (!stuck && offset > stickPoint) {\r\n if (h) h.classList.add('stuck');\r\n if (sh) sh.classList.add('stuck');\r\n stuck = true;\r\n } else if (stuck && offset <= stickPoint) {\r\n if (h) h.classList.remove('stuck');;\r\n if (sh) sh.classList.remove('stuck');\r\n stuck = false\r\n }\r\n }\r\n }\r\n\r\n /*toggles, used in mobile footer used in all pages*/\r\n var ToggleButtons = document.querySelectorAll('[data-toggle-parent]');\r\n if (ToggleButtons.length) {\r\n ToggleButtons.forEach(function (toggle) {\r\n if (!toggle.classList.contains('click-bound')) {\r\n toggle.classList.add('click-bound');\r\n toggle.addEventListener('click', function (e) {\r\n let elem = e.target as HTMLElement;\r\n if (elem.getAttribute('aria-expanded') == \"false\") {\r\n elem.setAttribute('aria-expanded', 'true')\r\n }\r\n else {\r\n elem.setAttribute('aria-expanded', 'false');\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n var loginPartial = document.querySelector(\".loginPartial\");\r\n var loginPartialMobile = document.getElementById(\"sign-in-mobile\");\r\n\r\n if (loginPartial) {\r\n if (globalParms && globalParms.LoginPartialURL) {\r\n fetch(globalParms.LoginPartialURL)\r\n .then(response => response.text())\r\n .then(function (data) {\r\n if (data && loginPartial) {\r\n loginPartial.innerHTML = data;\r\n }\r\n if (data && loginPartialMobile) {\r\n loginPartialMobile.innerHTML = data;\r\n }\r\n });\r\n }\r\n }\r\n\r\n var accountLinks = document.querySelector(\".account-links\");\r\n\r\n if (accountLinks) {\r\n if (globalParms && globalParms.AccountLinksURL) {\r\n fetch(globalParms.AccountLinksURL)\r\n .then(response => response.text())\r\n .then(function (data) {\r\n if (data && accountLinks) {\r\n accountLinks.innerHTML = data;\r\n var basketButton = document.getElementById(\"basketButton\");\r\n if (basketButton) {\r\n basketButton.addEventListener(\"click\", function () {\r\n window.location.href = basketButton!.getAttribute(\"data-url\")!;\r\n });\r\n\r\n ShoppingBasket_UpdateItemCount();\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n initLightYouTube();\r\n\r\n document.addEventListener('DOMContentLoaded', function () {\r\n let mainNavContainers = document.querySelectorAll('#nav-container ul li div[data-navlevel=\"2\"]')\r\n let navHeight = 0;\r\n for (let i = 0; i < mainNavContainers.length; i++) { \r\n let elemHeight = window.getComputedStyle(mainNavContainers[i]).getPropertyValue(\"height\");\r\n if (Number(elemHeight.replace('px','')) > navHeight) {\r\n navHeight = Number(elemHeight.replace('px',''));\r\n }\r\n }\r\n let mainContent = document.getElementById('main-content');\r\n if (mainContent) {\r\n mainContent.style.minHeight = (navHeight - 86) + 'px';\r\n }\r\n });\r\n}\r\n\r\nexport function ShoppingBasket_UpdateItemCount() {\r\n var itemCount = document.querySelector(\".basket--link span.item-count\");\r\n\r\n if (itemCount != null) {\r\n try {\r\n var cookie = Utils.getCookie(ShoppingBasketParms.CookieKey);\r\n if (cookie) {\r\n var basketDataJSON = JSON.parse(unescape(cookie));\r\n\r\n itemCount.innerHTML = basketDataJSON.NumberOfItems;\r\n\r\n } else {\r\n itemCount.innerHTML = \"0\";\r\n }\r\n }\r\n catch (err) { console.log(err) }\r\n }\r\n}\r\n\r\n/* Light YouTube Embeds by @labnol */\r\n/* and img lazy loads */\r\n/* Web: http://labnol.org/?p=27941 */\r\n\r\nfunction initLightYouTube() {\r\n var div, n,\r\n v = document.getElementsByClassName(\"youtube-player\");\r\n for (n = 0; n < v.length; n++) {\r\n div = document.createElement(\"div\");\r\n div.setAttribute(\"data-id\", (v[n] as any).dataset.id);\r\n div.innerHTML = labnolThumb((v[n] as any).dataset.id);\r\n div.onclick = labnolIframe;\r\n v[n].appendChild(div);\r\n }\r\n loadLazyImages();\r\n\r\n function labnolThumb(id: string) {\r\n var thumb = '', //hqdefault\r\n play = '
    ';\r\n return thumb.replace(\"ID\", id) + play;\r\n }\r\n\r\n function labnolIframe(evt: Event) {\r\n let target = (evt.target as HTMLElement).parentNode;\r\n if (target) {\r\n var iframe = document.createElement(\"iframe\");\r\n var embed = \"https://www.youtube.com/embed/ID?autoplay=1\";\r\n let dataID = (target as HTMLElement).getAttribute(\"data-id\");\r\n if (dataID) iframe.setAttribute(\"src\", embed.replace(\"ID\", dataID as string));\r\n iframe.setAttribute(\"frameborder\", \"0\");\r\n iframe.setAttribute(\"allowfullscreen\", \"1\");\r\n let parent = (target as HTMLElement).parentElement;\r\n if (parent) parent.replaceChild(iframe, target);\r\n }\r\n }\r\n\r\n // Lazy-load images. Observe images until they are loaded.\r\n function loadLazyImages() {\r\n var lazyLoadOptions = {\r\n // https://www.competa.com/blog/lazy-loading-with-the-intersection-observer/\r\n //root: document.querySelector('div.gak-container'), // Comment this to use the default browser's viewport.\r\n rootMargin: '25px',\r\n threshold: 0//1.0\r\n };\r\n\r\n //initImagesForProductListings();\r\n\r\n var myImgs = document.querySelectorAll('img[lazy-src]');\r\n try {\r\n var observer = new IntersectionObserver(function (entries) {\r\n //console.log('loadLazyImages: entries ' + entries.length);\r\n entries.forEach(function (entry) {\r\n if (entry.isIntersecting) {\r\n // Load image\r\n var imgElem = entry.target;\r\n loadLazyImages_doImage(imgElem as HTMLElement);\r\n //console.log('in the view');\r\n observer.unobserve(imgElem);\r\n } else {\r\n //console.log('out of view');\r\n }\r\n });\r\n }, lazyLoadOptions);\r\n\r\n myImgs.forEach(function (image) {\r\n observer.observe(image);\r\n });\r\n }\r\n catch (err) {\r\n loadLazyImages_notSupported(myImgs);\r\n }\r\n\r\n function loadLazyImages_notSupported(myImgs: any) {\r\n // IntersectionObserver (and forEach()) not supported on Safari and old versions of IE 28/01/2019.\r\n //console.log(\"lazy load images not supported\");\r\n for (var i = 0, len = myImgs.length; i < len; i++) {\r\n loadLazyImages_doImage(myImgs[i]);\r\n }\r\n }\r\n\r\n function loadLazyImages_doImage(imgElem: HTMLElement) {\r\n setTimeout(function () {\r\n var realSrc = imgElem.getAttribute(\"lazy-src\"); //$(imgElem).attr(\"lazy-src\");\r\n if (realSrc) {\r\n imgElem.setAttribute(\"src\", realSrc); //.src = realSrc;\r\n imgElem.removeAttribute(\"lazy-src\"); //$(imgElem).removeAttr(\"lazy-src\");\r\n }\r\n }, 1);\r\n }\r\n\r\n //function initImagesForProductListings() {\r\n // $('ul.productListing').each(function (index) {\r\n // var curProdList = $(this);\r\n // loadImagesForProductListings_BasedOnView(curProdList);\r\n // });\r\n //}\r\n }\r\n\r\n};\r\n\r\n//function loadImagesForProductListings_BasedOnView(prodListing) {\r\n// var isGridView = prodListing.hasClass('view-as-grid');\r\n// prodListing.find('.productImageWrapper img').each(function (index) {\r\n// var img = $(this);\r\n// setTimeout(function () {\r\n// var newImgUrl = img.closest('.innerwrapper').data(isGridView ? 'prodimggridview' : 'prodimglistview');\r\n// // Set the new Img Url to the proper attribute src or lazy-src.\r\n// if (img.attr(\"lazy-src\")) {\r\n// img.attr(\"lazy-src\", newImgUrl);\r\n// }\r\n// else if (img[0].src) {\r\n// img[0].src = newImgUrl;\r\n// }\r\n// }, 1);\r\n// });\r\n//}","var V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!V3_URL_REGEX.test(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(V3_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"1.34.0\",\n startTime: startTime\n });\n};\n\nvar stripePromise = null;\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise !== null) {\n return stripePromise;\n }\n\n stripePromise = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n }\n\n script.addEventListener('load', function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n });\n script.addEventListener('error', function () {\n reject(new Error('Failed to load Stripe.js'));\n });\n } catch (error) {\n reject(error);\n return;\n }\n });\n return stripePromise;\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n if (maybeStripe === null) {\n return null;\n }\n\n var stripe = maybeStripe.apply(undefined, args);\n registerWrapper(stripe, startTime);\n return stripe;\n}; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\n// own script injection.\n\nvar stripePromise$1 = Promise.resolve().then(function () {\n return loadScript(null);\n});\nvar loadCalled = false;\nstripePromise$1[\"catch\"](function (err) {\n if (!loadCalled) {\n console.warn(err);\n }\n});\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadCalled = true;\n var startTime = Date.now();\n return stripePromise$1.then(function (maybeStripe) {\n return initStripe(maybeStripe, args, startTime);\n });\n};\n\nexport { loadStripe };\n","import * as Stripe from '@stripe/stripe-js';\r\nimport { deliveryOptionsPersist } from './gak-DeliveryOptions-persist';\r\nimport Utils from './utils';\r\nimport { updateWholeCart, ShoppingBasket_BindEvents, ShoppingBasket_ProceedToCheckout, showBasketError } from './gak-ShoppingBasket';\r\nimport { initTabs } from \"./tabs\"\r\nimport { debounceScript } from './Debounce.js';\r\nimport { loadPayPalButton } from './gak-PayPalButton';\r\nimport { getFormattedPrice, numberToCurrency } from './price-formatter';\r\n\r\nvar bpj: any;\r\nvar paymentRequest: any;\r\n\r\ndeclare var DeliveryOptionsParms: any;\r\ndeclare var EuroPrice_CurrencySymbol: any;\r\ndeclare var EuroPrice_ConversionRate: any;\r\ndeclare var basketConfig: any;\r\ndeclare var ShoppingBasketParms: any;\r\n\r\nexport var basketParams: any;\r\n\r\nconst requestHeaders: HeadersInit = new Headers();\r\nrequestHeaders.set('Content-Type', 'application/json');\r\n\r\nexport function DeliveryOptions_Init(bpjValue: any) {\r\n bpj = bpjValue;\r\n}\r\n\r\nvar pdojj: any;\r\nvar shoppingBasketContainer = \"#shoppingBasketContent\";\r\nvar deliveryOptionsContainer = \"#divDeliveryOptionsContainer\";\r\nvar divPaymentButtonsSelector = \"#divBasketPaymentsButtonRow\";\r\n\r\nexport function DeliveryOptions_BindEvents(isInit: boolean): void {\r\n var requestApplyVoucher =\r\n (debounceScript as any)(invokeApplyVoucher,\r\n 500,\r\n { 'leading': false, 'trailing': true });\r\n /***** PARAMETERS SECTION ******/\r\n\r\n /* Delivery options JSON, containing the reduced necessary data for all delivery options available and the defaults (window.dojj) */\r\n showHideCheckoutBox();\r\n if (isInit) {\r\n if (bpj)\r\n basketParams = JSON.parse(Utils.atou(bpj));\r\n } else {\r\n var dojj = (document.getElementById(\"dojj\"));\r\n\r\n if (dojj) {\r\n /* Delivery options JSON, containing the reduced necessary data for all delivery options available and the defaults */\r\n pdojj = JSON.parse(Utils.atou(dojj.value));\r\n /* This pdojj will contain:\r\n pdojj.doj: Reduced Deliver Options data\r\n pdojj.dodj: Reduced Default data\r\n pdojj.pdj: Payment data containing the data necessary to display the payment buttons.\r\n */\r\n }\r\n }\r\n\r\n // No params whatsoever: return\r\n if (!basketParams && !pdojj) return;\r\n\r\n /***** END PARAMETERS SECTION ******/\r\n\r\n function triggerFinance() {\r\n //FinanceTab callback\r\n var financeTabInitializeData = (window).financeTabInitializeData;\r\n if (typeof financeTabInitializeData === 'function' && financeTabInitializeData !== null) {\r\n financeTabInitializeData();\r\n }\r\n }\r\n //Defines callback used by FinanceTab\r\n var lastHasFinanceOptions: boolean;\r\n (window).onHasFinanceOptions = function (hasFinanceOptions: boolean) {\r\n lastHasFinanceOptions = hasFinanceOptions;\r\n setCurrentDeliveryOptions();\r\n };\r\n\r\n // Perform processing that does not depend on having dojj & dodjj defined (eg. when there is nothing\r\n // in stock in the current basket)\r\n if (basketParams && basketParams.showLowStock) {\r\n var el = document.getElementById('delvStockIsLow');\r\n if (el) {\r\n el.classList.remove('hidden');\r\n }\r\n }\r\n\r\n // Region / Country changed.\r\n var delvRegId = (document.getElementById(\"DeliveryRegionId\")!);\r\n var delvRegIdSelect = (document.getElementById(\"DeliveryRegionIdSelect\")!);\r\n\r\n if (delvRegId) {\r\n delvRegId.addEventListener(\"change\", handledelvRgIdChange);\r\n }\r\n\r\n if (delvRegIdSelect) {\r\n delvRegIdSelect.addEventListener(\"change\", handledelvRgIdChange);\r\n }\r\n if (isInit === true) {\r\n if (!isBasketEmpty()) {\r\n var selDlvReg = delvRegId.value;\r\n\r\n DeliveryOptions_refresh(selDlvReg, deliveryOptionsPersist.getSelectedDeliveryTypeOption(), isInit !== true);\r\n }\r\n } else {\r\n if (basketParams && (basketParams.OutOfStock || basketParams.IsGiftVoucherOnlyOrder)) {\r\n setCurrentDeliveryOptions();\r\n }\r\n\r\n Voucher_BindEvents();\r\n }\r\n\r\n /*\r\n When clicking a DAY in the calendar:\r\n *\tIf currently selected Delivery Option is not available for that day,\r\n -\tSelect default Delivery Option for that day\r\n *\tUpdate price from matrix [DeliveryOption][Day]\r\n */\r\n\r\n var speficDays = document.querySelectorAll(`${deliveryOptionsContainer} #specificDayTable td:not(.unavailable)`);\r\n\r\n if (speficDays) {\r\n speficDays.forEach(function (el, i) {\r\n el.addEventListener('click', function (e) {\r\n var internalDay = el!.getAttribute(\"data-day\");\r\n var dtid = getSelectedDelvOptData().dtid;\r\n if (isSuperSaverDt(dtid)) {\r\n // reset to default delivery type if current is super saved\r\n // (maybe override again below)\r\n dtid = getDefaultData().i;\r\n }\r\n var selPrice = getDelvOptPrice(dtid, internalDay);\r\n // Null, undefined, and 0 are falsey, but 0 is a valid price.\r\n if (!selPrice && selPrice !== 0) {\r\n dtid = getDefaultDelvOptID(internalDay);\r\n selPrice = getDelvOptPrice(dtid, internalDay);\r\n }\r\n\r\n setSelectedDelvOptData(dtid, internalDay, selPrice, true);\r\n });\r\n });\r\n }\r\n /*\r\n When clicking a DELIVERY OPTION item in the list:\r\n *\tIf currently selected Day is not available for that Delivery Option,\r\n -\tSelect default DAY for that Delivery Option\r\n *\tUpdate price from matrix [DeliveryOption][Day]\r\n */\r\n const handleOptionBoxChangeEvent = new Event('handleOptionBoxChangeEvent');\r\n\r\n var optionBoxes = document.querySelectorAll(`${deliveryOptionsContainer} .deliveryOption .input-checkbox.optionBox`);\r\n if (optionBoxes) {\r\n optionBoxes.forEach(function (el, i) {\r\n el.addEventListener(\"change\", handleOptionBoxChange);\r\n el.addEventListener(\"handleOptionBoxChangeEvent\", handleOptionBoxChange);\r\n });\r\n }\r\n\r\n var calendarLink = document.getElementById(\"openCalendar\");\r\n\r\n if (calendarLink)\r\n calendarLink.addEventListener(\"click\", openCalendar);\r\n\r\n\r\n function handleOptionBoxChange(el: any) {\r\n var dtid = el.target!.getAttribute(\"data-dtid\");\r\n var internalDay = getSelectedDelvOptData().day;\r\n var selPrice = getDelvOptPrice(dtid, internalDay);\r\n // Null, undefined, and 0 are falsey, but 0 is a valid price.\r\n if (!selPrice && selPrice !== 0) {\r\n internalDay = getDefaultDay(dtid);\r\n selPrice = getDelvOptPrice(dtid, internalDay);\r\n }\r\n\r\n setSelectedDelvOptData(dtid, internalDay, selPrice);\r\n }\r\n\r\n const handledelvRgIdChangeEvent = new Event('handledelvRgIdChangeEvent');\r\n\r\n function handledelvRgIdChange(el: any) {\r\n var delvRgIdVal = el.target.value\r\n updateWholeCart(delvRgIdVal);\r\n }\r\n\r\n // Trigger the selection.\r\n\r\n var selDlv = deliveryOptionsPersist.getSelectedDelivery();\r\n var defaultSelection = document.querySelector(`${deliveryOptionsContainer} .deliveryOption .input-checkbox.optionBox.default`);\r\n\r\n if (selDlv && selDlv.deliveryTypeID && selDlv.deliveryDate\r\n // The Price might change for the same delivery, depending on the value of the basket.\r\n && setSelectedDelvOptData(selDlv.deliveryTypeID, selDlv.deliveryDate, getDelvOptPrice(selDlv.deliveryTypeID, selDlv.deliveryDate))\r\n ) {\r\n // Nothing, already done.\r\n }\r\n else {\r\n // Trigger the default selection.\r\n if (defaultSelection) {\r\n defaultSelection.dispatchEvent(handleOptionBoxChangeEvent)\r\n }\r\n }\r\n\r\n function getCheckboxInputForDeliveryType(dtid: any): HTMLInputElement {\r\n return (document.querySelector(`${deliveryOptionsContainer} .deliveryOption .input-checkbox.optionBox[data-dtid='${dtid}']`));\r\n }\r\n\r\n function isSuperSaverDt(dtid: any) {\r\n var myDt = getDtById(dtid);\r\n if (!myDt || myDt.length <= 0) return null;\r\n\r\n return myDt[0].ss;\r\n }\r\n\r\n function isClickAndCollectDt(dtid: any) {\r\n var myDt = getDtById(dtid);\r\n if (!myDt || myDt.length <= 0) return null;\r\n\r\n return myDt[0].cc;\r\n }\r\n\r\n //function isAllDaysAvbleDt(dtid) {\r\n // var myDt = getDtById(dtid);\r\n // if (!myDt || myDt.length <= 0) return null;\r\n\r\n // return myDt[0].ada;\r\n //}\r\n\r\n // *********** gak-DeliveryOptions internal use\r\n function getSelectedDelvOptData() {\r\n var deliveryTypeID = (document.getElementById(\"deliveryTypeID\"))!;\r\n var deliveryDate = (document.getElementById(\"deliveryDate\"))!;\r\n var selectedData = {\r\n dtid: deliveryTypeID.value, // Get dtid from the selected item in DT List.\r\n day: deliveryDate.value // Get day from the selected day in Calendar.\r\n };\r\n\r\n return selectedData;\r\n }\r\n\r\n function setSelectedDelvOptData(dtid: any, internalDay: any, selPrice: any, fromCalendar: boolean = false) {\r\n // Update UI:\r\n // Update DT List\r\n // Remove all selections\r\n if ((!internalDay || !isSuperSaverDt(dtid)) && !fromCalendar) {\r\n internalDay = getDefaultDay(dtid);\r\n }\r\n\r\n var calendarSelector = `${deliveryOptionsContainer} #specificDayTable td`;\r\n var elemDay = document.querySelector(`${calendarSelector}[data-day='${internalDay}']`);\r\n var deliveryTypeID = (document.getElementById(\"deliveryTypeID\"))!;\r\n var deliveryPrice = (document.getElementById(\"deliveryPrice\"))!;\r\n var deliveryDate = (document.getElementById(\"deliveryDate\"))!;\r\n \r\n if (elemDay?.classList.contains('unavailable') || selPrice == null) {\r\n var checkoutPrice = document.getElementById(\"checkoutDeliveryPrice\");\r\n\r\n if (checkoutPrice && deliveryPrice)\r\n checkoutPrice.textContent = getFormattedPrice(deliveryPrice.value, EuroPrice_CurrencySymbol, EuroPrice_ConversionRate);\r\n\r\n return false;\r\n }\r\n\r\n var elemDt = getCheckboxInputForDeliveryType(dtid);\r\n // Anything changed?\r\n\r\n var isDeliveryTypeChangedx = deliveryTypeID ? deliveryTypeID.value != dtid : false;\r\n var isDeliveryPriceChangedx = deliveryPrice ? parseFloat(deliveryPrice?.value || \"-1\") !== parseFloat(selPrice || 0) : false;\r\n var isDeliveryDateChangedx = deliveryDate ? deliveryDate.value != internalDay : false;\r\n var isNothingChanged = isInit || !(isDeliveryTypeChangedx || isDeliveryPriceChangedx || isDeliveryDateChangedx);\r\n\r\n if (isNothingChanged) {\r\n if (elemDt)\r\n elemDt.checked = true;\r\n return true;\r\n }\r\n\r\n document.querySelector(`${deliveryOptionsContainer} .deliveryOption`)?.classList.remove('highlightBlue');\r\n document.querySelector(`${deliveryOptionsContainer} .deliveryOption.chosenOption`)?.classList.remove('chosenOption');\r\n (document.querySelector(`${deliveryOptionsContainer} .deliveryOption .input-checkbox`)).setAttribute('checked', \"false\");\r\n // Select current item\r\n elemDt.checked = true;\r\n elemDt.closest(\".deliveryOption\")?.classList.add('chosenOption');\r\n\r\n // Current item's day-type prefix\r\n var myDtDays = getDaysForDtid(dtid, internalDay);\r\n // Don't prefix Super Saver (only super saver's input has a truthy value for 'daywindow' data value)\r\n // Plus always switch to first possible dates\r\n if (isSuperSaverDt(dtid)) {\r\n var superSaverinternalDay = myDtDays[0].d;\r\n if (superSaverinternalDay != internalDay) {\r\n setSelectedDelvOptData(dtid, superSaverinternalDay, selPrice);\r\n return; // Make sure we don't process the rest of the current function.\r\n }\r\n }\r\n\r\n var allDays = document.querySelectorAll(calendarSelector);\r\n\r\n if (allDays) {\r\n allDays.forEach(function (e, i) {\r\n e.classList.remove('chosenDay')\r\n });\r\n }\r\n\r\n if (elemDay)\r\n elemDay.classList.add('chosenDay');\r\n\r\n // When a day is selected, the prices displayed for all the items in DT List must be updated.\r\n var deliveryOptions = document.querySelectorAll(`${deliveryOptionsContainer} .deliveryOption`);\r\n\r\n deliveryOptions.forEach(function (el, i) {\r\n var myDtid = el.querySelector(\".input-checkbox.optionBox\")?.getAttribute(\"data-dtid\");\r\n var myPrice = getDelvOptPrice(myDtid, internalDay);\r\n\r\n if (myPrice == null) {\r\n // Dt not available for the day. Get Default price.\r\n myPrice = getDelvOptPrice(myDtid, getDefaultDay(myDtid)); //\"-\";\r\n }\r\n\r\n // Format Price\r\n var formattedPrice = getFormattedPrice(myPrice, EuroPrice_CurrencySymbol, EuroPrice_ConversionRate);\r\n\r\n var priceSpan = el.querySelector(\".deliveryOptionPrice\");\r\n\r\n if (priceSpan)\r\n priceSpan.textContent = formattedPrice;\r\n });\r\n\r\n // Update form data\r\n var deliveryTypeID = (document.getElementById(\"deliveryTypeID\"));\r\n\r\n if (deliveryTypeID)\r\n deliveryTypeID.value = dtid;\r\n\r\n var deliveryDate = (document.getElementById(\"deliveryDate\"));\r\n\r\n if (deliveryDate)\r\n deliveryDate.value = internalDay;\r\n\r\n // DeliveryLastDate. Is there a dayWindow?\r\n var dayWindow = elemDt.getAttribute(\"data-daywindow\");\r\n var dayTo = null;\r\n\r\n if (dayWindow) {\r\n var daysToAdd = parseInt(dayWindow) - 1;\r\n var dayWindowArray = getDayWindowForDt(dtid, internalDay, daysToAdd);\r\n // Select the whole set of days in the window\r\n dayWindowArray?.forEach(function (x, index) {\r\n document.querySelector(`${calendarSelector}[data-day='${x}']`)?.classList.add('chosenDay');\r\n });\r\n dayTo = dayWindowArray?.slice(-1)[0];\r\n }\r\n var deliveryLastDate = (document.getElementById(\"deliveryLastDate\"));\r\n\r\n if (deliveryLastDate)\r\n deliveryLastDate.value = dayTo;\r\n //// Note \"|| -1\"\r\n //var isDeliveryPriceChanged = parseFloat($('#deliveryPrice').val() || -1) !== parseFloat(selPrice || 0);\r\n var deliveryPrice = (document.getElementById(\"deliveryPrice\"));\r\n\r\n if (deliveryPrice)\r\n deliveryPrice.value = selPrice;\r\n\r\n var checkoutPrice = document.getElementById(\"checkoutDeliveryPrice\");\r\n\r\n if (checkoutPrice)\r\n checkoutPrice.textContent = getFormattedPrice(selPrice, EuroPrice_CurrencySymbol, EuroPrice_ConversionRate);\r\n\r\n var checkoutSubtotalPrice = document.getElementById(\"checkoutSubtotalPrice\");\r\n\r\n if (checkoutSubtotalPrice && basketParams.PriceTotalItems)\r\n checkoutSubtotalPrice.textContent = getFormattedPrice(basketParams.PriceTotalItems, EuroPrice_CurrencySymbol, EuroPrice_ConversionRate);\r\n\r\n var giftVoucher = basketParams.GiftVouchers && basketParams.GiftVouchers.IsAnyApplied\r\n ? basketParams.GiftVouchers.DiscountValue : 0;\r\n var totalIncludingVATAndDelivery = document.getElementById(\"TotalIncludingVATAndDelivery\");\r\n if (totalIncludingVATAndDelivery && basketParams.PriceTotalItems) {\r\n totalIncludingVATAndDelivery.textContent = getFormattedPrice(basketParams.PriceTotalItems + selPrice - giftVoucher, EuroPrice_CurrencySymbol, EuroPrice_ConversionRate);\r\n }\r\n\r\n // Keep selected values.\r\n deliveryOptionsPersist.saveSelectedDelivery(deliveryTypeID.value, deliveryDate.value);\r\n\r\n // Update calendar header.\r\n document.querySelector(`${deliveryOptionsContainer} .deliveryCalendar #deliveryMonthName`)!.innerHTML = internaldateToMonthDisplayString(internalDay);\r\n\r\n // Update Delivery Date field\r\n var newDeliveryHtml = isClickAndCollectDt(dtid) ? \"Click & Collect from our Brighton store \" : \"Delivery \";\r\n var displayDay = elemDay ? elemDay.getAttribute(\"data-displayday\") : \"\";\r\n if (dayTo == null) {\r\n newDeliveryHtml += \"\" + displayDay + \"\";\r\n }\r\n else {\r\n newDeliveryHtml += \"between \" + displayDay + \" and \" + internaldateToDisplayString(dayTo) + \"\";\r\n }\r\n var confirmationMessage = (elemDt.getAttribute(\"data-confirmationmsg\") || '').trim();\r\n newDeliveryHtml += confirmationMessage ? \", \" + confirmationMessage : \"\"; //Add confirmation message to the delivery text\r\n\r\n //Setting back previous title\r\n document.querySelectorAll(`${deliveryOptionsContainer} .deliveryOption .dtDescription`)?.forEach(function (e: any, i: any) {\r\n var title = e.getAttribute(\"data-title\");\r\n e.textContent = title;\r\n });\r\n\r\n var elemDtDescription = elemDt.closest(\".deliveryOption\")?.querySelector(\".dtDescription\");\r\n\r\n if (elemDtDescription)\r\n elemDtDescription.innerHTML = newDeliveryHtml;\r\n\r\n updatePaymentButtons(dtid, internalDay);\r\n\r\n return true;\r\n }\r\n\r\n function updatePaymentButtons(dtid: any, internalDay: any) {\r\n if (lastHasFinanceOptions === undefined) {\r\n triggerFinance();\r\n return;\r\n }\r\n\r\n var divPaymentButtons = document.querySelector(divPaymentButtonsSelector)!;\r\n var data = {\r\n dtid: dtid,\r\n d: internalDay,\r\n dop: getDelvOpts(),\r\n finance: lastHasFinanceOptions || false\r\n };\r\n\r\n //We need to work out if payment buttons are rendered, without considering STRIPE\r\n var paymentButtonsRendered = divPaymentButtons.querySelectorAll(`.payment-buttons button[name='checkout']:not([data-payment-mehtod='STRIPE']),\r\n .payment-buttons-finance,\r\n #paypal-button-container`).length > 0;\r\n\r\n if (!paymentButtonsRendered) {\r\n fetch(basketConfig.paymentButtonsUrl, {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: requestHeaders\r\n }).then((response) => {\r\n if (response.ok) {\r\n return response.text();\r\n }\r\n showBasketError(\"Sorry but there was an error when loading payment buttons.\");\r\n }).then(function (result) {\r\n if (result) {\r\n divPaymentButtons.innerHTML = result;\r\n PaymentData_BindEvents(result);\r\n\r\n let parser = new DOMParser();\r\n const doc = parser.parseFromString(result, 'text/html');\r\n\r\n var netPayment = doc.getElementById(\"NetPayment\")!;\r\n var giftVoucherTotalRedeemed = doc.getElementById(\"GiftVoucherTotalRedeemed\")!;\r\n var hasPayPalCredit = doc.getElementById(\"HasPayPalCredit\")!;\r\n var hasPayPal = doc.getElementById(\"HasPayPal\")!;\r\n var highestDeposit = doc.getElementById(\"highestDeposit\")!;\r\n var highestDepositAmount = doc.getElementById(\"highestDepositAmount\")!;\r\n var shouldDisplayFinanceOptions = doc.getElementById(\"ShouldDisplayFinanceOptions\")!;\r\n\r\n DeliveryOptions_UpdatePdParams(parseFloat(netPayment.value), parseFloat(highestDeposit.value),\r\n parseFloat(highestDepositAmount.value), parseFloat(giftVoucherTotalRedeemed.value),\r\n hasPayPalCredit.value == 'True', hasPayPal.value == 'True', shouldDisplayFinanceOptions.value == 'True');\r\n\r\n var buttons = document.querySelectorAll(`${divPaymentButtonsSelector} button`);\r\n\r\n if (divPaymentButtons)\r\n buttons.forEach(function (button) {\r\n button.addEventListener('click', ShoppingBasket_ProceedToCheckout);\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n fetch(basketConfig.updatePaymentButtonsUrl, {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: requestHeaders\r\n }).then((response) => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n showBasketError(\"Sorry but there was an error when loading payment buttons.\");\r\n }).then(function (result: any) {\r\n DeliveryOptions_UpdatePdParams(result.NetPayment, result.HighestDeposit, result.highestDepositAmount,\r\n result.GiftVoucherTotalRedeemed, result.HasPayPalCredit, result.HasPayPal, result.ShouldDisplayFinanceOptions);\r\n PaymentData_BindEvents(result);\r\n });\r\n }\r\n }\r\n\r\n function setCurrentDeliveryOptions() {\r\n var dtid = (document.getElementById('deliveryTypeID'));\r\n var dd = (document.getElementById('deliveryDate'));\r\n\r\n if (!dtid && !dd) return;\r\n\r\n deliveryOptionsPersist.saveSelectedDelivery(dtid.value, dd.value);\r\n updatePaymentButtons(dtid.value, dd.value);\r\n }\r\n\r\n function Voucher_BindEvents() {\r\n var voucherCodeInput = (document.getElementById(\"voucherCode\"));\r\n var applyVoucherButton = document.getElementById(\"applyVoucherButton\");\r\n var removeVoucherButton = document.querySelectorAll(\"button.removeVoucherButton\");\r\n if (voucherCodeInput) {\r\n voucherCodeInput.addEventListener(\"keypress\", handleVoucherCodeInputKeyPress);\r\n }\r\n if (applyVoucherButton && voucherCodeInput) {\r\n applyVoucherButton.addEventListener(\"click\", handleApplyVoucherClick);\r\n }\r\n\r\n if (removeVoucherButton && removeVoucherButton.length > 0) {\r\n removeVoucherButton.forEach(function (button) {\r\n button.addEventListener(\"click\", handleRemoveVoucherClick);\r\n });\r\n }\r\n\r\n function handleRemoveVoucherClick(e: any) {\r\n var voucherCode = e.currentTarget.getAttribute(\"data-code\");\r\n var data = { voucherCode: voucherCode, remove: true };\r\n\r\n requestApplyVoucher(data);\r\n }\r\n\r\n function handleApplyVoucherClick(e: any) {\r\n e.preventDefault();\r\n\r\n var voucherCodeVal = voucherCodeInput.value;\r\n if (!voucherCodeVal || voucherCodeVal === \"\") return;\r\n\r\n var data = { voucherCode: voucherCodeInput.value, remove: false };\r\n\r\n requestApplyVoucher(data);\r\n }\r\n\r\n function handleVoucherCodeInputKeyPress(e: any) {\r\n if (e.keyCode === 13) {\r\n handleApplyVoucherClick(e);\r\n }\r\n }\r\n }\r\n\r\n function invokeApplyVoucher(data: any) {\r\n var applyVoucherButton = document.getElementById(\"applyVoucherButton\");\r\n\r\n fetch(ShoppingBasketParms.ApplyVoucherURL, {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: requestHeaders\r\n }).then(response => response.text())\r\n .then(function (result) {\r\n var basket = document.querySelector(shoppingBasketContainer)!;\r\n basket.innerHTML = result;\r\n\r\n if (applyVoucherButton) {\r\n var newButton = applyVoucherButton.cloneNode(true);\r\n if (applyVoucherButton.parentNode)\r\n applyVoucherButton.parentNode.replaceChild(newButton, applyVoucherButton);\r\n }\r\n var bpj = (document.getElementById(\"bpj\")!);\r\n if (bpj)\r\n DeliveryOptions_Init(bpj.value);\r\n\r\n ShoppingBasket_BindEvents();\r\n DeliveryOptions_BindEvents(true);\r\n\r\n var voucherError = document.getElementById(\"voucherError\");\r\n var voucherErrorContainer = document.getElementById(\"voucherErrorContainer\")!;\r\n let voucherInput = document.querySelector(\"#gift-voucher-input .floating-button\");\r\n\r\n if (voucherError) {\r\n voucherErrorContainer.innerHTML = `${voucherError.value}`;\r\n if (voucherInput) voucherInput.classList.add('is-invalid');\r\n }\r\n else {\r\n voucherErrorContainer.hidden = true;\r\n if (voucherInput) voucherInput.classList.remove('is-invalid');\r\n }\r\n });\r\n }\r\n\r\n function PaymentData_BindEvents(result: any) {\r\n if (result.Buttons) {\r\n var buttonsSelector = document.querySelectorAll(\".btn-item:not(.stripe-button-container)\");\r\n var paymentButtonsContainer = document.querySelector(divPaymentButtonsSelector)!;\r\n\r\n if (buttonsSelector)\r\n buttonsSelector.forEach(function (button) {\r\n button.remove();\r\n });\r\n\r\n const financeText = document.getElementById(\"financeOptionsText\");\r\n\r\n if (financeText) {\r\n if (result.HasFinanceOptions) {\r\n financeText.removeAttribute(\"hidden\");\r\n } else {\r\n financeText.setAttribute(\"hidden\", \"hidden\");\r\n }\r\n }\r\n\r\n var buttonsContainer = document.getElementsByClassName(\"payment-buttons\")?.item(0);\r\n\r\n if (buttonsContainer) {\r\n let hasPayPal = false;\r\n result.Buttons.forEach(function (el: any) {\r\n const btnData = el;\r\n const amazonPayStyle = btnData.value == \"amz\" ? \"margin-top: 8px\" : \"\";\r\n const btnContent = btnData.displayImg === \"\"\r\n ? btnData.displayText\r\n : `${btnData.displayText}`;\r\n\r\n if (btnData.value != 'stripe') {\r\n if (btnData.value === 'pp') {\r\n hasPayPal = true;\r\n } else {\r\n const button = renderButton(!btnData.isFinance);\r\n const container = btnData.isFinance ? getFinanceContainer()! : buttonsContainer!\r\n\r\n addButtonToContainer(container, button);\r\n }\r\n }\r\n\r\n function getFinanceContainer() {\r\n if (!paymentButtonsContainer.querySelector(\".payment-buttons-finance\")) {\r\n const paymentButtonsFinance = document.createElement(\"div\");\r\n\r\n paymentButtonsFinance.classList.add(\"payment-buttons-finance\");\r\n paymentButtonsFinance.setAttribute(\"data-columns\", \"\");\r\n paymentButtonsContainer.appendChild(paymentButtonsFinance);\r\n }\r\n\r\n return document.getElementsByClassName(\"payment-buttons-finance\")?.item(0);\r\n }\r\n\r\n function renderButton(isFullWidth: boolean = true) {\r\n return `\r\n `;\r\n }\r\n\r\n function addButtonToContainer(container: Element, button: string) {\r\n container.innerHTML += button;\r\n }\r\n });\r\n\r\n const payPalButtonContainer = document.getElementById(\"paypal-button-container\");\r\n let ppMessage = document.querySelector(\"[data-pp-message]\");\r\n\r\n if (!hasPayPal && payPalButtonContainer?.hasChildNodes()) {\r\n payPalButtonContainer!.innerHTML = '';\r\n\r\n if (ppMessage) {\r\n ppMessage.remove();\r\n }\r\n } else if (hasPayPal && (!payPalButtonContainer || !payPalButtonContainer.hasChildNodes())) {\r\n setPayPalButton(result.ShouldDisplayFinanceOptions);\r\n\r\n if (!ppMessage && payPalButtonContainer) {\r\n ppMessage = document.createElement(\"div\");\r\n ppMessage.setAttribute(\"data-pp-message\", \"\");\r\n ppMessage.setAttribute(\"data-pp-amount\", result.NetPayment);\r\n ppMessage.setAttribute(\"data-pp-style-text-size\", \"11\");\r\n\r\n payPalButtonContainer.insertAdjacentElement(\"afterend\", ppMessage)\r\n }\r\n }\r\n }\r\n }\r\n\r\n var buttons = document.querySelectorAll(\"#divBasketPaymentsButtonRow button\");\r\n\r\n if (buttons) {\r\n buttons.forEach(function (btn) {\r\n btn.addEventListener('click', ShoppingBasket_ProceedToCheckout);\r\n });\r\n }\r\n\r\n var updateForm = document.getElementById(\"UpdateStockForm\");\r\n\r\n if (updateForm) {\r\n var oldBtoajDelvOptParams = (document.querySelector(\"input[name=btoajDelvOptParams]\"));\r\n if (oldBtoajDelvOptParams)\r\n oldBtoajDelvOptParams.remove();\r\n\r\n var btoajDelvOptParams = document.createElement(\"input\");\r\n btoajDelvOptParams.setAttribute(\"name\", \"btoajDelvOptParams\");\r\n btoajDelvOptParams.setAttribute(\"hidden\", \"hidden\");\r\n\r\n btoajDelvOptParams.value = getDelvOptsSerialised();\r\n\r\n updateForm.append(btoajDelvOptParams);\r\n\r\n }\r\n\r\n DeliveryOptionsButtons_BindEvents();\r\n }\r\n\r\n function DeliveryOptionsButtons_BindEvents() {\r\n // Show warning.\r\n var ccwarning = document.querySelectorAll(`${deliveryOptionsContainer} .ccwarning`);\r\n var ccEarliestwarning = document.querySelectorAll(`${shoppingBasketContainer} .basket-item-stock.ccEarliestwarning`);\r\n\r\n if (getDelvOpts().IsClickAndCollectShowWarning && isUKMainland()) {\r\n // Reset Delivered / Click & Collect buttons.\r\n deliveryOptionsPersist.resetSelectedDeliveryTypeOption();\r\n\r\n // Display warning\r\n if (ccwarning) {\r\n ccwarning.forEach(function (el, i) {\r\n el.classList.remove('hidden');\r\n });\r\n }\r\n\r\n // Hide Earliest c&c warning from basket items.\r\n if (ccEarliestwarning) {\r\n ccEarliestwarning.forEach(function (el, i) {\r\n el.classList.add('hidden');\r\n });\r\n }\r\n }\r\n else {\r\n // Hide warning\r\n if (ccwarning) {\r\n ccwarning.forEach(function (el, i) {\r\n el.classList.add('hidden');\r\n });\r\n }\r\n // Show Earliest c&c warning from basket items.\r\n if (ccEarliestwarning) {\r\n ccEarliestwarning.forEach(function (el, i) {\r\n el.classList.remove('hidden');\r\n });\r\n }\r\n }\r\n\r\n // Show buttons\r\n var devOptBtns = document.querySelectorAll(`${deliveryOptionsContainer} a.devOptsLinks`);\r\n\r\n if (devOptBtns) {\r\n devOptBtns.forEach(function (el) {\r\n el.addEventListener('click', handleDeliveryOptionClicked);\r\n });\r\n }\r\n }\r\n\r\n function handleDeliveryOptionClicked(el: any) {\r\n var curBtnName = el.target.getAttribute('name');\r\n if (deliveryOptionsPersist.getSelectedDeliveryTypeOption() !== curBtnName) {\r\n deliveryOptionsPersist.saveSelectedDeliveryTypeOption(curBtnName);\r\n\r\n DeliveryOptions_refresh(selDlvReg, deliveryOptionsPersist.getSelectedDeliveryTypeOption(), false);\r\n }\r\n }\r\n\r\n DeliveryOptionsButtons_BindEvents();\r\n // *********** gak-DeliveryOptions internal use\r\n}\r\n\r\nexport function SetDojj(doj: string) {\r\n if (doj) {\r\n pdojj = JSON.parse(Utils.atou(doj));\r\n }\r\n}\r\n\r\nexport function DeliveryOptions_refresh(deliveryRegionId: any, deliveryOptionTypeSelected: any, isResetDelivery: boolean) {\r\n var body = {\r\n deliveryRegionId: deliveryRegionId,\r\n deliveryOptionType: deliveryOptionTypeSelected,\r\n basketParams: basketParams\r\n };\r\n\r\n const requestHeaders: HeadersInit = new Headers();\r\n requestHeaders.set('Content-Type', 'application/json');\r\n fetch(DeliveryOptionsParms.IndexDeliveryOptionsURL, {\r\n method: 'POST',\r\n body: JSON.stringify(body),\r\n headers: requestHeaders\r\n }).then((response) => {\r\n if (response.ok) {\r\n return response.text();\r\n }\r\n showBasketError(\"Sorry but there was an error: Invalid delivery options\");\r\n }).then(function (data) {\r\n if (data) {\r\n var divContainer = document.querySelector(deliveryOptionsContainer)!;\r\n if (isResetDelivery) deliveryOptionsPersist.resetSelectedDelivery();\r\n if (divContainer) divContainer.innerHTML = data;\r\n\r\n DeliveryOptions_BindEvents(false);\r\n initTabs();\r\n }\r\n });\r\n}\r\n\r\n// JSON Data. Get the Price for a delivery option and a day. Returns NULL if not found.\r\nexport function getDelvOptPrice(dtid: any, internalDay: any) {\r\n var myDay = getDaysForDtid(dtid, internalDay);\r\n if (!myDay || myDay.length <= 0) return null;\r\n\r\n var myPrice = myDay[0].p;\r\n\r\n return myPrice;\r\n}\r\n// JSON Data. Get the default (cheapest) delivery option available for a day.\r\nexport function getDefaultDelvOptID(internalDay: any) {\r\n var myDts = getDelvOptsData().map(function (x: any) {\r\n return { xID: x.i, xPrice: (getDelvOptPrice(x.i, internalDay)), isSuperSaver: x.ss };\r\n });\r\n var availableDts = myDts.filter(function (x: any) {\r\n return x.xPrice !== null;\r\n });\r\n\r\n // Get Delv opt with min value\r\n var minPriceDt = availableDts.reduce(function (res: any, obj: any) {\r\n return (obj.xPrice < res.xPrice) ? obj : res;\r\n });\r\n if (!minPriceDt) return null;\r\n\r\n return minPriceDt.xID;\r\n}\r\n// JSON Data. Get the default (first) day available for a delivery option.\r\nfunction getDefaultDay(dtid: any) {\r\n var myDays = getDaysForDtid(dtid, null);\r\n\r\n if (!myDays || myDays.length <= 0) return null;\r\n\r\n // Get the first available\r\n var minDay = myDays[0].d;\r\n return minDay;\r\n}\r\n\r\n// JSON Data. Returns the day available in the future: from the base internalDay + daysAdd forward.\r\nfunction getDayWindowForDt(dtid: any, internalDay: boolean, daysAdd: number) {\r\n // Get the index of the base internalDay\r\n var myDay = getDaysForDtid(dtid, internalDay);\r\n if (!myDay || myDay.length <= 0) return null;\r\n\r\n var myDtDays = getDaysForDtid(dtid, null);\r\n var dayIndex = myDtDays.indexOf(myDay[0]);\r\n if (dayIndex < 0) return null;\r\n var dayWindow = [];\r\n for (var i = dayIndex; i <= dayIndex + daysAdd; i++) {\r\n dayWindow.push(myDtDays[i].d);\r\n }\r\n return dayWindow;\r\n}\r\n\r\nfunction getDaysForDtid(dtid: any, internalDay: any) {\r\n var myDt = getDtById(dtid);\r\n\r\n if (!myDt || myDt.length <= 0) return null;\r\n\r\n var myDtDays = myDt[0].dpl;\r\n\r\n if (internalDay == null) return myDtDays;\r\n\r\n // Ability to filter by day.\r\n var myDay = myDtDays.filter(function (x: any, i: any) {\r\n return (x.d == internalDay);\r\n });\r\n return myDay;\r\n}\r\n\r\nfunction getDtById(dtid: any) {\r\n var myDt = getDelvOptsData().filter(function (x: any, i: any) {\r\n return (x.i == dtid);\r\n });\r\n\r\n return myDt;\r\n}\r\n\r\nexport function getDelvOptsData() {\r\n return !pdojj ? [] : pdojj.doj; // Array expected\r\n}\r\nexport function getDefaultData() {\r\n return !pdojj ? {} : pdojj.dod; // Object expected\r\n}\r\nfunction getDelvOpts() {\r\n return (pdojj || {}); // Object expected\r\n}\r\nfunction getDelvOptsSerialised() {\r\n return Utils.utoa(JSON.stringify(getDelvOpts()));\r\n}\r\n\r\nfunction internaldateToDisplayString(internalDay: any) {\r\n var options = {\r\n weekday: \"short\", year: \"numeric\", month: \"short\",\r\n day: \"numeric\"\r\n };\r\n return internalDayToDisplayStringOptions(internalDay, options);\r\n}\r\nfunction internaldateToMonthDisplayString(internalDay: any) {\r\n var options = {\r\n month: \"long\"\r\n };\r\n return internalDayToDisplayStringOptions(internalDay, options);\r\n}\r\nfunction internalDayToDisplayStringOptions(internalDay: any, options: any) {\r\n // Parse date dd/MM/yyyy (LogicConstants.Formats.DateTime.DeliveryDate)\r\n if (internalDay) {\r\n var dateSplit = internalDay.split(\"/\");\r\n var myDate = new Date(dateSplit[2], parseInt(dateSplit[1]) - 1, dateSplit[0]);\r\n // Convert to short string\r\n return myDate.toLocaleDateString(\"en-GB\", options);\r\n }\r\n\r\n return \"\";\r\n}\r\n\r\n// Update Payment data.\r\nfunction DeliveryOptions_UpdatePdParams(netPayment: number,\r\n highestDeposit: number,\r\n highestDepositAmount: number,\r\n gvTotalRedeemed: number,\r\n hasPayPalCreditPayment: boolean,\r\n hasPayPal: boolean,\r\n shouldDisplayFinanceOptions: boolean) {\r\n // New payment value\r\n if (!isNaN(netPayment)) {\r\n var total = document.getElementById(\"TotalIncludingVATAndDelivery\");\r\n\r\n if (total)\r\n total.innerHTML = numberToCurrency(netPayment, EuroPrice_CurrencySymbol, EuroPrice_ConversionRate);\r\n\r\n var voucherApplied = document.querySelectorAll('.giftVoucherValueApplied');\r\n\r\n if (voucherApplied)\r\n voucherApplied.forEach(function (e: any) {\r\n e.textContent = numberToCurrency(gvTotalRedeemed, EuroPrice_CurrencySymbol, EuroPrice_ConversionRate)\r\n });\r\n\r\n var isNoNetPayment = netPayment <= 0;\r\n\r\n if (highestDeposit > 0 && highestDepositAmount > 0) {\r\n var depositPlaceholder = document.querySelector('#divDeliveryOptionsContainer .depositPlaceholder');\r\n if (depositPlaceholder) {\r\n depositPlaceholder.innerHTML = `${highestDeposit} % deposit required today: \r\n ${numberToCurrency(highestDepositAmount, EuroPrice_CurrencySymbol, EuroPrice_ConversionRate)}\r\n
    Balance payable upon collection: ${numberToCurrency(netPayment - highestDepositAmount, EuroPrice_CurrencySymbol, EuroPrice_ConversionRate)} `\r\n depositPlaceholder.classList.remove('hidden');\r\n }\r\n }\r\n\r\n var stripePaymentRequestBtn = document.getElementById(\"paymentRequestButton\");\r\n\r\n if (stripePaymentRequestBtn && !isNoNetPayment) {\r\n setStripePaymentRequestButton(netPayment);\r\n }\r\n }\r\n\r\n // Paypal Credit\r\n var ppDiv = document.getElementById('paypal-credit-section-contents');\r\n if (ppDiv) {\r\n if (hasPayPalCreditPayment || hasPayPal) {\r\n ppDiv.classList.remove('hidden');\r\n }\r\n else {\r\n ppDiv.classList.remove('hidden');\r\n }\r\n }\r\n\r\n const payPalButtonContainer = document.getElementById(\"paypal-button-container\")!;\r\n if (hasPayPal && payPalButtonContainer.children.length == 0) {\r\n setPayPalButton(false);\r\n }\r\n\r\n //do we need express checkout section\r\n var h1text = document.getElementById(\"h1text\");\r\n if (h1text) {\r\n h1text.innerHTML = h1text.innerHTML + '**1';\r\n }\r\n\r\n var expresscheckout = document.querySelector(\"#divBasketPaymentsButtonRow .express-checkout\");\r\n var othercheckout = document.querySelector(\"#divBasketPaymentsButtonRow .other-checkout h2\");\r\n var expressbuttonsContainer = document.getElementById(\"paymentRequestButton\");\r\n var paypalContainer = document.getElementById(\"paypal-button-container\");\r\n if (!hasPayPal && expresscheckout && othercheckout && expressbuttonsContainer && expressbuttonsContainer.innerHTML == '' && \r\n paypalContainer && paypalContainer.innerHTML == '') {\r\n expresscheckout.classList.remove('show');\r\n othercheckout.classList.remove('show');\r\n }\r\n}\r\n\r\nfunction setPayPalButton(enablePayLater: boolean) {\r\n loadPayPalButton({\r\n clientId: ShoppingBasketParms.PaylPalClientId,\r\n currency: \"GBP\",\r\n enableFunding: \"\",\r\n components: \"messages,buttons\"\r\n });\r\n}\r\n\r\nfunction isUKMainland() {\r\n var deliveryRegionId = (document.getElementById(\"DeliveryRegionId\")!).value;\r\n return deliveryRegionId && deliveryRegionId == (window).ukMainlandRegionId;\r\n}\r\n\r\nfunction getAmountInCents(amount: any) {\r\n return parseInt((amount * 100).toFixed());\r\n}\r\n\r\nfunction getPlainText(text: string) {\r\n return text.replace(/(\\r\\n|\\n|\\r)|(\\s\\s+)/gm, \"\");\r\n}\r\n\r\nfunction getStripeShippingOptions(selPrice: any) {\r\n if (document.querySelector(`.chosenOption>input`)?.hasAttribute(\"data-dtid\")) {\r\n return [\r\n {\r\n id: document.querySelector(\".chosenOption>input\")!.getAttribute(\"data-dtid\"),\r\n label: getPlainText(document.querySelector(\".chosenOption .dtDescription\")!.getAttribute(\"data-title\")!),\r\n detail: getPlainText(document.querySelector(\".chosenOption .dtDescription\")!.textContent!),\r\n amount: getAmountInCents(selPrice)\r\n }];\r\n } else {\r\n return [{\r\n id: \"oos\",\r\n label: document.querySelector(\".delivery-out-of-stock > #outOfStockLabel\") != null ? getPlainText(document.querySelector(\".delivery-out-of-stock > #outOfStockLabel\")!.textContent!) : \"Delivery not available\",\r\n detail: document.querySelector(\".delivery-out-of-stock > #outOfStockDetail\") != null ? getPlainText(document.querySelector(\".delivery-out-of-stock > #outOfStockDetail\")!.textContent!) : \"Delivery not available\",\r\n amount: getAmountInCents(selPrice)\r\n }];\r\n }\r\n}\r\n\r\nfunction setStripePaymentRequestButton(amount: any) {\r\n if (isNaN(amount)) {\r\n return;\r\n }\r\n\r\n var stripeKey = (document.getElementById('StripePublishableKey'))!.value;\r\n var selPrice = (document.getElementById('deliveryPrice'))!.value;\r\n //var shippingOptions = getStripeShippingOptions(selPrice);\r\n Stripe.loadStripe(stripeKey).then(function (stripe: any) {\r\n var paymentRequestButton = document.getElementById(\"paymentRequestButton\");\r\n if (paymentRequestButton?.childElementCount == 0) {\r\n paymentRequest = stripe.paymentRequest(getPaymentRequestOptions(amount, getStripeShippingOptions(selPrice)));\r\n\r\n var elements = stripe.elements();\r\n var prButton = elements.create('paymentRequestButton', {\r\n paymentRequest: paymentRequest,\r\n });\r\n\r\n // Check the availability of the Payment Request API first.\r\n paymentRequest.canMakePayment().then(function (result: any) {\r\n if (result) {\r\n prButton.mount('#paymentRequestButton');\r\n let stripeButtonContainer = document.querySelector(\".stripe-button-container.loading\");\r\n if (stripeButtonContainer) stripeButtonContainer.classList.remove('loading');\r\n } else {\r\n var stripeButtonContainer = document.getElementsByClassName(\"stripe-button-container\")?.item(0);\r\n if (stripeButtonContainer) {\r\n stripeButtonContainer.setAttribute(\"hidden\", \"hidden\");\r\n }\r\n }\r\n\r\n paymentRequest.on('paymentmethod', function (ev: any) {\r\n var updateForm = document.getElementById('UpdateStockForm');\r\n\r\n function submitForm() {\r\n var dojj = (document.getElementById(\"dojj\"))!;\r\n\r\n var url = updateForm.getAttribute('action')!;\r\n\r\n var data = new FormData(updateForm);\r\n\r\n data.set(\"btoajDelvOptParams\", dojj.value);\r\n data.set(\"checkout\", \"stripe\");\r\n data.set(\"IsDigitalWallet\", \"true\");\r\n\r\n fetch(url, {\r\n method: 'POST',\r\n body: data\r\n }).then((response) => {\r\n if (response.ok) {\r\n isPaymentRequested = true;\r\n\r\n fetch(`/checkout/createPaymentIntent?paymentmethodId=${ev.paymentMethod.id}&recipient=${ev.shippingAddress.recipient}&customerEmail=${ev.payerEmail}&payerPhone==${ev.payerPhone}`).then(function (response) {\r\n return response.json();\r\n }).then(function (createPaymentIntentResponse) {\r\n stripe.confirmCardPayment(\r\n createPaymentIntentResponse.ClientSecret,\r\n {\r\n payment_method: ev.paymentMethod.id,\r\n shipping: {\r\n address: {\r\n city: ev.shippingAddress.city,\r\n country: ev.shippingAddress.country,\r\n line1: ev.shippingAddress.addressLine[0],\r\n line2: ev.shippingAddress.addressLine.length == 2 ? ev.shippingAddress.addressLine[1] : null,\r\n postal_code: ev.shippingAddress.postalCode,\r\n state: ev.shippingAddress.region\r\n },\r\n name: ev.shippingAddress.recipient,\r\n phone: ev.payerPhone\r\n }\r\n },\r\n { handleActions: false }\r\n ).then(function (confirmResult: any) {\r\n LogStripeResponse(confirmResult, false);\r\n if (confirmResult.error) {\r\n alert(confirmResult.error);\r\n ev.complete('fail');\r\n } else {\r\n // Report to the browser that the confirmation was successful, prompting\r\n // it to close the browser payment method collection interface.\r\n ev.complete('success');\r\n // Check if the PaymentIntent requires any actions and if so let Stripe.js\r\n // handle the flow. If using an API version older than \"2019-02-11\"\r\n // instead check for: `paymentIntent.status === \"requires_source_action\"`.\r\n if (confirmResult.paymentIntent.status === \"requires_action\") {\r\n // Let Stripe.js handle the rest of the payment flow.\r\n stripe.confirmCardPayment(createPaymentIntentResponse.ClientSecret).then(function (result: any) {\r\n LogStripeResponse(result, true);\r\n if (result.error) {\r\n alert(result.error);\r\n } else {\r\n ProcessDigitalWalletPayment(ev, confirmResult, createPaymentIntentResponse);\r\n }\r\n });\r\n } else {\r\n ProcessDigitalWalletPayment(ev, confirmResult, createPaymentIntentResponse);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n if (!isPaymentRequested)\r\n submitForm();\r\n\r\n function LogStripeResponse(confirmResult: any, is3DSResult: boolean) {\r\n var data = {\r\n is3DSResult: is3DSResult,\r\n confirmResult: JSON.stringify(confirmResult)\r\n };\r\n\r\n fetch('Checkout/LogStripeResponse', {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: requestHeaders\r\n });\r\n }\r\n\r\n function ProcessDigitalWalletPayment(ev: any, confirmResult: any, createPaymentIntentResponse: any) {\r\n var data = {\r\n shippingAddress: ev.shippingAddress,\r\n paymentIntentId: confirmResult.paymentIntent.id,\r\n customerEmail: ev.payerEmail,\r\n clientSecret: createPaymentIntentResponse.ClientSecret,\r\n customerPhone: ev.payerPhone\r\n };\r\n fetch('Checkout/ValidateAddress',\r\n {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: requestHeaders\r\n }).then(response => response.json())\r\n .then(function (result) {\r\n if (result.success && result.redirectUrl !== \"\") {\r\n window.location = result.redirectUrl;\r\n }\r\n else if (result.redirectUrl !== \"\") {\r\n window.location = result.redirectUrl;\r\n }\r\n });\r\n }\r\n });\r\n\r\n paymentRequest.on('shippingaddresschange', function (ev: any) {\r\n var delvRegId = (document.getElementById(\"DeliveryRegionId\"))!.value;\r\n var deliveryRegionMap: any = JSON.parse((document.getElementById(\"deliveryRegionMap\"))!.value);\r\n if (ev.shippingAddress.country !== deliveryRegionMap[delvRegId]) {\r\n ev.updateWith({ status: 'invalid_shipping_address' });\r\n } else if (ev.shippingAddress.country == 'GB') {\r\n var data = {\r\n shippingAddress: ev.shippingAddress,\r\n customerEmail: ev.payerEmail,\r\n customerPhone: ev.payerPhone\r\n };\r\n\r\n fetch('Checkout/ValidatePostCodeAndRegion',\r\n {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: requestHeaders\r\n }).then(response => response.json())\r\n .then(function (result) {\r\n if (result.success && result.redirectUrl !== \"\") {\r\n ev.updateWith({ status: 'success', shippingOptions: getStripeShippingOptions(selPrice) });\r\n }\r\n else {\r\n ev.updateWith({ status: 'invalid_shipping_address' });\r\n }\r\n });\r\n }\r\n });\r\n });\r\n \r\n }\r\n else {\r\n paymentRequest.update(getPaymentRequestUpdateOptions(amount, getStripeShippingOptions(selPrice)));\r\n }\r\n\r\n var isPaymentRequested = false;\r\n\r\n function getPaymentRequestOptions(amount: number, shippingOptions: any) {\r\n return {\r\n country: 'GB',\r\n currency: 'gbp',\r\n total: {\r\n label: 'Total including VAT',\r\n amount: getAmountInCents(amount),\r\n },\r\n requestPayerName: true,\r\n requestPayerEmail: true,\r\n requestShipping: true,\r\n requestPayerPhone: true,\r\n shippingOptions: shippingOptions\r\n }\r\n }\r\n\r\n function getPaymentRequestUpdateOptions(amount: number, shippingOptions: any) {\r\n return {\r\n total: {\r\n label: 'Total including VAT',\r\n amount: getAmountInCents(amount),\r\n },\r\n shippingOptions: shippingOptions,\r\n }\r\n }\r\n\r\n\r\n });\r\n}\r\n\r\nfunction openCalendar(el: any) {\r\n el.target.style.display = \"none\";\r\n\r\n var calendar = document.getElementsByClassName(\"deliveryCalendar\");\r\n if (calendar && calendar.item(0)) {\r\n calendar.item(0)!.removeAttribute(\"hidden\");\r\n }\r\n}\r\n\r\nfunction showHideCheckoutBox() {\r\n var basketEmpty = document.getElementById(\"basketEmptyText\");\r\n var checkoutBox = document.getElementsByClassName(\"checkout-box-container\")?.item(0);\r\n if (checkoutBox) {\r\n if (basketEmpty) {\r\n checkoutBox.setAttribute(\"hidden\", \"hidden\");\r\n } else {\r\n checkoutBox.removeAttribute(\"hidden\");\r\n }\r\n }\r\n}\r\n\r\nfunction isBasketEmpty() {\r\n var basketEmptyEl = document.getElementById(\"basketEmptyText\");\r\n\r\n return basketEmptyEl != null && basketEmptyEl != undefined;\r\n}\r\n","// Getter&Setter Delivered / Click & Collect buttons\r\nvar deliveryOptionsPersist =\r\n{\r\n\r\n getSelectedDeliveryTypeOption: function () {\r\n if (this.isLocalStorageSupported()) {\r\n return window.sessionStorage.getItem('gak_selected_delivery_type_option');\r\n }\r\n },\r\n saveSelectedDeliveryTypeOption: function (selectedDot) {\r\n if (this.isLocalStorageSupported()) {\r\n if (!selectedDot) {\r\n window.sessionStorage.removeItem('gak_selected_delivery_type_option');\r\n }\r\n else {\r\n window.sessionStorage.setItem('gak_selected_delivery_type_option', selectedDot);\r\n }\r\n }\r\n },\r\n resetSelectedDeliveryTypeOption: function () {\r\n this.saveSelectedDeliveryTypeOption(null);\r\n },\r\n\r\n getSelectedDelivery: function () {\r\n if (this.isLocalStorageSupported()) {\r\n var tempObj = window.sessionStorage.getItem('gak_selected_delivery_option');\r\n return tempObj ? JSON.parse(tempObj) : null;\r\n }\r\n },\r\n saveSelectedDelivery: function (selectedDeliveryTypeID, selectedDeliveryDate, isForceSetValues) {\r\n if (isForceSetValues || (selectedDeliveryTypeID && selectedDeliveryDate)) {\r\n var newDlv = {\r\n deliveryTypeID: selectedDeliveryTypeID,\r\n deliveryDate: selectedDeliveryDate\r\n };\r\n if (this.isLocalStorageSupported()) {\r\n window.sessionStorage.setItem('gak_selected_delivery_option', JSON.stringify(newDlv));\r\n }\r\n }\r\n },\r\n\r\n resetSelectedDelivery: function () {\r\n this.saveSelectedDelivery(null, null, true);\r\n },\r\n\r\n // Other functions\r\n resetAllDelvOpts: function () {\r\n this.resetSelectedDeliveryTypeOption();\r\n //saveSelectedDeliveryRegion(null);\r\n this.resetSelectedDelivery();\r\n },\r\n isLocalStorageSupported: function () {\r\n var testKey = 'test', storage = window.sessionStorage;\r\n try {\r\n storage.setItem(testKey, '1');\r\n storage.removeItem(testKey);\r\n return true;\r\n } catch (error) {\r\n console.log(error, \"isLocalStorageSupported\", 59);\r\n return false;\r\n }\r\n }\r\n}\r\n\r\nexport { deliveryOptionsPersist }","/*!\n * paypal-js v7.0.3 (2023-09-19T14:17:47.731Z)\n * Copyright 2020-present, PayPal, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction findScript(url, attributes) {\n var currentScript = document.querySelector(\"script[src=\\\"\".concat(url, \"\\\"]\"));\n if (currentScript === null)\n return null;\n var nextScript = createScriptElement(url, attributes);\n // ignore the data-uid-auto attribute that gets auto-assigned to every script tag\n var currentScriptClone = currentScript.cloneNode();\n delete currentScriptClone.dataset.uidAuto;\n // check if the new script has the same number of data attributes\n if (Object.keys(currentScriptClone.dataset).length !==\n Object.keys(nextScript.dataset).length) {\n return null;\n }\n var isExactMatch = true;\n // check if the data attribute values are the same\n Object.keys(currentScriptClone.dataset).forEach(function (key) {\n if (currentScriptClone.dataset[key] !== nextScript.dataset[key]) {\n isExactMatch = false;\n }\n });\n return isExactMatch ? currentScript : null;\n}\nfunction insertScriptElement(_a) {\n var url = _a.url, attributes = _a.attributes, onSuccess = _a.onSuccess, onError = _a.onError;\n var newScript = createScriptElement(url, attributes);\n newScript.onerror = onError;\n newScript.onload = onSuccess;\n document.head.insertBefore(newScript, document.head.firstElementChild);\n}\nfunction processOptions(options) {\n var sdkBaseUrl = \"https://www.paypal.com/sdk/js\";\n if (options.sdkBaseUrl) {\n sdkBaseUrl = options.sdkBaseUrl;\n delete options.sdkBaseUrl;\n }\n var optionsWithStringIndex = options;\n var _a = Object.keys(optionsWithStringIndex)\n .filter(function (key) {\n return (typeof optionsWithStringIndex[key] !== \"undefined\" &&\n optionsWithStringIndex[key] !== null &&\n optionsWithStringIndex[key] !== \"\");\n })\n .reduce(function (accumulator, key) {\n var value = optionsWithStringIndex[key].toString();\n key = camelCaseToKebabCase(key);\n if (key.substring(0, 4) === \"data\") {\n accumulator.dataAttributes[key] = value;\n }\n else {\n accumulator.queryParams[key] = value;\n }\n return accumulator;\n }, {\n queryParams: {},\n dataAttributes: {},\n }), queryParams = _a.queryParams, dataAttributes = _a.dataAttributes;\n if (queryParams[\"merchant-id\"] &&\n queryParams[\"merchant-id\"].indexOf(\",\") !== -1) {\n dataAttributes[\"data-merchant-id\"] = queryParams[\"merchant-id\"];\n queryParams[\"merchant-id\"] = \"*\";\n }\n return {\n url: \"\".concat(sdkBaseUrl, \"?\").concat(objectToQueryString(queryParams)),\n dataAttributes: dataAttributes,\n };\n}\nfunction camelCaseToKebabCase(str) {\n var replacer = function (match, indexOfMatch) {\n return (indexOfMatch ? \"-\" : \"\") + match.toLowerCase();\n };\n return str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, replacer);\n}\nfunction objectToQueryString(params) {\n var queryString = \"\";\n Object.keys(params).forEach(function (key) {\n if (queryString.length !== 0)\n queryString += \"&\";\n queryString += key + \"=\" + params[key];\n });\n return queryString;\n}\nfunction createScriptElement(url, attributes) {\n if (attributes === void 0) { attributes = {}; }\n var newScript = document.createElement(\"script\");\n newScript.src = url;\n Object.keys(attributes).forEach(function (key) {\n newScript.setAttribute(key, attributes[key]);\n if (key === \"data-csp-nonce\") {\n newScript.setAttribute(\"nonce\", attributes[\"data-csp-nonce\"]);\n }\n });\n return newScript;\n}\n\n/**\n * Load the Paypal JS SDK script asynchronously.\n *\n * @param {Object} options - used to configure query parameters and data attributes for the JS SDK.\n * @param {PromiseConstructor} [PromisePonyfill=window.Promise] - optional Promise Constructor ponyfill.\n * @return {Promise} paypalObject - reference to the global window PayPal object.\n */\nfunction loadScript(options, PromisePonyfill) {\n if (PromisePonyfill === void 0) { PromisePonyfill = Promise; }\n validateArguments(options, PromisePonyfill);\n // resolve with null when running in Node or Deno\n if (typeof document === \"undefined\")\n return PromisePonyfill.resolve(null);\n var _a = processOptions(options), url = _a.url, dataAttributes = _a.dataAttributes;\n var namespace = dataAttributes[\"data-namespace\"] || \"paypal\";\n var existingWindowNamespace = getPayPalWindowNamespace(namespace);\n // resolve with the existing global paypal namespace when a script with the same params already exists\n if (findScript(url, dataAttributes) && existingWindowNamespace) {\n return PromisePonyfill.resolve(existingWindowNamespace);\n }\n return loadCustomScript({\n url: url,\n attributes: dataAttributes,\n }, PromisePonyfill).then(function () {\n var newWindowNamespace = getPayPalWindowNamespace(namespace);\n if (newWindowNamespace) {\n return newWindowNamespace;\n }\n throw new Error(\"The window.\".concat(namespace, \" global variable is not available.\"));\n });\n}\n/**\n * Load a custom script asynchronously.\n *\n * @param {Object} options - used to set the script url and attributes.\n * @param {PromiseConstructor} [PromisePonyfill=window.Promise] - optional Promise Constructor ponyfill.\n * @return {Promise} returns a promise to indicate if the script was successfully loaded.\n */\nfunction loadCustomScript(options, PromisePonyfill) {\n if (PromisePonyfill === void 0) { PromisePonyfill = Promise; }\n validateArguments(options, PromisePonyfill);\n var url = options.url, attributes = options.attributes;\n if (typeof url !== \"string\" || url.length === 0) {\n throw new Error(\"Invalid url.\");\n }\n if (typeof attributes !== \"undefined\" && typeof attributes !== \"object\") {\n throw new Error(\"Expected attributes to be an object.\");\n }\n return new PromisePonyfill(function (resolve, reject) {\n // resolve with undefined when running in Node or Deno\n if (typeof document === \"undefined\")\n return resolve();\n insertScriptElement({\n url: url,\n attributes: attributes,\n onSuccess: function () { return resolve(); },\n onError: function () {\n var defaultError = new Error(\"The script \\\"\".concat(url, \"\\\" failed to load. Check the HTTP status code and response body in DevTools to learn more.\"));\n return reject(defaultError);\n },\n });\n });\n}\nfunction getPayPalWindowNamespace(namespace) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return window[namespace];\n}\nfunction validateArguments(options, PromisePonyfill) {\n if (typeof options !== \"object\" || options === null) {\n throw new Error(\"Expected an options object.\");\n }\n if (typeof PromisePonyfill !== \"undefined\" &&\n typeof PromisePonyfill !== \"function\") {\n throw new Error(\"Expected PromisePonyfill to be a function.\");\n }\n}\n\n// replaced with the package.json version at build time\nvar version = \"7.0.3\";\n\nexport { loadCustomScript, loadScript, version };\n","import { loadScript, PayPalScriptOptions } from \"@paypal/paypal-js\";\r\nimport { ShoppingBasket_ProceedToCheckout } from './gak-ShoppingBasket';\r\n\r\ndeclare const ShoppingBasketParms: any;\r\nconst requestHeaders: HeadersInit = new Headers();\r\nrequestHeaders.set('Content-Type', 'application/json');\r\n\r\nconst DisabledFundings = \"card,bancontact,blik,eps,giropay,ideal,mercadopago,mybank,p24,sepa,sofort,venmo\";\r\n\r\nexport function loadPayPalButton(\r\n scriptOptions: PayPalScriptOptions,\r\n label?:\r\n | \"paypal\"\r\n | \"checkout\"\r\n | \"buynow\"\r\n | \"pay\"\r\n | \"installment\"\r\n | \"subscribe\"\r\n | \"donate\",\r\n isSlideOutBasket = false) {\r\n var paypalButtonContainer = document.getElementById(\"paypal-button-container\");\r\n if (paypalButtonContainer) {\r\n scriptOptions.disableFunding = DisabledFundings;\r\n loadScript(scriptOptions)\r\n .then((paypal) => {\r\n paypal!.Buttons!({\r\n style: {\r\n shape: \"pill\",\r\n height: 41,\r\n label: label,\r\n disableMaxWidth: true\r\n },\r\n createOrder: function () {\r\n if (isSlideOutBasket) {\r\n return fetch(ShoppingBasketParms.CheckoutWithPayPalURL, {\r\n method: 'POST',\r\n }).then(function (res) {\r\n if (res.ok)\r\n return PayPalSetExpressCheckout();\r\n });\r\n }\r\n else {\r\n const updateForm = document.getElementById(\"UpdateStockForm\");\r\n const dojj = (document.getElementById(\"dojj\"))!;\r\n const url = updateForm.getAttribute('action')!;\r\n const data = new FormData(updateForm);\r\n\r\n data.set(\"btoajDelvOptParams\", dojj.value);\r\n data.set(\"checkout\", \"pp\");\r\n data.set(\"IsDigitalWallet\", \"false\");\r\n\r\n return fetch(url, {\r\n method: 'POST',\r\n body: data,\r\n }).then(function () {\r\n return PayPalSetExpressCheckout();\r\n })\r\n }\r\n },\r\n onApprove(data) {\r\n const ppButton = document.createElement(\"button\");\r\n\r\n ppButton.setAttribute(\"data-payment-mehtod\", \"PAYPAL\")\r\n ppButton.addEventListener(\"click\", ShoppingBasket_ProceedToCheckout);\r\n ppButton.click();\r\n\r\n return fetch(ShoppingBasketParms.PayPalSettle, {\r\n method: \"POST\",\r\n headers: requestHeaders,\r\n body: JSON.stringify({\r\n token: data.orderID,\r\n payerId: data.payerID\r\n })\r\n }).then((response) => response.json())\r\n .then((orderData) => {\r\n if (orderData.success === true) {\r\n let spinner = document.querySelector(\".page-loading-spinner.darker\");\r\n if (spinner) {\r\n spinner.classList.remove(\"hidden\");\r\n }\r\n\r\n let modalBasket = document.getElementById(\"modalbasket\");\r\n\r\n if (modalBasket) {\r\n modalBasket.setAttribute(\"hidden\", \"hidden\");\r\n }\r\n window.location.href = ShoppingBasketParms.PayPalConfirm;\r\n } else {\r\n window.location.href = ShoppingBasketParms.PayPalErrorURL;\r\n }\r\n });\r\n },\r\n onError(err) {\r\n window.location.href = ShoppingBasketParms.PayPalErrorURL;\r\n }\r\n }).render('#paypal-button-container');\r\n })\r\n .catch((err) => {\r\n console.error(\"failed to load the PayPal JS SDK script\", err);\r\n });\r\n }\r\n\r\n function PayPalSetExpressCheckout() {\r\n return fetch(ShoppingBasketParms.PayPalSetExpressCheckout, {\r\n method: 'post',\r\n headers: requestHeaders\r\n }).then(function (res) {\r\n return res.json();\r\n }).then(function (data) {\r\n return data.token;\r\n });\r\n }\r\n}","import Utils from './utils'\r\ndeclare var setPriceDisplayTypeUrl: string;\r\n\r\nexport default class PriceHelper {\r\n public static isVATExPrice: boolean = false;\r\n public static formatter = new Intl.NumberFormat('en-GB', { style: 'currency', currency: 'GBP' });\r\n\r\n constructor() {\r\n this.initVATExPrice();\r\n }\r\n\r\n public initVATExPrice() {\r\n if (!this.getPDCookieAndSetFlag()) {\r\n fetch(setPriceDisplayTypeUrl,\r\n {\r\n method: 'POST'\r\n }\r\n ).then(this.getPDCookieAndSetFlag);\r\n }\r\n }\r\n\r\n public getPDCookieAndSetFlag(): boolean {\r\n var cookie = Utils.getCookie('pdt');\r\n if (cookie != null) {\r\n PriceHelper.isVATExPrice = cookie.split(',').length > 0 && cookie.split(',')[0] === \"VE\";\r\n if (PriceHelper.isVATExPrice) {\r\n PriceHelper.setPriceDisplay();\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public static setPriceDisplay() {\r\n var elements = document.querySelectorAll('[data-price][data-pricevatex]');\r\n\r\n elements.forEach(function (el) {\r\n if (el != undefined) {\r\n var price: number = Number(el.querySelector('span')?.dataset?.price);\r\n var priceVATEx: number = Number(el.querySelector('span')?.dataset?.pricevatex);\r\n\r\n if (PriceHelper.isVATExPrice && !isNaN(priceVATEx)) {\r\n el.textContent = PriceHelper.formatter.format(priceVATEx);\r\n } else if (!PriceHelper.isVATExPrice && !isNaN(price)) {\r\n el.textContent = PriceHelper.formatter.format(price);\r\n }\r\n }\r\n });\r\n\r\n //For listing pages\r\n var isVatExelements = document.querySelectorAll('[data - isvatex]')!;\r\n\r\n isVatExelements.forEach(function (el) {\r\n el.querySelector('span')!.dataset.isvatex = String(PriceHelper.isVATExPrice)\r\n });\r\n }\r\n\r\n\r\n static formatPrice(price: number) {\r\n return PriceHelper.formatter.format(price);\r\n };\r\n\r\n static displayPrices() {\r\n PriceHelper.setPriceDisplay();\r\n }\r\n static excludeVAT(price: number, rate: number) {\r\n if (price > 0) {\r\n return Math.round((price / (1 + rate)) * 100) / 100;\r\n }\r\n return 0;\r\n }\r\n}","import { CookieConsentService } from \"./cookie-consent.js\";\r\nimport { GoogleScriptsService, FacebookScriptsService } from \"./tracking-scripts.js\";\r\nimport Swiper, { Navigation, Zoom, Pagination, Thumbs } from 'swiper';\r\nimport { pushEnhancedEcommerce, pushAddToCart, pushProductView } from \"./enhanced-ecommerce.js\";\r\nimport Utils from \"./utils\";\r\nimport PriceHelper from \"./price-helper\";\r\nimport { ShoppingBasket_BindEvents } from './gak-ShoppingBasket'\r\nimport { SetDojj } from './gak-DeliveryOptions';\r\nimport { ShoppingBasket_UpdateItemCount } from './common';\r\nimport { initBasketPanelSwiper } from './shopping-basket-panel';\r\nimport { loadPayPalButton } from './gak-PayPalButton';\r\nimport { getFormattedPrice } from './price-formatter';\r\n\r\ndeclare var ShoppingBasketParms: any;\r\ndeclare var productDetailsParams: any;\r\ndeclare var EuroPrice_CurrencySymbol: any;\r\ndeclare var EuroPrice_ConversionRate: any;\r\n\r\nwindow.onload = function () {\r\n ProductDetails_BindEvents();\r\n pushEnhancedEcommerce();\r\n pushProductView();\r\n};\r\n\r\nfunction showWaitElement(show: any) {\r\n var waitElem = document.getElementsByClassName(\"wait-spinner\")!.item(0)!;\r\n if (waitElem) {\r\n if (show) waitElem.classList.remove('hidden');\r\n else waitElem.classList.add('hidden');\r\n }\r\n}\r\n\r\nfunction showItemAddedAlert() {\r\n var basketAlert = document.getElementById(\"basketAlert\");\r\n var alertText = document.querySelector(\"#basketAlert p\");\r\n\r\n if (basketAlert && alertText) {\r\n basketAlert.className = \"[ alert ] [ bg-green-1 text-green text-15 text-md-16 ]\";\r\n alertText.textContent = \"1x item added to basket\";\r\n }\r\n}\r\nfunction ProductDetails_BindEvents() {\r\n getDynamicData();\r\n\r\n var addToBasketButton = document.querySelectorAll(\".add-to-basket-button\");\r\n\r\n addToBasketButton.forEach(function (button) {\r\n button.addEventListener(\"click\", function () {\r\n ProductDetail_AddProductToOrder(productDetailsParams.ProductID, productDetailsParams.Title, productDetailsParams.FbContentIDS, 1);\r\n });\r\n button.removeAttribute(\"disabled\");\r\n button.removeAttribute(\"data-modal-disabled\");\r\n button.classList.remove(\"btn-disabled\");\r\n });\r\n\r\n bindAddToBasketFromPanel();\r\n\r\n //about finance link\r\n var financeLink = document.querySelector(\"a[href='#about-finance']\");\r\n if (financeLink) {\r\n financeLink.addEventListener(\"click\", function (evt) {\r\n evt.preventDefault();\r\n let financeTab = document.getElementById(\"financeTab\");\r\n if (financeTab) {\r\n financeTab.click();\r\n let detailsSection = document.querySelector('.pdp-full-details ');\r\n if (detailsSection) {\r\n detailsSection.scrollIntoView({ behavior: \"smooth\" });\r\n }\r\n }\r\n });\r\n }\r\n\r\n //description read more button\r\n let descriptionTabContents = document.getElementById(\"t1\");\r\n if (descriptionTabContents) {\r\n if (descriptionTabContents.getBoundingClientRect().height > 550) {\r\n let toggleContents = document.querySelector(\"#t1 .toggle-parent .toggle-content\");\r\n if (toggleContents) {\r\n toggleContents.classList.add('show-more-item');\r\n }\r\n let toggleButtons = document.querySelector(\"#t1 .toggle-parent .toggle-control\");\r\n if (toggleButtons) {\r\n toggleButtons.classList.remove('hidden');\r\n }\r\n addToggleEvent();\r\n }\r\n }\r\n\r\n var ToggleButtons = document.querySelectorAll('[data-toggle-parent]');\r\n if (ToggleButtons.length) {\r\n ToggleButtons.forEach(function (toggle) {\r\n if (!toggle.classList.contains('click-bound')) {\r\n toggle.classList.add('click-bound');\r\n toggle.addEventListener('click', function (e) {\r\n let elem = e.target as HTMLElement;\r\n if (elem.getAttribute('aria-expanded') == \"false\") {\r\n elem.setAttribute('aria-expanded', 'true')\r\n }\r\n else {\r\n elem.setAttribute('aria-expanded', 'false');\r\n }\r\n })\r\n }\r\n })\r\n }\r\n\r\n\r\n let buyNowWithPayPal = document.getElementById(\"buyNowWithPayPal\");\r\n\r\n if (buyNowWithPayPal) {\r\n buyNowWithPayPal.addEventListener(\"click\", function (e: any) {\r\n buyNowWithPayPal_do(false);\r\n });\r\n\r\n buyNowWithPayPal.classList.remove(\"btn-disabled\");\r\n }\r\n\r\n const checkoutWithPayPalbtn = document.getElementById(\"paypal-button-container\");\r\n\r\n if (checkoutWithPayPalbtn) {\r\n loadPayPalButton({\r\n clientId: ShoppingBasketParms.PaylPalClientId,\r\n currency: \"GBP\",\r\n components: \"messages,buttons\"\r\n }, \"checkout\", true);\r\n }\r\n\r\n const products = document.querySelectorAll(\".list-view li\");\r\n products.forEach(function (productItem) {\r\n productItem.addEventListener('mouseover', function () {\r\n productItem.classList.add('hover');\r\n });\r\n productItem.addEventListener('mouseout', function () {\r\n productItem.classList.remove('hover');\r\n });\r\n });\r\n\r\n function getDynamicData() {\r\n const requestHeaders: HeadersInit = new Headers();\r\n requestHeaders.set('Content-Type', 'application/json');\r\n\r\n var data = { productId: productDetailsParams.ProductID };\r\n\r\n fetch(`${productDetailsParams.GetBStockProductsURL}?productId=${data.productId}`, {\r\n method: 'GET'\r\n }).then(response => {\r\n if (response.ok) {\r\n return response.text();\r\n }\r\n }).then(function (data: any) {\r\n if (data && data.trim().length > 0) {\r\n var tabContainer = document.querySelector(\"[data-tab-name='bstock']\");\r\n var bStockTab = document.getElementById(\"bStockTab\");\r\n\r\n if (bStockTab && tabContainer) {\r\n bStockTab.classList.remove(\"visually-hidden\");\r\n tabContainer.innerHTML = data;\r\n }\r\n }\r\n });\r\n\r\n if (!productDetailsParams.SkipGetDynamicData) {\r\n fetch(productDetailsParams.GetDynamicDataURL, {\r\n method: 'POST',\r\n body: JSON.stringify(data),\r\n headers: requestHeaders\r\n }).then(response => response.json())\r\n .then(function (data: any) {\r\n processDeliveryTimingDisplayData(data.timingDisplayData);\r\n processStockStatusData(data.stockStatusData);\r\n });\r\n }\r\n\r\n function processDeliveryTimingDisplayData(data: any) {\r\n productDetailsParams.DeliveryNextDayPossible = data.nextDayDeliveryPossible;\r\n productDetailsParams.DeliveryCutOffDisplay = data.deliveryCutOffTimeDisplay;\r\n productDetailsParams.DeliveryCutOffms = data.deliveryCutOffMsSinceUnixEpoch;\r\n }\r\n function processStockStatusData(data: any) {\r\n if (!data.inStock) {\r\n let elem = document.getElementById('inStock');\r\n if (elem) document.getElementById('inStock')!.style.display = \"none\";\r\n loadNotifyMeDiv();\r\n }\r\n else {\r\n var msgHtml = data.msg2 || data.msg1 || (data.inStock ? \"Next day delivery\" + (data.isEligibleClickAndCollect ? \" or Click & Collect\" : \"\") : \"Out of stock,
    available to order\");\r\n if (msgHtml === productDetailsParams.CollectionDeliveryMsg) msgHtml = \"\";\r\n let deliveryInfoMessage = data.msg2 || data.msg1 || (data.inStock ? \"Next day delivery\" + (data.isEligibleClickAndCollect ? \" or Click & Collect\" : \"\") : \"Out of stock,
    available to order\");\r\n let deliveryInfoElems = document.querySelectorAll('.pdp-heading-reviews .delivery-info');\r\n deliveryInfoElems.forEach(function (element) {\r\n (element as HTMLElement).style.display = \"block\";\r\n element.innerHTML = deliveryInfoMessage;\r\n });\r\n\r\n var nowMs = (new Date).getUTCMilliseconds();\r\n\r\n if (productDetailsParams.DeliveryNextDayPossible && data.isNextDay && data.inStock && productDetailsParams.DeliveryCutOffms > nowMs)\r\n setCountDown(productDetailsParams.DeliveryCutOffms);\r\n }\r\n\r\n if (data.isEligibleClickAndCollect) {\r\n let elem = document.getElementById('clickAndCollect');\r\n if (elem) document.getElementById('clickAndCollect')!.style.display = \"flex\";\r\n }\r\n\r\n let usps = document.getElementById('product-usps');\r\n if (usps) usps.style.opacity = \"1\";\r\n }\r\n\r\n\r\n function loadHtmlWithRecaptcha(htmlContent: string) {\r\n let parser = new DOMParser();\r\n const doc = parser.parseFromString(htmlContent, 'text/html');\r\n\r\n var recaptchaContainer = doc.getElementsByClassName('ajaxRecaptchaContainer');\r\n\r\n if (recaptchaContainer && recaptchaContainer.item(0))\r\n recaptchaContainer.item(0)!.getElementsByTagName('script')!.item(0)!.remove();\r\n\r\n var notifyMeWhenInStockDiv = document.getElementById(\"notifyMeWhenInStockDiv\");\r\n\r\n if (notifyMeWhenInStockDiv)\r\n document.getElementById(\"notifyMeWhenInStockDiv\")!.innerHTML = htmlContent;\r\n\r\n var recaptchaElem = document.getElementsByClassName('g-recaptcha')!;\r\n if (typeof grecaptcha !== 'undefined' && grecaptcha && grecaptcha.render && recaptchaElem.length > 0) {\r\n grecaptcha.render((recaptchaElem.item(0)));\r\n }\r\n }\r\n\r\n function onNotifyMeWhenInStock(e: any) {\r\n if (e.success) {\r\n let modal = document.getElementById('notifyMeWhenInStockModal');\r\n var msgClass = e.success ? 'text-success success' : 'text-danger';\r\n var newDiv = '
    ' + e.message + '
    ';\r\n let div = document.getElementById(\"notifyMeWhenInStockDiv\");\r\n if (div) div.innerHTML = newDiv;\r\n let defaultContent = document.getElementById('notify-default');\r\n let defaultSuccess = document.getElementById('notify-success');\r\n if (defaultContent) defaultContent.classList.add(\"hidden\");\r\n if (defaultSuccess) defaultSuccess.classList.remove(\"hidden\");\r\n }\r\n else {\r\n let elem = document.getElementById('notifyMeWhenInStockModalErrorList')\r\n if (elem) elem.textContent = e.message;\r\n document.getElementById('notifyMeWhenInStockModalErrors')?.classList?.remove('hidden');\r\n }\r\n }\r\n\r\n // Notify Me When In Stock Div\r\n function loadNotifyMeDiv() {\r\n\r\n var recaptchaS = document.createElement(\"script\");\r\n recaptchaS.setAttribute(\"src\", \"https://www.google.com/recaptcha/api.js\");\r\n document.body.appendChild(recaptchaS);\r\n\r\n fetch(productDetailsParams.NotifyMeURL,\r\n {\r\n method: 'GET',\r\n cache: 'no-cache'\r\n }).then(response => response.text())\r\n .then(function (data) {\r\n loadHtmlWithRecaptcha(data);\r\n var modal = document.getElementById(\"notifyMeWhenInStockModal\");\r\n\r\n if (modal)\r\n modal.setAttribute('data-modal', '');\r\n\r\n var notifyMeBtn = document.getElementsByClassName('notifyMeWhenInStockBtn')!.item(0)!;\r\n\r\n if (notifyMeBtn) {\r\n\r\n notifyMeBtn.setAttribute('data-modal-open', 'notifyMeWhenInStockModal');\r\n\r\n (window as any).ARIAmodal.init();\r\n\r\n notifyMeBtn.addEventListener('click', function () {\r\n let notifyModal = document.getElementById('notifyMeWhenInStockModal')!;\r\n\r\n document.getElementById('notifyMeWhenInStockModalErrors')!.classList.add('hidden');\r\n\r\n if (typeof grecaptcha !== 'undefined' && grecaptcha && grecaptcha.reset) {\r\n grecaptcha.reset();\r\n }\r\n\r\n notifyModal.style.display = \"block\";\r\n });\r\n }\r\n var btnSubmit = document.getElementById(\"btnSubmit\")!;\r\n if (btnSubmit) {\r\n btnSubmit.addEventListener(\"click\", function (e) {\r\n var notifyForm = (document.querySelector('#notifyMeWhenInStockForm')!);\r\n let data = new FormData(notifyForm);\r\n\r\n fetch(productDetailsParams.NotifyMeURL, {\r\n method: 'POST',\r\n body: data\r\n }).then(response => response.json())\r\n .then(function (data) {\r\n onNotifyMeWhenInStock(data);\r\n });\r\n });\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\nfunction bindAddToBasketFromPanel() {\r\n var addToBasketFromPanel = document.querySelectorAll(\".add-to-basket-from-panel-button\");\r\n\r\n addToBasketFromPanel.forEach(function (button: any) {\r\n button.addEventListener(\"click\", function () {\r\n const productCard = button.closest(\".product-card\");\r\n const productId = productCard.getAttribute(\"data-id\");\r\n const title = productCard.getAttribute(\"data-name\");\r\n ProductDetail_AddProductToOrder(productId, title, productDetailsParams.FbContentIDS, 1);\r\n });\r\n });\r\n\r\n var addCompanionToBasketFromPanel = document.querySelectorAll(\".add-companion-to-basket-from-panel-button\");\r\n\r\n addCompanionToBasketFromPanel.forEach(function (button: any) {\r\n button.addEventListener(\"click\", function () {\r\n const companionCard = button.closest(\".product-card\");\r\n const companionProductId = companionCard.getAttribute(\"data-id\");\r\n const primaryProductId = companionCard.getAttribute(\"data-primary-product-id\");\r\n\r\n if (primaryProductId)\r\n ProductDetail_AddCompanaionToOrder(+primaryProductId, +companionProductId);\r\n });\r\n });\r\n}\r\n\r\n//function loadVideo(url) {\r\n// $('#videoIframe').prop('src', url);\r\n// $('#remoteVideoModal').modal('show');\r\n//}\r\n\r\nfunction ProductDetail_GoToShoppingBasket(facebookFeedId?: any, basketErrorId?: number) {\r\n if (facebookFeedId != null && facebookFeedId != \"\" && CookieConsentService.didConsentToAllCookies()) {\r\n // Facebook Track code\r\n // AddToCart\r\n // Track when items are added to a shopping cart (ex. click/landing page on Add to Cart button)\r\n\r\n FacebookScriptsService.addFacebookTracking(false);\r\n var fbq = FacebookScriptsService.getFbq();\r\n fbq('track', 'AddToCart', {\r\n content_type: 'product', // Required for Dynamic Product Ads\r\n content_ids: facebookFeedId // Required for Dynamic Product Ads\r\n });\r\n // End Facebook Track code\r\n }\r\n\r\n window.location.href = ShoppingBasketParms.GoToShoppingBasketURL;\r\n}\r\n\r\n// It will add the product and quantity to the basket, taking into account that the underlyingProduct must be created as an order item also.\r\nfunction ProductDetail_AddFreeGift(theModalDialog: any, theSlickElement: any, theJqueryProduct: any, underlyingProductId: number, underlyingProductFacebookFeedId: any, maxItemsAllowed: number) {\r\n\r\n ShoppingBasketParms.FreeGiftList.push({\r\n productId: parseInt(theJqueryProduct.attr(\"myId\")),\r\n //quantity: parseInt(theJqueryProduct.attr(\"myQuantity\")),\r\n masterProductId: underlyingProductId,\r\n facebookFeedId: underlyingProductFacebookFeedId\r\n });\r\n\r\n //if (ShoppingBasketParms.FreeGiftList.length >= maxItemsAllowed) {\r\n // // Proceed to add the FreeGifts To Order.\r\n // //ProductDetail_AddFreeGiftsToOrder();\r\n // theModalDialog.modal('toggle'); // Closing the modal makes the AddFreeGiftsToOrder being invoked.\r\n //}\r\n //else {\r\n // // Remove the selected item\r\n // // http://stackoverflow.com/questions/30739499/slick-js-how-to-remove-current-slide\r\n // //theJqueryProduct.addClass(\"hidden\");\r\n // var i = theJqueryProduct.attr(\"data-slick-index\");\r\n // theSlickElement.slick('slickRemove', i);\r\n // $(\"div.slick-slide\").each(function () {\r\n // var j = $(this).attr(\"data-slick-index\");\r\n // if (j > i) {\r\n // $(this).attr(\"data-slick-index\", j - 1);\r\n // }\r\n // });\r\n\r\n //}\r\n}\r\n\r\nexport function ProductDetail_AddCompanaionToOrder(primaryProductId: number, companionId: number) {\r\n if (primaryProductId === null || companionId == null) return;\r\n\r\n const requestHeaders: HeadersInit = new Headers();\r\n requestHeaders.set('Content-Type', 'application/json');\r\n\r\n var body = { primaryId: primaryProductId, companionId: companionId };\r\n\r\n fetch(ShoppingBasketParms.AddCompanionToOrderURL, {\r\n method: 'POST',\r\n headers: requestHeaders,\r\n body: JSON.stringify(body)\r\n }).then(response => response.json())\r\n .then(function (data: any) {\r\n if (data.success) {\r\n loadBasketPanel(function () {\r\n pushAddToCart(primaryProductId, 1);\r\n });\r\n\r\n if (data.basketErrorId) {\r\n var checkoutBtn = document.getElementById(\"checkout-btn\");\r\n var basketButton = document.getElementById(\"basketButton\");\r\n var errorUrl = `${ShoppingBasketParms.GoToShoppingBasketURL}?errorId=${data.basketErrorId}`;\r\n if (checkoutBtn)\r\n checkoutBtn.setAttribute(\"href\", errorUrl);\r\n\r\n if (basketButton)\r\n basketButton.setAttribute(\"data-url\", errorUrl);\r\n }\r\n\r\n showItemAddedAlert();\r\n ShoppingBasket_UpdateItemCount();\r\n }\r\n });\r\n}\r\n\r\nexport function ProductDetail_AddProductToOrder(productId: number, productTitle: string, facebookFeedId: any, productQuantity: number, redirectToBasket?: any) {\r\n if (productId === null) return;\r\n const requestHeaders: HeadersInit = new Headers();\r\n requestHeaders.set('Content-Type', 'application/json');\r\n\r\n var body = { productId: productId, quantity: productQuantity }\r\n\r\n var basketEmptyMessage = document.getElementById(\"basketEmptyMessage\")!;\r\n var modalBasketContent = document.getElementById(\"modalBasketContent\")!;\r\n var modalBasketTotals = document.getElementById(\"modalBasketTotals\")!;\r\n\r\n modalBasketContent.removeAttribute(\"hidden\");\r\n modalBasketTotals.removeAttribute(\"hidden\");\r\n basketEmptyMessage.setAttribute(\"hidden\", \"hidden\");\r\n\r\n fetch(ShoppingBasketParms.AddProductToOrderURL, {\r\n method: 'POST',\r\n headers: requestHeaders,\r\n body: JSON.stringify(body)\r\n }).then(response => response.json())\r\n .then(function (data: any) {\r\n if (data.success) {\r\n loadBasketPanel(function () {\r\n pushAddToCart(productId, 1);\r\n });\r\n\r\n if (redirectToBasket) {\r\n ProductDetail_GoToShoppingBasket(facebookFeedId, data.basketErrorId);\r\n }\r\n\r\n if (data.basketErrorId) {\r\n let checkoutBtn = document.getElementById(\"checkout-btn\");\r\n let basketButton = document.getElementById(\"basketButton\");\r\n let errorUrl = `${ShoppingBasketParms.GoToShoppingBasketURL}?errorId=${data.basketErrorId}`;\r\n if (checkoutBtn)\r\n checkoutBtn.setAttribute(\"href\", errorUrl);\r\n\r\n if (basketButton)\r\n basketButton.setAttribute(\"data-url\", errorUrl);\r\n }\r\n\r\n showItemAddedAlert();\r\n ShoppingBasket_UpdateItemCount();\r\n }\r\n });\r\n}\r\nfunction waitForElm(selector: string) {\r\n return new Promise(resolve => {\r\n if (document.querySelector(selector)) {\r\n return resolve(document.querySelector(selector));\r\n }\r\n\r\n const observer = new MutationObserver(mutations => {\r\n if (document.querySelector(selector)) {\r\n resolve(document.querySelector(selector));\r\n observer.disconnect();\r\n }\r\n });\r\n\r\n observer.observe(document.body, {\r\n childList: true,\r\n subtree: true\r\n });\r\n });\r\n}\r\nexport function loadBasketPanel(callback?: any) {\r\n const body = { includeEarliestDeliveryDates: true }\r\n const requestHeaders: HeadersInit = new Headers();\r\n requestHeaders.set('Content-Type', 'application/json');\r\n\r\n fetch(ShoppingBasketParms.GetBasketItemsURL, {\r\n method: 'POST',\r\n body: JSON.stringify(body),\r\n headers: requestHeaders\r\n }).then(response => response.json())\r\n .then(function (data: any) {\r\n var ulElem = document.getElementsByClassName(\"order-process-basket\")!.item(0)!;\r\n var totalElem = document.getElementById(\"basketTotal\")!;\r\n var subTotalElem = document.getElementById(\"basketSubTotal\")!;\r\n var deliveryPriceElem = document.getElementById(\"checkoutDeliveryPrice\")!;\r\n var deliveryDescriptionElem = document.getElementById(\"checkoutDeliveryDescription\")!;\r\n var deliveryMoreOptionsElem = document.getElementById(\"checkoutDeliveryMoreOptions\")!;\r\n var basketEmptyMessage = document.getElementById(\"basketEmptyMessage\")!;\r\n var modalBasketContent = document.getElementById(\"modalBasketContent\")!;\r\n var modalBasketTotals = document.getElementById(\"modalBasketTotals\")!;\r\n\r\n if (ulElem && data.basketVm.Items.length > 0) {\r\n modalBasketContent.removeAttribute(\"hidden\");\r\n modalBasketTotals.removeAttribute(\"hidden\");\r\n basketEmptyMessage.setAttribute(\"hidden\", \"hidden\");\r\n\r\n var nonGVItems = data.basketVm.Items.filter(function (item: any) {\r\n return !item.IsGiftVoucher\r\n });\r\n var liElem = \"\";\r\n var minDeliveryPrice = 0;\r\n\r\n if (nonGVItems.length == 0) {\r\n deliveryPriceElem.textContent = getFormattedPrice(0, EuroPrice_CurrencySymbol, EuroPrice_ConversionRate);\r\n } else {\r\n SetDojj(data.deliveryOptions);\r\n var defaultDeliveryOption = data.defaultDeliveryOption;\r\n minDeliveryPrice = defaultDeliveryOption.DayPriceList[0].Price;\r\n var formattedPrice = getFormattedPrice(minDeliveryPrice, EuroPrice_CurrencySymbol, EuroPrice_ConversionRate);\r\n\r\n deliveryPriceElem.textContent = formattedPrice;\r\n deliveryDescriptionElem.textContent = defaultDeliveryOption.Description;\r\n\r\n if (defaultDeliveryOption.IsSuperSaverNationalRatioApplied) {\r\n deliveryMoreOptionsElem.textContent = \"For next day, special and international delivery go to checkout\";\r\n } else {\r\n deliveryMoreOptionsElem.textContent = \"For special and international delivery go to checkout\";\r\n }\r\n }\r\n data.basketVm.Items.forEach(function (item: any) {\r\n liElem +=\r\n `
  • \r\n
    \r\n \r\n \"${item.Title}\"\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n ${PriceHelper.formatPrice(item.Price)}\r\n ${setOldPrice(item)}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
  • `\r\n });\r\n\r\n setQuickBuys(data);\r\n\r\n if (subTotalElem) {\r\n subTotalElem.textContent = PriceHelper.formatPrice(data.basketVm.PriceTotalItems);\r\n }\r\n var total = data.basketVm.PriceTotalItems;\r\n\r\n if (minDeliveryPrice > 0)\r\n total += minDeliveryPrice;\r\n\r\n if (totalElem) {\r\n totalElem.textContent = PriceHelper.formatPrice(total);\r\n }\r\n\r\n ulElem.innerHTML = liElem;\r\n ShoppingBasket_BindEvents(true);\r\n }\r\n else {\r\n modalBasketContent.setAttribute(\"hidden\", \"hidden\");\r\n modalBasketTotals.setAttribute(\"hidden\", \"hidden\");\r\n basketEmptyMessage.removeAttribute(\"hidden\");\r\n ulElem.innerHTML = \"\";\r\n\r\n var swiper = document.querySelector(\"#quickBuysSection .swiper-wrapper\");\r\n\r\n if (swiper)\r\n swiper.closest(\"section\")!.setAttribute(\"hidden\", \"hidden\");\r\n }\r\n\r\n ShoppingBasket_UpdateItemCount();\r\n\r\n\r\n //sometime basket panel loads and disappears leaving the mask on. check if this happened\r\n let basketpanel = document.getElementById('modalbasket');\r\n if (basketpanel && basketpanel?.getAttribute('hidden') != null) {\r\n let closeButton = document.querySelector('#modalbasket .a11y-modal__close-btn') as HTMLButtonElement;\r\n if (closeButton) closeButton.click(); \r\n }\r\n\r\n if (callback)\r\n callback();\r\n });\r\n\r\n const quantitySelectMax = 20\r\n\r\n function getQuantityOptions(quantity: number) {\r\n let options = \"\";\r\n\r\n for (var i = 1; i <= quantitySelectMax; i++) {\r\n options += ``\r\n }\r\n\r\n return options;\r\n }\r\n}\r\n\r\nfunction setOldPrice(item: any) {\r\n if (item.Price < item.RRP)\r\n return `
    ${PriceHelper.formatPrice(item.RRP)}
    `;\r\n\r\n return \"\";\r\n}\r\n\r\nfunction setQuickBuys(data: any) {\r\n var companions = data.basketCompanions;\r\n var accessories = data.basketVm?.CrossSellProducts;\r\n var inStockCompanions = companions?.filter(function (item: any) {\r\n return item.IsProductStockAvailable;\r\n });\r\n var inStockAccessories = accessories?.filter(function (item: any) {\r\n return item.Availability == 1; // In Stock\r\n });\r\n\r\n if (inStockCompanions && inStockCompanions.length > 0) {\r\n renderQuickBuys(inStockCompanions);\r\n } else if (inStockAccessories && inStockAccessories.length > 0) {\r\n renderQuickBuys(inStockAccessories);\r\n } else if (companions?.length > 0) {\r\n renderQuickBuys(companions)\r\n } else if (accessories?.length > 0) {\r\n renderQuickBuys(accessories)\r\n }\r\n else {\r\n var swiper = document.querySelector(\"#quickBuysSection .swiper-wrapper\");\r\n\r\n if (swiper)\r\n swiper.closest(\"section\")!.setAttribute(\"hidden\", \"hidden\");\r\n }\r\n}\r\n\r\nfunction renderQuickBuys(items: any) {\r\n let swiperElem = \"\";\r\n let counter = 1;\r\n let swiper = document.querySelector(\"#quickBuysSection .swiper-wrapper\");\r\n\r\n if (!swiper || !items) {\r\n return;\r\n }\r\n\r\n items.forEach(function (item: any) {\r\n swiperElem +=\r\n `
    \r\n
    \r\n \r\n
    \r\n ${setSavings(item)}\r\n
    \r\n
    \r\n \r\n ${PriceHelper.formatPrice(getItemPrice(item))}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    `;\r\n\r\n counter++;\r\n });\r\n\r\n swiper.innerHTML = `${swiperElem}
     
    `;\r\n swiper.closest(\"section\")!.removeAttribute(\"hidden\");\r\n initBasketPanelSwiper();\r\n bindAddToBasketFromPanel();\r\n\r\n function setSavings(item: any) {\r\n var itemPrice = getItemPrice(item);\r\n var itemRRPPrice = Math.max(item.RRP, item.Price);\r\n var savePrice = itemRRPPrice - itemPrice;\r\n\r\n if (item.IsCompanion && savePrice > 0)\r\n return `
    Save ${PriceHelper.formatPrice(savePrice)}
    `\r\n\r\n return \"\";\r\n }\r\n\r\n function getItemPrice(item: any) {\r\n return item.IsCompanion ? Math.min(item.CompanionPrice, item.Price) : item.Price;\r\n }\r\n\r\n function getItemAddToBasketClass(item: any) {\r\n return item.IsCompanion ? 'add-companion-to-basket-from-panel-button' : 'add-to-basket-from-panel-button';\r\n }\r\n\r\n function getListName(item: any) {\r\n return item.IsCompanion ? \"Companions\" : \"Accessories\";\r\n }\r\n}\r\n\r\nfunction setCountDown(date: any) {\r\n var countDownDate = new Date(date).getTime();\r\n // Update the count down every 1 second\r\n var x = setInterval(function () {\r\n\r\n var now = new Date().getTime();\r\n\r\n var distance = countDownDate - now;\r\n var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\r\n var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\r\n var seconds = Math.floor((distance % (1000 * 60)) / 1000);\r\n\r\n if (distance < 0) {\r\n clearInterval(x);\r\n let elem1 = document.getElementById('inStock');\r\n if (elem1) document.getElementById('inStock')!.style.display = \"none\";\r\n\r\n } else {\r\n let elem2 = document.getElementById('coundDownContainer');\r\n if (elem2) document.getElementById('coundDownContainer')!.style.display = \"flex\";\r\n let countdownTime = document.getElementById(\"countdownTime\")\r\n if (countdownTime)\r\n countdownTime.innerHTML = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;\r\n }\r\n }, 1000);\r\n}\r\n\r\nfunction checkoutWithPayPal() {\r\n const requestHeaders: HeadersInit = new Headers();\r\n\r\n let checkoutWithPayPal = document.getElementById(\"checkoutWithPayPal\");\r\n let spinner = document.querySelector(\".page-loading-spinner.darker\");\r\n let addToBasketBtn = document.querySelector(\".add-to-basket-button\");\r\n let modalBasket = document.getElementById(\"modalbasket\");\r\n\r\n if (modalBasket) {\r\n modalBasket.setAttribute(\"hidden\", \"hidden\");\r\n }\r\n\r\n if (spinner) {\r\n spinner.classList.remove(\"hidden\");\r\n }\r\n\r\n requestHeaders.set('Content-Type', 'application/json');\r\n fetch(ShoppingBasketParms.CheckoutWithPayPalURL,\r\n {\r\n method: 'POST',\r\n headers: requestHeaders\r\n }\r\n ).then(response => response.json())\r\n .then(function (data: any) {\r\n if (data.success) {\r\n window.location = data.redirectUrl;\r\n }\r\n else {\r\n alert(data.message);\r\n }\r\n }).finally(() => {\r\n //On a timeout as loading Paypal takes some time\r\n setTimeout(() => {\r\n if (checkoutWithPayPal) {\r\n checkoutWithPayPal.classList.remove(\"btn-disabled\");\r\n checkoutWithPayPal.removeAttribute(\"disabled\");\r\n\r\n if (spinner) {\r\n spinner.classList.add(\"hidden\");\r\n }\r\n }\r\n\r\n if (addToBasketBtn) {\r\n addToBasketBtn.classList.remove(\"btn-disabled\");\r\n addToBasketBtn.removeAttribute(\"disabled\");\r\n }\r\n }, 3500);\r\n });\r\n}\r\n\r\n\r\nfunction buyNowWithPayPal_do(isPayPalCredit: boolean) {\r\n buyNowWithPayment(productDetailsParams.ProductID, 1, isPayPalCredit);\r\n\r\n function buyNowWithPayment(productId: any, quantity: any, isPayPalCredit: boolean) {\r\n var qty = parseInt(quantity);\r\n if (isNaN(qty)) {\r\n alert(\"Please insert a valid quantity\");\r\n } else {\r\n const requestHeaders: HeadersInit = new Headers();\r\n requestHeaders.set('Content-Type', 'application/json');\r\n\r\n var body = { productId: productId, quantity: qty, isPayPalCredit: isPayPalCredit }\r\n var addToBasketBtn = document.querySelector(\".add-to-basket-button\");\r\n\r\n if (addToBasketBtn) {\r\n addToBasketBtn.classList.add(\"btn-disabled\");\r\n addToBasketBtn.setAttribute(\"disabled\", \"true\");\r\n }\r\n var buyNowWithPayPal = document.getElementById(\"buyNowWithPayPal\");\r\n var spinner = document.querySelector(\".page-loading-spinner.darker\");\r\n\r\n if (buyNowWithPayPal) {\r\n buyNowWithPayPal.classList.add(\"btn-disabled\");\r\n buyNowWithPayPal.setAttribute(\"disabled\", \"true\");\r\n\r\n if (spinner) {\r\n spinner.classList.remove(\"hidden\");\r\n }\r\n }\r\n\r\n fetch(ShoppingBasketParms.BuyNowWithPayPalURL,\r\n {\r\n method: 'POST',\r\n headers: requestHeaders,\r\n body: JSON.stringify(body)\r\n }\r\n ).then(response => response.json())\r\n .then(function (data: any) {\r\n if (data.success) {\r\n window.location = data.redirectUrl;\r\n }\r\n else {\r\n alert(data.message);\r\n }\r\n }).finally(() => {\r\n //On a timeout as loading Paypal takes some time\r\n setTimeout(() => {\r\n if (buyNowWithPayPal) {\r\n buyNowWithPayPal.classList.remove(\"btn-disabled\");\r\n buyNowWithPayPal.removeAttribute(\"disabled\");\r\n\r\n if (spinner) {\r\n spinner.classList.add(\"hidden\");\r\n }\r\n }\r\n\r\n if (addToBasketBtn) {\r\n addToBasketBtn.classList.remove(\"btn-disabled\");\r\n addToBasketBtn.removeAttribute(\"disabled\");\r\n }\r\n }, 3500);\r\n });\r\n }\r\n }\r\n}\r\n\r\n///////////////////////////////////////////////////////////////////\r\n// Tabs //\r\n///////////////////////////////////////////////////////////////////\r\n\r\nconst Tabby = require('tabbyjs');\r\nif (document.getElementsByClassName('tabs').length) {\r\n const tabSelectors = document.querySelectorAll('[data-tabs]');\r\n\r\n tabSelectors.forEach((tabs, i) => {\r\n tabs.setAttribute(`data-tabs-${i}`, '');\r\n new Tabby(`[data-tabs-${i}]`);\r\n });\r\n\r\n\r\n\r\n /* The below code is used to scroll the tabs along when mobile users click,\r\n so they can see there are more tabs available. Safari doesn't yet support scroll-behaviour:smooth thouhg, but will soon */\r\n\r\n document.querySelectorAll('.tabs li').forEach((tabItem) => {\r\n tabItem.addEventListener('click', (elem) => {\r\n ((elem.currentTarget as HTMLElement).parentNode as HTMLElement).scrollLeft = (elem.currentTarget as HTMLElement).offsetLeft;\r\n });\r\n });\r\n}\r\n\r\n///////////////////////////////////////////////////////////////////\r\n// Carousels //\r\n///////////////////////////////////////////////////////////////////\r\nfunction initNavigationSwipers(swiperName: string, nextButton: string, prevButton: string) {\r\n let newSwiper = new Swiper(swiperName, {\r\n modules: [Navigation],\r\n direction: 'horizontal',\r\n cssMode: true,\r\n slidesPerView: \"auto\",\r\n loop: false,\r\n speed: 600,\r\n navigation: {\r\n nextEl: nextButton,\r\n prevEl: prevButton,\r\n },\r\n breakpoints: {\r\n 1024: {\r\n cssMode: false,\r\n slidesPerView: 4,\r\n spaceBetween: 40,\r\n },\r\n },\r\n });\r\n return newSwiper;\r\n}\r\n\r\nif (document.querySelector(\".thumbnail-gallery .swiper\")) {\r\n var galleryThumbs = new Swiper(\".thumbnail-gallery .swiper\", {\r\n modules: [Navigation, Pagination],\r\n centeredSlides: true,\r\n centeredSlidesBounds: true,\r\n slidesPerView: \"auto\",\r\n direction: 'horizontal',\r\n navigation: {\r\n nextEl: '.thumbnail-gallery .swiper-button-next',\r\n prevEl: '.thumbnail-gallery .swiper-button-prev',\r\n },\r\n breakpoints: {\r\n 900: {\r\n direction: 'vertical',\r\n slidesPerView: 5,\r\n },\r\n },\r\n });\r\n\r\n const gallerymain = new Swiper('.main-gallery .swiper', {\r\n modules: [Navigation, Zoom, Pagination, Thumbs],\r\n slidesPerView: \"auto\",\r\n zoom: true,\r\n loop: false,\r\n speed: 600,\r\n navigation: {\r\n nextEl: '.thumbnail-gallery .swiper-button-next',\r\n prevEl: '.thumbnail-gallery .swiper-button-prev',\r\n },\r\n thumbs: {\r\n swiper: galleryThumbs\r\n },\r\n });\r\n gallerymain.on('zoomChange', function () {\r\n var picture = document.querySelector('.main-gallery .swiper-slide.swiper-slide-active picture');\r\n var img = picture?.querySelector('img');\r\n var sourceAll = picture?.querySelectorAll('source');\r\n if (img && img.hasAttribute('data-zoomsrc') && sourceAll) {\r\n for (var i = 0, max = sourceAll.length; i < max; i++) {\r\n if (sourceAll) sourceAll[i]?.remove();\r\n }\r\n let zoomSrc = img?.getAttribute('data-zoomsrc')?.toString();\r\n if (zoomSrc) img?.setAttribute('src', zoomSrc);\r\n }\r\n });\r\n}\r\nif (document.querySelector(\".swiper.recommended\")) {\r\n const recommended = initNavigationSwipers('.swiper.recommended', '.recommended-container .swiper-button-next', '.recommended-container .swiper-button-prev');\r\n //const recommended = new Swiper('.swiper.recommended', {\r\n // modules: [Navigation],\r\n // direction: 'horizontal',\r\n // cssMode: true,\r\n // slidesPerView: \"auto\",\r\n // loop: false,\r\n // speed: 600,\r\n // navigation: {\r\n // nextEl: '.recommended-container .swiper-button-next',\r\n // prevEl: '.recommended-container .swiper-button-prev',\r\n // },\r\n // breakpoints: {\r\n // 1024: {\r\n // cssMode: false,\r\n // slidesPerView: 4,\r\n // spaceBetween: 40,\r\n // },\r\n // },\r\n //});\r\n}\r\nif (document.querySelector(\".swiper.alsobought\")) {\r\n const alsobought = initNavigationSwipers('.swiper.alsobought', '.alsobought-container .swiper-button-next', '.alsobought-container .swiper-button-prev');\r\n //const alsobought = new Swiper('.swiper.alsobought', {\r\n // modules: [Navigation],\r\n // direction: 'horizontal',\r\n // cssMode: true,\r\n // slidesPerView: \"auto\",\r\n // loop: false,\r\n // speed: 600,\r\n // navigation: {\r\n // nextEl: '.alsobought-container .swiper-button-next',\r\n // prevEl: '.alsobought-container .swiper-button-prev',\r\n // },\r\n // breakpoints: {\r\n // 1024: {\r\n // cssMode: false,\r\n // slidesPerView: 4,\r\n // spaceBetween: 40,\r\n // },\r\n // },\r\n //});\r\n}\r\nif (document.querySelector(\".swiper.packagedeals\")) {\r\n const packagedeals = initNavigationSwipers('.swiper.packagedeals', '.packagedeals-container .swiper-button-next', '.packagedeals-container .swiper-button-prev');\r\n //const alsobought = new Swiper('.swiper.packagedeals', {\r\n // modules: [Navigation],\r\n // direction: 'horizontal',\r\n // cssMode: true,\r\n // slidesPerView: \"auto\",\r\n // loop: false,\r\n // speed: 600,\r\n // navigation: {\r\n // nextEl: '.packagedeals-container .swiper-button-next',\r\n // prevEl: '.packagedeals-container .swiper-button-prev',\r\n // },\r\n // breakpoints: {\r\n // 1024: {\r\n // cssMode: false,\r\n // slidesPerView: 4,\r\n // spaceBetween: 40,\r\n // },\r\n // },\r\n //});\r\n}\r\nif (document.querySelector(\".swiper.accessories\")) {\r\n const accessories = initNavigationSwipers('.swiper.accessories', '.accessories-container .swiper-button-next', '.accessories-container .swiper-button-prev');\r\n //const alsobought = new Swiper('.swiper.accessories', {\r\n // modules: [Navigation],\r\n // direction: 'horizontal',\r\n // cssMode: true,\r\n // slidesPerView: \"auto\",\r\n // loop: false,\r\n // speed: 600,\r\n // navigation: {\r\n // nextEl: '.accessories-container .swiper-button-next',\r\n // prevEl: '.accessories-container .swiper-button-prev',\r\n // },\r\n // breakpoints: {\r\n // 1024: {\r\n // cssMode: false,\r\n // slidesPerView: 4,\r\n // spaceBetween: 40,\r\n // },\r\n // },\r\n //});\r\n}\r\nif (document.querySelector(\".swiper.upgrade\")) {\r\n const upgrade = initNavigationSwipers('.swiper.upgrade', '.upgrade-container .swiper-button-next', '.upgrade-container .swiper-button-prev');\r\n //const alsobought = new Swiper('.swiper.upgrade', {\r\n // modules: [Navigation],\r\n // direction: 'horizontal',\r\n // cssMode: true,\r\n // slidesPerView: \"auto\",\r\n // loop: false,\r\n // speed: 600,\r\n // navigation: {\r\n // nextEl: '.upgrade-container .swiper-button-next',\r\n // prevEl: '.upgrade-container .swiper-button-prev',\r\n // },\r\n // breakpoints: {\r\n // 1024: {\r\n // cssMode: false,\r\n // slidesPerView: 4,\r\n // spaceBetween: 40,\r\n // },\r\n // },\r\n //});\r\n}\r\n///////////////////////////////////////////////////////////////////\r\n// Toggle function (Show more) //\r\n///////////////////////////////////////////////////////////////////\r\naddToggleEvent();\r\n\r\nfunction addToggleEvent() {\r\n if (document.getElementsByClassName('toggle-parent').length) {\r\n // Show more boxes\r\n var showMoreToggles = document.querySelectorAll('.toggle-control .btn');\r\n showMoreToggles.forEach(function (toggle) {\r\n if (!toggle.classList.contains('event-added')) {\r\n toggle.classList.add('event-added');\r\n toggle.addEventListener('click', function (e) {\r\n let elem = e.target as HTMLElement;\r\n if (!(e.target as HTMLElement).outerHTML.startsWith('= 0 && basketButtonPos.bottom <= window.innerHeight && !isSticky) ||\r\n (footerPosition.top >= 0 && footerPosition.bottom <= window.innerHeight && !isSticky)) {\r\n documentBody.classList.remove('sticky-buy-now');\r\n isSticky = false\r\n } else {\r\n documentBody.classList.add('sticky-buy-now');\r\n isSticky = true;\r\n }\r\n }\r\n}\r\n","import { DeliveryOptions_BindEvents, DeliveryOptions_Init } from \"./gak-DeliveryOptions\"\r\nimport { FacebookScriptsService } from \"./tracking-scripts.js\";\r\nimport { basketParams } from './gak-DeliveryOptions'\r\nimport { debounceScript } from './Debounce.js';\r\nimport { loadBasketPanel } from './gak-ProductDetail';\r\nimport { ShoppingBasket_UpdateItemCount } from './common';\r\nimport { pushRemoveFromCart, pushAddToCart, onCheckout, onCheckoutOption, pushEnhancedEcommerce } from \"./enhanced-ecommerce.js\";\r\nimport Swiper, { Navigation } from 'swiper';\r\n\r\ndeclare var ShoppingBasketParms: any;\r\ndeclare var basketConfig: any;\r\ndeclare var bpj: any;\r\n\r\nvar basketPanel: boolean = false;\r\nvar requestBasketUpdate =\r\n (debounceScript as any)(updateWholeCart,\r\n 500,\r\n { 'leading': false, 'trailing': true });\r\n\r\nvar qtyUpdateKeyUp =\r\n (debounceScript as any)(onQtyKeyUp,\r\n 500,\r\n { 'leading': false, 'trailing': true });\r\n\r\nfunction showWaitElement(show: any) {\r\n var waitElem = document.getElementsByClassName(\"wait-spinner\")!.item(0)!;\r\n if (waitElem) {\r\n if (show) waitElem.classList.remove('hidden');\r\n else waitElem.classList.add('hidden');\r\n }\r\n}\r\n\r\nfunction disableBasketButtons() {\r\n //Disable +, - and remove buttons\r\n var buttons = document.querySelectorAll(\r\n \".order-process-basket button.decrease, \\\r\n .order-process-basket button.increase, \\\r\n .order-process-basket button.remove-order-item-button, \\\r\n .order-process-basket .quantity-select\");\r\n buttons.forEach(function (b) {\r\n b.classList.add(\"btn-disabled\");\r\n b.setAttribute(\"disabled\", \"\");\r\n });\r\n\r\n var qtys = document.querySelectorAll(\".order-process-basket input.js-stepper.quantity\");\r\n qtys.forEach(function (q) {\r\n q.setAttribute(\"readonly\", \"\");\r\n });\r\n}\r\n\r\nfunction onQtyKeyUp(e: any) {\r\n let inputElement = e.srcElement;\r\n if (inputElement.readOnly) return;\r\n\r\n let oldValue = parseInt(inputElement.closest('li').getAttribute('data-quantity'));\r\n let newValue = parseInt(inputElement.value);\r\n if (isNaN(newValue)) return;\r\n newValue = sanitizeQtyInput(newValue);\r\n if (oldValue !== newValue) {\r\n disableBasketButtons();\r\n showWaitElement(true);\r\n updateStepper(e.srcElement);\r\n inputElement.focus();\r\n }\r\n}\r\n\r\nexport function updateWholeCart(newRegionId: any) {\r\n var basketItems = document.querySelectorAll(\".basket-item\");\r\n var form = new FormData();\r\n\r\n if (basketItems)\r\n basketItems.forEach(function (item, i) {\r\n var id = item.getAttribute(\"data-id\")!;\r\n var quantity = item.getAttribute(\"data-quantity\")!;\r\n\r\n form.append(`orderItems[${i}][ID]`, id);\r\n form.append(`orderItems[${i}][Quantity]`, quantity);\r\n });\r\n\r\n if (newRegionId) {\r\n form.append(\"newRegionId\", newRegionId);\r\n }\r\n\r\n form.append(\"redirectToShoppingBasket\", (!basketPanel).toString());\r\n\r\n fetch(ShoppingBasketParms.UpdateCartURL, {\r\n method: 'POST',\r\n body: form\r\n }).then(response => response.text())\r\n .then(function (data: any) {\r\n if (basketPanel) {\r\n loadBasketPanel();\r\n }\r\n else {\r\n updateBasketContent(data);\r\n }\r\n showItemUpdatedAlert();\r\n showWaitElement(false);\r\n });\r\n}\r\n\r\nfunction showItemUpdatedAlert() {\r\n var basketAlert = document.getElementById(\"basketAlert\");\r\n var alertText = document.querySelector(\"#basketAlert p\");\r\n\r\n if (basketAlert && alertText) {\r\n basketAlert.className = \"[ alert ] [ bg-green-1 text-green text-15 text-md-16 ]\";\r\n alertText.textContent = \"Item quantity updated\";\r\n }\r\n}\r\n\r\nfunction showItemRemovedAlert() {\r\n var basketAlert = document.getElementById(\"basketAlert\");\r\n var alertText = document.querySelector(\"#basketAlert p\");\r\n\r\n if (basketAlert && alertText) {\r\n basketAlert.className = \"[ alert ] [ bg-red-1 text-red text-15 text-md-16 ]\";\r\n alertText.textContent = \"1x item removed from basket\";\r\n }\r\n}\r\n\r\nfunction sanitizeQtyInput(value: number) {\r\n if (value < 0)\r\n return 0;\r\n if (value > 1000)\r\n return 1000;\r\n return value;\r\n}\r\n\r\nfunction updateStepper(element: any) {\r\n var quantityInput = element.parentNode.querySelector(\"input\");\r\n var li = element.closest(\"[data-quantity]\");\r\n var productId = li.getAttribute(\"data-product-id\");\r\n if (quantityInput) {\r\n var newValue = parseInt(quantityInput.value);\r\n var oldValue = parseInt(quantityInput.getAttribute('value'));\r\n var classList = element.classList;\r\n if (classList.contains(\"decrease\")) {\r\n newValue--;\r\n } else if (classList.contains(\"increase\")) {\r\n newValue++;\r\n }\r\n newValue = sanitizeQtyInput(newValue);\r\n quantityInput.value = newValue;\r\n quantityInput.setAttribute(\"value\", newValue);\r\n li.setAttribute(\"data-quantity\", newValue);\r\n\r\n if (oldValue > newValue)\r\n pushRemoveFromCart(productId, oldValue - newValue);\r\n else\r\n pushAddToCart(productId, newValue - oldValue);\r\n }\r\n\r\n requestBasketUpdate();\r\n}\r\n\r\nexport function ShoppingBasket_BindEvents(isBasketPanel: boolean = false) {\r\n basketPanel = isBasketPanel;\r\n let decreaseBtns = document.querySelectorAll(\".stepper button.decrease\");\r\n let increaseBtns = document.querySelectorAll(\".stepper button.increase\");\r\n let removeBtns = document.querySelectorAll(\".remove-order-item-button\");\r\n let qtyInputs = document.querySelectorAll(\".stepper .js-stepper.quantity\");\r\n\r\n const quantitySelect = document.querySelectorAll(\".quantity-select\");\r\n\r\n if (quantitySelect) {\r\n quantitySelect.forEach(function (element: any) {\r\n element.addEventListener(\"change\", function () {\r\n disableBasketButtons();\r\n showWaitElement(true);\r\n\r\n const li = element.closest(\"[data-quantity]\");\r\n li.setAttribute(\"data-quantity\", element.value);\r\n requestBasketUpdate();\r\n });\r\n });\r\n }\r\n\r\n if (decreaseBtns) {\r\n decreaseBtns.forEach(function (element: any) {\r\n element.addEventListener(\"click\", function () {\r\n disableBasketButtons();\r\n showWaitElement(true);\r\n updateStepper(element);\r\n });\r\n });\r\n }\r\n\r\n if (increaseBtns) {\r\n increaseBtns.forEach(function (element: any) {\r\n element.addEventListener(\"click\", function () {\r\n disableBasketButtons();\r\n showWaitElement(true);\r\n updateStepper(element);\r\n });\r\n });\r\n }\r\n\r\n removeBtns.forEach(function (element: any) {\r\n element.addEventListener(\"click\", function () {\r\n disableBasketButtons();\r\n showWaitElement(true);\r\n var ordermItemId = element.closest(\"li\").getAttribute(\"data-id\");\r\n removeOrderItem(ordermItemId);\r\n });\r\n });\r\n\r\n qtyInputs.forEach(function (qty) {\r\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || navigator.userAgent.match(/Mac/) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2) {\r\n qty.addEventListener(\"blur\", qtyUpdateKeyUp);\r\n } else {\r\n qty.addEventListener(\"keyup\", qtyUpdateKeyUp);\r\n }\r\n });\r\n\r\n const recommended = new Swiper('.swiper.recommended', {\r\n modules: [Navigation],\r\n direction: 'horizontal',\r\n cssMode: true,\r\n slidesPerView: \"auto\",\r\n loop: false,\r\n speed: 600,\r\n navigation: {\r\n nextEl: '.recommended-container .swiper-button-next',\r\n prevEl: '.recommended-container .swiper-button-prev',\r\n },\r\n breakpoints: {\r\n 1024: {\r\n cssMode: false,\r\n slidesPerView: 4,\r\n spaceBetween: 40,\r\n },\r\n },\r\n });\r\n}\r\n\r\nexport function showBasketError(msg: string) {\r\n var basketErrorContainer = document.getElementsByClassName(\"basketErrorContainer\")?.item(0);\r\n\r\n if (basketErrorContainer)\r\n basketErrorContainer.textContent = msg;\r\n}\r\n\r\n\r\nfunction removeOrderItem(orderItemId: any) {\r\n if (orderItemId != null && orderItemId != \"\") {\r\n var form = new FormData();\r\n form.append(\"orderItemId\", orderItemId)\r\n fetch(ShoppingBasketParms.DestroyOrderItemURL, {\r\n method: \"POST\",\r\n body: form\r\n }).then((response) => {\r\n if (response.ok) {\r\n return response.text();\r\n }\r\n showBasketError(\"Unable to remove from basket, please try again\");\r\n })\r\n .then(function (data) {\r\n if (basketPanel) {\r\n loadBasketPanel();\r\n pushProductRemovalToGA(orderItemId);\r\n }\r\n else {\r\n pushProductRemovalToGA(orderItemId);\r\n updateBasketContent(data);\r\n }\r\n showWaitElement(true);\r\n showItemRemovedAlert();\r\n });\r\n }\r\n}\r\n\r\n\r\nfunction pushProductRemovalToGA(orderItemId: any) {\r\n var product = document.querySelector(`[data-id=\"${orderItemId}\"]`);\r\n if (product) {\r\n var productId = product.getAttribute(\"data-product-id\");\r\n if (productId) {\r\n var quantity = product.getAttribute(\"data-quantity\");\r\n var quantityNo = 0;\r\n\r\n if (quantity)\r\n quantityNo = parseInt(quantity);\r\n else {\r\n var productDetails = document.querySelector(`[data-product-id='${product.id}']`);\r\n\r\n if (productDetails)\r\n quantityNo = parseInt(productDetails.getAttribute(\"data-quantity\") || \"0\");\r\n }\r\n\r\n pushRemoveFromCart(productId, quantityNo);\r\n }\r\n }\r\n}\r\n\r\n\r\nfunction loadShoppingBasket() {\r\n fetch(basketConfig.basketUrl, {\r\n method: 'GET',\r\n }).then(response => response.text())\r\n .then(function (data: any) {\r\n updateBasketContent(data);\r\n pushEnhancedEcommerce();\r\n onCheckout(1);\r\n });\r\n}\r\n\r\n\r\nfunction updateBasketContent(data: any) {\r\n var currentBasketContainer = document.getElementById(\"shoppingBasketContent\")\r\n\r\n if (currentBasketContainer)\r\n currentBasketContainer.innerHTML = data;\r\n\r\n var parser = new DOMParser();\r\n var html = parser.parseFromString(data, 'text/html');\r\n\r\n if (html) {\r\n var bpj = (html.getElementById(\"bpj\")!);\r\n if (bpj) {\r\n DeliveryOptions_Init(bpj.value);\r\n ShoppingBasket_BindEvents(basketPanel);\r\n if (!basketPanel) {\r\n DeliveryOptions_BindEvents(true);\r\n }\r\n }\r\n ShoppingBasket_UpdateItemCount();\r\n }\r\n}\r\n\r\nexport function ShoppingBasket_ProceedToCheckout(e: any) {\r\n var theButton = e.currentTarget;\r\n var deliveryTypeId = (document.getElementById(\"deliveryTypeID\"));\r\n\r\n if (basketParams && basketParams.OutOfStock && ((deliveryTypeId!.value || '') == '')) {\r\n // Monkeypatched alert is async... so prevent first!\r\n e.preventDefault();\r\n alert(\"You must select a Delivery Option before Checkout\");\r\n return;\r\n }\r\n\r\n // Facebook Track code\r\n // InitiateCheckout\r\n // Track when people enter the checkout flow (ex. click/landing page on checkout button)\r\n\r\n FacebookScriptsService.addFacebookTracking(false);\r\n FacebookScriptsService.addFacebookEvent('InitiateCheckout');\r\n\r\n var chosenOption = document.querySelector(\".chosenOption span[data-helptext]\");\r\n\r\n if (chosenOption) {\r\n var chosenOptionDesc = chosenOption.getAttribute(\"data-helptext\");\r\n\r\n if (chosenOptionDesc)\r\n onCheckoutOption(1, chosenOptionDesc);\r\n }\r\n\r\n var paymentMethod = theButton.getAttribute(\"data-payment-mehtod\");\r\n\r\n onCheckoutOption(1, paymentMethod);\r\n\r\n //(document.getElementById(\"UpdateStockForm\") as any).submit();\r\n}\r\n\r\nfunction toggleFooter() {\r\n var ToggleButtons = document.querySelectorAll('[data-toggle-parent]');\r\n if (ToggleButtons.length) {\r\n ToggleButtons.forEach(function (toggle) {\r\n if (!toggle.classList.contains('click-bound')) {\r\n toggle.classList.add('click-bound');\r\n toggle.addEventListener('click', function (e) {\r\n let elem = e.target as HTMLElement;\r\n if (elem.getAttribute('aria-expanded') == \"false\") {\r\n elem.setAttribute('aria-expanded', 'true')\r\n }\r\n else {\r\n elem.setAttribute('aria-expanded', 'false');\r\n }\r\n })\r\n }\r\n })\r\n }\r\n}\r\n\r\nwindow.onload = function () {\r\n loadShoppingBasket();\r\n toggleFooter();\r\n}","import Swiper, { Navigation, Pagination } from 'swiper';\r\n\r\ndeclare var ShoppingBasketParms: any;\r\n\r\nfunction waitForElm(selector: string) {\r\n return new Promise(resolve => {\r\n if (document.querySelector(selector)) {\r\n return resolve(document.querySelector(selector));\r\n }\r\n\r\n const observer = new MutationObserver(mutations => {\r\n if (document.querySelector(selector)) {\r\n resolve(document.querySelector(selector));\r\n observer.disconnect();\r\n }\r\n });\r\n\r\n observer.observe(document.body, {\r\n childList: true,\r\n subtree: true\r\n });\r\n });\r\n}\r\n\r\nexport function initBasketPanelSwiper() {\r\n const basketalsobought = new Swiper('.swiper.basket-alsobought', {\r\n modules: [Navigation, Pagination],\r\n direction: 'horizontal',\r\n cssMode: true,\r\n slidesPerView: 3.5,\r\n slidesPerGroup: 3,\r\n spaceBetween: 8,\r\n loop: false,\r\n speed: 600,\r\n pagination: {\r\n el: '.swiper-pagination',\r\n clickable: true,\r\n type: 'bullets',\r\n },\r\n breakpoints: {\r\n 500: {\r\n cssMode: false,\r\n slidesPerView: 4.5,\r\n slidesPerGroup: 4,\r\n },\r\n },\r\n });\r\n}\r\n\r\n\r\n","const Tabby = require('tabbyjs');\r\ninitTabs();\r\n\r\nfunction initTabs() {\r\n let tabsList = document.querySelectorAll('[data-tabs]');\r\n if (tabsList && tabsList.length > 0) {\r\n var tabs = new Tabby('[data-tabs]');\r\n if (document.getElementsByClassName('tabs').length) {\r\n const tabSelectors = document.querySelectorAll('ul.tabs') as NodeList;\r\n tabSelectors.forEach((tab, i) => {\r\n let selector = `data-tabs-${i}`;\r\n (tab as HTMLElement).setAttribute(selector, '');\r\n new Tabby(`[data-tabs-${i}]`);\r\n });\r\n\r\n //Scroll the tabs along when mobile/desktop users click\r\n document.querySelectorAll('.tabs li').forEach((tabItem) => {\r\n tabItem.addEventListener('click', (elem) => {\r\n if (window.matchMedia(\"(min-width: 1024px)\").matches) {\r\n let viewport = ((elem.currentTarget as HTMLElement).parentNode as HTMLElement).parentElement;\r\n let offset = (elem.currentTarget as HTMLElement).offsetLeft;\r\n if (viewport && (offset > ((elem.currentTarget as HTMLElement).parentNode as HTMLElement).scrollWidth - viewport.clientWidth)) {\r\n offset = ((elem.currentTarget as HTMLElement).parentNode as HTMLElement).scrollWidth - viewport.clientWidth;\r\n }\r\n ((elem.currentTarget as HTMLElement).parentNode as HTMLElement).style.transform = 'translate(-' + offset + 'px)';\r\n let prevButton = ((elem.currentTarget as HTMLElement).parentNode as HTMLElement).previousElementSibling as HTMLElement;\r\n let nextButton = ((elem.currentTarget as HTMLElement).parentNode as HTMLElement).nextElementSibling as HTMLElement;\r\n checkButtons((elem.currentTarget as HTMLElement).parentNode as HTMLElement, nextButton, prevButton);\r\n }\r\n else {\r\n ((elem.currentTarget as HTMLElement).parentNode as HTMLElement).scrollLeft = (elem.currentTarget as HTMLElement).offsetLeft;\r\n }\r\n });\r\n });\r\n\r\n window.onresize = checkScrollingTabContainers;\r\n checkScrollingTabContainers();\r\n }\r\n }\r\n}\r\n\r\nfunction checkScrollingTabContainers(): void {\r\n document.querySelectorAll('.scrolling-tab-container').forEach((tabContainer) => {\r\n let tablisting: any = tabContainer.getElementsByClassName('tabs').item(0);\r\n (tablisting as HTMLElement).removeAttribute('style');\r\n let prevButton = tabContainer.getElementsByClassName('tab-previous').item(0);\r\n (prevButton as HTMLElement).classList.remove('disabled');\r\n let nextButton = tabContainer.getElementsByClassName('tab-next').item(0);\r\n (nextButton as HTMLElement).classList.remove('disabled');\r\n if (!tablisting) {\r\n (prevButton as HTMLElement).classList.add('disabled');\r\n (nextButton as HTMLElement).classList.add('disabled');\r\n }\r\n else {\r\n //initial state\r\n (prevButton as HTMLElement).classList.add('disabled');\r\n if (getLastVisibleTab(tablisting) == tablisting.children.length - 1) {\r\n (nextButton as HTMLElement).classList.add('disabled');\r\n }\r\n }\r\n\r\n //click events\r\n nextButton?.addEventListener('click', (elem) => {\r\n elem.preventDefault();\r\n let buttonElem = (elem.currentTarget as HTMLElement);\r\n let tablist: any = buttonElem.previousElementSibling;\r\n let prevButton: HTMLElement = tablist.previousElementSibling;\r\n let index = getLastVisibleTab(tablist);\r\n if (index < tablist.children.length - 1) {\r\n let viewport = (tablist as HTMLElement).parentElement;\r\n let offset = tablist.children[index + 1].offsetLeft;\r\n if (viewport && offset > (tablist as HTMLElement).scrollWidth - viewport.clientWidth + 45) {\r\n offset = (tablist as HTMLElement).scrollWidth - viewport.clientWidth + 45;\r\n }\r\n (tablist as HTMLElement).style.transform = 'translate(-' + offset + 'px)';\r\n checkButtons((tablist as HTMLElement), buttonElem, prevButton);\r\n }\r\n else {\r\n buttonElem.classList.add('disabled');\r\n }\r\n });\r\n prevButton?.addEventListener('click', (elem) => {\r\n elem.preventDefault();\r\n let buttonElem = (elem.currentTarget as HTMLElement);\r\n let tablist: any = buttonElem.nextElementSibling;\r\n let nextButton: HTMLElement = tablist.nextElementSibling;\r\n let index = getFirstVisibleTab(tablist);\r\n if (index > 0) {\r\n let viewport = (tablist as HTMLElement).parentElement;\r\n let offset = tablist.children[index - 1].offsetLeft;\r\n if (viewport && offset < 0) {\r\n offset = 0;\r\n }\r\n (tablist as HTMLElement).style.transform = 'translate(-' + offset + 'px)';\r\n checkButtons((tablist as HTMLElement), nextButton, buttonElem);\r\n }\r\n else {\r\n buttonElem.classList.add('disabled');\r\n }\r\n });\r\n });\r\n}\r\n\r\nfunction getFirstVisibleTab(tabList: any): number {\r\n let index = 0;\r\n let viewport = (tabList as HTMLElement).parentElement;\r\n for (let child of tabList.children) {\r\n if (viewport && tabList &&\r\n (child.getBoundingClientRect().x) >= viewport.getBoundingClientRect().x) {\r\n break;\r\n }\r\n index++;\r\n }\r\n return index;\r\n}\r\n\r\nfunction getLastVisibleTab(tabList: any): number {\r\n let count = (tabList as any).children.length - 1;\r\n let ctr = count;\r\n let viewport = (tabList as HTMLElement).parentElement;\r\n for (ctr = count; ctr >= 0; ctr--) {\r\n if (viewport && tabList && tabList.children[ctr]) {\r\n if ((tabList.children[ctr].getBoundingClientRect().x + tabList.children[ctr].getBoundingClientRect().width + 20) <=\r\n (viewport.getBoundingClientRect().x + viewport.getBoundingClientRect().width)) {\r\n break;\r\n }\r\n }\r\n }\r\n return ctr;\r\n}\r\n\r\nfunction checkButtons(tablist: HTMLElement, nextButton: HTMLElement, prevButton: HTMLElement): void {\r\n setTimeout(() => {\r\n if (getLastVisibleTab(tablist) == (tablist.children.length - 1)) {\r\n nextButton?.classList.add('disabled');\r\n }\r\n else {\r\n nextButton?.classList.remove('disabled');\r\n }\r\n if (getFirstVisibleTab(tablist) > 0) {\r\n prevButton?.classList.remove('disabled');\r\n }\r\n else {\r\n prevButton?.classList.add('disabled');\r\n }\r\n }, 500);\r\n}\r\n\r\n\r\nexport { initTabs };","declare var ImagesParams: {\r\n UseCDNImageCache: boolean,\r\n CloudflareAccountHash: string\r\n};\r\n\r\nexport default class Utils {\r\n static deleteCookie = (name: string) => {\r\n document.cookie = name + \"=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;\";\r\n };\r\n\r\n static getCookie(cookieName: string) {\r\n let cookie: any = {};\r\n document.cookie.split(';').forEach(function (el) {\r\n let [key, value] = el.split('=');\r\n cookie[key.trim()] = value;\r\n })\r\n\r\n return cookie[cookieName];\r\n }\r\n\r\n static setCookie(name: string, value: any, days: number) {\r\n var expires = \"\";\r\n if (days) {\r\n var date = new Date();\r\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\r\n expires = \"; expires=\" + date.toUTCString();\r\n }\r\n else {\r\n expires = \"; expires=Session\";\r\n }\r\n document.cookie = name + \"=\" + (value || \"\") + expires + \"; path=/\";\r\n }\r\n\r\n static setSessionCookie(name: string, value: any) {\r\n var expires = \"\";\r\n expires = \"; expires=Session\";\r\n document.cookie = name + \"=\" + (value || \"\") + expires + \"; path=/\";\r\n }\r\n\r\n\r\n static getHashKeyValuePairs() {\r\n return this.getUrlKeyValuePairs(window.location.hash);\r\n }\r\n\r\n static getHrefKeyValuePairs() {\r\n return this.getUrlKeyValuePairs(window.location.search);\r\n }\r\n\r\n static getUrlKeyValuePairs(url: string) {\r\n var result = [];\r\n\r\n if (url) {\r\n var hash = url.substring(1); //removes the # or ? character for hash or queryString repectively.\r\n var pairs = hash.split('&');\r\n for (var i = 0; i < pairs.length; i++) {\r\n var pairParts = pairs[i].split('=');\r\n if (pairParts.length == 2) {\r\n var key = pairParts[0];\r\n var value = pairParts[1];\r\n result.push({ key: key, value: value });\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n static loadImagesForProductListings_BasedOnView(prodListing: any) {\r\n var isGridView = prodListing.hasClass('view-as-grid');\r\n prodListing.find('.productImageWrapper img').each(function (index: any) {\r\n var img = document.querySelector(index);\r\n setTimeout(function () {\r\n var newImgUrl = img.closest('.innerwrapper').data(isGridView ? 'prodimggridview' : 'prodimglistview');\r\n // Set the new Img Url to the proper attribute src or lazy-src.\r\n if (img.attr(\"lazy-src\")) {\r\n img.attr(\"lazy-src\", newImgUrl);\r\n }\r\n else if (img[0].src) {\r\n img[0].src = newImgUrl;\r\n }\r\n }, 1);\r\n });\r\n }\r\n\r\n static getImageURL(width: number, height: number, imgUrl: string): string {\r\n if (ImagesParams.UseCDNImageCache) {\r\n if (imgUrl.startsWith('~')) {\r\n imgUrl = imgUrl.substring(1);\r\n }\r\n return `https://www.gak.co.uk/cdn-cgi/image/fit=scale-down,width=${width},height=${height},format=auto/${imgUrl}`;\r\n }\r\n else {\r\n return `https://www.gak.co.uk/cdn-cgi/imagedelivery/${ImagesParams.CloudflareAccountHash}/${imgUrl}/${width}x${height}`;\r\n }\r\n \r\n }\r\n\r\n static atou(b64: string) {\r\n return decodeURIComponent(escape(atob(b64)));\r\n }\r\n\r\n static utoa(data: any) {\r\n return btoa(unescape(encodeURIComponent(data)));\r\n }\r\n}","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(\"vue-slider-component\",[],e):\"object\"==typeof exports?exports[\"vue-slider-component\"]=e():t[\"vue-slider-component\"]=e()}(this,function(){return function(t){function e(s){if(i[s])return i[s].exports;var r=i[s]={i:s,l:!1,exports:{}};return t[s].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var i={};return e.m=t,e.c=i,e.i=function(t){return t},e.d=function(t,i,s){e.o(t,i)||Object.defineProperty(t,i,{configurable:!1,enumerable:!0,get:s})},e.n=function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(i,\"a\",i),i},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"\",e(e.s=2)}([function(t,e,i){i(7);var s=i(5)(i(1),i(6),null,null);t.exports=s.exports},function(t,e,i){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var s=function(){var t=\"undefined\"!=typeof window?window.devicePixelRatio||1:1;return function(e){return Math.round(e*t)/t}}();e.default={name:\"VueSliderComponent\",props:{width:{type:[Number,String],default:\"auto\"},height:{type:[Number,String],default:6},data:{type:Array,default:null},dotSize:{type:Number,default:16},dotWidth:{type:Number,required:!1},dotHeight:{type:Number,required:!1},min:{type:Number,default:0},max:{type:Number,default:100},interval:{type:Number,default:1},show:{type:Boolean,default:!0},disabled:{type:[Boolean,Array],default:!1},piecewise:{type:Boolean,default:!1},tooltip:{type:[String,Boolean],default:\"always\"},eventType:{type:String,default:\"auto\"},direction:{type:String,default:\"horizontal\"},staticValue:{type:[String,Number]},staticLabel:{type:String},reverse:{type:Boolean,default:!1},lazy:{type:Boolean,default:!1},clickable:{type:Boolean,default:!0},speed:{type:Number,default:.5},realTime:{type:Boolean,default:!1},stopPropagation:{type:Boolean,default:!1},value:{type:[String,Number,Array,Object],default:0},piecewiseLabel:{type:Boolean,default:!1},debug:{type:Boolean,default:!0},fixed:{type:Boolean,default:!1},minRange:{type:Number},maxRange:{type:Number},processDragable:{type:Boolean,default:!1},useKeyboard:{type:Boolean,default:!1},actionsKeyboard:{type:Array,default:function(){return[function(t){return t-1},function(t){return t+1}]}},piecewiseFilter:{type:Function},tooltipMerge:{type:Boolean,default:!0},startAnimation:{type:Boolean,default:!1},enableCross:{type:Boolean,default:!0},sliderStyle:[Array,Object,Function],focusStyle:[Array,Object,Function],tooltipDir:[Array,String],formatter:[String,Function],mergeFormatter:[String,Function],piecewiseStyle:Object,disabledStyle:Object,piecewiseActiveStyle:Object,processStyle:Object,processClass:String,bgStyle:Object,tooltipStyle:[Array,Object,Function],tooltipClass:String,disabledDotStyle:[Array,Object,Function],labelStyle:Object,labelActiveStyle:Object},data:function(){return{flag:!1,dragFlag:!1,crossFlag:!1,keydownFlag:null,focusFlag:!1,processFlag:!1,processSign:null,size:0,fixedValue:0,focusSlider:0,currentValue:0,currentSlider:0,isComponentExists:!0,isMounted:!1}},computed:{staticPosition:function(){var t=(this.staticValue-this.minimum)/this.spacing*this.gap,e=s((\"vertical\"===this.direction?this.dotHeightVal/2-t:t-this.dotWidthVal/2)*(this.reverse?-1:1)),i=\"vertical\"===this.direction?\"translateY(\"+e+\"px)\":\"translateX(\"+e+\"px)\";return{transform:i,WebkitTransform:i,msTransform:i}},dotWidthVal:function(){return\"number\"==typeof this.dotWidth?this.dotWidth:this.dotSize},dotHeightVal:function(){return\"number\"==typeof this.dotHeight?this.dotHeight:this.dotSize},flowDirection:function(){return\"vue-slider-\"+this.direction+(this.reverse?\"-reverse\":\"\")},tooltipMergedPosition:function(){if(!this.isMounted)return{};var t=this.tooltipDirection[0];if(this.$refs.dot0){if(\"vertical\"===this.direction){var e={};return e[t]=\"-\"+(this.dotHeightVal/2-this.width/2+9)+\"px\",e}var i={};return i[t]=\"-\"+(this.dotWidthVal/2-this.height/2+9)+\"px\",i.left=\"50%\",i}},tooltipDirection:function(){var t=this.tooltipDir||(\"vertical\"===this.direction?\"left\":\"top\");return Array.isArray(t)?this.isRange?t:t[1]:this.isRange?[t,t]:t},tooltipStatus:function(){return\"hover\"===this.tooltip&&this.flag?\"vue-slider-always\":this.tooltip?\"vue-slider-\"+this.tooltip:\"\"},disabledArray:function(){return Array.isArray(this.disabled)?this.disabled:[this.disabled,this.disabled]},boolDisabled:function(){return this.disabledArray.every(function(t){return!0===t})},isDisabled:function(){return\"none\"===this.eventType||this.boolDisabled},disabledClass:function(){return this.boolDisabled?\"vue-slider-disabled\":\"\"},stateClass:function(){return{\"vue-slider-state-process-drag\":this.processFlag,\"vue-slider-state-drag\":this.flag&&!this.processFlag&&!this.keydownFlag,\"vue-slider-state-focus\":this.focusFlag}},isRange:function(){return Array.isArray(this.value)},slider:function(){return this.isRange?[this.$refs.dot0,this.$refs.dot1]:this.$refs.dot},minimum:function(){return this.data?0:this.min},val:{get:function(){return this.data?this.isRange?[this.data[this.currentValue[0]],this.data[this.currentValue[1]]]:this.data[this.currentValue]:this.currentValue},set:function(t){if(this.data)if(this.isRange){var e=this.data.indexOf(t[0]),i=this.data.indexOf(t[1]);e>-1&&i>-1&&(this.currentValue=[e,i])}else{var s=this.data.indexOf(t);s>-1&&(this.currentValue=s)}else this.currentValue=t}},currentIndex:function(){return this.isRange?this.data?this.currentValue:[this.getIndexByValue(this.currentValue[0]),this.getIndexByValue(this.currentValue[1])]:this.data?this.currentValue:this.getIndexByValue(this.currentValue)},indexRange:function(){return this.isRange?this.currentIndex:[0,this.currentIndex]},maximum:function(){return this.data?this.data.length-1:this.max},multiple:function(){var t=(\"\"+this.interval).split(\".\")[1];return t?Math.pow(10,t.length):1},spacing:function(){return this.data?1:this.interval},total:function(){return this.data?this.data.length-1:(Math.floor((this.maximum-this.minimum)*this.multiple)%(this.interval*this.multiple)!=0&&this.printError(\"Prop[interval] is illegal, Please make sure that the interval can be divisible\"),(this.maximum-this.minimum)/this.interval)},gap:function(){return this.size/this.total},position:function(){return this.isRange?[(this.currentValue[0]-this.minimum)/this.spacing*this.gap,(this.currentValue[1]-this.minimum)/this.spacing*this.gap]:(this.currentValue-this.minimum)/this.spacing*this.gap},isFixed:function(){return this.fixed||this.minRange},limit:function(){return this.isRange?this.isFixed?[[0,(this.total-this.fixedValue)*this.gap],[this.fixedValue*this.gap,this.size]]:[[0,this.position[1]],[this.position[0],this.size]]:[0,this.size]},valueLimit:function(){return this.isRange?this.isFixed?[[this.minimum,this.maximum-this.fixedValue*(this.spacing*this.multiple)/this.multiple],[this.minimum+this.fixedValue*(this.spacing*this.multiple)/this.multiple,this.maximum]]:[[this.minimum,this.currentValue[1]],[this.currentValue[0],this.maximum]]:[this.minimum,this.maximum]},idleSlider:function(){return 0===this.currentSlider?1:0},wrapStyles:function(){return\"vertical\"===this.direction?{height:\"number\"==typeof this.height?this.height+\"px\":this.height,padding:this.dotHeightVal/2+\"px \"+this.dotWidthVal/2+\"px\"}:{width:\"number\"==typeof this.width?this.width+\"px\":this.width,padding:this.dotHeightVal/2+\"px \"+this.dotWidthVal/2+\"px\"}},sliderStyles:function(){return Array.isArray(this.sliderStyle)?this.isRange?this.sliderStyle:this.sliderStyle[1]:\"function\"==typeof this.sliderStyle?this.sliderStyle(this.val,this.currentIndex):this.isRange?[this.sliderStyle,this.sliderStyle]:this.sliderStyle},focusStyles:function(){return Array.isArray(this.focusStyle)?this.isRange?this.focusStyle:this.focusStyle[1]:\"function\"==typeof this.focusStyle?this.focusStyle(this.val,this.currentIndex):this.isRange?[this.focusStyle,this.focusStyle]:this.focusStyle},disabledDotStyles:function(){var t=this.disabledDotStyle;if(Array.isArray(t))return t;if(\"function\"==typeof t){var e=t(this.val,this.currentIndex);return Array.isArray(e)?e:[e,e]}return t?[t,t]:[{backgroundColor:\"#ccc\"},{backgroundColor:\"#ccc\"}]},tooltipStyles:function(){return Array.isArray(this.tooltipStyle)?this.isRange?this.tooltipStyle:this.tooltipStyle[1]:\"function\"==typeof this.tooltipStyle?this.tooltipStyle(this.val,this.currentIndex):this.isRange?[this.tooltipStyle,this.tooltipStyle]:this.tooltipStyle},elemStyles:function(){return\"vertical\"===this.direction?{width:this.width+\"px\",height:\"100%\"}:{height:this.height+\"px\"}},dotStyles:function(){return\"vertical\"===this.direction?{width:this.dotWidthVal+\"px\",height:this.dotHeightVal+\"px\",left:-(this.dotWidthVal-this.width)/2+\"px\"}:{width:this.dotWidthVal+\"px\",height:this.dotHeightVal+\"px\",top:-(this.dotHeightVal-this.height)/2+\"px\"}},piecewiseDotStyle:function(){return\"vertical\"===this.direction?{width:this.width+\"px\",height:this.width+\"px\"}:{width:this.height+\"px\",height:this.height+\"px\"}},piecewiseDotWrap:function(){if(!this.piecewise&&!this.piecewiseLabel)return!1;for(var t=[],e=0;e<=this.total;e++){var i=\"vertical\"===this.direction?{bottom:this.gap*e-this.width/2+\"px\",left:0}:{left:this.gap*e-this.height/2+\"px\",top:0},s=this.reverse?this.total-e:e,r=this.data?this.data[s]:this.spacing*s+this.min;this.piecewiseFilter&&!this.piecewiseFilter({index:s,label:r})||t.push({style:i,index:s,label:this.formatter?this.formatting(r):r})}return t}},watch:{value:function(t){this.flag||this.setValue(t,!0)},max:function(t){if(tthis.max)return this.printError(\"The minimum value can not be greater than the maximum value.\");var e=this.limitValue(this.val);this.setValue(e),this.refresh()},show:function(t){var e=this;t&&!this.size&&this.$nextTick(function(){e.refresh()})},fixed:function(){this.computedFixedValue()},minRange:function(){this.computedFixedValue()},reverse:function(){this.$refs.process.style.cssText=\"\",this.refresh()}},methods:{bindEvents:function(){document.addEventListener(\"touchmove\",this.moving,{passive:!1}),document.addEventListener(\"touchend\",this.moveEnd,{passive:!1}),document.addEventListener(\"mousedown\",this.blurSlider),document.addEventListener(\"mousemove\",this.moving),document.addEventListener(\"mouseup\",this.moveEnd),document.addEventListener(\"mouseleave\",this.moveEnd),document.addEventListener(\"keydown\",this.handleKeydown),document.addEventListener(\"keyup\",this.handleKeyup),window.addEventListener(\"resize\",this.refresh),this.isRange&&this.tooltipMerge&&(this.$refs.dot0.addEventListener(\"transitionend\",this.handleOverlapTooltip),this.$refs.dot1.addEventListener(\"transitionend\",this.handleOverlapTooltip))},unbindEvents:function(){document.removeEventListener(\"touchmove\",this.moving),document.removeEventListener(\"touchend\",this.moveEnd),document.removeEventListener(\"mousedown\",this.blurSlider),document.removeEventListener(\"mousemove\",this.moving),document.removeEventListener(\"mouseup\",this.moveEnd),document.removeEventListener(\"mouseleave\",this.moveEnd),document.removeEventListener(\"keydown\",this.handleKeydown),document.removeEventListener(\"keyup\",this.handleKeyup),window.removeEventListener(\"resize\",this.refresh),this.isRange&&this.tooltipMerge&&(this.$refs.dot0.removeEventListener(\"transitionend\",this.handleOverlapTooltip),this.$refs.dot1.removeEventListener(\"transitionend\",this.handleOverlapTooltip))},handleKeydown:function(t){if(!this.useKeyboard||!this.focusFlag)return!1;switch(t.keyCode){case 37:case 40:t.preventDefault(),this.keydownFlag=!0,this.flag=!0,this.changeFocusSlider(this.actionsKeyboard[0]);break;case 38:case 39:t.preventDefault(),this.keydownFlag=!0,this.flag=!0,this.changeFocusSlider(this.actionsKeyboard[1])}},handleKeyup:function(){this.keydownFlag&&(this.keydownFlag=!1,this.flag=!1)},changeFocusSlider:function(t){var e=this;if(this.isRange){var i=this.currentIndex.map(function(i,s){if(s===e.focusSlider||e.fixed){var r=t(i),o=e.fixed?e.valueLimit[s]:[0,e.total];if(r<=o[1]&&r>=o[0])return r}return i});i[0]>i[1]&&(this.focusSlider=0===this.focusSlider?1:0,i=i.reverse()),this.setIndex(i)}else this.setIndex(t(this.currentIndex))},blurSlider:function(t){var e=this.isRange?this.$refs[\"dot\"+this.focusSlider]:this.$refs.dot;if(!e||e===t.target||e.contains(t.target))return!1;this.focusFlag=!1},formatting:function(t){return\"string\"==typeof this.formatter?this.formatter.replace(/\\{value\\}/,t):this.formatter(t)},mergeFormatting:function(t,e){return\"string\"==typeof this.mergeFormatter?this.mergeFormatter.replace(/\\{(value1|value2)\\}/g,function(i,s){return\"value1\"===s?t:e}):this.mergeFormatter(t,e)},getPos:function(t){return this.realTime&&this.getStaticData(),\"vertical\"===this.direction?this.reverse?t.pageY-this.offset:this.size-(t.pageY-this.offset):this.reverse?this.size-(t.clientX-this.offset):t.clientX-this.offset},processClick:function(t){this.fixed&&t.stopPropagation()},wrapClick:function(t){var e=this;if(this.isDisabled||!this.clickable||this.processFlag||this.dragFlag)return!1;var i=this.getPos(t);if(this.isRange)if(this.disabledArray.every(function(t){return!1===t}))this.currentSlider=i>(this.position[1]-this.position[0])/2+this.position[0]?1:0;else if(this.disabledArray[0]){if(ithis.position[1])return!1;this.currentSlider=0}if(this.disabledArray[this.currentSlider])return!1;if(this.setValueOnPos(i),this.isRange&&this.tooltipMerge){var s=setInterval(function(){return e.handleOverlapTooltip()},16.7);setTimeout(function(){return window.clearInterval(s)},1e3*this.speed)}},moveStart:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments[2];if(this.disabledArray[e])return!1;if(this.stopPropagation&&t.stopPropagation(),this.isRange){if(this.currentSlider=e,i){if(!this.processDragable)return!1;this.processFlag=!0,this.processSign={pos:this.position,start:this.getPos(t.targetTouches&&t.targetTouches[0]?t.targetTouches[0]:t)}}this.enableCross||this.val[0]!==this.val[1]||(this.crossFlag=!0)}!i&&this.useKeyboard&&(this.focusFlag=!0,this.focusSlider=e),this.flag=!0,this.$emit(\"drag-start\",this)},moving:function(t){if(this.stopPropagation&&t.stopPropagation(),!this.flag)return!1;t.preventDefault(),t.targetTouches&&t.targetTouches[0]&&(t=t.targetTouches[0]),this.processFlag?(this.currentSlider=0,this.setValueOnPos(this.processSign.pos[0]+this.getPos(t)-this.processSign.start,!0),this.currentSlider=1,this.setValueOnPos(this.processSign.pos[1]+this.getPos(t)-this.processSign.start,!0)):(this.dragFlag=!0,this.setValueOnPos(this.getPos(t),!0)),this.isRange&&this.tooltipMerge&&this.handleOverlapTooltip(),this.$emit(\"drag\",this)},moveEnd:function(t){var e=this;if(this.stopPropagation&&t.stopPropagation(),!this.flag)return!1;this.$emit(\"drag-end\",this),this.lazy&&this.isDiff(this.val,this.value)&&this.syncValue(),this.flag=!1,window.setTimeout(function(){e.crossFlag=!1,e.dragFlag=!1,e.processFlag=!1},0),this.setPosition()},setValueOnPos:function(t,e){var i=this.isRange?this.limit[this.currentSlider]:this.limit,s=this.isRange?this.valueLimit[this.currentSlider]:this.valueLimit,r=Math.round(t/this.gap);if(t>=i[0]&&t<=i[1]){var o=this.getValueByIndex(r);this.setTransform(t),this.setCurrentValue(o,e),this.isRange&&(this.fixed||this.isLessRange(t,r))&&(this.setTransform(t+this.fixedValue*this.gap*(0===this.currentSlider?1:-1),!0),this.setCurrentValue((o*this.multiple+this.fixedValue*this.spacing*this.multiple*(0===this.currentSlider?1:-1))/this.multiple,e,!0))}else{var n=t=this.maxRange?(this.fixedValue=this.maxRange,!0):(this.computedFixedValue(),!1)},isDiff:function(t,e){return Object.prototype.toString.call(t)!==Object.prototype.toString.call(e)||(Array.isArray(t)&&t.length===e.length?t.some(function(t,i){return t!==e[i]}):t!==e)},setCurrentValue:function(t,e,i){var s=i?this.idleSlider:this.currentSlider;if(tthis.maximum)return!1;this.isRange?this.isDiff(this.currentValue[s],t)&&(this.currentValue.splice(s,1,t),this.lazy&&this.flag&&!this.keydownFlag||this.syncValue()):this.isDiff(this.currentValue,t)&&(this.currentValue=t,this.lazy&&this.flag&&!this.keydownFlag||this.syncValue()),e||this.setPosition()},getValueByIndex:function(t){return(this.spacing*this.multiple*t+this.minimum*this.multiple)/this.multiple},getIndexByValue:function(t){return this.data?this.data.indexOf(t):Math.round((t-this.minimum)*this.multiple)/(this.spacing*this.multiple)},setIndex:function(t){if(Array.isArray(t)&&this.isRange){var e=void 0;e=this.data?[this.data[t[0]],this.data[t[1]]]:[this.getValueByIndex(t[0]),this.getValueByIndex(t[1])],this.setValue(e)}else t=this.getValueByIndex(t),this.isRange&&(this.currentSlider=t>(this.currentValue[1]-this.currentValue[0])/2+this.currentValue[0]?1:0),this.setCurrentValue(t)},setValue:function(t,e,i){var s=this;if(this.isDiff(this.val,t)){var r=this.limitValue(t);this.val=this.isRange?r.concat():r,this.computedFixedValue(),this.syncValue(e)}this.$nextTick(function(){return s.setPosition(i)})},computedFixedValue:function(){if(!this.isFixed)return this.fixedValue=0,!1;this.fixedValue=Math.max(this.fixed?this.currentIndex[1]-this.currentIndex[0]:0,this.minRange||0)},setPosition:function(t){this.flag||this.setTransitionTime(void 0===t?this.speed:t),this.isRange?(this.setTransform(this.position[0],1===this.currentSlider),this.setTransform(this.position[1],0===this.currentSlider)):this.setTransform(this.position),this.flag||this.setTransitionTime(0)},setTransform:function(t,e){var i=e?this.idleSlider:this.currentSlider,r=s((\"vertical\"===this.direction?this.dotHeightVal/2-t:t-this.dotWidthVal/2)*(this.reverse?-1:1)),o=\"vertical\"===this.direction?\"translateY(\"+r+\"px)\":\"translateX(\"+r+\"px)\",n=this.fixed?this.fixedValue*this.gap+\"px\":(0===i?this.position[1]-t:t-this.position[0])+\"px\",l=this.fixed?(0===i?t:t-this.fixedValue*this.gap)+\"px\":(0===i?t:this.position[0])+\"px\";this.isRange?(this.slider[i].style.transform=o,this.slider[i].style.WebkitTransform=o,this.slider[i].style.msTransform=o,\"vertical\"===this.direction?(this.$refs.process.style.height=n,this.$refs.process.style[this.reverse?\"top\":\"bottom\"]=l):(this.$refs.process.style.width=n,this.$refs.process.style[this.reverse?\"right\":\"left\"]=l)):(this.slider.style.transform=o,this.slider.style.WebkitTransform=o,this.slider.style.msTransform=o,\"vertical\"===this.direction?(this.$refs.process.style.height=t+\"px\",this.$refs.process.style[this.reverse?\"top\":\"bottom\"]=0):(this.$refs.process.style.width=t+\"px\",this.$refs.process.style[this.reverse?\"right\":\"left\"]=0))},setTransitionTime:function(t){if(t||this.$refs.process.offsetWidth,this.isRange){for(var e=0;ee.max?(e.printError(\"The value of the slider is \"+t+\", the maximum value is \"+e.max+\", the value of this slider can not be greater than the maximum value\"),e.max):i};return this.isRange?t.map(function(t){return i(t)}):i(t)},isActive:function(t){return t>=this.indexRange[0]&&t<=this.indexRange[1]},syncValue:function(t){var e=this.isRange?this.val.concat():this.val;this.$emit(\"input\",e),this.keydownFlag&&this.$emit(\"on-keypress\",e),t||this.$emit(\"callback\",e)},getValue:function(){return this.val},getIndex:function(){return this.currentIndex},getStaticData:function(){this.$refs.elem&&(this.size=\"vertical\"===this.direction?this.$refs.elem.offsetHeight:this.$refs.elem.offsetWidth,this.offset=\"vertical\"===this.direction?this.$refs.elem.getBoundingClientRect().top+window.pageYOffset||document.documentElement.scrollTop:this.$refs.elem.getBoundingClientRect().left)},refresh:function(){this.$refs.elem&&(this.getStaticData(),this.computedFixedValue(),this.setPosition(0))},printError:function(t){this.debug&&console.error(\"[VueSlider error]: \"+t)},handleOverlapTooltip:function(){var t=this.tooltipDirection[0]===this.tooltipDirection[1];if(this.isRange&&t){var e=this.reverse?this.$refs.tooltip1:this.$refs.tooltip0,i=this.reverse?this.$refs.tooltip0:this.$refs.tooltip1,s=e.getBoundingClientRect(),r=i.getBoundingClientRect(),o=s.right,n=r.left,l=s.top,a=r.top+r.height,d=\"horizontal\"===this.direction&&o>n,u=\"vertical\"===this.direction&&a>l;d||u?this.handleDisplayMergedTooltip(!0):this.handleDisplayMergedTooltip(!1)}},handleDisplayMergedTooltip:function(t){var e=this.$refs.tooltip0,i=this.$refs.tooltip1,s=this.$refs.process.getElementsByClassName(\"vue-merged-tooltip\")[0];t?(e.style.visibility=\"hidden\",i.style.visibility=\"hidden\",s.style.visibility=\"inherit\"):(e.style.visibility=\"inherit\",i.style.visibility=\"inherit\",s.style.visibility=\"hidden\")}},mounted:function(){var t=this;if(this.isComponentExists=!0,\"undefined\"==typeof window||\"undefined\"==typeof document)return this.printError(\"window or document is undefined, can not be initialization.\");this.$nextTick(function(){t.isComponentExists&&(t.getStaticData(),t.setValue(t.limitValue(t.value),!0,t.startAnimation?t.speed:0),t.bindEvents(),t.isRange&&t.tooltipMerge&&!t.startAnimation&&t.$nextTick(function(){t.handleOverlapTooltip()}))}),this.isMounted=!0},beforeDestroy:function(){this.isComponentExists=!1,this.unbindEvents()}}},function(t,e,i){\"use strict\";var s=i(0);t.exports=s},function(t,e,i){e=t.exports=i(4)(),e.push([t.i,'.vue-slider-component{position:relative;box-sizing:border-box;-ms-user-select:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none}.vue-slider-component.vue-slider-disabled{opacity:.5;cursor:not-allowed}.vue-slider-component.vue-slider-has-label{margin-bottom:15px}.vue-slider-component.vue-slider-disabled .vue-slider-dot{cursor:not-allowed}.vue-slider-component .vue-slider{position:relative;display:block;border-radius:15px;background-color:#ccc}.vue-slider-component .vue-slider:after{content:\"\";position:absolute;left:0;top:0;width:100%;height:100%;z-index:2}.vue-slider-component .vue-slider-process{position:absolute;border-radius:15px;background-color:#3498db;transition:all 0s;z-index:1}.vue-slider-component .vue-slider-process.vue-slider-process-dragable{cursor:pointer;z-index:3}.vue-slider-component.vue-slider-horizontal .vue-slider-process{width:0;height:100%;top:0;left:0;will-change:width}.vue-slider-component.vue-slider-vertical .vue-slider-process{width:100%;height:0;bottom:0;left:0;will-change:height}.vue-slider-component.vue-slider-horizontal-reverse .vue-slider-process{width:0;height:100%;top:0;right:0}.vue-slider-component.vue-slider-vertical-reverse .vue-slider-process{width:100%;height:0;top:0;left:0}.vue-slider-component .vue-slider-dot{position:absolute;transition:all 0s;will-change:transform;cursor:pointer;z-index:5}.vue-slider-component .vue-slider-dot .vue-slider-dot-handle{width:100%;height:100%;border-radius:50%;background-color:#fff;box-shadow:.5px .5px 2px 1px rgba(0,0,0,.32)}.vue-slider-component .vue-slider-dot.vue-slider-dot-focus .vue-slider-dot-handle{box-shadow:0 0 2px 1px #3498db}.vue-slider-component .vue-slider-dot--static .vue-slider-dot-handle--static{width:100%;height:100%;border-radius:50%;background-color:#ccc;-webkit-transform:scale(.85);transform:scale(.85)}.vue-slider-component .vue-slider-dot--static.vue-slider-dot-active .vue-slider-dot-handle--static{width:100%;height:100%;border-radius:50%;background-color:#3498db;-webkit-transform:scale(.85);transform:scale(.85)}.vue-slider-component .vue-slider-dot.vue-slider-dot-dragging{z-index:5}.vue-slider-component .vue-slider-dot.vue-slider-dot-disabled{z-index:4}.vue-slider-component.vue-slider-horizontal .vue-slider-dot{left:0}.vue-slider-component.vue-slider-vertical .vue-slider-dot{bottom:0}.vue-slider-component.vue-slider-horizontal-reverse .vue-slider-dot{right:0}.vue-slider-component.vue-slider-vertical-reverse .vue-slider-dot{top:0}.vue-slider-component .vue-slider-tooltip-wrap{display:none;position:absolute;z-index:9}.vue-slider-component .vue-slider-dot--static:hover .vue-slider-tooltip-wrap{display:block}.vue-slider-component .vue-slider-tooltip{display:block;font-size:14px;white-space:nowrap;padding:2px 5px;min-width:20px;text-align:center;color:#fff;border-radius:5px;border:1px solid #3498db;background-color:#3498db}.vue-slider-component .vue-slider-tooltip-wrap.vue-slider-tooltip-top{top:-9px;left:50%;-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}.vue-slider-component .vue-slider-tooltip-wrap.vue-slider-tooltip-bottom{bottom:-9px;left:50%;-webkit-transform:translate(-50%,100%);transform:translate(-50%,100%)}.vue-slider-component .vue-slider-tooltip-wrap.vue-slider-tooltip-left{top:50%;left:-9px;-webkit-transform:translate(-100%,-50%);transform:translate(-100%,-50%)}.vue-slider-component .vue-slider-tooltip-wrap.vue-slider-tooltip-right{top:50%;right:-9px;-webkit-transform:translate(100%,-50%);transform:translate(100%,-50%)}.vue-slider-component .vue-slider-tooltip-top .vue-merged-tooltip .vue-slider-tooltip:before,.vue-slider-component .vue-slider-tooltip-wrap.vue-slider-tooltip-top .vue-slider-tooltip:before{content:\"\";position:absolute;bottom:-10px;left:50%;width:0;height:0;border:5px solid transparent;border:6px solid transparent\\\\0;border-top-color:inherit;-webkit-transform:translate(-50%);transform:translate(-50%)}.vue-slider-component .vue-slider-tooltip-wrap.vue-merged-tooltip{display:block;visibility:hidden}.vue-slider-component .vue-slider-tooltip-bottom .vue-merged-tooltip .vue-slider-tooltip:before,.vue-slider-component .vue-slider-tooltip-wrap.vue-slider-tooltip-bottom .vue-slider-tooltip:before{content:\"\";position:absolute;top:-10px;left:50%;width:0;height:0;border:5px solid transparent;border:6px solid transparent\\\\0;border-bottom-color:inherit;-webkit-transform:translate(-50%);transform:translate(-50%)}.vue-slider-component .vue-slider-tooltip-left .vue-merged-tooltip .vue-slider-tooltip:before,.vue-slider-component .vue-slider-tooltip-wrap.vue-slider-tooltip-left .vue-slider-tooltip:before{content:\"\";position:absolute;top:50%;right:-10px;width:0;height:0;border:5px solid transparent;border:6px solid transparent\\\\0;border-left-color:inherit;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.vue-slider-component .vue-slider-tooltip-right .vue-merged-tooltip .vue-slider-tooltip:before,.vue-slider-component .vue-slider-tooltip-wrap.vue-slider-tooltip-right .vue-slider-tooltip:before{content:\"\";position:absolute;top:50%;left:-10px;width:0;height:0;border:5px solid transparent;border:6px solid transparent\\\\0;border-right-color:inherit;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.vue-slider-component .vue-slider-dot.vue-slider-hover:hover .vue-slider-tooltip-wrap{display:block}.vue-slider-component .vue-slider-dot.vue-slider-always .vue-slider-tooltip-wrap{display:block!important}.vue-slider-component .vue-slider-piecewise{position:absolute;width:100%;padding:0;margin:0;left:0;top:0;height:100%;list-style:none}.vue-slider-component .vue-slider-piecewise-item{position:absolute;width:8px;height:8px}.vue-slider-component .vue-slider-piecewise-dot{position:absolute;left:50%;top:50%;width:100%;height:100%;display:inline-block;background-color:rgba(0,0,0,.16);border-radius:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);z-index:2;transition:all .3s}.vue-slider-component .vue-slider-piecewise-item:first-child .vue-slider-piecewise-dot,.vue-slider-component .vue-slider-piecewise-item:last-child .vue-slider-piecewise-dot{visibility:hidden}.vue-slider-component.vue-slider-horizontal-reverse .vue-slider-piecewise-label,.vue-slider-component.vue-slider-horizontal .vue-slider-piecewise-label{position:absolute;display:inline-block;top:100%;left:50%;white-space:nowrap;font-size:12px;color:#333;-webkit-transform:translate(-50%,8px);transform:translate(-50%,8px);visibility:visible}.vue-slider-component.vue-slider-vertical-reverse .vue-slider-piecewise-label,.vue-slider-component.vue-slider-vertical .vue-slider-piecewise-label{position:absolute;display:inline-block;top:50%;left:100%;white-space:nowrap;font-size:12px;color:#333;-webkit-transform:translate(8px,-50%);transform:translate(8px,-50%);visibility:visible}.vue-slider-component .vue-slider-sr-only{clip:rect(1px,1px,1px,1px);height:1px;width:1px;overflow:hidden;position:absolute!important}',\"\"])},function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;ei.parts.length&&(s.parts.length=i.parts.length)}else{for(var n=[],r=0;r=0&&Math.floor(e)===e&&isFinite(t)}function f(t){return r(t)&&\"function\"==typeof t.then&&\"function\"==typeof t.catch}function d(t){return null==t?\"\":Array.isArray(t)||u(t)&&t.toString===c?JSON.stringify(t,null,2):String(t)}function p(t){var e=parseFloat(t);return isNaN(e)?t:e}function v(t,e){for(var n=Object.create(null),r=t.split(\",\"),o=0;o-1)return t.splice(r,1)}}var y=Object.prototype.hasOwnProperty;function _(t,e){return y.call(t,e)}function b(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var $=/-(\\w)/g,w=b((function(t){return t.replace($,(function(t,e){return e?e.toUpperCase():\"\"}))})),x=b((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),C=/\\B([A-Z])/g,k=b((function(t){return t.replace(C,\"-$1\").toLowerCase()}));var S=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function O(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function T(t,e){for(var n in e)t[n]=e[n];return t}function A(t){for(var e={},n=0;n0,G=q&&q.indexOf(\"edge/\")>0;q&&q.indexOf(\"android\");var X=q&&/iphone|ipad|ipod|ios/.test(q);q&&/chrome\\/\\d+/.test(q),q&&/phantomjs/.test(q);var Y,Q=q&&q.match(/firefox\\/(\\d+)/),tt={}.watch,et=!1;if(J)try{var nt={};Object.defineProperty(nt,\"passive\",{get:function(){et=!0}}),window.addEventListener(\"test-passive\",null,nt)}catch(t){}var rt=function(){return void 0===Y&&(Y=!J&&\"undefined\"!=typeof global&&(global.process&&\"server\"===global.process.env.VUE_ENV)),Y},ot=J&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function it(t){return\"function\"==typeof t&&/native code/.test(t.toString())}var at,st=\"undefined\"!=typeof Symbol&&it(Symbol)&&\"undefined\"!=typeof Reflect&&it(Reflect.ownKeys);at=\"undefined\"!=typeof Set&&it(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ct=null;function ut(t){void 0===t&&(t=null),t||ct&&ct._scope.off(),ct=t,t&&t._scope.on()}var lt=function(){function t(t,e,n,r,o,i,a,s){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=o,this.ns=void 0,this.context=i,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(t.prototype,\"child\",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),t}(),ft=function(t){void 0===t&&(t=\"\");var e=new lt;return e.text=t,e.isComment=!0,e};function dt(t){return new lt(void 0,void 0,void 0,String(t))}function pt(t){var e=new lt(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}var vt=0,ht=[],mt=function(){function t(){this._pending=!1,this.id=vt++,this.subs=[]}return t.prototype.addSub=function(t){this.subs.push(t)},t.prototype.removeSub=function(t){this.subs[this.subs.indexOf(t)]=null,this._pending||(this._pending=!0,ht.push(this))},t.prototype.depend=function(e){t.target&&t.target.addDep(this)},t.prototype.notify=function(t){for(var e=this.subs.filter((function(t){return t})),n=0,r=e.length;n0&&(Yt((c=Qt(c,\"\".concat(a||\"\",\"_\").concat(s)))[0])&&Yt(l)&&(f[u]=dt(l.text+c[0].text),c.shift()),f.push.apply(f,c)):i(c)?Yt(l)?f[u]=dt(l.text+c):\"\"!==c&&f.push(dt(c)):Yt(c)&&Yt(l)?f[u]=dt(l.text+c.text):(o(t._isVList)&&r(c.tag)&&n(c.key)&&r(a)&&(c.key=\"__vlist\".concat(a,\"_\").concat(s,\"__\")),f.push(c)));return f}function te(t,n,c,u,l,f){return(e(c)||i(c))&&(l=u,u=c,c=void 0),o(f)&&(l=2),function(t,n,o,i,c){if(r(o)&&r(o.__ob__))return ft();r(o)&&r(o.is)&&(n=o.is);if(!n)return ft();e(i)&&a(i[0])&&((o=o||{}).scopedSlots={default:i[0]},i.length=0);2===c?i=Xt(i):1===c&&(i=function(t){for(var n=0;n0,s=n?!!n.$stable:!a,c=n&&n.$key;if(n){if(n._normalized)return n._normalized;if(s&&o&&o!==t&&c===o.$key&&!a&&!o.$hasNormal)return o;for(var u in i={},n)n[u]&&\"$\"!==u[0]&&(i[u]=$e(e,r,u,n[u]))}else i={};for(var l in r)l in i||(i[l]=we(r,l));return n&&Object.isExtensible(n)&&(n._normalized=i),z(i,\"$stable\",s),z(i,\"$key\",c),z(i,\"$hasNormal\",a),i}function $e(t,n,r,o){var i=function(){var n=ct;ut(t);var r=arguments.length?o.apply(null,arguments):o({}),i=(r=r&&\"object\"==typeof r&&!e(r)?[r]:Xt(r))&&r[0];return ut(n),r&&(!i||1===r.length&&i.isComment&&!_e(i))?void 0:r};return o.proxy&&Object.defineProperty(n,r,{get:i,enumerable:!0,configurable:!0}),i}function we(t,e){return function(){return t[e]}}function xe(e){return{get attrs(){if(!e._attrsProxy){var n=e._attrsProxy={};z(n,\"_v_attr_proxy\",!0),Ce(n,e.$attrs,t,e,\"$attrs\")}return e._attrsProxy},get listeners(){e._listenersProxy||Ce(e._listenersProxy={},e.$listeners,t,e,\"$listeners\");return e._listenersProxy},get slots(){return function(t){t._slotsProxy||Se(t._slotsProxy={},t.$scopedSlots);return t._slotsProxy}(e)},emit:S(e.$emit,e),expose:function(t){t&&Object.keys(t).forEach((function(n){return Bt(e,t,n)}))}}}function Ce(t,e,n,r,o){var i=!1;for(var a in e)a in t?e[a]!==n[a]&&(i=!0):(i=!0,ke(t,a,r,o));for(var a in t)a in e||(i=!0,delete t[a]);return i}function ke(t,e,n,r){Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){return n[r][e]}})}function Se(t,e){for(var n in e)t[n]=e[n];for(var n in t)n in e||delete t[n]}function Oe(){var t=ct;return t._setupContext||(t._setupContext=xe(t))}var Te,Ae=null;function je(t,e){return(t.__esModule||st&&\"Module\"===t[Symbol.toStringTag])&&(t=t.default),s(t)?e.extend(t):t}function Ee(t){if(e(t))for(var n=0;ndocument.createEvent(\"Event\").timeStamp&&(Ze=function(){return Ge.now()})}var Xe=function(t,e){if(t.post){if(!e.post)return 1}else if(e.post)return-1;return t.id-e.id};function Ye(){var t,e;for(We=Ze(),Je=!0,Ue.sort(Xe),qe=0;qeqe&&Ue[n].id>t.id;)n--;Ue.splice(n+1,0,t)}else Ue.push(t);Ke||(Ke=!0,Cn(Ye))}}var tn=\"watcher\",en=\"\".concat(tn,\" callback\"),nn=\"\".concat(tn,\" getter\"),rn=\"\".concat(tn,\" cleanup\");function on(t,e){return cn(t,null,{flush:\"post\"})}var an,sn={};function cn(n,r,o){var i=void 0===o?t:o,s=i.immediate,c=i.deep,u=i.flush,l=void 0===u?\"pre\":u;i.onTrack,i.onTrigger;var f,d,p=ct,v=function(t,e,n){return void 0===n&&(n=null),dn(t,null,n,p,e)},h=!1,m=!1;if(Ft(n)?(f=function(){return n.value},h=It(n)):Mt(n)?(f=function(){return n.__ob__.dep.depend(),n},c=!0):e(n)?(m=!0,h=n.some((function(t){return Mt(t)||It(t)})),f=function(){return n.map((function(t){return Ft(t)?t.value:Mt(t)?Bn(t):a(t)?v(t,nn):void 0}))}):f=a(n)?r?function(){return v(n,nn)}:function(){if(!p||!p._isDestroyed)return d&&d(),v(n,tn,[y])}:j,r&&c){var g=f;f=function(){return Bn(g())}}var y=function(t){d=_.onStop=function(){v(t,rn)}};if(rt())return y=j,r?s&&v(r,en,[f(),m?[]:void 0,y]):f(),j;var _=new Vn(ct,f,j,{lazy:!0});_.noRecurse=!r;var b=m?[]:sn;return _.run=function(){if(_.active)if(r){var t=_.get();(c||h||(m?t.some((function(t,e){return I(t,b[e])})):I(t,b)))&&(d&&d(),v(r,en,[t,b===sn?void 0:b,y]),b=t)}else _.get()},\"sync\"===l?_.update=_.run:\"post\"===l?(_.post=!0,_.update=function(){return Qe(_)}):_.update=function(){if(p&&p===ct&&!p._isMounted){var t=p._preWatchers||(p._preWatchers=[]);t.indexOf(_)<0&&t.push(_)}else Qe(_)},r?s?_.run():b=_.get():\"post\"===l&&p?p.$once(\"hook:mounted\",(function(){return _.get()})):_.get(),function(){_.teardown()}}var un=function(){function t(t){void 0===t&&(t=!1),this.detached=t,this.active=!0,this.effects=[],this.cleanups=[],this.parent=an,!t&&an&&(this.index=(an.scopes||(an.scopes=[])).push(this)-1)}return t.prototype.run=function(t){if(this.active){var e=an;try{return an=this,t()}finally{an=e}}},t.prototype.on=function(){an=this},t.prototype.off=function(){an=this.parent},t.prototype.stop=function(t){if(this.active){var e=void 0,n=void 0;for(e=0,n=this.effects.length;e1)return n&&a(e)?e.call(r):e}},h:function(t,e,n){return te(ct,t,e,n,2,!0)},getCurrentInstance:function(){return ct&&{proxy:ct}},useSlots:function(){return Oe().slots},useAttrs:function(){return Oe().attrs},useListeners:function(){return Oe().listeners},mergeDefaults:function(t,n){var r=e(t)?t.reduce((function(t,e){return t[e]={},t}),{}):t;for(var o in n){var i=r[o];i?e(i)||a(i)?r[o]={type:i,default:n[o]}:i.default=n[o]:null===i&&(r[o]={default:n[o]})}return r},nextTick:Cn,set:jt,del:Et,useCssModule:function(e){return t},useCssVars:function(t){if(J){var e=ct;e&&on((function(){var n=e.$el,r=t(e,e._setupProxy);if(n&&1===n.nodeType){var o=n.style;for(var i in r)o.setProperty(\"--\".concat(i),r[i])}}))}},defineAsyncComponent:function(t){a(t)&&(t={loader:t});var e=t.loader,n=t.loadingComponent,r=t.errorComponent,o=t.delay,i=void 0===o?200:o,s=t.timeout;t.suspensible;var c=t.onError,u=null,l=0,f=function(){var t;return u||(t=u=e().catch((function(t){if(t=t instanceof Error?t:new Error(String(t)),c)return new Promise((function(e,n){c(t,(function(){return e((l++,u=null,f()))}),(function(){return n(t)}),l+1)}));throw t})).then((function(e){return t!==u&&u?u:(e&&(e.__esModule||\"Module\"===e[Symbol.toStringTag])&&(e=e.default),e)})))};return function(){return{component:f(),delay:i,timeout:s,error:r,loading:n}}},onBeforeMount:Sn,onMounted:On,onBeforeUpdate:Tn,onUpdated:An,onBeforeUnmount:jn,onUnmounted:En,onActivated:Nn,onDeactivated:Pn,onServerPrefetch:Dn,onRenderTracked:Mn,onRenderTriggered:In,onErrorCaptured:function(t,e){void 0===e&&(e=ct),Ln(t,e)}}),Hn=new at;function Bn(t){return Un(t,Hn),Hn.clear(),t}function Un(t,n){var r,o,i=e(t);if(!(!i&&!s(t)||t.__v_skip||Object.isFrozen(t)||t instanceof lt)){if(t.__ob__){var a=t.__ob__.dep.id;if(n.has(a))return;n.add(a)}if(i)for(r=t.length;r--;)Un(t[r],n);else if(Ft(t))Un(t.value,n);else for(r=(o=Object.keys(t)).length;r--;)Un(t[o[r]],n)}}var zn=0,Vn=function(){function t(t,e,n,r,o){!function(t,e){void 0===e&&(e=an),e&&e.active&&e.effects.push(t)}(this,an&&!an._vm?an:t?t._scope:void 0),(this.vm=t)&&o&&(t._watcher=this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++zn,this.active=!0,this.post=!1,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new at,this.newDepIds=new at,this.expression=\"\",a(e)?this.getter=e:(this.getter=function(t){if(!V.test(t)){var e=t.split(\".\");return function(t){for(var n=0;n-1)if(i&&!_(o,\"default\"))s=!1;else if(\"\"===s||s===k(t)){var u=xr(String,o.type);(u<0||c-1:\"string\"==typeof t?t.split(\",\").indexOf(n)>-1:(r=t,\"[object RegExp]\"===c.call(r)&&t.test(n));var r}function Tr(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var a=n[i];if(a){var s=a.name;s&&!e(s)&&Ar(n,i,r,o)}}}function Ar(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,g(n,e)}!function(e){e.prototype._init=function(e){var n=this;n._uid=tr++,n._isVue=!0,n.__v_skip=!0,n._scope=new un(!0),n._scope._vm=!0,e&&e._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(n,e):n.$options=gr(er(n.constructor),e||{},n),n._renderProxy=n,n._self=n,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._provided=n?n._provided:Object.create(null),t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(n),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&Me(t,e)}(n),function(e){e._vnode=null,e._staticTrees=null;var n=e.$options,r=e.$vnode=n._parentVnode,o=r&&r.context;e.$slots=ge(n._renderChildren,o),e.$scopedSlots=r?be(e.$parent,r.data.scopedSlots,e.$slots):t,e._c=function(t,n,r,o){return te(e,t,n,r,o,!1)},e.$createElement=function(t,n,r,o){return te(e,t,n,r,o,!0)};var i=r&&r.data;At(e,\"$attrs\",i&&i.attrs||t,null,!0),At(e,\"$listeners\",n._parentListeners||t,null,!0)}(n),Be(n,\"beforeCreate\",void 0,!1),function(t){var e=Qn(t.$options.inject,t);e&&(kt(!1),Object.keys(e).forEach((function(n){At(t,n,e[n])})),kt(!0))}(n),qn(n),function(t){var e=t.$options.provide;if(e){var n=a(e)?e.call(t):e;if(!s(n))return;for(var r=ln(t),o=st?Reflect.ownKeys(n):Object.keys(n),i=0;i1?O(n):n;for(var r=O(arguments,1),o='event handler for \"'.concat(t,'\"'),i=0,a=n.length;iparseInt(this.max)&&Ar(e,n[0],n,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)Ar(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch(\"include\",(function(e){Tr(t,(function(t){return Or(e,t)}))})),this.$watch(\"exclude\",(function(e){Tr(t,(function(t){return!Or(e,t)}))}))},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=Ee(t),n=e&&e.componentOptions;if(n){var r=Sr(n),o=this.include,i=this.exclude;if(o&&(!r||!Or(o,r))||i&&r&&Or(i,r))return e;var a=this.cache,s=this.keys,c=null==e.key?n.Ctor.cid+(n.tag?\"::\".concat(n.tag):\"\"):e.key;a[c]?(e.componentInstance=a[c].componentInstance,g(s,c),s.push(c)):(this.vnodeToCache=e,this.keyToCache=c),e.data.keepAlive=!0}return e||t&&t[0]}},Nr={KeepAlive:Er};!function(t){var e={get:function(){return H}};Object.defineProperty(t,\"config\",e),t.util={warn:lr,extend:T,mergeOptions:gr,defineReactive:At},t.set=jt,t.delete=Et,t.nextTick=Cn,t.observable=function(t){return Tt(t),t},t.options=Object.create(null),R.forEach((function(e){t.options[e+\"s\"]=Object.create(null)})),t.options._base=t,T(t.options.components,Nr),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=O(arguments,1);return n.unshift(this),a(t.install)?t.install.apply(t,n):a(t)&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=gr(this.options,t),this}}(t),kr(t),function(t){R.forEach((function(e){t[e]=function(t,n){return n?(\"component\"===e&&u(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),\"directive\"===e&&a(n)&&(n={bind:n,update:n}),this.options[e+\"s\"][t]=n,n):this.options[e+\"s\"][t]}}))}(t)}(Cr),Object.defineProperty(Cr.prototype,\"$isServer\",{get:rt}),Object.defineProperty(Cr.prototype,\"$ssrContext\",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Cr,\"FunctionalRenderContext\",{value:nr}),Cr.version=Rn;var Pr=v(\"style,class\"),Dr=v(\"input,textarea,option,select,progress\"),Mr=function(t,e,n){return\"value\"===n&&Dr(t)&&\"button\"!==e||\"selected\"===n&&\"option\"===t||\"checked\"===n&&\"input\"===t||\"muted\"===n&&\"video\"===t},Ir=v(\"contenteditable,draggable,spellcheck\"),Lr=v(\"events,caret,typing,plaintext-only\"),Rr=v(\"allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible\"),Fr=\"http://www.w3.org/1999/xlink\",Hr=function(t){return\":\"===t.charAt(5)&&\"xlink\"===t.slice(0,5)},Br=function(t){return Hr(t)?t.slice(6,t.length):\"\"},Ur=function(t){return null==t||!1===t};function zr(t){for(var e=t.data,n=t,o=t;r(o.componentInstance);)(o=o.componentInstance._vnode)&&o.data&&(e=Vr(o.data,e));for(;r(n=n.parent);)n&&n.data&&(e=Vr(e,n.data));return function(t,e){if(r(t)||r(e))return Kr(t,Jr(e));return\"\"}(e.staticClass,e.class)}function Vr(t,e){return{staticClass:Kr(t.staticClass,e.staticClass),class:r(t.class)?[t.class,e.class]:e.class}}function Kr(t,e){return t?e?t+\" \"+e:t:e||\"\"}function Jr(t){return Array.isArray(t)?function(t){for(var e,n=\"\",o=0,i=t.length;o-1?_o(t,e,n):Rr(e)?Ur(n)?t.removeAttribute(e):(n=\"allowfullscreen\"===e&&\"EMBED\"===t.tagName?\"true\":e,t.setAttribute(e,n)):Ir(e)?t.setAttribute(e,function(t,e){return Ur(e)||\"false\"===e?\"false\":\"contenteditable\"===t&&Lr(e)?e:\"true\"}(e,n)):Hr(e)?Ur(n)?t.removeAttributeNS(Fr,Br(e)):t.setAttributeNS(Fr,e,n):_o(t,e,n)}function _o(t,e,n){if(Ur(n))t.removeAttribute(e);else{if(W&&!Z&&\"TEXTAREA\"===t.tagName&&\"placeholder\"===e&&\"\"!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener(\"input\",r)};t.addEventListener(\"input\",r),t.__ieph=!0}t.setAttribute(e,n)}}var bo={create:go,update:go};function $o(t,e){var o=e.elm,i=e.data,a=t.data;if(!(n(i.staticClass)&&n(i.class)&&(n(a)||n(a.staticClass)&&n(a.class)))){var s=zr(e),c=o._transitionClasses;r(c)&&(s=Kr(s,Jr(c))),s!==o._prevClass&&(o.setAttribute(\"class\",s),o._prevClass=s)}}var wo,xo,Co,ko,So,Oo,To={create:$o,update:$o},Ao=/[\\w).+\\-_$\\]]/;function jo(t){var e,n,r,o,i,a=!1,s=!1,c=!1,u=!1,l=0,f=0,d=0,p=0;for(r=0;r=0&&\" \"===(h=t.charAt(v));v--);h&&Ao.test(h)||(u=!0)}}else void 0===o?(p=r+1,o=t.slice(0,r).trim()):m();function m(){(i||(i=[])).push(t.slice(p,r).trim()),p=r+1}if(void 0===o?o=t.slice(0,r).trim():0!==p&&m(),i)for(r=0;r-1?{exp:t.slice(0,ko),key:'\"'+t.slice(ko+1)+'\"'}:{exp:t,key:null};xo=t,ko=So=Oo=0;for(;!qo();)Wo(Co=Jo())?Go(Co):91===Co&&Zo(Co);return{exp:t.slice(0,So),key:t.slice(So+1,Oo)}}(t);return null===n.key?\"\".concat(t,\"=\").concat(e):\"$set(\".concat(n.exp,\", \").concat(n.key,\", \").concat(e,\")\")}function Jo(){return xo.charCodeAt(++ko)}function qo(){return ko>=wo}function Wo(t){return 34===t||39===t}function Zo(t){var e=1;for(So=ko;!qo();)if(Wo(t=Jo()))Go(t);else if(91===t&&e++,93===t&&e--,0===e){Oo=ko;break}}function Go(t){for(var e=t;!qo()&&(t=Jo())!==e;);}var Xo,Yo=\"__r\";function Qo(t,e,n){var r=Xo;return function o(){var i=e.apply(null,arguments);null!==i&&ni(t,o,n,r)}}var ti=mn&&!(Q&&Number(Q[1])<=53);function ei(t,e,n,r){if(ti){var o=We,i=e;e=i._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return i.apply(this,arguments)}}Xo.addEventListener(t,e,et?{capture:n,passive:r}:n)}function ni(t,e,n,r){(r||Xo).removeEventListener(t,e._wrapper||e,n)}function ri(t,e){if(!n(t.data.on)||!n(e.data.on)){var o=e.data.on||{},i=t.data.on||{};Xo=e.elm||t.elm,function(t){if(r(t.__r)){var e=W?\"change\":\"input\";t[e]=[].concat(t.__r,t[e]||[]),delete t.__r}r(t.__c)&&(t.change=[].concat(t.__c,t.change||[]),delete t.__c)}(o),Wt(o,i,ei,ni,Qo,e.context),Xo=void 0}}var oi,ii={create:ri,update:ri,destroy:function(t){return ri(t,io)}};function ai(t,e){if(!n(t.data.domProps)||!n(e.data.domProps)){var i,a,s=e.elm,c=t.data.domProps||{},u=e.data.domProps||{};for(i in(r(u.__ob__)||o(u._v_attr_proxy))&&(u=e.data.domProps=T({},u)),c)i in u||(s[i]=\"\");for(i in u){if(a=u[i],\"textContent\"===i||\"innerHTML\"===i){if(e.children&&(e.children.length=0),a===c[i])continue;1===s.childNodes.length&&s.removeChild(s.childNodes[0])}if(\"value\"===i&&\"PROGRESS\"!==s.tagName){s._value=a;var l=n(a)?\"\":String(a);si(s,l)&&(s.value=l)}else if(\"innerHTML\"===i&&Zr(s.tagName)&&n(s.innerHTML)){(oi=oi||document.createElement(\"div\")).innerHTML=\"\".concat(a,\"\");for(var f=oi.firstChild;s.firstChild;)s.removeChild(s.firstChild);for(;f.firstChild;)s.appendChild(f.firstChild)}else if(a!==c[i])try{s[i]=a}catch(t){}}}}function si(t,e){return!t.composing&&(\"OPTION\"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,o=t._vModifiers;if(r(o)){if(o.number)return p(n)!==p(e);if(o.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var ci={create:ai,update:ai},ui=b((function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\\))/g).forEach((function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}})),e}));function li(t){var e=fi(t.style);return t.staticStyle?T(t.staticStyle,e):e}function fi(t){return Array.isArray(t)?A(t):\"string\"==typeof t?ui(t):t}var di,pi=/^--/,vi=/\\s*!important$/,hi=function(t,e,n){if(pi.test(e))t.style.setProperty(e,n);else if(vi.test(n))t.style.setProperty(k(e),n.replace(vi,\"\"),\"important\");else{var r=gi(e);if(Array.isArray(n))for(var o=0,i=n.length;o-1?e.split(bi).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=\" \".concat(t.getAttribute(\"class\")||\"\",\" \");n.indexOf(\" \"+e+\" \")<0&&t.setAttribute(\"class\",(n+e).trim())}}function wi(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(\" \")>-1?e.split(bi).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute(\"class\");else{for(var n=\" \".concat(t.getAttribute(\"class\")||\"\",\" \"),r=\" \"+e+\" \";n.indexOf(r)>=0;)n=n.replace(r,\" \");(n=n.trim())?t.setAttribute(\"class\",n):t.removeAttribute(\"class\")}}function xi(t){if(t){if(\"object\"==typeof t){var e={};return!1!==t.css&&T(e,Ci(t.name||\"v\")),T(e,t),e}return\"string\"==typeof t?Ci(t):void 0}}var Ci=b((function(t){return{enterClass:\"\".concat(t,\"-enter\"),enterToClass:\"\".concat(t,\"-enter-to\"),enterActiveClass:\"\".concat(t,\"-enter-active\"),leaveClass:\"\".concat(t,\"-leave\"),leaveToClass:\"\".concat(t,\"-leave-to\"),leaveActiveClass:\"\".concat(t,\"-leave-active\")}})),ki=J&&!Z,Si=\"transition\",Oi=\"animation\",Ti=\"transition\",Ai=\"transitionend\",ji=\"animation\",Ei=\"animationend\";ki&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Ti=\"WebkitTransition\",Ai=\"webkitTransitionEnd\"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(ji=\"WebkitAnimation\",Ei=\"webkitAnimationEnd\"));var Ni=J?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function Pi(t){Ni((function(){Ni(t)}))}function Di(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),$i(t,e))}function Mi(t,e){t._transitionClasses&&g(t._transitionClasses,e),wi(t,e)}function Ii(t,e,n){var r=Ri(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var s=o===Si?Ai:Ei,c=0,u=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++c>=a&&u()};setTimeout((function(){c0&&(n=Si,l=a,f=i.length):e===Oi?u>0&&(n=Oi,l=u,f=c.length):f=(n=(l=Math.max(a,u))>0?a>u?Si:Oi:null)?n===Si?i.length:c.length:0,{type:n,timeout:l,propCount:f,hasTransform:n===Si&&Li.test(r[Ti+\"Property\"])}}function Fi(t,e){for(;t.length1}function Ki(t,e){!0!==e.data.show&&Bi(e)}var Ji=function(t){var a,s,c={},u=t.modules,l=t.nodeOps;for(a=0;av?b(t,n(o[g+1])?null:o[g+1].elm,o,p,g,i):p>g&&w(e,f,v)}(f,h,m,i,u):r(m)?(r(t.text)&&l.setTextContent(f,\"\"),b(f,null,m,0,m.length-1,i)):r(h)?w(h,0,h.length-1):r(t.text)&&l.setTextContent(f,\"\"):t.text!==e.text&&l.setTextContent(f,e.text),r(v)&&r(p=v.hook)&&r(p=p.postpatch)&&p(t,e)}}}function S(t,e,n){if(o(n)&&r(t.parent))t.parent.data.pendingInsert=e;else for(var i=0;i-1,a.selected!==i&&(a.selected=i);else if(P(Xi(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));o||(t.selectedIndex=-1)}}function Gi(t,e){return e.every((function(e){return!P(e,t)}))}function Xi(t){return\"_value\"in t?t._value:t.value}function Yi(t){t.target.composing=!0}function Qi(t){t.target.composing&&(t.target.composing=!1,ta(t.target,\"input\"))}function ta(t,e){var n=document.createEvent(\"HTMLEvents\");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function ea(t){return!t.componentInstance||t.data&&t.data.transition?t:ea(t.componentInstance._vnode)}var na={bind:function(t,e,n){var r=e.value,o=(n=ea(n)).data&&n.data.transition,i=t.__vOriginalDisplay=\"none\"===t.style.display?\"\":t.style.display;r&&o?(n.data.show=!0,Bi(n,(function(){t.style.display=i}))):t.style.display=r?i:\"none\"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=ea(n)).data&&n.data.transition?(n.data.show=!0,r?Bi(n,(function(){t.style.display=t.__vOriginalDisplay})):Ui(n,(function(){t.style.display=\"none\"}))):t.style.display=r?t.__vOriginalDisplay:\"none\")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}},ra={model:qi,show:na},oa={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function ia(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?ia(Ee(e.children)):t}function aa(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var r in o)e[w(r)]=o[r];return e}function sa(t,e){if(/\\d-keep-alive$/.test(e.tag))return t(\"keep-alive\",{props:e.componentOptions.propsData})}var ca=function(t){return t.tag||_e(t)},ua=function(t){return\"show\"===t.name},la={name:\"transition\",props:oa,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(ca)).length){var r=this.mode,o=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return o;var a=ia(o);if(!a)return o;if(this._leaving)return sa(t,o);var s=\"__transition-\".concat(this._uid,\"-\");a.key=null==a.key?a.isComment?s+\"comment\":s+a.tag:i(a.key)?0===String(a.key).indexOf(s)?a.key:s+a.key:a.key;var c=(a.data||(a.data={})).transition=aa(this),u=this._vnode,l=ia(u);if(a.data.directives&&a.data.directives.some(ua)&&(a.data.show=!0),l&&l.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(a,l)&&!_e(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=T({},c);if(\"out-in\"===r)return this._leaving=!0,Zt(f,\"afterLeave\",(function(){e._leaving=!1,e.$forceUpdate()})),sa(t,o);if(\"in-out\"===r){if(_e(a))return u;var d,p=function(){d()};Zt(c,\"afterEnter\",p),Zt(c,\"enterCancelled\",p),Zt(f,\"delayLeave\",(function(t){d=t}))}}return o}}},fa=T({tag:String,moveClass:String},oa);delete fa.mode;var da={props:fa,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=Le(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||\"span\",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=aa(this),s=0;s-1?Yr[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Yr[t]=/HTMLUnknownElement/.test(e.toString())},T(Cr.options.directives,ra),T(Cr.options.components,ma),Cr.prototype.__patch__=J?Ji:j,Cr.prototype.$mount=function(t,e){return function(t,e,n){var r;t.$el=e,t.$options.render||(t.$options.render=ft),Be(t,\"beforeMount\"),r=function(){t._update(t._render(),n)},new Vn(t,r,j,{before:function(){t._isMounted&&!t._isDestroyed&&Be(t,\"beforeUpdate\")}},!0),n=!1;var o=t._preWatchers;if(o)for(var i=0;i\\/=]+)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/,Ta=/^\\s*((?:v-[\\w-]+:|@|:|#)\\[[^=]+?\\][^\\s\"'<>\\/=]*)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/,Aa=\"[a-zA-Z_][\\\\-\\\\.0-9_a-zA-Z\".concat(B.source,\"]*\"),ja=\"((?:\".concat(Aa,\"\\\\:)?\").concat(Aa,\")\"),Ea=new RegExp(\"^<\".concat(ja)),Na=/^\\s*(\\/?)>/,Pa=new RegExp(\"^<\\\\/\".concat(ja,\"[^>]*>\")),Da=/^]+>/i,Ma=/^\",\""\":'\"',\"&\":\"&\",\" \":\"\\n\",\" \":\"\\t\",\"'\":\"'\"},Ha=/&(?:lt|gt|quot|amp|#39);/g,Ba=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,Ua=v(\"pre,textarea\",!0),za=function(t,e){return t&&Ua(t)&&\"\\n\"===e[0]};function Va(t,e){var n=e?Ba:Ha;return t.replace(n,(function(t){return Fa[t]}))}function Ka(t,e){for(var n,r,o=[],i=e.expectHTML,a=e.isUnaryTag||E,s=e.canBeLeftOpenTag||E,c=0,u=function(){if(n=t,r&&La(r)){var u=0,d=r.toLowerCase(),p=Ra[d]||(Ra[d]=new RegExp(\"([\\\\s\\\\S]*?)(]*>)\",\"i\"));w=t.replace(p,(function(t,n,r){return u=r.length,La(d)||\"noscript\"===d||(n=n.replace(//g,\"$1\").replace(//g,\"$1\")),za(d,n)&&(n=n.slice(1)),e.chars&&e.chars(n),\"\"}));c+=t.length-w.length,t=w,f(d,c-u,c)}else{var v=t.indexOf(\"<\");if(0===v){if(Ma.test(t)){var h=t.indexOf(\"--\\x3e\");if(h>=0)return e.shouldKeepComment&&e.comment&&e.comment(t.substring(4,h),c,c+h+3),l(h+3),\"continue\"}if(Ia.test(t)){var m=t.indexOf(\"]>\");if(m>=0)return l(m+2),\"continue\"}var g=t.match(Da);if(g)return l(g[0].length),\"continue\";var y=t.match(Pa);if(y){var _=c;return l(y[0].length),f(y[1],_,c),\"continue\"}var b=function(){var e=t.match(Ea);if(e){var n={tagName:e[1],attrs:[],start:c};l(e[0].length);for(var r=void 0,o=void 0;!(r=t.match(Na))&&(o=t.match(Ta)||t.match(Oa));)o.start=c,l(o[0].length),o.end=c,n.attrs.push(o);if(r)return n.unarySlash=r[1],l(r[0].length),n.end=c,n}}();if(b)return function(t){var n=t.tagName,c=t.unarySlash;i&&(\"p\"===r&&Sa(n)&&f(r),s(n)&&r===n&&f(n));for(var u=a(n)||!!c,l=t.attrs.length,d=new Array(l),p=0;p=0){for(w=t.slice(v);!(Pa.test(w)||Ea.test(w)||Ma.test(w)||Ia.test(w)||(x=w.indexOf(\"<\",1))<0);)v+=x,w=t.slice(v);$=t.substring(0,v)}v<0&&($=t),$&&l($.length),e.chars&&$&&e.chars($,c-$.length,c)}if(t===n)return e.chars&&e.chars(t),\"break\"};t;){if(\"break\"===u())break}function l(e){c+=e,t=t.substring(e)}function f(t,n,i){var a,s;if(null==n&&(n=c),null==i&&(i=c),t)for(s=t.toLowerCase(),a=o.length-1;a>=0&&o[a].lowerCasedTag!==s;a--);else a=0;if(a>=0){for(var u=o.length-1;u>=a;u--)e.end&&e.end(o[u].tag,n,i);o.length=a,r=a&&o[a-1].tag}else\"br\"===s?e.start&&e.start(t,[],!0,n,i):\"p\"===s&&(e.start&&e.start(t,[],!1,n,i),e.end&&e.end(t,n,i))}f()}var Ja,qa,Wa,Za,Ga,Xa,Ya,Qa,ts=/^@|^v-on:/,es=/^v-|^@|^:|^#/,ns=/([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/,rs=/,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/,os=/^\\(|\\)$/g,is=/^\\[.*\\]$/,as=/:(.*)$/,ss=/^:|^\\.|^v-bind:/,cs=/\\.[^.\\]]+(?=[^\\]]*$)/g,us=/^v-slot(:|$)|^#/,ls=/[\\r\\n]/,fs=/[ \\f\\t\\r\\n]+/g,ds=b(xa),ps=\"_empty_\";function vs(t,e,n){return{type:1,tag:t,attrsList:e,attrsMap:$s(e),rawAttrsMap:{},parent:n,children:[]}}function hs(t,e){Ja=e.warn||No,Xa=e.isPreTag||E,Ya=e.mustUseProp||E,Qa=e.getTagNamespace||E,e.isReservedTag,Wa=Po(e.modules,\"transformNode\"),Za=Po(e.modules,\"preTransformNode\"),Ga=Po(e.modules,\"postTransformNode\"),qa=e.delimiters;var n,r,o=[],i=!1!==e.preserveWhitespace,a=e.whitespace,s=!1,c=!1;function u(t){if(l(t),s||t.processed||(t=ms(t,e)),o.length||t===n||n.if&&(t.elseif||t.else)&&ys(n,{exp:t.elseif,block:t}),r&&!t.forbidden)if(t.elseif||t.else)a=t,u=function(t){for(var e=t.length;e--;){if(1===t[e].type)return t[e];t.pop()}}(r.children),u&&u.if&&ys(u,{exp:a.elseif,block:a});else{if(t.slotScope){var i=t.slotTarget||'\"default\"';(r.scopedSlots||(r.scopedSlots={}))[i]=t}r.children.push(t),t.parent=r}var a,u;t.children=t.children.filter((function(t){return!t.slotScope})),l(t),t.pre&&(s=!1),Xa(t.tag)&&(c=!1);for(var f=0;fc&&(s.push(i=t.slice(c,o)),a.push(JSON.stringify(i)));var u=jo(r[1].trim());a.push(\"_s(\".concat(u,\")\")),s.push({\"@binding\":u}),c=o+r[0].length}return c-1\")+(\"true\"===i?\":(\".concat(e,\")\"):\":_q(\".concat(e,\",\").concat(i,\")\"))),Fo(t,\"change\",\"var $$a=\".concat(e,\",\")+\"$$el=$event.target,\"+\"$$c=$$el.checked?(\".concat(i,\"):(\").concat(a,\");\")+\"if(Array.isArray($$a)){\"+\"var $$v=\".concat(r?\"_n(\"+o+\")\":o,\",\")+\"$$i=_i($$a,$$v);\"+\"if($$el.checked){$$i<0&&(\".concat(Ko(e,\"$$a.concat([$$v])\"),\")}\")+\"else{$$i>-1&&(\".concat(Ko(e,\"$$a.slice(0,$$i).concat($$a.slice($$i+1))\"),\")}\")+\"}else{\".concat(Ko(e,\"$$c\"),\"}\"),null,!0)}(t,r,o);else if(\"input\"===i&&\"radio\"===a)!function(t,e,n){var r=n&&n.number,o=Ho(t,\"value\")||\"null\";o=r?\"_n(\".concat(o,\")\"):o,Do(t,\"checked\",\"_q(\".concat(e,\",\").concat(o,\")\")),Fo(t,\"change\",Ko(e,o),null,!0)}(t,r,o);else if(\"input\"===i||\"textarea\"===i)!function(t,e,n){var r=t.attrsMap.type,o=n||{},i=o.lazy,a=o.number,s=o.trim,c=!i&&\"range\"!==r,u=i?\"change\":\"range\"===r?Yo:\"input\",l=\"$event.target.value\";s&&(l=\"$event.target.value.trim()\");a&&(l=\"_n(\".concat(l,\")\"));var f=Ko(e,l);c&&(f=\"if($event.target.composing)return;\".concat(f));Do(t,\"value\",\"(\".concat(e,\")\")),Fo(t,u,f,null,!0),(s||a)&&Fo(t,\"blur\",\"$forceUpdate()\")}(t,r,o);else if(!H.isReservedTag(i))return Vo(t,r,o),!1;return!0},text:function(t,e){e.value&&Do(t,\"textContent\",\"_s(\".concat(e.value,\")\"),e)},html:function(t,e){e.value&&Do(t,\"innerHTML\",\"_s(\".concat(e.value,\")\"),e)}},As={expectHTML:!0,modules:ks,directives:Ts,isPreTag:function(t){return\"pre\"===t},isUnaryTag:Ca,mustUseProp:Mr,canBeLeftOpenTag:ka,isReservedTag:Gr,getTagNamespace:Xr,staticKeys:function(t){return t.reduce((function(t,e){return t.concat(e.staticKeys||[])}),[]).join(\",\")}(ks)},js=b((function(t){return v(\"type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap\"+(t?\",\"+t:\"\"))}));function Es(t,e){t&&(Ss=js(e.staticKeys||\"\"),Os=e.isReservedTag||E,Ns(t),Ps(t,!1))}function Ns(t){if(t.static=function(t){if(2===t.type)return!1;if(3===t.type)return!0;return!(!t.pre&&(t.hasBindings||t.if||t.for||h(t.tag)||!Os(t.tag)||function(t){for(;t.parent;){if(\"template\"!==(t=t.parent).tag)return!1;if(t.for)return!0}return!1}(t)||!Object.keys(t).every(Ss)))}(t),1===t.type){if(!Os(t.tag)&&\"slot\"!==t.tag&&null==t.attrsMap[\"inline-template\"])return;for(var e=0,n=t.children.length;e|^function(?:\\s+[\\w$]+)?\\s*\\(/,Ms=/\\([^)]*?\\);*$/,Is=/^[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['[^']*?']|\\[\"[^\"]*?\"]|\\[\\d+]|\\[[A-Za-z_$][\\w$]*])*$/,Ls={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Rs={esc:[\"Esc\",\"Escape\"],tab:\"Tab\",enter:\"Enter\",space:[\" \",\"Spacebar\"],up:[\"Up\",\"ArrowUp\"],left:[\"Left\",\"ArrowLeft\"],right:[\"Right\",\"ArrowRight\"],down:[\"Down\",\"ArrowDown\"],delete:[\"Backspace\",\"Delete\",\"Del\"]},Fs=function(t){return\"if(\".concat(t,\")return null;\")},Hs={stop:\"$event.stopPropagation();\",prevent:\"$event.preventDefault();\",self:Fs(\"$event.target !== $event.currentTarget\"),ctrl:Fs(\"!$event.ctrlKey\"),shift:Fs(\"!$event.shiftKey\"),alt:Fs(\"!$event.altKey\"),meta:Fs(\"!$event.metaKey\"),left:Fs(\"'button' in $event && $event.button !== 0\"),middle:Fs(\"'button' in $event && $event.button !== 1\"),right:Fs(\"'button' in $event && $event.button !== 2\")};function Bs(t,e){var n=e?\"nativeOn:\":\"on:\",r=\"\",o=\"\";for(var i in t){var a=Us(t[i]);t[i]&&t[i].dynamic?o+=\"\".concat(i,\",\").concat(a,\",\"):r+='\"'.concat(i,'\":').concat(a,\",\")}return r=\"{\".concat(r.slice(0,-1),\"}\"),o?n+\"_d(\".concat(r,\",[\").concat(o.slice(0,-1),\"])\"):n+r}function Us(t){if(!t)return\"function(){}\";if(Array.isArray(t))return\"[\".concat(t.map((function(t){return Us(t)})).join(\",\"),\"]\");var e=Is.test(t.value),n=Ds.test(t.value),r=Is.test(t.value.replace(Ms,\"\"));if(t.modifiers){var o=\"\",i=\"\",a=[],s=function(e){if(Hs[e])i+=Hs[e],Ls[e]&&a.push(e);else if(\"exact\"===e){var n=t.modifiers;i+=Fs([\"ctrl\",\"shift\",\"alt\",\"meta\"].filter((function(t){return!n[t]})).map((function(t){return\"$event.\".concat(t,\"Key\")})).join(\"||\"))}else a.push(e)};for(var c in t.modifiers)s(c);a.length&&(o+=function(t){return\"if(!$event.type.indexOf('key')&&\"+\"\".concat(t.map(zs).join(\"&&\"),\")return null;\")}(a)),i&&(o+=i);var u=e?\"return \".concat(t.value,\".apply(null, arguments)\"):n?\"return (\".concat(t.value,\").apply(null, arguments)\"):r?\"return \".concat(t.value):t.value;return\"function($event){\".concat(o).concat(u,\"}\")}return e||n?t.value:\"function($event){\".concat(r?\"return \".concat(t.value):t.value,\"}\")}function zs(t){var e=parseInt(t,10);if(e)return\"$event.keyCode!==\".concat(e);var n=Ls[t],r=Rs[t];return\"_k($event.keyCode,\"+\"\".concat(JSON.stringify(t),\",\")+\"\".concat(JSON.stringify(n),\",\")+\"$event.key,\"+\"\".concat(JSON.stringify(r))+\")\"}var Vs={on:function(t,e){t.wrapListeners=function(t){return\"_g(\".concat(t,\",\").concat(e.value,\")\")}},bind:function(t,e){t.wrapData=function(n){return\"_b(\".concat(n,\",'\").concat(t.tag,\"',\").concat(e.value,\",\").concat(e.modifiers&&e.modifiers.prop?\"true\":\"false\").concat(e.modifiers&&e.modifiers.sync?\",true\":\"\",\")\")}},cloak:j},Ks=function(t){this.options=t,this.warn=t.warn||No,this.transforms=Po(t.modules,\"transformCode\"),this.dataGenFns=Po(t.modules,\"genData\"),this.directives=T(T({},Vs),t.directives);var e=t.isReservedTag||E;this.maybeComponent=function(t){return!!t.component||!e(t.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function Js(t,e){var n=new Ks(e),r=t?\"script\"===t.tag?\"null\":qs(t,n):'_c(\"div\")';return{render:\"with(this){return \".concat(r,\"}\"),staticRenderFns:n.staticRenderFns}}function qs(t,e){if(t.parent&&(t.pre=t.pre||t.parent.pre),t.staticRoot&&!t.staticProcessed)return Ws(t,e);if(t.once&&!t.onceProcessed)return Zs(t,e);if(t.for&&!t.forProcessed)return Ys(t,e);if(t.if&&!t.ifProcessed)return Gs(t,e);if(\"template\"!==t.tag||t.slotTarget||e.pre){if(\"slot\"===t.tag)return function(t,e){var n=t.slotName||'\"default\"',r=nc(t,e),o=\"_t(\".concat(n).concat(r?\",function(){return \".concat(r,\"}\"):\"\"),i=t.attrs||t.dynamicAttrs?ic((t.attrs||[]).concat(t.dynamicAttrs||[]).map((function(t){return{name:w(t.name),value:t.value,dynamic:t.dynamic}}))):null,a=t.attrsMap[\"v-bind\"];!i&&!a||r||(o+=\",null\");i&&(o+=\",\".concat(i));a&&(o+=\"\".concat(i?\"\":\",null\",\",\").concat(a));return o+\")\"}(t,e);var n=void 0;if(t.component)n=function(t,e,n){var r=e.inlineTemplate?null:nc(e,n,!0);return\"_c(\".concat(t,\",\").concat(Qs(e,n)).concat(r?\",\".concat(r):\"\",\")\")}(t.component,t,e);else{var r=void 0,o=e.maybeComponent(t);(!t.plain||t.pre&&o)&&(r=Qs(t,e));var i=void 0,a=e.options.bindings;o&&a&&!1!==a.__isScriptSetup&&(i=function(t,e){var n=w(e),r=x(n),o=function(o){return t[e]===o?e:t[n]===o?n:t[r]===o?r:void 0},i=o(\"setup-const\")||o(\"setup-reactive-const\");if(i)return i;var a=o(\"setup-let\")||o(\"setup-ref\")||o(\"setup-maybe-ref\");if(a)return a}(a,t.tag)),i||(i=\"'\".concat(t.tag,\"'\"));var s=t.inlineTemplate?null:nc(t,e,!0);n=\"_c(\".concat(i).concat(r?\",\".concat(r):\"\").concat(s?\",\".concat(s):\"\",\")\")}for(var c=0;c>>0}(a)):\"\",\")\")}(t,t.scopedSlots,e),\",\")),t.model&&(n+=\"model:{value:\".concat(t.model.value,\",callback:\").concat(t.model.callback,\",expression:\").concat(t.model.expression,\"},\")),t.inlineTemplate){var i=function(t,e){var n=t.children[0];if(n&&1===n.type){var r=Js(n,e.options);return\"inlineTemplate:{render:function(){\".concat(r.render,\"},staticRenderFns:[\").concat(r.staticRenderFns.map((function(t){return\"function(){\".concat(t,\"}\")})).join(\",\"),\"]}\")}}(t,e);i&&(n+=\"\".concat(i,\",\"))}return n=n.replace(/,$/,\"\")+\"}\",t.dynamicAttrs&&(n=\"_b(\".concat(n,',\"').concat(t.tag,'\",').concat(ic(t.dynamicAttrs),\")\")),t.wrapData&&(n=t.wrapData(n)),t.wrapListeners&&(n=t.wrapListeners(n)),n}function tc(t){return 1===t.type&&(\"slot\"===t.tag||t.children.some(tc))}function ec(t,e){var n=t.attrsMap[\"slot-scope\"];if(t.if&&!t.ifProcessed&&!n)return Gs(t,e,ec,\"null\");if(t.for&&!t.forProcessed)return Ys(t,e,ec);var r=t.slotScope===ps?\"\":String(t.slotScope),o=\"function(\".concat(r,\"){\")+\"return \".concat(\"template\"===t.tag?t.if&&n?\"(\".concat(t.if,\")?\").concat(nc(t,e)||\"undefined\",\":undefined\"):nc(t,e)||\"undefined\":qs(t,e),\"}\"),i=r?\"\":\",proxy:true\";return\"{key:\".concat(t.slotTarget||'\"default\"',\",fn:\").concat(o).concat(i,\"}\")}function nc(t,e,n,r,o){var i=t.children;if(i.length){var a=i[0];if(1===i.length&&a.for&&\"template\"!==a.tag&&\"slot\"!==a.tag){var s=n?e.maybeComponent(a)?\",1\":\",0\":\"\";return\"\".concat((r||qs)(a,e)).concat(s)}var c=n?function(t,e){for(var n=0,r=0;r':'
    ',lc.innerHTML.indexOf(\" \")>0}var vc=!!J&&pc(!1),hc=!!J&&pc(!0),mc=b((function(t){var e=to(t);return e&&e.innerHTML})),gc=Cr.prototype.$mount;return Cr.prototype.$mount=function(t,e){if((t=t&&to(t))===document.body||t===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if(\"string\"==typeof r)\"#\"===r.charAt(0)&&(r=mc(r));else{if(!r.nodeType)return this;r=r.innerHTML}else t&&(r=function(t){if(t.outerHTML)return t.outerHTML;var e=document.createElement(\"div\");return e.appendChild(t.cloneNode(!0)),e.innerHTML}(t));if(r){var o=dc(r,{outputSourceRange:!1,shouldDecodeNewlines:vc,shouldDecodeNewlinesForHref:hc,delimiters:n.delimiters,comments:n.comments},this),i=o.render,a=o.staticRenderFns;n.render=i,n.staticRenderFns=a}}return gc.call(this,t,e)},Cr.compile=dc,T(Cr,Fn),Cr.effect=function(t,e){var n=new Vn(ct,t,j,{sync:!0});e&&(n.update=function(){e((function(){return n.run()}))})},Cr}));","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n 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}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { extend } from '../../shared/utils.js';\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n 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 (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n }\n swiper.emit('breakpoint', breakpointParams);\n}","function 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}\nexport default {\n checkOverflow\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nexport default function 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}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","export default function removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { extend, deleteProps, createElement, elementChildren, elementStyle, elementIndex } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nimport { processLazyPreloader, preload } from '../shared/process-lazy-preloader.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\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 evCache: []\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 getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? slides[activeIndex].swiperSlideSize : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate = true) {\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.shadowEl) {\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 : wrapperEl,\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 [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].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 = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n el.removeAttribute('style');\n wrapperEl.removeAttribute('style');\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.el.swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","export default {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n 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 loopedSlides: null,\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 slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-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};","/* eslint-disable no-underscore-dangle */\n\nexport default {\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(...args) {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\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(...args) {\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 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};","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nimport onLoad from './onLoad.js';\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n\n // Touch Events\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', 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\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 document = getDocument();\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 if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nexport default {\n attachEvents,\n detachEvents\n};","export default function 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}","import { processLazyPreloader } from '../../shared/process-lazy-preloader.js';\nexport default function 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}","export default function 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}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n 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}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === event.pointerId);\n if (pointerIndex >= 0) {\n data.evCache.splice(pointerIndex, 1);\n }\n if (['pointercancel', 'pointerout', 'pointerleave'].includes(event.type)) {\n const proceed = event.type === 'pointercancel' && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\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 (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 // 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);\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.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","import { getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) data.evCache[pointerIndex] = e;\n const targetTouch = data.evCache.length > 1 ? data.evCache[0] : e;\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 prevX: swiper.touches.currentX,\n prevY: swiper.touches.currentY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n 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 || swiper.zoom && swiper.params.zoom && swiper.params.zoom.enabled && data.evCache.length > 1) {\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 if (!data.isMoved) {\n if (isLoop) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n if (data.isMoved && prevTouchesDirection !== swiper.touchesDirection && isLoop && Math.abs(diff) >= 1) {\n // need another loop fix\n swiper.loopFix({\n direction: swiper.swipeDirection,\n setTranslate: true\n });\n loopFixed = true;\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 && !loopFixed && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.size / 2 : 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 && !loopFixed && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.size / 2 : 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}","import { getWindow, getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.js';\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n data.evCache.push(event);\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.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 e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = event.composedPath ? event.composedPath() : event.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 const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.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}","export default function 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}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { elementChildren } from '../../shared/utils.js';\nexport default function 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 slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}","export default function 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}","export default function loopFix({\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n} = {}) {\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 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 const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10));\n let loopedSlides = params.loopedSlides || slidesPerView;\n if (loopedSlides % params.slidesPerGroup !== 0) {\n loopedSlides += params.slidesPerGroup - loopedSlides % params.slidesPerGroup;\n }\n swiper.loopedSlides = loopedSlides;\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(swiper.slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n // prepend last slides before start\n if (activeSlideIndex < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeSlideIndex, params.slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeSlideIndex; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n prependSlidesIndexes.push(slides.length - index - 1);\n }\n } else if (activeSlideIndex /* + slidesPerView */ > swiper.slides.length - loopedSlides * 2) {\n slidesAppended = Math.max(activeSlideIndex - (swiper.slides.length - loopedSlides * 2), params.slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlidesIndexes.push(index);\n }\n }\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + slidesPrepended, 0, false, true);\n if (setTranslate) {\n swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n }\n }\n } else {\n if (setTranslate) {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\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.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n }\n }\n } else {\n swiper.slideToLoop(slideRealIndex, 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 slideTo: false,\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(loopParams);\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix(loopParams);\n }\n }\n swiper.emit('loopFix');\n}","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\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}","import { getWindow } from 'ssr-window';\nimport { elementParents } from '../../../shared/utils.js';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.el);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.el, {\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}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n 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(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n 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}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\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}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled) return swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // Update Index\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}","import { elementChildren, nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n 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}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\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 newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n }\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n 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}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n 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}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function 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}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","import { preload } from '../../shared/process-lazy-preloader.js';\nexport function 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}\nexport default function 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) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n }\n return;\n }\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (swiper.slides[activeIndex]) {\n realIndex = parseInt(swiper.slides[activeIndex].getAttribute('data-swiper-slide-index') || activeIndex, 10);\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 (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","export default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n 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}","export default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = e.closest(`.${params.slideClass}, swiper-slide`);\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}","export default function 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}","import { elementStyle } from '../../shared/utils.js';\nexport default function 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}","import { elementChildren, elementOuterSize, elementStyle, setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n function getDirectionLabel(property) {\n if (swiper.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 function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(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(slidesLength);\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, slidesLength, getDirectionLabel);\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[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[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[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\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' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}","import { elementChildren, elementNextAll, elementPrevAll } from '../../shared/utils.js';\nexport default function 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 getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n });\n let activeSlide;\n 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 activeSlide = slides[activeIndex];\n }\n if (activeSlide) {\n // Active classes\n activeSlide.classList.add(params.slideActiveClass);\n\n // Next Slide\n let nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\n }\n swiper.emitSlidesClasses();\n}","export default function 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}","export default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass);\n });\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides[i].classList.add(params.slideVisibleClass);\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n const makeElementsArray = el => {\n if (!Array.isArray(el)) el = [el].filter(e => !!e);\n return el;\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.shadowRoot.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.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\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 [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList[swiper.enabled ? 'remove' : '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 if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) {\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}","import classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport { elementIndex, elementOuterSize, elementParents } from '../../shared/utils.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n const makeElementsArray = el => {\n if (!Array.isArray(el)) el = [el].filter(e => !!e);\n return el;\n };\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n const newSlideIndex = swiper.getSlideIndexByData(index);\n const currentSlideIndex = swiper.getSlideIndexByData(swiper.realIndex);\n if (newSlideIndex > swiper.slides.length - swiper.loopedSlides) {\n swiper.loopFix({\n direction: newSlideIndex > currentSlideIndex ? 'next' : 'prev',\n activeSlideIndex: newSlideIndex,\n slideTo: false\n });\n }\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.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.shadowRoot.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(params.clickableClass);\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.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 let {\n el\n } = swiper.pagination;\n if (!Array.isArray(el)) el = [el].filter(element => !!element);\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}","import { getDocument } from 'ssr-window';\nimport { elementChildren, isObject } from '../../shared/utils.js';\nexport default function Thumb({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n swiper.slideToLoop(slideToIndex);\n } else {\n swiper.slideTo(slideToIndex);\n }\n }\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper.update();\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass));\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n elementChildren(thumbsSwiper.slidesEl, `[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).forEach(slideEl => {\n slideEl.classList.add(thumbActiveClass);\n });\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n if (thumbsSwiper.slides[swiper.realIndex + i]) {\n thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);\n }\n }\n }\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n const currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0];\n newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {\n // newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n }\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {\n const document = getDocument();\n const getThumbsElementAndInit = () => {\n const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;\n if (thumbsElement && thumbsElement.swiper) {\n thumbs.swiper = thumbsElement.swiper;\n init();\n update(true);\n } else if (thumbsElement) {\n const onThumbsSwiper = e => {\n thumbs.swiper = e.detail[0];\n thumbsElement.removeEventListener('init', onThumbsSwiper);\n init();\n update(true);\n thumbs.swiper.update();\n swiper.update();\n };\n thumbsElement.addEventListener('init', onThumbsSwiper);\n }\n return thumbsElement;\n };\n const watchForThumbsToAppear = () => {\n if (swiper.destroyed) return;\n const thumbsElement = getThumbsElementAndInit();\n if (!thumbsElement) {\n requestAnimationFrame(watchForThumbsToAppear);\n }\n };\n requestAnimationFrame(watchForThumbsToAppear);\n } else {\n init();\n update(true);\n }\n });\n on('slideChange update resize observerUpdate', () => {\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n if (swiperCreated) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}","import { getWindow } from 'ssr-window';\nimport { elementChildren, elementOffset, elementParents, getTranslate } from '../../shared/utils.js';\nexport default function Zoom({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const window = getWindow();\n extendParams({\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n });\n swiper.zoom = {\n enabled: false\n };\n let currentScale = 1;\n let isScaling = false;\n let fakeGestureTouched;\n let fakeGestureMoved;\n const evCache = [];\n const gesture = {\n originX: 0,\n originY: 0,\n slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n imageEl: undefined,\n imageWrapEl: undefined,\n maxRatio: 3\n };\n const image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n };\n const velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = gesture.imageEl;\n const slideEl = gesture.slideEl;\n emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n }\n });\n function getDistanceBetweenTouches() {\n if (evCache.length < 2) return 1;\n const x1 = evCache[0].pageX;\n const y1 = evCache[0].pageY;\n const x2 = evCache[1].pageX;\n const y2 = evCache[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n }\n function getScaleOrigin() {\n if (evCache.length < 2) return {\n x: null,\n y: null\n };\n const box = gesture.imageEl.getBoundingClientRect();\n return [(evCache[0].pageX + (evCache[1].pageX - evCache[0].pageX) / 2 - box.x) / currentScale, (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y) / currentScale];\n }\n function getSlideSelector() {\n return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n }\n function eventWithinSlide(e) {\n const slideSelector = getSlideSelector();\n if (e.target.matches(slideSelector)) return true;\n if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true;\n return false;\n }\n function eventWithinZoomContainer(e) {\n const selector = `.${swiper.params.zoom.containerClass}`;\n if (e.target.matches(selector)) return true;\n if ([...swiper.el.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true;\n return false;\n }\n\n // Events\n function onGestureStart(e) {\n if (e.pointerType === 'mouse') {\n evCache.splice(0, evCache.length);\n }\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n evCache.push(e);\n if (evCache.length < 2) {\n return;\n }\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches();\n if (!gesture.slideEl) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex];\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n if (!gesture.imageWrapEl) {\n gesture.imageEl = undefined;\n return;\n }\n gesture.maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n }\n if (gesture.imageEl) {\n const [originX, originY] = getScaleOrigin();\n gesture.originX = originX;\n gesture.originY = originY;\n gesture.imageEl.style.transitionDuration = '0ms';\n }\n isScaling = true;\n }\n function onGestureChange(e) {\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache[pointerIndex] = e;\n if (evCache.length < 2) {\n return;\n }\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches();\n if (!gesture.imageEl) {\n return;\n }\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function onGestureEnd(e) {\n if (!eventWithinSlide(e)) return;\n if (e.pointerType === 'mouse' && e.type === 'pointerout') return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache.splice(pointerIndex, 1);\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n if (!gesture.imageEl) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`;\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale > 1 && gesture.slideEl) {\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n } else if (zoom.scale <= 1 && gesture.slideEl) {\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n }\n if (zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n gesture.slideEl = undefined;\n }\n }\n function onTouchStart(e) {\n const device = swiper.device;\n if (!gesture.imageEl) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n const event = evCache.length > 0 ? evCache[0] : e;\n image.touchesStart.x = event.pageX;\n image.touchesStart.y = event.pageY;\n }\n function onTouchMove(e) {\n if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return;\n const zoom = swiper.zoom;\n if (!gesture.imageEl) return;\n if (!image.isTouched || !gesture.slideEl) return;\n if (!image.isMoved) {\n image.width = gesture.imageEl.offsetWidth;\n image.height = gesture.imageEl.offsetHeight;\n image.startX = getTranslate(gesture.imageWrapEl, 'x') || 0;\n image.startY = getTranslate(gesture.imageWrapEl, 'y') || 0;\n gesture.slideWidth = gesture.slideEl.offsetWidth;\n gesture.slideHeight = gesture.slideEl.offsetHeight;\n gesture.imageWrapEl.style.transitionDuration = '0ms';\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX;\n image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY;\n const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y));\n if (touchesDiff > 5) {\n swiper.allowClick = false;\n }\n if (!image.isMoved && !isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n image.isMoved = true;\n const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio);\n const {\n originX,\n originY\n } = gesture;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2);\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2);\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTouchEnd() {\n const zoom = swiper.zoom;\n if (!gesture.imageEl) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTransitionEnd() {\n const zoom = swiper.zoom;\n if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) {\n if (gesture.imageEl) {\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n }\n if (gesture.imageWrapEl) {\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n }\n gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`);\n zoom.scale = 1;\n currentScale = 1;\n gesture.slideEl = undefined;\n gesture.imageEl = undefined;\n gesture.imageWrapEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n }\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (e && e.target) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n }\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.pageX;\n touchY = e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n const forceZoomRatio = typeof e === 'number' ? e : null;\n if (currentScale === 1 && forceZoomRatio) {\n touchX = undefined;\n touchY = undefined;\n }\n zoom.scale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n currentScale = forceZoomRatio || gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n if (e && !(currentScale === 1 && forceZoomRatio)) {\n slideWidth = gesture.slideEl.offsetWidth;\n slideHeight = gesture.slideEl.offsetHeight;\n offsetX = elementOffset(gesture.slideEl).left + window.scrollX;\n offsetY = elementOffset(gesture.slideEl).top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.imageEl.offsetWidth;\n imageHeight = gesture.imageEl.offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n if (forceZoomRatio && zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n }\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`;\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function zoomOut() {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n zoom.scale = 1;\n currentScale = 1;\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n gesture.slideEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n\n // Toggle Zoom\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n function getListeners() {\n const passiveListener = swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = swiper.params.passiveListeners ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener,\n activeListenerWithCapture\n };\n }\n\n // Attach/Detach Events\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n zoom.enabled = false;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n on('init', () => {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n disable();\n });\n on('touchStart', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchEnd(e);\n });\n on('doubleTap', (_s, e) => {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import { createElement, elementChildren } from './utils.js';\nexport default function 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}","import { getWindow } from 'ssr-window';\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n return {\n isSafari: needPerspectiveFix || isSafari(),\n needPerspectiveFix,\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n 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 (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\nexport { getDevice };","import { getWindow, getDocument } from 'ssr-window';\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}\nexport { getSupport };","export const 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 const lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\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};\nexport const 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};","import { getWindow, getDocument } from 'ssr-window';\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 = 0) {\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 = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\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(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[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({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n 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.shadowEl && slideEl.shadowEl.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction findElementsInElements(elements = [], selector = '') {\n const found = [];\n elements.forEach(el => {\n found.push(...el.querySelectorAll(selector));\n });\n return found;\n}\nfunction elementChildren(element, selector = '') {\n return [...element.children].filter(el => el.matches(selector));\n}\nfunction createElement(tag, classes = []) {\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : [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}\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty, getSlideTransformEl,\n// dom\nfindElementsInElements, createElement, elementChildren, elementOffset, elementPrevAll, elementNextAll, elementStyle, elementIndex, elementParents, elementTransitionEnd, elementOuterSize };","// 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","// 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__.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))","import Utils from './utils'\r\nimport { debounceScript } from './Debounce.js';\r\nimport Vue from 'vue';\r\nimport VueSlider from 'vue-slider-component';\r\nimport { ProductDetail_AddProductToOrder } from './gak-ProductDetail';\r\n\r\ndeclare var debugNewV12: boolean;\r\ndeclare var v12Params: any;\r\n\r\nfunction initialise() {\r\n var log = !debugNewV12\r\n ? function (test: any[]) { }\r\n : function (test: any[]) {\r\n if (console) {\r\n console.log.apply(arguments);\r\n }\r\n };\r\n var /* const */ warn = (console && debugNewV12) ? console.warn : function () { };\r\n\r\n var /* const */ jsonIndent = debugNewV12 ? 2 : undefined;\r\n var /* const */ pageSize = 100;\r\n // min milliseconds between searches.\r\n var /* const */ timeBeforeSearch = 250;\r\n\r\n var /* const*/ baseSearchParameters = {\r\n \"itemID\": v12Params.ProductID\r\n };\r\n\r\n var /* let */ V12ResultsVM: any;\r\n\r\n var requestFinanceData =\r\n (debounceScript as any)(requestFinanceDataImpl,\r\n timeBeforeSearch,\r\n { 'leading': false, 'trailing': true });\r\n\r\n var reqStrOld: any = null;\r\n\r\n\r\n function requestFinanceDataImpl() {\r\n V12ResultsVM.showSpinner = true;\r\n\r\n var req = Object.assign({}, baseSearchParameters, V12ResultsVM.CurrentFinanceParams);\r\n //var req = $.extend({}, baseSearchParameters, V12ResultsVM.CurrentFinanceParams);\r\n\r\n var reqStr = JSON.stringify(req, null, jsonIndent);\r\n if (reqStr === reqStrOld) return; // Same request as last, so do nothing here.\r\n reqStrOld = reqStr;\r\n log(['Query for search: ' + reqStr]);\r\n\r\n const requestHeaders: HeadersInit = new Headers();\r\n requestHeaders.set('Content-Type', 'application/json');\r\n\r\n fetch(v12Params.GetFinanceUrl, {\r\n method: 'POST',\r\n headers: requestHeaders,\r\n cache: 'no-cache',\r\n body: reqStr\r\n }).then(response => response.json())\r\n .then(function (data: any) {\r\n var currFinanceData = data;\r\n V12ResultsVM.ProductsForMargin = currFinanceData.ProductsForMargin;\r\n V12ResultsVM.BestProduct = currFinanceData.BestProduct;\r\n V12ResultsVM.LowestProduct = currFinanceData.LowestProduct;\r\n V12ResultsVM.DepositValue = currFinanceData.DepositValue;\r\n\r\n // Select current finance product\r\n var currSelectedProduct = V12ResultsVM.SelectedProduct;\r\n // if no selected product, get best product\r\n if (!currSelectedProduct) {\r\n var initialSelectedProd = (currFinanceData.BestProduct || currFinanceData.LowestProduct);\r\n if (initialSelectedProd !== null) {\r\n V12ResultsVM.SelectedProductID = initialSelectedProd.ID;\r\n }\r\n }\r\n // Re-Select current finance product\r\n currSelectedProduct = V12ResultsVM.SelectedProduct;\r\n\r\n V12ResultsVM.setSelectedProduct(currSelectedProduct);\r\n\r\n // Display layout.\r\n var div = document.getElementsByClassName('hide-while-loading')?.item(0);\r\n\r\n div?.classList.remove('hide-while-loading');\r\n\r\n V12ResultsVM.showSpinner = false;\r\n });\r\n }\r\n log([\"Start of init \"]);\r\n\r\n V12ResultsVM = new Vue({\r\n el: '#v12ResultsContainer',\r\n components: {\r\n VueSlider\r\n },\r\n data: {\r\n showSpinner: true,\r\n ShowTable: false,\r\n FinanceItemOption: v12Params.initialFinanceOption,\r\n ProductsForMargin: [],\r\n DepositValue: 0,\r\n MinDeposit: 0,\r\n MaxDeposit: 0,\r\n LowestProduct: {},\r\n SelectedProductID: null,\r\n priceSlider: {\r\n direction: \"horizontal\",\r\n //disabled: true,\r\n formatter: \"£{value}\",\r\n width: \"100%\"\r\n //min: 0,\r\n //max: 1\r\n },\r\n isBasketOnly: v12Params.isBasketOnly,\r\n itemPrice: v12Params.ProductPrice,\r\n euroPriceDataCurrencySymbol: v12Params.euroPriceDataCurrencySymbol\r\n\r\n },\r\n computed: {\r\n itemPlusBasketPrice: function (): number {\r\n return this.itemPrice + this.BasketPrice;\r\n },\r\n BasketPrice: function (): number {\r\n var basketCookie = Utils.getCookie(v12Params.basketCookieKey);\r\n var result = 0;\r\n\r\n if (basketCookie !== null) {\r\n try {\r\n var basketDataJSON = JSON.parse(unescape(basketCookie));\r\n if (basketDataJSON !== null && basketDataJSON.TotalPrice) {\r\n result = basketDataJSON.TotalPrice;\r\n }\r\n } catch (e) {\r\n // Ignore\r\n console.log(e);\r\n }\r\n }\r\n\r\n return result;\r\n },\r\n CurrentFinanceParams: function (): any {\r\n var currentDepositValue = this.DepositValue;\r\n if (this.isBasketOnly && this.SelectedProductID === null) {\r\n var lastUsedValues = V12ResultsVM.CurrentFinanceValues;\r\n if (lastUsedValues !== null && lastUsedValues.Deposit !== null && lastUsedValues.ProductID !== null) {\r\n this.SelectedProductID = lastUsedValues.ProductID;\r\n currentDepositValue = lastUsedValues.Deposit;\r\n }\r\n }\r\n\r\n var params = { option: this.FinanceItemOption, depositValue: currentDepositValue };\r\n return params;\r\n },\r\n CurrentFinanceValues: function (): any {\r\n var data = sessionStorage.getItem(v12Params.SessionStorage_SelectedFinance);\r\n if (data !== null) {\r\n data = JSON.parse(data);\r\n }\r\n\r\n return data;\r\n },\r\n SelectedProduct: function (): any {\r\n var productsForMargin = this.ProductsForMargin;\r\n var currentProduct = null;\r\n if (productsForMargin !== null) {\r\n var theProdID = this.SelectedProductID;\r\n var arr = productsForMargin.filter(function (p: any, i: any) { return p.ID === theProdID; });\r\n if (arr.length > 0) currentProduct = arr[0];\r\n }\r\n\r\n return currentProduct;\r\n },\r\n SelectedProductDescription: function (): string {\r\n var selectedProduct = V12ResultsVM.SelectedProduct;\r\n if (selectedProduct !== null)\r\n return selectedProduct.Description;\r\n else\r\n return \"-\";\r\n },\r\n SortedProductsForMargin: function (): number {\r\n return V12ResultsVM.ProductsForMargin.sort((a: any, b: any) => a.Months - b.Months);\r\n },\r\n CurrentAmount: function (): number {\r\n var option = this.FinanceItemOption;\r\n\r\n switch (option) {\r\n case v12Params.financeOptions.itemOnly:\r\n return this.thisItemPrice;\r\n case v12Params.financeOptions.itemPlusBasket:\r\n return this.itemPlusBasketPrice;\r\n case v12Params.financeOptions.basketOnly:\r\n default:\r\n return this.BasketPrice;\r\n }\r\n },\r\n DepositAsPercentage: function (): number {\r\n var percentage = (100 * V12ResultsVM.DepositValue / V12ResultsVM.CurrentAmount);\r\n return percentage;\r\n },\r\n ThisItemAndBasketText: function (): string {\r\n return \"This plus basket - \" + this.getFormattedEuroPrice(this.itemPlusBasketPrice, 2);\r\n },\r\n thisItemPrice: function (): number {\r\n return v12Params.ProductPrice;\r\n },\r\n ThisItemText: function (): string {\r\n return \"This item - \" + this.getFormattedEuroPrice(this.thisItemPrice, 2);\r\n },\r\n BasketOnlyText: function (): string {\r\n return \"Basket only - \" + this.getFormattedEuroPrice(this.BasketPrice, 2);\r\n },\r\n NoFinanceMessage: function (): string {\r\n var result = \"\";\r\n var neededToGetFinance = this.getNeededToGetFinance();\r\n\r\n var dataProducts = this.ProductsForMargin;\r\n\r\n if (dataProducts === null || dataProducts.length === 0) {\r\n result = \"We have no finance products for the current selection.\";\r\n }\r\n //else if (!isExistAnyPreferredFinanceOption()){\r\n else if (neededToGetFinance > 0) {\r\n result = \"We have a finance option for you if you add \" + this.getFormattedEuroPrice(neededToGetFinance, 2);\r\n }\r\n\r\n return result;\r\n },\r\n },\r\n methods: {\r\n getFormattedEuroPrice: function (amount: number, decimals: number): string {\r\n return this.euroPriceDataCurrencySymbol + this.getRoundNumber(amount, decimals);\r\n },\r\n getRoundNumber: function (amount: number, decimals: number): string {\r\n return amount.toFixed(decimals);\r\n },\r\n getNeededToGetFinance: function (): number {\r\n var dataProducts = this.ProductsForMargin;\r\n\r\n if (dataProducts === null || dataProducts.length === 0) {\r\n return 0;\r\n }\r\n\r\n //// If there's at least one preferred option, no need to get finance\r\n //if (isExistAnyPreferredFinanceOption()) return 0;\r\n\r\n var minLoanArray = dataProducts.map(function (p: any) { return p.MinLoan; });\r\n var minLoanForAllProducts = Math.min.apply(Math, minLoanArray);\r\n var neededToGetFinance = minLoanForAllProducts - V12ResultsVM.CurrentAmount;\r\n return neededToGetFinance;\r\n },\r\n saveCurrentFinanceValues: function (): void {\r\n var selectedProduct = V12ResultsVM.SelectedProduct;\r\n if (selectedProduct === null) return;\r\n\r\n var data = JSON.stringify({\r\n Deposit: V12ResultsVM.DepositValue,\r\n ProductID: selectedProduct.ID,\r\n Name: selectedProduct.Name,\r\n APR: selectedProduct.APR,\r\n PPM: selectedProduct.Installment,\r\n Description: selectedProduct.Description,\r\n DescriptionNoEuroPrice: selectedProduct.DescriptionNoEuroPrice\r\n });\r\n\r\n sessionStorage.setItem(v12Params.SessionStorage_SelectedFinance, data);\r\n },\r\n setFinancialOptions: function (): void {\r\n var selectedProduct = V12ResultsVM.SelectedProduct;\r\n if (selectedProduct === null) return;\r\n\r\n var cookieData = { Deposit: V12ResultsVM.DepositValue, V12ProductId: selectedProduct.V12ProductId, V12ProductGuid: selectedProduct.V12ProductGuid };\r\n\r\n Utils.setSessionCookie(v12Params.cookieKey, JSON.stringify(cookieData))\r\n\r\n document.location.href = v12Params.FinanceDetailsCheckoutURL;\r\n },\r\n setSelectedProduct: function (product: any): any {\r\n V12ResultsVM.SelectedProductID = (product || {}).ID;\r\n V12ResultsVM.validateDeposit();\r\n },\r\n validateDeposit: function (): any {\r\n V12ResultsVM.saveCurrentFinanceValues();\r\n\r\n var selectedProduct = V12ResultsVM.SelectedProduct;\r\n this.MinDeposit = (selectedProduct || {}).MinDeposit || 0;\r\n this.MaxDeposit = (selectedProduct || {}).MaxDeposit || 0;\r\n\r\n this.DepositValue = Math.max(this.MinDeposit, Math.min(this.MaxDeposit, this.DepositValue));\r\n\r\n this.ShowTable = V12ResultsVM.NoFinanceMessage === null || V12ResultsVM.NoFinanceMessage === \"\";\r\n\r\n var callbackHasFinance = (window).onHasFinanceOptions;\r\n if (callbackHasFinance && typeof (callbackHasFinance) === 'function') {\r\n callbackHasFinance(this.ShowTable);\r\n }\r\n },\r\n checkoutWithFinance: function (): void {\r\n ProductDetail_AddProductToOrder(v12Params.ProductID, v12Params.ProductTitle, v12Params.ItemFacebookIDs, 1, true);\r\n }\r\n },\r\n watch: {\r\n DepositValue: function (): void {\r\n requestFinanceData();\r\n },\r\n FinanceItemOption: function (): void {\r\n requestFinanceData();\r\n }\r\n }\r\n });\r\n\r\n requestFinanceData();\r\n}\r\n\r\n// Call initialise when the Vue-slide component is actually displayed.\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n let financeTab = document.getElementById(\"financeTab\");\r\n if (financeTab != null) { // This will happen on product details page only.\r\n financeTab.addEventListener('click', function () {\r\n initialise();\r\n }, { once: true });\r\n }\r\n else if (!v12Params.financeLazyInit) {\r\n initialise();\r\n }\r\n});\r\n\r\n(window).financeTabInitializeData = function () {\r\n initialise();\r\n};\r\n\r\n"],"names":["debounceScript","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","value","type","lastInvokeTime","leading","maxing","trailing","toNumber","v","parseInt","isNaN","now","Date","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeSinceLastInvoke","Math","min","remainingWait","debounced","isInvoking","arguments","this","max","cancel","clearTimeout","flush","CookieConsentService","CookieConsentKey","EnableImpliedCookieConsent","didConsentToAllCookies","cookieSettings","getCookieSettings","didConsentToAllManually","didConsentImplicitly","didConsentToEssentialManually","shouldShowCookieBanner","shouldShowImpliedCookieBanner","clearAllCookiesIfConsentNotGiven","cookies","document","cookie","split","essentialCookies","indexOf","deleteCookie","getSafeBool","boolValue","fallbackBool","consentCookie","unescape","getCookie","cookieObj","JSON","parse","e","onManuallyConsentToAllCookies","settings","saveCookieConsent","onManuallyConsentToEssentialCookies","onHideImpliedConsentBanner","onRevokeConsent","confirm","didConfirm","consentSettings","settingsJson","stringify","name","expires","date","setTime","getTime","toUTCString","showConsentModal","didNotConsent","cookieName","forEach","el","key","trim","elements","getElementsByClassName","productDetailsEl","item","pushEnhancedEcommerce","pushEcommerce","getProductDetailObj","getAttribute","getProductObj","products","i","length","addEventListener","onProductClick","push","getProducts","promotions","banners","querySelector","promotionsObj","onBannerClick","getPromotionObj","getPromotions","productDetails","ecommerceObj","ecommerce","currencyCode","eec","impressionView","promoView","detail","dataLayer","preventDefault","productObj","productUrl","currentTarget","location","promoObj","destinationUrl","pushAddToCart","productId","quantity","product","getProductsToAddRemove","productContainer","pushRemoveFromCart","onCheckout","step","option","basketItemsURL","fetch","method","then","response","json","basketVm","Items","basketContainer","getElementById","ulElemen","createElement","liElem","Title","Price","Quantity","ID","GoogleProductID","ProductID","CategoryDescription","BrandDescription","innerHTML","append","pushCheckout","getBasketItems","getCheckoutProducts","event","checkout","actionField","toLowerCase","onCheckoutOption","checkoutOption","pushProductView","window","onload","getFormattedPrice","myPrice","symbol","conversionRate","xPrice","parseFloat","numberToCurrency","number","toFixed","replace","FacebookScriptsService","addFacebookTracking","isSearch","addScriptOnBodyTop","addFacebookEvent","addScriptOnBody","getFbq","fbq","script","body","appendChild","createScriptElement","insertBefore","firstChild","addDataLayer","dataLayerData","createTextNode","Element","prototype","matches","msMatchesSelector","webkitMatchesSelector","g","t","idPrefix","default","r","hash","closest","o","setAttribute","removeAttribute","focus","CustomEvent","bubbles","cancelable","tab","content","dispatchEvent","n","a","l","u","querySelectorAll","Array","call","id","slice","documentElement","removeEventListener","c","d","target","activeElement","tabs","index","hasOwnProperty","setup","getElementIndex","node","previousElementSibling","initMenu","menu","screen","width","level2","resetMenu","classList","remove","onOffItems","element","action","parentElement","add","nextElementSibling","contains","clickElement","srcElement","tagName","level","activeItemLevel","activeItems","menuSubs","menuSub","max1","activeItem","activeItemIndex","menuSubOff","max2","level2MenuSub","level2MenuSubAnchors","b","keyCode","breadcrumbButtons","maxBreadcrumbs","navLevelElm","navLevel","navLevelElmUp1","navLevelElmUp1Button","mobilemenu","expanded","mobilebg","primarynav","style","top","sh","h","stuck","stickPoint","offsetTop","parentElem","offsetParent","getOffsetTop","onscroll","offset","pageYOffset","ToggleButtons","toggle","elem","loginPartial","loginPartialMobile","globalParms","LoginPartialURL","text","data","accountLinks","AccountLinksURL","basketButton","href","ShoppingBasket_UpdateItemCount","div","dataset","play","onclick","labnolIframe","evt","parentNode","iframe","dataID","replaceChild","myImgs","observer","IntersectionObserver","entries","entry","isIntersecting","imgElem","loadLazyImages_doImage","unobserve","rootMargin","threshold","image","observe","err","len","loadLazyImages_notSupported","realSrc","loadLazyImages","initLightYouTube","mainNavContainers","navHeight","elemHeight","getComputedStyle","getPropertyValue","Number","mainContent","minHeight","itemCount","ShoppingBasketParms","CookieKey","basketDataJSON","NumberOfItems","console","log","V3_URL","V3_URL_REGEX","EXISTING_SCRIPT_MESSAGE","stripePromise","initStripe","maybeStripe","startTime","stripe","_registerWrapper","version","registerWrapper","stripePromise$1","Promise","resolve","params","reject","Stripe","warn","scripts","concat","test","src","findScript","queryString","advancedFraudSignals","headOrBody","head","Error","injectScript","error","loadCalled","bpj","paymentRequest","basketParams","pdojj","deliveryOptionsPersist","getSelectedDeliveryTypeOption","isLocalStorageSupported","sessionStorage","getItem","saveSelectedDeliveryTypeOption","selectedDot","setItem","removeItem","resetSelectedDeliveryTypeOption","getSelectedDelivery","tempObj","saveSelectedDelivery","selectedDeliveryTypeID","selectedDeliveryDate","isForceSetValues","newDlv","deliveryTypeID","deliveryDate","resetSelectedDelivery","resetAllDelvOpts","testKey","storage","requestHeaders","Headers","DeliveryOptions_Init","bpjValue","set","shoppingBasketContainer","deliveryOptionsContainer","divPaymentButtonsSelector","DeliveryOptions_BindEvents","isInit","basketEmpty","checkoutBox","requestApplyVoucher","applyVoucherButton","ApplyVoucherURL","headers","newButton","cloneNode","voucherError","voucherErrorContainer","voucherInput","hidden","dojj","lastHasFinanceOptions","onHasFinanceOptions","hasFinanceOptions","setCurrentDeliveryOptions","showLowStock","basketEmptyEl","delvRegId","delvRegIdSelect","handledelvRgIdChange","selDlvReg","DeliveryOptions_refresh","OutOfStock","IsGiftVoucherOnlyOrder","voucherCodeInput","removeVoucherButton","handleRemoveVoucherClick","voucherCode","handleApplyVoucherClick","voucherCodeVal","button","Voucher_BindEvents","speficDays","internalDay","dtid","getSelectedDelvOptData","isSuperSaverDt","dod","selPrice","getDelvOptPrice","minPriceDt","getDelvOptsData","map","x","xID","isSuperSaver","ss","filter","reduce","res","obj","getDefaultDelvOptID","setSelectedDelvOptData","handleOptionBoxChangeEvent","Event","optionBoxes","handleOptionBoxChange","calendarLink","openCalendar","selDlv","defaultSelection","DeliveryOptionsButtons_BindEvents","day","getDefaultDay","delvRgIdVal","myDt","getDtById","fromCalendar","calendarSelector","elemDay","deliveryPrice","checkoutPrice","textContent","EuroPrice_CurrencySymbol","EuroPrice_ConversionRate","elemDt","getCheckboxInputForDeliveryType","isDeliveryTypeChangedx","isDeliveryPriceChangedx","isDeliveryDateChangedx","checked","myDtDays","getDaysForDtid","superSaverinternalDay","allDays","myDtid","formattedPrice","priceSpan","dayWindow","dayTo","daysToAdd","dayWindowArray","daysAdd","myDay","dayIndex","getDayWindowForDt","deliveryLastDate","checkoutSubtotalPrice","PriceTotalItems","giftVoucher","GiftVouchers","IsAnyApplied","DiscountValue","totalIncludingVATAndDelivery","internalDayToDisplayStringOptions","month","internaldateToMonthDisplayString","newDeliveryHtml","cc","isClickAndCollectDt","displayDay","weekday","year","internaldateToDisplayString","confirmationMessage","title","elemDtDescription","updatePaymentButtons","financeTabInitializeData","divPaymentButtons","dop","getDelvOpts","finance","basketConfig","updatePaymentButtonsUrl","ok","DeliveryOptions_UpdatePdParams","NetPayment","HighestDeposit","highestDepositAmount","GiftVoucherTotalRedeemed","HasPayPalCredit","HasPayPal","ShouldDisplayFinanceOptions","PaymentData_BindEvents","paymentButtonsUrl","doc","DOMParser","parseFromString","netPayment","giftVoucherTotalRedeemed","hasPayPalCredit","hasPayPal","highestDeposit","shouldDisplayFinanceOptions","buttons","dd","Buttons","buttonsSelector","paymentButtonsContainer","financeText","HasFinanceOptions","buttonsContainer","isFullWidth","btnData","amazonPayStyle","btnContent","displayImg","displayText","isFinance","cssClass","container","paymentButtonsFinance","getFinanceContainer","addButtonToContainer","payPalButtonContainer","ppMessage","hasChildNodes","setPayPalButton","insertAdjacentElement","btn","updateForm","oldBtoajDelvOptParams","btoajDelvOptParams","deliveryRegionId","ccwarning","ccEarliestwarning","IsClickAndCollectShowWarning","ukMainlandRegionId","devOptBtns","handleDeliveryOptionClicked","curBtnName","SetDojj","doj","deliveryOptionTypeSelected","isResetDelivery","deliveryOptionType","DeliveryOptionsParms","IndexDeliveryOptionsURL","divContainer","p","myDays","dpl","dateSplit","toLocaleDateString","gvTotalRedeemed","hasPayPalCreditPayment","total","voucherApplied","isNoNetPayment","depositPlaceholder","amount","stripeKey","_len","_key","paymentRequestButton","childElementCount","shippingOptions","country","currency","label","getAmountInCents","requestPayerName","requestPayerEmail","requestShipping","requestPayerPhone","getPaymentRequestOptions","getStripeShippingOptions","prButton","create","canMakePayment","mount","stripeButtonContainer","on","ev","url","LogStripeResponse","confirmResult","is3DSResult","ProcessDigitalWalletPayment","createPaymentIntentResponse","shippingAddress","paymentIntentId","paymentIntent","customerEmail","payerEmail","clientSecret","ClientSecret","customerPhone","payerPhone","success","redirectUrl","isPaymentRequested","FormData","paymentMethod","recipient","confirmCardPayment","payment_method","shipping","address","city","line1","addressLine","line2","postal_code","postalCode","state","region","phone","handleActions","alert","complete","status","deliveryRegionMap","updateWith","update","getPaymentRequestUpdateOptions","setStripePaymentRequestButton","ppDiv","children","h1text","expresscheckout","othercheckout","expressbuttonsContainer","paypalContainer","enablePayLater","clientId","PaylPalClientId","enableFunding","components","getPlainText","hasAttribute","display","calendar","attributes","newScript","Object","keys","getPayPalWindowNamespace","namespace","validateArguments","PromisePonyfill","loadPayPalButton","scriptOptions","isSlideOutBasket","PayPalSetExpressCheckout","token","disableFunding","_a","sdkBaseUrl","optionsWithStringIndex","accumulator","replacer","toString","match","indexOfMatch","substring","dataAttributes","queryParams","processOptions","existingWindowNamespace","currentScript","nextScript","currentScriptClone","uidAuto","isExactMatch","onSuccess","onError","onerror","firstElementChild","insertScriptElement","defaultError","loadCustomScript","newWindowNamespace","loadScript","paypal","shape","height","disableMaxWidth","createOrder","CheckoutWithPayPalURL","onApprove","ppButton","click","PayPalSettle","orderID","payerId","payerID","orderData","spinner","modalBasket","PayPalConfirm","PayPalErrorURL","render","catch","initVATExPrice","getPDCookieAndSetFlag","setPriceDisplayTypeUrl","PriceHelper","isVATExPrice","setPriceDisplay","price","priceVATEx","pricevatex","formatter","format","isvatex","String","formatPrice","displayPrices","excludeVAT","rate","round","Intl","NumberFormat","showItemAddedAlert","basketAlert","alertText","className","bindAddToBasketFromPanel","productCard","ProductDetail_AddProductToOrder","productDetailsParams","FbContentIDS","companionCard","companionProductId","primaryProductId","companionId","primaryId","AddCompanionToOrderURL","loadBasketPanel","basketErrorId","checkoutBtn","errorUrl","GoToShoppingBasketURL","ProductDetail_AddCompanaionToOrder","productTitle","facebookFeedId","productQuantity","redirectToBasket","basketEmptyMessage","modalBasketContent","modalBasketTotals","AddProductToOrderURL","C","content_type","content_ids","ProductDetail_GoToShoppingBasket","callback","GetBasketItemsURL","includeEarliestDeliveryDates","ulElem","totalElem","subTotalElem","deliveryPriceElem","deliveryDescriptionElem","deliveryMoreOptionsElem","nonGVItems","IsGiftVoucher","minDeliveryPrice","deliveryOptions","defaultDeliveryOption","DayPriceList","Description","IsSuperSaverNationalRatioApplied","Url","ProductImageUrl","RRP","setOldPrice","IsFreeGift","getQuantityOptions","companions","basketCompanions","accessories","CrossSellProducts","inStockCompanions","IsProductStockAvailable","inStockAccessories","Availability","renderQuickBuys","swiper","setQuickBuys","basketpanel","closeButton","items","swiperElem","counter","getItemPrice","IsCompanion","CompanionPrice","Id","getListName","PrimaryProductID","WebsiteUrl","itemPrice","savePrice","setSavings","getItemAddToBasketClass","processStockStatusData","inStock","msgHtml","msg2","msg1","isEligibleClickAndCollect","CollectionDeliveryMsg","nowMs","getUTCMilliseconds","DeliveryNextDayPossible","isNextDay","DeliveryCutOffms","countDownDate","setInterval","distance","hours","floor","minutes","seconds","clearInterval","countdownTime","padStart","recaptchaS","NotifyMeURL","cache","htmlContent","recaptchaContainer","getElementsByTagName","recaptchaElem","grecaptcha","loadHtmlWithRecaptcha","modal","notifyMeBtn","ARIAmodal","init","notifyModal","reset","btnSubmit","notifyForm","newDiv","message","defaultContent","defaultSuccess","onNotifyMeWhenInStock","usps","opacity","GetBStockProductsURL","tabContainer","bStockTab","SkipGetDynamicData","GetDynamicDataURL","nextDayDeliveryPossible","DeliveryCutOffDisplay","deliveryCutOffTimeDisplay","deliveryCutOffMsSinceUnixEpoch","processDeliveryTimingDisplayData","timingDisplayData","stockStatusData","getDynamicData","financeLink","financeTab","detailsSection","scrollIntoView","behavior","descriptionTabContents","getBoundingClientRect","toggleContents","toggleButtons","addToggleEvent","buyNowWithPayPal","isPayPalCredit","qty","addToBasketBtn","BuyNowWithPayPalURL","finally","buyNowWithPayment","productItem","ProductDetails_BindEvents","Tabby","initNavigationSwipers","swiperName","nextButton","prevButton","modules","direction","cssMode","slidesPerView","loop","speed","navigation","nextEl","prevEl","breakpoints","spaceBetween","tabItem","scrollLeft","offsetLeft","galleryThumbs","centeredSlides","centeredSlidesBounds","zoom","thumbs","picture","img","sourceAll","zoomSrc","outerHTML","startsWith","msg","closeddmsg","toggledmsg","innerWidth","documentBody","isSticky","basketButtonPos","footerPosition","bottom","innerHeight","basketPanel","requestBasketUpdate","updateWholeCart","qtyUpdateKeyUp","inputElement","readOnly","oldValue","newValue","sanitizeQtyInput","disableBasketButtons","showWaitElement","updateStepper","show","waitElem","q","newRegionId","basketItems","form","UpdateCartURL","updateBasketContent","quantityInput","li","ShoppingBasket_BindEvents","isBasketPanel","decreaseBtns","increaseBtns","removeBtns","qtyInputs","quantitySelect","orderItemId","DestroyOrderItemURL","showBasketError","pushProductRemovalToGA","removeOrderItem","navigator","userAgent","maxTouchPoints","basketErrorContainer","quantityNo","currentBasketContainer","html","ShoppingBasket_ProceedToCheckout","theButton","deliveryTypeId","chosenOption","chosenOptionDesc","basketUrl","initBasketPanelSwiper","slidesPerGroup","pagination","clickable","initTabs","tabsList","selector","matchMedia","viewport","scrollWidth","clientWidth","transform","checkButtons","onresize","checkScrollingTabContainers","tablisting","getLastVisibleTab","buttonElem","tablist","getFirstVisibleTab","tabList","child","count","ctr","setCookie","days","setSessionCookie","getHashKeyValuePairs","getUrlKeyValuePairs","getHrefKeyValuePairs","search","pairs","pairParts","loadImagesForProductListings_BasedOnView","prodListing","isGridView","hasClass","find","each","newImgUrl","attr","getImageURL","imgUrl","ImagesParams","UseCDNImageCache","CloudflareAccountHash","atou","b64","decodeURIComponent","escape","atob","utoa","btoa","encodeURIComponent","module","exports","s","m","defineProperty","configurable","enumerable","get","__esModule","devicePixelRatio","props","dotSize","dotWidth","required","dotHeight","interval","Boolean","disabled","piecewise","tooltip","eventType","staticValue","staticLabel","reverse","lazy","realTime","stopPropagation","piecewiseLabel","debug","fixed","minRange","maxRange","processDragable","useKeyboard","actionsKeyboard","piecewiseFilter","Function","tooltipMerge","startAnimation","enableCross","sliderStyle","focusStyle","tooltipDir","mergeFormatter","piecewiseStyle","disabledStyle","piecewiseActiveStyle","processStyle","processClass","bgStyle","tooltipStyle","tooltipClass","disabledDotStyle","labelStyle","labelActiveStyle","flag","dragFlag","crossFlag","keydownFlag","focusFlag","processFlag","processSign","size","fixedValue","focusSlider","currentValue","currentSlider","isComponentExists","isMounted","computed","staticPosition","minimum","spacing","gap","dotHeightVal","dotWidthVal","WebkitTransform","msTransform","flowDirection","tooltipMergedPosition","tooltipDirection","$refs","dot0","left","isArray","isRange","tooltipStatus","disabledArray","boolDisabled","every","isDisabled","disabledClass","stateClass","slider","dot1","dot","val","currentIndex","getIndexByValue","indexRange","maximum","multiple","pow","printError","position","isFixed","limit","valueLimit","idleSlider","wrapStyles","padding","sliderStyles","focusStyles","disabledDotStyles","backgroundColor","tooltipStyles","elemStyles","dotStyles","piecewiseDotStyle","piecewiseDotWrap","formatting","watch","setValue","limitValue","refresh","$nextTick","computedFixedValue","process","cssText","methods","bindEvents","moving","passive","moveEnd","blurSlider","handleKeydown","handleKeyup","handleOverlapTooltip","unbindEvents","changeFocusSlider","setIndex","mergeFormatting","getPos","getStaticData","pageY","clientX","processClick","wrapClick","setValueOnPos","moveStart","pos","start","targetTouches","$emit","isDiff","syncValue","setPosition","getValueByIndex","setTransform","setCurrentValue","isLessRange","some","splice","setTransitionTime","offsetWidth","transitionDuration","WebkitTransitionDuration","isActive","getValue","getIndex","offsetHeight","scrollTop","tooltip1","tooltip0","right","handleDisplayMergedTooltip","visibility","mounted","beforeDestroy","join","staticRenderFns","_scopeId","esModule","$createElement","_self","_c","directives","rawName","expression","ref","class","staticClass","attrs","mousedown","touchstart","_t","_v","_s","_e","_l","first","last","active","merge","domProps","__r","locals","refs","parts","f","removeChild","bind","css","media","sourceMap","styleSheet","childNodes","sources","DEBUG","freeze","isFinite","y","_","$","w","toUpperCase","charAt","k","S","_length","O","T","A","j","E","N","P","D","M","I","L","R","F","H","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","async","_lifecycleHooks","B","U","charCodeAt","z","writable","V","RegExp","source","K","J","W","Z","G","X","Y","Q","tt","et","nt","rt","env","VUE_ENV","ot","__VUE_DEVTOOLS_GLOBAL_HOOK__","it","at","st","Symbol","Reflect","ownKeys","Set","has","clear","ct","ut","_scope","off","lt","tag","elm","ns","context","fnContext","fnOptions","fnScopeId","componentOptions","componentInstance","parent","raw","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncFactory","asyncMeta","isAsyncPlaceholder","ft","dt","pt","vt","ht","mt","_pending","subs","addSub","removeSub","depend","addDep","notify","gt","yt","pop","bt","$t","__ob__","observeArray","dep","wt","getOwnPropertyNames","xt","Ct","kt","St","Ot","shallow","mock","vmCount","__proto__","At","Tt","isExtensible","__v_skip","Ft","getOwnPropertyDescriptor","Nt","jt","Lt","_isVue","Et","Pt","Dt","Mt","__v_raw","It","__v_isShallow","__v_isReadonly","Rt","__v_isRef","Ht","Bt","Ut","zt","Vt","getPrototypeOf","Kt","Jt","once","capture","qt","fns","dn","Wt","Zt","hook","merged","Gt","Xt","Qt","Yt","shift","_isVList","te","is","scopedSlots","$vnode","pre","yr","$options","cr","ee","Bn","ne","iterator","next","done","re","$scopedSlots","$slots","slot","oe","ie","ae","se","ce","_staticTrees","le","_renderProxy","ue","fe","de","pe","$stable","proxy","fn","$key","ve","he","me","_o","_n","_q","_i","_m","_f","_k","_b","_u","_g","_d","_p","ge","ye","be","_normalized","$hasNormal","$e","we","xe","_attrsProxy","Ce","$attrs","listeners","_listenersProxy","$listeners","slots","_slotsProxy","Se","emit","expose","ke","Oe","_setupContext","Te","Ae","je","toStringTag","extend","Ee","Ne","$on","Pe","$off","De","Me","Ie","Le","Re","$parent","_inactive","Fe","_directInactive","$children","Be","He","_hasHookEvent","Ue","ze","Ve","Ke","Je","qe","We","Ze","Ge","createEvent","timeStamp","Xe","post","Ye","sort","before","run","vm","_watcher","_isMounted","_isDestroyed","Qe","noRecurse","Cn","tn","en","nn","rn","cn","an","sn","immediate","deep","onTrack","onTrigger","onStop","Vn","_preWatchers","$once","teardown","un","detached","effects","cleanups","scopes","stop","ln","_provided","errorCaptured","pn","_handled","vn","hn","mn","gn","yn","bn","MutationObserver","setImmediate","$n","wn","xn","characterData","kn","vr","Sn","On","Tn","An","jn","En","Nn","Pn","Dn","Mn","In","Ln","Rn","Fn","defineComponent","shallowRef","isRef","toRef","toRefs","unref","proxyRefs","customRef","triggerRef","reactive","isReactive","isReadonly","isShallow","isProxy","shallowReactive","markRaw","toRaw","readonly","shallowReadonly","effect","dirty","evaluate","watchEffect","watchPostEffect","watchSyncEffect","EffectScope","effectScope","onScopeDispose","getCurrentScope","provide","inject","getCurrentInstance","useSlots","useAttrs","useListeners","mergeDefaults","nextTick","del","useCssModule","useCssVars","$el","_setupProxy","nodeType","setProperty","defineAsyncComponent","loader","loadingComponent","errorComponent","delay","timeout","suspensible","component","loading","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onUnmounted","onActivated","onDeactivated","onServerPrefetch","onRenderTracked","onRenderTriggered","onErrorCaptured","Hn","Un","isFrozen","zn","_vm","user","sync","cb","deps","newDeps","depIds","newDepIds","getter","cleanupDeps","_isBeingDestroyed","Kn","Jn","qn","propsData","_props","_propKeys","_r","_setupState","__sfc","_data","_computedWatchers","Wn","Zn","Yn","Gn","Xn","handler","$watch","Qn","from","tr","er","super","superOptions","sealedOptions","extendOptions","gr","nr","_original","_compiled","injections","rr","or","ir","__name","_componentTag","ar","keepAlive","prepatch","_isComponent","_parentVnode","inlineTemplate","Ctor","$mount","_renderChildren","_vnode","_parentListeners","$forceUpdate","insert","destroy","$destroy","sr","_base","cid","errorComp","resolved","owners","loadingComp","model","prop","functional","nativeOn","abstract","_merged","ur","lr","fr","dr","pr","hr","mr","extends","mixins","xr","$r","br","wr","Cr","_init","Sr","Or","Tr","Ar","_uid","constructor","$root","_events","$set","$delete","_update","__patch__","__vue__","_render","jr","Er","include","exclude","cacheVNode","vnodeToCache","keyToCache","created","destroyed","updated","Nr","KeepAlive","util","mergeOptions","defineReactive","delete","observable","use","_installedPlugins","unshift","install","mixin","_Ctor","kr","ssrContext","Pr","Dr","Mr","Ir","Lr","Rr","Fr","Hr","Br","Ur","Vr","Kr","Jr","qr","svg","math","Wr","Zr","Gr","Xr","Yr","Qr","to","eo","createElementNS","createComment","nextSibling","setTextContent","setStyleScope","no","ro","refInFor","includes","oo","io","ao","so","co","uo","lo","po","oldArg","arg","ho","def","componentUpdated","inserted","fo","modifiers","vo","mo","go","inheritAttrs","_v_attr_proxy","yo","removeAttributeNS","setAttributeNS","__ieph","stopImmediatePropagation","bo","$o","zr","_transitionClasses","_prevClass","wo","xo","Co","ko","So","Oo","To","Ao","jo","Eo","No","Po","Do","zo","dynamic","plain","Mo","dynamicAttrs","Io","attrsMap","attrsList","Lo","isDynamicArg","Ro","Fo","middle","native","nativeEvents","events","Ho","Bo","Uo","end","Vo","Ko","lastIndexOf","exp","qo","Wo","Jo","Go","Zo","Xo","Qo","ni","ti","ei","_wrapper","ownerDocument","ri","__c","change","oi","ii","ai","_value","si","composing","_vModifiers","ci","ui","fi","staticStyle","di","pi","vi","hi","gi","mi","yi","normalizedStyle","bi","$i","wi","xi","Ci","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","ki","Si","Oi","Ti","Ai","ji","Ei","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","Ni","requestAnimationFrame","Pi","Di","Mi","Ii","Ri","propCount","Li","Fi","hasTransform","Hi","Bi","_leaveCb","cancelled","transition","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","enter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","duration","Vi","zi","Ui","beforeLeave","leave","afterLeave","leaveCancelled","delayLeave","Ki","Ji","nodeOps","activate","pendingInsert","postpatch","vmodel","ta","qi","_vOptions","Wi","Xi","Yi","Qi","Gi","Zi","selected","selectedIndex","initEvent","ea","na","__vOriginalDisplay","unbind","ra","oa","mode","ia","aa","sa","ca","ua","la","_leaving","fa","moveClass","da","beforeMount","kept","prevChildren","removed","hasMove","pa","va","ha","_reflow","moved","_moveCb","propertyName","_hasMove","newPos","ma","Transition","TransitionGroup","config","HTMLUnknownElement","HTMLElement","$a","ga","ya","ba","staticKeys","transformNode","classBinding","genData","wa","styleBinding","Ca","ka","Sa","Oa","Ta","Aa","ja","Ea","Na","Pa","Da","Ma","Ia","La","Ra","Fa","Ha","Ba","Ua","za","Va","Ja","qa","Wa","Za","Ga","Xa","Ya","Qa","ts","es","rs","os","as","cs","us","ls","fs","ds","ps","vs","$s","rawAttrsMap","hs","isPreTag","delimiters","preserveWhitespace","whitespace","processed","ms","if","elseif","else","ys","block","forbidden","slotScope","slotTarget","expectHTML","isUnaryTag","canBeLeftOpenTag","chars","shouldKeepComment","comment","unarySlash","shouldDecodeNewlinesForHref","shouldDecodeNewlines","lowerCasedTag","Ka","comments","outputSourceRange","ws","xs","gs","placeholder","lastIndex","exec","tokens","for","slotTargetDynamic","slotName","hasBindings","bs","camel","alias","iterator1","iterator2","ifConditions","Cs","Ss","Os","ks","preTransformNode","Ts","As","js","Es","Ns","Ps","static","staticInFor","staticRoot","Ds","Ms","Is","Ls","esc","space","up","down","Rs","Fs","Hs","prevent","self","ctrl","alt","meta","Bs","Us","zs","Vs","wrapListeners","wrapData","cloak","Ks","transforms","dataGenFns","maybeComponent","onceId","Js","qs","staticProcessed","Ws","onceProcessed","Zs","forProcessed","Ys","ifProcessed","Gs","nc","ic","Qs","bindings","__isScriptSetup","Xs","tc","ec","rc","oc","ac","sc","code","uc","lc","fc","optimize","ast","errors","tips","compile","compileToFunctions","dc","pc","vc","hc","mc","gc","template","isObject","ssrDocument","blur","nodeName","importNode","host","hostname","origin","pathname","protocol","getDocument","ssrWindow","history","replaceState","pushState","back","Image","cancelAnimationFrame","getWindow","win","getBreakpoint","base","containerEl","breakpoint","currentHeight","clientHeight","points","point","minRatio","substr","setBreakpoint","isGridEnabled","grid","rows","realIndex","initialized","breakpointsBase","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","enabled","containerModifierClass","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","changeDirection","isEnabled","assign","allowTouchMove","allowSlideNext","allowSlidePrev","loopDestroy","loopCreate","updateSlides","checkOverflow","isLocked","wasLocked","slidesOffsetBefore","lastSlideIndex","slides","lastSlideRightEdge","slidesGrid","slidesSizesGrid","snapGrid","isEnd","addClasses","classNames","rtl","device","suffixes","prefix","resultClasses","prepareClasses","freeMode","autoHeight","android","ios","watchSlidesProgress","removeClasses","prototypes","eventsEmitter","translate","slide","grabCursor","classes","extendedDefaults","Swiper","swipers","newParams","__swiper__","support","browser","eventsListeners","eventsAnyListeners","__modules__","allModulesParams","mod","extendParams","swiperParams","passedParams","eventName","onAny","isHorizontal","isVertical","activeIndex","isBeginning","previousTranslate","progress","velocity","animating","cssOverflowAdjustment","trunc","touchEventsData","isTouched","isMoved","allowTouchCallbacks","touchStartTime","isScrolling","currentTranslate","startTranslate","allowThresholdMove","focusableElements","lastClickTime","clickTimeout","velocities","allowMomentumBounce","startMoving","evCache","allowClick","touches","startX","startY","currentX","currentY","diff","imagesToLoad","imagesLoaded","getSlideIndex","slideEl","slidesEl","slideClass","firstSlideIndex","getSlideIndexByData","recalcSlides","setGrabCursor","unsetGrabCursor","setProgress","minTranslate","current","maxTranslate","translateTo","updateActiveIndex","updateSlidesClasses","_emitClasses","cls","getSlideClasses","emitSlidesClasses","updates","slidesPerViewDynamic","view","exact","swiperSize","spv","breakLoop","slideSize","swiperSlideSize","setTranslate","translateValue","rtlTranslate","newTranslate","translated","imageEl","updateSize","updateProgress","updateAutoHeight","virtual","slideTo","watchOverflow","newDirection","needUpdate","currentDirection","changeLanguageDirection","dir","shadowEl","isElement","getWrapperSelector","wrapperClass","wrapperEl","shadowRoot","createElements","wrongRTL","initialSlide","slidesBefore","runCallbacksOnInit","attachEvents","deleteInstance","cleanStyles","detachEvents","slideVisibleClass","slideActiveClass","slideNextClass","slidePrevClass","newDefaults","defaults","installModule","prototypeGroup","protoMethod","oneWayMovement","touchEventsTarget","updateOnWindowResize","resizeObserver","nested","preventInteractionOnTransition","edgeSwipeDetection","edgeSwipeThreshold","setWrapperSize","virtualTranslate","slidesPerGroupSkip","slidesPerGroupAuto","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","touchRatio","touchAngle","simulateTouch","shortSwipes","longSwipes","longSwipesRatio","longSwipesMs","followFinger","touchMoveStopPropagation","touchStartPreventDefault","touchStartForcePreventDefault","touchReleaseOnEdges","uniqueNavElements","resistance","resistanceRatio","preventClicks","preventClicksPropagation","slideToClickedSlide","loopedSlides","loopPreventsSliding","rewind","swipeHandler","noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","maxBackfaceHiddenSlides","lazyPreloaderClass","lazyPreloadPrevNext","priority","onceHandler","__emitterProxy","offAny","eventHandler","dummyEventAttached","dummyEventListener","domMethod","swiperMethod","onTouchStart","onTouchMove","onTouchEnd","onClick","onScroll","onLoad","onResize","isVirtual","isVirtualLoop","slideToLoop","autoplay","running","paused","resizeTimeout","resume","newProgress","translatesDiff","pointerIndex","findIndex","cachedEv","pointerId","isSafari","isWebView","pointerType","originalEvent","touchEndTime","timeDiff","pathTree","path","composedPath","updateClickedSlide","swipeDirection","currentPos","stopIndex","groupSize","increment","rewindFirstIndex","rewindLastIndex","ratio","abs","targetTouch","pageX","preventedByNestedSwiper","prevX","prevY","diffX","diffY","sqrt","atan2","PI","touchesDiff","previousX","previousY","prevTouchesDirection","touchesDirection","isLoop","loopFix","getTranslate","setTransition","loopFixed","disableParentSwiper","activeSlideIndex","ceil","targetEl","which","swipingClassHasValue","eventPath","isTargetShadow","__closestFrom","assignedSlot","found","getRootNode","closestElement","iOSEdgeSwipeDetection","iOSEdgeSwipeThreshold","shouldPreventDefault","isContentEditable","__preventObserver__","cursor","slideRealIndex","newSlidesOrder","swiperSlideIndex","byController","byMousewheel","snapIndex","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","swiperLoopMoveDOM","prepend","updateSlidesOffset","currentSlideTranslate","controller","control","loopParams","moduleExtendParams","moduleParamName","moduleParams","auto","Observer","observers","attach","WebkitMutationObserver","mutations","observerUpdate","childList","observeParents","observeSlideChildren","containerParents","disconnect","Resize","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","slideNext","slidePrev","slideReset","slideToClosest","runCallbacks","internal","perGroup","_clientLeft","clientLeft","normalize","normalizedTranslate","normalizedSnapGrid","prevSnap","prevSnapIndex","snap","prevIndex","initial","slideIndex","previousIndex","skip","normalizedGrid","normalizedGridNext","transitionStart","transitionEnd","isH","scrollSnapType","_immediateVirtual","_cssModeVirtualInitialSet","smoothScroll","targetPosition","side","scrollTo","onSlideToWrapperTransitionEnd","slideToIndex","clickedIndex","slideSelector","clickedSlide","currentSnap","newIndex","transitionEmit","getSwiperTranslate","axis","translateBounds","onTranslateToWrapperTransitionEnd","updateSlidesProgress","newActiveIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","getActiveIndexByTranslate","activeSlides","getSlideByIndex","visibleSlides","slideFound","multiplier","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","getDirectionLabel","property","getDirectionPropertyValue","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","gridEnabled","initSlides","shouldResetSlideSize","updateSlide","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","paddingLeft","paddingRight","boxSizing","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesAfter","allSlidesSize","slideSizeValue","maxSnap","allSlidesOffset","addToSnapGrid","addToSlidesGrid","backFaceHiddenClass","hasClassBackfaceClassAdded","getFilteredSlide","activeSlide","nextSlide","prevSlide","minusOffset","swiperSlideOffset","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","originalProgress","Navigation","hideOnClick","hiddenClass","lockClass","navigationDisabledClass","makeElementsArray","getEl","toggleEl","subEl","onPrevClick","onNextClick","initButton","destroyButton","isHidden","Pagination","pfx","bulletSize","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","onBulletClick","newSlideIndex","currentSlideIndex","firstIndex","midIndex","classesToRemove","suffix","flat","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","fractionEl","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","paginationHTML","numberOfBullets","Thumb","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","thumbsParams","SwiperClass","thumbsSwiperParams","thumbsToActivate","thumbActiveClass","useOffset","currentThumbsIndex","newThumbsIndex","newThumbsSlide","getThumbsElementAndInit","thumbsElement","onThumbsSwiper","watchForThumbsToAppear","Zoom","maxRatio","containerClass","zoomedSlideClass","fakeGestureTouched","fakeGestureMoved","currentScale","isScaling","gesture","originX","originY","slideWidth","slideHeight","imageWrapEl","minX","minY","maxX","maxY","touchesStart","touchesCurrent","prevPositionX","prevPositionY","prevTime","getDistanceBetweenTouches","x1","y1","x2","y2","eventWithinSlide","onGestureStart","scaleStart","box","getScaleOrigin","onGestureChange","scaleMove","onGestureEnd","eventWithinZoomContainer","scaledWidth","scaledHeight","scaleRatio","onTransitionEnd","zoomIn","touchX","touchY","offsetX","offsetY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","overflow","touchAction","forceZoomRatio","scrollX","scrollY","zoomOut","zoomToggle","getListeners","passiveListener","activeListenerWithCapture","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","momentumDuration","in","out","classesToSelector","createElementIfNotDefined","checkProps","getBrowser","needPerspectiveFix","major","minor","num","calcBrowser","deviceCached","getDevice","overrides","platform","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","touch","calcDevice","getSupport","DocumentTouch","calcSupport","processLazyPreloader","lazyEl","unlazy","preload","activeColumn","preloadColumns","column","slideIndexLastInView","deleteProps","object","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","m41","m42","noExtend","nextSource","keysArray","nextIndex","nextKey","desc","setCSSProperty","varName","varValue","animateCSSModeScroll","startPosition","cssModeFrameID","isOutOfBound","animate","easeProgress","cos","currentPosition","elementChildren","elementOffset","clientTop","elementPrevAll","prevEls","prev","elementNextAll","nextEls","elementStyle","elementIndex","previousSibling","elementParents","parents","elementOuterSize","includeMargins","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","definition","globalThis","initialise","V12ResultsVM","debugNewV12","jsonIndent","baseSearchParameters","v12Params","requestFinanceData","showSpinner","req","CurrentFinanceParams","reqStr","reqStrOld","GetFinanceUrl","currFinanceData","ProductsForMargin","BestProduct","LowestProduct","DepositValue","currSelectedProduct","SelectedProduct","initialSelectedProd","SelectedProductID","setSelectedProduct","VueSlider","ShowTable","FinanceItemOption","initialFinanceOption","MinDeposit","MaxDeposit","priceSlider","isBasketOnly","ProductPrice","euroPriceDataCurrencySymbol","itemPlusBasketPrice","BasketPrice","basketCookie","basketCookieKey","TotalPrice","currentDepositValue","lastUsedValues","CurrentFinanceValues","Deposit","depositValue","SessionStorage_SelectedFinance","productsForMargin","currentProduct","theProdID","arr","SelectedProductDescription","selectedProduct","SortedProductsForMargin","Months","CurrentAmount","financeOptions","itemOnly","thisItemPrice","itemPlusBasket","basketOnly","DepositAsPercentage","ThisItemAndBasketText","getFormattedEuroPrice","ThisItemText","BasketOnlyText","NoFinanceMessage","neededToGetFinance","getNeededToGetFinance","dataProducts","decimals","getRoundNumber","minLoanArray","MinLoan","saveCurrentFinanceValues","Name","APR","PPM","Installment","DescriptionNoEuroPrice","setFinancialOptions","cookieData","V12ProductId","V12ProductGuid","cookieKey","FinanceDetailsCheckoutURL","validateDeposit","callbackHasFinance","checkoutWithFinance","ProductTitle","ItemFacebookIDs","financeLazyInit"],"sourceRoot":""}