PageSourceSearch

https://asweetthyme.com/wp-content/plugins/wp-recipe-maker-premium…/public-feature-product-icon.d9b0e0c7.js

js asweetthyme.com collected 2026-10-04 02:45:46 UTC 7,456 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkWPRecipeMakerPublicSplit=self.webpackChunkWPRecipeMakerPublicSplit||[]).push([[868],{3035:(t,e,a)=>{a.d(e,{A:()=>r});const r={notifyAddedToCart(t={}){const e=!(!t||!t.fragments)&&t.fragments,a=e&&0<Object.keys(e).length,r=t&&t.cart_hash?t.cart_hash:"";document.dispatchEvent(new CustomEvent("wprm_products_added_to_cart",{detail:{fragments:!!a&&e,cart_hash:r,response:t}})),window.jQuery&&(a?window.jQuery(document.body).trigger("added_to_cart",[e,r,!1]):window.jQuery(document.body).trigger("wc_fragment_refresh"))}}},8500:(t,e,a)=>{a.r(e),a.d(e,{default:()=>c});var r=a(4181),o=a(942),n=a(3035);const i={cartCache:null,cartCacheTime:null,cartCacheTimeout:3e4,init(){this.addTooltips()},addTooltips(){const t=document.querySelectorAll(".wprm-recipe-product-icon-container");for(let e of t){e._tippy&&e._tippy.destroy();const t=this.createTooltipContent(e);(0,r.Ay)(e,{content:t,allowHTML:!0,interactive:!0,trigger:"mouseenter focus",theme:"wprm-products",placement:"right",arrow:!0,onShow(t){i.cleanupEventListeners(t.popper),i.checkServingSizeChanges(t.popper,e),i.initQuantityControls(t.popper),i.loadCartSummary(t.popper)},onHide(t){i.cleanupEventListeners(t.popper)}})}},createTooltipContent(t){const e=t.dataset.productId,a=t.dataset.productName,r=t.dataset.productPrice,n=t.dataset.productImage,i=t.dataset.productUrl,c=this.getRoundedQuantity(t.dataset.productAmount),d=t.dataset.variationId,s=t.dataset.variationName;let p='<div class="wprmp-product-tooltip">';return n&&(p+=`<div class="wprmp-product-tooltip-image"><img src="${n}" alt="${a}" /></div>`),p+='<div class="wprmp-product-tooltip-content">',p+=i?`<div class="wprmp-product-tooltip-name"><a href="${i}" target="_blank">${a} <span class="wprmp-external-link-icon">↗</span></a></div>`:`<div class="wprmp-product-tooltip-name">${a}</div>`,s&&(p+=`<div class="wprmp-product-tooltip-variation">${s}</div>`),r&&(p+=`<div class="wprmp-product-tooltip-price">${r}</div>`),p+='<div class="wprmp-product-tooltip-quantity-cart">',p+=`<input type="number" class="wprmp-quantity-input" value="${c}" min="1" />`,p+=`<button type="button" class="wprmp-add-to-cart-btn" data-product-id="${e}" data-variation-id="${d||""}">${(0,o.f)("Add to Cart")}</button>`,p+="</div>",p+='<div class="wprmp-product-tooltip-cart-summary">',p+=`<span class="wprmp-cart-count">${(0,o.f)("Loading cart...")}</span>`,p+="</div>",p+="</div>",p+="</div>",p},getRoundedQuantity(t){const e=parseFloat(t);return Number.isNaN(e)?1:Math.max(1,Math.ceil(e))},initQuantityControls(t){const e=t.querySelector(".wprmp-quantity-input"),a=t.querySelector(".wprmp-add-to-cart-btn");if(a){const r=r=>{r.preventDefault();const o=t._tippy.reference;this.handleAddToCart(a,e,o)};a._addToCartHandler=r,a.addEventListener("click",r)}},cleanupEventListeners(t){const e=t.querySelector(".wprmp-add-to-cart-btn");e&&e._addToCartHandler&&(e.removeEventListener("click",e._addToCartHandler),delete e._addToCartHandler)},checkServingSizeChanges(t,e){if("equipment"===e.dataset.productType)return;const a=this.getRecipeIdFromElem(e);a&&window.WPRecipeMaker&&window.WPRecipeMaker.manager&&window.WPRecipeMaker.manager.getRecipe(a).then((a=>{if(a&&a.data){const r=a.data.currentServingsParsed,o=a.data.originalServingsParsed;if(r&&o&&r!==o){const a=r/o,n=parseFloat(e.dataset.productAmount);if(n&&1!==a){const e=this.getRoundedQuantity(n*a),r=t.querySelector(".wprmp-quantity-input");r&&(r.value=e)}}}}))},getRecipeIdFromElem(t){let e=t.dataset.recipe;if(!e)for(let a=t.parentNode;a&&a!=document;a=a.parentNode)if(a.matches(".wprm-recipe-container")){e=a.dataset.recipeId;break}return e},loadCartSummary(t){const e=t.querySelector(".wprmp-cart-count");e&&(this.cartCache&&this.cartCacheTime&&Date.now()-this.cartCacheTime<this.cartCacheTimeout?this.displayCartSummary(e,this.cartCache):(e.textContent=(0,o.f)("Loading cart..."),this.getCartData().then((t=>{this.cartCache=t,this.cartCacheTime=Date.now(),this.displayCartSummary(e,t)})).catch((t=>{console.error("Failed to load cart data:",t),e.textContent=(0,o.f)("Unable to load cart")}))))},displayCartSummary(t,e){if(e&&e.item_count>0){const a=e.total?` - ${e.total}`:"",r=(0,o.f)("your cart"),n=e.cart_url||"#",i="#"!==n?(0,o.f)("%d in %s").replace("%d",e.item_count).replace("%s",`<a href="${n}" class="wprmp-cart-link">${r}</a>`):(0,o.f)("%d in %s").replace("%d",e.item_count).replace("%s",r);t.innerHTML=i+a}else t.textContent=(0,o.f)("Cart is empty")},invalidateCartCache(){this.cartCache=null,this.cartCacheTime=null},refreshAllCartSummaries(){document.querySelectorAll(".wprmp-product-tooltip-cart-summary .wprmp-cart-count").forEach((t=>{this.loadCartSummary(t.closest(".wprmp-product-tooltip"))}))},getCartData:()=>new Promise(((t,e)=>{const a=new FormData;a.append("action","wprmp_get_cart_data"),"undefined"!=typeof wprm_public&&wprm_public.api_nonce&&a.append("_wpnonce",wprm_public.api_nonce),fetch(wprm_public.ajax_url,{method:"POST",body:a,credentials:"same-origin"}).then((t=>{if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);return t.text()})).then((a=>{try{const r=JSON.parse(a);r.success?t(r.data):e(new Error(r.data.message||"Failed to get cart data"))}catch(r){console.error("JSON parse error:",r),console.error("Response text:",a),e(new Error("Invalid JSON response"))}})).catch((e=>{console.error("Cart data fetch error:",e),t({item_count:0,total:"",cart_url:"#"})}))})),handleAddToCart(t,e,a){const r=t.dataset.productId,i=t.dataset.variationId,c=e.value,d=!!a&&this.getRecipeIdFromElem(a),s=t.textContent;t.style.minWidth=t.offsetWidth+"px",t.textContent=(0,o.f)("Adding..."),t.disabled=!0;const p=new FormData;p.append("action","wprmp_add_product_to_cart"),p.append("product_id",r),p.append("quantity",c),i&&p.append("variation_id",i),"undefined"!=typeof wprm_public&&wprm_public.api_nonce&&p.append("_wpnonce",wprm_public.api_nonce),fetch(wprm_public.ajax_url,{method:"POST",body:p,credentials:"same-origin"}).then((t=>t.json())).then((e=>{e.success?(this.trackSuccessfulAddToCart(a,d,{productId:r,variationId:i,quantity:c}),t.textContent=(0,o.f)("Added!"),t.classList.add("wprmp-success"),this.showSuccessIcon(t,a),this.invalidateCartCache(),this.refreshAllCartSummaries(),n.A.notifyAddedToCart(e.data),setTimeout((()=>{t.textContent=s,t.disabled=!1,t.classList.remove("wprmp-success")}),2e3)):(alert(e.data.message||"Failed to add product to cart"),t.textContent=s,t.disabled=!1)})).catch((e=>{console.error("Add to cart error:",e),alert((0,o.f)("Something went wrong. Please try again.")),t.textContent=s,t.disabled=!1}))},trackSuccessfulAddToCart(t,e,a){t&&e&&window.WPRecipeMaker&&window.WPRecipeMaker.analytics&&window.WPRecipeMaker.analytics.registerAction(e,wprm_public.post_id,"product-add-to-cart",{product_id:a.productId,variation_id:a.variationId||"",product_name:t.dataset.productName||"unknown",item_type:t.dataset.productType||"unknown",item_name:t.dataset.itemName||"unknown",quantity:parseInt(a.quantity,10)||1})},showSuccessIcon(t,e){if(e){const t=e.innerHTML;
1e.innerHTML='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20,6 9,17 4,12"></polyline></svg>',e.classList.add("wprmp-success-icon"),setTimeout((()=>{e.innerHTML=t,e.classList.remove("wprmp-success-icon")}),2e3)}}};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",(()=>i.init())):i.init();const c=i}}]);

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.