{"version":3,"file":"addToCartModal.2b1cf492fa69f841e3e3.js","mappings":"8HAEAA,SAASC,iBAAiB,oBAAoB,WAC5C,IAEMC,EAAeF,SAASG,eAAe,kBACvCC,EAAcF,EAAaG,cAAc,2BACzCC,EAAkBN,SAASG,eAAe,0BAC1CI,EAA4BL,EAAaM,iBAAiB,yBAEhEJ,EAAYH,iBAAiB,SAAS,WACpCC,EAAaO,UAAUC,OAAO,mBAC9BJ,EAAgBG,UAAUC,OAAO,UACjCV,SAASW,gBAAgBF,UAAUC,OAAO,mBAC1CV,SAASY,KAAKH,UAAUC,OAAO,kBACjC,IAEAJ,EAAgBL,iBAAiB,SAAS,WACxCC,EAAaO,UAAUC,OAAO,mBAC9BR,EAAaW,aAAa,eAAe,GACzCP,EAAgBG,UAAUC,OAAO,UACjCV,SAASW,gBAAgBF,UAAUC,OAAO,mBAC1CV,SAASY,KAAKH,UAAUC,OAAO,kBACjC,IAEAH,EAA0BO,SAAQ,SAACC,GACjCA,EAAOd,iBAAiB,SAAS,WAC/B,IAAIe,EAAYD,EAAOE,QAAQD,UAE/BE,MA1BkB,iCA0BG,CACnBC,OAAQ,OACRC,QAAS,CACPC,OAAQ,mBACR,eAAgB,oBAElBT,KAAMU,KAAKC,UAAU,CACnBC,aAAc,CACZ,CACER,UAAWA,EACXS,SAAUC,EAAmBX,KAGjCY,SAAU,MAGXC,MAAK,SAACC,GAAQ,OAAKA,EAASC,MAAM,IAClCF,MAAK,SAACC,GACLd,EAAON,UAAUsB,IAAI,WAErB,IAAIC,EAAcjB,EAAOV,cAAc,QACnC4B,EAAclB,EAAOV,cAAc,KACvC2B,EAAYE,UAAYF,EAAYf,QAAQkB,YAC5CF,EAAYxB,UAAUC,OAAOuB,EAAYhB,QAAQmB,MACjDH,EAAYxB,UAAUsB,IAAIE,EAAYhB,QAAQoB,aAE9CrC,SAASK,cAAc,sCAAsC6B,UAAYL,EAASS,cAElFC,EAAWV,aAAQ,EAARA,EAAUW,KAAMxB,GAE3ByB,YAAW,WACT1B,EAAON,UAAUC,OAAO,WACxBsB,EAAYE,UAAYF,EAAYf,QAAQyB,KAC5CT,EAAYxB,UAAUsB,IAAIE,EAAYhB,QAAQmB,MAC9CH,EAAYxB,UAAUC,OAAOuB,EAAYhB,QAAQoB,YACnD,GAAG,IACL,IACCM,OAAM,SAACC,GACNC,QAAQD,MAAM,SAAUA,EAC1B,GACJ,GACF,GACF,IAEA,IAAMlB,EAAqB,SAACX,GAC1B,IAAI+B,EAAM/B,EAAOE,QAAQ6B,IAEpBA,IAAKA,EAAMC,OAAOC,SAASC,MAChC,IAEE,OADeC,OAAOC,WAAWC,qBAAqBN,EAExD,CAAE,MAAOF,GAAQ,CACnB,EAEML,EAAa,SAACc,EAAMrC,QACW,IAAxBsC,EAAAA,IAAwCD,SAAAA,EAAME,OAAUvC,IAInEsC,EAAAA,EAAAA,IAAoBD,EAAMrC,EAAWwC,EAAAA,EAAiBC,OACxD,C","sources":["webpack://global-main/./Feature/Product/code/Views/Feature/Product/AddToCartModal.js"],"sourcesContent":["import { addToCartByCartLine, addToCartSources } from '/Foundation/CDP/code/Utilities/cdpHelper';\n\ndocument.addEventListener('DOMContentLoaded', function () {\n const ADD_CART_LINE = '/api/sitecore/cart/addcartline';\n\n const modalElement = document.getElementById('addToCartModal');\n const closeButton = modalElement.querySelector('.hide-add-to-cart-modal');\n const backdropElement = document.getElementById('addToCartModalBackdrop');\n const accessoryAddToCartButtons = modalElement.querySelectorAll('.accessory-atc-button');\n\n closeButton.addEventListener('click', () => {\n modalElement.classList.remove('wrapper-visible');\n backdropElement.classList.remove('active');\n document.documentElement.classList.remove('overflow-hidden');\n document.body.classList.remove('overflow-hidden');\n });\n\n backdropElement.addEventListener('click', () => {\n modalElement.classList.remove('wrapper-visible');\n modalElement.setAttribute('aria-hidden', true);\n backdropElement.classList.remove('active');\n document.documentElement.classList.remove('overflow-hidden');\n document.body.classList.remove('overflow-hidden');\n });\n\n accessoryAddToCartButtons.forEach((button) => {\n button.addEventListener('click', () => {\n let productId = button.dataset.productId;\n\n fetch(ADD_CART_LINE, {\n method: 'POST',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n productsData: [\n {\n productId: productId,\n category: getProductCategory(button),\n },\n ],\n quantity: 1,\n }),\n })\n .then((response) => response.json())\n .then((response) => {\n button.classList.add('success');\n\n let textElement = button.querySelector('span');\n let iconElement = button.querySelector('i');\n textElement.innerHTML = textElement.dataset.successText;\n iconElement.classList.remove(iconElement.dataset.icon);\n iconElement.classList.add(iconElement.dataset.successIcon);\n\n document.querySelector('.product-detail-modal-cart-counter').innerHTML = response.TotalQuantity;\n\n trackToCDP(response?.Cart, productId);\n\n setTimeout(() => {\n button.classList.remove('success');\n textElement.innerHTML = textElement.dataset.text;\n iconElement.classList.add(iconElement.dataset.icon);\n iconElement.classList.remove(iconElement.dataset.successIcon);\n }, 3000);\n })\n .catch((error) => {\n console.error('Error:', error);\n });\n });\n });\n});\n\nconst getProductCategory = (button) => {\n let url = button.dataset.url;\n\n if (!url) url = window.location.href;\n try {\n let category = google.tagmanager.parseCategoryFromUrl(url);\n return category;\n } catch (error) {}\n};\n\nconst trackToCDP = (cart, productId) => {\n if (typeof addToCartByCartLine === 'undefined' || !cart?.Lines || !productId) {\n return;\n }\n\n addToCartByCartLine(cart, productId, addToCartSources.upsell);\n};\n"],"names":["document","addEventListener","modalElement","getElementById","closeButton","querySelector","backdropElement","accessoryAddToCartButtons","querySelectorAll","classList","remove","documentElement","body","setAttribute","forEach","button","productId","dataset","fetch","method","headers","Accept","JSON","stringify","productsData","category","getProductCategory","quantity","then","response","json","add","textElement","iconElement","innerHTML","successText","icon","successIcon","TotalQuantity","trackToCDP","Cart","setTimeout","text","catch","error","console","url","window","location","href","google","tagmanager","parseCategoryFromUrl","cart","addToCartByCartLine","Lines","addToCartSources","upsell"],"sourceRoot":""}