1import{a as e}from"./chunk-Cyuzqnbw.js";import{Ei as t,Hr as n,I as r,V as i,Vr as a,_t as o,ei as s,eo as c,jt as ee,li as l,mi as u,nr as d,rr as f,sr as p,ti as m}from"./chunk-EVOBXE3Y-Gx1JiEIH.js";import{t as te}from"./z-BPprTXAq.js";import{r as ne}from"./dist-DsR67Lcr.js";import{l as re}from"./locale-BbplDEnA.js";import{r as h}from"./hoist-non-react-statics.cjs-COAd4qDN.js";import{t as ie}from"./fetchApi-Bf7WIn5J.js";import{t as ae}from"./cart-gvScXgV_.js";var g=e(o(),1),_=e(ee(),1),v=()=>{let e=c.get(`cartId`);return(0,_.pipe)(g.fromNullable(e),g.chain(e=>g.tryCatch(()=>te.string().parse(JSON.parse(e)))),g.getOrElse(()=>e))},oe=e=>{c.set(`cartId`,JSON.stringify(e)),re(`cartId`,e)},y=()=>{c.remove(`cartId`)},b=l(u(),u()),x=n({centAmount:s()}),se=n({value:x}),ce=n({attributes:f(m({name:u(),value:d()})).optional(),sku:u().optional()}),S=n({fields:l(u(),d())}),le=n({obj:n({key:u().optional()}).optional()}),C=m({type:a(`centPrecision`),centAmount:s(),currencyCode:u(),fractionDigits:s()}),ue=n({custom:S.optional(),id:u(),lineItemMode:t([a(`GiftLineItem`),a(`Standard`)]),name:b,price:se,productType:le,quantity:s(),totalPrice:x,variant:ce}),de=n({custom:S.optional(),id:u(),name:b,quantity:s()}),fe=n({discountCode:n({obj:n({code:u()}).optional()}),state:t([a(`ApplicationStoppedByPreviousDiscount`),a(`DoesNotMatchCart`),a(`MatchesCart`),a(`MaxApplicationReached`),a(`NotActive`),a(`NotValid`),u()])}),pe=n({totalNet:C,totalGross:C}),me=n({id:u()}),he=t([a(`DoesNotMatchCart`),a(`MatchesCart`),u()]),ge=n({shippingMethodName:u(),price:C,shippingMethod:me.optional(),shippingMethodState:he}),_e=t([m({type:a(`Classification`),key:u()}),m({type:a(`Score`),score:s()})]),w=m({additionalStreetInfo:u().optional(),city:u().optional(),country:u(),email:u().optional(),firstName:u().optional(),lastName:u().optional(),phone:u().optional(),postalCode:u().optional(),state:u().optional(),streetName:u().optional()}),T=n({billingAddress:w.optional(),cartState:t([a(`Active`),a(`Frozen`),a(`Merged`),a(`Ordered`),u()]),custom:S.optional(),customLineItems:f(de),discountCodes:f(fe),id:u(),lineItems:f(ue),locale:u().optional(),shippingAddress:w.optional(),shippingInfo:ge.optional(),shippingRateInput:_e.optional(),taxedPrice:pe.optional(),totalPrice:C}),ve=e=>e.find(e=>e.state===`MatchesCart`)?.discountCode.obj?.code||null,E=(e,t)=>{let{pricePerUnit:n,quantity:r}=e;if(!n[t])return;let{centAmount:i}=n[t];return i*r},ye=(e,t)=>e.reduce((e,n)=>e+(E(n,t)||0),0),be=(e,t,n)=>t-e.reduce((e,t)=>e+(E(t,n)||0),0);function D(e,t,n=null){return t.custom?.fields[e]??n??null}var xe=e=>D(`partnerMemberNumber`,e),O={bmsNodeId:11486062,countryAbbreviation:`US`,countryCode:`US`,countryName:`United States`,currencyCode:`USD`,currencySymbol:`$`,drupalCountryId:840,localeCode:`en-US`},Se=[O,{bmsNodeId:11486497,countryAbbreviation:`UK`,countryCode:`GB`,countryName:`United Kingdom`,currencyCode:`GBP`,currencySymbol:`£`,drupalCountryId:826,localeCode:`en-GB`}],Ce=()=>O,k=e=>Se.find(t=>t.localeCode===e)||Ce(),we=e=>e?.key===`accessory`,Te=e=>e?.key===`service`,A=e=>e?.key===`package_parent`,j=e=>N(e)?e.productType.obj?.key:void 0,M=(e,t,n=null)=>t.attributes?.find(t=>t.name===e)?.value??n,Ee=e=>!N(e),N=e=>`lineItemMode`in e,De=e=>e.lineItemMode===`GiftLineItem`,P=e=>{let t=e.productType?.obj;return t?Te(t):!1},F=e=>{let t=e.productType?.obj;return t?we(t)&&/^SSPSH(-[A-Z]+)?$/.test(B(e)):!1},Oe=e=>{let t=e.productType?.obj;return t?A(t):!1},I=e=>!!z(e)&&(Ee(e)||!Oe(e)&&!P(e)&&!F(e)),L=e=>{let t=e.productType?.obj;return t?A(t)&&D(`product_is_bms`,e,!1):!1},ke=e=>{let t=e.productType?.obj;return t?A(t)&&!D(`product_is_bms`,e,!1):!1},R=(e,t)=>{let n=z(e);return t.filter(t=>I(t)&&z(t)===n&&t.id!==e.id)},Ae=(e,t)=>
1e.map(({quantity:e,price:n})=>e*n.value.centAmount/t).reduce((e,t)=>e+t,0),je=e=>e.map(e=>e.totalPrice.centAmount).reduce((e,t)=>e+t,0),z=e=>D(`package_parent_id`,e,``),B=e=>D(`product_key`,e,``),Me=e=>M(`weight`,e.variant,0),Ne=e=>M(`hardware-version`,e.variant,``),Pe=e=>M(`is_air_shipping_prohibited`,e.variant,!1),V=e=>M(`is_promo_product`,e.variant,!1),Fe=e=>M(`indeterminatePrice`,e.variant,!1),H=e=>D(`lineItemDisplayName`,e,``),Ie=e=>D(`lineItemSku`,e,``),U=e=>H(e)!==``,Le=e=>D(`packageSource`,e,``),Re=e=>e.lineItems.reduce((t,n)=>L(n)?[...t,ze(n,e)]:ke(n)?[...t,Be(n,e)]:P(n)?[...t,Ve(n,e)]:F(n)?[...t,He(n,e)]:I(n)?t:[...t,Ue(n,e)],[]),ze=(e,t)=>{let n=R(e,t.lineItems),r=R(e,t.customLineItems||[]),i=[...n,...r],a=Ae(n,e.quantity),o=je(n);return W(e,k(t.locale),a,o,i)},Be=(e,t)=>{let n=e.price.value.centAmount,r=e.totalPrice.centAmount,i=R(e,t.customLineItems||[]);return W(e,k(t.locale),n,r,i)},Ve=(e,t)=>{let n=e.totalPrice.centAmount;return W(e,k(t.locale),n,n,[],!0)},He=(e,t)=>{let n=e.price.value.centAmount,r=e.totalPrice.centAmount;return W(e,k(t.locale),n,r,[],!0)},Ue=(e,t)=>{let n=e.price.value.centAmount,r=e.totalPrice.centAmount;return W(e,k(t.locale),n,r)},We=e=>{if(U(e))return{packageName:H(e),packageSku:Ie(e)}},W=(e,t,n,r,i=[],a=!1)=>{let{currencyCode:o,localeCode:s}=t;return{attributes:{hardwareVersion:Ne(e),weight:Me(e)},disabledQuantityUpdates:a,dynamicPackageMeta:We(e),id:e.id,isAirShippingProhibited:Pe(e),isBackordered:!1,isCustomSystem:L(e),isDynamicPackage:U(e),isGift:De(e)||V(e),isIndeterminatePrice:Fe(e),isProInstallation:F(e),isPromoProduct:V(e),isServicePlan:P(e),name:e.name,packageItems:Ge(i),packageParentId:z(e),packageSource:Le(e),pricePerUnit:{[s]:{centAmount:n,currencyCode:o}},pricesAfterDiscount:{[s]:{centAmount:r,currencyCode:o}},productType:j(e),quantity:e.quantity,sku:e.variant.sku}},Ge=e=>e.map(e=>{let t=B(e);return{id:e.id,includedInPackage:D(`includedInPackage`,e,!1),lineItemType:N(e)?`regular`:`custom`,name:e.name,quantity:e.quantity,sku:t,productType:j(e)}}),Ke=e=>e?e.totalGross.centAmount-e.totalNet.centAmount:0;function qe(e){return e.type===`Classification`}var Je=e=>e?.price.centAmount||0,Ye=e=>!e||qe(e)?0:e.score,Xe=e=>!e||!e.shippingMethod||e.shippingMethodState!==`MatchesCart`?null:e.shippingMethodName,Ze=e=>!e||!e.shippingMethod||e.shippingMethodState!==`MatchesCart`?null:e.shippingMethod.id,G=e(ne(),1),Qe=ae(),$e=m({address:m({street:u().optional(),city:u().optional(),state:u().optional(),zipcode:u().optional(),plus4Code:u().optional(),additionalStreetInfo:u().optional()}).optional(),corrections:f(u()).optional(),footnotes:f(u()).optional()}),et=m({cart:T,addressValidation:m({validated:p(),foundValidAddress:p(),suggestions:f($e)})}).passthrough(),tt=m({discountCode:m({obj:m({cartDiscounts:f(m({id:u()})).optional(),groups:f(u()).optional()}).optional()})}),nt=e=>{let t=e?.groups??[];return(e?.cartDiscounts??[]).map(({id:e})=>({cartDiscountId:e,groups:t}))},rt=e=>e.flatMap(e=>{let t=tt.safeParse(e);return t.success?nt(t.data.discountCode.obj):[]}),it=m({discountedPricePerQuantity:f(m({discountedPrice:m({includedDiscounts:f(m({discount:m({id:u()})}))})})).optional(),id:u()}),at=e=>e.flatMap(e=>{let t=it.safeParse(e);if(!t.success)return[];let n=[...new Set((t.data.discountedPricePerQuantity??[]).flatMap(({discountedPrice:e})=>e.includedDiscounts.map(({discount:e})=>e.id)))];return n.length>0?[{discountIds:n,lineItemId:t.data.id}]:[]}),ot=(e,t)=>{let n=rt(e),r=e=>n.find(t=>t.cartDiscountId===e)?.groups??[];return at(t).map(({discountIds:e,lineItemId:t})=>({groups:[...new Set(e.flatMap(r))],lineItemId:t}))},K=(e,t,n,r)=>ie({method:e,body:n,headers:{...r&&{"OPT-VARIATION-IDS":r}},baseUrlOverride:h(),endpoint:t}),q=`?expand=lineItems[*].productType.id&expand=discountCodes[*].discountCode.id&expand=customerGroup`,st=`/carts/v1/carts`,ct=`/carts/v2/carts`,lt=`/v1/carts`,ut=`/v2/carts`,dt=()=>h()?lt:st,ft=()=>h()?ut:ct,J=e=>/(\?expand=[^&]+)/g.test(e),Y=e=>e.replace(/\/\//g,`/`),pt=(e,t=q)=>{let n=dt();return(0,_.pipe)(t,J,r=>r?`${n}/${e}${Y(t)}`:`${n}/${e}${q}`)},mt=(e,t=q)=>{let n=ft();return(0,_.pipe)(t,J,r=>r?`${n}/${e}${Y(t)}`:`${n}/${e}${q}`)},X=(e,t,n)=>i(e).with(1,()=>pt(t,n)).with(2,()=>mt(t,n)).otherwise(()=>pt(t,n)),ht=e=>{let t=e instanceof Error,n=v();return!t&&!e.isPerimeterXError&&e.status===403&&n?K(`POST`,X(1,`replicate/${n}`)):G.left(e)},gt=e=>(y(),G.left(e));function Z(e,t){return JSON.stringify({message:e,status:t.status,url:t.url||`unavailable`,body:t.body||`unavailable`,statusText:t.statusText})}var _t=e=>i(e).with({status:400},e=>Error(Z(`Bad request.`,e))).with({status:401},e=>Error(Z(`Unauthorized cart.`,e))).with({status:403},e=>Error(Z(`Forbidden cart.`,e))).with({status:404},e=>Error(Z(`Cart not found.`,e))).with({status:500},e=>Error(Z(`Server error.`,e))).otherwise(()=>Error(`Unknown cart error: ${JSON.stringify(e)}`)),vt=e=>i(e).with({status:404},()=>gt(e)).with({status:403},()=>ht(e)).otherwise(()=>G.left(e)),Q=e=>{let t=Re(e),n=e.cartState===`Active`,r=g.fromNullable(xe(e));return n?oe(e.id):y(),{isActive:n,lineItems:t,totalPrice:e.totalPrice.centAmount,discountCode:ve(e.discountCodes),lineItemDiscountGroups:ot(e.discountCodes,e.lineItems),partnerMemberNumber:r,shippingAddress:e.shippingAddress||null,billingAddress:e.billingAddress||null,taxPrice:Ke(e.taxedPrice),shippingPrice:Je(e.shippingInfo),shippingRateInput:Ye(e.shippingRateInput),shippingMethod:{id:Ze(e.shippingInfo),name:Xe(e.shippingInfo)},custom:e.custom?.fields??{},ctState:e.cartState}},$=(e,t={})=>(0,_.pipe)(e,G.orElse(vt),G.mapLeft(e=>(0,_.pipe)(e,_t,e=>r(e,t))),G.chain(e=>{let t=T.safeParse(e);return t.success?G.right(t.data):G.left(t.error)}),G.map(Q)),yt=e=>(0,_.pipe)(K(`GET`,X(1,e)),e=>$(e,{cartAction:`getCart`})),bt=(e,t)=>(0,_.pipe)(K(`GET`,X(1,`quote/${t}/${e}`)),e=>$(e,{cartAction:`getCartByQuoteId`})),xt=e=>(0,_.pipe)(K(`POST`,X(1,`replicate/${e}`)),e=>$(e,{cartAction:`replicateCartById`})),St=(e,t,n,r=!1)=>(0,_.pipe)(K(`POST`,X(2,`${e}:applyDiscountCodes`),JSON.stringify({discountCodes:t,purgeCouponCodes:r}),n),e=>$(e,{cartAction:`applyDiscountCodes`}
1)),Ct=(e,t,n)=>(0,_.pipe)(K(`POST`,X(2,`${e}:applyDiscount`),JSON.stringify({discountCode:t}),n),e=>$(e,{cartAction:`applyDiscount`})),wt=(e,t,n,r)=>{let i=[{action:`updateCart`,products:[{lineItemId:t,quantity:n}]}];return(0,_.pipe)(K(`POST`,X(1,e),JSON.stringify({actions:i}),r),e=>$(e,{cartAction:`updateCart`,cartActionDetails:i.map(e=>e.action).join(`,`)}))},Tt=(e,t,n)=>{let r=[{action:`removeLineItem`,products:[{lineItemId:t}]}];return(0,_.pipe)(K(`POST`,X(1,e),JSON.stringify({actions:r}),n),e=>$(e,{cartAction:`removeLineItem`,cartActionDetails:r.map(e=>e.action).join(`,`)}))},Et=(e,t,n,r)=>{let i=[{action:n?`addToCart`:`createCart`,locale:e,products:t}];return(0,_.pipe)(K(`POST`,X(1,n||``),JSON.stringify({actions:i}),r),e=>$(e,{cartAction:`addToCart`,cartActionDetails:(t.length>0?[`addProducts`]:[]).join(`,`)}))},Dt=(e,t,n,r)=>{let i=[{action:n?`addBmsToCart`:`createBmsCart`,locale:e,...t}];return(0,_.pipe)(K(`POST`,X(1,n||``),JSON.stringify({actions:i}),r),e=>$(e,{cartAction:`addBmsToCart`,cartActionDetails:`addBmsToCart`}))},Ot=(e,t)=>{let n=(0,Qe.buildCustomFieldUpdateAction)({name:`partnerMemberNumber`,value:t}),r=[n];return(0,_.pipe)(g.fromNullable(e),g.fold(()=>G.left(Error(`Cart ID not found`)),e=>(0,_.pipe)(K(`POST`,X(1,e),JSON.stringify({actions:r})),e=>$(e,{cartAction:`updateCart`,cartActionDetails:n.action}))))},kt=(e,t,n)=>(0,_.pipe)(K(`POST`,X(1,e),JSON.stringify({actions:[{action:`setShippingAddress`,address:t}]}),n),e=>$(e,{cartAction:`setShippingAddress`})),At=(e,t)=>(0,_.pipe)(K(`POST`,X(1,e),JSON.stringify({actions:[{action:`setShippingMethod`,shippingMethod:{id:t,typeId:`shipping-method`}}]})),e=>$(e,{cartAction:`setShippingMethod`})),jt=e=>(0,_.pipe)(e,G.mapLeft(e=>(0,_.pipe)(e,_t,e=>r(e,{cartAction:`checkout`}))),G.chain(e=>{let t=et.safeParse(e);return t.success?G.right(t.data):G.left(t.error)}),G.map(e=>({cart:Q(e.cart),addressValidation:e.addressValidation}))),Mt=(e,t)=>(0,_.pipe)(K(`POST`,X(2,`checkout/${e}`),JSON.stringify(t)),jt);export{v as _,Mt as a,Tt as c,Ot as d,wt as f,ye as g,E as h,Ct as i,kt as l,be as m,Et as n,yt as o,xt as p,Dt as r,bt as s,St as t,At as u}; 2//# sourceMappingURL=cart-fj9hM-Hf.js.map
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.