@dropins/storefront-wishlist 0.2.4-alpha → 1.0.0-beta2

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,4 +1,6 @@
1
1
  import { Product } from '../../data/models';
2
2
 
3
- export declare const getProductBySku: (sku: string) => Promise<void | Product | null>;
3
+ export declare const getProductBySku: (sku: string, selectedOptions?: {
4
+ uid: string;
5
+ }[]) => Promise<void | Product | null>;
4
6
  //# sourceMappingURL=getProductBySku.d.ts.map
@@ -1,3 +1,3 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsx as t,Fragment as g,jsxs as N}from"@dropins/tools/preact-jsx-runtime.js";import{classes as w}from"@dropins/tools/lib.js";import{Price as _,Button as T,Icon as R,Image as j}from"@dropins/tools/components.js";import{useState as V}from"@dropins/tools/preact-compat.js";import{s as y,r as K}from"./removeProductsFromWishlist.js";import{events as U}from"@dropins/tools/event-bus.js";import{a as X,S as Y}from"./Trash.js";import{useText as H}from"@dropins/tools/i18n.js";const J=({taxes:r,displayMode:e})=>t(g,{children:r.map((o,c)=>N("div",{"data-testid":`wishlist-product-item-tax-${c}`,className:"wishlist-product-item-tax",children:[t("span",{className:"wishlist-product-item-tax-label",children:o.label}),t(_,{className:"wishlist-product-item-tax-price",amount:o.money.value,currency:o.money.currency}),t("span",{className:"wishlist-product-item-tax-display-mode",children:e==="INCLUDING_FPT_AND_DESCRIPTION"?"incl.":"excl."})]},c))}),Q=({className:r,item:e,onCartActionButtonClick:o,onTrashButtonClick:c,fixedProductTaxesEnabled:P,fixedProductTaxesEnabledDisplayInProductLists:n,routeProdDetailPage:d,...i})=>{var A,C,B,O,S,E,z;const u=H({cartActionBtn:"ProductItem.CartActionButton",trashActionBtn:"ProductItem.TrashActionButton",customizeActionBtn:"ProductItem.CustomizeActionButton"}),v=((B=(C=(A=e.product)==null?void 0:A.prices)==null?void 0:C.discount)==null?void 0:B.amountOff)!==0||((E=(S=(O=e.product)==null?void 0:O.prices)==null?void 0:S.discount)==null?void 0:E.percentOff)!==0,f=()=>{var s;return t("a",{className:"wishlist-product-item-image","data-testid":"wishlist-product-item-image",href:d(e.product),children:t(Z,{images:(s=e.product)!=null&&s.image?[e.product.image]:[]})})},a=()=>{var s,l,h,p,I,m,x,b,F,G;return N(g,{children:[t(_,{className:w(["wishlist-product-item-price",v?"strikeout":""]),"data-testid":"wishlist-product-item-price",amount:(l=(s=e.product)==null?void 0:s.prices)==null?void 0:l.regularPrice.value,currency:(p=(h=e.product)==null?void 0:h.prices)==null?void 0:p.regularPrice.currency}),v&&t(_,{className:"wishlist-product-item-discounted-price","data-testid":"wishlist-product-item-discounted-price",amount:(m=(I=e.product)==null?void 0:I.prices)==null?void 0:m.finalPrice.value,currency:(b=(x=e.product)==null?void 0:x.prices)==null?void 0:b.finalPrice.currency}),P&&(n==="INCLUDING_FPT_AND_DESCRIPTION"||n==="EXCLUDING_FPT_INCLUDING_DESCRIPTION_FINAL_PRICE")&&((G=(F=e.product)==null?void 0:F.prices)==null?void 0:G.fixedProductTaxes)&&t(J,{taxes:e.product.prices.fixedProductTaxes,displayMode:n})]})},k=()=>t(T,{"data-testid":"wishlist-product-item-remove-button",className:"wishlist-product-item-button__remove",variant:"tertiary",onClick:()=>c==null?void 0:c(),icon:t(R,{source:X,size:"24",stroke:"2",viewBox:"0 0 24 24","aria-label":u.trashActionBtn})}),L=()=>M()?W():$(),M=()=>{var s,l,h,p;return((s=e.product)==null?void 0:s.type)==="ConfigurableProduct"?q(e):((l=e.product)==null?void 0:l.type)!=="GiftCardProduct"&&((h=e.product)==null?void 0:h.type)!=="BundleProduct"&&((p=e.product)==null?void 0:p.type)!=="GroupedProduct"},q=s=>{var p,I;const l=((p=s.product.options)==null?void 0:p.filter(m=>m.required))||[];if(l.length===0)return!0;const h=((I=s.selectedOptions)==null?void 0:I.map(m=>m.uid))||[];return l.every(m=>{var x;return(x=m.values)==null?void 0:x.some(b=>h.includes(b.uid))})},W=()=>{var s;return t(T,{"data-testid":"wishlist-product-item-move-to-cart-button",size:"medium",type:"submit",icon:t(R,{source:Y}),disabled:((s=e.product)==null?void 0:s.stockStatus)!=="IN_STOCK","aria-label":u.cartActionBtn,onClick:()=>o==null?void 0:o(),children:u.cartActionBtn})},$=()=>t(T,{"data-testid":"wishlist-product-item-customize-button",size:"medium",type:"submit","aria-label":u.customizeActionBtn,href:d(e.product),children:u.customizeActionBtn});return t("div",{...i,className:w(["wishlist-product-item",r]),children:N("div",{className:"wishlist-product-item__content",children:[f(),N("div",{className:"wishlist-product-item__title","data-testid":"wishlist-product-item-header",children:[t("a",{className:"wishlist-product-item-name","data-testid":"wishlist-product-item-name",href:d(e.product),children:(z=e.product)==null?void 0:z.name}),k(),a()]}),L()]})})},Z=({className:r,children:e,images:o,...c})=>{const[P,n]=V(0);return N(g,{children:[t("div",{...c,className:w(["image-carousel",r]),children:t("div",{className:w(["overflow-hidden relative max-w-[200px]",r]),children:o==null?void 0:o.map((d,i)=>i===P&&t(j,{className:"image-carousel-image",alt:d.alt,src:d.src}))})}),(o==null?void 0:o.length)>1&&t("div",{className:w(["absolute","image-switcher-area"]),children:o==null?void 0:o.map((d,i)=>t("span",{className:w(["image-switcher",P===i?"image-switcher-active":"image-switcher-inactive"]),onClick:u=>{n(i),u.stopPropagation()}},i))})]})},ie=({initialData:r=null,moveProdToCart:e,routeProdDetailPage:o})=>{var n,d,i,u,v;if(!(r!=null&&r.product))return null;const c=async(f=!0)=>{try{return await K([r]),console.log(`Product ${r.product.sku} removed from wishlist!`),f&&U.emit("wishlist/alert",{action:"remove",item:r}),!0}catch(a){return console.error(`Product ${r.product.sku} could not be removed from wishlist`,a),!1}};return t(Q,{item:r,onCartActionButtonClick:async()=>{var f;try{return await e([{sku:r.product.sku,quantity:1,optionsUIDs:(f=r.selectedOptions)==null?void 0:f.map(a=>a.uid),enteredOptions:r.enteredOptions}]),console.log(`Product ${r.product.sku} successfully moved to cart 🛒`),U.emit("wishlist/alert",{action:"move",item:r}),await c(!1)}catch(a){return console.error("Could not move product to cart: ",a),a.toString().includes("You need to choose options for your item.")&&window.location.replace(o(r.product)),!1}},onTrashButtonClick:c,fixedProductTaxesEnabled:((n=y.config)==null?void 0:n.fixedProductTaxesEnabled)??!1,fixedProductTaxesApply:((d=y.config)==null?void 0:d.fixedProductTaxesApply)??!1,fixedProductTaxesEnabledDisplayInProductLists:(i=y.config)==null?void 0:i.fixedProductTaxesEnabledDisplayInProductLists,fixedProductTaxesEnabledDisplayInProductView:(u=y.config)==null?void 0:u.fixedProductTaxesEnabledDisplayInProductView,fixedProductTaxesEnabledDisplayInSalesModules:(v=y.config)==null?void 0:v.fixedProductTaxesEnabledDisplayInSalesModules,routeProdDetailPage:o})};export{ie as W};
3
+ import{jsx as t,Fragment as _,jsxs as h}from"@dropins/tools/preact-jsx-runtime.js";import{classes as w}from"@dropins/tools/lib.js";import{Price as b,Button as y,Icon as U,Image as H}from"@dropins/tools/components.js";import{useState as J}from"@dropins/tools/preact-compat.js";import{s as N,r as Q}from"./removeProductsFromWishlist.js";import{events as q}from"@dropins/tools/event-bus.js";import{a as Z,S as D}from"./Trash.js";import{useText as ee}from"@dropins/tools/i18n.js";const te=({taxes:r,displayMode:e})=>t(_,{children:r.map((o,c)=>h("div",{"data-testid":`wishlist-product-item-tax-${c}`,className:"wishlist-product-item-tax",children:[t("span",{className:"wishlist-product-item-tax-label",children:o.label}),t(b,{className:"wishlist-product-item-tax-price",amount:o.money.value,currency:o.money.currency}),t("span",{className:"wishlist-product-item-tax-display-mode",children:e==="INCLUDING_FPT_AND_DESCRIPTION"?"incl.":"excl."})]},c))}),re=({className:r,item:e,onCartActionButtonClick:o,onTrashButtonClick:c,fixedProductTaxesEnabled:v,fixedProductTaxesEnabledDisplayInProductLists:a,routeProdDetailPage:d,...u})=>{var T,C,g,A,O,B,S,E,z;const n=ee({cartActionBtn:"ProductItem.CartActionButton",trashActionBtn:"ProductItem.TrashActionButton",customizeActionBtn:"ProductItem.CustomizeActionButton"}),P=((g=(C=(T=e.product)==null?void 0:T.prices)==null?void 0:C.discount)==null?void 0:g.amountOff)!==0||((B=(O=(A=e.product)==null?void 0:A.prices)==null?void 0:O.discount)==null?void 0:B.percentOff)!==0,f=()=>{var s;return t("a",{className:"wishlist-product-item-image","data-testid":"wishlist-product-item-image",href:d(e.product),children:t(se,{images:(s=e.product)!=null&&s.image?[e.product.image]:[]})})},p=()=>{var s,i,l,m,F,G,R,k,L,M;return h(_,{children:[t(b,{className:w(["wishlist-product-item-price",P?"strikeout":""]),"data-testid":"wishlist-product-item-price",amount:(i=(s=e.product)==null?void 0:s.prices)==null?void 0:i.regularPrice.value,currency:(m=(l=e.product)==null?void 0:l.prices)==null?void 0:m.regularPrice.currency}),P&&t(b,{className:"wishlist-product-item-discounted-price","data-testid":"wishlist-product-item-discounted-price",amount:(G=(F=e.product)==null?void 0:F.prices)==null?void 0:G.finalPrice.value,currency:(k=(R=e.product)==null?void 0:R.prices)==null?void 0:k.finalPrice.currency}),v&&(a==="INCLUDING_FPT_AND_DESCRIPTION"||a==="EXCLUDING_FPT_INCLUDING_DESCRIPTION_FINAL_PRICE")&&((M=(L=e.product)==null?void 0:L.prices)==null?void 0:M.fixedProductTaxes)&&t(te,{taxes:e.product.prices.fixedProductTaxes,displayMode:a})]})},W=()=>t(y,{"data-testid":"wishlist-product-item-remove-button",className:"wishlist-product-item-button__remove",variant:"tertiary",onClick:()=>c==null?void 0:c(),icon:t(U,{source:Z,size:"24",stroke:"2",viewBox:"0 0 24 24","aria-label":n.trashActionBtn})}),$=()=>V()?X():Y(),V=()=>{var s,i,l,m;return((s=e.product)==null?void 0:s.type)==="ConfigurableProduct"?j():((i=e.product)==null?void 0:i.type)!=="GiftCardProduct"&&((l=e.product)==null?void 0:l.type)!=="BundleProduct"&&((m=e.product)==null?void 0:m.type)!=="GroupedProduct"},I=((S=e.selectedOptions)==null?void 0:S.map(s=>s.uid))||[],x=((E=e.product.options)==null?void 0:E.filter(s=>s.required))||[],j=()=>x.length===0?!0:x.every(s=>{var i;return(i=s.values)==null?void 0:i.some(l=>I.includes(l.uid))}),K=()=>I.length===0?null:t("div",{className:"wishlist-product-item-options",children:x.map(s=>{var l;const i=(l=s.values)==null?void 0:l.find(m=>I.includes(m.uid));return i?h("div",{className:"wishlist-product-item-option",children:[h("span",{className:"wishlist-product-item-option__attribute",children:[s.attributeCode,":"]})," ",t("span",{className:"wishlist-product-item-option__label",children:i.label})]},s.attributeCode):null})}),X=()=>{var s;return t(y,{"data-testid":"wishlist-product-item-move-to-cart-button",size:"medium",type:"submit",icon:t(U,{source:D}),disabled:((s=e.product)==null?void 0:s.stockStatus)!=="IN_STOCK","aria-label":n.cartActionBtn,onClick:()=>o==null?void 0:o(),children:n.cartActionBtn})},Y=()=>t(y,{"data-testid":"wishlist-product-item-customize-button",size:"medium",type:"submit","aria-label":n.customizeActionBtn,href:d(e.product),children:n.customizeActionBtn});return t("div",{...u,className:w(["wishlist-product-item",r]),children:h("div",{className:"wishlist-product-item__content",children:[f(),h("div",{className:"wishlist-product-item__title","data-testid":"wishlist-product-item-header",children:[t("a",{className:"wishlist-product-item-name","data-testid":"wishlist-product-item-name",href:d(e.product),children:(z=e.product)==null?void 0:z.name}),W(),p()]}),K(),$()]})})},se=({className:r,children:e,images:o,...c})=>{const[v,a]=J(0);return h(_,{children:[t("div",{...c,className:w(["image-carousel",r]),children:t("div",{className:w(["overflow-hidden relative max-w-[200px]",r]),children:o==null?void 0:o.map((d,u)=>u===v&&t(H,{className:"image-carousel-image",alt:d.alt,src:d.src}))})}),(o==null?void 0:o.length)>1&&t("div",{className:w(["absolute","image-switcher-area"]),children:o==null?void 0:o.map((d,u)=>t("span",{className:w(["image-switcher",v===u?"image-switcher-active":"image-switcher-inactive"]),onClick:n=>{a(u),n.stopPropagation()}},u))})]})},pe=({initialData:r=null,moveProdToCart:e,routeProdDetailPage:o})=>{var a,d,u,n,P;if(!(r!=null&&r.product))return null;const c=async(f=!0)=>{try{return await Q([r]),console.log(`Product ${r.product.sku} removed from wishlist!`),f&&q.emit("wishlist/alert",{action:"remove",item:r}),!0}catch(p){return console.error(`Product ${r.product.sku} could not be removed from wishlist`,p),!1}};return t(re,{item:r,onCartActionButtonClick:async()=>{var f;try{return await e([{sku:r.product.sku,quantity:1,optionsUIDs:(f=r.selectedOptions)==null?void 0:f.map(p=>p.uid),enteredOptions:r.enteredOptions}]),console.log(`Product ${r.product.sku} successfully moved to cart 🛒`),q.emit("wishlist/alert",{action:"move",item:r}),await c(!1)}catch(p){return console.error("Could not move product to cart: ",p),p.toString().includes("You need to choose options for your item.")&&window.location.replace(o(r.product)),!1}},onTrashButtonClick:c,fixedProductTaxesEnabled:((a=N.config)==null?void 0:a.fixedProductTaxesEnabled)??!1,fixedProductTaxesApply:((d=N.config)==null?void 0:d.fixedProductTaxesApply)??!1,fixedProductTaxesEnabledDisplayInProductLists:(u=N.config)==null?void 0:u.fixedProductTaxesEnabledDisplayInProductLists,fixedProductTaxesEnabledDisplayInProductView:(n=N.config)==null?void 0:n.fixedProductTaxesEnabledDisplayInProductView,fixedProductTaxesEnabledDisplayInSalesModules:(P=N.config)==null?void 0:P.fixedProductTaxesEnabledDisplayInSalesModules,routeProdDetailPage:o})};export{pe as W};
@@ -1,6 +1,6 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{Initializer as A}from"@dropins/tools/lib.js";import{events as _}from"@dropins/tools/event-bus.js";import{s as o,j as D,f as E,h as b,g as y,i as R,k as G}from"./removeProductsFromWishlist.js";const C=new A({init:async e=>{const t={isGuestWishlistEnabled:!1,...e};C.config.setConfig(t),S().catch(console.error)},listeners:()=>[_.on("authenticated",async e=>{if(o.authenticated&&!e&&_.emit("wishlist/reset",void 0),e&&!o.authenticated){o.authenticated=e;const t=await S().catch(console.error);t&&le(t)}},{eager:!0}),_.on("wishlist/data",e=>{D(e)}),_.on("wishlist/reset",()=>{ae().catch(console.error),_.emit("wishlist/data",null)})]}),fe=C.config;function v(e){if(!e)return null;const t=i=>{switch(i){case 1:return"INCLUDING_FPT_AND_DESCRIPTION";case 2:return"EXCLUDING_FPT_INCLUDING_DESCRIPTION_FINAL_PRICE";case 3:return"EXCLUDING_FPT";default:return"INCLUDING_FPT_ONLY"}};return{wishlistIsEnabled:e.storeConfig.magento_wishlist_general_is_enabled,wishlistMultipleListIsEnabled:e.storeConfig.enable_multiple_wishlists,wishlistMaxNumber:e.storeConfig.maximum_number_of_wishlists,fixedProductTaxesEnabled:e.storeConfig.fixed_product_taxes_enable,fixedProductTaxesApply:e.storeConfig.fixed_product_taxes_apply_tax_to_fpt,fixedProductTaxesEnabledDisplayInProductLists:t(e.storeConfig.fixed_product_taxes_display_prices_in_product_lists),fixedProductTaxesEnabledDisplayInSalesModules:t(e.storeConfig.fixed_product_taxes_display_prices_in_sales_modules),fixedProductTaxesEnabledDisplayInProductView:t(e.storeConfig.fixed_product_taxes_display_prices_on_product_view_page)}}function N(e){var t;return e?{type:e.__typename,name:e.name,sku:e.sku,uid:e.uid,image:M(e),stockStatus:e.stock_status,canonicalUrl:e.canonical_url,urlKey:e.url_key,categories:(t=e.categories)==null?void 0:t.map(i=>i.name),prices:W(e),productAttributes:F(e),options:U(e)}:null}function U(e){var t,i;return e.__typename==="ConfigurableProduct"?e.configurable_options?(t=e.configurable_options)==null?void 0:t.map(s=>{var n;return{uid:s.uid,attributeUid:s.attribute_uid,attributeCode:s.attribute_code,values:(n=s.values)==null?void 0:n.map(r=>({uid:r.uid})),required:!0}}):[]:e.__typename==="GiftCardProduct"?e.gift_card_options?(i=e.gift_card_options)==null?void 0:i.map(s=>({uid:s.uid,required:s.required,title:s.title})):[]:[]}function M(e){var t,i;return{src:(t=e.thumbnail)==null?void 0:t.url,alt:(i=e.thumbnail)==null?void 0:i.label}}function W(e){var t,i,s,n,r,a,p,u,c,l,d,m,f,I,g,h,T,P;return{regularPrice:{currency:((s=(i=(t=e.price_range)==null?void 0:t.minimum_price)==null?void 0:i.regular_price)==null?void 0:s.currency)??"USD",value:((a=(r=(n=e.price_range)==null?void 0:n.minimum_price)==null?void 0:r.regular_price)==null?void 0:a.value)??0},finalPrice:{currency:((c=(u=(p=e.price_range)==null?void 0:p.minimum_price)==null?void 0:u.final_price)==null?void 0:c.currency)??"USD",value:((m=(d=(l=e.price_range)==null?void 0:l.minimum_price)==null?void 0:d.final_price)==null?void 0:m.value)??0},discount:{amountOff:((g=(I=(f=e.price_range)==null?void 0:f.minimum_price)==null?void 0:I.discount)==null?void 0:g.amount_off)??0,percentOff:((P=(T=(h=e.price_range)==null?void 0:h.minimum_price)==null?void 0:T.discount)==null?void 0:P.percent_off)??0},fixedProductTaxes:L(e)}}function F(e){var t,i;return(i=(t=e.custom_attributesV2)==null?void 0:t.items)==null?void 0:i.map(s=>{const n=s.code.split("_").map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join(" ");return{...s,code:n}})}function L(e){var t,i,s,n,r;return(i=(t=e.price_range)==null?void 0:t.minimum_price)!=null&&i.fixed_product_taxes?(r=(n=(s=e.price_range)==null?void 0:s.minimum_price)==null?void 0:n.fixed_product_taxes)==null?void 0:r.map(a=>({money:{value:a.amount.value,currency:a.amount.currency},label:a.label})):[]}function w(e,t){return e?{id:e.id,updated_at:e.updated_at,sharing_code:e.sharing_code,items_count:e.items_count,items:k(e,t??[])}:null}function k(e,t){var i,s;return(s=(i=e==null?void 0:e.items_v2)==null?void 0:i.items)!=null&&s.length?e.items_v2.items.map(n=>({id:n.id,quantity:n.quantity,description:n.description,added_at:n.added_at,enteredOptions:t,selectedOptions:$(n),product:N(n.product)})):[]}function $(e){return e.product.__typename==="ConfigurableProduct"?e.configurable_options?e.configurable_options.map(t=>({value:t.value_label,label:t.option_label,uid:t.configurable_product_option_value_uid})):[]:[]}const q=`
3
+ import{Initializer as D}from"@dropins/tools/lib.js";import{events as c}from"@dropins/tools/event-bus.js";import{s as l,j as v,f as b,h as E,g as y,i as C,k as G}from"./removeProductsFromWishlist.js";const R=new D({init:async e=>{const t={isGuestWishlistEnabled:!1,...e};R.config.setConfig(t),S().catch(console.error)},listeners:()=>[c.on("authenticated",async e=>{if(l.authenticated&&!e&&c.emit("wishlist/reset",void 0),e&&!l.authenticated){l.authenticated=e;const t=await S().catch(console.error);t&&ce(t)}},{eager:!0}),c.on("wishlist/data",e=>{v(e)}),c.on("wishlist/reset",()=>{ae().catch(console.error),c.emit("wishlist/data",null)})]}),fe=R.config;function O(e){if(!e)return null;const t=i=>{switch(i){case 1:return"INCLUDING_FPT_AND_DESCRIPTION";case 2:return"EXCLUDING_FPT_INCLUDING_DESCRIPTION_FINAL_PRICE";case 3:return"EXCLUDING_FPT";default:return"INCLUDING_FPT_ONLY"}};return{wishlistIsEnabled:e.storeConfig.magento_wishlist_general_is_enabled,wishlistMultipleListIsEnabled:e.storeConfig.enable_multiple_wishlists,wishlistMaxNumber:e.storeConfig.maximum_number_of_wishlists,fixedProductTaxesEnabled:e.storeConfig.fixed_product_taxes_enable,fixedProductTaxesApply:e.storeConfig.fixed_product_taxes_apply_tax_to_fpt,fixedProductTaxesEnabledDisplayInProductLists:t(e.storeConfig.fixed_product_taxes_display_prices_in_product_lists),fixedProductTaxesEnabledDisplayInSalesModules:t(e.storeConfig.fixed_product_taxes_display_prices_in_sales_modules),fixedProductTaxesEnabledDisplayInProductView:t(e.storeConfig.fixed_product_taxes_display_prices_on_product_view_page)}}function N(e,t=[]){var i;return e?{type:e.__typename,name:e.name,sku:e.sku,uid:e.uid,image:M(e,t),stockStatus:e.stock_status,canonicalUrl:e.canonical_url,urlKey:e.url_key,categories:(i=e.categories)==null?void 0:i.map(s=>s.name),prices:W(e),productAttributes:F(e),options:U(e)}:null}function U(e){var t,i;return e.__typename==="ConfigurableProduct"?e.configurable_options?(t=e.configurable_options)==null?void 0:t.map(s=>{var n;return{uid:s.uid,attributeUid:s.attribute_uid,attributeCode:s.attribute_code,values:(n=s.values)==null?void 0:n.map(r=>({uid:r.uid,label:r.label})),required:!0}}):[]:e.__typename==="GiftCardProduct"?e.gift_card_options?(i=e.gift_card_options)==null?void 0:i.map(s=>({uid:s.uid,required:s.required,title:s.title})):[]:[]}function M(e,t=[]){var s;let i=e.thumbnail;if(e.__typename==="ConfigurableProduct"&&e.variants&&(t==null?void 0:t.length)>0){const n=t.map(o=>o.uid);let r=e.variants.find(o=>{var u;const _=((u=o.attributes)==null?void 0:u.map(a=>a.uid))||[];return n.every(a=>_.includes(a))});r||(r=e.variants.find(o=>{var _;return(_=o.attributes)==null?void 0:_.some(u=>t.some(a=>a.uid===u.uid))})),(s=r==null?void 0:r.product)!=null&&s.image&&(i=r.product.image)}return{src:i==null?void 0:i.url,alt:i==null?void 0:i.label}}function W(e){var t,i,s,n,r,o,_,u,a,d,m,p,f,I,g,T,h,P;return{regularPrice:{currency:((s=(i=(t=e.price_range)==null?void 0:t.minimum_price)==null?void 0:i.regular_price)==null?void 0:s.currency)??"USD",value:((o=(r=(n=e.price_range)==null?void 0:n.minimum_price)==null?void 0:r.regular_price)==null?void 0:o.value)??0},finalPrice:{currency:((a=(u=(_=e.price_range)==null?void 0:_.minimum_price)==null?void 0:u.final_price)==null?void 0:a.currency)??"USD",value:((p=(m=(d=e.price_range)==null?void 0:d.minimum_price)==null?void 0:m.final_price)==null?void 0:p.value)??0},discount:{amountOff:((g=(I=(f=e.price_range)==null?void 0:f.minimum_price)==null?void 0:I.discount)==null?void 0:g.amount_off)??0,percentOff:((P=(h=(T=e.price_range)==null?void 0:T.minimum_price)==null?void 0:h.discount)==null?void 0:P.percent_off)??0},fixedProductTaxes:L(e)}}function F(e){var t,i;return(i=(t=e.custom_attributesV2)==null?void 0:t.items)==null?void 0:i.map(s=>{const n=s.code.split("_").map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join(" ");return{...s,code:n}})}function L(e){var t,i,s,n,r;return(i=(t=e.price_range)==null?void 0:t.minimum_price)!=null&&i.fixed_product_taxes?(r=(n=(s=e.price_range)==null?void 0:s.minimum_price)==null?void 0:n.fixed_product_taxes)==null?void 0:r.map(o=>({money:{value:o.amount.value,currency:o.amount.currency},label:o.label})):[]}function w(e,t){return e?{id:e.id,updated_at:e.updated_at,sharing_code:e.sharing_code,items_count:e.items_count,items:k(e,t??[])}:null}function k(e,t){var i,s;return(s=(i=e==null?void 0:e.items_v2)==null?void 0:i.items)!=null&&s.length?e.items_v2.items.map(n=>{const r=$(n);return{id:n.id,quantity:n.quantity,description:n.description,added_at:n.added_at,enteredOptions:t,selectedOptions:r,product:N(n.product,r)}}):[]}function $(e){return e.product.__typename==="ConfigurableProduct"?e.configurable_options?e.configurable_options.map(t=>({value:t.value_label,label:t.option_label,uid:t.configurable_product_option_value_uid})):[]:[]}const q=`
4
4
  query STORE_CONFIG_QUERY {
5
5
  storeConfig {
6
6
  magento_wishlist_general_is_enabled
@@ -13,7 +13,7 @@ query STORE_CONFIG_QUERY {
13
13
  fixed_product_taxes_display_prices_on_product_view_page
14
14
  }
15
15
  }
16
- `,H=async()=>E(q,{method:"GET",cache:"force-cache"}).then(({errors:e,data:t})=>e?b(e):v(t)),B=`
16
+ `,H=async()=>b(q,{method:"GET",cache:"force-cache"}).then(({errors:e,data:t})=>e?E(e):O(t)),B=`
17
17
  fragment PRICE_RANGE_FRAGMENT on PriceRange {
18
18
  minimum_price {
19
19
  regular_price {
@@ -58,44 +58,6 @@ query STORE_CONFIG_QUERY {
58
58
  }
59
59
  }
60
60
  }
61
- `,x=`
62
- fragment PRODUCT_FRAGMENT on ProductInterface {
63
- __typename
64
- uid
65
- sku
66
- name
67
- thumbnail {
68
- url
69
- label
70
- }
71
- url_key
72
- categories {
73
- url_path
74
- url_key
75
- name
76
- }
77
- stock_status
78
- canonical_url
79
- custom_attributesV2(filters: {is_visible_on_front: true}){
80
- items {
81
- code
82
- ...on AttributeValue {
83
- value
84
- }
85
- ...on AttributeSelectedOptions {
86
- selected_options {
87
- value
88
- label
89
- }
90
- }
91
- }
92
- }
93
- price_range {
94
- ...PRICE_RANGE_FRAGMENT
95
- }
96
- }
97
-
98
- ${B}
99
61
  `,z=`
100
62
  ... on SimpleProduct {
101
63
  options {
@@ -110,12 +72,22 @@ ${B}
110
72
  attribute_code
111
73
  values {
112
74
  uid
75
+ label
113
76
  }
114
77
  }
115
78
  variants {
79
+ attributes {
80
+ code
81
+ uid
82
+ label
83
+ }
116
84
  product {
117
85
  sku
118
86
  stock_status
87
+ image {
88
+ label
89
+ url
90
+ }
119
91
  }
120
92
  }
121
93
  }
@@ -147,7 +119,7 @@ ${B}
147
119
  }
148
120
  }
