https://savilerowco.com/cdn/shop/t/377/assets/component-ProductAdd…?v=152776748393679674661790073393
1// !!!! - DO NOT MODIFY - !!!! 2// THIS FILE IS DEPLOYED AUTOMATICALLY BY MATTv2. 3// 4// Deployment info: 5// Updated at: 2024-10-24T12:27:29+00:00 6// Cause: Manual deployment. 7// Deployment ID: 184610 8// Project: 557 9// Environment: 5377 - master 10// MD5: 059839f8d62b4cf7db4ea0216bcce3df 11// Signature: eyJpdiI6ImR6Rkh4VlJUb0tiYWUxNFBwS3RWaHc9PSIsInZhbHVlIjoib1Q2b3N3djc0N2FhOGNtNzEzRkFEQ0ZmbTZLQlBjMGNYNkJmK01VblRPTENrTjdZTVBrKzI2NDdKUE5nTzd6OExrTWFXSlBFXC9rMkFuNTljN0dSV21rNDRWYUNDNE1CdzVYVzBhYmpZdHZpRUN2UXMwem1QYTBKRVlwaksraHE5aFJOeFozck1yOTA3OEtnamdncGY3SEVBTEdhUVwvdnhOZVpRdHBzbU84dFdZQUJJeVV1SytyZWl4eDJXdWdFbjdYVTRaXC9ZY29PdjAwUHc4UjZ1cUVLakZzMzV0ZmZTWmlrYkVRNk5ZZmgwV3BuTUlaUXVST281VVlXQnBua0tMQURWdXFiY2pNdHVjTjFpNngzTE1qNjROc2NRcVhHcUVqOFdOZ0ZqeFRoanI5Q3FlSzYzQmg5a21mS1NUMWJJelcxdVBZZjVSN1hERFMxK0V1Z3BDVkd0ZTdyeE9yV25wVFVIN0p5bXgxd1hTMnZhRVBNaFdaSWJmbWVEck1URW5ybENnZldVYXhYODhqMzBRQ1FROENtVW5DS3lSbDR3WXdPakpxSk0zcGR0Yz0iLCJtYWMiOiIxNWVlMjE2OTdhMjQ0YzBiNWE3MzE5NmM0ZWNhNGM4ZDM1MTM5ODY5OTYwNjQ4ZDZhZDc1MGM0ZGViMTA2OWU1In0= 12var u=Object.defineProperty;var i=(o,t)=>u(o,"name",{value:t,configurable:!0});import{ThemeComponent as c,cart as a}from"./theme.min.js";import"./vendor.min.js";class r extends c{constructor(){super(...arguments),this.originalButtonText=""}init(){this.originalButtonText=this.submitButton.value,this.$listen(this.submitButton,"click",t=>{t.preventDefault(),this.addToCart()})}updateButtonState(){this.checkIfInCart()?(this.submitButton.classList.add("button--disabled"),this.submitButton.value="ADDED"):(this.submitButton.classList.remove("button--disabled"),this.submitButton.value=this.originalButtonText)}async addToCart(){const t=this.getFormData();try{await a.addItem({id:this.variantId,quantity:1,properties:t}),this.submitButton.classList.add("button--disabled"),this.submitButton.value="ADDED",document.dispatchEvent(new Event("cartChanged"))}catch(e){this.$log.error("Cart error",{event:e});const{message:s}=e;this.showError(s)}}getFormData(){const t=new FormData(this.form),e={};for(const[s,n]of t.entries())if(s.indexOf("properties")>-1){const p=s.replace("properties[","").replace("]","");e[p]=n}return e}showError(t){this.errorMessage.textContent=t,t?this.error.classList.add("is-active"):this.error.classList.remove("is-active")}checkIfInCart(){return a.items.filter(e=>e.variantId===this.variantId).length>0}}i(r,"ProductAddToCart");const m={Number};r.prototype.$name="ProductAddToCart";r.prototype.$info=JSON.parse('{"name":"ProductAddToCart","meta":{"isLegacy":false,"selector":"product-add-to-cart"},"props":[{"attr":"variant-id","reflectAttr":false,"propertyKey":"variantId","propertyType":"Number","propertyTypeName":"Number","propertyTsTypeName":"number"}],"refs":[{"selector":"[data-ref=\\"form\\"]","required":true,"propertyKey":"form","propertyType":"Object","propertyTypeName":"Object","propertyTsTypeName":"HTMLFormElement"},{"selector":"[data-ref=\\"submitButton\\"]","required":true,"propertyKey":"submitButton","propertyType":"Object","propertyTypeName":"Object","propertyTsTypeName":"HTMLButtonElement"}]}');r.prototype.$info.component=r;for(const o of r.prototype.$info.props)o.propertyType=m[o.propertyType];window.componentService.registerComponent("Product/ProductAddToCart.ts",{ProductAddToCart:r},void 0);
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.