PageSourceSearch

https://evergreenvinyl.com/cdn/shop/t/4/assets/product-form.js?v=32817526062508792711787933111

js evergreenvinyl.com collected 2026-09-29 21:41:54 UTC 13,739 bytes, 2 lines download raw bytes

1customElements.get("product-form")||customElements.define("product-form",class extends HTMLElement{constructor(){super(),this.form=this.querySelector("form"),this.form.querySelector("[name=id]").disabled=!1,this.form.addEventListener("submit",this.onSubmitHandler.bind(this)),this.minicart=document.querySelector("mini-cart"),this.quickViewDrawer=this.closest("quick-view-drawer"),this.eventContext=this.form.dataset.eventContext,this.hideErrors=this.dataset.hideErrors==="true"}onSubmitHandler(event){event.preventDefault();const submitButton=this.querySelector('[type="submit"]');if(submitButton.classList.contains("loading"))return;this.handleErrorMessage(),submitButton.setAttribute("aria-disabled",!0),submitButton.classList.add("loading"),this.querySelector(".button-overlay-spinner").classList.remove("hidden");const config=fetchConfig("javascript");config.headers["X-Requested-With"]="XMLHttpRequest",delete config.headers["Content-Type"];const formData=new FormData(this.form);formData.append("sections",this.minicart.getSectionsToRender().map(section=>section.section)),formData.append("sections_url",window.location.pathname),config.body=formData,fetch(`${routes.cart_add_url}`,config).then(response=>response.json()).then(response=>{if(response.status){publish(PUB_SUB_EVENTS.cartError,{source:"product-form",productVariantId:formData.get("id"),errors:response.errors||response.description,message:response.message}),this.handleErrorMessage(response.description),this.minicart.updateSectionContents();return}this.minicart.renderContents(response),window.themeSettings.redirectToCart?location.href=window.routes.cart_url:this.quickViewDrawer?(this.quickViewDrawer.close(),document.body.classList.add("drawer-open"),setTimeout(()=>this.minicart.open(),200)):this.minicart.open(submitButton),publish(PUB_SUB_EVENTS.cartItemAdd,{source:this.eventContext,items:[response]})}).catch(e=>{console.error(e)}).finally(()=>{submitButton.classList.remove("loading"),submitButton.removeAttribute("aria-disabled"),this.querySelector(".button-overlay-spinner").classList.add("hidden")})}handleErrorMessage(errorMessage=!1){this.hideErrors||(this.errorMessageWrapper=this.errorMessageWrapper||this.querySelector(".product-form-error-message-wrapper"),this.errorMessage=this.errorMessage||this.errorMessageWrapper.querySelector(".product-form-error-message"),this.errorMessageWrapper.toggleAttribute("hidden",!errorMessage),errorMessage&&(this.errorMessage.textContent=errorMessage))}}),(()=>{const ALL_VARIANTS_CONTAINER_SELECTOR="[data-all-variants-container]",toCleanString=value=>typeof value=="string"?value.trim():value==null?"":String(value).trim(),findVariantPickerContainer=container=>{let sibling=container.nextElementSibling;for(;sibling;){if(sibling.classList&&sibling.classList.contains("product-variants"))return sibling;sibling=sibling.nextElementSibling}return container.parentElement?.querySelector(".product-variants")??null},hideOriginalPickers=pickerContainer=>{pickerContainer&&(pickerContainer.classList.add("hidden"),pickerContainer.setAttribute("aria-hidden","true"))},componentCurrentVariantId=variantElement=>!variantElement||!variantElement.currentVariant?null:variantElement.currentVariant.id??null,updateVariantChips=(sectionId,record)=>{const mediaChip=document.querySelector(`[data-media-condition-chip][data-section-id="${sectionId}"]`),sleeveChip=document.querySelector(`[data-sleeve-condition-chip][data-section-id="${sectionId}"]`),mediaValue=record&&record.mediaCondition||"\u2014",sleeveValue=record&&record.sleeveCondition||"\u2014";if(mediaChip){const valueNode=mediaChip.querySelector(".product-variant-chip-value");valueNode&&(valueNode.textContent=mediaValue),mediaChip.hidden=!1}if(sleeveChip){const valueNode=sleeveChip.querySelector(".product-variant-chip-value");valueNode&&(valueNode.textContent=sleeveValue),sleeveChip.hidden=!1}},updateHiddenVariantInput=(hiddenInput,record)=>{hiddenInput&&(record?(hiddenInput.value=record.idString,hiddenInput.disabled=!1):(hiddenInput.value="",hiddenInput.disabled=!0))},getInitialVariantId=(variantMap,sectionId,hiddenInput)=>
1{const urlVariantId=new URLSearchParams(window.location.search).get("variant");if(urlVariantId&&variantMap.has(urlVariantId))return urlVariantId;const formVariantId=hiddenInput?.value?String(hiddenInput.value):null;if(formVariantId&&variantMap.has(formVariantId))return formVariantId;const selectedVariantId=document.getElementById(`ProductPage-${sectionId}`)?.querySelector("[data-variant-id]")?.dataset.variantId;return selectedVariantId&&variantMap.has(selectedVariantId)?selectedVariantId:null},initializeContainer=container=>{if(!container||container.dataset.allVariantsInitialized==="true")return;const sectionId=container.dataset.sectionId,selectElement=container.querySelector("[data-all-variants-select]");if(!sectionId||!selectElement){container.hidden=!0,container.dataset.allVariantsInitialized="true";return}const script=document.querySelector(`script[data-all-variants-extended][data-section-id="${sectionId}"]`);if(!script){container.hidden=!0,container.dataset.allVariantsInitialized="true";return}let extendedData;try{extendedData=JSON.parse(script.textContent)}catch(error){console.error("[All variants dropdown] Failed to parse extended variant data.",error),container.hidden=!0,container.dataset.allVariantsInitialized="true";return}const rawVariants=Array.isArray(extendedData?.variants)?extendedData.variants:[],variantMap=new Map,inStockVariants=[],allVariants=[],variantPickerContainer=findVariantPickerContainer(container),variantElement=variantPickerContainer?.querySelector("variant-selects, variant-radios")??null,outOfStockVariantsSetting=container.dataset.outOfStockVariants||(variantElement?.dataset?.variantsVisibility??"show");
1rawVariants.forEach(variant=>{if(!variant)return;const format=toCleanString(variant.format),providedLabel=toCleanString(variant.label);if(!format&&!providedLabel){console.warn(`[All variants dropdown] Missing evp.format metafield for variant ${variant.id}.`);return}const isOutOfStock=!variant.available,pressing=toCleanString(variant.pressing),mediaCondition=toCleanString(variant.mediaCondition),sleeveCondition=toCleanString(variant.sleeveCondition),record={id:variant.id,idString:String(variant.id),available:!!variant.available,inventoryManagement:variant.inventory_management,inventoryQuantity:Number(variant.inventory_quantity??0),variantData:variant.variant_data||null,format,formatUpper:format.toUpperCase(),pressing,mediaCondition,sleeveCondition,options:Array.isArray(variant.options)?variant.options:[],isOutOfStock};record.label=providedLabel||`${record.formatUpper} / ${record.pressing||"\u2014"} / ${record.mediaCondition||"\u2014"} / ${record.sleeveCondition||"\u2014"}`,variantMap.set(record.idString,record),allVariants.push(record),isOutOfStock||inStockVariants.push(record)});const productForm=document.getElementById(`product-form-${sectionId}`),hiddenInput=productForm?.querySelector('[name="id"]')??null,addToCartButton=productForm?.querySelector('[name="add"]')??null,soldOutLabel=container.dataset.soldOutLabel||"Sold out",soldOutLabelPrefix=`[${String(soldOutLabel).toUpperCase()}]`;let originalPickersHidden=!1;const applyVariantSelection=(record,{updateSelect=!1,skipFetch=!1}={})=>{if(updateSelect&&record&&selectElement.value!==record.idString&&(selectElement.value=record.idString),!record){updateVariantChips(sectionId,null),updateHiddenVariantInput(hiddenInput,null),addToCartButton&&(addToCartButton.disabled=!0,addToCartButton.setAttribute("aria-disabled","true"),addToCartButton.closest(".product-actions-add-to-cart")?.classList.add("product-actions-add-to-cart-disabled")),originalPickersHidden||(hideOriginalPickers(variantPickerContainer),originalPickersHidden=!0);return}updateVariantChips(sectionId,record),updateHiddenVariantInput(hiddenInput,record);let shouldFetch=!skipFetch;if(shouldFetch&&variantElement&&record.variantData&&componentCurrentVariantId(variantElement)===record.variantData.id&&(shouldFetch=!1),shouldFetch){if(variantElement&&record.variantData){const component=variantElement;component.currentVariant=record.variantData,component.hideVariants=component.dataset.hideVariants==="true",component.updateVariantInput(),component.updateMedia(),component.toggleAddButton(!0);const targetUrl=component.dataset.url||window.location.pathname,shouldFetchFullPage=component.dataset.updateUrl==="true",productUrl=component.getProductInfoUrl(targetUrl,record.variantData.id,shouldFetchFullPage);component.updateURL(targetUrl),component.updateShareUrl(targetUrl),component.renderProductInfo(productUrl,selectElement.id,component.handleUpdateProductInfo(component.sectionId).bind(component))}else if(variantElement&&!record.variantData)console.warn(`[All variants dropdown] Missing full variant data for ${record.idString}.`);else if(addToCartButton){const addToCartWrapper=addToCartButton.closest(".product-actions-add-to-cart");addToCartButton.disabled=!record.available,addToCartButton.toggleAttribute("aria-disabled",!record.available),addToCartWrapper?.classList.toggle("product-actions-add-to-cart-disabled",!record.available)}}originalPickersHidden||(hideOriginalPickers(variantPickerContainer),originalPickersHidden=!0)};selectElement.innerHTML="";const baseVariantsToShow=outOfStockVariantsSetting==="hide"?inStockVariants:allVariants,variantsToShow=outOfStockVariantsSetting==="hide"?baseVariantsToShow:[...baseVariantsToShow.filter(variant=>!variant.isOutOfStock),...baseVariantsToShow.filter(variant=>variant.isOutOfStock)];if(!variantsToShow.length){const soldOutOption=document.createElement("option");if(soldOutOption.value="",soldOutOption.textContent=soldOutLabel,soldOutOption.disabled=!0,soldOutOption.selected=!0,selectElement.appendChild(soldOutOption),selectElement.disabled=!0,applyVariantSelection(null,{skipFetch:!0}),addToCartButton){const addToCartWrapper=addToCartButton.closest(".product-actions-add-to-cart");addToCartButton.disabled=!0,addToCartButton.setAttribute("aria-disabled","true"),addToCartWrapper?.classList.add("product-actions-add-to-cart-disabled")}hideOriginalPickers(variantPickerContainer),container.hidden=!1,container.dataset.allVariantsInitialized="true";return}variantsToShow.forEach(record=>{const option=document.createElement("option");option.value=record.idString,record.isOutOfStock?option.textContent=`${soldOutLabelPrefix} ${record.label}`:option.textContent=record.label,record.isOutOfStock&&outOfStockVariantsSetting==="disable"&&(option.disabled=!0),selectElement.appendChild(option)}),selectElement.disabled=!1;let initialVariantId=getInitialVariantId(variantMap,sectionId,hiddenInput),initialRecord=initialVariantId?variantMap.get(initialVariantId):null;const isRendered=initialRecord&&variantsToShow.some(variant=>variant.idString===initialRecord.idString),shouldAvoidOutOfStock=initialRecord&&initialRecord.isOutOfStock&&outOfStockVariantsSetting==="hide";(!isRendered||shouldAvoidOutOfStock)&&(initialRecord=inStockVariants[0]||(outOfStockVariantsSetting==="show"||outOfStockVariantsSetting==="disable"?variantsToShow[0]:null)||null,initialVariantId=initialRecord?.idString||null),initialRecord?selectElement.value=initialRecord.idString:selectElement.value="",applyVariantSelection(initialRecord),container.hidden=!1,selectElement.addEventListener("change",event=>{const variantId=event.target.value,record=variantMap.get(variantId);if(!record){applyVariantSelection(null);return}if(record.isOutOfStock&&outOfStockVariantsSetting==="hide"){const fallback=inStockVariants[0]||(outOfStockVariantsSetting==="show"||outOfStockVariantsSetting==="disable"?variantsToShow[0]:null);fallback?(selectElement.value=fallback.idString,applyVariantSelection(fallback)):(selectElement.value="",applyVariantSelection(null));return}applyVariantSelection(record)});let unsubscribeVariantChange=null;typeof subscribe=="function"&&typeof PUB_SUB_EVENTS=="object"&&PUB_SUB_EVENTS.productVariantChange&&(unsubscribeVariantChange=subscribe(PUB_SUB_EVENTS.productVariantChange,payload=>{if(!document.contains(container)){unsubscribeVariantChange?.();return}if(!payload||payload.sectionId!==sectionId)return;const variantId=payload.variant?.id;if(!variantId){applyVariantSelection(null,{skipFetch:!0});return}const key=String(variantId),record=variantMap.get(key);if(!record){applyVariantSelection(null,{skipFetch:!0});return}if(record.isOutOfStock&&outOfStockVariantsSetting==="hide"){const fallback=inStockVariants[0]||(outOfStockVariantsSetting==="show"||outOfStockVariantsSetting==="disable"?variantsToShow[0]:null);fallback?applyVariantSelection(fallback,{updateSelect:!0,skipFetch:!0}):(selectElement.value="",applyVariantSelection(null,{skipFetch:!0}));return}applyVariantSelection(record,{updateSelect:!0,skipFetch:!0})})),container.dataset.allVariantsInitialized="true"},initializeAllContainers=(sectionId=null)=>{const selector=sectionId?`${ALL_VARIANTS_CONTAINER_SELECTOR}[data-section-id="${sectionId}"]`:ALL_VARIANTS_CONTAINER_SELECTOR;document.querySelectorAll(selector).forEach(container=>{initializeContainer(container)})},onReady=()=>{initializeAllContainers()};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",onReady):onReady(),document.addEventListener("shopify:section:load",event=>{const sectionId=event?.detail?.sectionId;sectionId&&initializeAllContainers(sectionId)}),typeof subscribe=="function"&&typeof PUB_SUB_EVENTS=="object"&&PUB_SUB_EVENTS.sectionRefreshed&&subscribe(PUB_SUB_EVENTS.sectionRefreshed,event=>{const sectionId=event?.data?.sectionId;sectionId&&requestAnimationFrame(()=>{initializeAllContainers(sectionId)})})})();
2//# sourceMappingURL=/cdn/shop/t/4/assets/product-form.js.map?v=32817526062508792711787933111

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.