149
121
  }
150
- `,V=`
122
+ `,j=`
151
123
  ... on BundleProduct {
152
124
  items {
153
125
  uid
@@ -160,22 +132,60 @@ ${B}
160
132
  }
161
133
  }
162
134
  }
163
- `,j=`
135
+ `,x=`
136
+ fragment PRODUCT_FRAGMENT on ProductInterface {
137
+ __typename
138
+ uid
139
+ sku
140
+ name
141
+ thumbnail {
142
+ url
143
+ label
144
+ }
145
+ url_key
146
+ categories {
147
+ url_path
148
+ url_key
149
+ name
150
+ }
151
+ stock_status
152
+ canonical_url
153
+ custom_attributesV2(filters: {is_visible_on_front: true}){
154
+ items {
155
+ code
156
+ ...on AttributeValue {
157
+ value
158
+ }
159
+ ...on AttributeSelectedOptions {
160
+ selected_options {
161
+ value
162
+ label
163
+ }
164
+ }
165
+ }
166
+ }
167
+ price_range {
168
+ ...PRICE_RANGE_FRAGMENT
169
+ }
170
+ ${z}
171
+ ${Y}
172
+ ${Q}
173
+ ${K}
174
+ ${j}
175
+ }
176
+
177
+ ${B}
178
+ `,V=`
164
179
  query GET_PRODUCT_BY_SKU($sku: String!) {
165
180
  products(filter: { sku: { eq: $sku } }) {
166
181
  items {
167
182
  ...PRODUCT_FRAGMENT
168
- ${z}
169
- ${Y}
170
- ${Q}
171
- ${K}
172
- ${V}
173
183
  }
174
184
  }
175
185
  }
