1(function(){const config={selectors:[".price",".price-item",".product-price",".price__sale",".price__regular",".cart-item__price",".product-item__price",".price-per-item","[data-price]",".unit-price",".money",".product-card__price",".totals__total-value",".product-option",".sticky-atc-price"],debounceDelay:50,processedAttribute:"data-price-processed",isProcessing:!1};function debounce(func,delay){let timeout;return function(){const context=this,args=arguments;clearTimeout(timeout),timeout=setTimeout(function(){func.apply(context,args)},delay)}}function formatNumberValue(numStr,currency){try{if(numStr=String(numStr).trim(),!numStr||!/^[\d.,]+$/.test(numStr))return numStr;if(currency==="\u043B\u0432"||currency==="BGN"){if(numStr.match(/^\d+[.,]00$/))return numStr.replace(/[.,]00$/,"");if(numStr.match(/,0+$/))return numStr.replace(/,0+$/,"");if(numStr.match(/\.0+$/))return numStr.replace(/\.0+$/,"");if(numStr.includes(" "))return numStr}if(numStr.includes(","))return currency==="EUR"||currency==="\u20AC"?numStr.match(/,0+$/)?numStr.replace(/,0+$/,""):numStr:numStr.match(/,0+$/)?numStr.replace(/,0+$/,""):numStr;if(numStr.match(/^\d+\.\d{3}$/))return numStr.replace("."," ");if(numStr.match(/^\d+\.\d{1,2}$/)){const num=parseFloat(numStr);return currency==="EUR"||currency==="\u20AC"?numStr.match(/\.0+$/)?numStr.replace(/\.0+$/,""):numStr:num<100?numStr.replace(/\.0+$/,""):numStr.match(/\.\d{2}$/)?numStr.match(/\.00$/)?numStr.replace(/\.00$/,""):numStr.replace(/\.0+$/,""):numStr.match(/^\d+\.\d{1}$/)?numStr.replace("."," ")+"00":numStr}if(numStr.includes("."))return currency==="EUR"||currency==="\u20AC"?numStr.replace(/\.0+$/,""):numStr.replace(/\.0+$/,"");if(currency==="EUR"||currency==="\u20AC"){const num=parseFloat(numStr);if(Number.isInteger(num))return numStr}return numStr}catch(error){return console.warn("Error in formatNumberValue:",error),numStr}}function formatPriceText(priceText){try{if(!priceText||typeof priceText!="string")return priceText;const originalText=priceText.trim(),currencyMatch=originalText.match(/[^\d\s,.]+/),currency=currencyMatch?currencyMatch[0]:"";if(originalText.includes("From")||originalText.includes("\u043E\u0442")){const numberMatches=originalText.match(/[\d.,]+/g);if(!numberMatches)return originalText;let result=originalText;return numberMatches.forEach(num=>{const formattedNum2=formatNumberValue(num,currency);result=result.replace(new RegExp("\\b"+num+"\\b","g"),formattedNum2)}),result}if(originalText.includes("-")||originalText.includes("\u2013")){const parts=originalText.split(/[-â]/);if(parts.length===2)return parts.map(part=>{const numberMatch=part.match(/[\d.,]+/);if(!numberMatch)return part.trim();const num=numberMatch[0],formattedNum2=formatNumberValue(num,currency);return part.trim().replace(num,formattedNum2)}).join(" - ")}const numericMatch=originalText.match(/[\d.,]+/);if(!numericMatch)return originalText;const numericPart=numericMatch[0],formattedNum=formatNumberValue(numericPart,currency);return originalText.replace(new RegExp("\\b"+numericPart+"\\b"),formattedNum)}catch(error){return console.warn("Error in formatPriceText:",error),priceText}}function processPriceElement(element,forceReprocess=!1){try{if(!forceReprocess&&element.hasAttribute(config.processedAttribute))return;let hasChanges=!1;if(element.childElementCount===0){const originalText=element.textContent,formattedText=formatPriceText(originalText);originalText!==formattedText&&(element.textContent=formattedText,hasChanges=!0)}else Array.from(element.childNodes).filter(node=>node.nodeType===Node.TEXT_NODE&&node.textContent.trim()).forEach(node=>{const originalText=node.textContent,formattedText=formatPriceText(originalText);originalText!==formattedText&&(node.textContent=formattedText,hasChanges=!0)}),element.querySelectorAll(".money, [data-price]").forEach(nested=>{nested.hasAttribute(config.processedAttribute)||processPriceElement(nested,forceReprocess)});(hasChanges||forceReprocess)&&element.setAttribute(config.processedAttribute,"true")}catch(error){console.warn("Error processing price element:",error)}}function processPrices(forceReprocess=!1){if(!config.isProcessing)try{config.isProcessing=!0,document.querySelectorAll(config.selectors.join(",")).forEac
1h(el=>processPriceElement(el,forceReprocess))}catch(error){console.warn("Error in processPrices:",error)}finally{setTimeout(()=>{config.isProcessing=!1},10)}}const debouncedProcessPrices=debounce(processPrices,config.debounceDelay);function initialize(){if(processPrices(),typeof MutationObserver<"u")try{const observer=new MutationObserver(mutations=>{if(config.isProcessing)return;let shouldProcess=!1,hasNewNodes=!1;for(const mutation of mutations)if(!(mutation.type==="attributes"&&mutation.attributeName===config.processedAttribute)&&mutation.type==="childList"&&mutation.addedNodes.length){for(const node of mutation.addedNodes)if(node.nodeType===Node.ELEMENT_NODE&&config.selectors.some(selector=>node.matches&&node.matches(selector)||node.querySelector&&node.querySelector(selector))){shouldProcess=!0,hasNewNodes=!0;break}if(shouldProcess)break}shouldProcess&&(hasNewNodes?processPrices():debouncedProcessPrices())}),containers=[document.querySelector(".page-container"),document.querySelector("main"),document.querySelector("#shopify-section-header"),document.querySelector("#cart-drawer")].filter(Boolean);containers.length===0?observer.observe(document.body,{childList:!0,subtree:!0}):containers.forEach(container=>{observer.observe(container,{childList:!0,subtree:!0})})}catch(error){console.warn("Error setting up MutationObserver:",error)}}window.rdnlProcessPrices=function(forceReprocess){processPrices(forceReprocess===!0)},document.readyState==="loading"?document.addEventListener("DOMContentLoaded",initialize):initialize(),document.addEventListener("shopify:section:load",()=>{setTimeout(()=>{document.querySelectorAll(`[${config.processedAttribute}]`).forEach(el=>el.removeAttribute(config.processedAttribute)),processPrices()},10)}),document.addEventListener("shopify:section:select",()=>{setTimeout(()=>processPrices(),10)}),document.addEventListener("cart:refresh",()=>{setTimeout(()=>processPrices(),10)})})(); 2//# sourceMappingURL=/cdn/shop/t/33/assets/remove-decimals.js.map?v=156196077543663326621788953231
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.