https://www.originalgrain.com/cdn/shop/t/893/assets/engraving--jac…?v=121495352130697717341790870197
1class EngravingJackDanielsPromotion extends HTMLElement{constructor(){super(),this.cart=document.querySelector("cart-drawer"),this.targetSections={sections:this.cart.getSectionsToRender().map(section=>section.id),sections_url:window.location.pathname},this.engravingProps={_Size:"tenpt",_Font:"ffranklin",_Language:"English",_Engraving_Type:"caseback"},this.addToCartDefaultText="ADD TO CART",this.addToCartLoadingText="ADDING TO CART"}connectedCallback(){this.loadSectionElements(),this.loadSectionElementsEventListeners()}disconnectedCallback(){this.disconnectSectionElementsEventListeners()}toggleModalVisibility(){const currentState=this.modal.dataset.showEngravingJackDanielsPromotionModal;this.modal.dataset.showEngravingJackDanielsPromotionModal=currentState==="false"}showEmptyError(flag){this.emptyErrorMessage.dataset.showEmptyError=flag}addToCartEventHandler(){if(this.checkInputValue()){const mainATC=document.querySelector(".product-form__submit");mainATC&&mainATC.click(),this.toggleModalVisibility();return}const id=this.addToCartBtn.dataset.variantId,inputValue=this.input.value,productObject={id,quantity:1,properties:{...this.engravingProps,Line1:inputValue}},engravingObject={id:EngravingJackDanielsPromotionCurrentCaseBack.variantId,quantity:1,properties:{_isEngravingService:!0,_relatedProductKey:""}};this.addProductAndEngravingToTheCart(productObject,engravingObject)}async addProductAndEngravingToTheCart(productObject,engravingObject){this.setLoadingState(!0);let parsedResponse={},cartDataResponse={};debugger;try{const productData={...this.targetSections,items:[{...productObject}]},productResponse=await this.addToCart(productData);if(engravingObject){const productKey=productResponse.items[0].key;engravingObject.properties._relatedProductKey=productKey;const engravingData={...this.targetSections,items:[{...engravingObject}]},engravingDataResponse=await this.addToCart(engravingData);parsedResponse={id:engravingDataResponse.items.map(item=>item.id),sections:engravingDataResponse.sections},cartDataResponse=parsedResponse}else parsedResponse={id:productResponse.items.map(item=>item.id),sections:productResponse.sections},cartDataResponse=productResponse;publish(PUB_SUB_EVENTS.cartUpdate,{source:"jack-daniels-promo-caseback",productVariantId:parsedResponse.id,cartData:cartDataResponse}),this.cart.renderContents(parsedResponse),this.cart.classList.remove("is-empty")}catch(error){console.error(`Engraving Jack Daniels Promotion | addProductAndEngravingToTheCart | ${error.message}`)}finally{this.setLoadingState(!1),this.toggleModalVisibility(),this.resetInputValue()}}async addToCart(data){try{return await(await fetch(window.Shopify.routes.root+"cart/add.js",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(data)})).json()}catch(error){throw new Error(`An error occurred during the POST request: ${error.message}`)}}setLoadingState(flag){this.addToCartBtn.innerHTML=flag?this.addToCartLoadingText:this.addToCartDefaultText,this.addToCartBtn.disabled=flag,this.loadingSpinner.classList[flag?"remove":"add"]("hidden")}checkInputValue(){return this.input.value.trim()===""}resetInputValue(){this.input.value=""}loadSectionElements(){this.section=this,this.defaultEngravingBtn=document.querySelector("[data-engraving-component-trigger]"),this.openEngravingModalBtn=document.querySelector("#engraving-jack-daniels-promotion--open-modal"),this.closeEngravingModalBtn=this.section.querySelector("#jack-daniels-promotion-modal--close-modal"),this.modal=this.section.querySelector("#engraving-jack-daniels-promotion--modal"),this.input=this.section.querySelector('input[type="text"]'),this.emptyErrorMessage=this.section.querySelector("#modal-empty-error"),this.addToCartBtn=this.section.querySelector("#jack-daniels-promotion-modal--add-engraving"),this.loadingSpinner=this.querySelector(".loading-overlay")}loadSectionElementsEventListeners(){this.input.addEventListener("input",()=>{this.showEmptyError(!1)}),this.openEngravingModalBtn.addEventListener("click",this.toggleModalVisibility.bind(this)),this.closeEngravingModalBtn.addEventListener("click",this.toggleModalVisibility.bind(this)),this.addToCartBtn.addEventListener("click",this.addToCartEventHandler.bind(this))}disconnectSectionElementsEventListeners(){this.input.removeEventListener("input",()=>{this.showEmptyError(!1)}),this.openEngravingModalBtn.removeEventListener("click",this.toggleModalVisibility.bind(this)),this.closeEngravingModalBtn.removeEventListener("click",this.toggleModalVisibility.bind(this)),this.addToCartBtn.removeEventListener("click",this.addToCartEventHandler.bind(this))}}customElements.define("engraving-jack-daniels-promotion",EngravingJackDanielsPromotion); 2//# sourceMappingURL=/cdn/shop/t/893/assets/engraving--jack-daniels-promotion.js.map?v=121495352130697717341790870197
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.