@dropins/storefront-cart 1.3.0-beta2 → 1.3.0-beta4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsx as n,jsxs as y,Fragment as M}from"@dropins/tools/preact-jsx-runtime.js";import*as o from"@dropins/tools/preact-compat.js";import{useState as N,useCallback as Bt,useEffect as It}from"@dropins/tools/preact-compat.js";import{classes as I,VComponent as b,Slot as C}from"@dropins/tools/lib.js";import{E as Ft}from"./EmptyCart.js";/* empty css */import{Divider as Et,Skeleton as zt,SkeletonRow as Wt,InLineAlert as qt,CartList as St,Icon as W,Button as q,Accordion as Ut,AccordionSection as Tt,CartItem as Jt,Price as A,Image as Kt}from"@dropins/tools/components.js";import"@dropins/tools/preact-hooks.js";import{g as Yt}from"./persisted-data.js";import{events as Rt}from"@dropins/tools/event-bus.js";import{s as Ht}from"./resetCart.js";import{u as Pt}from"./updateProductsFromCart.js";import{S as Dt}from"./ChevronDown.js";import{useText as te}from"@dropins/tools/i18n.js";const ee=g=>o.createElement("svg",{id:"Icon_Chevron_right_Base","data-name":"Icon \\u2013 Chevron right \\u2013 Base",xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...g},o.createElement("g",{id:"Large"},o.createElement("rect",{id:"Placement_area","data-name":"Placement area",width:24,height:24,fill:"#fff",opacity:0}),o.createElement("g",{id:"Chevron_right_icon","data-name":"Chevron right icon"},o.createElement("path",{vectorEffect:"non-scaling-stroke",id:"chevron",d:"M199.75,367.5l4.255,-4.255-4.255,-4.255",transform:"translate(-189.25 -351.0)",fill:"none",stroke:"currentColor"})))),xt=g=>o.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...g},o.createElement("g",{clipPath:"url(#clip0_4797_15331)"},o.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M10.25 20.91L1.5 17.55V6.51996L10.25 9.92996V20.91Z",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),o.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M6.24023 4.64001L14.9902 8.06001V11.42",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),o.createElement("path",{className:"error-icon",vectorEffect:"non-scaling-stroke",d:"M19 13.31L15.5 19.37H22.5L19 13.31Z",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),o.createElement("path",{className:"error-icon",vectorEffect:"non-scaling-stroke",d:"M19.0202 17.11H18.9802L18.9502 15.56H19.0502L19.0202 17.11ZM18.9602 18.29V18.06H19.0502V18.29H18.9602Z",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),o.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M19 12.16V6.51996L10.25 9.92996V20.91L14.27 19.37L14.4 19.32",stroke:"currentColor",strokeLinejoin:"round"}),o.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M1.5 6.51999L10.25 3.04999L19 6.51999L10.25 9.92999L1.5 6.51999Z",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"})),o.createElement("defs",null,o.createElement("clipPath",{id:"clip0_4797_15331"},o.createElement("rect",{width:22,height:18.86,fill:"white",transform:"translate(1 2.54999)"})))),ne=g=>o.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...g},o.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M0.75 12C0.75 5.78421 5.78421 0.75 12 0.75C18.2158 0.75 23.25 5.78421 23.25 12C23.25 18.2158 18.2158 23.25 12 23.25C5.78421 23.25 0.75 18.2158 0.75 12Z",stroke:"currentColor"}),o.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M11.75 5.88423V4.75H12.25V5.88423L12.0485 13.0713H11.9515L11.75 5.88423ZM11.7994 18.25V16.9868H12.2253V18.25H11.7994Z",stroke:"currentColor"})),Nt=({className:g,children:U,heading:w,footer:v,emptyCart:E,products:d,outOfStockMessage:m,variant:S="primary",loading:h=!0,...c})=>n("div",{...c,className:I(["cart-cart-summary-list",g,`cart-cart-summary-list__background--${S}`]),children:h?n(re,{}):y(M,{children:[(w||m)&&y("div",{"data-testid":"cart-summary-list-heading-wrapper",className:I(["cart-cart-summary-list__heading",["cart-cart-summary-list__heading--full-width",!d]]),children:[w&&y(M,{children:[n(b,{node:w,className:"cart-cart-summary-list__heading-text"}),n(Et,{variant:"primary",className:I(["cart-cart-summary-list__heading-divider"])})]}),m&&n(b,{node:m,className:"cart-cart-summary-list__out-of-stock-message"})]}),n("div",{className:I(["cart-cart-summary-list__content",["cart-cart-summary-list__content--empty",!d]]),children:d||n(b,{node:E,className:"cart-cart-summary-list__empty-cart"})}),v&&y(M,{children:[n(Et,{variant:"primary",className:I(["cart-cart-summary-list__footer-divider"])}),n(b,{node:v,className:"cart-cart-summary-list__footer-text"})]})]})}),re=()=>n(zt,{"data-testid":"cart-summary-list-skeleton",className:"cart-cart-summary-list__skeleton",rowGap:"medium",children:n(Wt,{variant:"row",size:"xlarge",fullWidth:!0,lines:3,multilineGap:"small"})}),ae=({initialData:g=null,hideHeading:U,hideFooter:w,routeProduct:v,routeEmptyCartCTA:E,routeCart:d,onItemUpdate:m,onItemRemove:S,maxItems:h,slots:c,attributesToHide:l=[],enableRemoveItem:O,enableUpdateItemQuantity:Z,onItemsErrorsChange:B,accordion:At=!1,variant:F="primary",isLoading:Ot,showMaxItems:T,showDiscount:J,showSavings:K,quantityType:Y,dropdownOptions:R,...H})=>{var Ct;const[Q,Qt]=N(!g),[a,Gt]=N(g),[L,Vt]=N(new Set),[G,D]=N(new Map),s=(Ct=Ht.config)==null?void 0:Ct.shoppingCartDisplaySetting,[V,Xt]=N(T?!0:!h&&!T),i=te({file:"Cart.CartItem.file",files:"Cart.CartItem.files",heading:"Cart.Cart.heading",message:"Cart.CartItem.message",recipient:"Cart.CartItem.recipient",regularPrice:"Cart.CartItem.regularPrice",discountedPrice:"Cart.CartItem.discountedPrice",sender:"Cart.CartItem.sender",lowInventory:"Cart.CartItem.lowInventory",insufficientQuantity:"Cart.CartItem.insufficientQuantity",insufficientQuantityGeneral:"Cart.CartItem.insufficientQuantityGeneral",outOfStockHeading:"Cart.OutOfStockMessage.heading",outOfStockDescription:"Cart.OutOfStockMessage.message",outOfStockAlert:"Cart.OutOfStockMessage.alert",removeAction:"Cart.OutOfStockMessage.action",notAvailableMessage:"Cart.CartItem.notAvailableMessage",viewMore:"Cart.Cart.viewMore",viewAll:"Cart.Cart.viewAll",discountPercent:"Cart.CartItem.discountPercentage",savingsAmount:"Cart.CartItem.savingsAmount"}),X=(t,e)=>{Vt(r=>(e?r.add(t):r.delete(t),new Set(r)))},tt=(t,e)=>{D(r=>(e?r.set(t,e):r.delete(t),new Map(r)))},z=(t,e)=>{X(t.uid,!0),D(new Map),O&&e===0?Pt([{uid:t.uid,quantity:e}]).then(()=>{S==null||S({item:t})}).finally(()=>{X(t.uid,!1)}).catch(r=>{console.warn(r)}):Z&&Pt([{uid:t.uid,quantity:e}]).then(()=>{m==null||m({item:t})}).finally(()=>{X(t.uid,!1)}).catch(r=>{tt(t.uid,r.message)})},jt=Bt(()=>{Xt(t=>!t)},[]);It(()=>{const t=Rt.on("cart/data",e=>{Gt(e),Qt(!!Ot)},{eager:!0});return()=>{t==null||t.off()}},[]),It(()=>{B&&B(G)},[G,B]);const et=(t,e)=>{if(l.includes("image"))return;const r={loading:e<4?"eager":"lazy",src:t.image.src,alt:t.image.alt,width:"300",height:"300",params:{width:300}},u=n(Kt,{"data-testid":"cart-list-item-image",...r});return n(C,{name:"Thumbnail",slot:c==null?void 0:c.Thumbnail,context:{item:t,defaultImageProps:r},children:v?n("a",{href:v(t),children:u}):u})},nt=t=>{if(!l.includes("name"))return n("span",{"data-testid":"cart-list-item-title",children:v?n("a",{href:v(t),children:t.name}):t.name})},rt=t=>{if(l.includes("configurations"))return;const e={...t.bundleOptions,...t.selectedOptions,...t.customizableOptions,...t.recipient?{[i.recipient]:t.recipient}:null,...t.recipientEmail&&t.recipient?{[i.recipient]:`${t.recipient} (${t.recipientEmail})`}:null,...t.sender?{[i.sender]:t.sender}:null,...t.senderEmail&&t.sender?{[i.sender]:`${t.sender} (${t.senderEmail})`}:{},...t.message?{[i.message]:t.message}:null,...t.links&&t.links.count?t.links.count>1?{[i.files.replace("{count}",t.links.count.toString())]:t.links.result}:{[i.file.replace("{count}",t.links.count.toString())]:t.links.result}:null};if(Object.keys(e).length!==0)return e},at=t=>{var e,r,u,f;return(s==null?void 0:s.price)==="INCLUDING_TAX"?t.discounted?{amount:t.regularPrice.value,currency:t.regularPrice.currency,style:{font:"inherit"},"data-testid":"including-tax-item-price"}:{amount:(e=t.taxedPrice)==null?void 0:e.value,currency:(r=t.taxedPrice)==null?void 0:r.currency,style:{font:"inherit"},"data-testid":"including-tax-item-price"}:{amount:(u=t.regularPrice)==null?void 0:u.value,currency:(f=t.regularPrice)==null?void 0:f.currency,style:{font:"inherit"},"data-testid":"regular-item-price"}},it=t=>{var e,r;return{amount:(e=t.savingsAmount)==null?void 0:e.value,currency:(r=t.savingsAmount)==null?void 0:r.currency,style:{font:"inherit"},"data-testid":"item-savings-amount"}},ct=t=>(s==null?void 0:s.price)==="INCLUDING_EXCLUDING_TAX"?n(A,{amount:t.rowTotal.value,currency:t.rowTotal.currency,"data-testid":"excluding-tax-total","aria-label":i.regularPrice}):void 0,ot=t=>{var u,f,_,p,k,P,x,wt,Lt,_t;const e={"aria-label":i.regularPrice},r=t.discounted?{}:null;return["INCLUDING_TAX","INCLUDING_EXCLUDING_TAX"].includes(s==null?void 0:s.price)?(e.amount=(u=t.rowTotalIncludingTax)==null?void 0:u.value,e.currency=(f=t.rowTotalIncludingTax)==null?void 0:f.currency,e.variant=t.discounted?"strikethrough":"default",e["data-testid"]="including-tax-item-total",r&&(e.amount=(_=t.total)==null?void 0:_.value,e.currency=(p=t.total)==null?void 0:p.currency,r.amount=(k=t.rowTotalIncludingTax)==null?void 0:k.value,r.currency=(P=t.rowTotalIncludingTax)==null?void 0:P.currency,r.sale=!0,r["aria-label"]=i.discountedPrice,r["data-testid"]="discount-total")):(e.amount=(x=t.total)==null?void 0:x.value,e.currency=(wt=t.total)==null?void 0:wt.currency,e.variant=t.discounted?"strikethrough":"default",e["data-testid"]="regular-item-total",r&&(r.amount=(Lt=t.discountedTotal)==null?void 0:Lt.value,r.currency=(_t=t.discountedTotal)==null?void 0:_t.currency,r.sale=!0,r["aria-label"]=i.regularPrice,r["data-testid"]="discount-total")),{totalProps:e,discountProps:r}},st=t=>{var k,P,x;if(l.includes("warning"))return;const e=G.get(t.uid),r=(k=G.get(t.uid))==null?void 0:k.includes("The requested qty is not available"),u=L.has(t.uid),f=t.insufficientQuantity&&t.stockLevel?t.stockLevel==="noNumber"?i.insufficientQuantityGeneral:i.insufficientQuantity.replace("{inventory}",(P=t.stockLevel)==null?void 0:P.toString()).replace("{count}",t.quantity.toString()):"",_=t.lowInventory&&t.onlyXLeftInStock&&i.lowInventory.replace("{count}",(x=t.onlyXLeftInStock)==null?void 0:x.toString()),p=!t.outOfStock&&e&&r?i.notAvailableMessage:e;return!u&&(e||t.insufficientQuantity||t.lowInventory)?y("span",{"data-testid":"item-warning",children:[n(W,{source:ne,size:"16"}),p||f||_]}):void 0},lt=t=>l!=null&&l.includes("alert")?void 0:!L.has(t.uid)&&t.outOfStock?y("span",{"data-testid":"item-alert",children:[n(W,{source:xt,size:"16"}),i.outOfStockAlert]}):void 0,ut=t=>n(C,{name:"ProductAttributes",slot:c==null?void 0:c.ProductAttributes,context:{item:t}}),dt=t=>{if(!l.includes("sku"))return n("span",{"data-testid":"cart-list-item-sku",children:t.sku})},gt=t=>n(C,{name:"Footer",slot:c==null?void 0:c.Footer,context:{item:t,handleItemsLoading:X,handleItemsError:tt,onItemUpdate:m}}),ft=t=>a!=null&&a.totalQuantity?a.items.filter(t).map((e,r)=>{var p;const{totalProps:u,discountProps:f}=ot(e),_=n(Jt,{updating:L==null?void 0:L.has(e.uid),loading:Q,"data-testid":`cart-list-item-entry-${e.uid}`,image:et(e,r),title:nt(e),sku:dt(e),price:l.includes("price")?void 0:n(A,{...at(e)}),quantity:l.includes("quantity")?void 0:e.quantity,total:y(M,{children:[l.includes("total")?void 0:n(A,{...u}),l.includes("totalDiscount")?void 0:f&&n(A,{...f})]}),attributes:ut(e),configurations:rt(e),totalExcludingTax:l.includes("totalExcludingTax")?void 0:ct(e),taxIncluded:(s==null?void 0:s.price)==="INCLUDING_TAX",taxExcluded:!l.includes("totalExcludingTax")&&(s==null?void 0:s.price)==="INCLUDING_EXCLUDING_TAX",warning:st(e),alert:lt(e),quantityType:Y,dropdownOptions:R,onQuantity:Z?k=>{z(e,k)}:void 0,onRemove:O?()=>z(e,0):void 0,discount:J&&e.discounted&&e.discountPercentage?n("div",{"data-testid":"item-discount-percent",children:i.discountPercent.replace("{discount}",((p=e.discountPercentage)==null?void 0:p.toString())??"")}):void 0,savings:K&&e.discounted&&e.savingsAmount?y("div",{children:[n("span",{children:n(A,{...it(e)})})," ",i.savingsAmount]}):void 0,footer:gt(e)},e.uid);return n(C,{name:"CartItem",slot:c==null?void 0:c.CartItem,context:{item:e,index:r,enableUpdateItemQuantity:Z,enableRemoveItem:O,itemsLoading:L,loading:Q,attributesToHide:l,cartTaxesConfig:s,quantityType:Y,dropdownOptions:R,showDiscount:J,showSavings:K,dictionary:i,getImage:et,getTitle:nt,getSku:dt,getPriceProps:at,getTotalPriceProps:ot,getProductAttributes:ut,getConfiguration:rt,getTotalExcludingTax:ct,getWarning:st,getAlert:lt,getFooter:gt,getSavingsAmount:it},children:_},e.uid)}):null,mt=n(C,{name:"EmptyCart",slot:c==null?void 0:c.EmptyCart,context:{},children:n(Ft,{"data-testid":"empty-cart",ctaLinkURL:E==null?void 0:E()})}),ht=n(C,{name:"Heading",slot:c==null?void 0:c.Heading,context:{count:a==null?void 0:a.totalQuantity},children:n("div",{"data-testid":"default-cart-heading",children:i.heading.replace("({count})",a!=null&&a.totalQuantity?`(${a==null?void 0:a.totalQuantity.toString()})`:"")})}),$t=ht.props.children.props.children,bt=()=>{const t=a==null?void 0:a.items.filter(e=>e.outOfStock);t==null||t.forEach(e=>{z(e,0)})},Mt=ft(t=>t.outOfStock||t.insufficientQuantity||!1),yt=a!=null&&a.hasOutOfStockItems?n(qt,{"data-testid":"cart-out-of-stock-message",icon:n(W,{source:xt,size:"16"}),itemList:n(St,{"data-testid":"out-of-stock-cart-items",children:Mt}),type:"warning",heading:i.outOfStockHeading,description:i.outOfStockDescription,variant:"primary",actionButtonPosition:"bottom",additionalActions:a!=null&&a.hasFullyOutOfStockItems&&O?[{label:i.removeAction,onClick:bt}]:void 0}):void 0,j=ft(t=>!t.outOfStock&&!t.insufficientQuantity),vt=V?Math.max(h||5,5):Math.min((a==null?void 0:a.totalQuantity)||5,5),pt=(a==null?void 0:a.totalQuantity)>vt,Zt=pt&&!V&&vt!=h,$=a!=null&&a.totalQuantity&&j?n(C,{name:"Footer",slot:c==null?void 0:c.CartSummaryFooter,context:{displayMaxItems:V,routeCart:d},"data-testid":"cart-cart-summary-footer-slot",children:n("div",{"data-testid":"cart-cart-summary-footer",children:pt?Zt?n(q,{className:"cart-cart-summary-list-footer__action",onClick:jt,"data-testid":"view-more-items-button",variant:"tertiary",children:i.viewMore}):d&&n(q,{className:"cart-cart-summary-list-footer__action",href:d(),variant:"tertiary","data-testid":"view-cart-or-less-items-button",children:i.viewAll}):d&&n(q,{className:"cart-cart-summary-list-footer__action",href:d(),variant:"tertiary","data-testid":"view-cart-button",children:i.viewAll})})}):null,kt=a!=null&&a.totalQuantity?n(St,{"data-testid":"cart-list",children:j==null?void 0:j.slice(0,V?Math.max(h||(a==null?void 0:a.totalQuantity),5):Math.min(h??5,5))}):null;return At?n(Ut,{"data-testid":"cart-summary-list-accordion",className:I(["cart-cart-summary-list-accordion",`cart-cart-summary-list__background--${F}`]),iconOpen:ee,iconClose:Dt,children:n(Tt,{title:$t,"data-testid":"cart-summary-list-accordion__section",open:!0,renderContentWhenClosed:!0,children:n(Nt,{...H,"aria-expanded":!0,"aria-label":"TEST",className:"cart-cart-summary-list-accordion__list",loading:Q,footer:w?void 0:$||(d?$:void 0),emptyCart:mt,products:kt,outOfStockMessage:yt,variant:F})})}):n(Nt,{...H,heading:U?void 0:ht,footer:w?void 0:$||(d?$:void 0),loading:Q,emptyCart:mt,products:kt,outOfStockMessage:yt,variant:F})};ae.getInitialData=async function(){return Yt()};export{ae as C};
3
+ import{jsx as n,jsxs as y,Fragment as M}from"@dropins/tools/preact-jsx-runtime.js";import*as o from"@dropins/tools/preact-compat.js";import{useState as N,useCallback as Bt,useEffect as It}from"@dropins/tools/preact-compat.js";import{classes as I,VComponent as b,Slot as C}from"@dropins/tools/lib.js";import{E as Ft}from"./EmptyCart.js";/* empty css */import{Divider as Et,Skeleton as zt,SkeletonRow as Wt,InLineAlert as qt,CartList as St,Icon as W,Button as q,Accordion as Ut,AccordionSection as Tt,CartItem as Jt,Price as A,Image as Kt}from"@dropins/tools/components.js";import"@dropins/tools/preact-hooks.js";import{g as Yt}from"./persisted-data.js";import{events as Rt}from"@dropins/tools/event-bus.js";import{s as Ht}from"./resetCart.js";import{u as Pt}from"./updateProductsFromCart.js";import{S as Dt}from"./ChevronDown.js";import{useText as te}from"@dropins/tools/i18n.js";const ee=g=>o.createElement("svg",{id:"Icon_Chevron_right_Base","data-name":"Icon \\u2013 Chevron right \\u2013 Base",xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...g},o.createElement("g",{id:"Large"},o.createElement("rect",{id:"Placement_area","data-name":"Placement area",width:24,height:24,fill:"#fff",opacity:0}),o.createElement("g",{id:"Chevron_right_icon","data-name":"Chevron right icon"},o.createElement("path",{vectorEffect:"non-scaling-stroke",id:"chevron",d:"M199.75,367.5l4.255,-4.255-4.255,-4.255",transform:"translate(-189.25 -351.0)",fill:"none",stroke:"currentColor"})))),xt=g=>o.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...g},o.createElement("g",{clipPath:"url(#clip0_4797_15331)"},o.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M10.25 20.91L1.5 17.55V6.51996L10.25 9.92996V20.91Z",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),o.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M6.24023 4.64001L14.9902 8.06001V11.42",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),o.createElement("path",{className:"error-icon",vectorEffect:"non-scaling-stroke",d:"M19 13.31L15.5 19.37H22.5L19 13.31Z",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),o.createElement("path",{className:"error-icon",vectorEffect:"non-scaling-stroke",d:"M19.0202 17.11H18.9802L18.9502 15.56H19.0502L19.0202 17.11ZM18.9602 18.29V18.06H19.0502V18.29H18.9602Z",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),o.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M19 12.16V6.51996L10.25 9.92996V20.91L14.27 19.37L14.4 19.32",stroke:"currentColor",strokeLinejoin:"round"}),o.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M1.5 6.51999L10.25 3.04999L19 6.51999L10.25 9.92999L1.5 6.51999Z",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"})),o.createElement("defs",null,o.createElement("clipPath",{id:"clip0_4797_15331"},o.createElement("rect",{width:22,height:18.86,fill:"white",transform:"translate(1 2.54999)"})))),ne=g=>o.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...g},o.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M0.75 12C0.75 5.78421 5.78421 0.75 12 0.75C18.2158 0.75 23.25 5.78421 23.25 12C23.25 18.2158 18.2158 23.25 12 23.25C5.78421 23.25 0.75 18.2158 0.75 12Z",stroke:"currentColor"}),o.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M11.75 5.88423V4.75H12.25V5.88423L12.0485 13.0713H11.9515L11.75 5.88423ZM11.7994 18.25V16.9868H12.2253V18.25H11.7994Z",stroke:"currentColor"})),Nt=({className:g,children:U,heading:w,footer:v,emptyCart:E,products:d,outOfStockMessage:m,variant:S="primary",loading:h=!0,...c})=>n("div",{...c,className:I(["cart-cart-summary-list",g,`cart-cart-summary-list__background--${S}`]),children:h?n(re,{}):y(M,{children:[(w||m)&&y("div",{"data-testid":"cart-summary-list-heading-wrapper",className:I(["cart-cart-summary-list__heading",["cart-cart-summary-list__heading--full-width",!d]]),children:[w&&y(M,{children:[n(b,{node:w,className:"cart-cart-summary-list__heading-text"}),n(Et,{variant:"primary",className:I(["cart-cart-summary-list__heading-divider"])})]}),m&&n(b,{node:m,className:"cart-cart-summary-list__out-of-stock-message"})]}),n("div",{className:I(["cart-cart-summary-list__content",["cart-cart-summary-list__content--empty",!d]]),children:d||n(b,{node:E,className:"cart-cart-summary-list__empty-cart"})}),v&&y(M,{children:[n(Et,{variant:"primary",className:I(["cart-cart-summary-list__footer-divider"])}),n(b,{node:v,className:"cart-cart-summary-list__footer-text"})]})]})}),re=()=>n(zt,{"data-testid":"cart-summary-list-skeleton",className:"cart-cart-summary-list__skeleton",rowGap:"medium",children:n(Wt,{variant:"row",size:"xlarge",fullWidth:!0,lines:3,multilineGap:"small"})}),ae=({initialData:g=null,hideHeading:U,hideFooter:w,routeProduct:v,routeEmptyCartCTA:E,routeCart:d,onItemUpdate:m,onItemRemove:S,maxItems:h,slots:c,attributesToHide:l=[],enableRemoveItem:O,enableUpdateItemQuantity:Z,onItemsErrorsChange:B,accordion:At=!1,variant:F="primary",isLoading:Ot,showMaxItems:T,showDiscount:J,showSavings:K,quantityType:Y,dropdownOptions:R,...H})=>{var Ct;const[Q,Qt]=N(!g),[a,Gt]=N(g),[L,Vt]=N(new Set),[G,D]=N(new Map),s=(Ct=Ht.config)==null?void 0:Ct.shoppingCartDisplaySetting,[V,Xt]=N(T?!0:!h&&!T),i=te({file:"Cart.CartItem.file",files:"Cart.CartItem.files",heading:"Cart.Cart.heading",message:"Cart.CartItem.message",recipient:"Cart.CartItem.recipient",regularPrice:"Cart.CartItem.regularPrice",discountedPrice:"Cart.CartItem.discountedPrice",sender:"Cart.CartItem.sender",lowInventory:"Cart.CartItem.lowInventory",insufficientQuantity:"Cart.CartItem.insufficientQuantity",insufficientQuantityGeneral:"Cart.CartItem.insufficientQuantityGeneral",outOfStockHeading:"Cart.OutOfStockMessage.heading",outOfStockDescription:"Cart.OutOfStockMessage.message",outOfStockAlert:"Cart.OutOfStockMessage.alert",removeAction:"Cart.OutOfStockMessage.action",notAvailableMessage:"Cart.CartItem.notAvailableMessage",viewMore:"Cart.Cart.viewMore",viewAll:"Cart.Cart.viewAll",discountPercent:"Cart.CartItem.discountPercentage",savingsAmount:"Cart.CartItem.savingsAmount"}),X=(t,e)=>{Vt(r=>(e?r.add(t):r.delete(t),new Set(r)))},tt=(t,e)=>{D(r=>(e?r.set(t,e):r.delete(t),new Map(r)))},z=(t,e)=>{X(t.uid,!0),D(new Map),O&&e===0?Pt([{uid:t.uid,quantity:e}]).then(()=>{S==null||S({item:t})}).finally(()=>{X(t.uid,!1)}).catch(r=>{console.warn(r)}):Z&&Pt([{uid:t.uid,quantity:e}]).then(()=>{m==null||m({item:t})}).finally(()=>{X(t.uid,!1)}).catch(r=>{tt(t.uid,r.message)})},jt=Bt(()=>{Xt(t=>!t)},[]);It(()=>{const t=Rt.on("cart/data",e=>{Gt(e),Qt(!!Ot)},{eager:!0});return()=>{t==null||t.off()}},[]),It(()=>{B&&B(G)},[G,B]);const et=(t,e)=>{if(l.includes("image"))return;const r={loading:e<4?"eager":"lazy",src:t.image.src,alt:t.image.alt,width:"300",height:"300",params:{width:300}},u=n(Kt,{"data-testid":"cart-list-item-image",...r});return n(C,{name:"Thumbnail",slot:c==null?void 0:c.Thumbnail,context:{item:t,defaultImageProps:r},children:v?n("a",{href:v(t),children:u}):u})},nt=t=>{if(!l.includes("name"))return n("span",{"data-testid":"cart-list-item-title",children:v?n("a",{href:v(t),children:t.name}):t.name})},rt=t=>{if(l.includes("configurations"))return;const e={...t.bundleOptions,...t.selectedOptions,...t.customizableOptions,...t.recipient?{[i.recipient]:t.recipient}:null,...t.recipientEmail&&t.recipient?{[i.recipient]:`${t.recipient} (${t.recipientEmail})`}:null,...t.sender?{[i.sender]:t.sender}:null,...t.senderEmail&&t.sender?{[i.sender]:`${t.sender} (${t.senderEmail})`}:{},...t.message?{[i.message]:t.message}:null,...t.links&&t.links.count?t.links.count>1?{[i.files.replace("{count}",t.links.count.toString())]:t.links.result}:{[i.file.replace("{count}",t.links.count.toString())]:t.links.result}:null};if(Object.keys(e).length!==0)return e},at=t=>{var e,r,u,f;return(s==null?void 0:s.price)==="INCLUDING_TAX"?t.discounted?{amount:t.regularPrice.value,currency:t.regularPrice.currency,style:{font:"inherit"},"data-testid":"including-tax-item-price"}:{amount:(e=t.taxedPrice)==null?void 0:e.value,currency:(r=t.taxedPrice)==null?void 0:r.currency,style:{font:"inherit"},"data-testid":"including-tax-item-price"}:{amount:(u=t.regularPrice)==null?void 0:u.value,currency:(f=t.regularPrice)==null?void 0:f.currency,style:{font:"inherit"},"data-testid":"regular-item-price"}},it=t=>{var e,r;return{amount:(e=t.savingsAmount)==null?void 0:e.value,currency:(r=t.savingsAmount)==null?void 0:r.currency,style:{font:"inherit"},"data-testid":"item-savings-amount"}},ct=t=>(s==null?void 0:s.price)==="INCLUDING_EXCLUDING_TAX"?n(A,{amount:t.rowTotal.value,currency:t.rowTotal.currency,"data-testid":"excluding-tax-total","aria-label":i.regularPrice}):void 0,ot=t=>{var u,f,_,p,k,P,x,wt,Lt,_t;const e={"aria-label":i.regularPrice},r=t.discounted?{}:null;return["INCLUDING_TAX","INCLUDING_EXCLUDING_TAX"].includes(s==null?void 0:s.price)?(e.amount=(u=t.rowTotalIncludingTax)==null?void 0:u.value,e.currency=(f=t.rowTotalIncludingTax)==null?void 0:f.currency,e.variant=t.discounted?"strikethrough":"default",e["data-testid"]="including-tax-item-total",r&&(e.amount=(_=t.total)==null?void 0:_.value,e.currency=(p=t.total)==null?void 0:p.currency,r.amount=(k=t.rowTotalIncludingTax)==null?void 0:k.value,r.currency=(P=t.rowTotalIncludingTax)==null?void 0:P.currency,r.sale=!0,r["aria-label"]=i.discountedPrice,r["data-testid"]="discount-total")):(e.amount=(x=t.total)==null?void 0:x.value,e.currency=(wt=t.total)==null?void 0:wt.currency,e.variant=t.discounted?"strikethrough":"default",e["data-testid"]="regular-item-total",r&&(r.amount=(Lt=t.discountedTotal)==null?void 0:Lt.value,r.currency=(_t=t.discountedTotal)==null?void 0:_t.currency,r.sale=!0,r["aria-label"]=i.regularPrice,r["data-testid"]="discount-total")),{totalProps:e,discountProps:r}},st=t=>{var k,P,x;if(l.includes("warning"))return;const e=G.get(t.uid),r=(k=G.get(t.uid))==null?void 0:k.includes("The requested qty is not available"),u=L.has(t.uid),f=t.insufficientQuantity&&t.stockLevel?t.stockLevel==="noNumber"?i.insufficientQuantityGeneral:i.insufficientQuantity.replace("{inventory}",(P=t.stockLevel)==null?void 0:P.toString()).replace("{count}",t.quantity.toString()):"",_=t.lowInventory&&t.onlyXLeftInStock&&i.lowInventory.replace("{count}",(x=t.onlyXLeftInStock)==null?void 0:x.toString()),p=!t.outOfStock&&e&&r?i.notAvailableMessage:e;return!u&&(e||t.insufficientQuantity||t.lowInventory)?y("span",{"data-testid":"item-warning",children:[n(W,{source:ne,size:"16"}),p||f||_]}):void 0},lt=t=>l!=null&&l.includes("alert")?void 0:!L.has(t.uid)&&t.outOfStock?y("span",{"data-testid":"item-alert",children:[n(W,{source:xt,size:"16"}),i.outOfStockAlert]}):void 0,ut=t=>n(C,{name:"ProductAttributes",slot:c==null?void 0:c.ProductAttributes,context:{item:t}}),dt=t=>{if(!l.includes("sku"))return n("span",{"data-testid":"cart-list-item-sku",children:t.sku})},gt=t=>n(C,{name:"Footer",slot:c==null?void 0:c.Footer,context:{item:t,handleItemsLoading:X,handleItemsError:tt,onItemUpdate:m}}),ft=t=>a!=null&&a.totalQuantity?a.items.filter(t).map((e,r)=>{var p;const{totalProps:u,discountProps:f}=ot(e),_=n(Jt,{updating:L==null?void 0:L.has(e.uid),loading:Q,"data-testid":`cart-list-item-entry-${e.uid}`,image:et(e,r),title:nt(e),sku:dt(e),price:l.includes("price")?void 0:n(A,{...at(e)}),quantity:l.includes("quantity")?void 0:e.quantity,total:y(M,{children:[l.includes("total")?void 0:n(A,{...u}),l.includes("totalDiscount")?void 0:f&&n(A,{...f})]}),attributes:ut(e),configurations:rt(e),totalExcludingTax:l.includes("totalExcludingTax")?void 0:ct(e),taxIncluded:(s==null?void 0:s.price)==="INCLUDING_TAX",taxExcluded:!l.includes("totalExcludingTax")&&(s==null?void 0:s.price)==="INCLUDING_EXCLUDING_TAX",warning:st(e),alert:lt(e),quantityType:Y,dropdownOptions:R,onQuantity:Z?k=>{z(e,k)}:void 0,onRemove:O?()=>z(e,0):void 0,discount:J&&e.discounted&&e.discountPercentage?n("div",{"data-testid":"item-discount-percent",children:i.discountPercent.replace("{discount}",((p=e.discountPercentage)==null?void 0:p.toString())??"")}):void 0,savings:K&&e.discounted&&e.savingsAmount?y("div",{children:[n("span",{children:n(A,{...it(e)})})," ",i.savingsAmount]}):void 0,footer:gt(e)},e.uid);return n(C,{name:"CartItem",slot:c==null?void 0:c.CartItem,context:{item:e,index:r,enableUpdateItemQuantity:Z,enableRemoveItem:O,itemsLoading:L,loading:Q,attributesToHide:l,cartTaxesConfig:s,quantityType:Y,dropdownOptions:R,showDiscount:J,showSavings:K,dictionary:i,getImage:et,getTitle:nt,getSku:dt,getPriceProps:at,getTotalPriceProps:ot,getProductAttributes:ut,getConfiguration:rt,getTotalExcludingTax:ct,getWarning:st,getAlert:lt,getFooter:gt,getSavingsAmount:it},children:_},e.uid)}):null,mt=n(C,{name:"EmptyCart",slot:c==null?void 0:c.EmptyCart,context:{},children:n(Ft,{"data-testid":"empty-cart",ctaLinkURL:E==null?void 0:E()})}),ht=n(C,{name:"Heading",slot:c==null?void 0:c.Heading,context:{count:a==null?void 0:a.totalQuantity},children:n("div",{"data-testid":"default-cart-heading",children:i.heading.replace("({count})",a!=null&&a.totalQuantity?`(${a==null?void 0:a.totalQuantity.toString()})`:"")})}),$t=ht.props.children.props.children,bt=()=>{const t=a==null?void 0:a.items.filter(e=>e.outOfStock);t==null||t.forEach(e=>{z(e,0)})},Mt=ft(t=>t.outOfStock||t.insufficientQuantity||!1),yt=a!=null&&a.hasOutOfStockItems?n(qt,{"data-testid":"cart-out-of-stock-message",icon:n(W,{source:xt,size:"16"}),itemList:n(St,{"data-testid":"out-of-stock-cart-items",children:Mt}),type:"warning",heading:i.outOfStockHeading,description:i.outOfStockDescription,variant:"primary",actionButtonPosition:"bottom",additionalActions:a!=null&&a.hasFullyOutOfStockItems&&O?[{label:i.removeAction,onClick:bt}]:void 0}):void 0,j=ft(t=>!t.outOfStock&&!t.insufficientQuantity),vt=V?Math.max(h||5,5):Math.min((a==null?void 0:a.totalQuantity)||5,5),pt=(a==null?void 0:a.totalQuantity)>vt,Zt=pt&&!V&&vt!=h,$=a!=null&&a.totalQuantity&&j?n(C,{name:"Footer",slot:c==null?void 0:c.CartSummaryFooter,context:{displayMaxItems:V,routeCart:d},"data-testid":"cart-cart-summary-footer-slot",className:"cart-cart-summary-footer",children:pt?Zt?n(q,{className:"cart-cart-summary-list-footer__action",onClick:jt,"data-testid":"view-more-items-button",variant:"tertiary",children:i.viewMore}):d&&n(q,{className:"cart-cart-summary-list-footer__action",href:d(),variant:"tertiary","data-testid":"view-cart-or-less-items-button",children:i.viewAll}):d&&n(q,{className:"cart-cart-summary-list-footer__action",href:d(),variant:"tertiary","data-testid":"view-cart-button",children:i.viewAll})}):null,kt=a!=null&&a.totalQuantity?n(St,{"data-testid":"cart-list",children:j==null?void 0:j.slice(0,V?Math.max(h||(a==null?void 0:a.totalQuantity),5):Math.min(h??5,5))}):null;return At?n(Ut,{"data-testid":"cart-summary-list-accordion",className:I(["cart-cart-summary-list-accordion",`cart-cart-summary-list__background--${F}`]),iconOpen:ee,iconClose:Dt,children:n(Tt,{title:$t,"data-testid":"cart-summary-list-accordion__section",open:!0,renderContentWhenClosed:!0,children:n(Nt,{...H,"aria-expanded":!0,"aria-label":"TEST",className:"cart-cart-summary-list-accordion__list",loading:Q,footer:w?void 0:$||(d?$:void 0),emptyCart:mt,products:kt,outOfStockMessage:yt,variant:F})})}):n(Nt,{...H,heading:U?void 0:ht,footer:w?void 0:$||(d?$:void 0),loading:Q,emptyCart:mt,products:kt,outOfStockMessage:yt,variant:F})};ae.getInitialData=async function(){return Yt()};export{ae as C};
@@ -1,3 +1,3 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsx as t,jsxs as u,Fragment as A}from"@dropins/tools/preact-jsx-runtime.js";import{classes as We,Slot as Ze}from"@dropins/tools/lib.js";import{Modal as De,ContentGrid as Xe,ImageSwatch as Je,Button as se,Price as ce,Skeleton as Qe,SkeletonRow as Ye,Field as j,Checkbox as ae,Input as Me,TextArea as Ue,Accordion as Ne,AccordionSection as Pe,Icon as D,Card as Ve,ProgressSpinner as et}from"@dropins/tools/components.js";/* empty css */import*as X from"@dropins/tools/preact-compat.js";import{useRef as tt,useEffect as J,useState as M,useId as $e,useCallback as K,useMemo as le}from"@dropins/tools/preact-hooks.js";import{useText as Z}from"@dropins/tools/i18n.js";import{s as L}from"../chunks/resetCart.js";import{S as Re}from"../chunks/ChevronDown.js";import{S as Se}from"../chunks/ChevronUp.js";import{events as rt}from"@dropins/tools/event-bus.js";import{u as it}from"../chunks/updateProductsFromCart.js";import{s as nt}from"../chunks/setGiftOptionsOnCart.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/persisted-data.js";import"../chunks/refreshCart.js";import"../fragments.js";import"../chunks/acdl.js";const ee=e=>X.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},X.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M0.75 12C0.75 5.78421 5.78421 0.75 12 0.75C18.2158 0.75 23.25 5.78421 23.25 12C23.25 18.2158 18.2158 23.25 12 23.25C5.78421 23.25 0.75 18.2158 0.75 12Z",stroke:"currentColor"}),X.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M6.75 12.762L10.2385 15.75L17.25 9",stroke:"currentColor"})),de=e=>X.createElement("svg",{width:20,height:23,viewBox:"0 0 20 23",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},X.createElement("path",{d:"M10 6L10 21.5M10 6H12.25C13.4926 6 14.5 4.99264 14.5 3.75C14.5 2.50736 13.4926 1.5 12.25 1.5C11.0074 1.5 10 2.50736 10 3.75M10 6V3.75M10 6H7.75C6.50736 6 5.5 4.99264 5.5 3.75C5.5 2.50736 6.50736 1.5 7.75 1.5C8.99264 1.5 10 2.50736 10 3.75M3.25 10.75H16.75C17.9926 10.75 19 9.74264 19 8.5C19 7.25736 17.9926 6.25 16.75 6.25H3.25C2.00736 6.25 1 7.25736 1 8.5C1 9.74264 2.00736 10.75 3.25 10.75ZM4.75 21.5H15.25C16.4926 21.5 17.5 20.4926 17.5 19.25V13.25C17.5 12.0074 16.4926 11 15.25 11H4.75C3.50736 11 2.5 12.0074 2.5 13.25V19.25C2.5 20.4926 3.50736 21.5 4.75 21.5Z",stroke:"currentColor",strokeWidth:1.5}));function ot(e){const i=tt(null);return J(()=>{if(!e||!i.current)return;const l=i.current,d=l.querySelectorAll('a, button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])');if(d.length===0)return;const r=d[0],f=d[d.length-1];function g(o){o.key==="Tab"&&(o.shiftKey&&document.activeElement===r?(o.preventDefault(),f.focus()):!o.shiftKey&&document.activeElement===f&&(o.preventDefault(),r.focus()))}return l.addEventListener("keydown",g),()=>{l.removeEventListener("keydown",g)}},[e]),i}const at=({view:e,showModal:i,productName:l,giftWrappingConfig:d,imageSwatchImageNode:r,setShowModal:f,updateGiftOptions:g})=>{var w;const o=ot(i),n=Z({modalTitle:"Cart.GiftOptions.modal.title",defaultTitle:"Cart.GiftOptions.modal.defaultTitle",modalWrappingText:"Cart.GiftOptions.modal.wrappingText",modalWrappingSubText:"Cart.GiftOptions.modal.wrappingSubText",modalConfirmButton:"Cart.GiftOptions.modal.modalConfirmButton",modalCancelButton:"Cart.GiftOptions.modal.modalCancelButton",ariaLabelModal:"Cart.GiftOptions.modal.ariaLabelModal",ariaLabelModalOpen:"Cart.GiftOptions.modal.ariaLabelModalOpen",ariaLabelModalClose:"Cart.GiftOptions.modal.ariaLabelModalClose",ariaLabelWrapping:"Cart.GiftOptions.modal.ariaLabelWrapping"}),[c,C]=M();if(J(()=>{const p=d.find(T=>T.selected)??d[0];C(p)},[d]),J(()=>{const p=document==null?void 0:document.querySelector(".cart-gift-options-view__modal-wrapper");p&&(p==null||p.focus())},[]),!i||!d.length)return null;const s=l?`${n.modalTitle} ${l}`:n.defaultTitle;return t("div",{ref:o,className:"cart-gift-options-view__modal-wrapper",tabIndex:0,"aria-label":`${n.ariaLabelModal} ${i?n.ariaLabelModalOpen:n.ariaLabelModalClose} ${l}`,children:u(De,{"data-testid":`gift-option-modal-${e}`,className:"cart-gift-options-view__modal",size:"medium",title:u(A,{children:[t("span",{children:s}),c&&((w=c==null?void 0:c.price)==null?void 0:w.value)>0?t(ce,{amount:c.price.value,currency:c.price.currency,weight:"normal"}):null]}),centered:!0,onClose:f,children:[u("div",{className:"cart-gift-options-view__modal-content",children:[t("span",{className:"cart-gift-options-view__modal-text",children:n.modalWrappingText}),t(Xe,{emptyGridContent:t(A,{}),maxColumns:6,columnWidth:"100px",className:"cart-gift-options-view__modal-grid",children:d.map(p=>t(Je,{groupAriaLabel:n.ariaLabelWrapping,selected:(c==null?void 0:c.uid)===(p==null?void 0:p.uid),onValue:()=>{C(p)},imageNode:r,name:"giftWrappingId",value:p.uid,src:p.image.url,alt:p.design,label:p.design,"data-testid":`gift-option-modal-image-${p.uid}`,className:"cart-gift-options-view__modal-grid-item"},p.uid))}),t("span",{className:"cart-gift-options-view__modal-sub-text",children:c==null?void 0:c.design})]}),t(se,{"data-testid":"gift-option-modal-confirm-button",type:"button",onClick:()=>{g("giftWrappingId",c==null?void 0:c.uid,{isGiftWrappingSelected:!0}),f()},children:n.modalConfirmButton}),t(se,{type:"button",variant:"secondary",onClick:f,"data-testid":"gift-option-modal-cancel-button",children:n.modalCancelButton})]})})},lt=()=>t(Qe,{children:t(Ye,{variant:"row",size:"small",fullWidth:!0,lines:1,multilineGap:"small"})}),st=({className:e,view:i,item:l,giftOptions:d,disabled:r,cartData:f,giftWrappingConfig:g,setShowModal:o,onInputChange:n,areGiftOptionsVisible:c})=>{var N,P,B,z;const C=$e(),s=Z({customize:`Cart.GiftOptions.${i}.customize`,giftReceiptIncludedTitle:`Cart.GiftOptions.${i}.giftReceiptIncluded.title`,giftReceiptIncludedText:`Cart.GiftOptions.${i}.giftReceiptIncluded.subtitle`,printedCardIncludedTitle:`Cart.GiftOptions.${i}.printedCardIncluded.title`,printedCardIncludedText:`Cart.GiftOptions.${i}.printedCardIncluded.subtitle`,giftOptionsWrapTitle:`Cart.GiftOptions.${i}.giftOptionsWrap.title`,giftOptionsWrapText:`Cart.GiftOptions.${i}.giftOptionsWrap.subtitle`,requiredFieldError:"Cart.GiftOptions.formText.requiredFieldError"}),w=l==null?void 0:l.productGiftWrapping,p=f==null?void 0:f.cartGiftWrapping,T=i==="product"?w:p,y=T==null?void 0:T.find(S=>S.uid===d.giftWrappingId),V=(y==null?void 0:y.design)??"",O=l==null?void 0:l.giftWrappingPrice,v=V?`${s.giftOptionsWrapText} ${V}`:"",F=+(((P=(N=L.config)==null?void 0:N.printedCardPrice)==null?void 0:P.value)??0)>0?(B=L.config)==null?void 0:B.printedCardPrice:null;let _=null;O!=null&&O.value?_=O:(z=y==null?void 0:y.price)!=null&&z.value&&(_=y.price);const W=S=>S?u("span",{children:[" (+",t(ce,{amount:S.value,currency:S.currency,weight:"normal"}),")"]}):null;return u("div",{className:We([e,[`${e}--hidden`,!c.isGiftOptionsVisible]]),children:[c.isGiftReceiptVisible?t(j,{disabled:r,className:"cart-gift-options-view__field-gift-receipt",children:t(ae,{id:`giftReceiptIncluded-${C}`,disabled:r,name:"giftReceiptIncluded",checked:d.giftReceiptIncluded,placeholder:s.giftReceiptIncludedTitle,label:s.giftReceiptIncludedTitle,description:s.giftReceiptIncludedText,onChange:n})}):null,c.isPrintedCartVisible?t(j,{disabled:r,className:"cart-gift-options-view__field-printed-card",children:t(ae,{id:`printedCardIncluded-${C}`,disabled:r,name:"printedCardIncluded",checked:d.printedCardIncluded,placeholder:s.printedCardIncludedTitle,label:u(A,{children:[s.printedCardIncludedTitle,W(F)]}),description:s.printedCardIncludedText,onChange:n})}):null,c.isGiftWrappingVisible?u(A,{children:[t(j,{disabled:r,className:"cart-gift-options-view__field-gift-wrap",children:t(ae,{id:`giftOptionsWrap-${C}`,disabled:r,name:"isGiftWrappingSelected",checked:d.isGiftWrappingSelected,placeholder:s.giftOptionsWrapTitle,label:u(A,{children:[s.giftOptionsWrapTitle,W(_)]}),description:v,onChange:n})}),t(se,{disabled:r||!g.length,type:"button","data-testid":`gift-option-customize-${i}`,variant:"tertiary",onClick:()=>o(!0),children:s.customize})]}):null]})},dt=({view:e,giftOptions:i,disabled:l,errorMessage:d,onInputChange:r,onBlur:f,isGiftMessageVisible:g})=>{const o=$e(),n=Z({formTitle:`Cart.GiftOptions.${e}.formContent.formTitle`,formTo:`Cart.GiftOptions.${e}.formContent.formTo`,formFrom:`Cart.GiftOptions.${e}.formContent.formFrom`,giftMessageTitle:`Cart.GiftOptions.${e}.formContent.giftMessageTitle`,formToPlaceholder:`Cart.GiftOptions.${e}.formContent.formToPlaceholder`,formFromPlaceholder:`Cart.GiftOptions.${e}.formContent.formFromPlaceholder`,formMessagePlaceholder:`Cart.GiftOptions.${e}.formContent.formMessagePlaceholder`});return g?u(A,{children:[t("span",{children:n.formTitle}),u("div",{children:[t("span",{children:n.formTo}),t(j,{disabled:l,error:d.recipientName,children:t(Me,{id:`recipientName-${o}`,disabled:l,type:"text",name:"recipientName",value:i.recipientName,placeholder:n.formToPlaceholder,onChange:r,onBlur:f})})]}),u("div",{children:[t("span",{children:n.formFrom}),t(j,{disabled:l,error:d.senderName,children:t(Me,{id:`senderName-${o}`,disabled:l,type:"text",name:"senderName",value:i.senderName,placeholder:n.formFromPlaceholder,onChange:r,onBlur:f})})]}),u("div",{children:[t("span",{children:n.giftMessageTitle}),t(j,{disabled:l,children:t(Ue,{id:`message-${o}`,errorMessage:d.message,disabled:l,name:"message",value:i.message,label:n.formMessagePlaceholder,onChange:r,onBlur:f})})]})]}):null},ct=({view:e,giftOptions:i,giftWrappingConfig:l,readOnlyFormOrderView:d})=>{const r=Z({readOnlyProductTitle:"Cart.GiftOptions.product.readOnlyFormView.title",wrapping:"Cart.GiftOptions.product.readOnlyFormView.wrapping",recipient:"Cart.GiftOptions.product.readOnlyFormView.recipient",sender:"Cart.GiftOptions.product.readOnlyFormView.sender",message:"Cart.GiftOptions.product.readOnlyFormView.message",readOnlyOrderTitle:"Cart.GiftOptions.order.readOnlyFormView.title",readOnlyOrderGiftReceiptTitle:"Cart.GiftOptions.order.readOnlyFormView.giftReceipt",readOnlyOrderGiftReceiptText:"Cart.GiftOptions.order.readOnlyFormView.giftReceiptText",readOnlyOrderGiftPrintCardTitle:"Cart.GiftOptions.order.readOnlyFormView.printCard",readOnlyOrderGiftPrintCardText:"Cart.GiftOptions.order.readOnlyFormView.printCardText",readOnlyOrderGiftWrapTitle:"Cart.GiftOptions.order.readOnlyFormView.giftWrap",readOnlyOrderGiftWrapOptionsText:"Cart.GiftOptions.order.readOnlyFormView.giftWrapOptions",readOnlyOrderFormTitle:"Cart.GiftOptions.order.readOnlyFormView.formTitle",readOnlyOrderFormTo:"Cart.GiftOptions.order.readOnlyFormView.formTo",readOnlyOrderFormFrom:"Cart.GiftOptions.order.readOnlyFormView.formFrom",readOnlyOrderFormMessageTitle:"Cart.GiftOptions.order.readOnlyFormView.formMessageTitle"}),{recipientName:f,senderName:g,message:o,giftReceiptIncluded:n,printedCardIncluded:c,isGiftWrappingSelected:C}=i,s=l==null?void 0:l.find(({uid:O})=>O===(i==null?void 0:i.giftWrappingId)),w=!!f||!!g||!!o,p=s==null?void 0:s.design,T=n||c||(s==null?void 0:s.selected),y=[{id:1,title:r.wrapping,message:C?p:""},{id:2,title:r.recipient,message:f},{id:3,title:r.sender,message:g},{id:4,title:r.message,message:o}],V=y.every(({message:O})=>!O);if(e==="product"&&!V)return t(Ne,{"data-testid":"gift-options-product",iconClose:Se,iconOpen:Re,actionIconPosition:"right",children:t(Pe,{title:r.readOnlyProductTitle,showIconLeft:!0,iconLeft:de,defaultOpen:!1,renderContentWhenClosed:!1,children:t("div",{children:y.filter(O=>O.message).map(O=>u("p",{children:[O.title," ",O.message]},O.id))})})});if(e==="order"&&(w||T)){const O=u("div",{className:"cart-gift-options-readonly__header",children:[t(D,{source:de,size:"24"}),t("span",{children:r.readOnlyOrderTitle})]}),v=u(A,{children:[n?u("div",{className:"cart-gift-options-readonly__checkboxes cart-gift-options-readonly__checkboxes--gift-receipt",children:[t(D,{source:ee,size:"16"}),t("p",{children:r.readOnlyOrderGiftReceiptTitle}),t("p",{children:r.readOnlyOrderGiftReceiptText})]}):null,c?u("div",{className:"cart-gift-options-readonly__checkboxes cart-gift-options-readonly__checkboxes--print-card",children:[t(D,{source:ee,size:"16"}),t("p",{children:r.readOnlyOrderGiftPrintCardTitle}),t("p",{children:r.readOnlyOrderGiftPrintCardText})]}):null,s!=null&&s.selected?u("div",{className:"cart-gift-options-readonly__checkboxes cart-gift-options-readonly__checkboxes--gift-wrap",children:[t(D,{source:ee,size:"16"}),u("p",{children:[r.readOnlyOrderGiftWrapTitle," (+",t(ce,{amount:s.price.value,currency:s.price.currency,weight:"normal"}),")"]}),t("p",{children:`${r.readOnlyOrderGiftWrapOptionsText} ${s==null?void 0:s.design}`})]}):null]}),F=w?u("div",{className:"cart-gift-options-readonly__form",children:[t("div",{children:r.readOnlyOrderFormTitle}),u("div",{children:[u("p",{children:[t("span",{children:r.readOnlyOrderFormTo}),t("span",{children:f})]}),u("p",{children:[t("span",{children:r.readOnlyOrderFormFrom}),t("span",{children:g})]})]}),u("div",{children:[t("p",{children:r.readOnlyOrderFormMessageTitle}),t("p",{children:o})]})]}):null;return u(Ve,{variant:d,children:[O,v,F]})}return null},ft=({item:e,view:i,loading:l,giftOptions:d,showModal:r,isEditable:f,errorsField:g,updateLoading:o,cartData:n,fieldsDisabled:c,isGiftOptionsApplied:C,giftWrappingConfig:s,readOnlyFormOrderView:w,isGiftMessageVisible:p,areGiftOptionsVisible:T,imageSwatchImageNode:y,onBlur:V,setShowModal:O,updateGiftOptions:v,onInputChange:F,handleFormMouseLeave:_})=>{const W=Z({accordionHeading:`Cart.GiftOptions.${i}.accordionHeading`}),N=K(P=>t(Ne,{"data-testid":"gift-options-product",iconClose:Se,iconOpen:Re,actionIconPosition:"right",children:t(Pe,{title:u("div",{className:"cart-gift-options-view__icon--success",children:[t("span",{children:W.accordionHeading}),C?t(D,{source:ee,size:"16"}):null]}),ariaLabelTitle:W.accordionHeading,showIconLeft:!0,iconLeft:de,defaultOpen:C||P,renderContentWhenClosed:!1,children:u(A,{children:[t(st,{className:"cart-gift-options-view__top",view:i,item:e,giftOptions:d,disabled:c,onInputChange:F,cartData:n,giftWrappingConfig:s,setShowModal:O,areGiftOptionsVisible:T}),t("form",{className:"cart-gift-options-view__footer",onMouseLeave:_,children:t(dt,{view:i,giftOptions:d,disabled:c,errorMessage:g,onInputChange:F,onBlur:V,isGiftMessageVisible:p})})]})})}),[i,e,n,W,g,d,c,s,T,C,p,V,O,F,_]);return!T.isGiftOptionsVisible&&!p?null:u("div",{id:"cart-gift-options-view",className:We(["cart-gift-options-view",`cart-gift-options-view--${i}`,["cart-gift-options-view--loading",o]]),children:[o?t(et,{className:"cart-gift-options-view__spinner"}):null,l?t(lt,{}):u(A,{children:[f?null:t("div",{className:"cart-gift-options-view--readonly",children:t(ct,{view:i,giftOptions:d,giftWrappingConfig:s,readOnlyFormOrderView:w})}),r?t(at,{view:i,productName:e&&"name"in e?e==null?void 0:e.name:"",showModal:r,giftWrappingConfig:s,setShowModal:()=>O(!1),updateGiftOptions:v,imageSwatchImageNode:y}):null,i==="product"&&f?N(!1):null,i==="order"&&f?t(Ve,{variant:"secondary",children:N(!0)}):null]})]})},U={recipientName:"",senderName:"",message:""},pt={giftReceiptIncluded:!1,printedCardIncluded:!1,isGiftWrappingSelected:!1},ke=(e,i)=>{var d,r;if(!i)return!!((d=L.config)!=null&&d.allowGiftMessageOnOrder);const l=((r=L.config)==null?void 0:r.allowGiftMessageOnOrderItems)??!1;return typeof(e==null?void 0:e.giftMessageAvailable)=="boolean"?e==null?void 0:e.giftMessageAvailable:l},ut=(e,i)=>{const{allowGiftWrappingOnOrder:l,allowGiftWrappingOnOrderItems:d,allowGiftMessageOnOrder:r,allowGiftMessageOnOrderItems:f,allowGiftReceipt:g,allowPrintedCard:o}=L.config||{},n=!f&&!d&&!ke(i,!0),c=!l&&!r&&!g&&!o;return!!(e==="product"&&n||e==="order"&&c)},gt=({item:e,view:i,dataSource:l,initialLoading:d,handleItemsLoading:r,handleItemsError:f,onItemUpdate:g,onGiftOptionsChange:o})=>{var pe,ue,ge,me,Oe,he;const n=i==="product",c=Z({requiredFieldError:"Cart.GiftOptions.formText.requiredFieldError"}),[C,s]=M(()=>d),[w,p]=M({isGiftReceiptVisible:!0,isPrintedCartVisible:!0,isGiftWrappingVisible:!0,isGiftOptionsVisible:!0}),[T,y]=M(!0),[V,O]=M(!1),[v,F]=M(!1),[_,W]=M(!1),[N,P]=M(!1),[B,z]=M(!1),[S,te]=M([]),[h,re]=M(null),[Ie,ie]=M(U),[G,fe]=M(()=>({giftWrappingId:"",...U,...pt})),Q=((pe=G.recipientName)==null?void 0:pe.trim())&&((ue=G.senderName)==null?void 0:ue.trim())&&((ge=G.message)==null?void 0:ge.trim()),Y=!((me=G.recipientName)!=null&&me.trim())&&!((Oe=G.senderName)!=null&&Oe.trim())&&!((he=G.message)!=null&&he.trim()),R=K(async a=>{switch(O(i==="order"),F(!0),i){case"product":{"uid"in e&&(r==null||r(e.uid,!0),f==null||f(e.uid));const{recipientName:m,senderName:x,message:b,giftWrappingId:E,isGiftWrappingSelected:k}=a,H={gift_message:{to:m??"",from:x??"",message:b??""},gift_wrapping_id:k?E:null};"uid"in e&&"quantity"in e&&await it([{uid:e.uid,quantity:e.quantity,giftOptions:H}]).then(()=>{g==null||g({item:e})}).finally(()=>{r==null||r(e.uid,!1),F(!1),W(!1),O(!1)}).catch($=>{console.warn($)})}break;case"order":await nt(a).finally(()=>{F(!1),W(!1),O(!1)});break;default:console.error('Incorrect "view" prop value provided for GiftOptions container (storefront-cart)');break}},[f,r,e,g,i]),ne=K((a,m,x={})=>{fe(b=>{const E=I=>I in b,k=I=>E(I)?b[I]:void 0;if(!(k(a)!==m||Object.keys(x).some(I=>k(I)!==x[I])))return o==null||o(b),b;const $={...b,[a]:m,...x};return!$.recipientName&&!$.senderName&&!$.message&&P(!0),(typeof m=="boolean"||["giftWrappingId","giftReceiptIncluded","printedCardIncluded"].includes(a))&&(P(!1),typeof o=="function"?o($):R($)),W(!0),o==null||o($),$})},[R,o]),Le=K(async()=>{v||typeof o!="function"&&(Y&&N&&(ie(U),P(!1),await R(G)),_&&Q&&(P(!0),await R(G)))},[R,G,_,Y,N,v,o,Q]),Ae=K(async a=>{if(v||typeof o=="function")return;const{name:m,value:x}=a.target;ie(b=>({...b,[m]:x.trim()?"":c.requiredFieldError})),Y&&N&&(ie(U),P(!1),await R(G)),_&&Q&&await R(G)},[v,Y,N,_,Q,c,R,G,o]),Ee=K(a=>{const m=a.target,x=m.name,b=m.type==="checkbox"?m.checked:m.value;ne(x,b)},[ne]);J(()=>{if(n)return;const a=rt.on(l==="cart"?"cart/data":"order/data",m=>{var E,k;re(m);const x=(E=m==null?void 0:m.items)==null?void 0:E.every(({giftWrappingAvailable:H})=>H),b=(k=m==null?void 0:m.cartGiftWrapping)==null?void 0:k.some(H=>H.selected);!x&&b&&R({...G,giftWrappingId:"",isGiftWrappingSelected:!1})},{eager:!0});return()=>{a==null||a.off()}},[R,l,G,n]);const oe=le(()=>{var Te,be,Fe,we,ve,_e;if(!h&&!e)return null;const a=n?(Te=e==null?void 0:e.productGiftWrapping)==null?void 0:Te.map(q=>{var xe;return{...q,price:e!=null&&e.giftWrappingPrice&&((xe=e==null?void 0:e.giftWrappingPrice)==null?void 0:xe.value)>0?e.giftWrappingPrice:q.price}}):(h==null?void 0:h.cartGiftWrapping)||[],m=a==null?void 0:a.find(q=>q.selected),x=(m==null?void 0:m.uid)??((be=a==null?void 0:a[0])==null?void 0:be.uid),b=!!m,E=n?e.giftMessage:h==null?void 0:h.giftMessage,k=h==null?void 0:h.printedCardIncluded,H=h==null?void 0:h.giftReceiptIncluded,$=ke(e,n),I=(Fe=L.config)==null?void 0:Fe.allowGiftWrappingOnOrder,ze=(we=L.config)==null?void 0:we.allowGiftReceipt,qe=(ve=L.config)==null?void 0:ve.allowPrintedCard,Ke=(_e=h==null?void 0:h.items)==null?void 0:_e.every(q=>q.giftWrappingAvailable),je=e==null?void 0:e.giftWrappingAvailable,Ce=n?!1:!!ze,Ge=n?!1:!!qe,ye=n?!!je&&!!a.length:!!I&&!!a.length&&!!Ke;return p({isGiftReceiptVisible:Ce,isPrintedCartVisible:Ge,isGiftWrappingVisible:ye,isGiftOptionsVisible:!(!Ce&&!Ge&&!ye)}),y($),{...e&&"uid"in e?{itemId:e.uid}:{},...n?{}:{printedCardIncluded:k,giftReceiptIncluded:H},...E,giftWrappingId:x,isGiftWrappingSelected:b,giftWrappingOptions:a}},[h,e,n]);J(()=>{if(!oe)return;const{giftWrappingOptions:a,...m}=oe;fe(m),a!=null&&a.length&&te(a),s(!1)},[oe]);const He=le(()=>Object.entries(G).filter(([a])=>a!=="itemId"&&a!=="giftWrappingId").some(([,a])=>!!a),[G]),Be=le(()=>{var a;return!C&&!!((a=L)!=null&&a.config)&&ut(i,e)},[e,C,i]);return{loading:C,giftOptions:G,showModal:B,errorsField:Ie,updateLoading:V,cartData:h,fieldsDisabled:v,isGiftOptionsApplied:He,giftWrappingConfig:S,setFieldsDisabled:F,handleFormMouseLeave:Le,onInputChange:Ee,updateGiftOptions:ne,setShowModal:z,handleBlur:Ae,isGiftMessageVisible:T,areGiftOptionsVisible:w,isGiftOptionsHidden:Be}},$t=({item:e,view:i="order",readOnlyFormOrderView:l="primary",dataSource:d="cart",isEditable:r=!0,initialLoading:f=!0,slots:g,handleItemsLoading:o,handleItemsError:n,onItemUpdate:c,onGiftOptionsChange:C})=>{const{isGiftMessageVisible:s,areGiftOptionsVisible:w,loading:p,giftOptions:T,showModal:y,errorsField:V,updateLoading:O,cartData:v,isGiftOptionsApplied:F,fieldsDisabled:_,giftWrappingConfig:W,handleFormMouseLeave:N,updateGiftOptions:P,setShowModal:B,onInputChange:z,handleBlur:S,isGiftOptionsHidden:te}=gt({item:e,view:i,dataSource:d,initialLoading:f,handleItemsLoading:o,handleItemsError:n,onItemUpdate:c,onGiftOptionsChange:C});return te?null:t(ft,{item:e,view:i,loading:p,onBlur:S,giftOptions:T,showModal:y,isEditable:r,errorsField:V,setShowModal:B,updateLoading:O,updateGiftOptions:P,cartData:v,isGiftOptionsApplied:F,fieldsDisabled:_,giftWrappingConfig:W,handleFormMouseLeave:N,readOnlyFormOrderView:l,onInputChange:z,isGiftMessageVisible:s,areGiftOptionsVisible:w,imageSwatchImageNode:g!=null&&g.SwatchImage?({imageSwatchContext:h,...re})=>t(Ze,{name:"SwatchImage",slotTag:"span",contentTag:"span",slot:g.SwatchImage,context:{item:e,imageSwatchContext:h,defaultImageProps:re}}):void 0})};export{$t as GiftOptions,$t as default};
3
+ import{jsx as t,jsxs as u,Fragment as A}from"@dropins/tools/preact-jsx-runtime.js";import{classes as We,Slot as Ze}from"@dropins/tools/lib.js";import{Modal as De,ContentGrid as Xe,ImageSwatch as Je,Button as se,Price as ce,Skeleton as Qe,SkeletonRow as Ye,Field as j,Checkbox as ae,Input as Me,TextArea as Ue,Accordion as Ne,AccordionSection as Pe,Icon as D,Card as Ve,ProgressSpinner as et}from"@dropins/tools/components.js";/* empty css */import*as X from"@dropins/tools/preact-compat.js";import{useRef as tt,useEffect as J,useState as M,useId as $e,useCallback as K,useMemo as le}from"@dropins/tools/preact-hooks.js";import{useText as Z}from"@dropins/tools/i18n.js";import{s as L}from"../chunks/resetCart.js";import{S as Re}from"../chunks/ChevronDown.js";import{S as Se}from"../chunks/ChevronUp.js";import{events as rt}from"@dropins/tools/event-bus.js";import{u as it}from"../chunks/updateProductsFromCart.js";import{s as nt}from"../chunks/setGiftOptionsOnCart.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/persisted-data.js";import"../chunks/refreshCart.js";import"../fragments.js";import"../chunks/acdl.js";const te=e=>X.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},X.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M0.75 12C0.75 5.78421 5.78421 0.75 12 0.75C18.2158 0.75 23.25 5.78421 23.25 12C23.25 18.2158 18.2158 23.25 12 23.25C5.78421 23.25 0.75 18.2158 0.75 12Z",stroke:"currentColor"}),X.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M6.75 12.762L10.2385 15.75L17.25 9",stroke:"currentColor"})),de=e=>X.createElement("svg",{width:20,height:23,viewBox:"0 0 20 23",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},X.createElement("path",{d:"M10 6L10 21.5M10 6H12.25C13.4926 6 14.5 4.99264 14.5 3.75C14.5 2.50736 13.4926 1.5 12.25 1.5C11.0074 1.5 10 2.50736 10 3.75M10 6V3.75M10 6H7.75C6.50736 6 5.5 4.99264 5.5 3.75C5.5 2.50736 6.50736 1.5 7.75 1.5C8.99264 1.5 10 2.50736 10 3.75M3.25 10.75H16.75C17.9926 10.75 19 9.74264 19 8.5C19 7.25736 17.9926 6.25 16.75 6.25H3.25C2.00736 6.25 1 7.25736 1 8.5C1 9.74264 2.00736 10.75 3.25 10.75ZM4.75 21.5H15.25C16.4926 21.5 17.5 20.4926 17.5 19.25V13.25C17.5 12.0074 16.4926 11 15.25 11H4.75C3.50736 11 2.5 12.0074 2.5 13.25V19.25C2.5 20.4926 3.50736 21.5 4.75 21.5Z",stroke:"currentColor",strokeWidth:1.5}));function ot(e){const i=tt(null);return J(()=>{if(!e||!i.current)return;const l=i.current,d=l.querySelectorAll('a, button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])');if(d.length===0)return;const r=d[0],f=d[d.length-1];function g(o){o.key==="Tab"&&(o.shiftKey&&document.activeElement===r?(o.preventDefault(),f.focus()):!o.shiftKey&&document.activeElement===f&&(o.preventDefault(),r.focus()))}return l.addEventListener("keydown",g),()=>{l.removeEventListener("keydown",g)}},[e]),i}const at=({view:e,showModal:i,productName:l,giftWrappingConfig:d,imageSwatchImageNode:r,setShowModal:f,updateGiftOptions:g})=>{var w;const o=ot(i),n=Z({modalTitle:"Cart.GiftOptions.modal.title",defaultTitle:"Cart.GiftOptions.modal.defaultTitle",modalWrappingText:"Cart.GiftOptions.modal.wrappingText",modalWrappingSubText:"Cart.GiftOptions.modal.wrappingSubText",modalConfirmButton:"Cart.GiftOptions.modal.modalConfirmButton",modalCancelButton:"Cart.GiftOptions.modal.modalCancelButton",ariaLabelModal:"Cart.GiftOptions.modal.ariaLabelModal",ariaLabelModalOpen:"Cart.GiftOptions.modal.ariaLabelModalOpen",ariaLabelModalClose:"Cart.GiftOptions.modal.ariaLabelModalClose",ariaLabelWrapping:"Cart.GiftOptions.modal.ariaLabelWrapping"}),[c,C]=M();if(J(()=>{const p=d.find(T=>T.selected)??d[0];C(p)},[d]),J(()=>{const p=document==null?void 0:document.querySelector(".cart-gift-options-view__modal-wrapper");p&&(p==null||p.focus())},[]),!i||!d.length)return null;const s=l?`${n.modalTitle} ${l}`:n.defaultTitle;return t("div",{ref:o,className:"cart-gift-options-view__modal-wrapper",tabIndex:0,"aria-label":`${n.ariaLabelModal} ${i?n.ariaLabelModalOpen:n.ariaLabelModalClose} ${l}`,children:u(De,{"data-testid":`gift-option-modal-${e}`,className:"cart-gift-options-view__modal",size:"medium",title:u(A,{children:[t("span",{children:s}),c&&((w=c==null?void 0:c.price)==null?void 0:w.value)>0?t(ce,{amount:c.price.value,currency:c.price.currency,weight:"normal"}):null]}),centered:!0,onClose:f,children:[u("div",{className:"cart-gift-options-view__modal-content",children:[t("span",{className:"cart-gift-options-view__modal-text",children:n.modalWrappingText}),t(Xe,{emptyGridContent:t(A,{}),maxColumns:6,columnWidth:"100px",className:"cart-gift-options-view__modal-grid",children:d.map(p=>t(Je,{groupAriaLabel:n.ariaLabelWrapping,selected:(c==null?void 0:c.uid)===(p==null?void 0:p.uid),onValue:()=>{C(p)},imageNode:r,name:"giftWrappingId",value:p.uid,src:p.image.url,alt:p.design,label:p.design,"data-testid":`gift-option-modal-image-${p.uid}`,className:"cart-gift-options-view__modal-grid-item"},p.uid))}),t("span",{className:"cart-gift-options-view__modal-sub-text",children:c==null?void 0:c.design})]}),t(se,{"data-testid":"gift-option-modal-confirm-button",type:"button",onClick:()=>{g("giftWrappingId",c==null?void 0:c.uid,{isGiftWrappingSelected:!0}),f()},children:n.modalConfirmButton}),t(se,{type:"button",variant:"secondary",onClick:f,"data-testid":"gift-option-modal-cancel-button",children:n.modalCancelButton})]})})},lt=()=>t(Qe,{children:t(Ye,{variant:"row",size:"small",fullWidth:!0,lines:1,multilineGap:"small"})}),st=({className:e,view:i,item:l,giftOptions:d,disabled:r,cartData:f,giftWrappingConfig:g,setShowModal:o,onInputChange:n,areGiftOptionsVisible:c})=>{var N,P,B,z;const C=$e(),s=Z({customize:`Cart.GiftOptions.${i}.customize`,giftReceiptIncludedTitle:`Cart.GiftOptions.${i}.giftReceiptIncluded.title`,giftReceiptIncludedText:`Cart.GiftOptions.${i}.giftReceiptIncluded.subtitle`,printedCardIncludedTitle:`Cart.GiftOptions.${i}.printedCardIncluded.title`,printedCardIncludedText:`Cart.GiftOptions.${i}.printedCardIncluded.subtitle`,giftOptionsWrapTitle:`Cart.GiftOptions.${i}.giftOptionsWrap.title`,giftOptionsWrapText:`Cart.GiftOptions.${i}.giftOptionsWrap.subtitle`,requiredFieldError:"Cart.GiftOptions.formText.requiredFieldError"}),w=l==null?void 0:l.productGiftWrapping,p=f==null?void 0:f.cartGiftWrapping,T=i==="product"?w:p,y=T==null?void 0:T.find(S=>S.uid===d.giftWrappingId),V=(y==null?void 0:y.design)??"",O=l==null?void 0:l.giftWrappingPrice,v=V?`${s.giftOptionsWrapText} ${V}`:"",F=+(((P=(N=L.config)==null?void 0:N.printedCardPrice)==null?void 0:P.value)??0)>0?(B=L.config)==null?void 0:B.printedCardPrice:null;let _=null;O!=null&&O.value?_=O:(z=y==null?void 0:y.price)!=null&&z.value&&(_=y.price);const W=S=>S?u("span",{children:[" (+",t(ce,{amount:S.value,currency:S.currency,weight:"normal"}),")"]}):null;return u("div",{className:We([e,[`${e}--hidden`,!c.isGiftOptionsVisible]]),children:[c.isGiftReceiptVisible?t(j,{disabled:r,className:"cart-gift-options-view__field-gift-receipt",children:t(ae,{id:`giftReceiptIncluded-${C}`,disabled:r,name:"giftReceiptIncluded",checked:d.giftReceiptIncluded,placeholder:s.giftReceiptIncludedTitle,label:s.giftReceiptIncludedTitle,description:s.giftReceiptIncludedText,onChange:n})}):null,c.isPrintedCartVisible?t(j,{disabled:r,className:"cart-gift-options-view__field-printed-card",children:t(ae,{id:`printedCardIncluded-${C}`,disabled:r,name:"printedCardIncluded",checked:d.printedCardIncluded,placeholder:s.printedCardIncludedTitle,label:u(A,{children:[s.printedCardIncludedTitle,W(F)]}),description:s.printedCardIncludedText,onChange:n})}):null,c.isGiftWrappingVisible?u(A,{children:[t(j,{disabled:r,className:"cart-gift-options-view__field-gift-wrap",children:t(ae,{id:`giftOptionsWrap-${C}`,disabled:r,name:"isGiftWrappingSelected",checked:d.isGiftWrappingSelected,placeholder:s.giftOptionsWrapTitle,label:u(A,{children:[s.giftOptionsWrapTitle,W(_)]}),description:v,onChange:n})}),t(se,{disabled:r||!g.length,type:"button","data-testid":`gift-option-customize-${i}`,variant:"tertiary",onClick:()=>o(!0),children:s.customize})]}):null]})},dt=({view:e,giftOptions:i,disabled:l,errorMessage:d,onInputChange:r,onBlur:f,isGiftMessageVisible:g})=>{const o=$e(),n=Z({formTitle:`Cart.GiftOptions.${e}.formContent.formTitle`,formTo:`Cart.GiftOptions.${e}.formContent.formTo`,formFrom:`Cart.GiftOptions.${e}.formContent.formFrom`,giftMessageTitle:`Cart.GiftOptions.${e}.formContent.giftMessageTitle`,formToPlaceholder:`Cart.GiftOptions.${e}.formContent.formToPlaceholder`,formFromPlaceholder:`Cart.GiftOptions.${e}.formContent.formFromPlaceholder`,formMessagePlaceholder:`Cart.GiftOptions.${e}.formContent.formMessagePlaceholder`});return g?u(A,{children:[t("span",{children:n.formTitle}),u("div",{children:[t("span",{children:n.formTo}),t(j,{disabled:l,error:d.recipientName,children:t(Me,{id:`recipientName-${o}`,disabled:l,type:"text",name:"recipientName",value:i.recipientName,placeholder:n.formToPlaceholder,onChange:r,onBlur:f})})]}),u("div",{children:[t("span",{children:n.formFrom}),t(j,{disabled:l,error:d.senderName,children:t(Me,{id:`senderName-${o}`,disabled:l,type:"text",name:"senderName",value:i.senderName,placeholder:n.formFromPlaceholder,onChange:r,onBlur:f})})]}),u("div",{children:[t("span",{children:n.giftMessageTitle}),t(j,{disabled:l,children:t(Ue,{id:`message-${o}`,errorMessage:d.message,disabled:l,name:"message",value:i.message,label:n.formMessagePlaceholder,onChange:r,onBlur:f})})]})]}):null},ct=({view:e,giftOptions:i,giftWrappingConfig:l,readOnlyFormOrderView:d})=>{const r=Z({readOnlyProductTitle:"Cart.GiftOptions.product.readOnlyFormView.title",wrapping:"Cart.GiftOptions.product.readOnlyFormView.wrapping",recipient:"Cart.GiftOptions.product.readOnlyFormView.recipient",sender:"Cart.GiftOptions.product.readOnlyFormView.sender",message:"Cart.GiftOptions.product.readOnlyFormView.message",readOnlyOrderTitle:"Cart.GiftOptions.order.readOnlyFormView.title",readOnlyOrderGiftReceiptTitle:"Cart.GiftOptions.order.readOnlyFormView.giftReceipt",readOnlyOrderGiftReceiptText:"Cart.GiftOptions.order.readOnlyFormView.giftReceiptText",readOnlyOrderGiftPrintCardTitle:"Cart.GiftOptions.order.readOnlyFormView.printCard",readOnlyOrderGiftPrintCardText:"Cart.GiftOptions.order.readOnlyFormView.printCardText",readOnlyOrderGiftWrapTitle:"Cart.GiftOptions.order.readOnlyFormView.giftWrap",readOnlyOrderGiftWrapOptionsText:"Cart.GiftOptions.order.readOnlyFormView.giftWrapOptions",readOnlyOrderFormTitle:"Cart.GiftOptions.order.readOnlyFormView.formTitle",readOnlyOrderFormTo:"Cart.GiftOptions.order.readOnlyFormView.formTo",readOnlyOrderFormFrom:"Cart.GiftOptions.order.readOnlyFormView.formFrom",readOnlyOrderFormMessageTitle:"Cart.GiftOptions.order.readOnlyFormView.formMessageTitle"}),{recipientName:f,senderName:g,message:o,giftReceiptIncluded:n,printedCardIncluded:c,isGiftWrappingSelected:C}=i,s=l==null?void 0:l.find(({uid:O})=>O===(i==null?void 0:i.giftWrappingId)),w=!!f||!!g||!!o,p=s==null?void 0:s.design,T=n||c||(s==null?void 0:s.selected),y=[{id:1,title:r.wrapping,message:C?p:""},{id:2,title:r.recipient,message:f},{id:3,title:r.sender,message:g},{id:4,title:r.message,message:o}],V=y.every(({message:O})=>!O);if(e==="product"&&!V)return t(Ne,{"data-testid":"gift-options-product",iconClose:Se,iconOpen:Re,actionIconPosition:"right",children:t(Pe,{title:r.readOnlyProductTitle,showIconLeft:!0,iconLeft:de,defaultOpen:!1,renderContentWhenClosed:!1,children:t("div",{children:y.filter(O=>O.message).map(O=>u("p",{children:[O.title," ",O.message]},O.id))})})});if(e==="order"&&(w||T)){const O=u("div",{className:"cart-gift-options-readonly__header",children:[t(D,{source:de,size:"24"}),t("span",{children:r.readOnlyOrderTitle})]}),v=u(A,{children:[n?u("div",{className:"cart-gift-options-readonly__checkboxes cart-gift-options-readonly__checkboxes--gift-receipt",children:[t(D,{source:te,size:"16"}),t("p",{children:r.readOnlyOrderGiftReceiptTitle}),t("p",{children:r.readOnlyOrderGiftReceiptText})]}):null,c?u("div",{className:"cart-gift-options-readonly__checkboxes cart-gift-options-readonly__checkboxes--print-card",children:[t(D,{source:te,size:"16"}),t("p",{children:r.readOnlyOrderGiftPrintCardTitle}),t("p",{children:r.readOnlyOrderGiftPrintCardText})]}):null,s!=null&&s.selected?u("div",{className:"cart-gift-options-readonly__checkboxes cart-gift-options-readonly__checkboxes--gift-wrap",children:[t(D,{source:te,size:"16"}),u("p",{children:[r.readOnlyOrderGiftWrapTitle," (+",t(ce,{amount:s.price.value,currency:s.price.currency,weight:"normal"}),")"]}),t("p",{children:`${r.readOnlyOrderGiftWrapOptionsText} ${s==null?void 0:s.design}`})]}):null]}),F=w?u("div",{className:"cart-gift-options-readonly__form",children:[t("div",{children:r.readOnlyOrderFormTitle}),u("div",{children:[u("p",{children:[t("span",{children:r.readOnlyOrderFormTo}),t("span",{children:f})]}),u("p",{children:[t("span",{children:r.readOnlyOrderFormFrom}),t("span",{children:g})]})]}),u("div",{children:[t("p",{children:r.readOnlyOrderFormMessageTitle}),t("p",{children:o})]})]}):null;return u(Ve,{variant:d,children:[O,v,F]})}return null},ft=({item:e,view:i,loading:l,giftOptions:d,showModal:r,isEditable:f,errorsField:g,updateLoading:o,cartData:n,fieldsDisabled:c,isGiftOptionsApplied:C,giftWrappingConfig:s,readOnlyFormOrderView:w,isGiftMessageVisible:p,areGiftOptionsVisible:T,imageSwatchImageNode:y,onBlur:V,setShowModal:O,updateGiftOptions:v,onInputChange:F,handleFormMouseLeave:_})=>{const W=Z({accordionHeading:`Cart.GiftOptions.${i}.accordionHeading`}),N=K(P=>t(Ne,{"data-testid":"gift-options-product",iconClose:Se,iconOpen:Re,actionIconPosition:"right",children:t(Pe,{title:u("div",{className:"cart-gift-options-view__icon--success",children:[t("span",{children:W.accordionHeading}),C?t(D,{source:te,size:"16"}):null]}),ariaLabelTitle:W.accordionHeading,showIconLeft:!0,iconLeft:de,defaultOpen:C||P,renderContentWhenClosed:!1,children:u(A,{children:[t(st,{className:"cart-gift-options-view__top",view:i,item:e,giftOptions:d,disabled:c,onInputChange:F,cartData:n,giftWrappingConfig:s,setShowModal:O,areGiftOptionsVisible:T}),t("form",{className:"cart-gift-options-view__footer",onMouseLeave:_,children:t(dt,{view:i,giftOptions:d,disabled:c,errorMessage:g,onInputChange:F,onBlur:V,isGiftMessageVisible:p})})]})})}),[i,e,n,W,g,d,c,s,T,C,p,V,O,F,_]);return!T.isGiftOptionsVisible&&!p?null:u("div",{id:"cart-gift-options-view",className:We(["cart-gift-options-view",`cart-gift-options-view--${i}`,["cart-gift-options-view--loading",o]]),children:[o?t(et,{className:"cart-gift-options-view__spinner"}):null,l?t(lt,{}):u(A,{children:[f?null:t("div",{className:"cart-gift-options-view--readonly",children:t(ct,{view:i,giftOptions:d,giftWrappingConfig:s,readOnlyFormOrderView:w})}),r?t(at,{view:i,productName:e&&"name"in e?e==null?void 0:e.name:"",showModal:r,giftWrappingConfig:s,setShowModal:()=>O(!1),updateGiftOptions:v,imageSwatchImageNode:y}):null,i==="product"&&f?N(!1):null,i==="order"&&f?t(Ve,{variant:"secondary",children:N(!0)}):null]})]})},ee={recipientName:"",senderName:"",message:""},pt={giftReceiptIncluded:!1,printedCardIncluded:!1,isGiftWrappingSelected:!1},ke=(e,i)=>{var d,r;if(!i)return!!((d=L.config)!=null&&d.allowGiftMessageOnOrder);const l=((r=L.config)==null?void 0:r.allowGiftMessageOnOrderItems)??!1;return typeof(e==null?void 0:e.giftMessageAvailable)=="boolean"?e==null?void 0:e.giftMessageAvailable:l},ut=(e,i)=>{const{allowGiftWrappingOnOrder:l,allowGiftWrappingOnOrderItems:d,allowGiftMessageOnOrder:r,allowGiftMessageOnOrderItems:f,allowGiftReceipt:g,allowPrintedCard:o}=L.config||{},n=!f&&!d&&!ke(i,!0),c=!l&&!r&&!g&&!o;return!!(e==="product"&&n||e==="order"&&c)},gt=({item:e,view:i,dataSource:l,initialLoading:d,handleItemsLoading:r,handleItemsError:f,onItemUpdate:g,onGiftOptionsChange:o})=>{var pe,ue,ge,me,Oe,he;const n=i==="product",c=Z({requiredFieldError:"Cart.GiftOptions.formText.requiredFieldError"}),[C,s]=M(()=>d),[w,p]=M({isGiftReceiptVisible:!0,isPrintedCartVisible:!0,isGiftWrappingVisible:!0,isGiftOptionsVisible:!0}),[T,y]=M(!0),[V,O]=M(!1),[v,F]=M(!1),[_,W]=M(!1),[N,P]=M(!1),[B,z]=M(!1),[S,re]=M([]),[h,Q]=M(null),[Ie,ie]=M(ee),[G,fe]=M(()=>({giftWrappingId:"",...ee,...pt})),Y=((pe=G.recipientName)==null?void 0:pe.trim())&&((ue=G.senderName)==null?void 0:ue.trim())&&((ge=G.message)==null?void 0:ge.trim()),U=!((me=G.recipientName)!=null&&me.trim())&&!((Oe=G.senderName)!=null&&Oe.trim())&&!((he=G.message)!=null&&he.trim()),R=K(async a=>{switch(O(i==="order"),F(!0),i){case"product":{"uid"in e&&(r==null||r(e.uid,!0),f==null||f(e.uid));const{recipientName:m,senderName:x,message:b,giftWrappingId:E,isGiftWrappingSelected:k}=a,H={gift_message:{to:m??"",from:x??"",message:b??""},gift_wrapping_id:k?E:null};"uid"in e&&"quantity"in e&&await it([{uid:e.uid,quantity:e.quantity,giftOptions:H}]).then(()=>{g==null||g({item:e})}).finally(()=>{r==null||r(e.uid,!1),F(!1),W(!1),O(!1)}).catch($=>{console.warn($)})}break;case"order":await nt(a).finally(()=>{F(!1),W(!1),O(!1)});break;default:console.error('Incorrect "view" prop value provided for GiftOptions container (storefront-cart)');break}},[f,r,e,g,i]),ne=K((a,m,x={})=>{fe(b=>{const E=I=>I in b,k=I=>E(I)?b[I]:void 0;if(!(k(a)!==m||Object.keys(x).some(I=>k(I)!==x[I])))return o==null||o(b),b;const $={...b,[a]:m,...x};return!$.recipientName&&!$.senderName&&!$.message&&P(!0),(typeof m=="boolean"||["giftWrappingId","giftReceiptIncluded","printedCardIncluded"].includes(a))&&(P(!1),typeof o=="function"?o($):R($)),W(!0),o==null||o($),$})},[R,o]),Le=K(async()=>{v||typeof o!="function"&&(U&&N&&(ie(ee),P(!1),await R(G)),_&&Y&&(P(!0),await R(G)))},[R,G,_,U,N,v,o,Y]),Ae=K(async a=>{if(v||typeof o=="function")return;const{name:m,value:x}=a.target;ie(b=>({...b,[m]:x.trim()?"":c.requiredFieldError})),U&&N&&(ie(ee),P(!1),await R(G)),_&&Y&&await R(G)},[v,U,N,_,Y,c,R,G,o]),Ee=K(a=>{const m=a.target,x=m.name,b=m.type==="checkbox"?m.checked:m.value;ne(x,b)},[ne]);J(()=>{if(n)return;const a=rt.on(l==="cart"?"cart/data":"order/data",m=>{var E,k;Q(m);const x=(E=m==null?void 0:m.items)==null?void 0:E.some(({giftWrappingAvailable:H})=>H),b=(k=m==null?void 0:m.cartGiftWrapping)==null?void 0:k.some(H=>H.selected);!x&&b&&R({...G,giftWrappingId:"",isGiftWrappingSelected:!1})},{eager:!0});return()=>{a==null||a.off()}},[Q,R,l,G,n]);const oe=le(()=>{var Te,be,Fe,we,ve,_e;if(!h&&!e)return null;const a=n?(Te=e==null?void 0:e.productGiftWrapping)==null?void 0:Te.map(q=>{var xe;return{...q,price:e!=null&&e.giftWrappingPrice&&((xe=e==null?void 0:e.giftWrappingPrice)==null?void 0:xe.value)>0?e.giftWrappingPrice:q.price}}):(h==null?void 0:h.cartGiftWrapping)||[],m=a==null?void 0:a.find(q=>q.selected),x=(m==null?void 0:m.uid)??((be=a==null?void 0:a[0])==null?void 0:be.uid),b=!!m,E=n?e.giftMessage:h==null?void 0:h.giftMessage,k=h==null?void 0:h.printedCardIncluded,H=h==null?void 0:h.giftReceiptIncluded,$=ke(e,n),I=(Fe=L.config)==null?void 0:Fe.allowGiftWrappingOnOrder,ze=(we=L.config)==null?void 0:we.allowGiftReceipt,qe=(ve=L.config)==null?void 0:ve.allowPrintedCard,Ke=(_e=h==null?void 0:h.items)==null?void 0:_e.some(q=>q.giftWrappingAvailable),je=e==null?void 0:e.giftWrappingAvailable,Ce=n?!1:!!ze,Ge=n?!1:!!qe,ye=n?!!je&&!!a.length:!!I&&!!a.length&&!!Ke;return p({isGiftReceiptVisible:Ce,isPrintedCartVisible:Ge,isGiftWrappingVisible:ye,isGiftOptionsVisible:!(!Ce&&!Ge&&!ye)}),y($),{...e&&"uid"in e?{itemId:e.uid}:{},...n?{}:{printedCardIncluded:k,giftReceiptIncluded:H},...E,giftWrappingId:x,isGiftWrappingSelected:b,giftWrappingOptions:a}},[h,e,n]);J(()=>{if(!oe)return;const{giftWrappingOptions:a,...m}=oe;fe(m),a!=null&&a.length&&re(a),s(!1)},[oe]);const He=le(()=>Object.entries(G).filter(([a])=>a!=="itemId"&&a!=="giftWrappingId").some(([,a])=>!!a),[G]),Be=le(()=>{var a;return!C&&!!((a=L)!=null&&a.config)&&ut(i,e)},[e,C,i]);return{loading:C,giftOptions:G,showModal:B,errorsField:Ie,updateLoading:V,cartData:h,fieldsDisabled:v,isGiftOptionsApplied:He,giftWrappingConfig:S,setFieldsDisabled:F,handleFormMouseLeave:Le,onInputChange:Ee,updateGiftOptions:ne,setShowModal:z,handleBlur:Ae,isGiftMessageVisible:T,areGiftOptionsVisible:w,isGiftOptionsHidden:Be}},$t=({item:e,view:i="order",readOnlyFormOrderView:l="primary",dataSource:d="cart",isEditable:r=!0,initialLoading:f=!0,slots:g,handleItemsLoading:o,handleItemsError:n,onItemUpdate:c,onGiftOptionsChange:C})=>{const{isGiftMessageVisible:s,areGiftOptionsVisible:w,loading:p,giftOptions:T,showModal:y,errorsField:V,updateLoading:O,cartData:v,isGiftOptionsApplied:F,fieldsDisabled:_,giftWrappingConfig:W,handleFormMouseLeave:N,updateGiftOptions:P,setShowModal:B,onInputChange:z,handleBlur:S,isGiftOptionsHidden:re}=gt({item:e,view:i,dataSource:d,initialLoading:f,handleItemsLoading:o,handleItemsError:n,onItemUpdate:c,onGiftOptionsChange:C});return re?null:t(ft,{item:e,view:i,loading:p,onBlur:S,giftOptions:T,showModal:y,isEditable:r,errorsField:V,setShowModal:B,updateLoading:O,updateGiftOptions:P,cartData:v,isGiftOptionsApplied:F,fieldsDisabled:_,giftWrappingConfig:W,handleFormMouseLeave:N,readOnlyFormOrderView:l,onInputChange:z,isGiftMessageVisible:s,areGiftOptionsVisible:w,imageSwatchImageNode:g!=null&&g.SwatchImage?({imageSwatchContext:h,...Q})=>t(Ze,{name:"SwatchImage",slotTag:"span",contentTag:"span",slot:g.SwatchImage,context:{item:e,imageSwatchContext:h,defaultImageProps:Q}}):void 0})};export{$t as GiftOptions,$t as default};
@@ -1,7 +1,7 @@
1
1
  import { CartModel, Item } from '../data/models';
2
2
  import { GiftOptionsDataSourcesProps, GiftOptionsViewProps, GiftWrappingConfigProps, GiftFormDataType, ProductGiftOptionsConfig } from '../types';
3
3
 
4
- interface UseGiftOptionsProps {
4
+ export interface UseGiftOptionsProps {
5
5
  item: Item | ProductGiftOptionsConfig;
6
6
  view: GiftOptionsViewProps;
7
7
  dataSource: GiftOptionsDataSourcesProps;
@@ -42,5 +42,4 @@ export declare const useGiftOptions: ({ item, view, dataSource, initialLoading,
42
42
  };
43
43
  isGiftOptionsHidden: boolean;
44
44
  };
45
- export {};
46
45
  //# sourceMappingURL=useGiftOptions.d.ts.map
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name": "@dropins/storefront-cart", "version": "1.3.0-beta2", "@dropins/tools": "~1.2.0", "license": "SEE LICENSE IN LICENSE.md"}
1
+ {"name": "@dropins/storefront-cart", "version": "1.3.0-beta4", "@dropins/tools": "~1.2.0", "license": "SEE LICENSE IN LICENSE.md"}