function designDetail(n,t){return{stockCode:null,activeProduct:null,allColours:null,loading:!1,error:null,fullImageLoaded:!1,$remodal:$('[data-remodal-id="designDetail"]').remodal({hashTracking:!1,closeOnOutsideClick:!0}),inMoodboard:!1,view:"default",share:"email",senderName:"",recipientEmail:"",recipientPhoneNumber:"",errors:[],getUrlSafeStockCode(n){return n?.replaceAll("/","-")},async getFullImageUrl(t){if(t){this.fullImageLoaded=!1;const i=new Image;return i.src=`${n}2017-main/${this.getUrlSafeStockCode(t)}_m.jpg`,await i.decode(),this.fullImageLoaded=!0,i.src}},getThumbImageUrl(t){if(t)return`${n}2017-thumb/${this.getUrlSafeStockCode(t)}_t.jpg`},getZoomImageUrl(t){if(t)return`${n}2017-popup/${this.getUrlSafeStockCode(t)}_p.jpg`},getBrochureImageMain(n){return this.getBrochureImage(n,"72dpi")},getBrochureImageThumb(n){return this.getBrochureImage(n,"th")},getBrochureImage(n,i){return`${t}${n}_${i}.jpg`},init(){window.addEventListener("design:open",n=>{this.loading=!0,this.$remodal.state!=="open"&&this.$remodal.open(),this.stockCode=n.detail.data.stockCode,this.$remodal.$modal.find(".container").scrollTop(0),this.fetchData(this.stockCode).then(()=>{this.inMoodboard=Moodboard.isProductInMoodboard(this.stockCode),this.loading=!1,document.title=this.getPageTitle()})});window.addEventListener("design:close",()=>{this.$remodal.close(),this.view="default"});$(document).on("closed",'[data-remodal-id="designDetail"]',function(){window.routing.navigateBackToLastSearch()})},async fetchData(){this.controller&&this.controller.abort();this.controller=new AbortController;try{const n=await fetch("/api/Product/Detail/"+this.stockCode,{headers:{"Content-Type":"application/json"},signal:this.controller.signal});if(!n.ok)throw new Error("Network error");this.allColours=await n.json();this.activeProduct=this.allColours.find(n=>n.StockCode==this.stockCode)}catch(n){n.name!=="AbortError"&&(this.error=n.message)}finally{this.loading=!1}},getPageTitle(){return`${this.activeProduct.ProductName} in ${this.activeProduct.ColourName} by ${this.activeProduct.BrandName}`},clearErrors(){this.errors={}},setErrors(n){this.errors=Object.fromEntries(Object.entries(n).map(([n,t])=>[n,t[0]]))},async shareDesign(n){var i,n,t;this.clearErrors();i=this.share=="email"?this.$refs.shareEmailRecaptcha:this.$refs.shareSmsRecaptcha;n=i.querySelector(".g-recaptcha-response").value;try{const i=await fetch("/api/Product/Share/",{headers:{"Content-Type":"application/json"},method:"POST",signal:this.controller.signal,body:JSON.stringify({StockCode:this.stockCode,RecipientEmail:this.share=="email"?this.recipientEmail:null,RecipientPhoneNumber:this.share=="sms"?this.recipientPhoneNumber:null,FromName:this.senderName,g_Recaptcha_Response:n})});i.ok?(toastr.success("Message Sent"),this.view="default"):(t=await i.json(),t.ModelState?this.setErrors(t.ModelState):toastr.error(t.Message))}catch(r){r.name!=="AbortError"&&(this.error=r.message)}finally{this.loading=!1;grecaptcha.reset(i.dataset.grecaptchaId)}}}}