{"version":3,"file":"product.50a850775cd0bf4918c9.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/gak-ProductDetail-productReviews.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/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/define property getters","webpack://gak.frontend/webpack/runtime/global","webpack://gak.frontend/webpack/runtime/hasOwnProperty shorthand","webpack://gak.frontend/webpack/startup"],"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