{"version":3,"file":"../checkoutPortal.js","names":["getCartId","cartData","JSON","parse","localStorage","getItem","id","undefined","textAreaElement","document","querySelector","maximumCharacters","getAttribute","typedCharactersElement","getElementById","addEventListener","event","typedCharacters","value","length","textContent","numberWithCommas","x","toString","replace","angular","module","controller","$scope","$window","$rootScope","cartApiResource","storageService","cacheApiResource","giftData","showError","errorMsg","$","clearGiftLinesAndGoToCheckout","giftLineIds","getCartGiftLineIds","cartId","forEach","lineId","removeLine","then","response","data","hasError","remove","error","window","location","checkoutUrl","lineItems","line","productTitle","push","HasCart","HasError","MessageChanged","note","hide","blankMessage","AddNote","giftMessageCheckoutButton","setAttribute","classList","add","RegExp","test","show","scrollIntoView","checkoutBtn","removeAttribute","googleDataLayer","giftMessageAdded","addingNote","save","Promise","resolve","reject","promiseArray","promise","all","values","addNote","BeginCheckout","showBasketItemCount","ContinueWithoutNote","orderDetails","items","productCampaignId","each","i","obj","itemData","split","lineAttributes","key","itemInfo","item_id","item_name","quantity","price","coupon","TotalItemCount","CalculateTotalCount","itemCount","item","input","get","GetItemData","itemGetResponse","parsedLimitData","shippingMessageDetail","subtotal","totalCost","shippingData","shippingIsFree","shippingValue","Math","round","toFixed","shippingValueField","innerHTML","shippingMessage","giftToggled","init","bootstrap"],"sources":["modules/animation.js","modules/navigation.js","modules/cookie.js"],"sourcesContent":["// Add loaded class to body\r\nvar ageGateElement = document.getElementById(\"ageGate\");\r\n\r\nif (!ageGateElement) {\r\n window.addEventListener('load', function () {\r\n document.querySelector('body').classList.add('body--loaded')\r\n });\r\n\r\n}\r\n\r\n// Header\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n let header = document.querySelector('.header');\r\n let isScrolling;\r\n let lastScroll = 0;\r\n\r\n window.addEventListener('scroll', function () {\r\n window.clearTimeout(isScrolling);\r\n const currentScroll = window.scrollY;\r\n\r\n if (window.scrollY < 120) {\r\n header.classList.remove('header--hide');\r\n } else {\r\n isScrolling = setTimeout(function () {\r\n if (currentScroll > lastScroll) {\r\n // show if scroll down\r\n header.classList.add('header--hide');\r\n } else {\r\n // hide if scroll up\r\n header.classList.remove('header--hide');\r\n }\r\n lastScroll = currentScroll;\r\n }, 25);\r\n }\r\n\r\n });\r\n\r\n\r\n var productDetailHero = document.querySelector('.productDetail');\r\n if (productDetailHero) {\r\n productDetailHero.classList.add('section--visible');\r\n }\r\n\r\n});\r\n\r\n\r\n// Sections\r\nfunction isNearTop(element, offset = 200) {\r\n var rect = element.getBoundingClientRect();\r\n return rect.top <= (window.innerHeight || document.documentElement.clientHeight) - offset;\r\n}\r\n\r\nfunction handleLayoutItems() {\r\n var layoutItems = document.querySelectorAll('.umb-block-grid__layout-item, .divider--products, .divider--template');\r\n if (layoutItems) {\r\n layoutItems.forEach(function (el) {\r\n if (isNearTop(el, 200)) {\r\n el.classList.add('section--visible');\r\n }\r\n });\r\n }\r\n\r\n var productContainers = document.querySelectorAll('.container--products');\r\n if (productContainers) {\r\n productContainers.forEach((productContainer) => {\r\n var items = productContainer.querySelectorAll('.products__item');\r\n items.forEach(function (el) {\r\n if (isNearTop(el, 200)) {\r\n el.classList.add('item--visible');\r\n }\r\n });\r\n });\r\n }\r\n\r\n}\r\n\r\nwindow.addEventListener(\"scroll\", handleLayoutItems);\r\nwindow.addEventListener(\"load\", handleLayoutItems);\r\n\r\n\r\n","var menu_trigger = document.querySelector('.nav__toggle'),\r\n nav = document.querySelector('.nav'),\r\n body = document.querySelector('body'),\r\n nav_icon = document.querySelectorAll('.mega-nav__trigger'),\r\n sub_icon = document.querySelectorAll('.nav__icon--sub');\r\n\r\nif (menu_trigger) {\r\n menu_trigger.addEventListener('click', function () {\r\n if (menu_trigger.classList.contains('nav__toggle--active')) {\r\n var openNavItem = nav.querySelector('.nav__link--active')\r\n if (openNavItem) {\r\n openNavItem.classList.remove('nav__link--active');\r\n }\r\n\r\n document.body.style.removeProperty(\"padding-right\");\r\n document.removeEventListener(`keydown`, initTrapFocusNav);\r\n } else {\r\n //const documentWidth = document.documentElement.clientWidth;\r\n //const scrollbarWidth = Math.abs(window.innerWidth - documentWidth);\r\n //document.body.style.paddingRight = `${scrollbarWidth}px`;\r\n document.addEventListener('keydown', initTrapFocusNav);\r\n }\r\n\r\n // Toggle classes\r\n menu_trigger.classList.toggle('nav__toggle--active');\r\n nav.classList.toggle('nav--active');\r\n body.classList.toggle('nav--open');\r\n\r\n\r\n // Accessibility\r\n if (menu_trigger.getAttribute('aria-expanded') === 'true') {\r\n menu_trigger.setAttribute('aria-expanded', 'false');\r\n } else {\r\n menu_trigger.setAttribute('aria-expanded', 'true');\r\n }\r\n });\r\n}\r\n\r\nfunction initTrapFocusNav(e) {\r\n if (e.key === 'Escape') {\r\n var openNavItem = nav.querySelector('.nav__link--active')\r\n if (openNavItem) {\r\n openNavItem.classList.remove('nav__link--active');\r\n }\r\n\r\n document.body.style.removeProperty(\"padding-right\");\r\n document.removeEventListener(`keydown`, initTrapFocusNav);\r\n\r\n menu_trigger.classList.remove('nav__toggle--active');\r\n nav.classList.remove('nav--active');\r\n body.classList.remove('nav--open');\r\n menu_trigger.setAttribute('aria-expanded', 'false');\r\n }\r\n\r\n trapFocus(e, 'header');\r\n}\r\n\r\nvar navDropdowns = document.querySelectorAll('.nav__link--dropdown');\r\nvar navList = document.querySelector('.nav__list');\r\n\r\nif (navDropdowns && navList) {\r\n navList.addEventListener('click', (e) => {\r\n if (e.target.classList.contains('nav__link--dropdown')) {\r\n\r\n var clickedDropdown = e.target;\r\n\r\n if (clickedDropdown.classList.contains(\"nav__link--active\")) {\r\n // closing dropdown\r\n e.target.classList.remove('nav__link--active');\r\n } else {\r\n // opening dropdown\r\n var activeDropdowns = document.querySelectorAll(\".nav__link--active\");\r\n // want to close others first\r\n if (activeDropdowns) {\r\n activeDropdowns.forEach((dropdown) => {\r\n dropdown.classList.remove(\"nav__link--active\");\r\n })\r\n }\r\n\r\n clickedDropdown.classList.add(\"nav__link--active\");\r\n }\r\n }\r\n if (e.target.classList.contains('nav__link--back')) {\r\n e.target.closest('.nav__list').previousElementSibling.classList.remove('nav__link--active');\r\n }\r\n });\r\n}\r\n\r\n// TODO: clean up logic for show/hide nav and basket sidebar\r\nvar mainContent = document.getElementById(\"maincontent\");\r\n\r\nmainContent.addEventListener(\"click\", () => {\r\n if (document.body.classList.contains(\"nav--open\")) {\r\n document.body.style.removeProperty(\"padding-right\");\r\n if (menu_trigger.classList.contains('nav__toggle--active')) {\r\n var openNavItem = nav.querySelector('.nav__link--active')\r\n if (openNavItem) {\r\n openNavItem.classList.remove('nav__link--active');\r\n }\r\n }\r\n\r\n // Toggle classes\r\n menu_trigger.classList.toggle('nav__toggle--active');\r\n nav.classList.toggle('nav--active');\r\n body.classList.toggle('nav--open');\r\n\r\n\r\n // Accessibility\r\n if (menu_trigger.getAttribute('aria-expanded') === 'true') {\r\n menu_trigger.setAttribute('aria-expanded', 'false');\r\n } else {\r\n menu_trigger.setAttribute('aria-expanded', 'true');\r\n }\r\n }\r\n});\r\n\r\nvar header = document.querySelector(\".header\");\r\n\r\nheader.addEventListener(\"click\", (e) => {\r\n if (document.body.classList.contains(\"nav--open\") && !e.target.classList.contains(\"nav__toggle\") && !document.querySelector(\".nav\").contains(e.target)) {\r\n document.body.style.removeProperty(\"padding-right\");\r\n if (menu_trigger.classList.contains('nav__toggle--active')) {\r\n var openNavItem = nav.querySelector('.nav__link--active')\r\n if (openNavItem) {\r\n openNavItem.classList.remove('nav__link--active');\r\n }\r\n }\r\n\r\n // Toggle classes\r\n menu_trigger.classList.toggle('nav__toggle--active');\r\n nav.classList.toggle('nav--active');\r\n body.classList.toggle('nav--open');\r\n\r\n\r\n // Accessibility\r\n if (menu_trigger.getAttribute('aria-expanded') === 'true') {\r\n menu_trigger.setAttribute('aria-expanded', 'false');\r\n } else {\r\n menu_trigger.setAttribute('aria-expanded', 'true');\r\n }\r\n }\r\n});","/*! \r\n * js-cookie v3.0.1 | MIT\r\n * https://github.com/js-cookie/js-cookie/releases\r\n */\r\n;\r\n(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\r\n typeof define === 'function' && define.amd ? define(factory) :\r\n (global = global || self, (function () {\r\n var current = global.Cookies;\r\n var exports = global.Cookies = factory();\r\n exports.noConflict = function () { global.Cookies = current; return exports; };\r\n }()));\r\n}(this, (function () {\r\n 'use strict';\r\n\r\n /* eslint-disable no-var */\r\n function assign(target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = arguments[i];\r\n for (var key in source) {\r\n target[key] = source[key];\r\n }\r\n }\r\n return target\r\n }\r\n /* eslint-enable no-var */\r\n\r\n /* eslint-disable no-var */\r\n var defaultConverter = {\r\n read: function (value) {\r\n if (value[0] === '\"') {\r\n value = value.slice(1, -1);\r\n }\r\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\r\n },\r\n write: function (value) {\r\n return encodeURIComponent(value).replace(\r\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\r\n decodeURIComponent\r\n )\r\n }\r\n };\r\n /* eslint-enable no-var */\r\n\r\n /* eslint-disable no-var */\r\n\r\n function init(converter, defaultAttributes) {\r\n function set(key, value, attributes) {\r\n if (typeof document === 'undefined') {\r\n return\r\n }\r\n\r\n attributes = assign({}, defaultAttributes, attributes);\r\n\r\n if (typeof attributes.expires === 'number') {\r\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\r\n }\r\n if (attributes.expires) {\r\n attributes.expires = attributes.expires.toUTCString();\r\n }\r\n\r\n key = encodeURIComponent(key)\r\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\r\n .replace(/[()]/g, escape);\r\n\r\n var stringifiedAttributes = '';\r\n for (var attributeName in attributes) {\r\n if (!attributes[attributeName]) {\r\n continue\r\n }\r\n\r\n stringifiedAttributes += '; ' + attributeName;\r\n\r\n if (attributes[attributeName] === true) {\r\n continue\r\n }\r\n\r\n // Considers RFC 6265 section 5.2:\r\n // ...\r\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\r\n // character:\r\n // Consume the characters of the unparsed-attributes up to,\r\n // not including, the first %x3B (\";\") character.\r\n // ...\r\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\r\n }\r\n\r\n return (document.cookie =\r\n key + '=' + converter.write(value, key) + stringifiedAttributes)\r\n }\r\n\r\n function get(key) {\r\n if (typeof document === 'undefined' || (arguments.length && !key)) {\r\n return\r\n }\r\n\r\n // To prevent the for loop in the first place assign an empty array\r\n // in case there are no cookies at all.\r\n var cookies = document.cookie ? document.cookie.split('; ') : [];\r\n var jar = {};\r\n for (var i = 0; i < cookies.length; i++) {\r\n var parts = cookies[i].split('=');\r\n var value = parts.slice(1).join('=');\r\n\r\n try {\r\n var foundKey = decodeURIComponent(parts[0]);\r\n jar[foundKey] = converter.read(value, foundKey);\r\n\r\n if (key === foundKey) {\r\n break\r\n }\r\n } catch (e) { }\r\n }\r\n\r\n return key ? jar[key] : jar\r\n }\r\n\r\n return Object.create(\r\n {\r\n set: set,\r\n get: get,\r\n remove: function (key, attributes) {\r\n set(\r\n key,\r\n '',\r\n assign({}, attributes, {\r\n expires: -1\r\n })\r\n );\r\n },\r\n withAttributes: function (attributes) {\r\n return init(this.converter, assign({}, this.attributes, attributes))\r\n },\r\n withConverter: function (converter) {\r\n return init(assign({}, this.converter, converter), this.attributes)\r\n }\r\n },\r\n {\r\n attributes: { value: Object.freeze(defaultAttributes) },\r\n converter: { value: Object.freeze(converter) }\r\n }\r\n )\r\n }\r\n\r\n var api = init(defaultConverter, { path: '/' });\r\n /* eslint-enable no-var */\r\n\r\n return api;\r\n\r\n})));\r\n"],"mappings":"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"}