1import{a as st}from"/build/_shared/chunk-WDXJVMOY.js";import{a as tt,d as at,f as ct,g as ut,h as pt}from"/build/_shared/chunk-EIOC3IOF.js";import{c as ot,e as rt}from"/build/_shared/chunk-DZGDZ3GC.js";import{a as nt,c as it}from"/build/_shared/chunk-HV4KZ4KM.js";import{a as X}from"/build/_shared/chunk-5EJJQLIF.js";import{a as et}from"/build/_shared/chunk-42ITEOR7.js";import{f as Y}from"/build/_shared/chunk-WYWTJVVI.js";import{a as V}from"/build/_shared/chunk-5KTLGSZR.js";import{a as j}from"/build/_shared/chunk-RZLDKGLN.js";import{a as G}from"/build/_shared/chunk-POUH3CHJ.js";import{c as dt}from"/build/_shared/chunk-CBDM7QYU.js";import{a as g}from"/build/_shared/chunk-FONEQPGK.js";import{b as $}from"/build/_shared/chunk-V53WT573.js";import{a as J}from"/build/_shared/chunk-YUUKFOQM.js";import{a as Z}from"/build/_shared/chunk-DEVQKMWM.js";import{c as O}from"/build/_shared/chunk-SF7SKMF7.js";import{a as L}from"/build/_shared/chunk-5OBEDPFR.js";import{a as H}from"/build/_shared/chunk-H6S7FWVP.js";import{d as v}from"/build/_shared/chunk-T36URGAI.js";var b=v(H()),St=v(L()),lt={},ft=(0,b.createContext)({bundleProductsState:lt,dispatch:()=>null}),Mt=(r,t)=>{let o="",u,s="",h;switch("bundleType"in t&&(o=t.bundleType),"product"in t&&(u=t.product,s=u.key),"initialState"in t&&(h=t.initialState),t.type){case"SET_SELECTED_SIZE_VARIANT":return{...r,[o]:{...r[o],products:{...r[o].products,[s]:{...r[o].products[s],selectedSizeVariant:t.selectedSizeVariant}}}};case"SET_SELECTED_COLOUR_VARIANT":return{...r,[o]:{...r[o],products:{...r[o].products,[s]:{...r[o].products[s],selectedColourVariant:t.selectedColourVariant}}}};case"SET_IS_SELECTED":return{...r,[o]:{...r[o],products:{...r[o].products,[s]:{...r[o].products[s],isSelected:t.isSelected}}}};case"SET_SIZE_SELECTION_ERROR":return{...r,[o]:{...r[o],products:{...r[o].products,[s]:{...r[o].products[s],sizeSelectionError:t.sizeSelectionError}}}};case"SET_INITIAL_STATE":return t.initialState;default:return r}},Qt=({children:r})=>{let[t,o]=(0,b.useReducer)(Mt,lt);return(0,St.jsx)(ft.Provider,{value:{bundleProductsState:t,dispatch:o},children:r})},yt=()=>(0,b.useContext)(ft);var c=v(H());var Tt=()=>({quickAddOpenChatbot:()=>{g({event:"quickAddOpenChatbot"})},quickAddATBChatbot:()=>{g({event:"quickAddATBChatbot"})},viewProductChatbot:()=>{g({event:"viewProductChatbot"})},addToBagPDPChatbot:()=>{g({event:"addToBagPDPChatbot"})}});var f=v(L()),Ce=({abTest:r=!1,items:t,onAdded:o,onError:u,buttonVariant:s="primary",bundleType:h,showActive:x,positionRef:Ct,onAddToCartSuccess:w,quickAdd:D,setIsAdded:R,isAdded:Ut,isSubscriptionAdd:vt=!1,listType:P,buttonRef:bt,...E})=>{var W,K,Q;let i=V(),{setCart:m,cart:y}=(0,c.useContext)(et),k=(0,c.useContext)(Z),{user:T}=(0,c.useContext)(j),{setLastAddedSKUs:ht}=(0,c.useContext)(nt),{updateCart:gt}=X(),{updateCartEvent:Pt,env:Et}=at(),{addedToBasket:kt}=tt(),[F,At]=(0,c.useState)(!1),{dispatch:Bt}=yt(),{isQuickAddOpen:It}=(0,c.useContext)(it),[_t,Lt]=(0,c.useState)(!1),{translate:A}=J(),wt=V(),{addToBagPDPChatbot:Rt}=Tt(),{updateCart:mt,updateCartWithAddOns:qt}=ct(),[Ot,N]=(0,c.useState)(!1),{enableSignInLinks:Vt,allowGuestToBuyPremier:z}=(0,c.useContext)(G),q=t==null?void 0:t.some(d=>{var n;return O.includes(((n=d.product)==null?void 0:n.key)||"")}),xt=()=>{var d;if(typeof window!="undefined"&&((d=window.loudcrowd)!=null&&d.identifyDevice)){let n=window.loudcrowd.identifyDevice();n&&wt.submit({lcAnonId:n},{method:"post",action:"/_api/loudcrowd/setAnonId"})}};(0,c.useEffect)(()=>{i.data&&"id"in i.data&&(xt(),w==null||w())},[i.data]),(0,c.useEffect)(()=>{var d;q&&((d=y==null?void 0:y.lineItems)!=null&&d.find(n=>O.includes((n==null?void 0:n.key)||"")))&&!r&&At(!0)},[y]);let[Dt,Ft]=(0,c.useState)(),M=(0,c.useMemo)(()=>h||x?t==null?void 0:t.reduce((d,n)=>d&&!!n.product,!0):t==null?void 0:t.reduce((d,n)=>d&&!!n.product&&!!n.variant,!0),[t]),U=(d,n=!1)=>{if(M&&(t!=null&&t.length)&&(t!=null&&t[0].product)){let B=window.location.href;if(!n&&q&&(!T||T!=null&&T.guest)&&!z){N(!0);return}if(B.includes("chatbot=true")&&Rt(),h&&t.some(e=>!e.variant)){t.forEach(e=>{e.variant||Bt({type:"SET_SIZE_SELECTION_ERROR",bundleType:h,product:e.product,sizeSelectionError:!0})});return}if(x&&t.some(e=>
1!e.variant)){t.forEach(e=>{e.variant||(u==null||u(A("product.selectSizeError")),Ct&&pt())});return}if(vt&&t.some(e=>!e.subscriptionFrequency)){u==null||u(A("subscription.frequency.error"));return}Ft(t),kt(t==null?void 0:t[0].product),u==null||u(void 0);let{algoliaQueryId:I,hitObjectIDs:a}=Y({satelliteKey:k==null?void 0:k.key,productKeys:t==null?void 0:t.map(e=>{var S;return(S=e.product)==null?void 0:S.key}).filter(Boolean)});i.submit({data:JSON.stringify({items:t==null?void 0:t.map(e=>{var S,l,p,C;return{sku:((S=e==null?void 0:e.variant)==null?void 0:S.marketplaceSku)||((l=e==null?void 0:e.variant)==null?void 0:l.sku),quantity:(e==null?void 0:e.quantity)||1,subscriptionFrequency:e==null?void 0:e.subscriptionFrequency,customFields:(p=e==null?void 0:e.customFields)==null?void 0:p.filter(_=>_.value),insuranceQuoteId:(C=e==null?void 0:e.coverPolicy)==null?void 0:C.productConfigId,pricePromiseToken:e==null?void 0:e.pricePromiseToken,algolia:{hitObjectIDs:a,algoliaQueryId:I}}})})},{method:"post",action:"/_api/basket/addToCart"})}};(0,c.useEffect)(()=>{var d,n,B;if(i.data&&"id"in i.data){P&&(t==null||t.forEach(a=>{var e;(e=a.product)!=null&&e.key&&ot(a.product.key,P)})),t==null||t.forEach(a=>{var e;(e=a.product)!=null&&e.key&&a.variant&&i.data&&"id"in i.data&&(gt({product:a.product,variant:a.variant,quantity:a.quantity||1,type:"add",cart:i.data,context:{pageType:"product",buttonLabel:A("pdp.buttonAddToBasket")}}),Pt({type:"add",pageType:"product",product:{productKey:a.product.key,quantity:1},env:Et}),m==null||m(i.data)),o==null||o(Dt),D&&Lt(!0)});let I=(d=i.data.lineItems)==null?void 0:d.map(a=>a==null?void 0:a.key).filter(Boolean);if(I.length&&rt(I),!It&&t){let a=t.filter(l=>{var p;return(p=l.variant)==null?void 0:p.sku}).map(l=>{var p;return(p=l.variant)==null?void 0:p.sku}),e=t.some(l=>!!l.coverPolicy),S=a.some(l=>{var p;return!((p=y==null?void 0:y.lineItems)!=null&&p.some(C=>{var _;return((_=C==null?void 0:C.variant)==null?void 0:_.sku)===l}))});ht({skus:a,hasCoverSelected:e,wasFirstAdd:S})}if(t&&((n=t[0])!=null&&n.product)){let{addOns:a,lineItemForEvent:e}=ut({variant:t[0].variant,customFields:t[0].customFields,quantity:t[0].quantity,coverPolicy:t[0].coverPolicy,cartLineItems:i.data.lineItems});a.length>0&&e?qt(e,a,"add_to_cart",P,"product"):mt(t[0].product,"add_to_cart",t[0].variant,t[0].quantity,P,void 0,"product")}}else u==null||u((B=i.data)==null?void 0:B.error)},[i.data]);let Nt=r&&E.disabled,zt=((K=(W=k.theming)==null?void 0:W.cta)==null?void 0:K.case)!=="nochange";return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)($,{className:`align-middle relative text-center cursor-pointer font-semibold disabled:cursor-default rounded px-5 h-[3.125rem] w-full overflow-hidden ${zt?"uppercase":""} ${E.className||""}`,loading:i.state!=="idle",type:"submit",ref:bt,variant:_t?"addedQuickAdd":s,onClick:d=>{D&&(d.preventDefault(),R==null||R(!0)),U(d)},disabled:E.disabled||!M||F,dataTestId:"add-to-bag-button",children:F||Nt?"Added":q&&(!T||T.guest)&&!z?A("basketItems.signUpAndAdd"):E.children}),i.data&&"error"in i.data&&!u&&(0,f.jsx)("div",{className:"mt-3",children:(0,f.jsx)(dt,{message:(Q=i.data)==null?void 0:Q.error,type:"error"})}),(0,f.jsx)(st,{isOpen:Ot,onClose:()=>N(!1),enabledSignInLinks:Vt,onSignIn:()=>U(null,!0),type:"unlimited"})]})};export{Qt as a,yt as b,Tt as c,Ce as d};
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.