{"version":3,"sources":["cart.ts"],"names":["_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","context","state","protoGenerator","Generator","generator","create","Context","method","arg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","methodName","undefined","TypeError","ContinueSentinel","record","tryCatch","type","info","done","resultName","next","nextLoc","sent","_sent","dispatchException","abrupt","fn","call","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","this","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","_invoke","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","resolve","reject","invoke","result","_typeof","__await","then","unwrapped","error","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","i","iteratorMethod","isNaN","length","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","arguments","apply","checkoutButton","subtotalInUI","modalSubtotalInUI","defaultcheckoutButtonText","loadingList","GA4Items","isBMSMPromoActive","formatPrice","price","formattedPrice","replace","sanitizeToJson","data","JSON","parse","addLoadingBarToSubtotals","innerHTML","classList","add","updateCartUI","subtotal","Table","CuryTotMerch","toFixed","toString","totalQuantity","remove","concat","cartTotalElem","document","querySelectorAll","productQuantity","valueAsNumber","querySelector","disabled","getElementById","cartTotalHeaderElem","discountElem","discountHeaderElem","totalElem","totalHeaderElem","promoTiers","promoPropsObj","discount","totalString","newDiscount","subtotalNumber","Number","parseFloat","promoTiersLenght","minTotal","dollarOff","cartTotalString","toLocaleString","minimumFractionDigits","maximumFractionDigits","discountString","$","hide","show","removeEmptySpaceInString","text","updateCartItemUI","basketID","cartItem","modalCartItem","Table1","product","basketid","console","log","curytotord","quantity","setAttribute","deleteCartItemUI","parentNode","removeChild","emptyCart","cartItemsHeader","cartItemsContainer","cartItemsCheckoutContainer","modalCartContainer","modalCartQuantityCountSum","insertAdjacentHTML","updateProductQuantityInCart","_x","_x2","_x3","_updateProductQuantityInCart","_callee","productID","quantityInput","deleteItem","request","index","_context","alert","isInteger","Math","round","params","ajax","url","cache","indexOf","splice","deleteProductInCart","_x4","_x5","_deleteProductInCart","_callee2","deletedItemGA4","jsonData","_context2","dataLayer","ecommerce","event","currency","items","event_value","itemid","toLowerCase","includes","doEmptyCart","confirm","submit","checkout","on","_this","delayDebounceFn","setTimeout","invtId","basketId","clearTimeout","e","preventDefault"],"mappings":"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","file":"../cart.min.js","sourcesContent":["// Declare variables for various UI elements\nlet checkoutButton\nlet subtotalInUI\n//let subtotalPointsInUI\nlet modalSubtotalInUI\n//let modalSubtotalPointsInUI\n\nlet defaultcheckoutButtonText = 'Checkout'\n\n// Declare a list to keep track of loading operations\nlet loadingList = []\n\n//Declare variable for basketID-GA4 item properties\nlet GA4Items=[];\n\nlet isBMSMPromoActive: boolean = false;\n\n$(function () {\n\tcheckoutButton = document.querySelector('#btn_cart_checkout')\n\tsubtotalInUI = document.querySelector('#subtotalInUI')\n\tmodalSubtotalInUI = document.querySelector('#hdSubtotal')\n\t//event listener for the qty input\n\t$('.quantity-input').on('input', function () {\n\t\taddLoadingBarToSubtotals();\n\t\t(this.parentNode as Element).classList.add('loader-absolute-right')\t\t\n\t\tconst delayDebounceFn = setTimeout(() => {\n\t\t\tvar invtId = $(this).data('invtid')\n\t\t\tvar basketId = $(this).data('basketid')\n\t\t\tupdateProductQuantityInCart(invtId, this as HTMLInputElement, basketId)\n\t\t\tthis['oldvalue'] = (this as HTMLInputElement).value\n\t\t}, 2000)\n\t\treturn () => clearTimeout(delayDebounceFn)\n\t})\n\n\t//event listener for the delete button\n\t$('.delete-product').on('click', function (e) {\n\t\te.preventDefault()\n\t\tvar invtId = $(this).data('invtid')\n\t\tvar basketId = $(this).data('basketid')\n\t\tdeleteProductInCart(invtId, basketId)\n\t})\n\n})\n\nfunction formatPrice(price) {\n\t// Remove non-digit characters\n\tlet formattedPrice = price.replace(/\\D/g, '')\n\n\t// Add a decimal point before the last two digits\n\tformattedPrice = formattedPrice.replace(/(\\d)(\\d{2})$/, '$1.$2')\n\n\t// Add commas as thousand separators\n\tformattedPrice = formattedPrice.replace(/(?=(\\d{3})+(\\D))\\B/g, ',')\n\n\treturn formattedPrice\n}\n\n/**\n * Sanitize a string and parse it into a JSON object.\n * @param {string} data - The string to sanitize and parse.\n * @return {Object} The parsed JSON object.\n */\nfunction sanitizeToJson(data: string) {\n\t// Remove all newline characters from the string\n\tdata = data.replace(/\\n/g, '')\n\n\t// Remove all characters from the start of the string up to the first '{'\n\tdata = data.replace(/^[^{]*/g, '')\n\n\t// Parse the sanitized string into a JSON object\n\tconst jsonData = JSON.parse(data)\n\n\treturn jsonData\n}\n\n/**\n * Add a loading bar to the subtotal elements in the UI.\n */\nfunction addLoadingBarToSubtotals() {\n\t// Define the HTML for the loading bar\n\tconst loadingHtml = ''\n\n\t// Add the loading bar to the subtotal elements in the main UI\n\tsubtotalInUI.innerHTML = ''\n\tsubtotalInUI.classList.add('loader-dark-small')\n\n\t// Add the loading bar to the subtotal elements in the modal UI\n\tmodalSubtotalInUI.innerHTML = ''\n\tmodalSubtotalInUI.classList.add('loader-dark-small')\n}\n\n/**\n * Update the cart UI with the given data.\n * @param {string} data - The data to update the cart UI with.\n */\nfunction updateCartUI(data: string) {\n\t// If there are still items loading, don't update the UI\n\tif (loadingList.length > 0) return\n\n\t// Sanitize the data and parse it into a JSON object\n\tconst jsonData = sanitizeToJson(data)\n\n\t// Get the subtotal and subtotal points from the JSON data\n\tconst subtotal = jsonData.Table[0].CuryTotMerch.toFixed(2).toString()\n\t//const subtotalPoints = jsonData.Table[0].User6\n\n\t// Update the subtotal and subtotal points in the main UI\n\tsubtotalInUI.classList.remove('loader-dark-small')\n\tsubtotalInUI.innerHTML = `$${formatPrice(subtotal)}`\n\n\t// Update the subtotal and subtotal points in the modal UI\n\tmodalSubtotalInUI.classList.remove('loader-dark-small')\n\tmodalSubtotalInUI.innerHTML = `$${formatPrice(subtotal)}`\n\n\t// Calculate the total quantity of items in the cart\n\tlet totalQuantity = 0\n\tconst productQuantities: NodeListOf = document.querySelectorAll('[id*=\\'cartQty\\']')\n\tproductQuantities.forEach(productQuantity => {\n\t\ttotalQuantity += productQuantity.valueAsNumber\n\t})\n\n\t// Update the total quantity in the UI\n\tdocument.querySelector('#bubble-cnt').innerHTML = totalQuantity.toString()\n\n\t// Enable the checkout button\n\tcheckoutButton.disabled = false\n\tcheckoutButton.classList.remove('loader-light')\n\tcheckoutButton.classList.remove('disabled')\n\n\n\tconst cartTotalElem = document.getElementById('carttotalInUI');\n\tconst cartTotalHeaderElem = document.getElementById('hdCartTotal');\n\tconst discountElem = document.getElementById('discountInUI');\n\tconst discountHeaderElem = document.getElementById('hdDiscount');\n\tconst totalElem = document.getElementById('subtotalInUI');\n\tconst totalHeaderElem = document.getElementById('hdTotal');\n\t\n\tconst promoTiers = promoPropsObj.promoTiers;\n\tlet discount = promoPropsObj.discount || 0;\n\t\n\tif (isBMSMPromoActive) {\n\t\tlet newDiscount = discount || 0;\n\t\tconst subtotalNumber = Number.parseFloat(subtotal);\n\t\n\t\tlet promoTiersLenght = promoTiers.length;\n\t\tif (subtotalNumber < promoTiers[0].minTotal) {\n\t\t\tnewDiscount = 0;\n\t\t} else if (subtotalNumber > promoTiers[promoTiersLenght - 1].minTotal) {\n\t\t\tnewDiscount = promoTiers[promoTiersLenght - 1].dollarOff;\n\t\t} else {\n\t\t\tfor (let i = 0; i < promoTiersLenght - 1; i++) {\n\t\t\t\tif ((subtotalNumber > promoTiers[i].minTotal) && (subtotalNumber < promoTiers[i + 1].minTotal)) {\n\t\t\t\t\tnewDiscount = promoTiers[i].dollarOff;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\tdiscount = newDiscount;\n\t\n\t\tif (newDiscount > 0) {\n\t\t\tconst cartTotalString = `${''}${Number.parseFloat(subtotal).toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) || ''}`;\n\t\t\tconst discountString = newDiscount > 0 \n\t\t\t\t? `-${''}${newDiscount.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}` \n\t\t\t\t: '';\n\t\t\tconst totalString = `${''}${Number.parseFloat((subtotalNumber - newDiscount).toFixed(2)).toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) || ''}`;\n\t\t\t\n\t\t\tcartTotalElem.innerHTML = cartTotalString;\n\t\t\tcartTotalHeaderElem.innerHTML = cartTotalString;\n\t\t\tdiscountElem.innerHTML = discountString;\n\t\t\tdiscountHeaderElem.innerHTML = discountString;\n\t\t\ttotalElem.innerHTML = totalString;\n\t\t\ttotalHeaderElem.innerHTML = totalString;\n\t\n\t\t\t$('#cartULNoDiscount').hide();\n\t\t\t$('#hdULNoDiscount').hide();\n\t\t\t$('#cartULDiscount').show();\n\t\t\t$('#hdULDiscount').show();\n\t\t} else {\n\t\t\t$('#cartULDiscount').hide();\n\t\t\t$('#hdULDiscount').hide();\n\t\t\t$('#cartULNoDiscount').show();\n\t\t\t$('#hdULNoDiscount').show();\n\t\t}\n\t}\n\t\n\n}\n\n/**\n * Remove all whitespace characters in a string.\n * @param {string} text - The string to remove whitespace from.\n * @return {string} The string with all whitespace removed.\n */\nfunction removeEmptySpaceInString(text: string) {\n\t// If the text is falsy (e.g., null, undefined, empty string), return it as is\n\tif (!text) return text\n\n\t// Use a regular expression to replace all whitespace characters with nothing\n\tconst noWhitespaceText = text.replace(/\\s/g, '')\n\n\treturn noWhitespaceText\n}\n\n/**\n * Update the UI for a specific cart item with the given data.\n * @param {string} basketID - The ID of the product to update the UI for.\n * @param {string} data - The data to update the cart item UI with.\n */\nfunction updateCartItemUI(basketID: string, data: string) {\n\t// Select the cart item elements in the main UI and the modal UI\n\tconst cartItem = document.querySelector(`#cart-item-${basketID}`)\n\tconst modalCartItem = document.querySelector(`#modal-cart-item-${basketID}`)\n\n\t// Sanitize the data and parse it into a JSON object\n\tconst jsonData = sanitizeToJson(data)\n\n\t// Loop through each product in the JSON data\n\tjsonData.Table1.forEach((product) => {\n\t\t// If the product ID in the JSON data doesn't match the given product ID, skip this iteration\n\t\tif (removeEmptySpaceInString(product.basketid) !== basketID) return\n\t\tconsole.log(`#cart-item-${basketID}`)\n\t\t// Update the product quantity price in the main UI\n\t\tcartItem.querySelector('#product-quantity-price').innerHTML = `$${formatPrice(product.curytotord.toFixed(2).toString())}`\n\n\t\t// Update the product quantity in the modal UI\n\t\tmodalCartItem.querySelector('#cart-modal-product-quantity').innerHTML = product.quantity\n\t\tdocument.querySelector(`#cart-item-${basketID} .delete-product`).setAttribute('data-quantity', product.quantity.toString())\n\n\t})\n}\n\n/**\n * Delete the UI elements for a specific cart item.\n * @param {string} basketID - The ID of the product to delete the UI elements for.\n */\nfunction deleteCartItemUI(basketID: string) {\n\t// Select the cart item elements in the main UI and the modal UI\n\tconst cartItem: HTMLElement = document.querySelector(`#cart-item-${basketID}`)\n\tconst modalCartItem: HTMLElement = document.querySelector(`#modal-cart-item-${basketID}`)\n\n\t// If the cart item element exists in the main UI, remove it\n\tif (cartItem) {\n\t\tcartItem.parentNode.removeChild(cartItem)\n\t}\n\n\t// If the cart item element exists in the modal UI, remove it\n\tif (modalCartItem) {\n\t\tmodalCartItem.parentNode.removeChild(modalCartItem)\n\t}\n}\n\n/**\n * Empty the cart by removing the cart items from the UI and displaying a message that the cart is empty.\n */\nfunction emptyCart() {\n\t// Select the cart item elements in the main UI\n\tconst cartItemsHeader = document.querySelector('#cart-items-header')\n\tconst cartItemsContainer = document.querySelector('#cart-items-container')\n\tconst cartItemsCheckoutContainer = document.querySelector('#cart-items-checkout-container')\n\n\t// Select the cart item elements in the modal UI\n\tconst modalCartContainer = document.querySelector('#div_drop-shopcart')\n\tconst modalCartQuantityCountSum = document.querySelector('#cartSumQty')\n\n\t// If the cart item elements exist in the main UI, remove them\n\tif (cartItemsHeader) {\n\t\tcartItemsHeader.parentNode.removeChild(cartItemsHeader)\n\t}\n\tif (cartItemsCheckoutContainer) {\n\t\tcartItemsCheckoutContainer.parentNode.removeChild(cartItemsCheckoutContainer)\n\t}\n\tif (modalCartQuantityCountSum) {\n\t\tmodalCartQuantityCountSum.parentNode.removeChild(modalCartQuantityCountSum)\n\t}\n\n\t// Define the HTML for the empty cart message\n\tconst htmlString = '
'\n\n\t// Update the cart items container in the main UI with the empty cart message\n\tcartItemsContainer.innerHTML = htmlString\n\n\t// Update the cart items container in the modal UI with the empty cart message\n\tmodalCartContainer.innerHTML = ''\n\tmodalCartContainer.insertAdjacentHTML('beforeend', modalHtmlString)\n}\n\n/**\n * Update the quantity of a product in the cart.\n * @param {string} productID - The ID of the product to update.\n * @param {HTMLElement} quantityInput - The input element for the product quantity.\n * @param {string} basketID - The ID of the basket that contains the product.\n */\nasync function updateProductQuantityInCart(productID: string, quantityInput: HTMLInputElement, basketID: string) {\n\tlet deleteItem = false\n\n\t// If the quantity is 0 or less, confirm with the user if they want to remove the item\n\tif (Number(quantityInput.value) <= 0) {\n\t\tdeleteItem = true\n\t}\n\n\t// If the quantity is more than 99, alert the user and revert the quantity\n\tif (Number(quantityInput.value) > 99) {\n\t\talert('Value must be less than or equal to 99.')\n\t\tquantityInput.value = quantityInput['oldvalue']\n\t\treturn\n\t}\n\t//If the quantity is float, alert the user and revert the quantity\n\tif (!Number.isInteger(parseFloat(quantityInput.value))) {\n\t\tquantityInput.value = Math.round(parseFloat(quantityInput.value)).toString()\n\t\treturn\n\t}\n\t// Add a loading bar to the subtotals\n\taddLoadingBarToSubtotals()\n\n\t// Add the product ID to the loading list\n\tloadingList.push(productID);\n\n\t// Add a loading image next to the quantity input\n\t(quantityInput.parentNode as Element).classList.add('loader-absolute-right')\n\n\t// Disable the checkout button and the quantity input\n\tcheckoutButton.classList.add('disabled')\n\tcheckoutButton.classList.add('loader-light') \n\t//checkoutButton.innerText = ''\n\tcheckoutButton.disabled = true\n\tquantityInput.disabled = true\n\n\t// Define the URL and parameters for the AJAX request\n\tconst ajaxCartUrl = '/ajax/newCart.aspx'\n\tlet params = `&actionType=CARTUPDATE&basketId=${basketID}&productID=${productID}&quantity=${quantityInput.value}&posting=TRUE`\n\n\t// Send the AJAX request\n\tconst request = await $.ajax({\n\t\turl: ajaxCartUrl,\n\t\ttype: 'POST',\n\t\tcache: false,\n\t\tdata: params,\n\t\tasync: true\n\t})\n\n\t// Remove the product ID from the loading list\n\tconst index = loadingList.indexOf(productID)\n\tif (index !== -1) {\n\t\tloadingList.splice(index, 1)\n\t}\n\n\t// If the item was deleted, update the UI accordingly\n\tif (deleteItem) {\n\t\tdeleteCartItemUI(basketID)\n\t\tconst jsonData = sanitizeToJson(request)\n\t\tif (jsonData.Table1.length <= 0) {\n\t\t\temptyCart()\n\t\t}\n\t} else {\n\t\t// If the item was not deleted, update the cart item UI and enable the quantity input\n\t\tupdateCartItemUI(basketID, request)\n\t\tquantityInput.disabled = false\n\t}\n\n\t// Remove the loading image\n\t(quantityInput.parentNode as Element).classList.remove('loader-absolute-right')\n\n\t// Update the cart UI\n\tupdateCartUI(request)\n}\n\n/**\n * Delete a product from the cart.\n * @param {string} productID - The ID of the product to delete.\n * @param {string} basketID - The ID of the basket that contains the product.\n */\nasync function deleteProductInCart(productID, basketID) {\n\t// Add a loading bar to the subtotals\n\taddLoadingBarToSubtotals()\n\n\tconst deletedItemGA4 = GA4Items[basketID]\n\n\t// remove the delete button with a loader\n\tconst deleteButton = document.querySelector(`#cart-item-${basketID} .Update`);\n\tdeleteButton.innerHTML = ''\n\n\t// Disable the checkout button\n\tcheckoutButton.classList.add('disabled')\n\tcheckoutButton.classList.add('loader-light')\n\t//checkoutButton.innerText = ''\n\tcheckoutButton.disabled = true\n\n\t// Define the URL and parameters for the AJAX request\n\tconst ajaxCartUrl = '/ajax/newCart.aspx'\n\tlet params = `&actionType=CARTDELETE&basketId=${basketID}&productID=${productID}&posting=TRUE`\n\n\t// Send the AJAX request\n\tconst request = await $.ajax({\n\t\turl: ajaxCartUrl,\n\t\ttype: 'POST',\n\t\tcache: false,\n\t\tdata: params,\n\t\tasync: true\n\t})\n\n\tdataLayer.push({ ecommerce: null }) // Clear the previous ecommerce object.\n\tdataLayer.push({\n\t\t'event': 'remove_from_cart',\n\t\t'ecommerce': {\n\t\t\t'currency': 'USD',\n\t\t\t'value': Number((deletedItemGA4.price * deletedItemGA4.quantity).toFixed(2)),\n\t\t\t'items': deletedItemGA4\n\t\t},\n\t\t'event_value': Number((deletedItemGA4.price * deletedItemGA4.quantity).toFixed(2))\n\t})\n\n\t// Delete the cart item UI for the product\n\tdeleteCartItemUI(basketID)\n\n\t// Update the cart UI with the response from the AJAX request\n\tupdateCartUI(request)\n\n\t// Sanitize the response and parse it into a JSON object\n\tconst jsonData = sanitizeToJson(request)\n\n\t// If the cart only has GWP product left, remove it\n\tif (jsonData.Table1.length === 1 && jsonData.Table1[0].itemid.toLowerCase().includes('gwp')) {\n\t\tdeleteProductInCart(jsonData.Table1[0].itemid, jsonData.Table1[0].basketid)\n\t}\n\n\t// If there are no more items in the cart, empty the cart\n\tif (jsonData.Table1.length <= 0) {\n\t\temptyCart()\n\t}\n\n}\n\n/**\n * Empty the entire cart.\n * This function will prompt the user for confirmation before emptying the cart.\n * If the user confirms, it will set the 'actionType' input's value to 'CARTEMPTY' and submit the 'OCForm1' form.\n */\nfunction doEmptyCart() {\n\t// Prompt the user for confirmation\n\tconst userConfirmed = confirm('Warning: This will empty your entire cart!\\n')\n\n\t// If the user confirmed, empty the cart\n\tif (userConfirmed) {\n\t\t// Get the 'actionType' input element\n\t\tconst actionTypeInput = document.getElementById('actionType') as HTMLInputElement\n\n\t\t// Set the 'actionType' input's value to 'CARTEMPTY'\n\t\tactionTypeInput.value = 'CARTEMPTY'\n\n\t\t// Get the 'OCForm1' form element\n\t\tconst form = document.getElementById('OCForm1') as HTMLFormElement\n\n\t\t// Submit the 'OCForm1' form\n\t\tform.submit()\n\t}\n}\n\n/**\n * Proceed to checkout.\n * This function will set the 'actionType' input's value to its current value plus ',CARTCHECKOUT' and submit the 'OCForm1' form.\n * This effectively signals that the user wants to proceed to checkout.\n */\nfunction checkout() {\n\t// Get the 'actionType' input element\n\tconst actionTypeInput = document.getElementById('actionType') as HTMLInputElement\n\n\t// Append ',CARTCHECKOUT' to the 'actionType' input's value\n\tactionTypeInput.value += ',CARTCHECKOUT'\n\n\t// Get the 'OCForm1' form element\n\tconst form = document.getElementById('OCForm1') as HTMLFormElement\n\n\t// Submit the 'OCForm1' form\n\tform.submit()\n}"]}