PageSourceSearch

https://junglueck.de/cdn/shop/t/676/assets/atc-success-modal.js?v=93063936418051050251787208573

js junglueck.de collected 2026-10-02 07:19:28 UTC 4,545 bytes, 6 lines download raw bytes

1class AtcSuccessModal extends Popup{constructor(){super()}static getInstance(){return document.getElementById("atc-success-modal")}static matches(detail){const modal=AtcSuccessModal.getInstance();return!modal||!detail||detail.add_type!=="single"||typeof detail.product_id>"u"?!1:Number(modal.dataset.productId)===Number(detail.product_id)}connectedCallback(){super.connectedCallback(),this._onCartAdd=this.handleCartAdd.bind(this),window.addEventListener("cart:add",this._onCartAdd),this.querySelector("[data-atc-view-cart]")?.addEventListener("click",e=>{e.preventDefault(),this.close(),document.getElementById("cart-drawer")?.open()}),this.querySelectorAll("[data-atc-set-add]").forEach(btn=>{btn.addEventListener("click",e=>{e.preventDefault(),this.addSet(btn)})})}handleCartAdd(e){if(!AtcSuccessModal.matches(e.detail))return;this.originalLineItemKey=e.detail.key;const addedQuantity=Number(e.detail.added_count)||1,totalQuantity=Number(e.detail.quantity)||addedQuantity;this.originalLineItemRemainingQuantity=Math.max(0,totalQuantity-addedQuantity),this.populateAdded(e.detail),this.resetSwapState(),this.open()}populateAdded(detail){const moneyFormat=this.dataset.moneyFormat,img=this.querySelector("[data-atc-added-image] img");img&&detail.image&&(img.src=detail.image);const titleEl=this.querySelector("[data-atc-added-title]");titleEl&&(titleEl.textContent=detail.product_title);const variantEl=this.querySelector("[data-atc-added-variant]");if(variantEl){const hasOnlyDefaultVariant=detail.product_has_only_default_variant;variantEl.textContent=hasOnlyDefaultVariant?"":detail.variant_title,variantEl.hidden=!!hasOnlyDefaultVariant}const priceEl=this.querySelector("[data-atc-added-price]");if(priceEl){const linePrice=detail.final_line_price??detail.line_price;priceEl.textContent=Shopify.theme.tools.formatMoney(linePrice,moneyFormat)}}resetSwapState(){const grid=this.querySelector("[data-atc-sets-grid]");grid&&(grid.hidden=!1),this.querySelectorAll("[data-atc-set-error]").forEach(el=>{el.hidden=!0}),this.querySelectorAll("[data-atc-set-add]").forEach(btn=>{btn.disabled=!1})}addSet(button){const card=button.closest("[data-atc-set-card]"),variantId=Number(button.dataset.variantId);!variantId||button.disabled||(button.disabled=!0,card?.classList.add("loading"),this.hideCardError(card),fetch(window.Shopify.routes.root+"cart/add.js",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({items:[{id:variantId,quantity:1}]})}).then(res=>res.json()).then(response=>{if(response.status){const error_string=`
2CART ADD FAILED 
3Status: ${response.status} 
4Message: ${response.message} 
5Description: ${response.description}`;throw new Error(error_string,{cause:"Cart Error"})}return this.removeOriginalLine(card)}).catch(err=>{console.error("[atc-success-modal]",err),this.showCardError(card)}).finally(()=>{button.disabled=!1,card?.classList.remove("loading")}))}removeOriginalLine(card){return new Promise(resolve=>{if(!this.originalLineItemKey){resolve();return}const remainingQuantity=this.originalLineItemRemainingQuantity??0;Shopify.theme.cart.updateCart({updates:{[this.originalLineItemKey]:remainingQuantity}},!0,cart=>{this.refreshCartForms(cart),this.showSwapped(card),resolve()})})}refreshCartForms(cart){document.querySelectorAll("cart-form").forEach(form=>{const sectionId=form.section;cart?.sections?.[sectionId]&&form.updateView(cart.sections[sectionId])})}showSwapped(card){const image=card?.querySelector("[data-set-card-image] img"),title=card?.querySelector("[data-set-card-title]")?.textContent,price=card?.querySelector("[data-set-card-price]")?.textContent,targetImg=this.querySelector("[data-atc-added-image] img");targetImg&&image&&(targetImg.src=image.currentSrc||image.src);const titleEl=this.querySelector("[data-atc-added-title]");title&&titleEl&&(titleEl.textContent=title.trim());const variantEl=this.querySelector("[data-atc-added-variant]");variantEl&&(variantEl.hidden=!0);const priceEl=this.querySelector("[data-atc-added-price]");price&&priceEl&&(priceEl.textContent=price.trim());
5const grid=this.querySelector("[data-atc-sets-grid]");grid&&(grid.hidden=!0)}showCardError(card){const error=card?.querySelector("[data-atc-set-error]");error&&(error.hidden=!1)}hideCardError(card){const error=card?.querySelector("[data-atc-set-error]");error&&(error.hidden=!0)}}customElements.define("atc-success-modal",AtcSuccessModal);
6//# sourceMappingURL=/cdn/shop/t/676/assets/atc-success-modal.js.map?v=93063936418051050251787208573

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.