PageSourceSearch

https://outcast-clothing.us/cdn/shop/t/224/assets/form-quick-add._…?v=41300491376362022471789966910

js outcast-clothing.us collected 2026-09-25 02:47:11 UTC 4,786 bytes, 1 lines download raw bytes

1import{Q as a,a as u,b as o}from"./quick-add-selector.Dt_CDQmt.min.js";import{G as d}from"./global-events.spCyEkW_.min.js";class E extends HTMLElement{constructor(){super(),this.productLinkedItemEls=null,this.variantOptionEls=null,this.loadingEl=null,this.drawer=null,this.variantInventoryStatusEl=null,this.buttonAtcEl=null,this.buttonNotifyMeEl=null,this.variantLabelEl=null,this.cart=null,this.abortController=null,this.isComingSoon=!1}connectedCallback(){var t,e;this.cart=CHROMA.cart||{},this.isComingSoon=this.dataset.comingSoon==="true",this.abortController=new AbortController,this.productLinkedItemEls=this.querySelectorAll(a.PRODUCT_LINKED_ITEM),this.variantOptionEls=this.querySelectorAll(a.VARIANT_OPTIONS),this.drawer=document.querySelector(a.MODAL_QUICK_ADD),this.loadingEl=this.querySelector(a.LOADING),this.variantInventoryStatusEl=this.querySelector(a.VARIANT_INVENTORY_STATUS_SELECTOR),this.buttonAtcEl=this.querySelector(a.BUTTON_ATC),this.buttonNotifyMeEl=this.querySelector(a.BUTTON_NOTIFY_ME),this.variantLabelEl=this.querySelector(a.VARIANT_LABEL),this.attachEventListeners(),(e=(t=window==null?void 0:window.BIS)==null?void 0:t.init)==null||e.call(t)}attachEventListeners(){var t,e,s,n;(t=this.productLinkedItemEls)==null||t.forEach(i=>{var r;i.addEventListener("click",this.getProductLinkedItem.bind(this),{signal:(r=this.abortController)==null?void 0:r.signal})}),(e=this.variantOptionEls)==null||e.forEach(i=>{var r;i.addEventListener("change",this.changeVariantOption.bind(this),{signal:(r=this.abortController)==null?void 0:r.signal})}),(n=this.buttonAtcEl)==null||n.addEventListener("click",()=>{var h;if(this.isComingSoon||!((h=this.variantOptionEls)!=null&&h.length))return;const i=Array.from(this.variantOptionEls).find(A=>A.checked);if((i==null?void 0:i.getAttribute(u.DATA_AVAILABLE))==="false")return;const c=Number(i==null?void 0:i.value);this.addToCart(c)},{signal:(s=this.abortController)==null?void 0:s.signal}),document.addEventListener(d.cart.update,this.updateStateCart)}disconnectedCallback(){var t;(t=this.abortController)==null||t.abort(),this.abortController=null,document.removeEventListener(d.cart.update,this.updateStateCart)}updateStateCart({detail:t}){this.cart=t.newCart}async getProductLinkedItem(t){const e=t.target.dataset.handle;if(this.loadingEl&&this.loadingEl.classList.remove(o.HIDDEN),!e){this.loadingEl&&this.loadingEl.classList.add(o.HIDDEN),console.warn("Product handle is not found.");return}const s=`${CHROMA.routes.root_url}products/${e}?section_id=form-quick-add`,n=await fetch(s,{method:"GET",headers:{"Content-Type":"text/html"}});if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);const i=await n.text(),c=new DOMParser().parseFromString(i,"text/html").querySelector(a.FORM_QUICK_ADD);this.drawer&&this.drawer.setContent((c==null?void 0:c.innerHTML)||"")}changeVariantOption(t){const e=t.target;if(!e)return;const s=e.getAttribute(a.DATA_INVENTORY_STATUS)??"",n=e.getAttribute(u.DATA_LABEL),i=e.value??"";this.variantInventoryStatusEl&&(s?(this.variantInventoryStatusEl.textContent=s,this.variantInventoryStatusEl.classList.remove(o.HIDDEN)):this.variantInventoryStatusEl.classList.add(o.HIDDEN)),this.variantLabelEl&&n&&(this.variantLabelEl.innerText=n);const l=e.getAttribute(u.DATA_AVAILABLE)!=="false";this.updateStateButtonForm(i,l)}updateStateButtonForm(t,e){var n,i;if(!this.buttonAtcEl||!this.buttonNotifyMeEl)return;if(this.isComingSoon){this.buttonAtcEl.classList.add(o.HIDDEN),this.buttonNotifyMeEl.classList.remove(o.HIDDEN),this.buttonNotifyMeEl.setAttribute(u.DATA_VARIANT_ID,t.toString());return}if(!e){this.buttonAtcEl.classList.add(o.HIDDEN),this.buttonNotifyMeEl.classList.remove(o.HIDDEN),this.buttonNotifyMeEl.setAttribute(u.DATA_VARIANT_ID,t.toString());return}this.buttonNotifyMeEl.classList.add(o.HIDDEN),this.buttonNotifyMeEl.removeAttribute(u.DATA_VARIANT_ID),this.buttonAtcEl.classList.remove(o.HIDDEN),this.buttonAtcEl.disabled=!1,this.buttonAtcEl.innerText="Add to cart";const s=(i=(n=this.cart)==null?void 0:n.items)==null?void 0:i.find(r=>r.variant_id===Number(t));if(s&&s.inventory_quantity<=s.quantity&&s.inventory_management!==""&&s.inventory_policy==="deny"){this.buttonAtcEl.disabled=!0,this.buttonAtcEl.innerText="Sold Out";return}}async addToCart(t){var s,n,i,r;if(!t||this.isComingSoon)return;const e={id:t,quantity:1,properties:{}};(s=this.buttonAtcEl)==null||s.classList.add(o.BUTTON_LOADING_CLASS);try{const l=await window.cartService.addToCart(e);this.cart=l.newCart,this.updateStateButtonForm(t,!0),(n=this.buttonAtcEl)==null||n.classList.remove(o.BUTTON_LOADING_CLASS)}catch{(i=this.buttonAtcEl)==null||i.classList.remove(o.BUTTON_LOADING_CLASS)}(r=this.drawer)==null||r.close()}}
1customElements.get("form-quick-add")||customElements.define("form-quick-add",E);

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.