176
186
 
177
187
  ${x}
178
- `,Z=async e=>{if(!e)throw Error("Product SKU is not set");return E(j,{variables:{sku:e}}).then(({errors:t,data:i})=>{var s;return t?b(t):(s=i==null?void 0:i.products)!=null&&s.items?N(i.products.items[0]):null})},X=`
188
+ `,Z=async(e,t)=>{if(!e)throw Error("Product SKU is not set");return b(V,{variables:{sku:e}}).then(({errors:i,data:s})=>{var n;return i?E(i):(n=s==null?void 0:s.products)!=null&&n.items?N(s.products.items[0],t??[]):null})},X=`
179
189
  fragment CUSTOMIZABLE_OPTIONS_FRAGMENT on SelectedCustomizableOption {
180
190
  type
181
191
  customizable_option_uid
@@ -269,7 +279,7 @@ fragment WISHLIST_ITEM_FRAGMENT on WishlistItemInterface {
269
279
 
270
280
  ${x}
271
281
  ${X}
272
- `,O=`
282
+ `,A=`
273
283
  fragment WISHLIST_FRAGMENT on Wishlist {
274
284
  id
275
285
  updated_at
@@ -283,7 +293,7 @@ fragment WISHLIST_FRAGMENT on Wishlist {
283
293
  }
284
294
 
285
295
  ${se}
286
- `,ne=`
296
+ `,re=`
287
297
  query GET_WISHLISTS_QUERY {
288
298
  customer {
289
299
  wishlists {
@@ -292,8 +302,8 @@ ${se}
292
302
  }
293
303
  }
294
304
 
295
- ${O}
296
- `,re=async()=>o.authenticated?E(ne).then(({errors:e,data:t})=>{var i;return e?b(e):(i=t==null?void 0:t.customer)!=null&&i.wishlists?t.customer.wishlists.map(s=>w(s)):null}):y(),oe=`
305
+ ${A}
306
+ `,ne=async()=>l.authenticated?b(re).then(({errors:e,data:t})=>{var i;return e?E(e):(i=t==null?void 0:t.customer)!=null&&i.wishlists?t.customer.wishlists.map(s=>w(s)):null}):y(),ue=`
297
307
  mutation ADD_PRODUCTS_TO_WISHLIST_MUTATION(
298
308
  $wishlistId: ID!,
299
309
  $wishlistItems: [WishlistItemInput!]!,
@@ -311,5 +321,5 @@ ${se}
311
321
  }
312
322
  }
313
323
  }
314
- ${O}
315
- `,ue=async e=>{var s,n,r,a,p;if(!e)return null;const t=y();let i={id:(t==null?void 0:t.id)??"",updated_at:"",sharing_code:"",items_count:0,items:(t==null?void 0:t.items)??[]};for(const u of e){if((s=t.items)==null?void 0:s.some(d=>R(d,{sku:u.sku,optionUIDs:u.optionsUIDs})))continue;const l=await Z(u.sku);l&&(i.items=[...i.items,{quantity:u.quantity,selectedOptions:u.optionsUIDs?(n=u.optionsUIDs)==null?void 0:n.map(d=>({uid:d})):[],enteredOptions:[],product:l}])}if(i.items_count=(r=i.items)==null?void 0:r.length,_.emit("wishlist/data",i),o.authenticated){if(!o.wishlistId)throw _.emit("wishlist/data",t),Error("Wishlist ID is not set");const u={wishlistId:o.wishlistId,wishlistItems:e.map(({sku:f,parentSku:I,quantity:g,optionsUIDs:h,enteredOptions:T})=>({sku:f,parent_sku:I,quantity:g,selected_options:h,entered_options:T}))},{errors:c,data:l}=await E(oe,{variables:u}),d=[...((a=l==null?void 0:l.addProductsToWishlist)==null?void 0:a.user_errors)??[],...c??[]];if(d.length>0)return _.emit("wishlist/data",t),b(d);const m=w(l.addProductsToWishlist.wishlist,((p=e[0])==null?void 0:p.enteredOptions)??[]);_.emit("wishlist/data",m)}return null},ae=()=>(o.wishlistId=null,o.authenticated=!1,Promise.resolve(null)),S=async()=>{if(o.initializing)return null;o.initializing=!0,o.config||(o.config=await H());const e=o.authenticated?await ce():await _e();return _.emit("wishlist/initialized",e),_.emit("wishlist/data",e),o.initializing=!1,e};async function ce(){const e=await re(),t=e?e[0]:null;return t?(o.wishlistId=t.id,t):null}async function _e(){try{return await y()}catch(e){throw console.error(e),e}}const le=async e=>{var n;if(!e)return null;const t=y(!0),i=[];if((n=t==null?void 0:t.items)==null||n.forEach(r=>{var u;const a=((u=r.selectedOptions)==null?void 0:u.map(c=>c.uid))||[];if(!e.items.some(c=>R(c,{sku:r.product.sku,optionUIDs:a}))){const c={sku:r.product.sku,quantity:1,optionsUIDs:a,enteredOptions:r.enteredOptions||void 0};i.push(c)}}),i.length===0)return null;const s=await ue(i);return G(),s};export{se as W,ue as a,O as b,fe as c,Z as d,re as e,S as f,H as g,ce as h,C as i,_e as j,le as m,ae as r,w as t};
324
+ ${A}
325
+ `,oe=async e=>{var s,n,r,o,_;if(!e)return null;const t=y();let i={id:(t==null?void 0:t.id)??"",updated_at:"",sharing_code:"",items_count:0,items:(t==null?void 0:t.items)??[]};for(const u of e){if((s=t.items)==null?void 0:s.some(p=>C(p,{sku:u.sku,optionUIDs:u.optionsUIDs})))continue;const d=u.optionsUIDs?(n=u.optionsUIDs)==null?void 0:n.map(p=>({uid:p})):[],m=await Z(u.sku,d);m&&(i.items=[...i.items,{quantity:u.quantity,selectedOptions:d,enteredOptions:[],product:m}])}if(i.items_count=(r=i.items)==null?void 0:r.length,c.emit("wishlist/data",i),l.authenticated){if(!l.wishlistId)throw c.emit("wishlist/data",t),Error("Wishlist ID is not set");const u={wishlistId:l.wishlistId,wishlistItems:e.map(({sku:f,parentSku:I,quantity:g,optionsUIDs:T,enteredOptions:h})=>({sku:f,parent_sku:I,quantity:g,selected_options:T,entered_options:h}))},{errors:a,data:d}=await b(ue,{variables:u}),m=[...((o=d==null?void 0:d.addProductsToWishlist)==null?void 0:o.user_errors)??[],...a??[]];if(m.length>0)return c.emit("wishlist/data",t),E(m);const p=w(d.addProductsToWishlist.wishlist,((_=e[0])==null?void 0:_.enteredOptions)??[]);c.emit("wishlist/data",p)}return null},ae=()=>(l.wishlistId=null,l.authenticated=!1,Promise.resolve(null)),S=async()=>{if(l.initializing)return null;l.initializing=!0,l.config||(l.config=await H());const e=l.authenticated?await le():await _e();return c.emit("wishlist/initialized",e),c.emit("wishlist/data",e),l.initializing=!1,e};async function le(){const e=await ne(),t=e?e[0]:null;return t?(l.wishlistId=t.id,t):null}async function _e(){try{return await y()}catch(e){throw console.error(e),e}}const ce=async e=>{var n;if(!e)return null;const t=y(!0),i=[];if((n=t==null?void 0:t.items)==null||n.forEach(r=>{var u;const o=((u=r.selectedOptions)==null?void 0:u.map(a=>a.uid))||[];if(!e.items.some(a=>C(a,{sku:r.product.sku,optionUIDs:o}))){const a={sku:r.product.sku,quantity:1,optionsUIDs:o,enteredOptions:r.enteredOptions||void 0};i.push(a)}}),i.length===0)return null;const s=await oe(i);return G(),s};export{se as W,oe as a,A as b,fe as c,Z as d,ne as e,S as f,H as g,le as h,R as i,_e as j,ce as m,ae as r,w as t};
@@ -1,6 +1,6 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{events as u}from"@dropins/tools/event-bus.js";import{FetchGraphQL as S}from"@dropins/tools/fetch-graphql.js";function g(s){const e=document.cookie.split(";");for(const t of e)if(t.trim().startsWith(`${s}=`))return t.trim().substring(s.length+1);return null}const f={wishlistId:null,authenticated:!1,isLoading:!0},n=new Proxy(f,{set(s,e,t){if(s[e]=t,e==="wishlistId"){if(t===n.wishlistId)return!0;if(t===null)return document.cookie="DROPIN__WISHLIST__WISHLIST-ID=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/",!0;const r=new Date;r.setDate(r.getDate()+30),document.cookie=`DROPIN__WISHLIST__WISHLIST-ID=${t}; expires=${r.toUTCString()}; path=/`}return Reflect.set(s,e,t)},get(s,e){return e==="wishlistId"?g("DROPIN__WISHLIST__WISHLIST-ID"):s[e]}});function d(s,e){var i;if(s.product.sku!==e.sku)return!1;const t=((i=s.selectedOptions)==null?void 0:i.map(o=>o.uid).sort())||[],r=(e.optionUIDs||[]).sort();return JSON.stringify(t)===JSON.stringify(r)}const c="DROPIN__WISHLIST__WISHLIST__DATA";function E(s){const e=n.authenticated?sessionStorage:localStorage;if(s)try{e.setItem(c,JSON.stringify(s))}catch(t){p(t)?console.error("Storage quota exceeded:",t):console.error("Error saving wishlist:",t)}else e.removeItem(c)}const p=s=>s instanceof DOMException&&s.name==="QuotaExceededError";function _(s=!1){const e=n.authenticated&&!s?sessionStorage:localStorage;try{const t=e.getItem(c);return t?JSON.parse(t):{id:"",items:[]}}catch(t){return console.error("Error retrieving wishlist:",t),{id:"",items:[]}}}function H(){localStorage.removeItem(c)}function L(s,e=[],t=[]){var o;const r=n.authenticated?sessionStorage:localStorage,i=r.getItem(c)?JSON.parse(r.getItem(c)):{items:[]};return(o=i==null?void 0:i.items)==null?void 0:o.find(l=>d(l,{sku:s,optionUIDs:e}))}const{setEndpoint:P,setFetchGraphQlHeader:F,removeFetchGraphQlHeader:R,setFetchGraphQlHeaders:M,fetchGraphQl:w,getConfig:N}=new S().getMethods(),O=s=>{const e=s.map(t=>t.message).join(" ");throw Error(e)},D=`
3
+ import{events as u}from"@dropins/tools/event-bus.js";import{FetchGraphQL as S}from"@dropins/tools/fetch-graphql.js";function g(s){const e=document.cookie.split(";");for(const t of e)if(t.trim().startsWith(`${s}=`))return t.trim().substring(s.length+1);return null}const f={wishlistId:null,authenticated:!1,isLoading:!0},n=new Proxy(f,{set(s,e,t){if(s[e]=t,e==="wishlistId"){if(t===n.wishlistId)return!0;if(t===null)return document.cookie="DROPIN__WISHLIST__WISHLIST-ID=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/",!0;const r=new Date;r.setDate(r.getDate()+30),document.cookie=`DROPIN__WISHLIST__WISHLIST-ID=${t}; expires=${r.toUTCString()}; path=/`}return Reflect.set(s,e,t)},get(s,e){return e==="wishlistId"?g("DROPIN__WISHLIST__WISHLIST-ID"):s[e]}});function d(s,e){var o;if(s.product.sku!==e.sku)return!1;const t=((o=s.selectedOptions)==null?void 0:o.map(i=>i.uid).filter(i=>!!i).sort())||[],r=(e.optionUIDs||[]).filter(i=>!!i).sort();return JSON.stringify(t)===JSON.stringify(r)}const c="DROPIN__WISHLIST__WISHLIST__DATA";function E(s){const e=n.authenticated?sessionStorage:localStorage;if(s)try{e.setItem(c,JSON.stringify(s))}catch(t){p(t)?console.error("Storage quota exceeded:",t):console.error("Error saving wishlist:",t)}else e.removeItem(c)}const p=s=>s instanceof DOMException&&s.name==="QuotaExceededError";function _(s=!1){const e=n.authenticated&&!s?sessionStorage:localStorage;try{const t=e.getItem(c);return t?JSON.parse(t):{id:"",items:[]}}catch(t){return console.error("Error retrieving wishlist:",t),{id:"",items:[]}}}function H(){localStorage.removeItem(c)}function L(s,e=[],t=[]){var i;const r=n.authenticated?sessionStorage:localStorage,o=r.getItem(c)?JSON.parse(r.getItem(c)):{items:[]};return(i=o==null?void 0:o.items)==null?void 0:i.find(l=>d(l,{sku:s,optionUIDs:e}))}const{setEndpoint:P,setFetchGraphQlHeader:F,removeFetchGraphQlHeader:R,setFetchGraphQlHeaders:M,fetchGraphQl:w,getConfig:N}=new S().getMethods(),O=s=>{const e=s.map(t=>t.message).join(" ");throw Error(e)},D=`
4
4
  mutation REMOVE_PRODUCTS_FROM_WISHLIST_MUTATION(
5
5
  $wishlistId: ID!,
6
6
  $wishlistItemsIds: [ID!]!,
@@ -15,4 +15,4 @@ import{events as u}from"@dropins/tools/event-bus.js";import{FetchGraphQL as S}fr
15
15
  }
16
16
  }
17
17
  }
