import{p as H,I as u,t as n,x as d,N as g,W as z,y as J,Q as f,L as p,S as M,O as m,P as k,z as W,F as y,_ as j,a1 as le,a2 as ue,X as ie,T as we,a3 as de,a4 as me,au as Se,Y as I,a6 as Ce,M as he,R as Pe,u as ee,r as ze,a as xe,q as Ie}from"./vue.02ad7c87.js";import{P as Te,D as Oe,a as Be}from"./index.dafcb5d6.js";import{bE as Q,bG as je,_ as V,i as G,am as pe,c5 as Ve,aG as Y,ca as Ae,g as Ee,ad as U,u as X,a6 as R,b$ as F,h as C,cm as Re,cn as Fe,co as fe,Y as Ne,ao as De,c as O,aa as Le,j as ne,N as ae,bR as D,ar as Me,c0 as We,cj as L}from"./index.f2790301.js";import{u as ge}from"./uniqBy.6d2267cf.js";import{A as Ge}from"./AddToCartPopup.898390d9.js";import{_ as He}from"./ProductReviewPopup.vue_vue_type_script_setup_true_lang.56ae2f4f.js";import{S as Ue}from"./SizeChartPopup.b6f669e6.js";import{f as qe}from"./faThumbsUp.63f20369.js";import{f as Ze}from"./faTruckFast.dc4517d2.js";import{f as $e}from"./faRulerHorizontal.6c75a8c5.js";import{f as Je}from"./faPaintbrush.bc5c32eb.js";import{P as Qe}from"./ProductStock.4705df1a.js";import{E as Ye}from"./EcoIcons.12c3d457.js";import{f as Xe}from"./forms.daaaa22a.js";import{f as Ke}from"./faComment.30e0d0ca.js";import{f as et}from"./faChevronUp.0b9adb20.js";import tt from"./ProductImageCarousel.3f92be9f.js";import{S as ot}from"./store.f1d78d8a.js";import{P as st}from"./productProvider.ca1aa048.js";import{a as K}from"./sentry.13e8e62e.js";const{create:rt,setRouter:it}=Q(),nt=({name:e,price:t,salePrice:s,image:i,options:r,bagCount:o})=>{rt({id:"add-to-bag",title:"Added to bag.",body:"",image:i,position:je.TOPRIGHT,template:"Bag",data:{name:e,price:t,salePrice:s,options:r},actions:[{text:`View Bag (${o})`,href:"action://plugins/add-to-bag/go-to-bag",primary:!1},{text:"Checkout",href:"action://plugins/add-to-bag/go-to-checkout",primary:!0}],dismissAction:{href:"action://plugins/add-to-bag/dismiss"},footerAction:{text:"Continue Shopping",href:"action://plugins/add-to-bag/dismiss"}})};function at(){return{show:nt,setRouter:it}}const ct={class:"flex items-between justify-center mb-2"},lt={class:"grow"},ut={class:"grow text-[1.2rem] !leading-[1.5em] pr-2 mb-0"},dt={class:"shrink-0 text-[1.2rem] mb-0 !md:leading-[1.5em]"},mt=H({__name:"ProductTitle",props:{title:null,price:null,salePrice:null,showPercentage:{type:Boolean}},setup(e){return(t,s)=>{const i=u("tml-product-price");return n(),d("div",ct,[g("div",lt,[g("h1",ut,z(e.title),1),J(t.$slots,"rating")]),g("h4",dt,[e.price||e.salePrice?(n(),f(i,{key:0,price:e.price,"sale-price":e.salePrice,"show-percentage":e.showPercentage},null,8,["price","sale-price","show-percentage"])):p("",!0)])])}}});const ht={name:"ProductInfo",components:{BundleItemList:M(()=>G(()=>import("./BundleItemList.c42a54f1.js"),["assets/BundleItemList.c42a54f1.js","assets/index.f2790301.js","assets/index.5765714a.css","assets/vue.02ad7c87.js","assets/sentry.13e8e62e.js","assets/ProductStock.4705df1a.js","assets/ProductStock.d7be99d6.css","assets/faInfoCircle.774d0234.js","assets/faRulerHorizontal.6c75a8c5.js"])),EcoIcons:Ye,ProductStock:Qe,TmlBubble:pe,TmlNewProductColorSelector:Ve,ProductTitle:mt},inject:["theme"],props:{product:Object,showForm:{type:Boolean,default:!0},overrideAddToCart:Boolean},data(){return{faTruckFast:Ze.faTruckFast,splitTests:Y,sizeValue:null,colorValue:null,faThumbsUp:qe.faThumbsUp,faRulerHorizontal:$e.faRulerHorizontal,faPaintbrush:Je.faPaintbrush,loading:!1,subscribedToStockNotification:!1,colorPreSelected:"",bundleOptions:[],bundleOptionOutOfStock:!1,favourites:Ae,subscribeEmail:""}},computed:{paymentProcessorType(){return Ee().getter("paymentProcessorType")},isMobile(){return U.isSmaller("md")},isPurchaseable(){var e;return(e=this.product.enableAddToCart)!=null?e:!0},isInStock(){return this.currentStock>0||this.currentStock===null},descriptionBelowCta(){return Y.isActiveVariation("product_page_refresh","after")},selectedColour(){var e;return(e=this.colorValue)==null?void 0:e.value},selectedSize(){var e,t;return(t=(e=this.$store.getters["forms/product-options/formData"])==null?void 0:e.size)==null?void 0:t.value},selectedBundleOptions(){return this.bundleOptions.map(e=>({color:e.colour,size:e.size}))},productColors(){const e=this.product.options;return Object.keys(e).map(t=>({text:t,value:t,name:t,background:e[t].thumbnail?this.colorBackground(e[t].thumbnail):void 0}))},currentStock(){const e=this.sizeValue||this.onlySize;return this.selectedColour&&(e==null?void 0:e.value)?this.product.options[this.selectedColour].sizes[e.value].stock:this.product.isBundle&&!this.shouldShowBundleItems?this.lowestBundleItemStock:null},lowestBundleItemStock(){let e=null;return this.product.bundleOptions&&Object.values(this.product.bundleOptions).forEach(t=>{Object.values(t).forEach(s=>{Object.values(s.sizes).forEach(i=>{var o;const r=(o=i==null?void 0:i.stock)!=null?o:i;r!==null&&(r<e||e===null)&&(e=r)})})}),e},shouldShowBundleItems(){return this.product.isBundle&&(this.productHasBundleItemsWithMoreThanOneColour||this.productHasBundleItemsWithMoreThanOneSize)},productHasBundleItemsWithMoreThanOneColour(){return this.product.bundleItems.map(e=>e.options).some(e=>Object.keys(e).length>1)},productHasBundleItemsWithMoreThanOneSize(){return Object.values(this.product.bundleItems.map(e=>e.options)).map(e=>Object.values(e)).map(e=>e.map(t=>t.sizes)).some(e=>e.some(t=>Object.values(t).length>1))},formSelectSizeOptions(){const e=[];return this.selectedColour&&this.productSizes(this.selectedColour).forEach(t=>{e.push({text:t,value:t})}),e},productComingSoon(){return this.product.approvalStatus==="denied"},showSizeSelector(){return this.isPurchaseable?this.selectedColour&&(this.formSelectSizeOptions.length>1||this.product.sizeCount>1):!1},onlySize(){return this.formSelectSizeOptions.length===1?this.formSelectSizeOptions[0]:null},stockLevels(){return Object.keys(this.product.options[this.colorValue.value].sizes).map(e=>this.product.options[this.colorValue.value].sizes[e])},preOrder(){const e=this.product;if(e.isBundle)return!1;const t=this.sizeValue||this.onlySize;return this.selectedColour&&(t==null?void 0:t.value)?e.options[this.selectedColour].sizes[t.value].preOrder:!1},activePrice(){const e=this.product;return e.isBundle?e.totalBundlePrice:this.colorValue&&this.sizeValue?e.options[this.colorValue.value].sizes[this.sizeValue.value].price:e.price},salePrice(){const e=this.product;return e.isBundle?e.price:this.colorValue&&this.sizeValue?e.options[this.colorValue.value].sizes[this.sizeValue.value].salePrice:e.salePrice},longestSizeName(){return this.formSelectSizeOptions.length?this.formSelectSizeOptions.reduce((e,t)=>e.text.length>t.text.length?e:t).text:""},sizeSelectorBreakpoints(){return this.longestSizeName.length>6?{xs:3,md:2,lg:3}:{xs:6,md:4,lg:6}}},watch:{colorValue(e){this.resetSizeIfUnavailableFor(e==null?void 0:e.value)},product:{handler(){let e=this.productColors[0];if(this.$route.params.colour){const t=this.$route.params.colour.replace(/-/," ").replace(/\+/,"-").replace(/(\b[a-z](?!\s))/g,s=>s.toUpperCase());e=this.productColors.find(s=>s.name===t)}this.colorPreSelected=e},immediate:!0},formSelectSizeOptions(e,t){if(!t.length&&this.$route.query["options[]"]){let s=this.$route.query["options[]"];Array.isArray(s)||(s=[s]),s.forEach(i=>{var a;const[r,o]=i.split(":");r==="Size"&&(this.sizeValue=(a=this.formSelectSizeOptions.find(c=>c.value===o))!=null?a:this.sizeValue)})}}},methods:{productSizes(e){var s;const t=(s=this.product.options[e])==null?void 0:s.sizes;return t===void 0?[]:Object.keys(t)},openSizeChart(){X().trackEvent({event:"onOpenSizeChart"}),this.$overlays.open(`size-popup-${this.product.id}`)},validateAddToCart(){return new Promise((e,t)=>{if(!this.productComingSoon&&!this.product.addButtonDisabled){const s=this.$store.getters["forms/product-options/formData"];if(this.showSizeSelector&&!this.sizeValue||this.bundleOptions.length&&this.bundleOptions.map(i=>i.size).includes(void 0)){t("Please choose a size");return}Xe.validate("product-options-new").success(()=>{if(s){const i=this.$store.getters["forms/product-options/isValid"],r=this.selectedColour,o=this.getSelectedSize();if(this.$refs.productOptions.validateAll(),!i){this.product.isBundle?t("Please choose a size and colour for all items"):t("Please choose a size and colour ");return}if(this.bundleItemOutOfStock){const a=this.bundleItemOutOfStock;t(`Looks like ${a.name} (${a.size}) in ${a.colour} is out of stock`);return}e({color:r,size:o})}}).catch(()=>{this.product.isBundle?t("Please choose a size and colour for all items"):t("Please choose a size and colour ")})}})},onAddToCart(){this.validateAddToCart().then(({color:e,size:t})=>{this.loading=!0,this.$store.dispatch("cart/addItem",{item:{productId:this.product.id,productName:this.product.name,productColor:e,productSize:t,productPrice:this.activePrice,bundleOptions:this.bundleOptions},name:"main"}).then(s=>{this.onAfterAddToCart(s),this.sendAddToCartEvent(e,t),this.loading=!1}).catch(()=>{this.loading=!1})}).catch(e=>R(e))},onCustomAddToCart(){this.validateAddToCart().then(({color:e,size:t})=>{this.loading=!0,this.$emit("custom-add-to-cart",{color:e,size:t,response:s=>{this.loading=!1,this.onAfterAddToCart(s),this.sendAddToCartEvent(e,t)},reject:()=>{this.loading=!1}})}).catch(e=>R(e))},onAfterAddToCart(e){var t;if(((t=e==null?void 0:e.items)==null?void 0:t.length)>0){F.conversion("add-to-cart",this.activePrice,[this.product.id]);const s=this.product.isBundle?"add-bundle-to-cart":"add-single-product-to-cart";F.event(s),this.showAddedToBagNotification()}},showAddedToBagNotification(){this.dismissSubscribeOfferNotification(),Q().removeAll();let e={name:this.product.name,bagCount:this.$store.getters["cart/getQuantity"],price:this.activePrice,salePrice:this.salePrice};this.product.isBundle?e={...e,image:this.product.lifestyleImages[0][120],options:this.selectedBundleOptions}:e={...e,image:this.product.options[this.selectedColour].flatImage[120],options:[{color:this.formSelectSizeOptions.length>1&&this.productColors.length>1?this.selectedColour:void 0,size:this.getSelectedSize()}]};const{setRouter:t,show:s}=at();t(this.$router),s(e)},dismissSubscribeOfferNotification(){const{handle:e,notifications:t}=Q(),s=t.find(i=>i.id==="subscriber-offer-discount");s&&e(s,"action://plugins/subscriber-offer/dismiss")},sendAddToCartEvent(){var s,i,r,o,a,c,b,h;let e=[];this.product.isBundle?e=this.selectedBundleOptions:e.push({color:this.selectedColour,size:this.getSelectedSize()});const t=this.salePrice||this.activePrice;X().addToCart({contentType:"product",contentIds:[this.product.uuid],items:[{id:this.product.uuid,name:this.product.name,brand:JSON.stringify(this.$store.state.subdomain.company.name),price:t,currency:(o=(r=(i=(s=this.$store)==null?void 0:s.state)==null?void 0:i.subdomain)==null?void 0:r.currency)!=null?o:"GBP",dimension4:`teemill:${this.$store.state.subdomain.divisionName}`,quantity:1,options:e}],currency:(h=(b=(c=(a=this.$store)==null?void 0:a.state)==null?void 0:c.subdomain)==null?void 0:b.currency)!=null?h:"GBP",value:t,dimension4:`teemill:${this.$store.state.subdomain.divisionName}`,userId:this.$store.state.subdomain.sessionId})},onSubscribeToStock(){if(this.$store.getters["forms/product-stock-notification/isValid"]){if(this.loading)return;this.loading=!0;const t=this.$store.getters["forms/product-options/formData"].color.value.value,s=this.getSelectedSize();this.$refs.captcha.recaptcha.ifHuman(i=>{this.axios.post(C("/omnis/v3/frontend/notification/subscribeToStock/"),{email:this.$store.getters["forms/product-stock-notification/getFieldValue"]("email","value"),productId:this.product.id,productColor:t,productSize:s,v3captchaToken:i.v3Token,v2captchaToken:i.v2Token}).success(()=>{this.subscribedToStockNotification=!0}).validation().oops().any(()=>{this.$refs.captcha&&this.$refs.captcha.recaptcha.reload()}).finally(()=>{this.loading=!1})}).ifBot(()=>{this.loading=!1})}},colorBackground(e){switch(e==null?void 0:e.type){case"image":return`url(${C(e.value)})`;case"color":return e.value;default:return}},setBundleOptions(e){this.bundleOptions=e,this.checkBundleStock()},checkBundleStock(){this.bundleItemOutOfStock=null,this.bundleOptions.forEach(e=>{e.stock===0&&(this.bundleItemOutOfStock={name:e.name,size:e.size,colour:e.colour})})},async attemptToFavourite(e){try{await this.favourites.add(e)}catch(t){R.error(t.message)}},getSelectedSize(){var e;return this.formSelectSizeOptions.length===1?this.formSelectSizeOptions[0].value:this.product.isBundle?null:(e=this.sizeValue)==null?void 0:e.value},resetSizeIfUnavailableFor(e){var s;if(!this.sizeValue)return;const t=this.productSizes(e);if(t||(this.sizeValue=null),!t.includes((s=this.sizeValue)==null?void 0:s.value))if(t.length<1)this.sizeValue=null;else{const i=t[t.length-1];this.sizeValue={value:i,text:i,name:i}}}}},te=e=>(de("data-v-25e4a391"),e=e(),me(),e),pt={class:"tml-product-info"},ft={key:0,class:"mb-2"},gt={key:0},bt={key:0},kt=te(()=>g("span",{class:"underline text-[--tml-text-color]"},"Size guide",-1)),_t={key:2,class:"text-right"},vt=te(()=>g("span",{class:"underline text-[--tml-text-color]"},"Size guide",-1)),yt={key:2},wt=te(()=>g("p",{class:"mb-4"}," Notify me when it's back in-stock ",-1)),St={key:1,class:"mb-4"},Ct=j(" Learn more in our "),Pt=j(" / "),zt={key:1,class:"customise-it mt-4"},xt={style:{width:"0",height:"0",position:"absolute"},"aria-hidden":"true",focusable:"false"},It=Se('<linearGradient id="rainbow-gradient" x2="0" y2="1" data-v-25e4a391><stop stop-color="#f44336" offset="0%" data-v-25e4a391></stop><stop stop-color="#FFC107" offset="17%" data-v-25e4a391></stop><stop stop-color="#4CAF50" offset="33%" data-v-25e4a391></stop><stop stop-color="#00BCD4" offset="50%" data-v-25e4a391></stop><stop stop-color="#2196F3" offset="67%" data-v-25e4a391></stop><stop stop-color="#9C27B0" offset="84%" data-v-25e4a391></stop><stop stop-color="#f44336" offset="100%" data-v-25e4a391></stop></linearGradient>',1),Tt=[It],Ot={key:2},Bt={key:3,class:"flex flex-col gap-2"},jt={class:"flex items-center"},Vt={class:"w-8"},At=j(" Easy Returns and Exchanges "),Et={class:"flex items-center"},Rt={class:"w-8"},Ft=j(" Next Day Delivery Available ");function Nt(e,t,s,i,r,o){const a=u("product-title"),c=u("tml-render-html-editor-output"),b=u("tml-color-selector"),h=u("font-awesome-icon"),_=u("tml-size-selector"),w=u("bundle-item-list"),S=u("tml-new-form"),T=u("tml-form"),B=u("product-stock"),A=u("tml-loader"),l=u("tml-button"),v=u("tml-input"),x=u("tml-re-captcha"),E=u("tml-anchor"),re=u("eco-icons");return n(),d("div",pt,[m(a,{title:s.product.name,price:o.isPurchaseable?o.activePrice:null,"sale-price":o.isPurchaseable?o.salePrice:null,"show-percentage":s.product.isBundle,class:W(o.descriptionBelowCta?"mb-4":"")},{rating:k(()=>[J(e.$slots,"rating",{},void 0,!0)]),_:3},8,["title","price","sale-price","show-percentage","class"]),o.descriptionBelowCta?p("",!0):(n(),f(c,{key:0,html:s.product.description,class:"mb-4"},null,8,["html"])),m(A,{loading:!s.showForm,"loading-height":"12em",class:"mb-4"},{default:k(()=>[J(e.$slots,"personalization",{},void 0,!0),s.showForm?(n(),f(T,{key:0,ref:"productOptions","form-name":"product-options",persistent:""},{default:k(()=>[s.showForm?(n(),f(S,{key:0,name:"product-options-new"},{default:k(()=>[s.product.isBundle?p("",!0):(n(),d(y,{key:0},[o.productColors.length>1?(n(),d("p",ft,[j(z(r.colorValue?"Colour:":"Select colour:")+" ",1),r.colorValue?(n(),d("b",gt,z(r.colorValue.value),1)):p("",!0)])):p("",!0),le(m(b,{modelValue:r.colorValue,"onUpdate:modelValue":t[0]||(t[0]=P=>r.colorValue=P),"pre-selected":r.colorPreSelected,"field-name":"color","items-per-row":{xs:6,md:4,lg:6},colors:o.productColors,"validation-rules":{required:!0},onInput:t[1]||(t[1]=P=>e.$emit("color-selected",P==null?void 0:P.value))},null,8,["modelValue","pre-selected","colors"]),[[ue,o.productColors.length>1]]),o.showSizeSelector?(n(),d("div",{key:1,class:W(["flex items-center justify-between mb-2",{"mt-4":o.productColors.length>1}])},[g("p",null,[j(z(r.sizeValue?"Size:":"Select size:")+" ",1),r.sizeValue?(n(),d("b",bt,z(r.sizeValue.value),1)):p("",!0)]),s.product.sizeChartId?(n(),d("button",{key:0,class:"flex items-center gap-1",onClick:t[2]||(t[2]=ie((...P)=>o.openSizeChart&&o.openSizeChart(...P),["stop","prevent"]))},[m(h,{icon:r.faRulerHorizontal,class:"text-[--tml-text-color]"},null,8,["icon"]),kt])):p("",!0)],2)):s.product.sizeChartId&&!o.isPurchaseable&&!s.product.customiseIt?(n(),d("div",_t,[g("button",{class:"items-center gap-1 mt-3 inline",onClick:t[3]||(t[3]=ie((...P)=>o.openSizeChart&&o.openSizeChart(...P),["stop","prevent"]))},[m(h,{icon:r.faRulerHorizontal,class:"text-[--tml-text-color] pr-2"},null,8,["icon"]),vt])])):p("",!0),o.showSizeSelector?(n(),f(_,{key:3,class:"mb-4",value:r.sizeValue,"field-name":"size",sizes:o.formSelectSizeOptions,"items-per-row":o.sizeSelectorBreakpoints,"stock-levels":o.stockLevels,onInput:t[4]||(t[4]=P=>r.sizeValue=P)},null,8,["value","sizes","items-per-row","stock-levels"])):p("",!0)],64)),o.shouldShowBundleItems?(n(),f(w,{key:1,product:s.product,onInput:o.setBundleOptions},null,8,["product","onInput"])):p("",!0)]),_:1})):p("",!0)]),_:1},512)):p("",!0),o.currentStock!==null&&!o.preOrder?(n(),f(B,{key:1,class:"my-4",stock:o.currentStock},null,8,["stock"])):p("",!0)]),_:3},8,["loading"]),m(we,{name:"fade-up",mode:"out-in"},{default:k(()=>[o.isPurchaseable?(n(),d(y,{key:0},[o.isInStock&&s.overrideAddToCart?(n(),f(l,{key:0,class:"w-full add-to-bag-button","border-radius":o.theme().get("button.border.radius"),disabled:s.product.addButtonDisabled,primary:"",loading:r.loading,href:"#",text:"Add to bag",onClick:o.onCustomAddToCart},null,8,["border-radius","disabled","loading","onClick"])):o.isInStock?(n(),f(l,{key:1,class:"w-full add-to-bag-button","border-radius":o.theme().get("button.border.radius"),disabled:s.product.addButtonDisabled,primary:!o.productComingSoon,loading:r.loading,href:"#",text:o.productComingSoon?"Coming Soon":"Add to bag",onClick:o.onAddToCart},null,8,["border-radius","disabled","primary","loading","text","onClick"])):s.product.isBundle?p("",!0):(n(),d("div",yt,[r.subscribedToStockNotification?(n(),d("p",St," Great, we'll email you when it's back in stock ")):(n(),d(y,{key:0},[wt,m(T,{"form-name":"product-stock-notification",class:"mb-4"},{default:k(()=>[m(v,{modelValue:r.subscribeEmail,"onUpdate:modelValue":t[5]||(t[5]=P=>r.subscribeEmail=P),"field-name":"email",placeholder:"Email","validation-rules":{required:!0,email:!0}},null,8,["modelValue"])]),_:1}),m(l,{class:"w-full",primary:"",loading:r.loading,disabled:!r.subscribeEmail,href:"#",text:"Notify Me",onClick:o.onSubscribeToStock},null,8,["loading","disabled","onClick"]),m(x,{ref:"captcha",action:"subdomains/oosNotify"},null,512)],64)),g("small",null,[Ct,m(E,{href:"/privacy-policy/",text:"Privacy Policy"}),Pt,m(E,{href:"/terms-of-use/",text:"Terms"})])]))],64)):p("",!0)]),_:1}),s.product.customiseIt?(n(),d("div",zt,[(n(),d("svg",xt,Tt)),m(l,{class:"w-full customise-button",href:r.colorValue?`/design-your-own-t-shirt/${s.product.urlName}/?colour=${r.colorValue.value}`:`/design-your-own-t-shirt/${s.product.urlName}/`,text:"Customise",icon:r.faPaintbrush},null,8,["href","icon"])])):p("",!0),!s.product.customiseIt&&!o.isPurchaseable?(n(),d("div",Ot,[m(l,{class:"w-full",primary:"",href:"/enquire",text:"Enquire"})])):p("",!0),m(re,{product:s.product,class:"my-8"},null,8,["product"]),o.paymentProcessorType==="teemill"?(n(),d("div",Bt,[g("p",jt,[g("span",Vt,[m(h,{icon:r.faThumbsUp},null,8,["icon"])]),At]),g("p",Et,[g("span",Rt,[m(h,{icon:r.faTruckFast},null,8,["icon"])]),Ft])])):p("",!0),o.descriptionBelowCta?(n(),f(c,{key:4,html:s.product.description,class:"mt-8"},null,8,["html"])):p("",!0)])}const Dt=V(ht,[["render",Nt],["__scopeId","data-v-25e4a391"]]),Lt={name:"ProductSpec",props:{product:Object},computed:{bundleItems(){return ge(this.product.bundleItems||[],"baseSku")},coloursString(){const e=Object.keys(this.product.options);if(e.length===0)return"";let t="Available in ";return e.length===1?`${t} ${e[0].toLowerCase()}.`:(e.forEach((s,i)=>{i===e.length-1?t+=`and ${s.toLowerCase()}.`:t+=`${s.toLowerCase()}, `}),t)}}},Mt={class:"tml-product-spec"},Wt=g("h4",null,"Details",-1),Gt={key:0,class:"mb-4"};function Ht(e,t,s,i,r,o){return n(),d("div",Mt,[Wt,g("p",null,z(s.product.specifications)+" "+z(o.coloursString),1),s.product.isBundle&&(s.product.salePrice||s.product.price)<s.product.totalBundlePrice?(n(),d("p",Gt," The original price is the sum of the individual products RRP that are listed on the store. The new price takes into account the saving you make on the products when buying them in a bundle. ")):p("",!0),(n(!0),d(y,null,I(o.bundleItems,a=>(n(),d("div",{key:a.id,class:"mb-4"},[g("p",null,z(a.specifications),1)]))),128))])}const Ut=V(Lt,[["render",Ht]]);const qt={name:"ProductReviews",components:{TmlReview:Re,TmlIcon:Fe,TmlBubble:pe},inject:["theme"],props:{productId:{type:Number,required:!0},increment:{type:Number,default:3},numberShownInitially:{type:Number,default:3},hardLimit:{type:Number,required:!1},backgroundColor:{type:String,required:!1}},data(){return{faComment:Ke.faComment,faChevronDown:fe.faChevronDown,downloading:!0,reviews:[],numberShown:3}},computed:{showHider(){return this.sortedReviews.length>this.numberShown},sortedReviews(){const e=[...this.reviews].sort((t,s)=>t.rating===s.rating?new Date(t.date)>new Date(s.date)?-1:1:s.rating-t.rating);return this.hardLimit?e.slice(0,this.hardLimit):e},companyName(){var e;return(e=this.$store.state.subdomain.company)==null?void 0:e.name},companyLogo(){const e=this.$store.getters["subdomain/logo"];return e?C(e):null}},created(){this.numberShown=this.numberShownInitially,this.axios.post(C("/omnis/v3/frontend/product/getProductReviews/"),{productId:this.productId}).success(e=>{const t=Object.values(e);t.forEach((s,i)=>{t[i].rating=parseFloat(s.rating)}),this.reviews=t}).finally(()=>{this.downloading=!1})},methods:{expand(){if(this.numberShown+this.increment>this.reviews.length){this.numberShown=this.reviews.length;return}this.numberShown+=this.increment}}},Zt={class:"relative"},$t={key:0,class:"hider"};function Jt(e,t,s,i,r,o){const a=u("tml-review"),c=u("tml-bubble"),b=u("tml-spinner");return r.downloading?(n(),f(b,{key:1,height:"100px"})):(n(),d("div",{key:0,class:"tml-product-reviews",style:he({"--fade-to-color":s.backgroundColor||o.theme().get("page.background.color")})},[g("div",Zt,[m(Ce,null,{default:k(()=>[(n(!0),d(y,null,I(o.sortedReviews,(h,_)=>le((n(),f(a,{key:h.id,class:"mb-12","product-name":h.productName,"show-product-name":!1,"company-name":o.companyName,"company-logo":o.companyLogo,item:h,"show-reply":""},null,8,["product-name","company-name","company-logo","item"])),[[ue,_<r.numberShown]])),128))]),_:1}),o.showHider?(n(),d("div",$t,[m(c,{class:"expand-arrow","disable-border":"","show-shadow":"",icon:r.faChevronDown,onClick:o.expand},null,8,["icon","onClick"])])):p("",!0)])],4))}const Qt=V(qt,[["render",Jt],["__scopeId","data-v-cf782c80"]]);var $={},ce;function Yt(){return ce||(ce=1,function(e){Object.defineProperty(e,"__esModule",{value:!0});var t="fas",s="play",i=384,r=512,o=[9654],a="f04b",c="M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80V432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z";e.definition={prefix:t,iconName:s,icon:[i,r,o,a,c]},e.faPlay=e.definition,e.prefix=t,e.iconName=s,e.width=i,e.height=r,e.ligatures=o,e.unicode=a,e.svgPathData=c,e.aliases=o}($)),$}var Xt=Yt();const Kt={name:"ProductPreview",components:{ProductImageCarousel:tt,PersonalizationCanvas:M(()=>G(()=>import("./PersonalizationCanvas.db186b5c.js"),["assets/PersonalizationCanvas.db186b5c.js","assets/vue.02ad7c87.js","assets/debounce.d927444c.js","assets/index.f2790301.js","assets/index.5765714a.css","assets/sentry.13e8e62e.js","assets/OmniCanvas.d8fdbf47.js","assets/OmniCanvas.ce5ec50a.css","assets/cjs.495c27ac.js","assets/bounds.f75ef37b.js","assets/sierraCanvas.5282c37d.js","assets/colorGradient.9d411cb1.js","assets/logger.5c633fc9.js","assets/isDeviceIos.771ad25f.js","assets/rgbToHsv.83deeb62.js","assets/animation.d9c14651.js","assets/hexToHsv.3ddbcf45.js","assets/text.d61fcc73.js","assets/isFontAvailable.eace6925.js"]))},props:{product:Object,selectedColor:String,enablePersonalization:Boolean,enableBackPersonalization:Boolean,personalizationLayer:String},data(){return{faChevronUp:et.faChevronUp,faChevronDown:fe.faChevronDown,faPlay:Xt.faPlay,viewportSize:U,thumbsOffset:0,thumbOffsetInterval:0,generatedThumbnails:{},generatedZoomImages:{},splitTests:Y}},computed:{showSaleIndicators(){return this.product&&this.product.salePrice?this.product.salePrice<this.product.price:!1},videos(){var e,t;return((t=(e=this.product)==null?void 0:e.videos)==null?void 0:t.map(s=>({url:s.url,altText:s.altText,thumbnails:s.thumbnails})))||[]},personalizationImageCount(){return this.enablePersonalization&&this.enableBackPersonalization?2:this.enablePersonalization?1:0}},watch:{selectedColor:{handler(e,t){if(!this.$refs.imageCarousel||this.enablePersonalization||t===null&&!this.$route.params.colour)return;const i=this.product.lifestyleImages.length>0,o=this.images(1080).findIndex(a=>i&&(a==null?void 0:a.color)===e||(a==null?void 0:a.optionId)===e);o!==-1&&this.$refs.imageCarousel.goToPage(o)},immediate:!0},personalizationLayer(){this.personalizationLayer==="front"?this.$refs.imageCarousel.goToPage(0):this.personalizationLayer==="back"&&this.$refs.imageCarousel.goToPage(1)}},methods:{formatUrl:C,getAltText(e){return e.altText?e.altText:`${e.optionId?`${e.optionId} ${this.product.name}`:this.product.name}`},nonExplodableImages(e){return this.images(e).filter(t=>!t.explode)},explodableImages(e){return this.images(e).filter(t=>t.explode)},explodableImageRows(e){const t=this.explodableImages(e),s=[];let i=[],r=3;return t.forEach((o,a)=>{i.length===r&&(s.push(i),i=[],r=r===3?2:3),i.push(o),a===t.length-1&&s.push(i)}),s},images(e){const t=this.product.lifestyleImages.filter(r=>r[e]).map(r=>({url:Ne(C(r[e]),e,e),srcUrl:C(r.full),altText:r==null?void 0:r.altText,color:r==null?void 0:r.color,explode:!0})),s=[];Object.values(this.product.options).forEach(r=>{r.flatImage&&s.push({optionId:r.colour,url:C(r.flatImage[e]),srcUrl:C(r.flatImage.full),explode:!1}),r.backImage&&s.push({optionId:r.colour,url:C(r.backFlatImage[e]),srcUrl:C(r.backFlatImage.full),explode:!1})});const i=this.enablePersonalization?t:[...t,...s];if(this.generatedThumbnails&&e<1080){const r=Object.values(this.generatedThumbnails).map((o,a)=>({url:o,altText:"Preview",color:this.selectedColor,explode:!1,index:a}));i.unshift(...r)}return i.map((r,o)=>({index:o+this.videos.length,...r}))},onClickThumb(e){this.$refs.imageCarousel&&this.$refs.imageCarousel.goToPage(e)},onMouseEnterThumbNav(e){if(this.$refs.thumbListContainer&&this.$refs.thumbsList){const t=this.$refs.thumbListContainer.clientHeight,s=this.$refs.thumbsList.clientHeight;this.thumbOffsetInterval===0&&(this.thumbOffsetInterval=setInterval(()=>{e==="up"?this.thumbsOffset+=2:e==="down"&&(this.thumbsOffset-=2),this.thumbsOffset=De(this.thumbsOffset,t-s,0)},10))}},onMouseLeaveThumbNav(){clearInterval(this.thumbOffsetInterval),this.thumbOffsetInterval=0},onGeneratedThumbnail(e,t){this.generatedThumbnails[e]=t},onGeneratedZoomImage(e,t){this.generatedZoomImages[e]=t},getZoomImage(e){return this.generatedZoomImages[e]||""}}},eo=e=>(de("data-v-6e586600"),e=e(),me(),e),to={key:0,class:"sale-badge thumb-size mb-4 rounded-full float-right m-4"},oo=eo(()=>g("h3",{class:"text-white bold h-full"},"Sale",-1)),so=[oo],ro={class:"flex grow justify-center items-center h-full"},io=["onClick"],no={class:"flex grow justify-center items-center h-full"};function ao(e,t,s,i,r,o){const a=u("personalization-canvas"),c=u("tml-image-zoom"),b=u("tml-ratio"),h=u("tml-video"),_=u("tml-image"),w=u("product-image-carousel"),S=u("font-awesome-icon"),T=u("tml-grid"),B=u("TmlSplitTestVariation"),A=u("TmlSplitTest");return n(),d(y,null,[g("div",null,[m(w,{ref:"imageCarousel",breakpoints:{xs:1},ratio:1.1,"page-indicators":"inset","inset-navigation":""},{default:k(()=>[g("div",null,[s.enablePersonalization?(n(),f(b,{key:0,ratio:1},{default:k(()=>[m(c,{"img-normal":o.getZoomImage("front")},{default:k(()=>[m(a,{layer:"front",layers:[{tag:"front"},{tag:"back"}],onInitialised:t[0]||(t[0]=l=>e.$emit("front-canvas-initialised",l)),onGeneratedThumbnail:t[1]||(t[1]=l=>o.onGeneratedThumbnail("front",l)),onGeneratedZoomImage:t[2]||(t[2]=l=>o.onGeneratedZoomImage("front",l))})]),_:1},8,["img-normal"])]),_:1})):p("",!0),s.enablePersonalization&&s.enableBackPersonalization?(n(),f(b,{key:1,ratio:1},{default:k(()=>[m(c,{"img-normal":o.getZoomImage("back")},{default:k(()=>[m(a,{layer:"back",layers:[{tag:"front"},{tag:"back"}],onInitialised:t[3]||(t[3]=l=>e.$emit("back-canvas-initialised",l)),onGeneratedThumbnail:t[4]||(t[4]=l=>o.onGeneratedThumbnail("back",l)),onGeneratedZoomImage:t[5]||(t[5]=l=>o.onGeneratedZoomImage("back",l))})]),_:1},8,["img-normal"])]),_:1})):p("",!0),(n(!0),d(y,null,I(o.videos,(l,v)=>(n(),f(b,{key:v,ratio:1},{default:k(()=>[m(h,{video:l.url,ratio:1,"video-thumbnail":l.thumbnails[1080]},null,8,["video","video-thumbnail"])]),_:2},1024))),128)),(n(!0),d(y,null,I(o.images(1080),(l,v)=>(n(),f(b,{key:v,ratio:1},{default:k(()=>[r.viewportSize.isSmaller("md")?(n(),f(_,{key:0,alt:o.getAltText(l),src:l.url,class:"w-full","lazy-load":v!==0,ratio:1,"src-set":[{width:640,height:640},{width:1080,height:1080}]},{default:k(()=>[o.showSaleIndicators?(n(),d("div",to,so)):p("",!0)]),_:2},1032,["alt","src","lazy-load"])):(n(),f(c,{key:1,class:"w-full h-full","img-normal":l.url,"img-zoom":r.splitTests.isActiveVariation("product_page_refresh","after")?l.srcUrl:l.url,alt:o.getAltText(l),lazy:v!==0},null,8,["img-normal","img-zoom","alt","lazy"]))]),_:2},1024))),128))])]),_:1},8,["ratio"])]),m(A,{name:"product_page_refresh"},{default:k(()=>[m(B,{name:"before",default:""},{default:k(()=>[!r.viewportSize.isSmaller("md")&&(o.images(120).length>1||s.enablePersonalization)?(n(),f(T,{key:0,class:"mt-4",breakpoints:{xs:8},spacing:{xs:"0.5em",lg:"1em"}},{default:k(()=>[(n(!0),d(y,null,I(o.videos,(l,v)=>(n(),f(_,{key:v,class:"cursor-pointer",alt:l.altText,src:l.thumbnails[120],onClick:x=>o.onClickThumb(v)},{default:k(()=>[g("div",ro,[m(S,{icon:r.faPlay,class:"text-white h-6"},null,8,["icon"])])]),_:2},1032,["alt","src","onClick"]))),128)),(n(!0),d(y,null,I(o.images(120),(l,v)=>(n(),f(_,{key:v,class:"cursor-pointer",alt:o.getAltText(l),src:l.url,onClick:x=>o.onClickThumb(l.index)},null,8,["alt","src","onClick"]))),128))]),_:1},8,["spacing"])):p("",!0)]),_:1}),m(B,{name:"after"},{default:k(()=>[!r.viewportSize.isSmaller("md")&&o.images(120).length>1&&o.explodableImages(120).length>=1?(n(!0),d(y,{key:0},I(o.explodableImageRows(480),(l,v)=>(n(),d("div",{key:v},[m(T,{class:"mt-4",breakpoints:{xs:Math.max(l.length,2)},spacing:{xs:"0.5em",lg:"1em"}},{default:k(()=>[(n(!0),d(y,null,I(l,(x,E)=>(n(),f(_,{key:E,class:"cursor-pointer",alt:o.getAltText(x),src:x.url,onClick:re=>o.onClickThumb(x.index)},null,8,["alt","src","onClick"]))),128))]),_:2},1032,["breakpoints","spacing"])]))),128)):p("",!0),!r.viewportSize.isSmaller("md")&&o.images(120).length>1&&(o.nonExplodableImages(120).length>=1||s.enablePersonalization)?(n(),f(T,{key:1,class:"mt-4",breakpoints:{xs:8},spacing:{xs:"0.5em",lg:"1em"}},{default:k(()=>[(n(!0),d(y,null,I(o.videos,(l,v)=>(n(),d("button",{key:v,onClick:x=>o.onClickThumb(v+o.personalizationImageCount)},[m(h,{video:`${l.url}`,ratio:1,autoplay:!1,class:"cursor-pointer h-full"},{default:k(()=>[g("div",no,[m(S,{icon:r.faPlay,class:"text-white h-6"},null,8,["icon"])])]),_:2},1032,["video"])],8,io))),128)),(n(!0),d(y,null,I(o.nonExplodableImages(120),(l,v)=>(n(),f(_,{key:v,class:"cursor-pointer",alt:o.getAltText(l),src:l.url,onClick:x=>o.onClickThumb(l.index)},null,8,["alt","src","onClick"]))),128))]),_:1},8,["spacing"])):p("",!0)]),_:1})]),_:1})],64)}const co=V(Kt,[["render",ao],["__scopeId","data-v-6e586600"]]);var oe={},be={},N={};Object.defineProperty(N,"__esModule",{value:!0});N.ProfanityOptions=void 0;class lo{constructor(){this.wholeWord=!0,this.grawlix="@#$%&!",this.grawlixChar="*"}}N.ProfanityOptions=lo;var ke={},_e={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.CensorType=void 0,function(t){t[t.Word=0]="Word",t[t.FirstChar=1]="FirstChar",t[t.FirstVowel=2]="FirstVowel",t[t.AllVowels=3]="AllVowels"}(e.CensorType||(e.CensorType={}))})(_e);var q={};Object.defineProperty(q,"__esModule",{value:!0});q.List=void 0;class uo{constructor(t){this.onListChanged=t,this.words=[]}get empty(){return!this.words.length}removeWords(t){this.words=this.words.filter(s=>!t.includes(s)),this.onListChanged()}addWords(t){this.words=this.words.concat(t),this.onListChanged()}}q.List=uo;(function(e){var t=O&&O.__createBinding||(Object.create?function(i,r,o,a){a===void 0&&(a=o);var c=Object.getOwnPropertyDescriptor(r,o);(!c||("get"in c?!r.__esModule:c.writable||c.configurable))&&(c={enumerable:!0,get:function(){return r[o]}}),Object.defineProperty(i,a,c)}:function(i,r,o,a){a===void 0&&(a=o),i[a]=r[o]}),s=O&&O.__exportStar||function(i,r){for(var o in i)o!=="default"&&!Object.prototype.hasOwnProperty.call(r,o)&&t(r,i,o)};Object.defineProperty(e,"__esModule",{value:!0}),s(_e,e),s(q,e)})(ke);var Z={};Object.defineProperty(Z,"__esModule",{value:!0});Z.escapeRegExp=void 0;const mo=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");Z.escapeRegExp=mo;var se={};Object.defineProperty(se,"__esModule",{value:!0});se.default=["4r5e","5h1t","5hit","a55","anal","anus","ar5e","arrse","arse","arses","ass","ass-fucker","asses","assfucker","assfukka","asshole","assholes","asswhole","a_s_s","a$$","as$","a$s","b!tch","b00bs","b17ch","b1tch","ballbag","balls","ballsack","bastard","beastial","beastiality","bellend","bestial","bestiality","bi+ch","biatch","bitch","bitchboy","bitcher","bitchers","bitches","bitchin","bitching","bloody","blow job","blowjob","blowjobs","boiolas","bollock","bollok","boner","boob","boobs","booobs","boooobs","booooobs","booooooobs","breasts","buceta","bugger","bullshit","bum","butt","butts","butthole","buttmuch","buttplug","c0ck","c0cksucker","carpet muncher","cawk","chink","cipa","cl1t","clit","clitoris","clits","cnut","cock","cock-sucker","cockface","cockhead","cockmunch","cockmuncher","cocks","cocksuck","cocksucked","cocksucker","cocksucking","cocksucks","cocksuka","cocksukka","cok","cokmuncher","coksucka","coon","cox","crap","cum","cummer","cumming","cums","cumshot","cunilingus","cunillingus","cunnilingus","cunt","cuntlick","cuntlicker","cuntlicking","cunts","cyalis","cyberfuc","cyberfuck","cyberfucked","cyberfucker","cyberfuckers","cyberfucking","d1ck","damn","dick","dickhead","dildo","dildos","dink","dinks","dirsa","dlck","dog-fucker","doggin","dogging","donkeyribber","doosh","duche","dyke","ejaculate","ejaculated","ejaculates","ejaculating","ejaculatings","ejaculation","ejakulate","f u c k","f u c k e r","f4nny","fag","fagging","faggitt","faggot","faggs","fagot","fagots","fags","fanny","fannyflaps","fannyfucker","fanyy","fatass","fcuk","fcuker","fcuking","feck","fecker","felching","fellate","fellatio","fingerfuck","fingerfucked","fingerfucker","fingerfuckers","fingerfucking","fingerfucks","fistfuck","fistfucked","fistfucker","fistfuckers","fistfucking","fistfuckings","fistfucks","flange","fook","fooker","fuck","fucka","fucked","fucker","fuckers","fuckhead","fuckheads","fuckin","fucking","fuckings","fuckingshitmotherfucker","fuckme","fucks","fuckwhit","fuckwit","fudge packer","fudgepacker","fuk","fuker","fukker","fukkin","fuks","fukwhit","fukwit","fux","fux0r","f_u_c_k","gangbang","gangbanged","gangbangs","gaylord","gaysex","goatse","god-dam","god-damned","goddamn","goddamned","hardcoresex","headass","hoar","hoare","hoer","hoes","homo","hore","horniest","horny","hotsex","jack-off","jackoff","jap","jerk-off","jism","jiz","jizm","jizz","kawk","knobead","knobed","knobend","knobhead","knobjocky","knobjokey","kock","kondum","kondums","kum","kummer","kumming","kums","kunilingus","l3i+ch","l3itch","labia","lust","lusting","m0f0","m0fo","m45terbate","ma5terb8","ma5terbate","masochist","master-bate","masterb8","masterbat*","masterbat3","masterbate","masterbation","masterbations","masturbate","mo-fo","mof0","mofo","mothafuck","mothafucka","mothafuckas","mothafuckaz","mothafucked","mothafucker","mothafuckers","mothafuckin","mothafucking","mothafuckings","mothafucks","motherfuck","motherfucked","motherfucker","motherfuckers","motherfuckin","motherfucking","motherfuckings","motherfuckka","motherfucks","muff","muthafecker","muthafuckker","mutherfucker","n1gga","n1gger","nazi","nigg3r","nigg4h","nigga","niggah","niggas","niggaz","nigger","niggers","nob","nob jokey","nobhead","nobjocky","nobjokey","numbnuts","nutsack","orgasim","orgasims","orgasm","orgasms","p0rn","pawn","pecker","penis","penisfucker","phonesex","phuck","phuk","phuked","phuking","phukked","phukking","phuks","phuq","pigfucker","pimpis","piss","pissed","pisser","pissers","pisses","pissflaps","pissin","pissing","pissoff","poop","porn","porno","pornography","pornos","prick","pricks","pron","pube","pusse","pussi","pussies","pussy","pussys","rectum","retard","rimjaw","rimming","s hit","s.o.b.","sadist","schlong","screwing","scroat","scrote","scrotum","semen","sex","sh!+","sh!t","sh1t","shag","shagger","shaggin","shagging","shemale","shi+","shit","shitdick","shite","shited","shitey","shitfuck","shitfull","shithead","shiting","shitings","shits","shitted","shitter","shitters","shitting","shittings","shitty","skank","slut","sluts","smegma","smut","snatch","son-of-a-bitch","spac","spunk","s_h_i_t","t1tt1e5","t1tties","teets","teez","testical","testicle","tit","titfuck","tits","titt","tittie5","tittiefucker","titties","tittyfuck","tittywank","titwank","tosser","turd","tw4t","twat","twathead","twatty","twunt","twunter","v14gra","v1gra","vagina","viagra","vulva","w00se","wang","wank","wanker","wanky","whoar","whore","willies","willy"];(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.profanity=e.Profanity=void 0;const t=N,s=ke,i=Z,r=se;class o{constructor(c){this.options=c||new t.ProfanityOptions,this.whitelist=new s.List(()=>this.buildRegex()),this.blacklist=new s.List(()=>this.buildRegex()),this.blacklist.addWords(r.default)}exists(c){return this.regex.lastIndex=0,this.regex.test(c)}censor(c,b=s.CensorType.Word){switch(b){case s.CensorType.Word:return c.replace(this.regex,this.options.grawlix);case s.CensorType.FirstChar:{let h=c;return Array.from(c.matchAll(this.regex)).forEach(_=>{const w=_[0],S=this.options.grawlixChar+w.slice(1,w.length);h=h.replace(w,S)}),h}case s.CensorType.FirstVowel:case s.CensorType.AllVowels:{const h=new RegExp("[aeiou]",b===s.CensorType.FirstVowel?"i":"ig");let _=c;return Array.from(c.matchAll(this.regex)).forEach(w=>{const S=w[0],T=S.replace(h,this.options.grawlixChar);_=_.replace(S,T)}),_}default:throw new Error(`Invalid replacement type: "${b}"`)}}addWords(c){this.blacklist.addWords(c)}removeWords(c){this.blacklist.removeWords(c)}buildRegex(){const c=this.blacklist.words.map(i.escapeRegExp),b=this.whitelist.words.map(i.escapeRegExp),h=`${this.options.wholeWord?"\\b":""}(${c.join("|")})${this.options.wholeWord?"\\b":""}`,_=this.whitelist.empty?"":`(?!${b.join("|")})`;this.regex=new RegExp(_+h,"ig")}}e.Profanity=o,e.profanity=new o,e.default=e.profanity})(be);(function(e){var t=O&&O.__createBinding||(Object.create?function(i,r,o,a){a===void 0&&(a=o);var c=Object.getOwnPropertyDescriptor(r,o);(!c||("get"in c?!r.__esModule:c.writable||c.configurable))&&(c={enumerable:!0,get:function(){return r[o]}}),Object.defineProperty(i,a,c)}:function(i,r,o,a){a===void 0&&(a=o),i[a]=r[o]}),s=O&&O.__exportStar||function(i,r){for(var o in i)o!=="default"&&!Object.prototype.hasOwnProperty.call(r,o)&&t(r,i,o)};Object.defineProperty(e,"__esModule",{value:!0}),s(be,e),s(N,e)})(oe);const ve=new oe.ProfanityOptions;ve.wholeWord=!1;const ho=new oe.Profanity(ve),po={name:"ProductShow",components:{AddToCartPopup:Ge,ProductPreview:co,ProductReviewPopup:He,SizeChartPopup:Ue,ProductInfo:Dt,ProductSpec:Ut,ProductReviews:Qt,ProductRating:M(()=>G(()=>import("./ProductRating.70b5d9d9.js"),["assets/ProductRating.70b5d9d9.js","assets/vue.02ad7c87.js"])),PersonalizationForm:M(()=>G(()=>import("./PersonalizationForm.d6a822b8.js"),["assets/PersonalizationForm.d6a822b8.js","assets/PersonalizationForm.190e6d10.css","assets/vue.02ad7c87.js","assets/index.d381c3fa.js","assets/index.f2790301.js","assets/index.5765714a.css","assets/sentry.13e8e62e.js","assets/faTrashCan.d29db4c5.js","assets/bounds.f75ef37b.js","assets/cjs.495c27ac.js","assets/sierraCanvas.5282c37d.js","assets/colorGradient.9d411cb1.js","assets/logger.5c633fc9.js","assets/isDeviceIos.771ad25f.js","assets/rgbToHsv.83deeb62.js","assets/animation.d9c14651.js","assets/index.dafcb5d6.js","assets/uniqBy.6d2267cf.js","assets/AddToCartPopup.898390d9.js","assets/faCheck.fe49c668.js","assets/ProductReviewPopup.vue_vue_type_script_setup_true_lang.56ae2f4f.js","assets/index.b6876aa9.js","assets/faImages.ae4f0e7e.js","assets/SizeChartPopup.b6f669e6.js","assets/startCase.0949da17.js","assets/faThumbsUp.63f20369.js","assets/faTruckFast.dc4517d2.js","assets/faTruckFast.c2a75c12.js","assets/faRulerHorizontal.6c75a8c5.js","assets/faPaintbrush.bc5c32eb.js","assets/ProductStock.4705df1a.js","assets/ProductStock.d7be99d6.css","assets/faInfoCircle.774d0234.js","assets/EcoIcons.12c3d457.js","assets/faSync.d34711d5.js","assets/forms.daaaa22a.js","assets/faComment.30e0d0ca.js","assets/faChevronUp.0b9adb20.js","assets/ProductImageCarousel.3f92be9f.js","assets/ProductImageCarousel.04a3cc9e.css","assets/store.f1d78d8a.js","assets/productProvider.ca1aa048.js"]))},mixins:[ot],inject:["theme"],provide(){return{setVuexProperty:this.setVuexProperty,getVuexProperty:this.getVuexProperty}},props:{product:Object},data(){return{selectedColor:null,frontCanvas:null,backCanvas:null,personalizationFormData:[],personalizationLayer:"front"}},computed:{uniqueBundleItems(){return ge(this.product.bundleItems,"id")},mobile(){return U.isSmaller("md")},productRating(){return this.product.reviews.rating},productRatingCount(){return this.product.reviews.count},hasReviews(){return!!this.product.reviews.raw.length},enableBackPersonalization(){return this.product.personalizationTemplate?!!JSON.parse(this.product.personalizationTemplate).objects.find(t=>t.layer==="back"):!1}},created(){this.registerVuexModule()},methods:{scrollToReviews(){if(this.$refs.reviewsContainer){const e=document.querySelector(".header"),t=e?e.offsetHeight:80;window.scrollTo({top:this.$refs.reviewsContainer.offsetTop-(t+16),behavior:"smooth"})}},initFrontCanvas(e){this.frontCanvas=e},initBackCanvas(e){this.backCanvas=e},async onPersonalizationAddToCart({color:e,size:t,response:s,reject:i}){const{frontDesignFile:r,backDesignFile:o}=await this.exportCanvasLayers();let a=!1;if(this.personalizationFormData.forEach(h=>{var _,w;if((_=h.rules)!=null&&_.profanityFilter){const S=h.layer==="front"?this.frontCanvas.findObject(h.id):(w=this.backCanvas)==null?void 0:w.findObject(h.id);ho.exists(S.text)&&(snackbar.error("Please remove profane language"),i(),a=!0)}}),a)return;const{data:c}=await Le.post(C(`/omnis/v3/studio/createFrontendProduct/${this.product.id}`),{sku:this.product.baseSku,colours:[e],front_design_base64:r,back_design_base64:o,name:`${this.product.name} (Custom)`}),{data:b}=c;this.$store.dispatch("cart/addItem",{item:{productId:b.id,productName:b.name,productColor:e,productSize:t,productPrice:this.product.price},name:"main"}).then(h=>{s(h)}).catch(()=>{i()})},onFocusPersonalizationItem({layer:e}){this.personalizationLayer=e},onBlurPersonalizationItem(){this.personalizationLayer=null},exportCanvasLayers(){return new Promise(e=>{this.exportCanvasLayer(this.frontCanvas,"front").then(t=>{this.exportCanvasLayer(this.backCanvas,"back").then(s=>{e({frontDesignFile:t,backDesignFile:s})})})})},exportCanvasLayer(e,t,s="image/png",i=2584){return new Promise(r=>{if(!e){r(null);return}if(!e.getObjects(t).length){r(null);return}const a=i/e.boundingBox.width;r(e.export(s,.92,a,1,!1))})}}},fo={class:"page-product"},go={class:"row mb-16"},bo={class:"col-md-7 px-0 md:px-4"},ko={class:"col-md-5 px-0 md:px-4"},_o={class:"row mb-16"},vo={class:"col-12"},yo={ref:"reviewsContainer",class:"row mb-16"},wo={class:"col-12"},So={key:0,class:"mb-8"},Co={class:"mb-4"},Po={key:1};function zo(e,t,s,i,r,o){const a=u("product-preview"),c=u("personalization-form"),b=u("product-rating"),h=u("product-info"),_=u("product-spec"),w=u("product-reviews"),S=u("tml-button"),T=u("tml-loader"),B=u("size-chart-popup"),A=u("product-review-popup");return n(),d("div",fo,[g("div",go,[g("div",bo,[m(a,{"selected-color":r.selectedColor,product:s.product,"enable-personalization":!!s.product.personalizationTemplate,"enable-back-personalization":o.enableBackPersonalization,"personalization-layer":r.personalizationLayer,onFrontCanvasInitialised:o.initFrontCanvas,onBackCanvasInitialised:o.initBackCanvas},null,8,["selected-color","product","enable-personalization","enable-back-personalization","personalization-layer","onFrontCanvasInitialised","onBackCanvasInitialised"])]),g("div",ko,[m(h,{product:s.product,class:W(["px-4",{"pt-5":o.mobile}]),"override-add-to-cart":!!s.product.personalizationTemplate,onColorSelected:t[2]||(t[2]=l=>r.selectedColor=l),onCustomAddToCart:o.onPersonalizationAddToCart},Pe({_:2},[s.product.personalizationTemplate?{name:"personalization",fn:k(()=>[m(c,{"front-canvas":r.frontCanvas,"back-canvas":r.backCanvas,"selected-color":r.selectedColor,product:s.product,onFormDataUpdated:t[0]||(t[0]=l=>r.personalizationFormData=l),onFocusItem:o.onFocusPersonalizationItem,onBlurItem:o.onBlurPersonalizationItem},null,8,["front-canvas","back-canvas","selected-color","product","onFocusItem","onBlurItem"])]),key:"0"}:void 0,o.hasReviews?{name:"rating",fn:k(()=>[m(b,{class:"mt-2",rating:o.productRating,"rating-count":o.productRatingCount,onClicked:t[1]||(t[1]=l=>o.scrollToReviews())},null,8,["rating","rating-count"])]),key:"1"}:void 0]),1032,["product","class","override-add-to-cart","onCustomAddToCart"])])]),g("div",_o,[g("div",vo,[m(_,{product:s.product},null,8,["product"])])]),g("div",yo,[g("div",wo,[m(T,{loading:!s.product,height:"500px","loading-ratio":.5},{default:k(()=>{var l,v,x;return[o.hasReviews?(n(),d("div",So,[g("h4",Co,z((l=s.product)==null?void 0:l.name)+" Reviews ",1),g("p",null," Recent customer reviews gave our "+z((v=s.product)==null?void 0:v.name)+" "+z(o.productRating)+"/5 on average. ",1)])):(n(),d("h4",Po," Our "+z((x=s.product)==null?void 0:x.name)+" hasn't had any reviews yet ",1)),m(w,{"product-id":s.product.id},null,8,["product-id"]),m(S,{class:"mt-4",style:he({width:o.mobile?"100%":"300px"}),"border-radius":o.theme().get("button.border.radius"),text:"Submit review",onClick:t[3]||(t[3]=E=>e.$overlays.open("share-review-popup"))},null,8,["style","border-radius"])]}),_:1},8,["loading","loading-ratio"])])],512),s.product?(n(),d(y,{key:0},[s.product.isBundle?(n(!0),d(y,{key:1},I(o.uniqueBundleItems,l=>(n(),f(B,{key:l.id,product:l},null,8,["product"]))),128)):(n(),f(B,{key:0,product:s.product},null,8,["product"])),m(A,{product:s.product},null,8,["product"])],64)):p("",!0)])}const xo=V(po,[["render",zo]]),Io={key:0,class:"section-product-list mb-8"},ye=H({__name:"ProductGrid",props:{products:null,titleText:null,titleAlignment:{default:"center"}},emits:["click"],setup(e){return(t,s)=>{const i=u("tml-new-pod"),r=u("tml-grid");return e.products.length?(n(),d("div",Io,[e.titleText?(n(),d("h4",{key:0,class:W({center:e.titleAlignment==="center","mb-8":!0})},z(e.titleText),3)):p("",!0),m(r,{breakpoints:{sm:2,lg:4}},{default:k(()=>[(n(!0),d(y,null,I(e.products,o=>(n(),f(i,{key:`${o.id}-${o.optionId||0}`,title:o.name,"title-size":ee(U).isSmaller("md")?0:1,image:o.lifestyleImage||o.image,href:`/product/${o.urlName}/`,price:o.isBundle?o.totalBundlePrice:o.price,"sale-price":o.isBundle?o.price:o.salePrice,"lazy-load":"","image-src-set":[{width:320,height:320},{width:480,height:480},{width:640,height:640}],onClick:a=>t.$emit("click",o)},null,8,["title","title-size","image","href","price","sale-price","onClick"]))),128))]),_:1})])):p("",!0)}}}),To=H({__name:"ProductRecommendations",props:{product:null,divisionId:null,titleText:{default:"Other products you might like"},titleAlignment:{default:"center"},algorithm:{default:"fast"}},setup(e){const t=e,s=ze([]);return xe(()=>t.product,()=>{!t.product||st.list(t.divisionId,8,t.product?null:"bestsellerOrder",t.algorithm,t.product?t.product.urlName:null).then(i=>{s.value=i}).catch(i=>{K(i)})},{immediate:!0}),(i,r)=>{var o;return n(),f(ye,{products:(o=s.value)!=null?o:[],"title-text":e.titleText,"title-alignment":e.titleAlignment,onClick:r[0]||(r[0]=a=>ee(F).event("click-related-product"))},null,8,["products","title-text","title-alignment"])}}}),Oo=H({__name:"ProductCrossSell",props:{divisionId:null,product:null,titleText:{default:"Works great with"},titleAlignment:{default:"left"}},setup(e){return(t,s)=>{var i;return((i=e.product.crossSellProducts)==null?void 0:i.length)>0?(n(),f(ye,{key:0,products:e.product.crossSellProducts,"title-text":e.titleText,"title-alignment":e.titleAlignment,onClick:s[0]||(s[0]=r=>ee(F).event("click-related-product"))},null,8,["products","title-text","title-alignment"])):p("",!0)}}}),Bo={name:"ProductPage",components:{ProductShow:xo,ProductRecommendations:To,ProductUgc:Te,DesignCrossSeller:Oe,ProductCrossSell:Oo,ProductTaglets:Be},inject:["app","theme"],data(){return{product:null,store:ne}},computed:{isPro(){var e;return(e=ne.state.subdomain)==null?void 0:e.pro},metaDescription(){return this.product.metaDescription?this.product.metaDescription:this.product.shortDescription?this.product.shortDescription:this.product.description},productImage(){var e,t,s,i;return(t=(e=this.product)==null?void 0:e.lifestyleImages)!=null&&t.length?this.product.lifestyleImages[0][640]:(i=(s=Object.values(this.product.options)[0])==null?void 0:s.flatImage)==null?void 0:i[480]},ugcImages(){var e,t;return((t=(e=this.product)==null?void 0:e.ugcImages)==null?void 0:t.map(s=>({src:s[480],altText:s.altText,color:s.color})))||[]},showCrossSeller(){var e;return(e=this.product.designCrossSellData)==null?void 0:e.enabled},productHasOptionsInStock(){return this.product.isBundle?this.product.bundleOptions?Object.values(this.product.bundleOptions).every(e=>this.someOptionsAreInStock(e)):!1:this.someOptionsAreInStock(this.product.options)}},watch:{["$route.params.product"]:{immediate:!0,handler(e){var t;!e||(this.product=null,fetch(C(`/omnis/v3/division/${this.$store.state.subdomain.division}/products/${this.$route.params.product}/`),{credentials:"include",mode:"no-cors"}).then(s=>{if(s.ok||s.status===302)return s.json();throw s.status===404?new ae:new D}).then(s=>{if(s.message){this.$router.push(s.message);return}this.$store.commit("product/setActive",s);let i=Me(s);this.handleProductTracking(i),this.$store.commit("setTitle",i.name),this.$eventBus.emit("tml-breadcrumbs-update"),fetch(C(`/omnis/v3/division/${this.$store.state.subdomain.division}/products/${this.$route.params.product}/stock/`),{credentials:"include",mode:"no-cors"}).then(r=>{if(r.ok)return r.json();throw new D}).then(r=>{i.isBundle?i=Object.assign({},i,{bundleOptions:r}):Object.values(i.options).forEach(o=>{r[o.colour]?Object.keys(r[o.colour].sizes).forEach(a=>{o.sizes[a]&&(o.sizes[a].stock=r[o.colour].sizes[a])}):delete i.options[o.colour]}),i.addButtonDisabled=!1,this.product=i}).catch(r=>{if(r instanceof D){R.error();return}K(r)})}).catch(s=>{if(s instanceof ae){this.$router.replace("/404");return}if(s instanceof D){R.error("Unable to load product data. Please try again");return}K(s)}),(t=this.$store.state.forms)!=null&&t["product-options"]&&this.$store.commit("forms/product-options/unload"))}}},created(){this.setMetaData()},methods:{handleProductTracking(e){var s,i,r,o,a,c,b,h;F.event("view-product",{items:[e.id]});const t=e.salePrice||e.price;X().viewItem({contentType:"product",items:[{id:e.uuid,name:e.name,brand:JSON.stringify(this.$store.state.subdomain.company.name),price:t,currency:(o=(r=(i=(s=this.$store)==null?void 0:s.state)==null?void 0:i.subdomain)==null?void 0:r.currency)!=null?o:"GBP"}],currency:(h=(b=(c=(a=this.$store)==null?void 0:a.state)==null?void 0:c.subdomain)==null?void 0:b.currency)!=null?h:"GBP",value:t,userId:this.$store.state.subdomain.sessionId})},escapeQuotes(e){return e.replace(/"/g,'\\"')},someOptionsAreInStock(e){return Object.values(e).some(t=>this.colourHasSizesInStock(t))},colourHasSizesInStock(e){return Object.values(e.sizes).some(t=>(typeof t=="number"?t:t==null?void 0:t.stock)>0)},setMetaData(){We(Ie(()=>{var e,t;if(this.product&&this.product.id){const s=`${location.protocol}//${location.hostname}`,i=`${s}${this.$route.fullPath}`,r=`{
              "@type": "Brand",
              "name": "${this.$store.state.subdomain.company.name}"
            }`;let o="";return(e=this.product.reviews)!=null&&e.count&&(o=`[${this.product.reviews.raw.map(c=>`{
            "@type": "Review",
            "reviewRating": {
              "@type": "Rating",
              "ratingValue": "${c.rating}"
            },
            "author": {
              "@type": "Person",
              "name": "${c.author}"
            },
            "reviewBody": "${this.escapeQuotes(c.text)}"
            ${c.reply?`,
              "comment": {
                "@type": "Comment",
                "author": {
                  "@type": "Person",
                  "name": "${c.reply.author.name}",
                  "brand": ${r}
                },
                "text": "${L(c.reply.text)}"
              },
              "commentCount": 1`:""}
        }`).join(",")}]`),{title:this.product.metaTitle?this.product.metaTitle:this.$store.state.title,script:[{type:"application/ld+json",children:`
              {
                "@context": "http://schema.org/",
                "@type": "Product",
                "name": "${L(this.product.name)}",
                "sku": "${this.product.id}",
                "url": "${i}",
                "image": "${this.productImage}",
                "category": "${L(this.product.category||"All Products")}",
                "description": "${L(this.product.shortDescription?this.product.shortDescription:this.product.description)}",
                "brand": ${r},
                ${(t=this.product.reviews)!=null&&t.count?`
                  "aggregateRating": {
                    "@type": "AggregateRating",
                    "ratingValue": "${this.product.reviews.rating}",
                    "reviewCount": "${this.product.reviews.count}"
                  },
                  "review": ${o},`:""}
                "offers": [
                  ${this.$store.getters["currency/getLdJson"]({price:this.product.price,url:i,inStock:this.productHasOptionsInStock}).join(",")}
                ]
              }
            `}],meta:[{vmid:"og:url",property:"og:url",content:`${s}${this.$route.fullPath}`},{vmid:"og:title",property:"og:title",content:this.product.metaTitle?this.product.metaTitle:this.$store.state.title},{vmid:"og:description",property:"og:description",content:this.metaDescription},{vmid:"og:image",property:"og:image",content:this.product.metaImage?this.product.metaImage.src:this.productImage},{vmid:"og:image:width",property:"og:image:width",content:"640"},{vmid:"og:image:height",property:"og:image:height",content:"674"},{vmid:"og:type",property:"og:type",content:"website"},{vmid:"twitter:title",property:"twitter:title",content:this.product.metaTitle?this.product.metaTitle:this.$store.state.title},{vmid:"twitter:card",property:"twitter:card",content:"photo"},{vmid:"twitter:image",property:"twitter:image",content:this.product.metaImage?this.product.metaImage.src:this.productImage},{vmid:"description",name:"description",content:this.metaDescription}],link:[{vmid:"canonical",rel:"canonical",href:`${s}/product/${this.product.urlName}/`}]}}return{}}))}}};function jo(e,t,s,i,r,o){var S;const a=u("product-show"),c=u("product-cross-sell"),b=u("design-cross-seller"),h=u("product-recommendations"),_=u("product-ugc"),w=u("product-taglets");return r.product?(n(),d(y,{key:0},[(n(),f(a,{key:r.product.id,product:r.product},null,8,["product"])),o.isPro?(n(),f(c,{key:0,product:r.product,"division-id":r.store.state.subdomain.division},null,8,["product","division-id"])):p("",!0),o.isPro&&o.showCrossSeller?(n(),f(b,{key:1,product:r.product,class:"mb-16 pb-2"},null,8,["product"])):p("",!0),(n(),f(h,{key:r.product.id,class:"!mb-16",product:r.product,"division-id":r.store.state.subdomain.division,"title-alignment":"left"},null,8,["product","division-id"])),o.ugcImages.length?(n(),f(_,{key:2,class:"mb-16","ugc-images":o.ugcImages,"title-text":o.theme().get("productPage.ugc.title.text"),"subtitle-text":o.theme().get("productPage.ugc.subtitle.text")},null,8,["ugc-images","title-text","subtitle-text"])):p("",!0),o.app.theme.get("page.product.taglets.visible")==="1"&&((S=r.product.tags)==null?void 0:S.length)?(n(),f(w,{key:3,class:"mb-8",tags:r.product.tags},null,8,["tags"])):p("",!0)],64)):p("",!0)}const Vo=V(Bo,[["render",jo]]),es=Object.freeze(Object.defineProperty({__proto__:null,default:Vo},Symbol.toStringTag,{value:"Module"}));export{es as P,oe as d};
//# sourceMappingURL=ProductPage.dc5cdb0f.js.map
