{"version":3,"file":"mini-cart.js","sources":["../../../src/assets/scripts/mini-cart.entry.ts"],"sourcesContent":["import { postUpdateMiniCart, postDeleteMiniCartItem, getQuotesCount, postSaveQuote, getGetCartInfo } from '@_api/minicart';\nimport { getCurrentRegion } from '@helpers/functions';\n\nconst miniCart = {\n elem: document?.querySelector('.saig-o-mini-cart'),\n listItemMiniCart: document?.querySelector('.saig-o-header-menu__icons__item__cart'),\n currentQtyDiv: document?.querySelector('drpQuantity_1'),\n itemExistsContainer: document?.querySelector('.saig-o-mini-cart__item-exists'),\n itemNotExistsContainer: document?.querySelector('.saig-o-mini-cart__item-not-exists'),\n cartCounter: document?.querySelector('.saig-a-button.button-cart > .saig-a-button__counter'),\n updateCartInfoURL: '',\n deleteLineItemURL: '',\n getQuotesCountURL: '',\n getCartInfoURL: '',\n saveQuotesURL: '',\n quotesPageUrl: '',\n cartId: '',\n popUpIdDocumentLicenseRules: '',\n cartPageUrl: '',\n popUpIdMoreInfo: '',\n popUpIdQuoteItemQtyMaximum: '',\n lineItemId: '',\n init: function () {\n this.addEvent();\n this.getParsedAPIUrls();\n window.addEventListener('getCartInfo', (event: any) => {\n this.getCartInfo();\n });\n },\n getParsedAPIUrls: function () {\n const cartContainer = this.elem?.querySelector('.saig-o-mini-cart__inner-wrapper');\n const apiUrls = cartContainer?.dataset.attrGeneric || '';\n const parsedAPIUrls = apiUrls && JSON.parse(apiUrls?.replace(/"/g, '\"'));\n if (parsedAPIUrls) {\n this.updateCartInfoURL = parsedAPIUrls?.UpdateCartInfoURL;\n this.deleteLineItemURL = parsedAPIUrls?.DeleteMiniCartItemURL;\n this.popUpIdDocumentLicenseRules = parsedAPIUrls?.PopUpIdDocumentLicenseRules;\n this.popUpIdQuoteItemQtyMaximum = parsedAPIUrls?.popUpIdQuoteItemQtyMaximum;\n this.cartPageUrl = parsedAPIUrls?.CartPageUrl;\n this.getQuotesCountURL = parsedAPIUrls?.GetQuotesCountURL;\n this.saveQuotesURL = parsedAPIUrls?.SaveQuotesURL;\n this.quotesPageUrl = parsedAPIUrls?.QuotesPageUrl;\n this.cartId = parsedAPIUrls?.CartId;\n this.getCartInfoURL = parsedAPIUrls?.GetCartInfoURL;\n }\n },\n addEvent: function () {\n this.elem = document?.querySelector('.saig-o-mini-cart');\n let qtySelectOptions = document?.querySelectorAll('.saig-o-mini-cart__item-details-qty-select');\n let moreInfoLinks = document?.querySelectorAll('.saig-o-mini-cart__item-format-info-link');\n let licenseRules = document?.querySelector('.saig-o-mini-cart__license-rules>a');\n let deleteButtons = document?.querySelectorAll('.saig-a-button.delete-button');\n let iconBack = this.elem?.querySelector('.icon-back');\n let iconClose = this.elem?.querySelector('.icon-close');\n\n for (const select of qtySelectOptions) {\n select?.addEventListener('change', this.changeQuantityMiniCart.bind(this));\n }\n for (const link of moreInfoLinks) {\n link?.addEventListener('click', this.moreInfoClickHandler.bind(this));\n }\n licenseRules?.addEventListener('click', this.licenseRuleClickHandler.bind(this));\n iconBack?.addEventListener('click', this.closeButtonClickHandler.bind(this));\n iconClose?.addEventListener('click', this.closeButtonClickHandler.bind(this));\n for (const button of deleteButtons) {\n button?.addEventListener('click', this.deleteMiniCartItem.bind(this));\n }\n },\n closeButtonClickHandler: function (event: any) {\n event?.preventDefault();\n event?.stopPropagation();\n const cartDiv = document?.querySelector('.saig-o-header-menu__mini-cart');\n cartDiv?.classList.remove('show');\n document?.querySelector('body')?.classList.remove('modal-overlay-on');\n },\n\n deleteMiniCartItem: function (event: any) {\n const parentDiv = event.currentTarget?.closest('.saig-o-mini-cart__item');\n this.getDataAttributes(event);\n postDeleteMiniCartItem(this.lineItemId, this.deleteLineItemURL ?? '')\n .then((response) => {\n if (response != null) {\n this.postRemoveFromCartEventToGA(true, parentDiv, \"0\");\n this.getCartInfo();\n }\n })\n .catch((error) => {\n console.log('error calling API: ' + error);\n });\n },\n triggerGAEventOnQuantityChange: function (parentDiv: any, changedQuantity: string) {\n const dataAttr = parentDiv?.dataset.attrItem;\n const parsedDataAttr = dataAttr && JSON.parse(dataAttr?.replace(/"/g, '\"'));\n\n var quantity = parseInt(parsedDataAttr.quantity);\n\n if (parseInt(changedQuantity) > quantity) {\n this.postAddToCartEventToGA(parentDiv, changedQuantity)\n } else {\n this.postRemoveFromCartEventToGA(false, parentDiv, changedQuantity);\n }\n\n },\n postAddToCartEventToGA: function (parentDiv: any, changedQuantity: string) {\n try {\n const dataAttr = parentDiv?.dataset.attrItem;\n const parsedDataAttr = dataAttr && JSON.parse(dataAttr?.replace(/"/g, '\"'));\n\n var quantity = parseInt(parsedDataAttr.quantity);\n quantity = parseInt(changedQuantity) - quantity;\n\n const productObj = {\n event: \"add_to_cart\",\n region: getCurrentRegion(),\n currency: parsedDataAttr.currencyMnemonic,\n value: parseFloat(parsedDataAttr.singleBasePrice.replace(/[^.0-9]/g, \"\")) * quantity,\n items: [\n {\n item_id: parsedDataAttr.masterProductSKU,\n item_name: parsedDataAttr.productName,\n item_brand: parsedDataAttr.publisherName,\n item_variant: parsedDataAttr.format,\n price: parseFloat(parsedDataAttr.singleBasePrice.replace(/[^.0-9]/g, \"\")),\n quantity: quantity\n }\n ]\n };\n\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(productObj);\n } catch {\n console.error('Error in add to cart event');\n }\n },\n postRemoveFromCartEventToGA: function (isDelete: boolean, parentDiv: any, changedQuantity: string) {\n try {\n const dataAttr = parentDiv?.dataset.attrItem;\n const parsedDataAttr = dataAttr && JSON.parse(dataAttr?.replace(/"/g, '\"'));\n\n var quantity = parseInt(parsedDataAttr.quantity);\n\n if (!isDelete) {\n quantity = quantity - parseInt(changedQuantity);\n }\n\n const productObj = {\n event: \"remove_from_cart\",\n region: getCurrentRegion(),\n currency: parsedDataAttr.currencyMnemonic,\n value: isDelete ? parseFloat(parsedDataAttr.totalPrice.replace(/[^.0-9]/g, \"\")) :\n parseFloat(parsedDataAttr.singleBasePrice.replace(/[^.0-9]/g, \"\")) * quantity,\n items: [\n {\n item_id: parsedDataAttr.masterProductSKU,\n item_name: parsedDataAttr.productName,\n item_brand: parsedDataAttr.publisherName,\n item_variant: parsedDataAttr.format,\n price: parseFloat(parsedDataAttr.singleBasePrice.replace(/[^.0-9]/g, \"\")),\n quantity: quantity\n }\n ]\n };\n\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(productObj);\n } catch {\n console.error('Error in remove from cart event');\n }\n },\n getCartInfo: function () {\n getGetCartInfo(this.getCartInfoURL ?? '').then((response) => {\n if (response != null) {\n this.setMiniCartHTML(response);\n window.dispatchEvent(new CustomEvent('openMiniCart'));\n window.dispatchEvent(new CustomEvent('updateCounterInSearch'));\n }\n });\n },\n changeQuantityMiniCart: function (event: any) {\n const parentDiv = event.currentTarget?.closest('.saig-o-mini-cart__item');\n const changedQuantity = event.currentTarget?.value;\n this.getDataAttributes(event);\n postUpdateMiniCart(this.lineItemId, event.currentTarget?.value, this.updateCartInfoURL ?? '')\n .then((response) => {\n if (response != null) {\n this.triggerGAEventOnQuantityChange(parentDiv, changedQuantity);\n this.getCartInfo();\n }\n })\n .catch((error) => {\n console.log('error calling API: ' + error);\n });\n },\n setMiniCartHTML: function (response?: any) {\n this.listItemMiniCart = document?.querySelector('.saig-o-header-menu__icons__item__cart');\n this.listItemMiniCart && (this.listItemMiniCart.innerHTML = response);\n this.addEvent();\n this.getParsedAPIUrls();\n window.dispatchEvent(new CustomEvent('addMiniCartClickEvent'));\n window.dispatchEvent(new CustomEvent('cartChanged'));\n },\n licenseRuleClickHandler: function (event: any) {\n event?.preventDefault();\n event?.stopPropagation();\n this.showModal(true, this.popUpIdDocumentLicenseRules);\n },\n getDataAttributes: function (event: any) {\n const parentDiv = event.currentTarget?.closest('.saig-o-mini-cart__item');\n const dataAttr = parentDiv?.dataset.attrItem;\n const parsedDataAttr = dataAttr && JSON.parse(dataAttr?.replace(/"/g, '\"'));\n this.popUpIdMoreInfo = parsedDataAttr.PopUpIdMoreInfo;\n this.lineItemId = parsedDataAttr.ItemId;\n },\n moreInfoClickHandler: function (event: any) {\n this.getDataAttributes(event);\n this.showModal(true, this.popUpIdMoreInfo);\n },\n showModal: function (show: boolean, popUpId?: string, confirmCallback?: any, closeCallback?: any) {\n window.dispatchEvent<'selectModal'>(\n new CustomEvent('selectModal', { detail: { popUpId: popUpId, confirmCallback, closeCallback, selfControl: true } })\n );\n },\n};\n\nminiCart.init();\n\nexport { miniCart };\n"],"names":["miniCart","event","cartContainer","_a","apiUrls","parsedAPIUrls","qtySelectOptions","moreInfoLinks","licenseRules","deleteButtons","iconBack","iconClose","_b","select","link","button","cartDiv","parentDiv","postDeleteMiniCartItem","response","error","changedQuantity","dataAttr","parsedDataAttr","quantity","productObj","getCurrentRegion","isDelete","getGetCartInfo","postUpdateMiniCart","_c","show","popUpId","confirmCallback","closeCallback"],"mappings":"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"}