18
- `,$=async s=>{var r,i,o;const e=_(),t={...e,items:(r=e.items)==null?void 0:r.filter(l=>!s.some(I=>{var a;return d(l,{sku:I.product.sku,optionUIDs:(a=I.selectedOptions)==null?void 0:a.map(h=>h.uid)})}))};if(t.items_count=(i=t.items)==null?void 0:i.length,u.emit("wishlist/data",t),n.authenticated){if(!n.wishlistId)throw Error("Wishlist ID is not set");const l=s.map(m=>m.id),{errors:I,data:a}=await w(D,{variables:{wishlistId:n.wishlistId,wishlistItemsIds:l}}),h=[...((o=a==null?void 0:a.removeProductsFromWishlist)==null?void 0:o.user_errors)??[],...I??[]];return h.length>0?(u.emit("wishlist/data",e),O(h)):null}return null};export{P as a,F as b,R as c,M as d,N as e,w as f,_ as g,O as h,d as i,E as j,H as k,L as l,$ as r,n as s};
18
+ `,$=async s=>{var r,o,i;const e=_(),t={...e,items:(r=e.items)==null?void 0:r.filter(l=>!s.some(I=>{var a;return d(l,{sku:I.product.sku,optionUIDs:(a=I.selectedOptions)==null?void 0:a.map(h=>h.uid)})}))};if(t.items_count=(o=t.items)==null?void 0:o.length,u.emit("wishlist/data",t),n.authenticated){if(!n.wishlistId)throw Error("Wishlist ID is not set");const l=s.map(m=>m.id),{errors:I,data:a}=await w(D,{variables:{wishlistId:n.wishlistId,wishlistItemsIds:l}}),h=[...((i=a==null?void 0:a.removeProductsFromWishlist)==null?void 0:i.user_errors)??[],...I??[]];return h.length>0?(u.emit("wishlist/data",e),O(h)):null}return null};export{P as a,F as b,R as c,M as d,N as e,w as f,_ as g,O as h,d as i,E as j,H as k,L as l,$ as r,n as s};
@@ -1,3 +1,3 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{jsx as n}from"@dropins/tools/preact-jsx-runtime.js";import{useState as l,useEffect as P}from"@dropins/tools/preact-compat.js";import{Button as x,Icon as d}from"@dropins/tools/components.js";import{events as o}from"@dropins/tools/event-bus.js";import{s as E,g as F,i as H,r as L}from"../chunks/removeProductsFromWishlist.js";import{c as T,a as b}from"../chunks/mergeWishlists.js";import{S as j}from"../chunks/HeartFilled.js";import{S as q}from"../chunks/Heart.js";import"@dropins/tools/fetch-graphql.js";import"@dropins/tools/lib.js";const R=({product:t,iconWishlisted:u,iconToWishlist:f,size:g,variant:I,disabled:v,labelToWishlist:p,labelWishlisted:W,onClick:k})=>{const[w,D]=l(E.authenticated),[r,a]=l(!1),[m,S]=l(null),{isGuestWishlistEnabled:U}=T.getConfig();P(()=>{const e=s=>D(s),i=()=>{var h;const s=F(),c=(h=s==null?void 0:s.items)==null?void 0:h.find(y=>H(y,{sku:t.sku,optionUIDs:t.optionUIDs}));S(c??null),a(!!c)};o.on("authenticated",e),o.on("wishlist/data",i)},[t.optionUIDs,t.sku]);const C=async()=>{var e;r?(await L([m]),a(!1),o.emit("wishlist/alert",{action:"remove",item:m})):(await b([{sku:t.sku,quantity:1,optionsUIDs:t.optionUIDs??void 0,enteredOptions:(e=t.options)!=null&&e.items?t.options.items.filter(i=>i.selected).map(i=>({uid:i.uid,value:i.value})):void 0}]),a(!0),o.emit("wishlist/alert",{action:"add",item:{product:t}}))};return!w&&!U?null:n(x,{active:r,"data-testid":"wishlist-toggle",size:g??"medium",variant:I??"tertiary",disabled:v,icon:n(d,{source:f??q}),activeIcon:n(d,{source:u??j}),onClick:k??C,children:p,activeChildren:W})};export{R as WishlistToggle,R as default};
3
+ import{jsx as r}from"@dropins/tools/preact-jsx-runtime.js";import{useState as m,useCallback as P,useEffect as d}from"@dropins/tools/preact-compat.js";import{Button as b,Icon as h}from"@dropins/tools/components.js";import{events as a}from"@dropins/tools/event-bus.js";import{s as x,g as E,i as F,r as H}from"../chunks/removeProductsFromWishlist.js";import{c as L,a as T}from"../chunks/mergeWishlists.js";import{S as j}from"../chunks/HeartFilled.js";import{S as q}from"../chunks/Heart.js";import"@dropins/tools/fetch-graphql.js";import"@dropins/tools/lib.js";const R=({product:s,iconWishlisted:u,iconToWishlist:g,size:I,variant:v,disabled:p,labelToWishlist:k,labelWishlisted:W,onClick:w})=>{const[D,C]=m(x.authenticated),[c,n]=m(!1),[f,S]=m(null),{isGuestWishlistEnabled:U}=L.getConfig(),o=P(()=>{var e;const i=E(),t=(e=i==null?void 0:i.items)==null?void 0:e.find(l=>F(l,{sku:s.sku,optionUIDs:s.optionUIDs}));S(t??null),n(!!t)},[s.sku,s.optionUIDs]);d(()=>{o()},[o]),d(()=>{const i=l=>C(l),t=a.on("authenticated",i),e=a.on("wishlist/data",o);return()=>{t==null||t.off(),e==null||e.off()}},[o]);const y=async()=>{var i;c?(await H([f]),n(!1),a.emit("wishlist/alert",{action:"remove",item:f})):(await T([{sku:s.sku,quantity:1,optionsUIDs:s.optionUIDs??void 0,enteredOptions:(i=s.options)!=null&&i.items?s.options.items.filter(t=>t.selected).map(t=>({uid:t.uid,value:t.value})):void 0}]),n(!0),a.emit("wishlist/alert",{action:"add",item:{product:s}}))};return!D&&!U?null:r(b,{active:c,"data-testid":"wishlist-toggle",size:I??"medium",variant:v??"tertiary",disabled:p,icon:r(h,{source:g??q}),activeIcon:r(h,{source:u??j}),onClick:w??y,children:k,activeChildren:W})};export{R as WishlistToggle,R as default};
@@ -65,6 +65,7 @@ interface Option {
65
65
  required: boolean;
66
66
  values: [{
67
67
  uid: string;
68
+ label: string;
68
69
  }];
69
70
  }
70
71
  export {};
@@ -1,4 +1,4 @@
1
- import { Product } from '../models';
1
+ import { Product, ConfigurableOption } from '../models';
2
2
 
3
- export declare function transformProduct(data: any): Product | null;
3
+ export declare function transformProduct(data: any, selectedOptions?: ConfigurableOption[]): Product | null;
4
4
  //# sourceMappingURL=transform-product.d.ts.map
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name": "@dropins/storefront-wishlist", "version": "0.2.4-alpha", "@dropins/tools": "~1.0.0", "license": "SEE LICENSE IN LICENSE.md"}
1
+ {"name": "@dropins/storefront-wishlist", "version": "1.0.0-beta2", "@dropins/tools": "~1.0.0", "license": "SEE LICENSE IN LICENSE.md"}
package/render.js CHANGED
@@ -1,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- (function(r,i){try{if(typeof document<"u"){const e=document.createElement("style"),n=i.styleId;for(const t in i.attributes)e.setAttribute(t,i.attributes[t]);e.setAttribute("data-dropin",n),e.appendChild(document.createTextNode(r));const a=document.querySelector('style[data-dropin="sdk"]');if(a)a.after(e);else{const t=document.querySelector('link[rel="stylesheet"], style');t?t.before(e):document.head.append(e)}}}catch(e){console.error("dropin-styles (injectCodeFunction)",e)}})(".wishlist-empty-wishlist{container-type:inline-size;container-name:wishlist}.wishlist-empty-wishlist__wrapper .dropin-card--secondary{display:grid;grid-auto-rows:min-content;justify-content:center;text-align:center;border:unset}.wishlist-empty-wishlist .dropin-illustrated-message__heading{font:var(--type-headline-1-font)}.wishlist-empty-wishlist .dropin-illustrated-message__message{font:var(--type-body-1-default-font)}@container wishlist (width < 737px){.wishlist-empty-wishlist__wrapper .dropin-card{border:unset;border-style:hidden}}.wishlist-wishlist{container-type:inline-size;container-name:wishlist-grid;max-width:inherit}.wishlist-wishlist__content{display:grid;gap:var(--spacing-medium);margin:auto;padding:var(--spacing-medium) 0}.wishlist-wishlist__heading{color:var(--color-neutral-800);display:grid;font:var(--type-headline-1-font);letter-spacing:var(--type-headline-1-letter-spacing);padding:var(--spacing-small) 0;row-gap:var(--spacing-xsmall)}.wishlist-wishlist__heading-count{color:#6d6d6d;margin-left:var(--spacing-xxsmall);letter-spacing:normal;font:var(--type-details-caption-2-font)}.wishlist-wishlist__content.wishlist-wishlist__content--empty{border:var(--shape-border-width-2) solid var(--color-neutral-400);border-radius:var(--shape-border-radius-2);grid-template-columns:repeat(1,1fr);padding:var(--spacing-xxbig);margin:var(--spacing-xxbig) auto}@media only screen and (max-width: 480px){.wishlist-wishlist__content,.dropin-skeleton{grid-template-columns:repeat(1,1fr)}.dropin-skeleton-row:nth-child(n+2){display:none}}@media only screen and (min-width: 480px) and (max-width: 600px){.wishlist-wishlist__content,.dropin-skeleton{grid-template-columns:repeat(2,1fr)}.dropin-skeleton-row:nth-child(n+3){display:none}}@media only screen and (min-width: 600px){.wishlist-wishlist__content,.dropin-skeleton{grid-template-columns:repeat(2,1fr)}.dropin-skeleton-row:nth-child(n+3){display:none}}@media only screen and (min-width: 768px){.wishlist-wishlist__content,.dropin-skeleton{grid-template-columns:repeat(3,1fr)}.dropin-skeleton-row:nth-child(n){display:block}}.wishlist-product-item{background-color:var(--color-neutral-50);margin-bottom:var(--spacing-small)}.wishlist-product-item__content{display:flex;flex-direction:column;gap:var(--spacing-small)}.wishlist-product-item__content .wishlist-product-item-image{background:var(--color-neutral-200);height:100%;padding:0;width:100%}.wishlist-product-item__content .wishlist-product-item__title{color:var(--color-neutral-800);font:var(--type-body-2-strong-font);letter-spacing:var(--type-body-2-strong-letter-spacing);margin:0;position:relative}.wishlist-product-item-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:85%}a.wishlist-product-item-name:active,a.wishlist-product-item-name:hover,a.wishlist-product-item-name{color:var(--color-neutral-800);cursor:pointer;font:var(--type-body-2-strong-font);letter-spacing:var(--type-body-2-strong-letter-spacing)}.wishlist-product-item__content .wishlist-product-item-button__remove{position:absolute;right:0;top:-10px}.wishlist-product-item__content .wishlist-product-item-price{display:inline;font:var(--type-body-2-default-font)}.strikeout{text-decoration:line-through}.wishlist-product-item__content .wishlist-product-item-discounted-price{display:inline;margin-left:var(--spacing-xsmall);color:var(--color-alert-800)}.wishlist-product-item-move-to-cart{display:grid;grid-area:product-add-to-cart;justify-content:end}.wishlist-product-item-tax{color:var(--color-neutral-500)}.wishlist-product-item-tax span{margin-right:var(--spacing-xsmall)}.image-carousel{display:flex;flex-direction:column;gap:var(--spacing-medium);padding:var(--spacing-medium)}.image-carousel .image-carousel-image{object-fit:contain;padding:var(--spacing-xxsmall) 0;width:100%}.image-switcher-area{margin-top:var(--spacing-small);text-align:center;width:100%}.image-switcher-area .image-switcher{cursor:pointer;border-radius:50%;display:inline-flex;height:var(--spacing-xsmall);margin:0 var(--spacing-xxsmall);width:var(--spacing-xsmall)}.image-switcher-area .image-switcher-active{background-color:var(--color-neutral-900);border:var(--shape-border-width-1) solid var(--color-brand-700)}.image-switcher-area .image-switcher-inactive{background-color:var(--color-neutral-600);border:var(--shape-border-width-1) solid var(--color-neutral-600)}@media only screen and (max-width: 480px){.image-carousel{gap:var(--spacing-xxsmall)}.image-carousel .image-carousel-image{height:250px}}@media only screen and (min-width: 480px) and (max-width: 600px){.image-carousel{gap:var(--spacing-xsmall)}.image-carousel .image-carousel-image{height:300px}}@media only screen and (min-width: 600px){.image-carousel{gap:var(--spacing-xsmall)}.image-carousel .image-carousel-image{height:300px}}@media only screen and (min-width: 768px){.image-carousel{gap:var(--spacing-small)}.image-carousel .image-carousel-image{height:350px}}@media only screen and (min-width: 1024px){.image-carousel{gap:var(--spacing-medium)}.image-carousel .image-carousel-image{height:400px}}.wishlist-login__sign-in{grid-column-start:2;color:var(--color-neutral-800);font:var(--type-body-1-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);margin-top:var(--spacing-xxsmall);text-align:center}a.wishlist-login__link{font:var(--type-body-1-strong-font);letter-spacing:var(--type-body-2-strong-letter-spacing);margin-left:var(--spacing-xxsmall);text-decoration:underline;text-decoration-thickness:auto;text-underline-offset:auto;color:var(--color-neutral-800)}a.wishlist-login__link:hover{color:var(--color-neutral-800);text-decoration:underline;text-decoration-thickness:auto;text-underline-offset:auto}",{styleId:"Wishlist"});
3
+ (function(r,e){try{if(typeof document<"u"){const t=document.createElement("style"),n=e.styleId;for(const i in e.attributes)t.setAttribute(i,e.attributes[i]);t.setAttribute("data-dropin",n),t.appendChild(document.createTextNode(r));const a=document.querySelector('style[data-dropin="sdk"]');if(a)a.after(t);else{const i=document.querySelector('link[rel="stylesheet"], style');i?i.before(t):document.head.append(t)}}}catch(t){console.error("dropin-styles (injectCodeFunction)",t)}})(".wishlist-empty-wishlist{container-type:inline-size;container-name:wishlist}.wishlist-empty-wishlist__wrapper .dropin-card--secondary{display:grid;grid-auto-rows:min-content;justify-content:center;text-align:center;border:unset}.wishlist-empty-wishlist .dropin-illustrated-message__heading{font:var(--type-headline-1-font)}.wishlist-empty-wishlist .dropin-illustrated-message__message{font:var(--type-body-1-default-font)}@container wishlist (width < 737px){.wishlist-empty-wishlist__wrapper .dropin-card{border:unset;border-style:hidden}}.wishlist-wishlist{container-type:inline-size;container-name:wishlist-grid;max-width:inherit}.wishlist-wishlist__content{display:grid;gap:var(--spacing-medium);margin:auto;padding:var(--spacing-medium) 0}.wishlist-wishlist__heading{color:var(--color-neutral-800);display:grid;font:var(--type-headline-1-font);letter-spacing:var(--type-headline-1-letter-spacing);padding:var(--spacing-small) 0;row-gap:var(--spacing-xsmall)}.wishlist-wishlist__heading-count{color:#6d6d6d;margin-left:var(--spacing-xxsmall);letter-spacing:normal;font:var(--type-details-caption-2-font)}.wishlist-wishlist__content.wishlist-wishlist__content--empty{border:var(--shape-border-width-2) solid var(--color-neutral-400);border-radius:var(--shape-border-radius-2);grid-template-columns:repeat(1,1fr);padding:var(--spacing-xxbig);margin:var(--spacing-xxbig) auto}@media only screen and (max-width: 480px){.wishlist-wishlist__content,.dropin-skeleton{grid-template-columns:repeat(1,1fr)}.dropin-skeleton-row:nth-child(n+2){display:none}}@media only screen and (min-width: 480px) and (max-width: 600px){.wishlist-wishlist__content,.dropin-skeleton{grid-template-columns:repeat(2,1fr)}.dropin-skeleton-row:nth-child(n+3){display:none}}@media only screen and (min-width: 600px){.wishlist-wishlist__content,.dropin-skeleton{grid-template-columns:repeat(2,1fr)}.dropin-skeleton-row:nth-child(n+3){display:none}}@media only screen and (min-width: 768px){.wishlist-wishlist__content,.dropin-skeleton{grid-template-columns:repeat(3,1fr)}.dropin-skeleton-row:nth-child(n){display:block}}.wishlist-product-item{background-color:var(--color-neutral-50);margin-bottom:var(--spacing-small)}.wishlist-product-item__content{display:flex;flex-direction:column;gap:var(--spacing-small)}.wishlist-product-item__content .wishlist-product-item-image{background:var(--color-neutral-200);height:100%;padding:0;width:100%}.wishlist-product-item__content .wishlist-product-item__title{color:var(--color-neutral-800);font:var(--type-body-2-strong-font);letter-spacing:var(--type-body-2-strong-letter-spacing);margin:0;position:relative}.wishlist-product-item-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:85%}a.wishlist-product-item-name:active,a.wishlist-product-item-name:hover,a.wishlist-product-item-name{color:var(--color-neutral-800);cursor:pointer;font:var(--type-body-2-strong-font);letter-spacing:var(--type-body-2-strong-letter-spacing)}.wishlist-product-item__content .wishlist-product-item-button__remove{position:absolute;right:0;top:-10px}.wishlist-product-item__content .wishlist-product-item-options{font:var(--type-body-2-default-font)}.wishlist-product-item__content .wishlist-product-item-option__attribute{text-transform:capitalize}.wishlist-product-item__content .wishlist-product-item-option__label{font:var(--type-body-2-strong-font)}.wishlist-product-item__content .wishlist-product-item-price{display:inline;font:var(--type-body-2-default-font)}.strikeout{text-decoration:line-through}.wishlist-product-item__content .wishlist-product-item-discounted-price{display:inline;margin-left:var(--spacing-xsmall);color:var(--color-alert-800)}.wishlist-product-item-move-to-cart{display:grid;grid-area:product-add-to-cart;justify-content:end}.wishlist-product-item-tax{color:var(--color-neutral-500)}.wishlist-product-item-tax span{margin-right:var(--spacing-xsmall)}.image-carousel{display:flex;flex-direction:column;gap:var(--spacing-medium);padding:var(--spacing-medium)}.image-carousel .image-carousel-image{object-fit:contain;padding:var(--spacing-xxsmall) 0;width:100%}.image-switcher-area{margin-top:var(--spacing-small);text-align:center;width:100%}.image-switcher-area .image-switcher{cursor:pointer;border-radius:50%;display:inline-flex;height:var(--spacing-xsmall);margin:0 var(--spacing-xxsmall);width:var(--spacing-xsmall)}.image-switcher-area .image-switcher-active{background-color:var(--color-neutral-900);border:var(--shape-border-width-1) solid var(--color-brand-700)}.image-switcher-area .image-switcher-inactive{background-color:var(--color-neutral-600);border:var(--shape-border-width-1) solid var(--color-neutral-600)}@media only screen and (max-width: 480px){.image-carousel{gap:var(--spacing-xxsmall)}.image-carousel .image-carousel-image{height:250px}}@media only screen and (min-width: 480px) and (max-width: 600px){.image-carousel{gap:var(--spacing-xsmall)}.image-carousel .image-carousel-image{height:300px}}@media only screen and (min-width: 600px){.image-carousel{gap:var(--spacing-xsmall)}.image-carousel .image-carousel-image{height:300px}}@media only screen and (min-width: 768px){.image-carousel{gap:var(--spacing-small)}.image-carousel .image-carousel-image{height:350px}}@media only screen and (min-width: 1024px){.image-carousel{gap:var(--spacing-medium)}.image-carousel .image-carousel-image{height:400px}}.wishlist-login__sign-in{grid-column-start:2;color:var(--color-neutral-800);font:var(--type-body-1-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);margin-top:var(--spacing-xxsmall);text-align:center}a.wishlist-login__link{font:var(--type-body-1-strong-font);letter-spacing:var(--type-body-2-strong-letter-spacing);margin-left:var(--spacing-xxsmall);text-decoration:underline;text-decoration-thickness:auto;text-underline-offset:auto;color:var(--color-neutral-800)}a.wishlist-login__link:hover{color:var(--color-neutral-800);text-decoration:underline;text-decoration-thickness:auto;text-underline-offset:auto}",{styleId:"Wishlist"});
4
4
  import{jsx as o}from"@dropins/tools/preact-jsx-runtime.js";import{Render as n}from"@dropins/tools/lib.js";import{useState as d,useEffect as a}from"@dropins/tools/preact-hooks.js";import{UIProvider as c}from"@dropins/tools/components.js";import{events as m}from"@dropins/tools/event-bus.js";const h={EmptyWishlist:{heading:"Your wishlist is empty",message:"Add items by clicking on the heart icon.",cta:"Start shopping"},Wishlist:{heading:"Wishlist {count}",loading:"Loading..."},Alert:{addProduct:{heading:"Added to wishlist",message:"{product} has been added to your wishlist"},removeProduct:{heading:"Removed from wishlist",message:"{product} has been removed from your wishlist"},moveToCart:{heading:"Moved to cart",message:"{product} has been moved to your cart"},viewWishlist:"View wishlist"},Login:{sync:" to sync your saved items across all your devices.",logIn:"Log in"}},u={CartActionButton:"Move To Cart",TrashActionButton:"Remove this product from wishlist",CustomizeActionButton:"Customize"},l={Wishlist:h,ProductItem:u},g={default:l},f=({children:e})=>{const[s,i]=d("en_US");return a(()=>{const t=m.on("locale",r=>{i(r)},{eager:!0});return()=>{t==null||t.off()}},[]),o(c,{lang:s,langDefinitions:g,children:e})},P=new n(o(f,{}));export{P as render};