From 1051f7deb38a5802e0e05bb763f278f8f6af7795 Mon Sep 17 00:00:00 2001 From: chutingy Date: Tue, 4 Mar 2025 15:45:48 -0600 Subject: [PATCH 1/2] Update cart with beta --- package-lock.json | 8 +- package.json | 2 +- scripts/__dropins__/storefront-cart/api.js | 6 +- .../applyGiftCardToCart.d.ts | 4 + .../graphql/ApplyGiftCardToCartMutation.d.ts | 18 +++ .../api/applyGiftCardToCart/index.d.ts | 18 +++ .../storefront-cart/api/fragments.d.ts | 1 + .../graphql/StoreConfigQuery.d.ts | 2 +- .../api/graphql/GiftFragment.d.ts | 5 + .../storefront-cart/api/index.d.ts | 3 + .../RemoveGiftCardFromCartMutation.d.ts | 18 +++ .../api/removeGiftCardFromCart/index.d.ts | 18 +++ .../removeGiftCardFromCart.d.ts | 4 + .../graphql/UpdateGiftOptionsMutation.d.ts | 18 +++ .../api/setGiftOptionsOnCart/index.d.ts | 18 +++ .../setGiftOptionsOnCart.d.ts | 5 + .../updateProductsFromCart.d.ts | 8 ++ .../storefront-cart/chunks/CartSummaryGrid.js | 2 +- .../storefront-cart/chunks/CartSummaryList.js | 2 +- .../storefront-cart/chunks/ChevronUp.js | 3 + .../storefront-cart/chunks/Coupons.js | 3 + .../storefront-cart/chunks/EmptyCart.js | 2 +- .../storefront-cart/chunks/GiftCard.js | 3 + .../storefront-cart/chunks/OrderSummary.js | 2 +- .../chunks/OrderSummaryLine.js | 2 +- .../storefront-cart/chunks/refreshCart.js | 44 +++--- .../chunks/removeGiftCardFromCart.js | 31 ++++ .../chunks/setGiftOptionsOnCart.js | 20 +++ .../chunks/updateProductsFromCart.js | 8 +- .../components/Coupons/Coupons.d.ts | 2 + .../GiftOptions/Elements/CheckboxGroup.d.ts | 20 +++ .../GiftOptions/Elements/FormFields.d.ts | 15 ++ .../GiftOptions/Elements/GiftLoader.d.ts | 4 + .../GiftOptions/Elements/GiftOptionModal.d.ts | 14 ++ .../Elements/ReadOnlyFormView.d.ts | 11 ++ .../GiftOptions/Elements/index.d.ts | 5 + .../components/GiftOptions/GiftOptions.d.ts | 29 ++++ .../components/GiftOptions/index.d.ts | 19 +++ .../components/OrderSummary/OrderSummary.d.ts | 27 ++++ .../OrderSummaryLine/OrderSummaryLine.d.ts | 4 +- .../storefront-cart/components/index.d.ts | 1 + .../containers/CartSummaryGrid.js | 2 +- .../containers/CartSummaryList.js | 2 +- .../storefront-cart/containers/Coupons.js | 2 +- .../storefront-cart/containers/EmptyCart.js | 2 +- .../containers/EstimateShipping.js | 2 +- .../storefront-cart/containers/GiftCards.d.ts | 3 + .../storefront-cart/containers/GiftCards.js | 3 + .../containers/GiftCards/GiftCards.d.ts | 7 + .../containers/GiftCards/index.d.ts | 19 +++ .../containers/GiftOptions.d.ts | 3 + .../storefront-cart/containers/GiftOptions.js | 3 + .../containers/GiftOptions/GiftOptions.d.ts | 20 +++ .../containers/GiftOptions/index.d.ts | 19 +++ .../storefront-cart/containers/MiniCart.js | 2 +- .../containers/OrderSummary.js | 2 +- .../containers/OrderSummary/OrderSummary.d.ts | 2 + .../containers/OrderSummaryLine.js | 2 +- .../OrderSummaryLine/OrderSummaryLine.d.ts | 4 +- .../storefront-cart/containers/index.d.ts | 2 + .../data/models/cart-model.d.ts | 51 +++++++ .../data/models/gift-card-account.d.ts | 8 ++ .../storefront-cart/data/models/index.d.ts | 1 + .../data/models/store-models.d.ts | 27 ++-- .../transforms/__fixtures__/cartModel.d.ts | 14 ++ .../__fixtures__/productTypesData.d.ts | 15 ++ .../data/transforms/index.d.ts | 1 + .../transform-gift-card-account.d.ts | 4 + .../__dropins__/storefront-cart/fragments.js | 135 +++++++++++++++++- .../storefront-cart/hooks/index.d.ts | 1 + .../storefront-cart/hooks/useGiftOptions.d.ts | 46 ++++++ .../storefront-cart/i18n/en_US.json.d.ts | 118 ++++++++++++++- .../lib/giftOptionsHelper.d.ts | 18 +++ scripts/__dropins__/storefront-cart/render.js | 4 +- .../types/giftOptions.types.d.ts | 35 +++++ .../storefront-cart/types/index.d.ts | 2 + 76 files changed, 940 insertions(+), 70 deletions(-) create mode 100644 scripts/__dropins__/storefront-cart/api/applyGiftCardToCart/applyGiftCardToCart.d.ts create mode 100644 scripts/__dropins__/storefront-cart/api/applyGiftCardToCart/graphql/ApplyGiftCardToCartMutation.d.ts create mode 100644 scripts/__dropins__/storefront-cart/api/applyGiftCardToCart/index.d.ts create mode 100644 scripts/__dropins__/storefront-cart/api/graphql/GiftFragment.d.ts create mode 100644 scripts/__dropins__/storefront-cart/api/removeGiftCardFromCart/graphql/RemoveGiftCardFromCartMutation.d.ts create mode 100644 scripts/__dropins__/storefront-cart/api/removeGiftCardFromCart/index.d.ts create mode 100644 scripts/__dropins__/storefront-cart/api/removeGiftCardFromCart/removeGiftCardFromCart.d.ts create mode 100644 scripts/__dropins__/storefront-cart/api/setGiftOptionsOnCart/graphql/UpdateGiftOptionsMutation.d.ts create mode 100644 scripts/__dropins__/storefront-cart/api/setGiftOptionsOnCart/index.d.ts create mode 100644 scripts/__dropins__/storefront-cart/api/setGiftOptionsOnCart/setGiftOptionsOnCart.d.ts create mode 100644 scripts/__dropins__/storefront-cart/chunks/ChevronUp.js create mode 100644 scripts/__dropins__/storefront-cart/chunks/Coupons.js create mode 100644 scripts/__dropins__/storefront-cart/chunks/GiftCard.js create mode 100644 scripts/__dropins__/storefront-cart/chunks/removeGiftCardFromCart.js create mode 100644 scripts/__dropins__/storefront-cart/chunks/setGiftOptionsOnCart.js create mode 100644 scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/CheckboxGroup.d.ts create mode 100644 scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/FormFields.d.ts create mode 100644 scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/GiftLoader.d.ts create mode 100644 scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/GiftOptionModal.d.ts create mode 100644 scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/ReadOnlyFormView.d.ts create mode 100644 scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/index.d.ts create mode 100644 scripts/__dropins__/storefront-cart/components/GiftOptions/GiftOptions.d.ts create mode 100644 scripts/__dropins__/storefront-cart/components/GiftOptions/index.d.ts create mode 100644 scripts/__dropins__/storefront-cart/containers/GiftCards.d.ts create mode 100644 scripts/__dropins__/storefront-cart/containers/GiftCards.js create mode 100644 scripts/__dropins__/storefront-cart/containers/GiftCards/GiftCards.d.ts create mode 100644 scripts/__dropins__/storefront-cart/containers/GiftCards/index.d.ts create mode 100644 scripts/__dropins__/storefront-cart/containers/GiftOptions.d.ts create mode 100644 scripts/__dropins__/storefront-cart/containers/GiftOptions.js create mode 100644 scripts/__dropins__/storefront-cart/containers/GiftOptions/GiftOptions.d.ts create mode 100644 scripts/__dropins__/storefront-cart/containers/GiftOptions/index.d.ts create mode 100644 scripts/__dropins__/storefront-cart/data/models/gift-card-account.d.ts create mode 100644 scripts/__dropins__/storefront-cart/data/transforms/transform-gift-card-account.d.ts create mode 100644 scripts/__dropins__/storefront-cart/hooks/useGiftOptions.d.ts create mode 100644 scripts/__dropins__/storefront-cart/lib/giftOptionsHelper.d.ts create mode 100644 scripts/__dropins__/storefront-cart/types/giftOptions.types.d.ts create mode 100644 scripts/__dropins__/storefront-cart/types/index.d.ts diff --git a/package-lock.json b/package-lock.json index 587a85d222..faef922ac0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "@adobe/magento-storefront-events-sdk": "^1.8.0", "@dropins/storefront-account": "~1.0.3", "@dropins/storefront-auth": "~1.0.3", - "@dropins/storefront-cart": "~1.1.0", + "@dropins/storefront-cart": "~1.2.0-beta1", "@dropins/storefront-checkout": "~1.2.0", "@dropins/storefront-order": "~1.0.4", "@dropins/storefront-payment-services": "~1.0.1", @@ -1809,9 +1809,9 @@ "integrity": "sha512-cKPh0OwDr8A3XpvYfeKpdwImAutnqr2M7iTFJrJvgrBUVkFsYWpV9biWg4nctj8etbI03f+2mrPYyZul1bQjEA==" }, "node_modules/@dropins/storefront-cart": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@dropins/storefront-cart/-/storefront-cart-1.1.0.tgz", - "integrity": "sha512-oalyfufChY0BMCCn736Kn/J6fpbEzHlPxjv/zaBNCcw3w6AxBIjbyibs+/8S1JzR2HMD2qP1iEF4fLS7T6cIIw==" + "version": "1.2.0-beta1", + "resolved": "https://registry.npmjs.org/@dropins/storefront-cart/-/storefront-cart-1.2.0-beta1.tgz", + "integrity": "sha512-pvK3RLdAAcOuoqmM6DEnpAp+T7a6oD09RGyS4vDNna4y6o2kebj3h/uixZZAdsWXW4kVbu5gYIFgr5M1+kA4FQ==" }, "node_modules/@dropins/storefront-checkout": { "version": "1.2.0", diff --git a/package.json b/package.json index 6ae33052a5..409a809369 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "@adobe/magento-storefront-events-sdk": "^1.8.0", "@dropins/storefront-account": "~1.0.3", "@dropins/storefront-auth": "~1.0.3", - "@dropins/storefront-cart": "~1.1.0", + "@dropins/storefront-cart": "~1.2.0-beta1", "@dropins/storefront-checkout": "~1.2.0", "@dropins/storefront-order": "~1.0.4", "@dropins/storefront-payment-services": "~1.0.1", diff --git a/scripts/__dropins__/storefront-cart/api.js b/scripts/__dropins__/storefront-cart/api.js index 360b7127d3..89381600f0 100644 --- a/scripts/__dropins__/storefront-cart/api.js +++ b/scripts/__dropins__/storefront-cart/api.js @@ -1,6 +1,6 @@ /*! Copyright 2025 Adobe All Rights Reserved. */ -import{s as o,f as d,h as l}from"./chunks/resetCart.js";import{g as $,r as Q,d as H,a as k,b as z,c as V}from"./chunks/resetCart.js";import{C as T,t as g,c as f}from"./chunks/refreshCart.js";import{g as j,b as q,d as B,e as J,i as K,a as W,r as X}from"./chunks/refreshCart.js";import{events as C}from"@dropins/tools/event-bus.js";import{CART_FRAGMENT as h}from"./fragments.js";import{b as A,a as I,c as _}from"./chunks/acdl.js";import{u as Z}from"./chunks/updateProductsFromCart.js";import{g as rt,b as at,a as et}from"./chunks/getEstimateShipping.js";import{g as ot}from"./chunks/getEstimatedTotals.js";import{g as E}from"./chunks/persisted-data.js";import{A as it,a as ct}from"./chunks/applyCouponsToCart.js";import"@dropins/tools/fetch-graphql.js";import"@dropins/tools/lib.js";const S=` +import{s as o,f as m,h as l}from"./chunks/resetCart.js";import{g as $,r as Q,d as H,a as k,b as z,c as V}from"./chunks/resetCart.js";import{C as T,t as f,c as g}from"./chunks/refreshCart.js";import{g as j,b as q,d as B,e as J,i as K,a as W,r as X}from"./chunks/refreshCart.js";import{events as C}from"@dropins/tools/event-bus.js";import{CART_FRAGMENT as h}from"./fragments.js";import{b as A,a as I,c as _}from"./chunks/acdl.js";import{u as Z}from"./chunks/updateProductsFromCart.js";import{g as rt,b as at,a as et}from"./chunks/getEstimateShipping.js";import{g as ot}from"./chunks/getEstimatedTotals.js";import{g as E}from"./chunks/persisted-data.js";import{A as nt,a as ct}from"./chunks/applyCouponsToCart.js";import{a as Ct,r as mt}from"./chunks/removeGiftCardFromCart.js";import{s as ut}from"./chunks/setGiftOptionsOnCart.js";import"@dropins/tools/fetch-graphql.js";import"@dropins/tools/lib.js";const G=` mutation ADD_PRODUCTS_TO_CART_MUTATION( $cartId: String!, $cartItems: [CartItemInput!]!, @@ -21,7 +21,7 @@ import{s as o,f as d,h as l}from"./chunks/resetCart.js";import{g as $,r as Q,d a } ${h} -`,F=async a=>{let r=!1;const n=o.cartId||await R().then(s=>(r=!0,s));return d(S,{variables:{cartId:n,cartItems:a.map(({sku:s,parentSku:e,quantity:i,optionsUIDs:t,enteredOptions:c})=>({sku:s,parent_sku:e,quantity:i,selected_options:t,entered_options:c}))}}).then(({errors:s,data:e})=>{var c;const i=[...((c=e==null?void 0:e.addProductsToCart)==null?void 0:c.user_errors)??[],...s??[]];if(i.length>0)return l(i);const t=g(e.addProductsToCart.cart);if(C.emit("cart/updated",t),C.emit("cart/data",t),t){const p=t.items.filter(m=>a.some(({sku:u})=>u===m.topLevelSku));r?A(t,p,o.locale??"en-US"):I(t,p,o.locale??"en-US")}return t})},G=` +`,y=async a=>{let r=!1;const i=o.cartId||await R().then(s=>(r=!0,s));return m(G,{variables:{cartId:i,cartItems:a.map(({sku:s,parentSku:e,quantity:n,optionsUIDs:t,enteredOptions:c})=>({sku:s,parent_sku:e,quantity:n,selected_options:t,entered_options:c}))}}).then(({errors:s,data:e})=>{var c;const n=[...((c=e==null?void 0:e.addProductsToCart)==null?void 0:c.user_errors)??[],...s??[]];if(n.length>0)return l(n);const t=f(e.addProductsToCart.cart);if(C.emit("cart/updated",t),C.emit("cart/data",t),t){const p=t.items.filter(d=>a.some(({sku:u})=>u===d.topLevelSku));r?A(t,p,o.locale??"en-US"):I(t,p,o.locale??"en-US")}return t})},S=` mutation CREATE_GUEST_CART_MUTATION { createGuestCart { cart { @@ -29,4 +29,4 @@ import{s as o,f as d,h as l}from"./chunks/resetCart.js";import{g as $,r as Q,d a } } } -`,R=async()=>{const{disableGuestCart:a}=f.getConfig();if(a)throw new Error("Guest cart is disabled");return await d(G).then(({data:r})=>{const n=r.createGuestCart.cart.id;return o.cartId=n,n})},M=()=>{const a=o.locale??"en-US",r=E();r&&_(r,a)};export{it as ApplyCouponsStrategy,F as addProductsToCart,ct as applyCouponsToCart,f as config,R as createGuestCart,d as fetchGraphQl,j as getCartData,E as getCartDataFromCache,$ as getConfig,rt as getCountries,q as getCustomerCartPayload,at as getEstimateShipping,ot as getEstimatedTotals,B as getGuestCartPayload,et as getRegions,J as getStoreConfig,K as initialize,W as initializeCart,M as publishShoppingCartViewEvent,X as refreshCart,Q as removeFetchGraphQlHeader,H as resetCart,k as setEndpoint,z as setFetchGraphQlHeader,V as setFetchGraphQlHeaders,Z as updateProductsFromCart}; +`,R=async()=>{const{disableGuestCart:a}=g.getConfig();if(a)throw new Error("Guest cart is disabled");return await m(S).then(({data:r})=>{const i=r.createGuestCart.cart.id;return o.cartId=i,i})},F=()=>{const a=o.locale??"en-US",r=E();r&&_(r,a)};export{nt as ApplyCouponsStrategy,y as addProductsToCart,ct as applyCouponsToCart,Ct as applyGiftCardToCart,g as config,R as createGuestCart,m as fetchGraphQl,j as getCartData,E as getCartDataFromCache,$ as getConfig,rt as getCountries,q as getCustomerCartPayload,at as getEstimateShipping,ot as getEstimatedTotals,B as getGuestCartPayload,et as getRegions,J as getStoreConfig,K as initialize,W as initializeCart,F as publishShoppingCartViewEvent,X as refreshCart,Q as removeFetchGraphQlHeader,mt as removeGiftCardFromCart,H as resetCart,k as setEndpoint,z as setFetchGraphQlHeader,V as setFetchGraphQlHeaders,ut as setGiftOptionsOnCart,Z as updateProductsFromCart}; diff --git a/scripts/__dropins__/storefront-cart/api/applyGiftCardToCart/applyGiftCardToCart.d.ts b/scripts/__dropins__/storefront-cart/api/applyGiftCardToCart/applyGiftCardToCart.d.ts new file mode 100644 index 0000000000..d5da33e224 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/api/applyGiftCardToCart/applyGiftCardToCart.d.ts @@ -0,0 +1,4 @@ +import { CartModel } from '../../data/models'; + +export declare const applyGiftCardToCart: (giftCardCode: string) => Promise; +//# sourceMappingURL=applyGiftCardToCart.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/api/applyGiftCardToCart/graphql/ApplyGiftCardToCartMutation.d.ts b/scripts/__dropins__/storefront-cart/api/applyGiftCardToCart/graphql/ApplyGiftCardToCartMutation.d.ts new file mode 100644 index 0000000000..195ec00121 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/api/applyGiftCardToCart/graphql/ApplyGiftCardToCartMutation.d.ts @@ -0,0 +1,18 @@ +/******************************************************************** + * ADOBE CONFIDENTIAL + * __________________ + * + * Copyright 2024 Adobe + * All Rights Reserved. + * + * NOTICE: All information contained herein is, and remains + * the property of Adobe and its suppliers, if any. The intellectual + * and technical concepts contained herein are proprietary to Adobe + * and its suppliers and are protected by all applicable intellectual + * property laws, including trade secret and copyright laws. + * Dissemination of this information or reproduction of this material + * is strictly forbidden unless prior written permission is obtained + * from Adobe. + *******************************************************************/ +export declare const APPLY_GIFT_CARD_ON_CART_MUTATION: string; +//# sourceMappingURL=ApplyGiftCardToCartMutation.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/api/applyGiftCardToCart/index.d.ts b/scripts/__dropins__/storefront-cart/api/applyGiftCardToCart/index.d.ts new file mode 100644 index 0000000000..a86465bac8 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/api/applyGiftCardToCart/index.d.ts @@ -0,0 +1,18 @@ +/******************************************************************** + * ADOBE CONFIDENTIAL + * __________________ + * + * Copyright 2024 Adobe + * All Rights Reserved. + * + * NOTICE: All information contained herein is, and remains + * the property of Adobe and its suppliers, if any. The intellectual + * and technical concepts contained herein are proprietary to Adobe + * and its suppliers and are protected by all applicable intellectual + * property laws, including trade secret and copyright laws. + * Dissemination of this information or reproduction of this material + * is strictly forbidden unless prior written permission is obtained + * from Adobe. + *******************************************************************/ +export * from './applyGiftCardToCart'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/api/fragments.d.ts b/scripts/__dropins__/storefront-cart/api/fragments.d.ts index bbff276c6a..d6e059942b 100644 --- a/scripts/__dropins__/storefront-cart/api/fragments.d.ts +++ b/scripts/__dropins__/storefront-cart/api/fragments.d.ts @@ -1,4 +1,5 @@ export { CART_FRAGMENT } from './graphql/CartFragment'; export { CART_ITEM_FRAGMENT } from './graphql/CartItemFragment'; export { DOWNLOADABLE_CART_ITEMS_FRAGMENT } from './graphql/DownloadableCartItemsFragment'; +export { GIFT_MESSAGE_FRAGMENT, GIFT_WRAPPING_FRAGMENT, AVAILABLE_GIFT_WRAPPING_FRAGMENT, APPLIED_GIFT_CARDS_FRAGMENT } from './graphql/GiftFragment'; //# sourceMappingURL=fragments.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/api/getStoreConfig/graphql/StoreConfigQuery.d.ts b/scripts/__dropins__/storefront-cart/api/getStoreConfig/graphql/StoreConfigQuery.d.ts index 18528bdca2..ceeacb9907 100644 --- a/scripts/__dropins__/storefront-cart/api/getStoreConfig/graphql/StoreConfigQuery.d.ts +++ b/scripts/__dropins__/storefront-cart/api/getStoreConfig/graphql/StoreConfigQuery.d.ts @@ -14,5 +14,5 @@ * is strictly forbidden unless prior written permission is obtained * from Adobe. *******************************************************************/ -export declare const STORE_CONFIG_QUERY = "\nquery STORE_CONFIG_QUERY {\n storeConfig {\n minicart_display \n minicart_max_items\n cart_expires_in_days \n cart_summary_display_quantity\n max_items_in_order_summary\n default_country\n category_fixed_product_tax_display_setting\n product_fixed_product_tax_display_setting\n sales_fixed_product_tax_display_setting\n shopping_cart_display_full_summary\n shopping_cart_display_grand_total\n shopping_cart_display_price\n shopping_cart_display_shipping\n shopping_cart_display_subtotal\n shopping_cart_display_tax_gift_wrapping\n shopping_cart_display_zero_tax\n configurable_thumbnail_source\n }\n}\n"; +export declare const STORE_CONFIG_QUERY = "\nquery STORE_CONFIG_QUERY {\n storeConfig {\n minicart_display\n minicart_max_items\n cart_expires_in_days\n cart_summary_display_quantity\n max_items_in_order_summary\n default_country\n category_fixed_product_tax_display_setting\n product_fixed_product_tax_display_setting\n sales_fixed_product_tax_display_setting\n shopping_cart_display_full_summary\n shopping_cart_display_grand_total\n shopping_cart_display_price\n shopping_cart_display_shipping\n shopping_cart_display_subtotal\n shopping_cart_display_tax_gift_wrapping\n shopping_cart_display_zero_tax\n configurable_thumbnail_source\n allow_gift_wrapping_on_order\n allow_gift_wrapping_on_order_items\n allow_order\n allow_items\n allow_gift_receipt\n allow_printed_card\n printed_card_priceV2 {\n currency\n value\n }\n cart_gift_wrapping\n cart_printed_card\n }\n}\n"; //# sourceMappingURL=StoreConfigQuery.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/api/graphql/GiftFragment.d.ts b/scripts/__dropins__/storefront-cart/api/graphql/GiftFragment.d.ts new file mode 100644 index 0000000000..971a956fe5 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/api/graphql/GiftFragment.d.ts @@ -0,0 +1,5 @@ +export declare const APPLIED_GIFT_CARDS_FRAGMENT = "\n fragment APPLIED_GIFT_CARDS_FRAGMENT on AppliedGiftCard {\n __typename\n code\n applied_balance {\n value\n currency\n }\n current_balance {\n value\n currency\n }\n expiration_date\n }\n"; +export declare const GIFT_MESSAGE_FRAGMENT = "\n fragment GIFT_MESSAGE_FRAGMENT on GiftMessage {\n __typename\n from\n to\n message\n }\n"; +export declare const GIFT_WRAPPING_FRAGMENT = "\n fragment GIFT_WRAPPING_FRAGMENT on GiftWrapping {\n __typename\n uid\n design\n image {\n url\n }\n price {\n value\n currency\n }\n }\n"; +export declare const AVAILABLE_GIFT_WRAPPING_FRAGMENT = "\n fragment AVAILABLE_GIFT_WRAPPING_FRAGMENT on GiftWrapping {\n __typename\n uid\n design\n image {\n url\n label\n }\n price {\n currency\n value\n }\n }\n"; +//# sourceMappingURL=GiftFragment.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/api/index.d.ts b/scripts/__dropins__/storefront-cart/api/index.d.ts index e325a87351..01e0fd2b2c 100644 --- a/scripts/__dropins__/storefront-cart/api/index.d.ts +++ b/scripts/__dropins__/storefront-cart/api/index.d.ts @@ -29,4 +29,7 @@ export * from './refreshCart'; export { getPersistedCartData as getCartDataFromCache } from '../lib/persisted-data'; export * from './applyCouponsToCart'; export * from './publishShoppingCartViewEvent'; +export * from './applyGiftCardToCart'; +export * from './removeGiftCardFromCart'; +export * from './setGiftOptionsOnCart'; //# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/api/removeGiftCardFromCart/graphql/RemoveGiftCardFromCartMutation.d.ts b/scripts/__dropins__/storefront-cart/api/removeGiftCardFromCart/graphql/RemoveGiftCardFromCartMutation.d.ts new file mode 100644 index 0000000000..2a1917d24f --- /dev/null +++ b/scripts/__dropins__/storefront-cart/api/removeGiftCardFromCart/graphql/RemoveGiftCardFromCartMutation.d.ts @@ -0,0 +1,18 @@ +/******************************************************************** + * ADOBE CONFIDENTIAL + * __________________ + * + * Copyright 2024 Adobe + * All Rights Reserved. + * + * NOTICE: All information contained herein is, and remains + * the property of Adobe and its suppliers, if any. The intellectual + * and technical concepts contained herein are proprietary to Adobe + * and its suppliers and are protected by all applicable intellectual + * property laws, including trade secret and copyright laws. + * Dissemination of this information or reproduction of this material + * is strictly forbidden unless prior written permission is obtained + * from Adobe. + *******************************************************************/ +export declare const REMOVE_GIFT_CARD_ON_CART_MUTATION: string; +//# sourceMappingURL=RemoveGiftCardFromCartMutation.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/api/removeGiftCardFromCart/index.d.ts b/scripts/__dropins__/storefront-cart/api/removeGiftCardFromCart/index.d.ts new file mode 100644 index 0000000000..22b30b2f26 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/api/removeGiftCardFromCart/index.d.ts @@ -0,0 +1,18 @@ +/******************************************************************** + * ADOBE CONFIDENTIAL + * __________________ + * + * Copyright 2024 Adobe + * All Rights Reserved. + * + * NOTICE: All information contained herein is, and remains + * the property of Adobe and its suppliers, if any. The intellectual + * and technical concepts contained herein are proprietary to Adobe + * and its suppliers and are protected by all applicable intellectual + * property laws, including trade secret and copyright laws. + * Dissemination of this information or reproduction of this material + * is strictly forbidden unless prior written permission is obtained + * from Adobe. + *******************************************************************/ +export * from './removeGiftCardFromCart'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/api/removeGiftCardFromCart/removeGiftCardFromCart.d.ts b/scripts/__dropins__/storefront-cart/api/removeGiftCardFromCart/removeGiftCardFromCart.d.ts new file mode 100644 index 0000000000..1d15346669 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/api/removeGiftCardFromCart/removeGiftCardFromCart.d.ts @@ -0,0 +1,4 @@ +import { CartModel } from '../../data/models'; + +export declare const removeGiftCardFromCart: (giftCardCode: string) => Promise; +//# sourceMappingURL=removeGiftCardFromCart.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/api/setGiftOptionsOnCart/graphql/UpdateGiftOptionsMutation.d.ts b/scripts/__dropins__/storefront-cart/api/setGiftOptionsOnCart/graphql/UpdateGiftOptionsMutation.d.ts new file mode 100644 index 0000000000..650ea24d45 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/api/setGiftOptionsOnCart/graphql/UpdateGiftOptionsMutation.d.ts @@ -0,0 +1,18 @@ +/******************************************************************** + * ADOBE CONFIDENTIAL + * __________________ + * + * Copyright 2024 Adobe + * All Rights Reserved. + * + * NOTICE: All information contained herein is, and remains + * the property of Adobe and its suppliers, if any. The intellectual + * and technical concepts contained herein are proprietary to Adobe + * and its suppliers and are protected by all applicable intellectual + * property laws, including trade secret and copyright laws. + * Dissemination of this information or reproduction of this material + * is strictly forbidden unless prior written permission is obtained + * from Adobe. + *******************************************************************/ +export declare const SET_GIFT_OPTIONS_ON_CART_MUTATION: string; +//# sourceMappingURL=UpdateGiftOptionsMutation.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/api/setGiftOptionsOnCart/index.d.ts b/scripts/__dropins__/storefront-cart/api/setGiftOptionsOnCart/index.d.ts new file mode 100644 index 0000000000..5f1513644f --- /dev/null +++ b/scripts/__dropins__/storefront-cart/api/setGiftOptionsOnCart/index.d.ts @@ -0,0 +1,18 @@ +/******************************************************************** + * ADOBE CONFIDENTIAL + * __________________ + * + * Copyright 2024 Adobe + * All Rights Reserved. + * + * NOTICE: All information contained herein is, and remains + * the property of Adobe and its suppliers, if any. The intellectual + * and technical concepts contained herein are proprietary to Adobe + * and its suppliers and are protected by all applicable intellectual + * property laws, including trade secret and copyright laws. + * Dissemination of this information or reproduction of this material + * is strictly forbidden unless prior written permission is obtained + * from Adobe. + *******************************************************************/ +export * from './setGiftOptionsOnCart'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/api/setGiftOptionsOnCart/setGiftOptionsOnCart.d.ts b/scripts/__dropins__/storefront-cart/api/setGiftOptionsOnCart/setGiftOptionsOnCart.d.ts new file mode 100644 index 0000000000..7a9ae78e85 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/api/setGiftOptionsOnCart/setGiftOptionsOnCart.d.ts @@ -0,0 +1,5 @@ +import { CartModel } from '../../data/models'; +import { GiftFormDataType } from '../../types'; + +export declare const setGiftOptionsOnCart: (giftForm: GiftFormDataType) => Promise; +//# sourceMappingURL=setGiftOptionsOnCart.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/api/updateProductsFromCart/updateProductsFromCart.d.ts b/scripts/__dropins__/storefront-cart/api/updateProductsFromCart/updateProductsFromCart.d.ts index 258de4bd4d..8db2d4affe 100644 --- a/scripts/__dropins__/storefront-cart/api/updateProductsFromCart/updateProductsFromCart.d.ts +++ b/scripts/__dropins__/storefront-cart/api/updateProductsFromCart/updateProductsFromCart.d.ts @@ -3,6 +3,14 @@ import { CartModel } from '../../data/models'; type UpdateProductsFromCart = Array<{ uid: string; quantity: number; + giftOptions?: { + gift_wrapping_id?: string | null; + gift_message: { + to: string; + from: string; + message: string; + }; + }; }>; export declare const updateProductsFromCart: (items: UpdateProductsFromCart) => Promise; export {}; diff --git a/scripts/__dropins__/storefront-cart/chunks/CartSummaryGrid.js b/scripts/__dropins__/storefront-cart/chunks/CartSummaryGrid.js index 3b578a8696..1547a631d9 100644 --- a/scripts/__dropins__/storefront-cart/chunks/CartSummaryGrid.js +++ b/scripts/__dropins__/storefront-cart/chunks/CartSummaryGrid.js @@ -1,3 +1,3 @@ /*! Copyright 2025 Adobe All Rights Reserved. */ -import{jsx as a,Fragment as l}from"@dropins/tools/preact-jsx-runtime.js";import{useState as y,useEffect as h}from"@dropins/tools/preact-compat.js";import{E as _}from"./EmptyCart.js";import{classes as d,VComponent as C}from"@dropins/tools/lib.js";/* empty css */import{Image as v}from"@dropins/tools/components.js";import{events as N}from"@dropins/tools/event-bus.js";import{g as b}from"./persisted-data.js";const j=({className:m,children:i,emptyCart:n,products:e,...c})=>a("div",{...c,className:d(["cart-cart-summary-grid",m]),children:a(l,{children:a("div",{className:d(["cart-cart-summary-grid__content",["cart-cart-summary-grid__content--empty",!e]]),children:e||a(C,{node:n,className:"cart-cart-summary-grid__empty-cart"})})})}),D=({children:m,initialData:i=null,routeProduct:n,routeEmptyCartCTA:e,...c})=>{const[s,g]=y(i);h(()=>{const r=N.on("cart/data",t=>{g(t)},{eager:!0});return()=>{r==null||r.off()}},[]);const p=(r,t)=>{const f=r.selectedOptions?`${r.name}: ${Object.entries(r.selectedOptions).join("; ")}`:r.name,o=a(v,{"data-testid":"cart-grid-item-image",loading:t<4?"eager":"lazy",src:r.image.src,alt:r.image.alt,"aria-label":f,width:"100%"});return n?a("div",{className:"cart-cart-summary-grid__item-container",children:a("a",{href:n(r),children:o})},t):o},u=s&&a(l,{children:s.items.map((r,t)=>p(r,t))});return a(j,{...c,emptyCart:a(_,{ctaLinkURL:e?e():void 0}),products:u})};D.getInitialData=async function(){return b()};export{D as C}; +import{jsx as t,Fragment as l}from"@dropins/tools/preact-jsx-runtime.js";import{useState as y,useEffect as h}from"@dropins/tools/preact-compat.js";import{E as _}from"./EmptyCart.js";import{classes as d,VComponent as C}from"@dropins/tools/lib.js";/* empty css */import{Image as v}from"@dropins/tools/components.js";import"@dropins/tools/preact-hooks.js";import{events as N}from"@dropins/tools/event-bus.js";import{g as b}from"./persisted-data.js";const j=({className:c,children:i,emptyCart:n,products:e,...m})=>t("div",{...m,className:d(["cart-cart-summary-grid",c]),children:t(l,{children:t("div",{className:d(["cart-cart-summary-grid__content",["cart-cart-summary-grid__content--empty",!e]]),children:e||t(C,{node:n,className:"cart-cart-summary-grid__empty-cart"})})})}),D=({children:c,initialData:i=null,routeProduct:n,routeEmptyCartCTA:e,...m})=>{const[s,g]=y(i);h(()=>{const r=N.on("cart/data",a=>{g(a)},{eager:!0});return()=>{r==null||r.off()}},[]);const p=(r,a)=>{const f=r.selectedOptions?`${r.name}: ${Object.entries(r.selectedOptions).join("; ")}`:r.name,o=t(v,{"data-testid":"cart-grid-item-image",loading:a<4?"eager":"lazy",src:r.image.src,alt:r.image.alt,"aria-label":f,width:"100%"});return n?t("div",{className:"cart-cart-summary-grid__item-container",children:t("a",{href:n(r),children:o})},a):o},u=s&&t(l,{children:s.items.map((r,a)=>p(r,a))});return t(j,{...m,emptyCart:t(_,{ctaLinkURL:e?e():void 0}),products:u})};D.getInitialData=async function(){return b()};export{D as C}; diff --git a/scripts/__dropins__/storefront-cart/chunks/CartSummaryList.js b/scripts/__dropins__/storefront-cart/chunks/CartSummaryList.js index 564ec966c4..4fe8b4f4e9 100644 --- a/scripts/__dropins__/storefront-cart/chunks/CartSummaryList.js +++ b/scripts/__dropins__/storefront-cart/chunks/CartSummaryList.js @@ -1,3 +1,3 @@ /*! Copyright 2025 Adobe All Rights Reserved. */ -import{jsx as n,jsxs as h,Fragment as X}from"@dropins/tools/preact-jsx-runtime.js";import*as o from"@dropins/tools/preact-compat.js";import{useState as N,useCallback as Ft,useEffect as ot}from"@dropins/tools/preact-compat.js";import{classes as L,VComponent as b,Slot as w}from"@dropins/tools/lib.js";import{E as Mt}from"./EmptyCart.js";/* empty css */import{Divider as st,Skeleton as zt,SkeletonRow as Ut,InLineAlert as qt,Icon as z,CartList as lt,Button as U,Accordion as Tt,AccordionSection as Wt,CartItem as Jt,Price as O,Image as Kt}from"@dropins/tools/components.js";import{g as Rt}from"./persisted-data.js";import{events as Yt}from"@dropins/tools/event-bus.js";import{s as Ht}from"./resetCart.js";import{u as ut}from"./updateProductsFromCart.js";import{S as Dt}from"./ChevronDown.js";import{useText as te}from"@dropins/tools/i18n.js";const ee=d=>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",...d},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"})))),dt=d=>o.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...d},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=d=>o.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...d},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"})),gt=({className:d,children:q,heading:k,footer:y,emptyCart:_,products:u,outOfStockMessage:v,variant:S="primary",loading:m=!0,...c})=>n("div",{...c,className:L(["cart-cart-summary-list",d,`cart-cart-summary-list__background--${S}`]),children:m?n(re,{}):h(X,{children:[(k||v)&&h("div",{"data-testid":"cart-summary-list-heading-wrapper",className:L(["cart-cart-summary-list__heading",["cart-cart-summary-list__heading--full-width",!u]]),children:[k&&h(X,{children:[n(b,{node:k,className:"cart-cart-summary-list__heading-text"}),n(st,{variant:"primary",className:L(["cart-cart-summary-list__heading-divider"])})]}),v&&n(b,{node:v,className:"cart-cart-summary-list__out-of-stock-message"})]}),n("div",{className:L(["cart-cart-summary-list__content",["cart-cart-summary-list__content--empty",!u]]),children:u||n(b,{node:_,className:"cart-cart-summary-list__empty-cart"})}),y&&h(X,{children:[n(st,{variant:"primary",className:L(["cart-cart-summary-list__footer-divider"])}),n(b,{node:y,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(Ut,{variant:"row",size:"xlarge",fullWidth:!0,lines:3,multilineGap:"small"})}),ae=({initialData:d=null,hideHeading:q,hideFooter:k,routeProduct:y,routeEmptyCartCTA:_,routeCart:u,onItemUpdate:v,onItemRemove:S,maxItems:m,slots:c,attributesToHide:l=[],enableRemoveItem:j,enableUpdateItemQuantity:T,onItemsErrorsChange:$,accordion:ft=!1,variant:Z="primary",isLoading:mt,showMaxItems:W,showDiscount:ht,showSavings:yt,quantityType:vt,dropdownOptions:pt,...J})=>{var rt;const[B,kt]=N(!d),[a,Ct]=N(d),[E,wt]=N(new Set),[A,Lt]=N(new Map),s=(rt=Ht.config)==null?void 0:rt.shoppingCartDisplaySetting,[Q,_t]=N(W?!0:!m&&!W),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"}),F=(t,e)=>{wt(r=>(e?r.add(t):r.delete(t),new Set(r)))},K=(t,e)=>{Lt(r=>(e?r.set(t,e):r.delete(t),new Map(r)))},M=(t,e)=>{F(t.uid,!0),K(t.uid),j&&e===0?ut([{uid:t.uid,quantity:e}]).then(()=>{S==null||S({item:t})}).finally(()=>{F(t.uid,!1)}).catch(r=>{console.warn(r)}):T&&ut([{uid:t.uid,quantity:e}]).then(()=>{v==null||v({item:t})}).finally(()=>{F(t.uid,!1)}).catch(r=>{console.warn(r),K(t.uid,r.message)})},St=Ft(()=>{_t(t=>!t)},[]);ot(()=>{const t=Yt.on("cart/data",e=>{Ct(e),kt(!!mt)},{eager:!0});return()=>{t==null||t.off()}},[]),ot(()=>{$&&$(A)},[A,$]);const Et=(t,e)=>{if(l.includes("image"))return;const r=n(Kt,{"data-testid":"cart-list-item-image",loading:e<4?"eager":"lazy",src:t.image.src,alt:t.image.alt,width:"300",height:"300",params:{width:300}});return n(w,{name:"Thumbnail",slot:c==null?void 0:c.Thumbnail,context:{item:t},children:y?n("a",{href:y(t),children:r}):r})},It=t=>{if(!l.includes("name"))return n("span",{"data-testid":"cart-list-item-title",children:y?n("a",{href:y(t),children:t.name}):t.name})},xt=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},Pt=t=>{var e,r,f,g;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:(f=t.regularPrice)==null?void 0:f.value,currency:(g=t.regularPrice)==null?void 0:g.currency,style:{font:"inherit"},"data-testid":"regular-item-price"}},Nt=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"}},Ot=t=>(s==null?void 0:s.price)==="INCLUDING_EXCLUDING_TAX"?n(O,{amount:t.rowTotal.value,currency:t.rowTotal.currency,"data-testid":"excluding-tax-total","aria-label":i.regularPrice}):void 0,At=t=>{var f,g,p,C,I,x,P,at,it,ct;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=(f=t.rowTotalIncludingTax)==null?void 0:f.value,e.currency=(g=t.rowTotalIncludingTax)==null?void 0:g.currency,e.variant=t.discounted?"strikethrough":"default",e["data-testid"]="including-tax-item-total",r&&(e.amount=(p=t.total)==null?void 0:p.value,e.currency=(C=t.total)==null?void 0:C.currency,r.amount=(I=t.rowTotalIncludingTax)==null?void 0:I.value,r.currency=(x=t.rowTotalIncludingTax)==null?void 0:x.currency,r.sale=!0,r["aria-label"]=i.discountedPrice,r["data-testid"]="discount-total")):(e.amount=(P=t.total)==null?void 0:P.value,e.currency=(at=t.total)==null?void 0:at.currency,e.variant=t.discounted?"strikethrough":"default",e["data-testid"]="regular-item-total",r&&(r.amount=(it=t.discountedTotal)==null?void 0:it.value,r.currency=(ct=t.discountedTotal)==null?void 0:ct.currency,r.sale=!0,r["aria-label"]=i.regularPrice,r["data-testid"]="discount-total")),{totalProps:e,discountProps:r}},Qt=t=>{var I,x,P;if(l.includes("warning"))return;const e=A.get(t.uid),r=(I=A.get(t.uid))==null?void 0:I.includes("The requested qty is not available"),f=E.has(t.uid),g=t.insufficientQuantity&&t.stockLevel?t.stockLevel==="noNumber"?i.insufficientQuantityGeneral:i.insufficientQuantity.replace("{inventory}",(x=t.stockLevel)==null?void 0:x.toString()).replace("{count}",t.quantity.toString()):"",p=t.lowInventory&&t.onlyXLeftInStock&&i.lowInventory.replace("{count}",(P=t.onlyXLeftInStock)==null?void 0:P.toString()),C=!t.outOfStock&&e&&r?i.notAvailableMessage:e;return!f&&(e||t.insufficientQuantity||t.lowInventory)?h("span",{"data-testid":"item-warning",children:[n(z,{source:ne,size:"16"}),C||g||p]}):void 0},Gt=t=>l!=null&&l.includes("alert")?void 0:!E.has(t.uid)&&t.outOfStock?h("span",{"data-testid":"item-alert",children:[n(z,{source:dt,size:"16"}),i.outOfStockAlert]}):void 0,Vt=t=>n(w,{name:"ProductAttributes",slot:c==null?void 0:c.ProductAttributes,context:{item:t}}),bt=t=>{if(!l.includes("sku"))return n("span",{"data-testid":"cart-list-item-sku",children:t.sku})},Xt=t=>n(w,{name:"Footer",slot:c==null?void 0:c.Footer,context:{item:t}}),R=t=>a!=null&&a.totalQuantity?a.items.filter(t).map((e,r)=>{var p;const{totalProps:f,discountProps:g}=At(e);return n(Jt,{updating:E==null?void 0:E.has(e.uid),loading:B,"data-testid":`cart-list-item-entry-${e.uid}`,image:Et(e,r),title:It(e),sku:bt(e),price:l.includes("price")?void 0:n(O,{...Pt(e)}),quantity:l.includes("quantity")?void 0:e.quantity,total:h(X,{children:[l.includes("total")?void 0:n(O,{...f}),l.includes("totalDiscount")?void 0:g&&n(O,{...g})]}),attributes:Vt(e),configurations:xt(e),totalExcludingTax:l.includes("totalExcludingTax")?void 0:Ot(e),taxIncluded:(s==null?void 0:s.price)==="INCLUDING_TAX",taxExcluded:!l.includes("totalExcludingTax")&&(s==null?void 0:s.price)==="INCLUDING_EXCLUDING_TAX",warning:Qt(e),alert:Gt(e),quantityType:vt,dropdownOptions:pt,onQuantity:T?C=>{M(e,C)}:void 0,onRemove:j?()=>M(e,0):void 0,discount:ht&&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:yt&&e.discounted&&e.savingsAmount?h("div",{children:[n("span",{children:n(O,{...Nt(e)})})," ",i.savingsAmount]}):void 0,footer:Xt(e)},e.uid)}):null,Y=n(w,{name:"EmptyCart",slot:c==null?void 0:c.EmptyCart,context:{},children:n(Mt,{"data-testid":"empty-cart",ctaLinkURL:_==null?void 0:_()})}),H=n(w,{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()})`:"")})}),jt=H.props.children.props.children,$t=()=>{const t=a==null?void 0:a.items.filter(e=>e.outOfStock);t==null||t.forEach(e=>{M(e,0)})},Zt=R(t=>t.outOfStock||t.insufficientQuantity||!1),D=a!=null&&a.hasOutOfStockItems?n(qt,{"data-testid":"cart-out-of-stock-message",icon:n(z,{source:dt,size:"16"}),itemList:n(lt,{"data-testid":"out-of-stock-cart-items",children:Zt}),type:"warning",heading:i.outOfStockHeading,description:i.outOfStockDescription,variant:"primary",actionButtonPosition:"bottom",additionalActions:a!=null&&a.hasFullyOutOfStockItems&&j?[{label:i.removeAction,onClick:$t}]:void 0}):void 0,G=R(t=>!t.outOfStock&&!t.insufficientQuantity),tt=Q?Math.max(m||5,5):Math.min((a==null?void 0:a.totalQuantity)||5,5),et=(a==null?void 0:a.totalQuantity)>tt,Bt=et&&!Q&&tt!=m,V=a!=null&&a.totalQuantity&&G?n(w,{name:"Footer",slot:c==null?void 0:c.CartSummaryFooter,context:{displayMaxItems:Q,routeCart:u},"data-testid":"cart-cart-summary-footer-slot",children:n("div",{"data-testid":"cart-cart-summary-footer",children:et?Bt?n(U,{className:"cart-cart-summary-list-footer__action",onClick:St,"data-testid":"view-more-items-button",variant:"tertiary",children:i.viewMore}):u&&n(U,{className:"cart-cart-summary-list-footer__action",href:u(),variant:"tertiary","data-testid":"view-cart-or-less-items-button",children:i.viewAll}):u&&n(U,{className:"cart-cart-summary-list-footer__action",href:u(),variant:"tertiary","data-testid":"view-cart-button",children:i.viewAll})})}):null,nt=a!=null&&a.totalQuantity?n(lt,{"data-testid":"cart-list",children:G==null?void 0:G.slice(0,Q?Math.max(m||(a==null?void 0:a.totalQuantity),5):Math.min(m??5,5))}):null;return ft?n(Tt,{"data-testid":"cart-summary-list-accordion",className:L(["cart-cart-summary-list-accordion",`cart-cart-summary-list__background--${Z}`]),iconOpen:ee,iconClose:Dt,children:n(Wt,{title:jt,"data-testid":"cart-summary-list-accordion__section",open:!0,renderContentWhenClosed:!0,children:n(gt,{...J,"aria-expanded":!0,"aria-label":"TEST",className:"cart-cart-summary-list-accordion__list",loading:B,footer:k?void 0:V||(u?V:void 0),emptyCart:Y,products:nt,outOfStockMessage:D,variant:Z})})}):n(gt,{...J,heading:q?void 0:H,footer:k?void 0:V||(u?V:void 0),loading:B,emptyCart:Y,products:nt,outOfStockMessage:D,variant:Z})};ae.getInitialData=async function(){return Rt()};export{ae as C}; +import{jsx as n,jsxs as y,Fragment as j}from"@dropins/tools/preact-jsx-runtime.js";import*as o from"@dropins/tools/preact-compat.js";import{useState as N,useCallback as Ft,useEffect as ot}from"@dropins/tools/preact-compat.js";import{classes as L,VComponent as X,Slot as w}from"@dropins/tools/lib.js";import{E as Mt}from"./EmptyCart.js";/* empty css */import{Divider as st,Skeleton as zt,SkeletonRow as qt,InLineAlert as Tt,Icon as q,CartList as lt,Button as T,Accordion as Ut,AccordionSection as Wt,CartItem as Jt,Price as O,Image as Kt}from"@dropins/tools/components.js";import"@dropins/tools/preact-hooks.js";import{g as Rt}from"./persisted-data.js";import{events as Yt}from"@dropins/tools/event-bus.js";import{s as Ht}from"./resetCart.js";import{u as ut}from"./updateProductsFromCart.js";import{S as Dt}from"./ChevronDown.js";import{useText as te}from"@dropins/tools/i18n.js";const ee=d=>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",...d},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"})))),dt=d=>o.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...d},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=d=>o.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...d},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"})),gt=({className:d,children:U,heading:k,footer:v,emptyCart:_,products:u,outOfStockMessage:m,variant:S="primary",loading:h=!0,...c})=>n("div",{...c,className:L(["cart-cart-summary-list",d,`cart-cart-summary-list__background--${S}`]),children:h?n(re,{}):y(j,{children:[(k||m)&&y("div",{"data-testid":"cart-summary-list-heading-wrapper",className:L(["cart-cart-summary-list__heading",["cart-cart-summary-list__heading--full-width",!u]]),children:[k&&y(j,{children:[n(X,{node:k,className:"cart-cart-summary-list__heading-text"}),n(st,{variant:"primary",className:L(["cart-cart-summary-list__heading-divider"])})]}),m&&n(X,{node:m,className:"cart-cart-summary-list__out-of-stock-message"})]}),n("div",{className:L(["cart-cart-summary-list__content",["cart-cart-summary-list__content--empty",!u]]),children:u||n(X,{node:_,className:"cart-cart-summary-list__empty-cart"})}),v&&y(j,{children:[n(st,{variant:"primary",className:L(["cart-cart-summary-list__footer-divider"])}),n(X,{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(qt,{variant:"row",size:"xlarge",fullWidth:!0,lines:3,multilineGap:"small"})}),ae=({initialData:d=null,hideHeading:U,hideFooter:k,routeProduct:v,routeEmptyCartCTA:_,routeCart:u,onItemUpdate:m,onItemRemove:S,maxItems:h,slots:c,attributesToHide:l=[],enableRemoveItem:$,enableUpdateItemQuantity:W,onItemsErrorsChange:Z,accordion:ft=!1,variant:B="primary",isLoading:mt,showMaxItems:J,showDiscount:ht,showSavings:yt,quantityType:vt,dropdownOptions:pt,...K})=>{var rt;const[F,kt]=N(!d),[a,Ct]=N(d),[E,wt]=N(new Set),[A,Lt]=N(new Map),s=(rt=Ht.config)==null?void 0:rt.shoppingCartDisplaySetting,[Q,_t]=N(J?!0:!h&&!J),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"}),G=(t,e)=>{wt(r=>(e?r.add(t):r.delete(t),new Set(r)))},M=(t,e)=>{Lt(r=>(e?r.set(t,e):r.delete(t),new Map(r)))},z=(t,e)=>{G(t.uid,!0),M(t.uid),$&&e===0?ut([{uid:t.uid,quantity:e}]).then(()=>{S==null||S({item:t})}).finally(()=>{G(t.uid,!1)}).catch(r=>{console.warn(r)}):W&&ut([{uid:t.uid,quantity:e}]).then(()=>{m==null||m({item:t})}).finally(()=>{G(t.uid,!1)}).catch(r=>{console.warn(r),M(t.uid,r.message)})},St=Ft(()=>{_t(t=>!t)},[]);ot(()=>{const t=Yt.on("cart/data",e=>{Ct(e),kt(!!mt)},{eager:!0});return()=>{t==null||t.off()}},[]),ot(()=>{Z&&Z(A)},[A,Z]);const Et=(t,e)=>{if(l.includes("image"))return;const r=n(Kt,{"data-testid":"cart-list-item-image",loading:e<4?"eager":"lazy",src:t.image.src,alt:t.image.alt,width:"300",height:"300",params:{width:300}});return n(w,{name:"Thumbnail",slot:c==null?void 0:c.Thumbnail,context:{item:t},children:v?n("a",{href:v(t),children:r}):r})},It=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})},xt=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},Pt=t=>{var e,r,f,g;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:(f=t.regularPrice)==null?void 0:f.value,currency:(g=t.regularPrice)==null?void 0:g.currency,style:{font:"inherit"},"data-testid":"regular-item-price"}},Nt=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"}},Ot=t=>(s==null?void 0:s.price)==="INCLUDING_EXCLUDING_TAX"?n(O,{amount:t.rowTotal.value,currency:t.rowTotal.currency,"data-testid":"excluding-tax-total","aria-label":i.regularPrice}):void 0,At=t=>{var f,g,p,C,I,x,P,at,it,ct;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=(f=t.rowTotalIncludingTax)==null?void 0:f.value,e.currency=(g=t.rowTotalIncludingTax)==null?void 0:g.currency,e.variant=t.discounted?"strikethrough":"default",e["data-testid"]="including-tax-item-total",r&&(e.amount=(p=t.total)==null?void 0:p.value,e.currency=(C=t.total)==null?void 0:C.currency,r.amount=(I=t.rowTotalIncludingTax)==null?void 0:I.value,r.currency=(x=t.rowTotalIncludingTax)==null?void 0:x.currency,r.sale=!0,r["aria-label"]=i.discountedPrice,r["data-testid"]="discount-total")):(e.amount=(P=t.total)==null?void 0:P.value,e.currency=(at=t.total)==null?void 0:at.currency,e.variant=t.discounted?"strikethrough":"default",e["data-testid"]="regular-item-total",r&&(r.amount=(it=t.discountedTotal)==null?void 0:it.value,r.currency=(ct=t.discountedTotal)==null?void 0:ct.currency,r.sale=!0,r["aria-label"]=i.regularPrice,r["data-testid"]="discount-total")),{totalProps:e,discountProps:r}},Qt=t=>{var I,x,P;if(l.includes("warning"))return;const e=A.get(t.uid),r=(I=A.get(t.uid))==null?void 0:I.includes("The requested qty is not available"),f=E.has(t.uid),g=t.insufficientQuantity&&t.stockLevel?t.stockLevel==="noNumber"?i.insufficientQuantityGeneral:i.insufficientQuantity.replace("{inventory}",(x=t.stockLevel)==null?void 0:x.toString()).replace("{count}",t.quantity.toString()):"",p=t.lowInventory&&t.onlyXLeftInStock&&i.lowInventory.replace("{count}",(P=t.onlyXLeftInStock)==null?void 0:P.toString()),C=!t.outOfStock&&e&&r?i.notAvailableMessage:e;return!f&&(e||t.insufficientQuantity||t.lowInventory)?y("span",{"data-testid":"item-warning",children:[n(q,{source:ne,size:"16"}),C||g||p]}):void 0},Gt=t=>l!=null&&l.includes("alert")?void 0:!E.has(t.uid)&&t.outOfStock?y("span",{"data-testid":"item-alert",children:[n(q,{source:dt,size:"16"}),i.outOfStockAlert]}):void 0,Vt=t=>n(w,{name:"ProductAttributes",slot:c==null?void 0:c.ProductAttributes,context:{item:t}}),bt=t=>{if(!l.includes("sku"))return n("span",{"data-testid":"cart-list-item-sku",children:t.sku})},Xt=t=>n(w,{name:"Footer",slot:c==null?void 0:c.Footer,context:{item:t,handleItemsLoading:G,handleItemsError:M,onItemUpdate:m}}),R=t=>a!=null&&a.totalQuantity?a.items.filter(t).map((e,r)=>{var p;const{totalProps:f,discountProps:g}=At(e);return n(Jt,{updating:E==null?void 0:E.has(e.uid),loading:F,"data-testid":`cart-list-item-entry-${e.uid}`,image:Et(e,r),title:It(e),sku:bt(e),price:l.includes("price")?void 0:n(O,{...Pt(e)}),quantity:l.includes("quantity")?void 0:e.quantity,total:y(j,{children:[l.includes("total")?void 0:n(O,{...f}),l.includes("totalDiscount")?void 0:g&&n(O,{...g})]}),attributes:Vt(e),configurations:xt(e),totalExcludingTax:l.includes("totalExcludingTax")?void 0:Ot(e),taxIncluded:(s==null?void 0:s.price)==="INCLUDING_TAX",taxExcluded:!l.includes("totalExcludingTax")&&(s==null?void 0:s.price)==="INCLUDING_EXCLUDING_TAX",warning:Qt(e),alert:Gt(e),quantityType:vt,dropdownOptions:pt,onQuantity:W?C=>{z(e,C)}:void 0,onRemove:$?()=>z(e,0):void 0,discount:ht&&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:yt&&e.discounted&&e.savingsAmount?y("div",{children:[n("span",{children:n(O,{...Nt(e)})})," ",i.savingsAmount]}):void 0,footer:Xt(e)},e.uid)}):null,Y=n(w,{name:"EmptyCart",slot:c==null?void 0:c.EmptyCart,context:{},children:n(Mt,{"data-testid":"empty-cart",ctaLinkURL:_==null?void 0:_()})}),H=n(w,{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()})`:"")})}),jt=H.props.children.props.children,$t=()=>{const t=a==null?void 0:a.items.filter(e=>e.outOfStock);t==null||t.forEach(e=>{z(e,0)})},Zt=R(t=>t.outOfStock||t.insufficientQuantity||!1),D=a!=null&&a.hasOutOfStockItems?n(Tt,{"data-testid":"cart-out-of-stock-message",icon:n(q,{source:dt,size:"16"}),itemList:n(lt,{"data-testid":"out-of-stock-cart-items",children:Zt}),type:"warning",heading:i.outOfStockHeading,description:i.outOfStockDescription,variant:"primary",actionButtonPosition:"bottom",additionalActions:a!=null&&a.hasFullyOutOfStockItems&&$?[{label:i.removeAction,onClick:$t}]:void 0}):void 0,V=R(t=>!t.outOfStock&&!t.insufficientQuantity),tt=Q?Math.max(h||5,5):Math.min((a==null?void 0:a.totalQuantity)||5,5),et=(a==null?void 0:a.totalQuantity)>tt,Bt=et&&!Q&&tt!=h,b=a!=null&&a.totalQuantity&&V?n(w,{name:"Footer",slot:c==null?void 0:c.CartSummaryFooter,context:{displayMaxItems:Q,routeCart:u},"data-testid":"cart-cart-summary-footer-slot",children:n("div",{"data-testid":"cart-cart-summary-footer",children:et?Bt?n(T,{className:"cart-cart-summary-list-footer__action",onClick:St,"data-testid":"view-more-items-button",variant:"tertiary",children:i.viewMore}):u&&n(T,{className:"cart-cart-summary-list-footer__action",href:u(),variant:"tertiary","data-testid":"view-cart-or-less-items-button",children:i.viewAll}):u&&n(T,{className:"cart-cart-summary-list-footer__action",href:u(),variant:"tertiary","data-testid":"view-cart-button",children:i.viewAll})})}):null,nt=a!=null&&a.totalQuantity?n(lt,{"data-testid":"cart-list",children:V==null?void 0:V.slice(0,Q?Math.max(h||(a==null?void 0:a.totalQuantity),5):Math.min(h??5,5))}):null;return ft?n(Ut,{"data-testid":"cart-summary-list-accordion",className:L(["cart-cart-summary-list-accordion",`cart-cart-summary-list__background--${B}`]),iconOpen:ee,iconClose:Dt,children:n(Wt,{title:jt,"data-testid":"cart-summary-list-accordion__section",open:!0,renderContentWhenClosed:!0,children:n(gt,{...K,"aria-expanded":!0,"aria-label":"TEST",className:"cart-cart-summary-list-accordion__list",loading:F,footer:k?void 0:b||(u?b:void 0),emptyCart:Y,products:nt,outOfStockMessage:D,variant:B})})}):n(gt,{...K,heading:U?void 0:H,footer:k?void 0:b||(u?b:void 0),loading:F,emptyCart:Y,products:nt,outOfStockMessage:D,variant:B})};ae.getInitialData=async function(){return Rt()};export{ae as C}; diff --git a/scripts/__dropins__/storefront-cart/chunks/ChevronUp.js b/scripts/__dropins__/storefront-cart/chunks/ChevronUp.js new file mode 100644 index 0000000000..dcc687c50e --- /dev/null +++ b/scripts/__dropins__/storefront-cart/chunks/ChevronUp.js @@ -0,0 +1,3 @@ +/*! Copyright 2025 Adobe +All Rights Reserved. */ +import*as e from"@dropins/tools/preact-compat.js";const o=t=>e.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},e.createElement("path",{d:"M7.74512 14.132L12.0001 9.87701L16.2551 14.132",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"square",strokeLinejoin:"round"}));export{o as S}; diff --git a/scripts/__dropins__/storefront-cart/chunks/Coupons.js b/scripts/__dropins__/storefront-cart/chunks/Coupons.js new file mode 100644 index 0000000000..a8648ac180 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/chunks/Coupons.js @@ -0,0 +1,3 @@ +/*! Copyright 2025 Adobe +All Rights Reserved. */ +import*as e from"@dropins/tools/preact-compat.js";import{useRef as k}from"@dropins/tools/preact-compat.js";import{jsx as n,jsxs as u}from"@dropins/tools/preact-jsx-runtime.js";import{classes as t,VComponent as r,getFormValues as x}from"@dropins/tools/lib.js";import{Accordion as L,AccordionSection as S}from"@dropins/tools/components.js";/* empty css */import{S as C}from"./Coupon.js";import{useText as N}from"@dropins/tools/i18n.js";const B=o=>e.createElement("svg",{id:"Icon_Add_Base","data-name":"Icon \\u2013 Add \\u2013 Base",xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...o},e.createElement("g",{id:"Large"},e.createElement("rect",{id:"Placement_area","data-name":"Placement area",width:24,height:24,fill:"#fff",opacity:0}),e.createElement("g",{id:"Add_icon","data-name":"Add icon",transform:"translate(9.734 9.737)"},e.createElement("line",{vectorEffect:"non-scaling-stroke",id:"Line_579","data-name":"Line 579",y2:12.7,transform:"translate(2.216 -4.087)",fill:"none",stroke:"currentColor"}),e.createElement("line",{vectorEffect:"non-scaling-stroke",id:"Line_580","data-name":"Line 580",x2:12.7,transform:"translate(-4.079 2.263)",fill:"none",stroke:"currentColor"})))),V=o=>e.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...o},e.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3599 5.64001L5.62988 18.37",stroke:"currentColor"}),e.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3599 18.37L5.62988 5.64001",stroke:"currentColor"})),I=o=>e.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...o},e.createElement("path",{d:"M17.3332 11.75H6.6665",strokeWidth:1.5,strokeLinecap:"square",strokeLinejoin:"round",vectorEffect:"non-scaling-stroke",fill:"none",stroke:"currentColor"})),W=({accordionSectionTitle:o,accordionSectionIcon:h,className:g,children:M,couponCodeField:s,applyCouponsButton:i,appliedCoupons:l,error:d,onApplyCoupon:a,...p})=>{const c=k(null),v=N({couponTitle:"Cart.PriceSummary.coupon.title"}),w=_=>{var f;_.preventDefault();const E=x(c.current);a==null||a(E);const m=(f=c==null?void 0:c.current)==null?void 0:f.querySelector("input");m&&(m.value="")};return n("div",{...p,"data-testid":"cart-coupons",className:t(["cart-coupons",g]),children:n(L,{"data-testid":"coupon-code",className:t(["cart-coupons__accordion"]),actionIconPosition:"right",iconOpen:B,iconClose:I,children:u(S,{title:o??v.couponTitle,iconLeft:h??C,showIconLeft:!0,renderContentWhenClosed:!1,"data-testid":"coupon-code-accordion-section",className:t(["cart-coupons__accordion-section"]),children:[n("form",{"data-testid":"coupon-code-form",className:t(["coupon-code-form--edit"]),ref:c,children:u("div",{className:t(["coupon-code-form__action"]),children:[s&&n(r,{node:s,className:t(["coupon-code-form__codes"])}),i&&n(r,{node:i,className:t(["coupon-code-form--button"]),onClick:w,type:"submit"})]})}),d&&n(r,{node:d,className:t(["coupon-code-form__error"])}),l&&n(r,{node:l,className:t(["coupon-code-form__applied"])})]})})})};export{W as C,V as S}; diff --git a/scripts/__dropins__/storefront-cart/chunks/EmptyCart.js b/scripts/__dropins__/storefront-cart/chunks/EmptyCart.js index 91e924c1ea..d29b7bf219 100644 --- a/scripts/__dropins__/storefront-cart/chunks/EmptyCart.js +++ b/scripts/__dropins__/storefront-cart/chunks/EmptyCart.js @@ -1,3 +1,3 @@ /*! Copyright 2025 Adobe All Rights Reserved. */ -import{jsx as r}from"@dropins/tools/preact-jsx-runtime.js";import{classes as o}from"@dropins/tools/lib.js";import{IllustratedMessage as i,Icon as s,Button as m}from"@dropins/tools/components.js";/* empty css */import*as t from"@dropins/tools/preact-compat.js";import{useText as l}from"@dropins/tools/i18n.js";const p=e=>t.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},t.createElement("g",{clipPath:"url(#clip0_102_196)"},t.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3601 18.16H6.5601L4.8801 3H2.3501M19.6701 19.59C19.6701 20.3687 19.0388 21 18.2601 21C17.4814 21 16.8501 20.3687 16.8501 19.59C16.8501 18.8113 17.4814 18.18 18.2601 18.18C19.0388 18.18 19.6701 18.8113 19.6701 19.59ZM7.42986 19.59C7.42986 20.3687 6.79858 21 6.01986 21C5.24114 21 4.60986 20.3687 4.60986 19.59C4.60986 18.8113 5.24114 18.18 6.01986 18.18C6.79858 18.18 7.42986 18.8113 7.42986 19.59Z",stroke:"currentColor",strokeLinejoin:"round"}),t.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M5.25 6.37L20.89 8.06L20.14 14.8H6.19",stroke:"currentColor",strokeLinejoin:"round"})),t.createElement("defs",null,t.createElement("clipPath",{id:"clip0_102_196"},t.createElement("rect",{vectorEffect:"non-scaling-stroke",width:19.29,height:19.5,fill:"white",transform:"translate(2.3501 2.25)"})))),g=({className:e,children:d,ctaLinkURL:a,...n})=>{const c=l({emptyCart:"Cart.EmptyCart.heading",cta:"Cart.EmptyCart.cta"});return r("div",{...n,className:o(["cart-empty-cart",e]),children:r(i,{className:o(["cart-empty-cart__wrapper",e]),"data-testid":"cart-empty-cart",heading:c.emptyCart,icon:r(s,{className:"cart-empty-cart__icon",source:p}),action:a?r(m,{"data-testid":"cart-empty-cart-button",size:"medium",variant:"primary",type:"submit",href:a,children:c.cta},"routeHome"):void 0})})};export{g as E}; +import{jsx as r}from"@dropins/tools/preact-jsx-runtime.js";import{classes as o}from"@dropins/tools/lib.js";import{IllustratedMessage as i,Icon as s,Button as m}from"@dropins/tools/components.js";/* empty css */import*as t from"@dropins/tools/preact-compat.js";import{useText as l}from"@dropins/tools/i18n.js";const p=e=>t.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},t.createElement("g",{clipPath:"url(#clip0_102_196)"},t.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3601 18.16H6.5601L4.8801 3H2.3501M19.6701 19.59C19.6701 20.3687 19.0388 21 18.2601 21C17.4814 21 16.8501 20.3687 16.8501 19.59C16.8501 18.8113 17.4814 18.18 18.2601 18.18C19.0388 18.18 19.6701 18.8113 19.6701 19.59ZM7.42986 19.59C7.42986 20.3687 6.79858 21 6.01986 21C5.24114 21 4.60986 20.3687 4.60986 19.59C4.60986 18.8113 5.24114 18.18 6.01986 18.18C6.79858 18.18 7.42986 18.8113 7.42986 19.59Z",stroke:"currentColor",strokeLinejoin:"round"}),t.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M5.25 6.37L20.89 8.06L20.14 14.8H6.19",stroke:"currentColor",strokeLinejoin:"round"})),t.createElement("defs",null,t.createElement("clipPath",{id:"clip0_102_196"},t.createElement("rect",{vectorEffect:"non-scaling-stroke",width:19.29,height:19.5,fill:"white",transform:"translate(2.3501 2.25)"})))),g=({className:e,children:d,ctaLinkURL:a,...n})=>{const c=l({emptyCart:"Cart.EmptyCart.heading",cta:"Cart.EmptyCart.cta"});return r("div",{...n,className:o(["cart-empty-cart",e]),children:r(i,{className:o(["cart-empty-cart__wrapper",e]),"data-testid":"cart-empty-cart",heading:c.emptyCart,icon:r(s,{className:"cart-empty-cart__icon",source:p}),action:a?r(m,{"data-testid":"cart-empty-cart-button",size:"medium",variant:"primary",type:"submit",href:a,children:c.cta},"routeHome"):void 0})})};export{g as E}; diff --git a/scripts/__dropins__/storefront-cart/chunks/GiftCard.js b/scripts/__dropins__/storefront-cart/chunks/GiftCard.js new file mode 100644 index 0000000000..1af193becc --- /dev/null +++ b/scripts/__dropins__/storefront-cart/chunks/GiftCard.js @@ -0,0 +1,3 @@ +/*! Copyright 2025 Adobe +All Rights Reserved. */ +import*as e from"@dropins/tools/preact-compat.js";const C=t=>e.createElement("svg",{width:24,height:16,viewBox:"0 0 24 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},e.createElement("path",{d:"M22.5364 9.8598V2.1658C22.5364 1.63583 22.099 1.20996 21.576 1.20996H2.42337C1.89083 1.20996 1.46289 1.64529 1.46289 2.1658V9.8598M22.5364 9.8598H1.46289M22.5364 9.8598V13.844C22.5364 14.3645 22.1085 14.7999 21.576 14.7999H2.42337C1.90034 14.7999 1.46289 14.374 1.46289 13.844V9.8598M3.9164 12.5191L7.5396 9.8598M7.5396 9.8598L11.1628 12.5191M7.5396 9.8598C7.5396 9.8598 6.96902 7.26674 6.40795 6.70838C5.84687 6.15002 4.93394 6.15002 4.37287 6.70838C3.81179 7.26674 3.81179 8.17526 4.37287 8.73362C4.93394 9.29198 7.5396 9.8598 7.5396 9.8598ZM7.5396 9.8598C7.5396 9.8598 10.1643 9.27305 10.7254 8.71469C11.2864 8.15633 11.2864 7.24782 10.7254 6.68946C10.1643 6.1311 9.25135 6.1311 8.69028 6.68946C8.12921 7.24782 7.5396 9.8598 7.5396 9.8598ZM7.5396 14.7904V1.20996",stroke:"currentColor",strokeLinecap:"round"}));export{C as S}; diff --git a/scripts/__dropins__/storefront-cart/chunks/OrderSummary.js b/scripts/__dropins__/storefront-cart/chunks/OrderSummary.js index c1eb65650e..9a503bc8d6 100644 --- a/scripts/__dropins__/storefront-cart/chunks/OrderSummary.js +++ b/scripts/__dropins__/storefront-cart/chunks/OrderSummary.js @@ -1,3 +1,3 @@ /*! Copyright 2025 Adobe All Rights Reserved. */ -import{jsxs as E,jsx as r,Fragment as We}from"@dropins/tools/preact-jsx-runtime.js";import*as Ie from"@dropins/tools/preact-compat.js";import{useState as M,useEffect as ae,useCallback as Fe}from"@dropins/tools/preact-compat.js";import{VComponent as B,classes as ke,Slot as we}from"@dropins/tools/lib.js";import{events as Ee}from"@dropins/tools/event-bus.js";import{g as Ge}from"./persisted-data.js";import{s as Oe}from"./resetCart.js";import{g as ze}from"./getEstimatedTotals.js";import{p as Ve}from"./acdl.js";import{Accordion as Ne,AccordionSection as Le,ProgressSpinner as Ze,Divider as je,Price as l,Icon as Ue,Button as Qe}from"@dropins/tools/components.js";/* empty css */import{O as v}from"./OrderSummaryLine.js";import{S as De}from"./ChevronDown.js";import{useText as Ae}from"@dropins/tools/i18n.js";import{S as Xe}from"./Coupon.js";const Be=O=>Ie.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...O},Ie.createElement("path",{d:"M7.74512 14.132L12.0001 9.87701L16.2551 14.132",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"square",strokeLinejoin:"round"})),$e=({className:O,children:A,variant:P="primary",heading:s,loading:N=!0,subTotal:g,shipping:m,discounts:_,taxTotal:x,taxesApplied:e,total:p,primaryAction:L,coupons:o,totalSaved:y,updateLineItems:I=T=>T,...t})=>{const[T,D]=M(!1),i=Ae({checkout:"Cart.PriceSummary.checkout",discountedPrice:"Cart.CartItem.discountedPrice",download:"Cart.CartItem.download",heading:"Cart.Cart.heading",message:"Cart.CartItem.message",regularPrice:"Cart.CartItem.regularPrice",recipient:"Cart.CartItem.recipient",sender:"Cart.CartItem.sender",file:"Cart.CartItem.file",files:"Cart.CartItem.files",orderSummary:"Cart.PriceSummary.orderSummary",taxesBreakdownTitle:"Cart.PriceSummary.taxes.breakdown",taxTotal:"Cart.PriceSummary.taxes.total",taxEstimated:"Cart.PriceSummary.taxes.estimated",taxTotalOnly:"Cart.PriceSummary.taxes.totalOnly",showTaxBreakdown:"Cart.PriceSummary.taxes.showBreakdown",hideTaxBreakdown:"Cart.PriceSummary.taxes.hideBreakdown",taxToBeDetermined:"Cart.PriceSummary.taxToBeDetermined",subtotalLabel:"Cart.PriceSummary.subTotal.label",subtotalWithTaxes:"Cart.PriceSummary.subTotal.withTaxes",subtotalWithoutTaxes:"Cart.PriceSummary.subTotal.withoutTaxes",totalEstimated:"Cart.PriceSummary.total.estimated",totalLabel:"Cart.PriceSummary.total.label",totalWithoutTax:"Cart.PriceSummary.total.withoutTax",totalSaved:"Cart.PriceSummary.total.saved",shippingLabel:"Cart.PriceSummary.shipping.label",zipPlaceholder:"Cart.PriceSummary.shipping.zipPlaceholder",editZipAction:"Cart.PriceSummary.shipping.editZipAction",shippingWithTaxes:"Cart.PriceSummary.shipping.withTaxes",shippingWithoutTaxes:"Cart.PriceSummary.shipping.withoutTaxes",shippingEstimated:"Cart.PriceSummary.shipping.estimated",shippingEstimatedByState:"Cart.PriceSummary.shipping.alternateField.state",shippingEstimatedByZip:"Cart.PriceSummary.shipping.alternateField.zip",destinationLinkAriaLabel:"Cart.PriceSummary.shipping.destinationLinkAriaLabel",applyButton:"Cart.PriceSummary.estimatedShippingForm.apply.label",countryField:"Cart.PriceSummary.estimatedShippingForm.country.placeholder",freeShipping:"Cart.PriceSummary.freeShipping",stateField:"Cart.PriceSummary.estimatedShippingForm.state.placeholder",zipField:"Cart.PriceSummary.estimatedShippingForm.zip.placeholder"}),k=g&&E(v,{label:i.subtotalLabel,price:g.price,classSuffixes:["subTotal"],children:[g.taxIncluded&&r("div",{"data-testid":"sub-total-tax-caption",className:"cart-order-summary__caption",children:r("span",{children:i.subtotalWithTaxes})}),g.taxExcluded?r("div",{"data-testid":"sub-total-tax-caption-excluded",className:"cart-order-summary__caption",children:E("span",{children:[g.priceExcludingTax," ",i.subtotalWithoutTaxes]})}):void 0]}),w=_&&_.length>0&&r(We,{children:_.map(n=>E(v,{label:n.label,price:n.price,classSuffixes:["discount"],children:[n.coupon&&r(B,{node:n.coupon,className:"cart-order-summary__coupon__code"}),n.caption&&r(B,{node:n.caption,className:"cart-order-summary__caption"})]}))}),S=e&&e.length>0?r(Ne,{"data-testid":"tax-breakdown",className:"cart-order-summary__taxes",iconOpen:De,iconClose:Be,children:E(Le,{title:i.taxesBreakdownTitle,secondaryText:!T&&x?r(B,{node:x.price,className:"cart-order-summary__price"}):void 0,renderContentWhenClosed:!1,onStateChange:D,children:[r("div",{className:"cart-order-summary__appliedTaxes",children:e.map(n=>r(v,{label:n.label,price:n.price,classSuffixes:["taxEntry"],labelClassSuffix:"muted"}))}),x&&r(v,{label:i.taxTotal,price:x.price,classSuffixes:["taxTotal"],labelClassSuffix:"muted"})]})}):x&&r(v,{label:x.estimated?i.taxEstimated:i.taxTotalOnly,price:x.price,classSuffixes:["taxTotal"],testId:"tax-total-only"}),d=[{key:"subTotalContent",sortOrder:100,content:k},...m?[{key:"shippingContent",sortOrder:200,content:r(B,{node:m,className:"cart-order-summary__shipping"})}]:[],{key:"discountsContent",sortOrder:300,content:w},{key:"taxContent",sortOrder:400,content:S},...p?[{key:"taxContent",sortOrder:500,content:r(v,{label:p.estimated?i.totalEstimated:i.totalLabel,price:p.price,classSuffixes:["total","total--padded"],testId:"total-content",labelClassSuffix:"bold"})}]:[],...p&&p.priceWithoutTax?[{key:"totalWithoutTaxContent",sortOrder:600,content:r(v,{label:i.totalWithoutTax,price:p.priceWithoutTax,classSuffixes:["totalWithoutTax"],testId:"total-without-tax",labelClassSuffix:"muted"})}]:[],...y?[{key:"totalSavedContent",sortOrder:700,content:r(v,{label:i.totalSaved,price:y,classSuffixes:["saved"],testId:"total-saved",labelClassSuffix:"muted"})}]:[],...L?[{key:"primaryActionContent",sortOrder:800,content:r("div",{className:ke(["cart-order-summary__entry","cart-order-summary__primaryAction"]),children:L})}]:[],...o?[{key:"couponsContent",sortOrder:900,content:r(B,{node:o,className:"cart-order-summary__coupons"})}]:[]],h=I(d).sort((n,C)=>n.sortOrder-C.sortOrder);return E("div",{...t,className:ke(["cart-order-summary",["cart-order-summary--loading",N],[`cart-order-summary__${P}`,P],O]),children:[N&&r(Ze,{className:"cart-order-summary__spinner"}),E("div",{className:"cart-order-summary__heading",children:[s&&r(B,{node:s,className:"cart-order-summary__heading-text"}),r(je,{variant:"primary",className:"cart-order-summary__divider-primary"})]}),r("div",{className:"cart-order-summary__content",children:h.map(n=>Array.isArray(n.content)?r(Ne,{className:n.className,actionIconPosition:"right",iconOpen:De,iconClose:Be,children:r(Le,{defaultOpen:!1,title:n.title,renderContentWhenClosed:!1,children:n.content.map(C=>C.content)})}):n.content)})]})},qe=()=>{const[O,A]=M(!1),[P,s]=M();return{handleEstimateTotals:(g,m)=>{A(!0);const{shippingCountry:_,shippingState:x="",shippingStateId:e,shippingZip:p=""}=g,L={countryCode:_,postcode:p,region:{region:x,id:e},shipping_method:{carrier_code:(m==null?void 0:m.carrier_code)||"",method_code:(m==null?void 0:m.method_code)||""}};ze(L).then(o=>{var y,I,t,T,D,i,k,w,S,d,h,n,C,ee,W,F,G,z,V,Z;o&&s({estimatedTaxTotal:{amount:(y=o.totalTax)==null?void 0:y.value,currency:(I=o.totalTax)==null?void 0:I.currency},estimatedSubTotal:{excludingTax:{amount:(T=(t=o.subtotal)==null?void 0:t.excludingTax)==null?void 0:T.value,currency:(i=(D=o.subtotal)==null?void 0:D.excludingTax)==null?void 0:i.currency},includingTax:{amount:(w=(k=o.subtotal)==null?void 0:k.includingTax)==null?void 0:w.value,currency:(d=(S=o.subtotal)==null?void 0:S.includingTax)==null?void 0:d.currency},includingDiscountOnly:{amount:(n=(h=o.subtotal)==null?void 0:h.includingDiscountOnly)==null?void 0:n.value,currency:(ee=(C=o.subtotal)==null?void 0:C.includingDiscountOnly)==null?void 0:ee.currency}},estimatedGrandTotalPrice:{includingTax:{amount:(W=o.total)==null?void 0:W.includingTax.value,currency:(F=o.total)==null?void 0:F.includingTax.currency},excludingTax:{amount:(G=o.total)==null?void 0:G.excludingTax.value,currency:(z=o.total)==null?void 0:z.excludingTax.currency}},estimatedAppliedTaxes:{taxes:(V=o.appliedTaxes)==null?void 0:V.map(u=>{var b,f;return{label:u.label,amount:{value:(b=u.amount)==null?void 0:b.value,currency:(f=u.amount)==null?void 0:f.currency}}})},estimatedItems:{items:(Z=o.items)==null?void 0:Z.map(u=>{var b,f,j,U,Q,X,$,q,H,R;return{uid:u.uid,price:{amount:(b=u.price)==null?void 0:b.value,currency:(f=u.price)==null?void 0:f.currency},taxedPrice:{amount:(j=u.taxedPrice)==null?void 0:j.value,currency:(U=u.taxedPrice)==null?void 0:U.currency},rowTotal:{amount:(Q=u.rowTotal)==null?void 0:Q.value,currency:(X=u.rowTotal)==null?void 0:X.currency},rowTotalIncludingTax:{amount:($=u.rowTotalIncludingTax)==null?void 0:$.value,currency:(q=u.rowTotalIncludingTax)==null?void 0:q.currency},regularPrice:{amount:(H=u.regularPrice)==null?void 0:H.value,currency:(R=u.regularPrice)==null?void 0:R.currency}}})}})}).finally(()=>{A(!1)})},estimatedTotals:P,setEstimatedTotals:s,loading:O}},He=({children:O,initialData:A=null,routeCheckout:P,slots:s,errors:N,showTotalSaved:g,enableCoupons:m,updateLineItems:_=e=>e,...x})=>{var W,F,G,z,V,Z,u,b,f,j,U,Q,X,$,q,H,R,ie,ne,ce,oe,ue,se,le,me,de,xe,pe,he,ge,ye,Te,Se,Ce,be,fe;const[e,p]=M(A),[L,o]=M(!1),y=e==null?void 0:e.isVirtual;m=m??!0;const{handleEstimateTotals:I,estimatedTotals:t,setEstimatedTotals:T,loading:D}=qe(),i=(W=Oe.config)==null?void 0:W.shoppingCartDisplaySetting,k=(i==null?void 0:i.subtotal)==="INCLUDING_TAX",w=(i==null?void 0:i.subtotal)==="INCLUDING_EXCLUDING_TAX",S=i==null?void 0:i.zeroTax;ae(()=>{const c=Ee.on("cart/data",a=>{var J,K,Y;p(a);const te=(J=a==null?void 0:a.addresses)==null?void 0:J.shipping,re=a==null?void 0:a.isVirtual;(te||re)&&T(null),t==null&&T({estimatedTaxTotal:{amount:(K=a==null?void 0:a.totalTax)==null?void 0:K.value,currency:(Y=a==null?void 0:a.totalTax)==null?void 0:Y.currency}})},{eager:!0});return()=>{c==null||c.off()}},[]),ae(()=>{o(N)},[N]),ae(()=>{const c=Ee.on("shipping/estimate",a=>{var J,K,Y,ve,Pe,_e;const te={shippingCountry:(J=a==null?void 0:a.address)==null?void 0:J.countryCode,shippingState:(K=a==null?void 0:a.address)==null?void 0:K.region,shippingStateId:(Y=a==null?void 0:a.address)==null?void 0:Y.regionId,shippingZip:(ve=a==null?void 0:a.address)==null?void 0:ve.postCode},re={carrier_code:((Pe=a==null?void 0:a.shippingMethod)==null?void 0:Pe.carrierCode)||"",method_code:((_e=a==null?void 0:a.shippingMethod)==null?void 0:_e.methodCode)||""};I(te,re)});return()=>{c==null||c.off()}},[I]);const d=Ae({checkout:"Cart.PriceSummary.checkout",free:"Cart.PriceSummary.total.free",orderSummary:"Cart.PriceSummary.orderSummary",taxToBeDetermined:"Cart.PriceSummary.taxToBeDetermined"}),h=(e==null?void 0:e.hasOutOfStockItems)||L,n=Fe(()=>{!h&&e&&Ve(e,Oe.locale)},[h,e]),C=!y&&(s!=null&&s.EstimateShipping)?r(we,{name:"EstimateShipping",slot:s.EstimateShipping},"estimateShippingId"):void 0;if(!Object.keys(e??{}).length||(e==null?void 0:e.totalQuantity)===0)return null;const ee=m&&(s!=null&&s.Coupons)?r(we,{name:"Coupons",slot:s.Coupons},"couponsId"):void 0;return r($e,{...x,"data-testid":"cart-order-summary",heading:r("div",{children:d.orderSummary}),shipping:C,coupons:ee,loading:D,updateLineItems:_,subTotal:{taxIncluded:k&&!S,taxExcluded:w,zeroTaxSubtotal:S,priceExcludingTax:(F=t==null?void 0:t.estimatedSubTotal)!=null&&F.excludingTax?r(l,{"data-testid":"subtotal",...(G=t==null?void 0:t.estimatedSubTotal)==null?void 0:G.excludingTax}):r(l,{"data-testid":"subtotal",amount:(V=(z=e==null?void 0:e.subtotal)==null?void 0:z.excludingTax)==null?void 0:V.value,currency:(u=(Z=e==null?void 0:e.subtotal)==null?void 0:Z.excludingTax)==null?void 0:u.currency}),price:!S&&k||!S&&w?(b=t==null?void 0:t.estimatedSubTotal)!=null&&b.includingTax?r(l,{"data-testid":"subtotal",...(f=t==null?void 0:t.estimatedSubTotal)==null?void 0:f.includingTax}):r(l,{"data-testid":"subtotal",amount:(j=e==null?void 0:e.subtotal.includingTax)==null?void 0:j.value,currency:(U=e==null?void 0:e.subtotal.includingTax)==null?void 0:U.currency}):r(l,{"data-testid":"subtotal",amount:(X=(Q=e==null?void 0:e.subtotal)==null?void 0:Q.excludingTax)==null?void 0:X.value,currency:(q=($=e==null?void 0:e.subtotal)==null?void 0:$.excludingTax)==null?void 0:q.currency})},discounts:(H=e==null?void 0:e.appliedDiscounts)==null?void 0:H.map(c=>{var a;return{label:c.label,price:r(l,{"data-testid":"summary-discount-total",amount:-c.amount.value,currency:c.amount.currency,sale:!0}),coupon:c!=null&&c.coupon?E("span",{children:[r(Ue,{source:Xe,size:"16"}),(a=c==null?void 0:c.coupon)==null?void 0:a.code]}):void 0}}),taxTotal:y||t&&t.estimatedTaxTotal==null?{price:r("span",{"data-testid":"tax-total-tbd",children:d.taxToBeDetermined})}:{price:t!=null&&t.estimatedTaxTotal?r(l,{"data-testid":"tax-total-estimated",...t==null?void 0:t.estimatedTaxTotal}):r(l,{"data-testid":"tax-total-actual",amount:(R=e==null?void 0:e.totalTax)==null?void 0:R.value,currency:(ie=e==null?void 0:e.totalTax)==null?void 0:ie.currency}),estimated:(!t||!t.estimatedTaxTotal)&&!((ne=e==null?void 0:e.addresses)!=null&&ne.shipping)},taxesApplied:y?void 0:i!=null&&i.fullSummary?(oe=((ce=t==null?void 0:t.estimatedAppliedTaxes)==null?void 0:ce.taxes)||(e==null?void 0:e.appliedTaxes))==null?void 0:oe.map(c=>({label:c.label,price:r(l,{"data-testid":"applied-taxes",amount:c.amount.value,currency:c.amount.currency})})):void 0,total:{price:t!=null&&t.estimatedGrandTotalPrice?((se=(ue=t==null?void 0:t.estimatedGrandTotalPrice)==null?void 0:ue.includingTax)==null?void 0:se.amount)===0?r("span",{"data-testid":"total-including-tax",children:d.free}):r(l,{"data-testid":"total-including-tax-estimated",...(le=t==null?void 0:t.estimatedGrandTotalPrice)==null?void 0:le.includingTax}):((me=e==null?void 0:e.total)==null?void 0:me.includingTax.value)===0?r("span",{"data-testid":"total-including-tax",children:d.free}):r(l,{"data-testid":"total-including-tax-actual",amount:(de=e==null?void 0:e.total)==null?void 0:de.includingTax.value,currency:(xe=e==null?void 0:e.total)==null?void 0:xe.includingTax.currency}),estimated:(!t||!!(t!=null&&t.estimatedTaxTotal))&&!((pe=e==null?void 0:e.addresses)!=null&&pe.shipping),priceWithoutTax:i!=null&&i.grandTotal?t!=null&&t.estimatedAppliedTaxes?((ge=(he=t==null?void 0:t.estimatedGrandTotalPrice)==null?void 0:he.excludingTax)==null?void 0:ge.amount)===0?r("span",{"data-testid":"total-excluding-tax",children:d.free}):r(l,{"data-testid":"total-excluding-tax",...(ye=t==null?void 0:t.estimatedGrandTotalPrice)==null?void 0:ye.excludingTax}):((Te=e==null?void 0:e.total)==null?void 0:Te.excludingTax.value)===0?r("span",{"data-testid":"total-excluding-tax",children:d.free}):r(l,{"data-testid":"total-excluding-tax",amount:(Se=e==null?void 0:e.total)==null?void 0:Se.excludingTax.value,currency:(Ce=e==null?void 0:e.total)==null?void 0:Ce.excludingTax.currency}):void 0},primaryAction:P&&r(Qe,{"data-testid":"checkout-button",variant:"primary",disabled:h,"aria-disabled":h,href:h?void 0:P({cartId:e.id}),onClick:n,children:d.checkout}),totalSaved:g?r(l,{amount:(be=e==null?void 0:e.discount)==null?void 0:be.value,currency:(fe=e==null?void 0:e.total)==null?void 0:fe.includingTax.currency}):void 0})};He.getInitialData=async function(){return Ge()};export{He as O}; +import{jsx as r,jsxs as p,Fragment as xr}from"@dropins/tools/preact-jsx-runtime.js";import{useState as te,useEffect as ie,useCallback as pr,Fragment as Tr}from"@dropins/tools/preact-compat.js";import{VComponent as U,classes as ar,Slot as le}from"@dropins/tools/lib.js";import{events as cr}from"@dropins/tools/event-bus.js";import{g as gr}from"./persisted-data.js";import{s as ce}from"./resetCart.js";import{g as hr}from"./getEstimatedTotals.js";import{p as yr}from"./acdl.js";import"@dropins/tools/preact-hooks.js";import{Accordion as ir,AccordionSection as lr,ProgressSpinner as Cr,Divider as Sr,Price as u,Icon as ur,Button as Ir}from"@dropins/tools/components.js";/* empty css */import{O as C}from"./OrderSummaryLine.js";import{S as or}from"./ChevronDown.js";import{S as sr}from"./ChevronUp.js";import{useText as dr,Text as mr}from"@dropins/tools/i18n.js";import{S as br}from"./Coupon.js";import{S as vr}from"./GiftCard.js";const _r=({className:ne,children:$,variant:w="primary",heading:m,loading:X=!0,subTotal:b,shipping:g,discounts:v,taxTotal:S,taxesApplied:A,total:e,primaryAction:z,coupons:o,giftCards:D,totalSaved:_,appliedGiftCards:d,printedCard:t,itemsGiftWrapping:x,orderGiftWrapping:T,updateLineItems:s=f=>f,...W})=>{const[f,P]=te(!1),l=dr({checkout:"Cart.PriceSummary.checkout",discountedPrice:"Cart.CartItem.discountedPrice",download:"Cart.CartItem.download",heading:"Cart.Cart.heading",message:"Cart.CartItem.message",regularPrice:"Cart.CartItem.regularPrice",recipient:"Cart.CartItem.recipient",sender:"Cart.CartItem.sender",file:"Cart.CartItem.file",files:"Cart.CartItem.files",orderSummary:"Cart.PriceSummary.orderSummary",taxesBreakdownTitle:"Cart.PriceSummary.taxes.breakdown",taxTotal:"Cart.PriceSummary.taxes.total",taxEstimated:"Cart.PriceSummary.taxes.estimated",taxTotalOnly:"Cart.PriceSummary.taxes.totalOnly",showTaxBreakdown:"Cart.PriceSummary.taxes.showBreakdown",hideTaxBreakdown:"Cart.PriceSummary.taxes.hideBreakdown",taxToBeDetermined:"Cart.PriceSummary.taxToBeDetermined",subtotalLabel:"Cart.PriceSummary.subTotal.label",subtotalWithTaxes:"Cart.PriceSummary.subTotal.withTaxes",subtotalWithoutTaxes:"Cart.PriceSummary.subTotal.withoutTaxes",totalEstimated:"Cart.PriceSummary.total.estimated",totalLabel:"Cart.PriceSummary.total.label",totalWithoutTax:"Cart.PriceSummary.total.withoutTax",totalSaved:"Cart.PriceSummary.total.saved",shippingLabel:"Cart.PriceSummary.shipping.label",zipPlaceholder:"Cart.PriceSummary.shipping.zipPlaceholder",editZipAction:"Cart.PriceSummary.shipping.editZipAction",shippingWithTaxes:"Cart.PriceSummary.shipping.withTaxes",shippingWithoutTaxes:"Cart.PriceSummary.shipping.withoutTaxes",shippingEstimated:"Cart.PriceSummary.shipping.estimated",shippingEstimatedByState:"Cart.PriceSummary.shipping.alternateField.state",shippingEstimatedByZip:"Cart.PriceSummary.shipping.alternateField.zip",destinationLinkAriaLabel:"Cart.PriceSummary.shipping.destinationLinkAriaLabel",applyButton:"Cart.PriceSummary.estimatedShippingForm.apply.label",countryField:"Cart.PriceSummary.estimatedShippingForm.country.placeholder",freeShipping:"Cart.PriceSummary.freeShipping",stateField:"Cart.PriceSummary.estimatedShippingForm.state.placeholder",zipField:"Cart.PriceSummary.estimatedShippingForm.zip.placeholder",printedCardTitle:"Cart.PriceSummary.giftOptionsTax.printedCard.title",printedCardInclTax:"Cart.PriceSummary.giftOptionsTax.printedCard.inclTax",printedCardExclTax:"Cart.PriceSummary.giftOptionsTax.printedCard.exclTax",itemGiftWrappingTitle:"Cart.PriceSummary.giftOptionsTax.itemGiftWrapping.title",itemGiftWrappingInclTax:"Cart.PriceSummary.giftOptionsTax.itemGiftWrapping.inclTax",itemGiftWrappingExclTax:"Cart.PriceSummary.giftOptionsTax.itemGiftWrapping.exclTax",orderGiftWrappingTitle:"Cart.PriceSummary.giftOptionsTax.orderGiftWrapping.title",orderGiftWrappingInclTax:"Cart.PriceSummary.giftOptionsTax.orderGiftWrapping.inclTax",orderGiftWrappingExclTax:"Cart.PriceSummary.giftOptionsTax.orderGiftWrapping.exclTax"}),V=d?r(C,{label:d==null?void 0:d.label,price:d==null?void 0:d.price,classSuffixes:["applied-gift-cards"],children:d==null?void 0:d.content}):null,E=b&&p(C,{label:l.subtotalLabel,price:b.price,classSuffixes:["subTotal"],children:[b.taxIncluded&&r("div",{"data-testid":"sub-total-tax-caption",className:"cart-order-summary__caption",children:r("span",{children:l.subtotalWithTaxes})}),b.taxExcluded?r("div",{"data-testid":"sub-total-tax-caption-excluded",className:"cart-order-summary__caption",children:p("span",{children:[b.priceExcludingTax," ",l.subtotalWithoutTaxes]})}):void 0]}),B=v&&v.length>0&&r(xr,{children:v.map(i=>p(C,{label:i.label,price:i.price,classSuffixes:["discount"],children:[i.coupon&&r(U,{node:i.coupon,className:"cart-order-summary__coupon__code"}),i.caption&&r(U,{node:i.caption,className:"cart-order-summary__caption"})]}))}),n=A&&A.length>0?r(ir,{"data-testid":"tax-breakdown",className:"cart-order-summary__taxes",iconOpen:or,iconClose:sr,children:p(lr,{title:l.taxesBreakdownTitle,secondaryText:!f&&S?r(U,{node:S.price,className:"cart-order-summary__price"}):void 0,renderContentWhenClosed:!1,onStateChange:P,children:[r("div",{className:"cart-order-summary__appliedTaxes",children:A.map(i=>r(C,{label:i.label,price:i.price,classSuffixes:["taxEntry"],labelClassSuffix:"muted"}))}),S&&r(C,{label:l.taxTotal,price:S.price,classSuffixes:["taxTotal"],labelClassSuffix:"muted"})]})}):S&&r(C,{label:S.estimated?l.taxEstimated:l.taxTotalOnly,price:S.price,classSuffixes:["taxTotal"],testId:"tax-total-only"}),h=t!=null&&t.renderContent?p(C,{label:l.printedCardTitle,price:t.taxInclAndExcl||t.taxIncluded?t.priceInclTax:t.priceExclTax,classSuffixes:["printedCardContent"],children:[t.taxIncluded&&r("div",{"data-testid":"printed-card-incl",className:"cart-order-summary__caption",children:r("span",{children:l.printedCardInclTax})}),t.taxInclAndExcl?r("div",{"data-testid":"printed-card-incl-excl",className:"cart-order-summary__caption",children:p("span",{children:[t.priceExclTax," ",l.printedCardExclTax]})}):void 0]}):null,I=x!=null&&x.renderContent?p(C,{label:l.itemGiftWrappingTitle,price:x.taxInclAndExcl||x.taxIncluded?x.priceInclTax:x.priceExclTax,classSuffixes:["itemsGiftWrappingContent"],children:[x.taxIncluded?r("div",{"data-testid":"item-gift-wrapping-incl",className:"cart-order-summary__caption",children:r("span",{children:l.itemGiftWrappingInclTax})}):null,x.taxInclAndExcl?r("div",{"data-testid":"item-gift-wrapping-incl-excl",className:"cart-order-summary__caption",children:p("span",{children:[x.priceExclTax," ",l.itemGiftWrappingExclTax]})}):null]}):null,Z=T!=null&&T.renderContent?p(C,{label:l.orderGiftWrappingTitle,price:T.taxInclAndExcl||T.taxIncluded?T.priceInclTax:T.priceExclTax,classSuffixes:["orderGiftWrappingContent"],children:[T.taxIncluded&&r("div",{"data-testid":"order-gift-wrapping-incl",className:"cart-order-summary__caption",children:r("span",{children:l.orderGiftWrappingInclTax})}),T.taxInclAndExcl?r("div",{"data-testid":"order-gift-wrapping-incl-excl",className:"cart-order-summary__caption",children:p("span",{children:[T.priceExclTax," ",l.orderGiftWrappingExclTax]})}):void 0]}):null,j=[{key:"subTotalContent",sortOrder:100,content:E},...g?[{key:"shippingContent",sortOrder:200,content:r(U,{node:g,className:"cart-order-summary__shipping"})}]:[],{key:"printedCard",sortOrder:300,content:h},{key:"itemsGiftWrappingContent",sortOrder:400,content:I},{key:"orderGiftWrappingContent",sortOrder:500,content:Z},{key:"discountsContent",sortOrder:600,content:B},{key:"appliedGiftCardsContent",sortOrder:700,content:V},{key:"taxContent",sortOrder:800,content:n},...e?[{key:"taxContent",sortOrder:900,content:r(C,{label:e.estimated?l.totalEstimated:l.totalLabel,price:e.price,classSuffixes:["total","total--padded"],testId:"total-content",labelClassSuffix:"bold"})}]:[],...e!=null&&e.priceWithoutTax?[{key:"totalWithoutTaxContent",sortOrder:1e3,content:r(C,{label:l.totalWithoutTax,price:e.priceWithoutTax,classSuffixes:["totalWithoutTax"],testId:"total-without-tax",labelClassSuffix:"muted"})}]:[],..._?[{key:"totalSavedContent",sortOrder:1100,content:r(C,{label:l.totalSaved,price:_,classSuffixes:["saved"],testId:"total-saved",labelClassSuffix:"muted"})}]:[],...z?[{key:"primaryActionContent",sortOrder:1200,content:r("div",{className:ar(["cart-order-summary__entry","cart-order-summary__primaryAction"]),children:z})}]:[],...o?[{key:"couponsContent",sortOrder:1300,content:r(U,{node:o,className:"cart-order-summary__coupons"})}]:[],...D?[{key:"giftCardsContent",sortOrder:1400,content:r(U,{node:D,className:"cart-order-summary__gift-cards"})}]:[]],Q=s(j).sort((i,y)=>i.sortOrder-y.sortOrder);return p("div",{...W,className:ar(["cart-order-summary",["cart-order-summary--loading",X],[`cart-order-summary__${w}`,w],ne]),children:[X&&r(Cr,{className:"cart-order-summary__spinner"}),p("div",{className:"cart-order-summary__heading",children:[m&&r(U,{node:m,className:"cart-order-summary__heading-text"}),r(Sr,{variant:"primary",className:"cart-order-summary__divider-primary"})]}),r("div",{className:"cart-order-summary__content",children:Q.map(i=>Array.isArray(i.content)?r(ir,{className:i.className,actionIconPosition:"right",iconOpen:or,iconClose:sr,children:r(lr,{defaultOpen:!1,title:i.title,renderContentWhenClosed:!1,children:i.content.map(y=>y.content)})},i.key):i.content)})]})},fr=()=>{const[ne,$]=te(!1),[w,m]=te();return{handleEstimateTotals:(b,g)=>{$(!0);const{shippingCountry:v,shippingState:S="",shippingStateId:A,shippingZip:e=""}=b,z={countryCode:v,postcode:e,region:{region:S,id:A},shipping_method:{carrier_code:(g==null?void 0:g.carrier_code)||"",method_code:(g==null?void 0:g.method_code)||""}};hr(z).then(o=>{var D,_,d,t,x,T,s,W,f,P,l,V,E,B,n,h,I,Z,j,Q;o&&m({estimatedTaxTotal:{amount:(D=o.totalTax)==null?void 0:D.value,currency:(_=o.totalTax)==null?void 0:_.currency},estimatedSubTotal:{excludingTax:{amount:(t=(d=o.subtotal)==null?void 0:d.excludingTax)==null?void 0:t.value,currency:(T=(x=o.subtotal)==null?void 0:x.excludingTax)==null?void 0:T.currency},includingTax:{amount:(W=(s=o.subtotal)==null?void 0:s.includingTax)==null?void 0:W.value,currency:(P=(f=o.subtotal)==null?void 0:f.includingTax)==null?void 0:P.currency},includingDiscountOnly:{amount:(V=(l=o.subtotal)==null?void 0:l.includingDiscountOnly)==null?void 0:V.value,currency:(B=(E=o.subtotal)==null?void 0:E.includingDiscountOnly)==null?void 0:B.currency}},estimatedGrandTotalPrice:{includingTax:{amount:(n=o.total)==null?void 0:n.includingTax.value,currency:(h=o.total)==null?void 0:h.includingTax.currency},excludingTax:{amount:(I=o.total)==null?void 0:I.excludingTax.value,currency:(Z=o.total)==null?void 0:Z.excludingTax.currency}},estimatedAppliedTaxes:{taxes:(j=o.appliedTaxes)==null?void 0:j.map(i=>{var y,N;return{label:i.label,amount:{value:(y=i.amount)==null?void 0:y.value,currency:(N=i.amount)==null?void 0:N.currency}}})},estimatedItems:{items:(Q=o.items)==null?void 0:Q.map(i=>{var y,N,H,q,J,K,R,Y,G,M;return{uid:i.uid,price:{amount:(y=i.price)==null?void 0:y.value,currency:(N=i.price)==null?void 0:N.currency},taxedPrice:{amount:(H=i.taxedPrice)==null?void 0:H.value,currency:(q=i.taxedPrice)==null?void 0:q.currency},rowTotal:{amount:(J=i.rowTotal)==null?void 0:J.value,currency:(K=i.rowTotal)==null?void 0:K.currency},rowTotalIncludingTax:{amount:(R=i.rowTotalIncludingTax)==null?void 0:R.value,currency:(Y=i.rowTotalIncludingTax)==null?void 0:Y.currency},regularPrice:{amount:(G=i.regularPrice)==null?void 0:G.value,currency:(M=i.regularPrice)==null?void 0:M.currency}}})}})}).finally(()=>{$(!1)})},estimatedTotals:w,setEstimatedTotals:m,loading:ne}},Pr=({children:ne,initialData:$=null,routeCheckout:w,slots:m,errors:X,showTotalSaved:b,enableCoupons:g,enableGiftCards:v,updateLineItems:S=e=>e,...A})=>{var y,N,H,q,J,K,R,Y,G,M,ue,oe,se,me,de,xe,pe,Te,ge,he,ye,Ce,Se,Ie,be,ve,_e,fe,Pe,Ee,Ne,ke,we,Ae,De,We,Be,Le,Fe,Oe,Ue,Xe,ze,Ve,Ze,je,Qe,$e,He,qe,Je,Ke,Re,Ye,Ge,Me,er,rr,tr;const[e,z]=te($),[o,D]=te(!1),_=e==null?void 0:e.isVirtual;g=g??!0,v=v??!0;const{handleEstimateTotals:d,estimatedTotals:t,setEstimatedTotals:x,loading:T}=fr(),s=(y=ce.config)==null?void 0:y.shoppingCartDisplaySetting,W=(s==null?void 0:s.subtotal)==="INCLUDING_TAX",f=(s==null?void 0:s.subtotal)==="INCLUDING_EXCLUDING_TAX",P=s==null?void 0:s.zeroTax,l=()=>(e==null?void 0:e.appliedGiftCards.reduce((a,c)=>a+c.appliedBalance.value,0))??0,V=a=>{var k,ee,re;if(!(a!=null&&a.code))return null;const c=(k=a==null?void 0:a.currentBalance)==null?void 0:k.value,L=(ee=a==null?void 0:a.appliedBalance)==null?void 0:ee.value,F=c-L!==0?c-L:L,O=(re=a==null?void 0:a.currentBalance)==null?void 0:re.currency;return p(Tr,{children:[p("span",{className:"cart-order-summary__coupon__code",children:[r(ur,{source:vr,size:"16"}),r("span",{children:a==null?void 0:a.code})]}),p("span",{className:"cart-order-summary__caption",children:[r(mr,{id:"Cart.PriceSummary.giftCard.appliedGiftCards.remainingBalance"}),r(u,{className:"cart-order-summary__caption",weight:"normal",size:"small",amount:F,currency:O})]})]},a.code)},E=(N=ce.config)==null?void 0:N.cartGiftWrapping,B=(H=ce.config)==null?void 0:H.cartPrintedCard,n=e==null?void 0:e.totalGiftOptions;ie(()=>{const a=cr.on("cart/data",c=>{var F,O,k;z(c);const L=(F=c==null?void 0:c.addresses)==null?void 0:F.shipping,ae=c==null?void 0:c.isVirtual;(L||ae)&&x(null),t==null&&x({estimatedTaxTotal:{amount:(O=c==null?void 0:c.totalTax)==null?void 0:O.value,currency:(k=c==null?void 0:c.totalTax)==null?void 0:k.currency}})},{eager:!0});return()=>{a==null||a.off()}},[]),ie(()=>{D(X)},[X]),ie(()=>{const a=cr.on("shipping/estimate",c=>{var F,O,k,ee,re,nr;const L={shippingCountry:(F=c==null?void 0:c.address)==null?void 0:F.countryCode,shippingState:(O=c==null?void 0:c.address)==null?void 0:O.region,shippingStateId:(k=c==null?void 0:c.address)==null?void 0:k.regionId,shippingZip:(ee=c==null?void 0:c.address)==null?void 0:ee.postCode},ae={carrier_code:((re=c==null?void 0:c.shippingMethod)==null?void 0:re.carrierCode)||"",method_code:((nr=c==null?void 0:c.shippingMethod)==null?void 0:nr.methodCode)||""};d(L,ae)});return()=>{a==null||a.off()}},[d]);const h=dr({checkout:"Cart.PriceSummary.checkout",free:"Cart.PriceSummary.total.free",orderSummary:"Cart.PriceSummary.orderSummary",taxToBeDetermined:"Cart.PriceSummary.taxToBeDetermined"}),I=(e==null?void 0:e.hasOutOfStockItems)||o,Z=pr(()=>{!I&&e&&yr(e,ce.locale)},[I,e]),j=!_&&(m!=null&&m.EstimateShipping)?r(le,{name:"EstimateShipping",slot:m.EstimateShipping},"estimateShippingId"):void 0;if(!Object.keys(e??{}).length||(e==null?void 0:e.totalQuantity)===0)return null;const Q=g&&(m!=null&&m.Coupons)?r(le,{name:"Coupons",slot:m.Coupons},"couponsId"):void 0,i=v&&(m!=null&&m.GiftCards)?r(le,{name:"GiftCards",slot:m.GiftCards},"giftCardId"):void 0;return r(_r,{...A,"data-testid":"cart-order-summary",heading:r("div",{children:h.orderSummary}),shipping:j,coupons:Q,giftCards:i,loading:T,updateLineItems:S,appliedGiftCards:(q=e==null?void 0:e.appliedGiftCards)!=null&&q.length?{label:r(mr,{id:"Cart.PriceSummary.giftCard.appliedGiftCards.label",plural:(J=e==null?void 0:e.appliedGiftCards)==null?void 0:J.length,fields:{count:(K=e==null?void 0:e.appliedGiftCards)==null?void 0:K.length}}),price:r(u,{className:"cart-order-summary__price",amount:-l(),currency:(Y=(R=e==null?void 0:e.appliedGiftCards)==null?void 0:R[0])==null?void 0:Y.appliedBalance.currency}),content:(G=e==null?void 0:e.appliedGiftCards)==null?void 0:G.map(V).filter(Boolean)}:void 0,printedCard:{renderContent:!!((M=n==null?void 0:n.printedCard)!=null&&M.value),taxIncluded:B==="INCLUDING_TAX",taxInclAndExcl:B==="INCLUDING_EXCLUDING_TAX",priceExclTax:r(u,{"data-testid":"printed-card",amount:(ue=n==null?void 0:n.printedCard)==null?void 0:ue.value,currency:(oe=n==null?void 0:n.printedCard)==null?void 0:oe.currency}),priceInclTax:r(u,{amount:(se=n==null?void 0:n.printedCardInclTax)==null?void 0:se.value,currency:(me=n==null?void 0:n.printedCardInclTax)==null?void 0:me.currency})},itemsGiftWrapping:{renderContent:!!((de=n==null?void 0:n.giftWrappingForItems)!=null&&de.value),taxIncluded:E==="INCLUDING_TAX",taxInclAndExcl:E==="INCLUDING_EXCLUDING_TAX",priceExclTax:r(u,{amount:(xe=n==null?void 0:n.giftWrappingForItems)==null?void 0:xe.value,currency:(pe=n==null?void 0:n.giftWrappingForItems)==null?void 0:pe.currency}),priceInclTax:r(u,{amount:(Te=n==null?void 0:n.giftWrappingForItemsInclTax)==null?void 0:Te.value,currency:(ge=n==null?void 0:n.giftWrappingForItemsInclTax)==null?void 0:ge.currency})},orderGiftWrapping:{renderContent:!!((he=n==null?void 0:n.giftWrappingForOrder)!=null&&he.value),taxIncluded:E==="INCLUDING_TAX",taxInclAndExcl:E==="INCLUDING_EXCLUDING_TAX",priceExclTax:r(u,{amount:(ye=n==null?void 0:n.giftWrappingForOrder)==null?void 0:ye.value,currency:(Ce=n==null?void 0:n.giftWrappingForOrder)==null?void 0:Ce.currency}),priceInclTax:r(u,{amount:(Se=n==null?void 0:n.giftWrappingForOrderInclTax)==null?void 0:Se.value,currency:(Ie=n==null?void 0:n.giftWrappingForOrderInclTax)==null?void 0:Ie.currency})},subTotal:{taxIncluded:W&&!P,taxExcluded:f,zeroTaxSubtotal:P,priceExcludingTax:(be=t==null?void 0:t.estimatedSubTotal)!=null&&be.excludingTax?r(u,{"data-testid":"subtotal",...(ve=t==null?void 0:t.estimatedSubTotal)==null?void 0:ve.excludingTax}):r(u,{"data-testid":"subtotal",amount:(fe=(_e=e==null?void 0:e.subtotal)==null?void 0:_e.excludingTax)==null?void 0:fe.value,currency:(Ee=(Pe=e==null?void 0:e.subtotal)==null?void 0:Pe.excludingTax)==null?void 0:Ee.currency}),price:!P&&W||!P&&f?(Ne=t==null?void 0:t.estimatedSubTotal)!=null&&Ne.includingTax?r(u,{"data-testid":"subtotal",...(ke=t==null?void 0:t.estimatedSubTotal)==null?void 0:ke.includingTax}):r(u,{"data-testid":"subtotal",amount:(we=e==null?void 0:e.subtotal.includingTax)==null?void 0:we.value,currency:(Ae=e==null?void 0:e.subtotal.includingTax)==null?void 0:Ae.currency}):r(u,{"data-testid":"subtotal",amount:(We=(De=e==null?void 0:e.subtotal)==null?void 0:De.excludingTax)==null?void 0:We.value,currency:(Le=(Be=e==null?void 0:e.subtotal)==null?void 0:Be.excludingTax)==null?void 0:Le.currency})},discounts:(Fe=e==null?void 0:e.appliedDiscounts)==null?void 0:Fe.map(a=>{var c;return{label:a.label,price:r(u,{"data-testid":"summary-discount-total",amount:-a.amount.value,currency:a.amount.currency,sale:!0}),coupon:a!=null&&a.coupon?p("span",{children:[r(ur,{source:br,size:"16"}),(c=a==null?void 0:a.coupon)==null?void 0:c.code]}):void 0}}),taxTotal:_||t&&t.estimatedTaxTotal==null?{price:r("span",{"data-testid":"tax-total-tbd",children:h.taxToBeDetermined})}:{price:t!=null&&t.estimatedTaxTotal?r(u,{"data-testid":"tax-total-estimated",...t==null?void 0:t.estimatedTaxTotal}):r(u,{"data-testid":"tax-total-actual",amount:(Oe=e==null?void 0:e.totalTax)==null?void 0:Oe.value,currency:(Ue=e==null?void 0:e.totalTax)==null?void 0:Ue.currency}),estimated:(!t||!t.estimatedTaxTotal)&&!((Xe=e==null?void 0:e.addresses)!=null&&Xe.shipping)},taxesApplied:_?void 0:s!=null&&s.fullSummary?(Ve=((ze=t==null?void 0:t.estimatedAppliedTaxes)==null?void 0:ze.taxes)||(e==null?void 0:e.appliedTaxes))==null?void 0:Ve.map(a=>({label:a.label,price:r(u,{"data-testid":"applied-taxes",amount:a.amount.value,currency:a.amount.currency})})):void 0,total:{price:t!=null&&t.estimatedGrandTotalPrice?((je=(Ze=t==null?void 0:t.estimatedGrandTotalPrice)==null?void 0:Ze.includingTax)==null?void 0:je.amount)===0?r("span",{"data-testid":"total-including-tax",children:h.free}):r(u,{"data-testid":"total-including-tax-estimated",...(Qe=t==null?void 0:t.estimatedGrandTotalPrice)==null?void 0:Qe.includingTax}):(($e=e==null?void 0:e.total)==null?void 0:$e.includingTax.value)===0?r("span",{"data-testid":"total-including-tax",children:h.free}):r(u,{"data-testid":"total-including-tax-actual",amount:(He=e==null?void 0:e.total)==null?void 0:He.includingTax.value,currency:(qe=e==null?void 0:e.total)==null?void 0:qe.includingTax.currency}),estimated:(!t||!!(t!=null&&t.estimatedTaxTotal))&&!((Je=e==null?void 0:e.addresses)!=null&&Je.shipping),priceWithoutTax:s!=null&&s.grandTotal?t!=null&&t.estimatedAppliedTaxes?((Re=(Ke=t==null?void 0:t.estimatedGrandTotalPrice)==null?void 0:Ke.excludingTax)==null?void 0:Re.amount)===0?r("span",{"data-testid":"total-excluding-tax",children:h.free}):r(u,{"data-testid":"total-excluding-tax",...(Ye=t==null?void 0:t.estimatedGrandTotalPrice)==null?void 0:Ye.excludingTax}):((Ge=e==null?void 0:e.total)==null?void 0:Ge.excludingTax.value)===0?r("span",{"data-testid":"total-excluding-tax",children:h.free}):r(u,{"data-testid":"total-excluding-tax",amount:(Me=e==null?void 0:e.total)==null?void 0:Me.excludingTax.value,currency:(er=e==null?void 0:e.total)==null?void 0:er.excludingTax.currency}):void 0},primaryAction:w&&r(Ir,{"data-testid":"checkout-button",variant:"primary",disabled:I,"aria-disabled":I,href:I?void 0:w({cartId:e.id}),onClick:Z,children:h.checkout}),totalSaved:b?r(u,{amount:(rr=e==null?void 0:e.discount)==null?void 0:rr.value,currency:(tr=e==null?void 0:e.total)==null?void 0:tr.includingTax.currency}):void 0})};Pr.getInitialData=async function(){return gr()};export{Pr as O}; diff --git a/scripts/__dropins__/storefront-cart/chunks/OrderSummaryLine.js b/scripts/__dropins__/storefront-cart/chunks/OrderSummaryLine.js index ff228c6915..906867fae6 100644 --- a/scripts/__dropins__/storefront-cart/chunks/OrderSummaryLine.js +++ b/scripts/__dropins__/storefront-cart/chunks/OrderSummaryLine.js @@ -1,3 +1,3 @@ /*! Copyright 2025 Adobe All Rights Reserved. */ -import{jsxs as _,jsx as n}from"@dropins/tools/preact-jsx-runtime.js";import{classes as c,VComponent as y}from"@dropins/tools/lib.js";import"@dropins/tools/components.js";/* empty css */import"@dropins/tools/preact-compat.js";const u=({label:e,price:a,classSuffixes:s=[],labelClassSuffix:r,testId:m,children:o,...t})=>{const d="cart-order-summary__label",p="cart-order-summary__price";return _("div",{...t,...m?{"data-testid":m}:{},className:c(["cart-order-summary__entry",...s.map(i=>"cart-order-summary__"+i)]),children:[n("span",{className:c([d,...r?[d+"--"+r]:[]]),children:e}),n(y,{node:a,className:c([p,...r?[p+"--"+r]:[]])}),o]})},L=({label:e,price:a,classSuffixes:s=[],labelClassSuffix:r,testId:m,children:o,...t})=>n(u,{...t,label:e,price:a,classSuffixes:s,labelClassSuffix:r,testId:m,children:o});export{L as O}; +import{jsxs as _,jsx as n}from"@dropins/tools/preact-jsx-runtime.js";import{classes as c,VComponent as y}from"@dropins/tools/lib.js";import"@dropins/tools/components.js";/* empty css */import"@dropins/tools/preact-compat.js";import"@dropins/tools/preact-hooks.js";const $=({label:e,price:a,classSuffixes:o=[],labelClassSuffix:r,testId:m,children:s,...t})=>{const p="cart-order-summary__label",d="cart-order-summary__price";return _("div",{...t,...m?{"data-testid":m}:{},className:c(["cart-order-summary__entry",...o.map(i=>`cart-order-summary__${i}`)]),children:[n("span",{className:c([p,...r?[`${p}--${r}`]:[]]),children:e}),n(y,{node:a,className:c([d,...r?[`${d}--${r}`]:[]])}),s]})},L=({label:e,price:a,classSuffixes:o=[],labelClassSuffix:r,testId:m,children:s,...t})=>n($,{...t,label:e,price:a,classSuffixes:o,labelClassSuffix:r,testId:m,children:s});export{L as O}; diff --git a/scripts/__dropins__/storefront-cart/chunks/refreshCart.js b/scripts/__dropins__/storefront-cart/chunks/refreshCart.js index cec71fc643..025c3b0a51 100644 --- a/scripts/__dropins__/storefront-cart/chunks/refreshCart.js +++ b/scripts/__dropins__/storefront-cart/chunks/refreshCart.js @@ -1,10 +1,10 @@ /*! Copyright 2025 Adobe All Rights Reserved. */ -import{s as i,d as A,f as g,h as y}from"./resetCart.js";import{events as l}from"@dropins/tools/event-bus.js";import{Initializer as R,merge as w}from"@dropins/tools/lib.js";import{a as G}from"./persisted-data.js";import{CART_FRAGMENT as d}from"../fragments.js";const I=new R({init:async r=>{const t={disableGuestCart:!1,...r};I.config.setConfig(t),f().catch(console.error)},listeners:()=>[l.on("authenticated",r=>{i.authenticated&&!r?l.emit("cart/reset",void 0):r&&!i.authenticated&&(i.authenticated=r,f().catch(console.error))},{eager:!0}),l.on("locale",async r=>{r!==i.locale&&(i.locale=r,f().catch(console.error))}),l.on("cart/reset",()=>{A().catch(console.error),l.emit("cart/data",null)}),l.on("cart/data",r=>{G(r)}),l.on("checkout/updated",r=>{r&&tr().catch(console.error)})]}),S=I.config;function b(r){var n,e,c,u,s,a,o,_,p,h;if(!r)return null;const t={id:r.id,totalQuantity:z(r),totalUniqueItems:r.itemsV2.items.length,errors:D(r==null?void 0:r.itemsV2),items:v(r==null?void 0:r.itemsV2),miniCartMaxItems:v(r==null?void 0:r.itemsV2).slice(0,((n=i.config)==null?void 0:n.miniCartMaxItemsDisplay)??10),total:{includingTax:{value:r.prices.grand_total.value,currency:r.prices.grand_total.currency},excludingTax:{value:r.prices.grand_total_excluding_tax.value,currency:r.prices.grand_total_excluding_tax.currency}},discount:x(r.prices.discounts,r.prices.grand_total.currency),subtotal:{excludingTax:{value:(e=r.prices.subtotal_excluding_tax)==null?void 0:e.value,currency:(c=r.prices.subtotal_excluding_tax)==null?void 0:c.currency},includingTax:{value:(u=r.prices.subtotal_including_tax)==null?void 0:u.value,currency:(s=r.prices.subtotal_including_tax)==null?void 0:s.currency},includingDiscountOnly:{value:(a=r.prices.subtotal_with_discount_excluding_tax)==null?void 0:a.value,currency:(o=r.prices.subtotal_with_discount_excluding_tax)==null?void 0:o.currency}},appliedTaxes:T(r.prices.applied_taxes),totalTax:x(r.prices.applied_taxes,r.prices.grand_total.currency),appliedDiscounts:T(r.prices.discounts),isVirtual:r.is_virtual,addresses:{shipping:r.shipping_addresses&&Q(r)},isGuestCart:!i.authenticated,hasOutOfStockItems:q(r),hasFullyOutOfStockItems:V(r),appliedCoupons:r.applied_coupons};return w(t,(h=(p=(_=S.getConfig().models)==null?void 0:_.CartModel)==null?void 0:p.transformer)==null?void 0:h.call(p,r))}function x(r,t){return r!=null&&r.length?r.reduce((n,e)=>({value:n.value+e.amount.value,currency:e.amount.currency}),{value:0,currency:t}):{value:0,currency:t}}function k(r,t){var n,e,c,u;return{src:r!=null&&r.useConfigurableParentThumbnail?t.product.thumbnail.url:((e=(n=t.configured_variant)==null?void 0:n.thumbnail)==null?void 0:e.url)||t.product.thumbnail.url,alt:r!=null&&r.useConfigurableParentThumbnail?t.product.thumbnail.label:((u=(c=t.configured_variant)==null?void 0:c.thumbnail)==null?void 0:u.label)||t.product.thumbnail.label}}function U(r){var t,n,e,c;return r.__typename==="ConfigurableCartItem"?{value:(n=(t=r.configured_variant)==null?void 0:t.price_range)==null?void 0:n.maximum_price.regular_price.value,currency:(c=(e=r.configured_variant)==null?void 0:e.price_range)==null?void 0:c.maximum_price.regular_price.currency}:r.__typename==="GiftCardCartItem"?{value:r.prices.price.value,currency:r.prices.price.currency}:{value:r.prices.original_item_price.value,currency:r.prices.original_item_price.currency}}function M(r){var t,n,e;return r.__typename==="ConfigurableCartItem"?((n=(t=r.configured_variant)==null?void 0:t.price_range)==null?void 0:n.maximum_price.discount.amount_off)>0:((e=r.product.price_range)==null?void 0:e.maximum_price.discount.amount_off)>0}function v(r){var n;if(!((n=r==null?void 0:r.items)!=null&&n.length))return[];const t=i.config;return r.items.map(e=>{var c,u,s,a;return{itemType:e.__typename,uid:e.uid,url:{urlKey:e.product.url_key,categories:e.product.categories.map(o=>o.url_key)},canonicalUrl:e.product.canonical_url,categories:e.product.categories.map(o=>o.name),quantity:e.quantity,sku:K(e),topLevelSku:e.product.sku,name:e.product.name,image:k(t,e),price:{value:e.prices.price.value,currency:e.prices.price.currency},taxedPrice:{value:e.prices.price_including_tax.value,currency:e.prices.price_including_tax.currency},fixedProductTaxes:e.prices.fixed_product_taxes,rowTotal:{value:e.prices.row_total.value,currency:e.prices.row_total.currency},rowTotalIncludingTax:{value:e.prices.row_total_including_tax.value,currency:e.prices.row_total_including_tax.currency},links:$(e.links),total:{value:(c=e.prices.original_row_total)==null?void 0:c.value,currency:(u=e.prices.original_row_total)==null?void 0:u.currency},discount:{value:e.prices.total_item_discount.value,currency:e.prices.total_item_discount.currency,label:(s=e.prices.discounts)==null?void 0:s.map(o=>o.label)},regularPrice:U(e),discounted:M(e),bundleOptions:e.__typename==="BundleCartItem"?N(e.bundle_options):null,selectedOptions:P(e.configurable_options),customizableOptions:F(e.customizable_options),sender:e.__typename==="GiftCardCartItem"?e.sender_name:null,senderEmail:e.__typename==="GiftCardCartItem"?e.sender_email:null,recipient:e.__typename==="GiftCardCartItem"?e.recipient_name:null,recipientEmail:e.__typename==="GiftCardCartItem"?e.recipient_email:null,message:e.__typename==="GiftCardCartItem"?e.message:null,discountedTotal:{value:e.prices.row_total.value,currency:e.prices.row_total.currency},onlyXLeftInStock:e.__typename==="ConfigurableCartItem"?(a=e.configured_variant)==null?void 0:a.only_x_left_in_stock:e.product.only_x_left_in_stock,lowInventory:e.is_available&&e.product.only_x_left_in_stock!==null,insufficientQuantity:(e.__typename==="ConfigurableCartItem"?e.configured_variant:e.product).stock_status==="IN_STOCK"&&!e.is_available,outOfStock:e.product.stock_status==="OUT_OF_STOCK",stockLevel:L(e),discountPercentage:X(e),savingsAmount:Y(e),productAttributes:j(e)}})}function D(r){var n;const t=(n=r==null?void 0:r.items)==null?void 0:n.reduce((e,c)=>{var u;return(u=c.errors)==null||u.forEach(s=>{e.push({uid:c.uid,text:s.message})}),e},[]);return t!=null&&t.length?t:null}function T(r){return r!=null&&r.length?r.map(t=>({amount:{value:t.amount.value,currency:t.amount.currency},label:t.label,coupon:t.coupon})):[]}function N(r){const t=r==null?void 0:r.map(e=>({uid:e.uid,label:e.label,value:e.values.map(c=>c.label).join(", ")})),n={};return t==null||t.forEach(e=>{n[e.label]=e.value}),Object.keys(n).length>0?n:null}function P(r){const t=r==null?void 0:r.map(e=>({uid:e.configurable_product_option_uid,label:e.option_label,value:e.value_label})),n={};return t==null||t.forEach(e=>{n[e.label]=e.value}),Object.keys(n).length>0?n:null}function F(r){const t=r==null?void 0:r.map(e=>({uid:e.customizable_option_uid,label:e.label,type:e.type,values:e.values.map(c=>({uid:c.customizable_option_value_uid,label:c.label,value:c.value}))})),n={};return t==null||t.forEach(e=>{var c;switch(e.type){case"field":case"area":case"date_time":n[e.label]=e.values[0].value;break;case"radio":case"drop_down":n[e.label]=e.values[0].label;break;case"multiple":case"checkbox":n[e.label]=e.values.reduce((_,p)=>_?`${_}, ${p.label}`:p.label,"");break;case"file":const u=new DOMParser,s=e.values[0].value,o=((c=u.parseFromString(s,"text/html").querySelector("a"))==null?void 0:c.textContent)||"";n[e.label]=o;break}}),n}function z(r){var t,n;return((t=i.config)==null?void 0:t.cartSummaryDisplayTotal)===0?r.itemsV2.items.length:((n=i.config)==null?void 0:n.cartSummaryDisplayTotal)===1?r.total_quantity:r.itemsV2.items.length}function $(r){return(r==null?void 0:r.length)>0?{count:r.length,result:r.map(t=>t.title).join(", ")}:null}function Q(r){var t,n,e,c;return(t=r.shipping_addresses)!=null&&t.length?(n=r.shipping_addresses)==null?void 0:n.map(u=>({countryCode:u.country.code,zipCode:u.postcode,regionCode:u.region.code})):(e=r.addresses)!=null&&e.length?(c=r.addresses)==null?void 0:c.filter(u=>u.default_shipping).map(u=>{var s;return u.default_shipping&&{countryCode:u.country_code,zipCode:u.postcode,regionCode:(s=u.region)==null?void 0:s.region_code}}):null}function q(r){var t,n;return(n=(t=r==null?void 0:r.itemsV2)==null?void 0:t.items)==null?void 0:n.some(e=>{var c;return((c=e==null?void 0:e.product)==null?void 0:c.stock_status)==="OUT_OF_STOCK"||e.product.stock_status==="IN_STOCK"&&!e.is_available})}function L(r){if(!r.not_available_message)return null;const t=r.not_available_message.match(/-?\d+/);return t?parseInt(t[0]):"noNumber"}function V(r){var t,n;return(n=(t=r==null?void 0:r.itemsV2)==null?void 0:t.items)==null?void 0:n.some(e=>{var c;return((c=e==null?void 0:e.product)==null?void 0:c.stock_status)==="OUT_OF_STOCK"})}function X(r){var n,e,c,u,s,a,o,_;let t;if(r.__typename==="ConfigurableCartItem")t=(u=(c=(e=(n=r==null?void 0:r.configured_variant)==null?void 0:n.price_range)==null?void 0:e.maximum_price)==null?void 0:c.discount)==null?void 0:u.percent_off;else{if(r.__typename==="BundleCartItem")return;t=(_=(o=(a=(s=r==null?void 0:r.product)==null?void 0:s.price_range)==null?void 0:a.maximum_price)==null?void 0:o.discount)==null?void 0:_.percent_off}if(t!==0)return Math.round(t)}function K(r){var t;return r.__typename==="ConfigurableCartItem"?r.configured_variant.sku:((t=r.product)==null?void 0:t.variantSku)||r.product.sku}function Y(r){var e,c,u,s,a,o;let t,n;if(t=((c=(e=r==null?void 0:r.prices)==null?void 0:e.original_row_total)==null?void 0:c.value)-((s=(u=r==null?void 0:r.prices)==null?void 0:u.row_total)==null?void 0:s.value),n=(o=(a=r==null?void 0:r.prices)==null?void 0:a.row_total)==null?void 0:o.currency,t!==0)return{value:t,currency:n}}function j(r){var t,n,e;return(e=(n=(t=r==null?void 0:r.product)==null?void 0:t.custom_attributesV2)==null?void 0:n.items)==null?void 0:e.map(c=>{const u=c.code.split("_").map(s=>s.charAt(0).toUpperCase()+s.slice(1)).join(" ");return{...c,code:u}})}function B(r){if(!r)return null;const t=n=>{switch(n){case 1:return"EXCLUDING_TAX";case 2:return"INCLUDING_TAX";case 3:return"INCLUDING_EXCLUDING_TAX";default:return"EXCLUDING_TAX"}};return{displayMiniCart:r.minicart_display,miniCartMaxItemsDisplay:r.minicart_max_items,cartExpiresInDays:r.cart_expires_in_days,cartSummaryDisplayTotal:r.cart_summary_display_quantity,cartSummaryMaxItems:r.max_items_in_order_summary,defaultCountry:r.default_country,categoryFixedProductTaxDisplaySetting:r.category_fixed_product_tax_display_setting,productFixedProductTaxDisplaySetting:r.product_fixed_product_tax_display_setting,salesFixedProductTaxDisplaySetting:r.sales_fixed_product_tax_display_setting,shoppingCartDisplaySetting:{zeroTax:r.shopping_cart_display_zero_tax,subtotal:t(r.shopping_cart_display_subtotal),price:t(r.shopping_cart_display_price),shipping:t(r.shopping_cart_display_shipping),fullSummary:r.shopping_cart_display_full_summary,grandTotal:r.shopping_cart_display_grand_total,taxGiftWrapping:r.shopping_cart_display_tax_gift_wrapping},useConfigurableParentThumbnail:r.configurable_thumbnail_source==="parent"}}const C=` +import{s,d as V,f as h,h as x}from"./resetCart.js";import{events as f}from"@dropins/tools/event-bus.js";import{Initializer as W,merge as Q}from"@dropins/tools/lib.js";import{a as q}from"./persisted-data.js";import{CART_FRAGMENT as S}from"../fragments.js";const P=new W({init:async r=>{const n={disableGuestCart:!1,...r};P.config.setConfig(n),b().catch(console.error)},listeners:()=>[f.on("authenticated",r=>{s.authenticated&&!r?f.emit("cart/reset",void 0):r&&!s.authenticated&&(s.authenticated=r,b().catch(console.error))},{eager:!0}),f.on("locale",async r=>{r!==s.locale&&(s.locale=r,b().catch(console.error))}),f.on("cart/reset",()=>{V().catch(console.error),f.emit("cart/data",null)}),f.on("cart/data",r=>{q(r)}),f.on("checkout/updated",r=>{r&&Cr().catch(console.error)})]}),F=P.config;function w(r){var c,e,u,l,t,a,_,p,g,i,y,d,C,v,m,E;if(!r)return null;const n={appliedGiftCards:((c=r==null?void 0:r.applied_gift_cards)==null?void 0:c.map(o=>({code:o.code??"",appliedBalance:{value:o.applied_balance.value??0,currency:o.applied_balance.currency??"USD"},currentBalance:{value:o.current_balance.value??0,currency:o.current_balance.currency??"USD"},expirationDate:o.expiration_date??""})))??[],id:r.id,totalQuantity:er(r),totalUniqueItems:r.itemsV2.items.length,totalGiftOptions:L((e=r==null?void 0:r.prices)==null?void 0:e.gift_options),giftReceiptIncluded:(r==null?void 0:r.gift_receipt_included)??!1,printedCardIncluded:(r==null?void 0:r.printed_card_included)??!1,cartGiftWrapping:((u=r==null?void 0:r.available_gift_wrappings)==null?void 0:u.map(o=>{var I,U,A,D,R;return{design:o.design??"",uid:o.uid,selected:((I=r==null?void 0:r.gift_wrapping)==null?void 0:I.uid)===o.uid,image:{url:((U=o==null?void 0:o.image)==null?void 0:U.url)??"",label:((A=o.image)==null?void 0:A.label)??""},price:{currency:((D=o==null?void 0:o.price)==null?void 0:D.currency)??"USD",value:((R=o==null?void 0:o.price)==null?void 0:R.value)??0}}}))??[],giftMessage:{senderName:((l=r==null?void 0:r.gift_message)==null?void 0:l.from)??"",recipientName:((t=r==null?void 0:r.gift_message)==null?void 0:t.to)??"",message:((a=r==null?void 0:r.gift_message)==null?void 0:a.message)??""},errors:O(r==null?void 0:r.itemsV2),items:N(r==null?void 0:r.itemsV2),miniCartMaxItems:N(r==null?void 0:r.itemsV2).slice(0,((_=s.config)==null?void 0:_.miniCartMaxItemsDisplay)??10),total:{includingTax:{value:r.prices.grand_total.value,currency:r.prices.grand_total.currency},excludingTax:{value:r.prices.grand_total_excluding_tax.value,currency:r.prices.grand_total_excluding_tax.currency}},discount:M(r.prices.discounts,r.prices.grand_total.currency),subtotal:{excludingTax:{value:(p=r.prices.subtotal_excluding_tax)==null?void 0:p.value,currency:(g=r.prices.subtotal_excluding_tax)==null?void 0:g.currency},includingTax:{value:(i=r.prices.subtotal_including_tax)==null?void 0:i.value,currency:(y=r.prices.subtotal_including_tax)==null?void 0:y.currency},includingDiscountOnly:{value:(d=r.prices.subtotal_with_discount_excluding_tax)==null?void 0:d.value,currency:(C=r.prices.subtotal_with_discount_excluding_tax)==null?void 0:C.currency}},appliedTaxes:k(r.prices.applied_taxes),totalTax:M(r.prices.applied_taxes,r.prices.grand_total.currency),appliedDiscounts:k(r.prices.discounts),isVirtual:r.is_virtual,addresses:{shipping:r.shipping_addresses&&cr(r)},isGuestCart:!s.authenticated,hasOutOfStockItems:ur(r),hasFullyOutOfStockItems:ir(r),appliedCoupons:r.applied_coupons};return Q(n,(E=(m=(v=F.getConfig().models)==null?void 0:v.CartModel)==null?void 0:m.transformer)==null?void 0:E.call(m,r))}function L(r){var n,c,e,u,l,t,a,_,p,g,i,y;return{giftWrappingForItems:{value:((n=r==null?void 0:r.gift_wrapping_for_items)==null?void 0:n.value)??0,currency:((c=r==null?void 0:r.gift_wrapping_for_items)==null?void 0:c.currency)??"USD"},giftWrappingForItemsInclTax:{value:((e=r==null?void 0:r.gift_wrapping_for_items_incl_tax)==null?void 0:e.value)??0,currency:((u=r==null?void 0:r.gift_wrapping_for_items_incl_tax)==null?void 0:u.currency)??"USD"},giftWrappingForOrder:{value:((l=r==null?void 0:r.gift_wrapping_for_order)==null?void 0:l.value)??0,currency:((t=r==null?void 0:r.gift_wrapping_for_order)==null?void 0:t.currency)??"USD"},giftWrappingForOrderInclTax:{value:((a=r==null?void 0:r.gift_wrapping_for_order_incl_tax)==null?void 0:a.value)??0,currency:((_=r==null?void 0:r.gift_wrapping_for_order_incl_tax)==null?void 0:_.currency)??"USD"},printedCard:{value:((p=r==null?void 0:r.printed_card)==null?void 0:p.value)??0,currency:((g=r==null?void 0:r.printed_card)==null?void 0:g.currency)??"USD"},printedCardInclTax:{value:((i=r==null?void 0:r.printed_card_incl_tax)==null?void 0:i.value)??0,currency:((y=r==null?void 0:r.printed_card_incl_tax)==null?void 0:y.currency)??"USD"}}}function M(r,n){return r!=null&&r.length?r.reduce((c,e)=>({value:c.value+e.amount.value,currency:e.amount.currency}),{value:0,currency:n}):{value:0,currency:n}}function X(r,n){var c,e,u,l;return{src:r!=null&&r.useConfigurableParentThumbnail?n.product.thumbnail.url:((e=(c=n.configured_variant)==null?void 0:c.thumbnail)==null?void 0:e.url)||n.product.thumbnail.url,alt:r!=null&&r.useConfigurableParentThumbnail?n.product.thumbnail.label:((l=(u=n.configured_variant)==null?void 0:u.thumbnail)==null?void 0:l.label)||n.product.thumbnail.label}}function B(r){var n,c,e,u;return r.__typename==="ConfigurableCartItem"?{value:(c=(n=r.configured_variant)==null?void 0:n.price_range)==null?void 0:c.maximum_price.regular_price.value,currency:(u=(e=r.configured_variant)==null?void 0:e.price_range)==null?void 0:u.maximum_price.regular_price.currency}:r.__typename==="GiftCardCartItem"?{value:r.prices.price.value,currency:r.prices.price.currency}:{value:r.prices.original_item_price.value,currency:r.prices.original_item_price.currency}}function K(r){var n,c,e;return r.__typename==="ConfigurableCartItem"?((c=(n=r.configured_variant)==null?void 0:n.price_range)==null?void 0:c.maximum_price.discount.amount_off)>0:((e=r.product.price_range)==null?void 0:e.maximum_price.discount.amount_off)>0}function Y(r){var n,c,e;return{senderName:((n=r==null?void 0:r.gift_message)==null?void 0:n.from)??"",recipientName:((c=r==null?void 0:r.gift_message)==null?void 0:c.to)??"",message:((e=r==null?void 0:r.gift_message)==null?void 0:e.message)??""}}function j(r){return{currency:(r==null?void 0:r.currency)??"USD",value:(r==null?void 0:r.value)??0}}function N(r){var c;if(!((c=r==null?void 0:r.items)!=null&&c.length))return[];const n=s.config;return r.items.map(e=>{var u,l,t,a,_,p,g;return{giftWrappingAvailable:((u=e==null?void 0:e.product)==null?void 0:u.gift_wrapping_available)??!1,giftWrappingPrice:j((l=e==null?void 0:e.product)==null?void 0:l.gift_wrapping_price),giftMessage:Y(e),productGiftWrapping:((t=e==null?void 0:e.available_gift_wrapping)==null?void 0:t.map(i=>{var y,d,C,v,m;return{design:i.design??"",uid:i.uid,selected:((y=e.gift_wrapping)==null?void 0:y.uid)===i.uid,image:{url:((d=i==null?void 0:i.image)==null?void 0:d.url)??"",label:((C=i.image)==null?void 0:C.label)??""},price:{currency:((v=i==null?void 0:i.price)==null?void 0:v.currency)??"USD",value:((m=i==null?void 0:i.price)==null?void 0:m.value)??0}}}))??[],itemType:e.__typename,uid:e.uid,giftMessageAvailable:H(e.product.gift_message_available),url:{urlKey:e.product.url_key,categories:e.product.categories.map(i=>i.url_key)},canonicalUrl:e.product.canonical_url,categories:e.product.categories.map(i=>i.name),quantity:e.quantity,sku:sr(e),topLevelSku:e.product.sku,name:e.product.name,image:X(n,e),price:{value:e.prices.price.value,currency:e.prices.price.currency},taxedPrice:{value:e.prices.price_including_tax.value,currency:e.prices.price_including_tax.currency},fixedProductTaxes:e.prices.fixed_product_taxes,rowTotal:{value:e.prices.row_total.value,currency:e.prices.row_total.currency},rowTotalIncludingTax:{value:e.prices.row_total_including_tax.value,currency:e.prices.row_total_including_tax.currency},links:nr(e.links),total:{value:(a=e.prices.original_row_total)==null?void 0:a.value,currency:(_=e.prices.original_row_total)==null?void 0:_.currency},discount:{value:e.prices.total_item_discount.value,currency:e.prices.total_item_discount.currency,label:(p=e.prices.discounts)==null?void 0:p.map(i=>i.label)},regularPrice:B(e),discounted:K(e),bundleOptions:e.__typename==="BundleCartItem"?J(e.bundle_options):null,selectedOptions:Z(e.configurable_options),customizableOptions:rr(e.customizable_options),sender:e.__typename==="GiftCardCartItem"?e.sender_name:null,senderEmail:e.__typename==="GiftCardCartItem"?e.sender_email:null,recipient:e.__typename==="GiftCardCartItem"?e.recipient_name:null,recipientEmail:e.__typename==="GiftCardCartItem"?e.recipient_email:null,message:e.__typename==="GiftCardCartItem"?e.message:null,discountedTotal:{value:e.prices.row_total.value,currency:e.prices.row_total.currency},onlyXLeftInStock:e.__typename==="ConfigurableCartItem"?(g=e.configured_variant)==null?void 0:g.only_x_left_in_stock:e.product.only_x_left_in_stock,lowInventory:e.is_available&&e.product.only_x_left_in_stock!==null,insufficientQuantity:(e.__typename==="ConfigurableCartItem"?e.configured_variant:e.product).stock_status==="IN_STOCK"&&!e.is_available,outOfStock:e.product.stock_status==="OUT_OF_STOCK",stockLevel:lr(e),discountPercentage:tr(e),savingsAmount:or(e),productAttributes:_r(e)}})}function H(r){switch(+r){case 0:return!1;case 1:return!0;case 2:return null;default:return!1}}function O(r){var c;const n=(c=r==null?void 0:r.items)==null?void 0:c.reduce((e,u)=>{var l;return(l=u.errors)==null||l.forEach(t=>{e.push({uid:u.uid,text:t.message})}),e},[]);return n!=null&&n.length?n:null}function k(r){return r!=null&&r.length?r.map(n=>({amount:{value:n.amount.value,currency:n.amount.currency},label:n.label,coupon:n.coupon})):[]}function J(r){const n=r==null?void 0:r.map(e=>({uid:e.uid,label:e.label,value:e.values.map(u=>u.label).join(", ")})),c={};return n==null||n.forEach(e=>{c[e.label]=e.value}),Object.keys(c).length>0?c:null}function Z(r){const n=r==null?void 0:r.map(e=>({uid:e.configurable_product_option_uid,label:e.option_label,value:e.value_label})),c={};return n==null||n.forEach(e=>{c[e.label]=e.value}),Object.keys(c).length>0?c:null}function rr(r){const n=r==null?void 0:r.map(e=>({uid:e.customizable_option_uid,label:e.label,type:e.type,values:e.values.map(u=>({uid:u.customizable_option_value_uid,label:u.label,value:u.value}))})),c={};return n==null||n.forEach(e=>{var u;switch(e.type){case"field":case"area":case"date_time":c[e.label]=e.values[0].value;break;case"radio":case"drop_down":c[e.label]=e.values[0].label;break;case"multiple":case"checkbox":c[e.label]=e.values.reduce((p,g)=>p?`${p}, ${g.label}`:g.label,"");break;case"file":const l=new DOMParser,t=e.values[0].value,_=((u=l.parseFromString(t,"text/html").querySelector("a"))==null?void 0:u.textContent)||"";c[e.label]=_;break}}),c}function er(r){var n,c;return((n=s.config)==null?void 0:n.cartSummaryDisplayTotal)===0?r.itemsV2.items.length:((c=s.config)==null?void 0:c.cartSummaryDisplayTotal)===1?r.total_quantity:r.itemsV2.items.length}function nr(r){return(r==null?void 0:r.length)>0?{count:r.length,result:r.map(n=>n.title).join(", ")}:null}function cr(r){var n,c,e,u;return(n=r.shipping_addresses)!=null&&n.length?(c=r.shipping_addresses)==null?void 0:c.map(l=>({countryCode:l.country.code,zipCode:l.postcode,regionCode:l.region.code})):(e=r.addresses)!=null&&e.length?(u=r.addresses)==null?void 0:u.filter(l=>l.default_shipping).map(l=>{var t;return l.default_shipping&&{countryCode:l.country_code,zipCode:l.postcode,regionCode:(t=l.region)==null?void 0:t.region_code}}):null}function ur(r){var n,c;return(c=(n=r==null?void 0:r.itemsV2)==null?void 0:n.items)==null?void 0:c.some(e=>{var u;return((u=e==null?void 0:e.product)==null?void 0:u.stock_status)==="OUT_OF_STOCK"||e.product.stock_status==="IN_STOCK"&&!e.is_available})}function lr(r){if(!r.not_available_message)return null;const n=r.not_available_message.match(/-?\d+/);return n?parseInt(n[0]):"noNumber"}function ir(r){var n,c;return(c=(n=r==null?void 0:r.itemsV2)==null?void 0:n.items)==null?void 0:c.some(e=>{var u;return((u=e==null?void 0:e.product)==null?void 0:u.stock_status)==="OUT_OF_STOCK"})}function tr(r){var c,e,u,l,t,a,_,p;let n;if(r.__typename==="ConfigurableCartItem")n=(l=(u=(e=(c=r==null?void 0:r.configured_variant)==null?void 0:c.price_range)==null?void 0:e.maximum_price)==null?void 0:u.discount)==null?void 0:l.percent_off;else{if(r.__typename==="BundleCartItem")return;n=(p=(_=(a=(t=r==null?void 0:r.product)==null?void 0:t.price_range)==null?void 0:a.maximum_price)==null?void 0:_.discount)==null?void 0:p.percent_off}if(n!==0)return Math.round(n)}function sr(r){var n;return r.__typename==="ConfigurableCartItem"?r.configured_variant.sku:((n=r.product)==null?void 0:n.variantSku)||r.product.sku}function or(r){var e,u,l,t,a,_;let n,c;if(n=((u=(e=r==null?void 0:r.prices)==null?void 0:e.original_row_total)==null?void 0:u.value)-((t=(l=r==null?void 0:r.prices)==null?void 0:l.row_total)==null?void 0:t.value),c=(_=(a=r==null?void 0:r.prices)==null?void 0:a.row_total)==null?void 0:_.currency,n!==0)return{value:n,currency:c}}function _r(r){var n,c,e;return(e=(c=(n=r==null?void 0:r.product)==null?void 0:n.custom_attributesV2)==null?void 0:c.items)==null?void 0:e.map(u=>{const l=u.code.split("_").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ");return{...u,code:l}})}function ar(r){var e,u;if(!r)return null;const n=l=>{switch(l){case 1:return"EXCLUDING_TAX";case 2:return"INCLUDING_TAX";case 3:return"INCLUDING_EXCLUDING_TAX";default:return"EXCLUDING_TAX"}},c=l=>{switch(+l){case 0:return!1;case 1:return!0;case 2:return null;default:return!1}};return{displayMiniCart:r.minicart_display,miniCartMaxItemsDisplay:r.minicart_max_items,cartExpiresInDays:r.cart_expires_in_days,cartSummaryDisplayTotal:r.cart_summary_display_quantity,cartSummaryMaxItems:r.max_items_in_order_summary,defaultCountry:r.default_country,categoryFixedProductTaxDisplaySetting:r.category_fixed_product_tax_display_setting,productFixedProductTaxDisplaySetting:r.product_fixed_product_tax_display_setting,salesFixedProductTaxDisplaySetting:r.sales_fixed_product_tax_display_setting,shoppingCartDisplaySetting:{zeroTax:r.shopping_cart_display_zero_tax,subtotal:n(r.shopping_cart_display_subtotal),price:n(r.shopping_cart_display_price),shipping:n(r.shopping_cart_display_shipping),fullSummary:r.shopping_cart_display_full_summary,grandTotal:r.shopping_cart_display_grand_total,taxGiftWrapping:r.shopping_cart_display_tax_gift_wrapping},useConfigurableParentThumbnail:r.configurable_thumbnail_source==="parent",allowGiftWrappingOnOrder:c(r==null?void 0:r.allow_gift_wrapping_on_order),allowGiftWrappingOnOrderItems:c(r==null?void 0:r.allow_gift_wrapping_on_order_items),allowGiftMessageOnOrder:c(r==null?void 0:r.allow_order),allowGiftMessageOnOrderItems:c(r==null?void 0:r.allow_items),allowGiftReceipt:!!+(r==null?void 0:r.allow_gift_receipt),allowPrintedCard:!!+(r==null?void 0:r.allow_printed_card),printedCardPrice:{currency:((e=r==null?void 0:r.printed_card_priceV2)==null?void 0:e.currency)??"",value:((u=r==null?void 0:r.printed_card_priceV2)==null?void 0:u.value)!=null?+r.printed_card_priceV2.value:0},cartGiftWrapping:n(+r.cart_gift_wrapping),cartPrintedCard:n(+r.cart_printed_card)}}const G=` $pageSize: Int! = 100, $currentPage: Int! = 1, $itemsSortInput: QuoteItemsSortInput! = {field: CREATED_AT, order: DESC} -`,H=` +`,pr=` fragment CUSTOMER_FRAGMENT on Customer { addresses { default_shipping @@ -17,10 +17,10 @@ import{s as i,d as A,f as g,h as y}from"./resetCart.js";import{events as l}from" } } } -`,W=` +`,gr=` query GUEST_CART_QUERY( $cartId: String!, - ${C} + ${G} ) { cart(cart_id: $cartId){ @@ -28,10 +28,10 @@ import{s as i,d as A,f as g,h as y}from"./resetCart.js";import{events as l}from" } } - ${d} -`,J=` + ${S} +`,fr=` query CUSTOMER_CART_QUERY( - ${C} + ${G} ) { customer { @@ -43,13 +43,13 @@ import{s as i,d as A,f as g,h as y}from"./resetCart.js";import{events as l}from" } } - ${H} - ${d} -`,m=async()=>{const r=i.authenticated,t=i.cartId;if(r)return g(J,{method:"POST"}).then(({errors:n,data:e})=>{if(n)return y(n);const c={...e.cart,...e.customer};return b(c)});if(!t)throw new Error("No cart ID found");return g(W,{method:"POST",cache:"no-cache",variables:{cartId:t}}).then(({errors:n,data:e})=>n?y(n):b(e.cart))},Z=` + ${pr} + ${S} +`,T=async()=>{const r=s.authenticated,n=s.cartId;if(r)return h(fr,{method:"POST"}).then(({errors:c,data:e})=>{if(c)return x(c);const u={...e.cart,...e.customer};return w(u)});if(!n)throw new Error("No cart ID found");return h(gr,{method:"POST",cache:"no-cache",variables:{cartId:n}}).then(({errors:c,data:e})=>c?x(c):w(e.cart))},yr=` mutation MERGE_CARTS_MUTATION( $guestCartId: String!, $customerCartId: String!, - ${C} + ${G} ) { mergeCarts( source_cart_id: $guestCartId, @@ -59,13 +59,13 @@ import{s as i,d as A,f as g,h as y}from"./resetCart.js";import{events as l}from" } } - ${d} -`,f=async()=>{if(i.initializing)return null;i.initializing=!0,i.config||(i.config=await er());const r=i.authenticated?await E():await O();return l.emit("cart/initialized",r),l.emit("cart/data",r),i.initializing=!1,r};async function E(){const r=i.cartId,t=await m();return t?(i.cartId=t.id,!r||t.id===r?t:await g(Z,{variables:{guestCartId:r,customerCartId:t.id}}).then(()=>m()).then(n=>{const e={oldCartItems:t.items,newCart:n};return l.emit("cart/merged",e),n}).catch(()=>(console.error("Could not merge carts"),t))):null}async function O(){if(S.getConfig().disableGuestCart===!0||!i.cartId)return null;try{return await m()}catch(r){return console.error(r),null}}const rr=` + ${S} +`,b=async()=>{if(s.initializing)return null;s.initializing=!0,s.config||(s.config=await dr());const r=s.authenticated?await z():await $();return f.emit("cart/initialized",r),f.emit("cart/data",r),s.initializing=!1,r};async function z(){const r=s.cartId,n=await T();return n?(s.cartId=n.id,!r||n.id===r?n:await h(yr,{variables:{guestCartId:r,customerCartId:n.id}}).then(()=>T()).then(c=>{const e={oldCartItems:n.items,newCart:c};return f.emit("cart/merged",e),c}).catch(()=>(console.error("Could not merge carts"),n))):null}async function $(){if(F.getConfig().disableGuestCart===!0||!s.cartId)return null;try{return await T()}catch(r){return console.error(r),null}}const mr=` query STORE_CONFIG_QUERY { storeConfig { - minicart_display + minicart_display minicart_max_items - cart_expires_in_days + cart_expires_in_days cart_summary_display_quantity max_items_in_order_summary default_country @@ -80,6 +80,18 @@ query STORE_CONFIG_QUERY { shopping_cart_display_tax_gift_wrapping shopping_cart_display_zero_tax configurable_thumbnail_source + allow_gift_wrapping_on_order + allow_gift_wrapping_on_order_items + allow_order + allow_items + allow_gift_receipt + allow_printed_card + printed_card_priceV2 { + currency + value + } + cart_gift_wrapping + cart_printed_card } } -`,er=async()=>g(rr,{method:"GET",cache:"force-cache"}).then(({errors:r,data:t})=>r?y(r):B(t.storeConfig)),tr=async()=>{const r=i.authenticated?await E():await O();return l.emit("cart/data",r),r};export{C,f as a,E as b,S as c,O as d,er as e,m as g,I as i,tr as r,b as t}; +`,dr=async()=>h(mr,{method:"GET",cache:"force-cache"}).then(({errors:r,data:n})=>r?x(r):ar(n.storeConfig)),Cr=async()=>{const r=s.authenticated?await z():await $();return f.emit("cart/data",r),r};export{G as C,b as a,z as b,F as c,$ as d,dr as e,T as g,P as i,Cr as r,w as t}; diff --git a/scripts/__dropins__/storefront-cart/chunks/removeGiftCardFromCart.js b/scripts/__dropins__/storefront-cart/chunks/removeGiftCardFromCart.js new file mode 100644 index 0000000000..1f78904b20 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/chunks/removeGiftCardFromCart.js @@ -0,0 +1,31 @@ +/*! Copyright 2025 Adobe +All Rights Reserved. */ +import{s as i,f as n,h as _}from"./resetCart.js";import{C as d,t as T}from"./refreshCart.js";import{events as C}from"@dropins/tools/event-bus.js";import{a as f}from"./acdl.js";import{CART_FRAGMENT as A}from"../fragments.js";const m=` + mutation APPLY_GIFT_CARD_ON_CART_MUTATION($cartId: String!, $giftCardCode: String!, ${d}) { + applyGiftCardToCart( + input: { + cart_id: $cartId + gift_card_code: $giftCardCode + } + ) { + cart { + ...CART_FRAGMENT + } + } +} +${A} +`,N=async c=>{const a=i.cartId;if(!a)throw Error("Cart ID is not set");return n(m,{variables:{cartId:a,giftCardCode:c}}).then(({errors:s,data:t})=>{var e;const o=[...((e=t==null?void 0:t.applyGiftCardToCart)==null?void 0:e.user_errors)??[],...s??[]];if(o.length>0)return _(o);const r=T(t.applyGiftCardToCart.cart);return C.emit("cart/updated",r),C.emit("cart/data",r),r&&f(r,[],i.locale??"en-US"),r})},p=` + mutation REMOVE_GIFT_CARD_ON_CART_MUTATION($cartId: String!, $giftCardCode: String!, ${d}) { + removeGiftCardFromCart( + input: { + cart_id: $cartId + gift_card_code: $giftCardCode + } + ) { + cart { + ...CART_FRAGMENT + } + } +} +${A} +`,E=async c=>{const a=i.cartId;if(!a)throw Error("Cart ID is not set");return n(p,{variables:{cartId:a,giftCardCode:c}}).then(({errors:s,data:t})=>{var e;const o=[...((e=t==null?void 0:t.addProductsToCart)==null?void 0:e.user_errors)??[],...s??[]];if(o.length>0)return _(o);const r=T(t.removeGiftCardFromCart.cart);return C.emit("cart/updated",r),C.emit("cart/data",r),r&&f(r,[],i.locale??"en-US"),r})};export{N as a,E as r}; diff --git a/scripts/__dropins__/storefront-cart/chunks/setGiftOptionsOnCart.js b/scripts/__dropins__/storefront-cart/chunks/setGiftOptionsOnCart.js new file mode 100644 index 0000000000..2f8d1b7af8 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/chunks/setGiftOptionsOnCart.js @@ -0,0 +1,20 @@ +/*! Copyright 2025 Adobe +All Rights Reserved. */ +import{s as a,f as T,h as m}from"./resetCart.js";import{C as u,t as C}from"./refreshCart.js";import{events as s}from"@dropins/tools/event-bus.js";import{a as O}from"./acdl.js";import{CART_FRAGMENT as N}from"../fragments.js";const A=` + mutation SET_GIFT_OPTIONS_ON_CART_MUTATION($cartId: String!, $giftMessage: GiftMessageInput, $giftWrappingId: ID, $giftReceiptIncluded: Boolean!, $printedCardIncluded: Boolean!, ${u}) { + setGiftOptionsOnCart( + input: { + cart_id: $cartId + gift_message: $giftMessage + gift_wrapping_id: $giftWrappingId + gift_receipt_included: $giftReceiptIncluded + printed_card_included: $printedCardIncluded + } + ) { + cart { + ...CART_FRAGMENT + } + } +} +${N} +`,E=async d=>{const e=a.cartId;if(!e)throw Error("Cart ID is not set");const{recipientName:o,senderName:p,message:c,giftReceiptIncluded:f,printedCardIncluded:g,giftWrappingId:I,isGiftWrappingSelected:_}=d;return T(A,{variables:{cartId:e,giftMessage:{from:p,to:o,message:c},giftWrappingId:_?I:null,giftReceiptIncluded:f,printedCardIncluded:g}}).then(({errors:l,data:r})=>{var n;const i=[...((n=r==null?void 0:r.addProductsToCart)==null?void 0:n.user_errors)??[],...l??[]];if(i.length>0)return m(i);const t=C(r.setGiftOptionsOnCart.cart);return s.emit("cart/updated",t),s.emit("cart/data",t),t&&O(t,[],a.locale??"en-US"),t})};export{E as s}; diff --git a/scripts/__dropins__/storefront-cart/chunks/updateProductsFromCart.js b/scripts/__dropins__/storefront-cart/chunks/updateProductsFromCart.js index 1293945268..05a57fe684 100644 --- a/scripts/__dropins__/storefront-cart/chunks/updateProductsFromCart.js +++ b/scripts/__dropins__/storefront-cart/chunks/updateProductsFromCart.js @@ -1,6 +1,6 @@ /*! Copyright 2025 Adobe All Rights Reserved. */ -import{s as m,f as i,h as T}from"./resetCart.js";import{C as _,t as p}from"./refreshCart.js";import{events as n}from"@dropins/tools/event-bus.js";import{a as I}from"./acdl.js";import{CART_FRAGMENT as u}from"../fragments.js";const C=` +import{s as m,f as i,h as p}from"./resetCart.js";import{C as _,t as I}from"./refreshCart.js";import{events as n}from"@dropins/tools/event-bus.js";import{a as T}from"./acdl.js";import{CART_FRAGMENT as u}from"../fragments.js";const C=` mutation UPDATE_PRODUCTS_FROM_CART_MUTATION( $cartId: String!, $cartItems: [CartItemUpdateInput!]!, @@ -9,7 +9,7 @@ import{s as m,f as i,h as T}from"./resetCart.js";import{C as _,t as p}from"./ref updateCartItems( input: { cart_id: $cartId - cart_items: $cartItems + cart_items: $cartItems } ) { cart { @@ -18,6 +18,6 @@ import{s as m,f as i,h as T}from"./resetCart.js";import{C as _,t as p}from"./ref } } - + ${u} -`,h=async e=>{const s=m.cartId;if(!s)throw Error("Cart ID is not set");return i(C,{variables:{cartId:s,cartItems:e.map(({uid:a,quantity:t})=>({cart_item_uid:a,quantity:t}))}}).then(({errors:a,data:t})=>{var c;const o=[...((c=t==null?void 0:t.addProductsToCart)==null?void 0:c.user_errors)??[],...a??[]];if(o.length>0)return T(o);const r=p(t.updateCartItems.cart);return n.emit("cart/updated",r),n.emit("cart/data",r),r&&I(r,e,m.locale??"en-US"),r})};export{h as u}; +`,h=async s=>{const o=m.cartId;if(!o)throw Error("Cart ID is not set");return i(C,{variables:{cartId:o,cartItems:s.map(({uid:e,quantity:t,giftOptions:a})=>({cart_item_uid:e,quantity:t,...a}))}}).then(({errors:e,data:t})=>{var c;const a=[...((c=t==null?void 0:t.updateCartItems)==null?void 0:c.user_errors)??[],...e??[]];if(a.length>0)return p(a);const r=I(t.updateCartItems.cart);return n.emit("cart/updated",r),n.emit("cart/data",r),r&&T(r,s,m.locale??"en-US"),r})};export{h as u}; diff --git a/scripts/__dropins__/storefront-cart/components/Coupons/Coupons.d.ts b/scripts/__dropins__/storefront-cart/components/Coupons/Coupons.d.ts index 5545aa5f07..0f153fcee6 100644 --- a/scripts/__dropins__/storefront-cart/components/Coupons/Coupons.d.ts +++ b/scripts/__dropins__/storefront-cart/components/Coupons/Coupons.d.ts @@ -2,6 +2,8 @@ import { FunctionComponent, VNode } from 'preact'; import { HTMLAttributes } from 'preact/compat'; export interface CouponsProps extends HTMLAttributes { + accordionSectionTitle?: string; + accordionSectionIcon?: string; couponCodeField?: VNode>; applyCouponsButton?: VNode>; appliedCoupons?: VNode>; diff --git a/scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/CheckboxGroup.d.ts b/scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/CheckboxGroup.d.ts new file mode 100644 index 0000000000..8aa586f106 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/CheckboxGroup.d.ts @@ -0,0 +1,20 @@ +import { FunctionComponent } from 'preact'; +import { GiftOptionsViewProps, GiftWrappingConfigProps, GiftFormDataType, ProductGiftOptionsConfig } from '../../../types'; +import { CartModel, Item } from '../../../data/models'; +import { StateUpdater, Dispatch } from 'preact/hooks'; + +interface CheckboxGroupProps { + className: string; + view: GiftOptionsViewProps; + item: Item | ProductGiftOptionsConfig; + giftOptions: GiftFormDataType; + disabled: boolean; + cartData: CartModel | null; + giftWrappingConfig: GiftWrappingConfigProps[] | []; + areGiftOptionsVisible: Record; + setShowModal: Dispatch>; + onInputChange: (event: Event) => void; +} +export declare const CheckboxGroup: FunctionComponent; +export {}; +//# sourceMappingURL=CheckboxGroup.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/FormFields.d.ts b/scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/FormFields.d.ts new file mode 100644 index 0000000000..31ec88dbd0 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/FormFields.d.ts @@ -0,0 +1,15 @@ +import { FunctionComponent } from 'preact'; +import { GiftOptionsViewProps, GiftFormDataType } from '../../../types'; + +interface FormFieldsProps { + view: GiftOptionsViewProps; + giftOptions: GiftFormDataType; + disabled: boolean; + errorMessage: Record; + onInputChange: (value: Event) => void; + onBlur: (event: Event) => void; + isGiftMessageVisible: boolean; +} +export declare const FormFields: FunctionComponent; +export {}; +//# sourceMappingURL=FormFields.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/GiftLoader.d.ts b/scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/GiftLoader.d.ts new file mode 100644 index 0000000000..883e14f4b8 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/GiftLoader.d.ts @@ -0,0 +1,4 @@ +import { FunctionComponent } from 'preact'; + +export declare const GiftLoader: FunctionComponent; +//# sourceMappingURL=GiftLoader.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/GiftOptionModal.d.ts b/scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/GiftOptionModal.d.ts new file mode 100644 index 0000000000..27457df618 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/GiftOptionModal.d.ts @@ -0,0 +1,14 @@ +import { FunctionComponent } from 'preact'; +import { GiftWrappingConfigProps, GiftOptionsViewProps } from '../../../types'; + +interface GiftOptionModalProps { + giftWrappingConfig: GiftWrappingConfigProps[]; + showModal: boolean; + productName: string; + view: GiftOptionsViewProps; + setShowModal: () => void; + updateGiftOptions: (name: string, value?: string | boolean | number, extraGiftOptions?: Record) => void; +} +export declare const GiftOptionModal: FunctionComponent; +export {}; +//# sourceMappingURL=GiftOptionModal.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/ReadOnlyFormView.d.ts b/scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/ReadOnlyFormView.d.ts new file mode 100644 index 0000000000..04312ae2f7 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/ReadOnlyFormView.d.ts @@ -0,0 +1,11 @@ +import { FunctionComponent } from 'preact'; +import { GiftFormDataType, GiftWrappingConfigProps, GiftOptionsReadOnlyViewProps, GiftOptionsViewProps } from '../../../types'; + +export interface ReadOnlyFormViewProps { + view: GiftOptionsViewProps; + giftOptions: GiftFormDataType; + readOnlyFormOrderView: GiftOptionsReadOnlyViewProps; + giftWrappingConfig: GiftWrappingConfigProps[] | []; +} +export declare const ReadOnlyFormView: FunctionComponent; +//# sourceMappingURL=ReadOnlyFormView.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/index.d.ts b/scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/index.d.ts new file mode 100644 index 0000000000..ac11048437 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/components/GiftOptions/Elements/index.d.ts @@ -0,0 +1,5 @@ +export { GiftLoader } from './GiftLoader'; +export { GiftOptionItem } from './GiftOptionItem'; +export { GiftOptionModal } from './GiftOptionModal'; +export { ReadOnlyFormView } from './ReadOnlyFormView'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/components/GiftOptions/GiftOptions.d.ts b/scripts/__dropins__/storefront-cart/components/GiftOptions/GiftOptions.d.ts new file mode 100644 index 0000000000..12b3833ad9 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/components/GiftOptions/GiftOptions.d.ts @@ -0,0 +1,29 @@ +import { StateUpdater, Dispatch } from 'preact/hooks'; +import { FunctionComponent } from 'preact'; +import { GiftWrappingConfigProps, GiftOptionsViewProps, GiftFormDataType, GiftOptionsReadOnlyViewProps, ProductGiftOptionsConfig } from '../../types'; +import { CartModel, Item } from '../../data/models'; + +export interface GiftOptionsProps { + readOnlyFormOrderView: GiftOptionsReadOnlyViewProps; + cartData: CartModel | null; + errorsField: Record; + isGiftMessageVisible: boolean; + fieldsDisabled: boolean; + loading: boolean; + showModal: boolean; + isEditable: boolean; + isGiftOptionsApplied: boolean; + updateLoading: boolean; + areGiftOptionsVisible: Record; + view: GiftOptionsViewProps; + giftOptions: GiftFormDataType; + item: Item | ProductGiftOptionsConfig; + giftWrappingConfig: GiftWrappingConfigProps[] | []; + updateGiftOptions: (name: string, value?: string | boolean | number, extraGiftOptions?: Record) => void; + setShowModal: Dispatch>; + handleFormMouseLeave: () => void; + onInputChange: (event: Event) => void; + onBlur: (event: Event) => void; +} +export declare const GiftOptions: FunctionComponent; +//# sourceMappingURL=GiftOptions.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/components/GiftOptions/index.d.ts b/scripts/__dropins__/storefront-cart/components/GiftOptions/index.d.ts new file mode 100644 index 0000000000..1c1235e627 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/components/GiftOptions/index.d.ts @@ -0,0 +1,19 @@ +/******************************************************************** + * ADOBE CONFIDENTIAL + * __________________ + * + * Copyright 2024 Adobe + * All Rights Reserved. + * + * NOTICE: All information contained herein is, and remains + * the property of Adobe and its suppliers, if any. The intellectual + * and technical concepts contained herein are proprietary to Adobe + * and its suppliers and are protected by all applicable intellectual + * property laws, including trade secret and copyright laws. + * Dissemination of this information or reproduction of this material + * is strictly forbidden unless prior written permission is obtained + * from Adobe. + *******************************************************************/ +export * from './GiftOptions'; +export { GiftOptions as default } from '.'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/components/OrderSummary/OrderSummary.d.ts b/scripts/__dropins__/storefront-cart/components/OrderSummary/OrderSummary.d.ts index d2e5c81be4..0deb17e940 100644 --- a/scripts/__dropins__/storefront-cart/components/OrderSummary/OrderSummary.d.ts +++ b/scripts/__dropins__/storefront-cart/components/OrderSummary/OrderSummary.d.ts @@ -40,9 +40,36 @@ export interface OrderSummaryProps extends Omit, estimated?: boolean; priceWithoutTax?: VNode>; }; + printedCard?: { + renderContent: boolean; + taxIncluded: boolean; + taxInclAndExcl: boolean; + priceExclTax: VNode>; + priceInclTax: VNode>; + }; + itemsGiftWrapping?: { + renderContent: boolean; + taxIncluded: boolean; + taxInclAndExcl: boolean; + priceExclTax: VNode>; + priceInclTax: VNode>; + }; + orderGiftWrapping?: { + renderContent: boolean; + taxIncluded: boolean; + taxInclAndExcl: boolean; + priceExclTax: VNode>; + priceInclTax: VNode>; + }; primaryAction?: VNode>; coupons?: VNode>; + giftCards?: VNode>; totalSaved?: VNode>; + appliedGiftCards?: { + label: VNode> | string; + price: VNode>; + content?: VNode[]; + }; updateLineItems?: (lineItems: Array) => Array; } export declare const OrderSummary: FunctionComponent; diff --git a/scripts/__dropins__/storefront-cart/components/OrderSummaryLine/OrderSummaryLine.d.ts b/scripts/__dropins__/storefront-cart/components/OrderSummaryLine/OrderSummaryLine.d.ts index 7fcd5f8b29..3bf933de60 100644 --- a/scripts/__dropins__/storefront-cart/components/OrderSummaryLine/OrderSummaryLine.d.ts +++ b/scripts/__dropins__/storefront-cart/components/OrderSummaryLine/OrderSummaryLine.d.ts @@ -1,8 +1,8 @@ import { HTMLAttributes } from 'preact/compat'; import { FunctionComponent, VNode } from 'preact'; -export interface OrderSummaryLineComponentProps extends HTMLAttributes { - label: string; +export interface OrderSummaryLineComponentProps extends Omit, 'label'> { + label: VNode | string; price: VNode>; classSuffixes?: Array; labelClassSuffix?: string; diff --git a/scripts/__dropins__/storefront-cart/components/index.d.ts b/scripts/__dropins__/storefront-cart/components/index.d.ts index f7b8e06766..ddc675194b 100644 --- a/scripts/__dropins__/storefront-cart/components/index.d.ts +++ b/scripts/__dropins__/storefront-cart/components/index.d.ts @@ -22,4 +22,5 @@ export * from './CartSummaryList'; export * from './OrderSummary'; export * from './Coupons'; export * from './OrderSummaryLine'; +export * from './GiftOptions'; //# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/containers/CartSummaryGrid.js b/scripts/__dropins__/storefront-cart/containers/CartSummaryGrid.js index 959dca7748..ca5168544d 100644 --- a/scripts/__dropins__/storefront-cart/containers/CartSummaryGrid.js +++ b/scripts/__dropins__/storefront-cart/containers/CartSummaryGrid.js @@ -1,3 +1,3 @@ /*! Copyright 2025 Adobe All Rights Reserved. */ -import{C as s,C as u}from"../chunks/CartSummaryGrid.js";import"@dropins/tools/preact-jsx-runtime.js";import"@dropins/tools/preact-compat.js";import"../chunks/EmptyCart.js";import"@dropins/tools/lib.js";import"@dropins/tools/components.js";/* empty css */import"@dropins/tools/i18n.js";import"@dropins/tools/event-bus.js";import"../chunks/persisted-data.js";export{s as CartSummaryGrid,u as default}; +import{C as u,C as l}from"../chunks/CartSummaryGrid.js";import"@dropins/tools/preact-jsx-runtime.js";import"@dropins/tools/preact-compat.js";import"../chunks/EmptyCart.js";import"@dropins/tools/lib.js";import"@dropins/tools/components.js";/* empty css */import"@dropins/tools/i18n.js";import"@dropins/tools/preact-hooks.js";import"@dropins/tools/event-bus.js";import"../chunks/persisted-data.js";export{u as CartSummaryGrid,l as default}; diff --git a/scripts/__dropins__/storefront-cart/containers/CartSummaryList.js b/scripts/__dropins__/storefront-cart/containers/CartSummaryList.js index c79dac202e..2f64a7d857 100644 --- a/scripts/__dropins__/storefront-cart/containers/CartSummaryList.js +++ b/scripts/__dropins__/storefront-cart/containers/CartSummaryList.js @@ -1,3 +1,3 @@ /*! Copyright 2025 Adobe All Rights Reserved. */ -import{C as b,C as c}from"../chunks/CartSummaryList.js";import"@dropins/tools/preact-jsx-runtime.js";import"@dropins/tools/preact-compat.js";import"@dropins/tools/lib.js";import"../chunks/EmptyCart.js";import"@dropins/tools/components.js";/* empty css */import"@dropins/tools/i18n.js";import"../chunks/persisted-data.js";import"@dropins/tools/event-bus.js";import"../chunks/resetCart.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/updateProductsFromCart.js";import"../chunks/refreshCart.js";import"../fragments.js";import"../chunks/acdl.js";import"../chunks/ChevronDown.js";export{b as CartSummaryList,c as default}; +import{C as c,C as g}from"../chunks/CartSummaryList.js";import"@dropins/tools/preact-jsx-runtime.js";import"@dropins/tools/preact-compat.js";import"@dropins/tools/lib.js";import"../chunks/EmptyCart.js";import"@dropins/tools/components.js";/* empty css */import"@dropins/tools/i18n.js";import"@dropins/tools/preact-hooks.js";import"../chunks/persisted-data.js";import"@dropins/tools/event-bus.js";import"../chunks/resetCart.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/updateProductsFromCart.js";import"../chunks/refreshCart.js";import"../fragments.js";import"../chunks/acdl.js";import"../chunks/ChevronDown.js";export{c as CartSummaryList,g as default}; diff --git a/scripts/__dropins__/storefront-cart/containers/Coupons.js b/scripts/__dropins__/storefront-cart/containers/Coupons.js index a00d1157ae..3ad869fa6b 100644 --- a/scripts/__dropins__/storefront-cart/containers/Coupons.js +++ b/scripts/__dropins__/storefront-cart/containers/Coupons.js @@ -1,3 +1,3 @@ /*! Copyright 2025 Adobe All Rights Reserved. */ -import{jsx as o,jsxs as A}from"@dropins/tools/preact-jsx-runtime.js";import*as n from"@dropins/tools/preact-compat.js";import{useRef as P,useState as E,useEffect as y}from"@dropins/tools/preact-compat.js";import{classes as a,VComponent as w,getFormValues as I}from"@dropins/tools/lib.js";import{Accordion as M,AccordionSection as b,Button as k,Icon as R,Input as T}from"@dropins/tools/components.js";/* empty css */import{S as j}from"../chunks/Coupon.js";import{useText as B}from"@dropins/tools/i18n.js";import"../chunks/resetCart.js";import{events as L}from"@dropins/tools/event-bus.js";import{a as x,A as N}from"../chunks/applyCouponsToCart.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/persisted-data.js";import"../chunks/refreshCart.js";import"../fragments.js";const z=s=>n.createElement("svg",{id:"Icon_Add_Base","data-name":"Icon \\u2013 Add \\u2013 Base",xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",...s},n.createElement("g",{id:"Large"},n.createElement("rect",{id:"Placement_area","data-name":"Placement area",width:24,height:24,fill:"#fff",opacity:0}),n.createElement("g",{id:"Add_icon","data-name":"Add icon",transform:"translate(9.734 9.737)"},n.createElement("line",{vectorEffect:"non-scaling-stroke",id:"Line_579","data-name":"Line 579",y2:12.7,transform:"translate(2.216 -4.087)",fill:"none",stroke:"currentColor"}),n.createElement("line",{vectorEffect:"non-scaling-stroke",id:"Line_580","data-name":"Line 580",x2:12.7,transform:"translate(-4.079 2.263)",fill:"none",stroke:"currentColor"})))),q=s=>n.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...s},n.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3599 5.64001L5.62988 18.37",stroke:"currentColor"}),n.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3599 18.37L5.62988 5.64001",stroke:"currentColor"})),D=s=>n.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...s},n.createElement("path",{d:"M17.3332 11.75H6.6665",strokeWidth:1.5,strokeLinecap:"square",strokeLinejoin:"round",vectorEffect:"non-scaling-stroke",fill:"none",stroke:"currentColor"})),V=({className:s,children:_,couponCodeField:f,applyCouponsButton:p,appliedCoupons:u,error:h,onApplyCoupon:d,...r})=>{const c=P(null),g=B({couponTitle:"Cart.PriceSummary.coupon.title"}),C=v=>{var t;v.preventDefault();const S=I(c.current);d==null||d(S);const e=(t=c==null?void 0:c.current)==null?void 0:t.querySelector("input");e&&(e.value="")};return o("div",{...r,"data-testid":"cart-coupons",className:a(["cart-coupons",s]),children:o(M,{"data-testid":"coupon-code",className:a(["cart-coupons__accordion"]),actionIconPosition:"right",iconOpen:z,iconClose:D,children:A(b,{title:g.couponTitle,iconLeft:j,showIconLeft:!0,renderContentWhenClosed:!1,"data-testid":"coupon-code-accordion-section",className:a(["cart-coupons__accordion-section"]),children:[o("form",{"data-testid":"coupon-code-form",className:a(["coupon-code-form--edit"]),ref:c,children:A("div",{className:a(["coupon-code-form__action"]),children:[f&&o(w,{node:f,className:a(["coupon-code-form__codes"])}),p&&o(w,{node:p,className:a(["coupon-code-form--button"]),onClick:C,type:"submit"})]})}),h&&o(w,{node:h,className:a(["coupon-code-form__error"])}),u&&o(w,{node:u,className:a(["coupon-code-form__applied"])})]})})})},oe=({children:s,..._})=>{const[f,p]=E(new Set),[u,h]=E([]),[d,r]=E(new Set),c=B({applyButton:"Cart.PriceSummary.coupon.applyAction",placeholder:"Cart.PriceSummary.coupon.placeholder"}),g=async e=>{const t=e.coupon,i=new Set(f);i.add(t),r(new Set);const l=Array.from(i);x(l,N.REPLACE).then(m=>{if(m===null)throw new Error("Error adding coupon code");p(i)}).catch(m=>{console.warn(m),r(new Set([m.message]))})},C=e=>{const t=new Set(f);t.delete(e),r(new Set);const i=Array.from(t);x(i,N.REPLACE).then(l=>{if(l===null)throw new Error("Error removing coupon code");p(t)}).catch(l=>{console.warn(l),r(new Set([l.message]))})};y(()=>{const e=L.on("cart/data",t=>{const i=t==null?void 0:t.appliedCoupons;if(!i){h([]),r(new Set);return}const l=i.map(m=>m.code);h(l),r(new Set)},{eager:!0});return()=>{e==null||e.off()}},[]),y(()=>{p(new Set(u))},[u]),y(()=>{const e=L.on("shipping/estimate",()=>{r(new Set)},{eager:!0});return()=>{e==null||e.off()}},[]);const v=u.map(e=>o(k,{variant:"tertiary",icon:o(R,{source:q,size:"24"}),onClick:()=>C(e),children:e},e)),S=d.size>0?o("div",{"data-testid":"coupon-code-error",children:Array.from(d)[0]}):void 0;return o(V,{..._,couponCodeField:o(T,{"aria-label":c.placeholder,type:"text",placeholder:c.placeholder,name:"coupon",variant:"primary",value:"","data-testid":"coupon-code-input",maxLength:50,error:d.size>0}),applyCouponsButton:o(k,{variant:"secondary",children:c.applyButton}),error:S,appliedCoupons:o("div",{children:v}),onApplyCoupon:g})};export{oe as Coupons,oe as default}; +import{jsxs as E,jsx as t}from"@dropins/tools/preact-jsx-runtime.js";import{useState as l,useEffect as m}from"@dropins/tools/preact-compat.js";import"@dropins/tools/lib.js";import{Tag as b,Icon as x,Input as L,Button as R}from"@dropins/tools/components.js";/* empty css */import{S as P,C as B}from"../chunks/Coupons.js";import"@dropins/tools/preact-hooks.js";import"../chunks/resetCart.js";import{events as S}from"@dropins/tools/event-bus.js";import{a as f,A as h}from"../chunks/applyCouponsToCart.js";import{useText as $}from"@dropins/tools/i18n.js";import"../chunks/Coupon.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/persisted-data.js";import"../chunks/refreshCart.js";import"../fragments.js";const U=({children:z,...w})=>{const[d,c]=l(new Set),[i,C]=l([]),[u,p]=l(new Set),s=$({applyButton:"Cart.PriceSummary.coupon.applyAction",placeholder:"Cart.PriceSummary.coupon.placeholder",ariaLabelRemove:"Cart.PriceSummary.coupon.ariaLabelRemove"}),y=async o=>{const e=o.coupon,r=new Set(d);r.add(e),p(new Set);const n=Array.from(r);f(n,h.REPLACE).then(a=>{if(a===null)throw new Error("Error adding coupon code");c(r)}).catch(a=>{console.warn(a),p(new Set([a.message]))})},A=o=>{const e=new Set(d);e.delete(o),p(new Set);const r=Array.from(e);f(r,h.REPLACE).then(n=>{if(n===null)throw new Error("Error removing coupon code");c(e)}).catch(n=>{console.warn(n),p(new Set([n.message]))})};m(()=>{const o=S.on("cart/data",e=>{const r=e==null?void 0:e.appliedCoupons;if(!r){C([]),p(new Set);return}const n=r.map(a=>a.code);C(n),p(new Set)},{eager:!0});return()=>{o==null||o.off()}},[]),m(()=>{c(new Set(i))},[i]),m(()=>{const o=S.on("shipping/estimate",()=>{p(new Set)},{eager:!0});return()=>{o==null||o.off()}},[]);const g=i.map((o,e)=>E(b,{className:"coupon-code-form__applied-item",children:[t("span",{children:o}),t("button",{"aria-label":`${s.ariaLabelRemove} ${o}`,onClick:()=>A(o),"data-testid":`remove-coupon-${e+1}`,children:t(x,{source:P,size:"16"})})]},o)),v=u.size>0?t("div",{"data-testid":"coupon-code-error",children:Array.from(u)[0]}):void 0;return t(B,{...w,couponCodeField:t(L,{"aria-label":s.placeholder,type:"text",placeholder:s.placeholder,name:"coupon",variant:"primary",value:"","data-testid":"coupon-code-input",maxLength:50,error:u.size>0}),applyCouponsButton:t(R,{variant:"secondary",children:s.applyButton}),error:v,appliedCoupons:t("div",{children:g}),onApplyCoupon:y})};export{U as Coupons,U as default}; diff --git a/scripts/__dropins__/storefront-cart/containers/EmptyCart.js b/scripts/__dropins__/storefront-cart/containers/EmptyCart.js index 1b939fe13c..fc7351b902 100644 --- a/scripts/__dropins__/storefront-cart/containers/EmptyCart.js +++ b/scripts/__dropins__/storefront-cart/containers/EmptyCart.js @@ -1,3 +1,3 @@ /*! Copyright 2025 Adobe All Rights Reserved. */ -import{jsx as m}from"@dropins/tools/preact-jsx-runtime.js";import{E as p}from"../chunks/EmptyCart.js";import"@dropins/tools/lib.js";import"@dropins/tools/preact-compat.js";/* empty css */import"@dropins/tools/components.js";import"@dropins/tools/i18n.js";const E=({routeCTA:t})=>m(p,{ctaLinkURL:t==null?void 0:t()});export{E as EmptyCart,E as default}; +import{jsx as m}from"@dropins/tools/preact-jsx-runtime.js";import{E as p}from"../chunks/EmptyCart.js";import"@dropins/tools/lib.js";import"@dropins/tools/preact-compat.js";/* empty css */import"@dropins/tools/components.js";import"@dropins/tools/preact-hooks.js";import"@dropins/tools/i18n.js";const c=({routeCTA:t})=>m(p,{ctaLinkURL:t==null?void 0:t()});export{c as EmptyCart,c as default}; diff --git a/scripts/__dropins__/storefront-cart/containers/EstimateShipping.js b/scripts/__dropins__/storefront-cart/containers/EstimateShipping.js index 8719f54ea7..07418b4d69 100644 --- a/scripts/__dropins__/storefront-cart/containers/EstimateShipping.js +++ b/scripts/__dropins__/storefront-cart/containers/EstimateShipping.js @@ -1,3 +1,3 @@ /*! Copyright 2025 Adobe All Rights Reserved. */ -import{jsxs as T,jsx as e,Fragment as V}from"@dropins/tools/preact-jsx-runtime.js";import{classes as b,VComponent as B,getFormValues as $}from"@dropins/tools/lib.js";import{Price as U,Picker as w,Input as G,Button as q}from"@dropins/tools/components.js";/* empty css */import{useRef as H,useState as s,useEffect as Z,useCallback as J}from"@dropins/tools/preact-compat.js";import{useText as M,Text as k}from"@dropins/tools/i18n.js";import{s as X}from"../chunks/resetCart.js";import{events as R}from"@dropins/tools/event-bus.js";import{s as j}from"../chunks/persisted-data.js";import{g as O,a as Q,b as W}from"../chunks/getEstimateShipping.js";import"@dropins/tools/fetch-graphql.js";const Y=({countryField:z,destinationText:f,estimateButton:I,estimated:A,loading:N,onEstimate:l,price:S,priceExcludingTax:D,priceIncludingTax:n,stateField:C,taxExcluded:F,taxIncluded:P,zipField:m})=>{const d=H(null),[L,y]=s(!0),[x,i]=s("zip"),r=M({editZipAction:"Cart.EstimateShipping.editZipAction",destinationLinkAriaLabel:"Cart.EstimateShipping.destinationLinkAriaLabel",shippingLabel:"Cart.EstimateShipping.label",zipPlaceholder:"Cart.EstimateShipping.zipPlaceholder"}),E=p=>{p.preventDefault(),y(_=>!_)},t=p=>{p.preventDefault(),y(!0),i(_=>_==="zip"?"state":"zip")},h=p=>{p.preventDefault(),y(!1);const _=$(d.current);l==null||l(_)},v=r.destinationLinkAriaLabel.replace("{destination}",f);return T("div",{"data-testid":"estimate-shipping",className:b(["cart-estimate-shipping",["cart-estimate-shipping--loading",N]]),children:[e("span",{className:"cart-estimate-shipping__label",children:A?f?T(V,{children:[e(k,{id:"Cart.EstimateShipping.estimatedDestination"})," ",e("a",{className:"cart-estimate-shippingLink",role:"button",href:"",onClick:E,onKeyDown:p=>{(p.key==="Enter"||p.key===" ")&&E(p)},tabIndex:0,"aria-label":v,"data-testid":"shipping-destination-link",children:f})]}):e(k,{id:"Cart.EstimateShipping.estimated"}):e(k,{id:"Cart.EstimateShipping.label"})}),e(B,{node:S,className:"cart-estimate-shipping__price"}),A&&T(V,{children:[e("div",{className:b(["cart-estimate-shipping__caption"]),children:e("a",{href:"#",className:"cart-estimate-shipping__link",onClick:t,"data-testid":"shipping-alternate-field-link",children:x==="zip"?e(k,{id:"Cart.EstimateShipping.alternateField.state"}):e(k,{id:"Cart.EstimateShipping.alternateField.zip"})})}),T("form",{className:b(["cart-estimate-shipping--edit",["cart-estimate-shipping--hide",!L]]),ref:d,"data-testid":"shipping-estimate-form",children:[z&&e(B,{node:z,className:b(["cart-estimate-shipping--country"])}),x==="state"?C&&e(B,{node:C,className:b(["cart-estimate-shipping--state"])}):m&&e(B,{node:m,className:b(["cart-estimate-shipping--zip"])}),I&&e(B,{node:I,className:b(["cart-estimate-shipping--action"]),onClick:h,type:"submit"})]})]}),P&&e("div",{"data-testid":"shipping-tax-included",className:b(["cart-estimate-shipping__caption"]),children:T("span",{children:[n," ",e(k,{id:"Cart.EstimateShipping.withTaxes"})]})}),F?e("div",{"data-testid":"shipping-tax-included-excluded",className:b(["cart-estimate-shipping__caption"]),children:T("span",{children:[D," ",e(k,{id:"Cart.EstimateShipping.withoutTaxes"})]})}):void 0]})},ee=()=>{const[z,f]=s(!1),[I,A]=s([]),[N,l]=s("US"),[S,D]=s(""),[n,C]=s(""),[F,P]=s([]),[m,d]=s(!1),[L,y]=s(),[x,i]=s(),[r,E]=s(""),[t,h]=s(!1),v=()=>{l("US"),D(""),C(""),y(null),i(null),E(""),h(!1)},p=async u=>{const{shippingCountry:a,shippingState:o="",shippingZip:c=""}=u,K={countryCode:a,postcode:c,region:{region:o}};return f(!0),W(K).then(g=>(g&&(y({amount:g.amount.value,currency:g.amount.currency,priceIncludingtax:{amount:g.price_incl_tax.value,currency:g.price_incl_tax.currency},priceExcludingtax:{amount:g.price_excl_tax.value,currency:g.price_excl_tax.currency}}),i({carrier_code:g.carrier_code,method_code:g.method_code}),l(a),D(o),C(c),E(o||c||a),h(!0)),l(a),D(o),C(c),E(o||c||a),g)).finally(()=>{f(!1)})},_=u=>{u.preventDefault(),D(""),C("");const a=u.target.value;l(a)};return Z(()=>{O().then(u=>{let a="US";const o=u.map(c=>(c.isDefaultCountry&&(a=c.id),{text:c.label,value:c.id}));A(o),l(a)})},[]),Z(()=>{d(!0),Q(N).then(u=>{const a=u.map(o=>({text:o.name,value:o.code}));P(a)}).finally(()=>{d(!1)})},[N,d]),{loading:z,regionsLoading:m,estimatedDestinationText:r,countries:I,selectedCountry:N,selectedRegion:S,selectedZip:n,regions:F,estimatedShippingPrice:L,estimatedShippingMethod:x,shippingEstimated:t,handleEstimateShipping:p,handleCountrySelected:_,resetValues:v,setPriceSummaryLoading:f}},me=({showDefaultEstimatedShippingCost:z})=>{var E;const[f,I]=s(!1),{loading:A,countries:N,regions:l,selectedCountry:S,estimatedDestinationText:D,estimatedShippingPrice:n,handleCountrySelected:C,handleEstimateShipping:F,regionsLoading:P,selectedRegion:m,selectedZip:d,shippingEstimated:L,resetValues:y}=ee(),x=J(t=>{F(t).then(()=>{j(t)})},[F]);Z(()=>{const t=R.on("cart/data",h=>{var a,o,c;I((h==null?void 0:h.isVirtual)||!1);const v=(o=(a=h==null?void 0:h.addresses)==null?void 0:a.shipping)==null?void 0:o[0];if(z&&!v&&F({shippingCountry:((c=X.config)==null?void 0:c.defaultCountry)??""}),!v)return;const{countryCode:p,regionCode:_,zipCode:u}=v;x({shippingCountry:p,shippingState:_,shippingZip:u})},{eager:!0});return()=>{t==null||t.off()}},[]),Z(()=>{const t=R.on("cart/updated",()=>{L&&F({shippingCountry:S,shippingState:m,shippingZip:d})});return()=>{t==null||t.off()}},[L,S,m,d]),Z(()=>{const t=R.on("cart/reset",()=>{y(),j(null)});return()=>{t==null||t.off()}},[y]),Z(()=>{const t=R.on("cart/merged",()=>{L&&x({shippingCountry:S,shippingState:m,shippingZip:d})});return()=>{t==null||t.off()}},[L,S,m,d,x]);const i=M({applyButton:"Cart.PriceSummary.estimatedShippingForm.apply.label",countryField:"Cart.PriceSummary.estimatedShippingForm.country.placeholder",freeShipping:"Cart.PriceSummary.freeShipping",stateField:"Cart.PriceSummary.estimatedShippingForm.state.placeholder",taxToBeDetermined:"Cart.PriceSummary.taxToBeDetermined",zipField:"Cart.PriceSummary.estimatedShippingForm.zip.placeholder"});if(f)return null;const r=(E=X.config)==null?void 0:E.shoppingCartDisplaySetting;return e(Y,{loading:A,taxIncluded:(r==null?void 0:r.shipping)==="INCLUDING_TAX",taxExcluded:(r==null?void 0:r.shipping)==="INCLUDING_EXCLUDING_TAX",price:(n==null?void 0:n.amount)==0?e("span",{"data-testId":"free-shipping",children:i.freeShipping}):(r==null?void 0:r.shipping)==="INCLUDING_TAX"&&n?e(U,{"data-testid":"shipping",...n.priceIncludingtax}):n?e(U,{...n}):e("span",{children:i.taxToBeDetermined}),estimated:!0,priceExcludingTax:n!=null&&n.priceExcludingtax?e(U,{"data-testid":"shipping-excluding-tax",...n.priceExcludingtax}):e("span",{children:i.taxToBeDetermined}),countryField:e(w,{name:"shippingCountry",placeholder:i.countryField,value:S,variant:"primary",options:N,handleSelect:C,"data-testid":"estimate-shipping-country-selector"}),stateField:l.length>0?e(w,{name:"shippingState",placeholder:i.stateField,variant:"primary",options:l,value:m,"data-testid":"estimate-shipping-state-selector",disabled:P}):e(G,{"aria-label":i.stateField,name:"shippingState",placeholder:i.stateField,variant:"primary",value:m,disabled:P,"data-testid":"estimate-shipping-state-input",maxLength:50}),zipField:e(G,{"aria-label":i.zipField,name:"shippingZip",placeholder:i.zipField,variant:"primary","data-testid":"estimate-shipping-zip-input",value:d,maxLength:12}),estimateButton:e(q,{variant:"secondary","data-testid":"estimate-shipping-apply-button","aria-label":i.applyButton,children:i.applyButton}),destinationText:D||i.taxToBeDetermined,onEstimate:x})};export{me as EstimateShipping,me as default}; +import{jsxs as T,jsx as e,Fragment as V}from"@dropins/tools/preact-jsx-runtime.js";import{classes as b,VComponent as B,getFormValues as $}from"@dropins/tools/lib.js";import{Price as U,Picker as w,Input as G,Button as q}from"@dropins/tools/components.js";/* empty css */import{useRef as H,useState as s,useEffect as Z,useCallback as J}from"@dropins/tools/preact-compat.js";import{useText as M,Text as k}from"@dropins/tools/i18n.js";import"@dropins/tools/preact-hooks.js";import{s as X}from"../chunks/resetCart.js";import{events as R}from"@dropins/tools/event-bus.js";import{s as j}from"../chunks/persisted-data.js";import{g as O,a as Q,b as W}from"../chunks/getEstimateShipping.js";import"@dropins/tools/fetch-graphql.js";const Y=({countryField:z,destinationText:f,estimateButton:I,estimated:A,loading:N,onEstimate:l,price:S,priceExcludingTax:D,priceIncludingTax:n,stateField:C,taxExcluded:F,taxIncluded:P,zipField:m})=>{const d=H(null),[L,y]=s(!0),[x,i]=s("zip"),r=M({editZipAction:"Cart.EstimateShipping.editZipAction",destinationLinkAriaLabel:"Cart.EstimateShipping.destinationLinkAriaLabel",shippingLabel:"Cart.EstimateShipping.label",zipPlaceholder:"Cart.EstimateShipping.zipPlaceholder"}),E=p=>{p.preventDefault(),y(_=>!_)},t=p=>{p.preventDefault(),y(!0),i(_=>_==="zip"?"state":"zip")},h=p=>{p.preventDefault(),y(!1);const _=$(d.current);l==null||l(_)},v=r.destinationLinkAriaLabel.replace("{destination}",f);return T("div",{"data-testid":"estimate-shipping",className:b(["cart-estimate-shipping",["cart-estimate-shipping--loading",N]]),children:[e("span",{className:"cart-estimate-shipping__label",children:A?f?T(V,{children:[e(k,{id:"Cart.EstimateShipping.estimatedDestination"})," ",e("a",{className:"cart-estimate-shippingLink",role:"button",href:"",onClick:E,onKeyDown:p=>{(p.key==="Enter"||p.key===" ")&&E(p)},tabIndex:0,"aria-label":v,"data-testid":"shipping-destination-link",children:f})]}):e(k,{id:"Cart.EstimateShipping.estimated"}):e(k,{id:"Cart.EstimateShipping.label"})}),e(B,{node:S,className:"cart-estimate-shipping__price"}),A&&T(V,{children:[e("div",{className:b(["cart-estimate-shipping__caption"]),children:e("a",{href:"#",className:"cart-estimate-shipping__link",onClick:t,"data-testid":"shipping-alternate-field-link",children:x==="zip"?e(k,{id:"Cart.EstimateShipping.alternateField.state"}):e(k,{id:"Cart.EstimateShipping.alternateField.zip"})})}),T("form",{className:b(["cart-estimate-shipping--edit",["cart-estimate-shipping--hide",!L]]),ref:d,"data-testid":"shipping-estimate-form",children:[z&&e(B,{node:z,className:b(["cart-estimate-shipping--country"])}),x==="state"?C&&e(B,{node:C,className:b(["cart-estimate-shipping--state"])}):m&&e(B,{node:m,className:b(["cart-estimate-shipping--zip"])}),I&&e(B,{node:I,className:b(["cart-estimate-shipping--action"]),onClick:h,type:"submit"})]})]}),P&&e("div",{"data-testid":"shipping-tax-included",className:b(["cart-estimate-shipping__caption"]),children:T("span",{children:[n," ",e(k,{id:"Cart.EstimateShipping.withTaxes"})]})}),F?e("div",{"data-testid":"shipping-tax-included-excluded",className:b(["cart-estimate-shipping__caption"]),children:T("span",{children:[D," ",e(k,{id:"Cart.EstimateShipping.withoutTaxes"})]})}):void 0]})},ee=()=>{const[z,f]=s(!1),[I,A]=s([]),[N,l]=s("US"),[S,D]=s(""),[n,C]=s(""),[F,P]=s([]),[m,d]=s(!1),[L,y]=s(),[x,i]=s(),[r,E]=s(""),[t,h]=s(!1),v=()=>{l("US"),D(""),C(""),y(null),i(null),E(""),h(!1)},p=async u=>{const{shippingCountry:a,shippingState:o="",shippingZip:c=""}=u,K={countryCode:a,postcode:c,region:{region:o}};return f(!0),W(K).then(g=>(g&&(y({amount:g.amount.value,currency:g.amount.currency,priceIncludingtax:{amount:g.price_incl_tax.value,currency:g.price_incl_tax.currency},priceExcludingtax:{amount:g.price_excl_tax.value,currency:g.price_excl_tax.currency}}),i({carrier_code:g.carrier_code,method_code:g.method_code}),l(a),D(o),C(c),E(o||c||a),h(!0)),l(a),D(o),C(c),E(o||c||a),g)).finally(()=>{f(!1)})},_=u=>{u.preventDefault(),D(""),C("");const a=u.target.value;l(a)};return Z(()=>{O().then(u=>{let a="US";const o=u.map(c=>(c.isDefaultCountry&&(a=c.id),{text:c.label,value:c.id}));A(o),l(a)})},[]),Z(()=>{d(!0),Q(N).then(u=>{const a=u.map(o=>({text:o.name,value:o.code}));P(a)}).finally(()=>{d(!1)})},[N,d]),{loading:z,regionsLoading:m,estimatedDestinationText:r,countries:I,selectedCountry:N,selectedRegion:S,selectedZip:n,regions:F,estimatedShippingPrice:L,estimatedShippingMethod:x,shippingEstimated:t,handleEstimateShipping:p,handleCountrySelected:_,resetValues:v,setPriceSummaryLoading:f}},he=({showDefaultEstimatedShippingCost:z})=>{var E;const[f,I]=s(!1),{loading:A,countries:N,regions:l,selectedCountry:S,estimatedDestinationText:D,estimatedShippingPrice:n,handleCountrySelected:C,handleEstimateShipping:F,regionsLoading:P,selectedRegion:m,selectedZip:d,shippingEstimated:L,resetValues:y}=ee(),x=J(t=>{F(t).then(()=>{j(t)})},[F]);Z(()=>{const t=R.on("cart/data",h=>{var a,o,c;I((h==null?void 0:h.isVirtual)||!1);const v=(o=(a=h==null?void 0:h.addresses)==null?void 0:a.shipping)==null?void 0:o[0];if(z&&!v&&F({shippingCountry:((c=X.config)==null?void 0:c.defaultCountry)??""}),!v)return;const{countryCode:p,regionCode:_,zipCode:u}=v;x({shippingCountry:p,shippingState:_,shippingZip:u})},{eager:!0});return()=>{t==null||t.off()}},[]),Z(()=>{const t=R.on("cart/updated",()=>{L&&F({shippingCountry:S,shippingState:m,shippingZip:d})});return()=>{t==null||t.off()}},[L,S,m,d]),Z(()=>{const t=R.on("cart/reset",()=>{y(),j(null)});return()=>{t==null||t.off()}},[y]),Z(()=>{const t=R.on("cart/merged",()=>{L&&x({shippingCountry:S,shippingState:m,shippingZip:d})});return()=>{t==null||t.off()}},[L,S,m,d,x]);const i=M({applyButton:"Cart.PriceSummary.estimatedShippingForm.apply.label",countryField:"Cart.PriceSummary.estimatedShippingForm.country.placeholder",freeShipping:"Cart.PriceSummary.freeShipping",stateField:"Cart.PriceSummary.estimatedShippingForm.state.placeholder",taxToBeDetermined:"Cart.PriceSummary.taxToBeDetermined",zipField:"Cart.PriceSummary.estimatedShippingForm.zip.placeholder"});if(f)return null;const r=(E=X.config)==null?void 0:E.shoppingCartDisplaySetting;return e(Y,{loading:A,taxIncluded:(r==null?void 0:r.shipping)==="INCLUDING_TAX",taxExcluded:(r==null?void 0:r.shipping)==="INCLUDING_EXCLUDING_TAX",price:(n==null?void 0:n.amount)==0?e("span",{"data-testId":"free-shipping",children:i.freeShipping}):(r==null?void 0:r.shipping)==="INCLUDING_TAX"&&n?e(U,{"data-testid":"shipping",...n.priceIncludingtax}):n?e(U,{...n}):e("span",{children:i.taxToBeDetermined}),estimated:!0,priceExcludingTax:n!=null&&n.priceExcludingtax?e(U,{"data-testid":"shipping-excluding-tax",...n.priceExcludingtax}):e("span",{children:i.taxToBeDetermined}),countryField:e(w,{name:"shippingCountry",placeholder:i.countryField,value:S,variant:"primary",options:N,handleSelect:C,"data-testid":"estimate-shipping-country-selector"}),stateField:l.length>0?e(w,{name:"shippingState",placeholder:i.stateField,variant:"primary",options:l,value:m,"data-testid":"estimate-shipping-state-selector",disabled:P}):e(G,{"aria-label":i.stateField,name:"shippingState",placeholder:i.stateField,variant:"primary",value:m,disabled:P,"data-testid":"estimate-shipping-state-input",maxLength:50}),zipField:e(G,{"aria-label":i.zipField,name:"shippingZip",placeholder:i.zipField,variant:"primary","data-testid":"estimate-shipping-zip-input",value:d,maxLength:12}),estimateButton:e(q,{variant:"secondary","data-testid":"estimate-shipping-apply-button","aria-label":i.applyButton,children:i.applyButton}),destinationText:D||i.taxToBeDetermined,onEstimate:x})};export{he as EstimateShipping,he as default}; diff --git a/scripts/__dropins__/storefront-cart/containers/GiftCards.d.ts b/scripts/__dropins__/storefront-cart/containers/GiftCards.d.ts new file mode 100644 index 0000000000..abb456f381 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/containers/GiftCards.d.ts @@ -0,0 +1,3 @@ +export * from './GiftCards/index' +import _default from './GiftCards/index' +export default _default diff --git a/scripts/__dropins__/storefront-cart/containers/GiftCards.js b/scripts/__dropins__/storefront-cart/containers/GiftCards.js new file mode 100644 index 0000000000..98d374b75e --- /dev/null +++ b/scripts/__dropins__/storefront-cart/containers/GiftCards.js @@ -0,0 +1,3 @@ +/*! Copyright 2025 Adobe +All Rights Reserved. */ +import{jsxs as y,jsx as a}from"@dropins/tools/preact-jsx-runtime.js";import{useState as p,useEffect as l}from"@dropins/tools/preact-compat.js";import"@dropins/tools/lib.js";import{Tag as G,Icon as v,Input as b,Button as A}from"@dropins/tools/components.js";/* empty css */import{S as L,C as x}from"../chunks/Coupons.js";import"@dropins/tools/preact-hooks.js";import"../chunks/resetCart.js";import{events as E}from"@dropins/tools/event-bus.js";import{a as P,r as T}from"../chunks/removeGiftCardFromCart.js";import{S as B}from"../chunks/GiftCard.js";import{useText as R}from"@dropins/tools/i18n.js";import"../chunks/Coupon.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/persisted-data.js";import"../chunks/refreshCart.js";import"../fragments.js";import"../chunks/acdl.js";const X=({children:z,...C})=>{const[m,d]=p(new Set),[s,f]=p([]),[c,i]=p(new Set),o=R({giftCardTitle:"Cart.PriceSummary.giftCard.title",applyButton:"Cart.PriceSummary.giftCard.applyAction",placeholder:"Cart.PriceSummary.giftCard.placeholder",ariaLabel:"Cart.PriceSummary.giftCard.ariaLabel",ariaLabelRemove:"Cart.PriceSummary.giftCard.ariaLabelRemove",empty:"Cart.PriceSummary.giftCard.errors.empty"}),u=async r=>{const t=r==null?void 0:r.giftCardCode;if(t==="")return i(new Set([o.empty])),!0;const e=new Set(m);e.add(t),i(new Set),P(t).then(n=>{if(n===null)throw new Error("Error adding gift card code");d(e)}).catch(n=>{console.warn(n),i(new Set([n.message]))})},S=r=>{const t=new Set(m);t.delete(r),i(new Set),T(r).then(e=>{if(e===null)throw new Error("Error removing gift card code");d(t)}).catch(e=>{console.warn(e),i(new Set([e.message]))})};l(()=>{const r=E.on("cart/data",t=>{const e=t==null?void 0:t.appliedGiftCards;if(!e){f([]),i(new Set);return}const n=e.map(({code:w})=>w);f(n),i(new Set)},{eager:!0});return()=>{r==null||r.off()}},[]),l(()=>{d(new Set(s))},[s]);const g=s.map((r,t)=>y(G,{className:"coupon-code-form__applied-item",children:[a("span",{children:r}),a("button",{"aria-label":`${o.ariaLabelRemove} ${r}`,onClick:()=>S(r),"data-testid":`remove-giftcard-${t+1}`,children:a(v,{source:L,size:"16"})})]},r)),h=c.size>0?a("div",{"data-testid":"giftcard-code-error",children:Array.from(c)[0]}):void 0;return a(x,{...C,className:"cart-gift-cards",accordionSectionTitle:o.giftCardTitle,accordionSectionIcon:B,couponCodeField:a(b,{"aria-label":o.ariaLabel,type:"text",placeholder:o.placeholder,name:"giftCardCode",variant:"primary",value:"","data-testid":"giftcard-code-input",maxLength:50,error:c.size>0}),applyCouponsButton:a(A,{variant:"secondary",children:o.applyButton}),error:h,appliedCoupons:a("div",{children:g}),onApplyCoupon:u})};export{X as GiftCards,X as default}; diff --git a/scripts/__dropins__/storefront-cart/containers/GiftCards/GiftCards.d.ts b/scripts/__dropins__/storefront-cart/containers/GiftCards/GiftCards.d.ts new file mode 100644 index 0000000000..1dc24392f3 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/containers/GiftCards/GiftCards.d.ts @@ -0,0 +1,7 @@ +import { HTMLAttributes } from 'preact/compat'; +import { Container } from '@dropins/tools/types/elsie/src/lib'; + +export interface GiftCardsProps extends HTMLAttributes { +} +export declare const GiftCards: Container; +//# sourceMappingURL=GiftCards.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/containers/GiftCards/index.d.ts b/scripts/__dropins__/storefront-cart/containers/GiftCards/index.d.ts new file mode 100644 index 0000000000..646ffa9e9c --- /dev/null +++ b/scripts/__dropins__/storefront-cart/containers/GiftCards/index.d.ts @@ -0,0 +1,19 @@ +/******************************************************************** + * ADOBE CONFIDENTIAL + * __________________ + * + * Copyright 2024 Adobe + * All Rights Reserved. + * + * NOTICE: All information contained herein is, and remains + * the property of Adobe and its suppliers, if any. The intellectual + * and technical concepts contained herein are proprietary to Adobe + * and its suppliers and are protected by all applicable intellectual + * property laws, including trade secret and copyright laws. + * Dissemination of this information or reproduction of this material + * is strictly forbidden unless prior written permission is obtained + * from Adobe. + *******************************************************************/ +export * from './GiftCards'; +export { GiftCards as default } from './GiftCards'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/containers/GiftOptions.d.ts b/scripts/__dropins__/storefront-cart/containers/GiftOptions.d.ts new file mode 100644 index 0000000000..83a72b2ad3 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/containers/GiftOptions.d.ts @@ -0,0 +1,3 @@ +export * from './GiftOptions/index' +import _default from './GiftOptions/index' +export default _default diff --git a/scripts/__dropins__/storefront-cart/containers/GiftOptions.js b/scripts/__dropins__/storefront-cart/containers/GiftOptions.js new file mode 100644 index 0000000000..232797ec17 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/containers/GiftOptions.js @@ -0,0 +1,3 @@ +/*! Copyright 2025 Adobe +All Rights Reserved. */ +import{jsxs as f,Fragment as B,jsx as r}from"@dropins/tools/preact-jsx-runtime.js";import{classes as xe}from"@dropins/tools/lib.js";import{Modal as Ze,Price as le,ContentGrid as Xe,ImageSwatch as Je,Button as oe,Skeleton as Qe,SkeletonRow as Ye,Field as Z,Checkbox as ie,Input as ve,TextArea as Ue,Accordion as Pe,AccordionSection as Ne,Icon as J,Card as We,ProgressSpinner as De}from"@dropins/tools/components.js";/* empty css */import*as Q from"@dropins/tools/preact-compat.js";import{useState as P,useEffect as se,useId as Me,useCallback as K,useMemo as ne}from"@dropins/tools/preact-hooks.js";import{useText as X}from"@dropins/tools/i18n.js";import{s as H}from"../chunks/resetCart.js";import{S as Ve}from"../chunks/ChevronUp.js";import{S as $e}from"../chunks/ChevronDown.js";import{events as er}from"@dropins/tools/event-bus.js";import{u as rr}from"../chunks/updateProductsFromCart.js";import{s as tr}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 D=e=>Q.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},Q.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"}),Q.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M6.75 12.762L10.2385 15.75L17.25 9",stroke:"currentColor"})),de=e=>Q.createElement("svg",{width:20,height:23,viewBox:"0 0 20 23",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},Q.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})),ir=({view:e,showModal:o,productName:l,giftWrappingConfig:c,setShowModal:t,updateGiftOptions:p})=>{var O;const u=X({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"}),[n,d]=P();if(se(()=>{const i=c.find(N=>N.selected)??c[0];d(i)},[c]),!o||!c.length)return null;const m=l?`${u.modalTitle} ${l}`:u.defaultTitle;return f(Ze,{"data-testid":`gift-option-modal-${e}`,className:"cart-gift-options-view__modal",size:"medium",title:f(B,{children:[r("span",{children:m}),n&&((O=n==null?void 0:n.price)==null?void 0:O.value)>0?r(le,{amount:n.price.value,currency:n.price.currency,weight:"normal"}):null]}),centered:!0,onClose:t,children:[f("div",{className:"cart-gift-options-view__modal-content",children:[r("span",{className:"cart-gift-options-view__modal-text",children:u.modalWrappingText}),r(Xe,{emptyGridContent:r(B,{}),maxColumns:6,columnWidth:"100px",className:"cart-gift-options-view__modal-grid",children:c.map(i=>r(Je,{selected:(n==null?void 0:n.uid)===(i==null?void 0:i.uid),onValue:()=>{d(i)},name:"giftWrappingId",value:i.uid,src:i.image.url,alt:i.image.design,label:i.image.design,"data-testid":`gift-option-modal-image-${i.uid}`,className:"cart-gift-options-view__modal-grid-item"},i.uid))}),r("span",{className:"cart-gift-options-view__modal-sub-text",children:n==null?void 0:n.design})]}),r(oe,{"data-testid":"gift-option-modal-confirm-button",type:"button",onClick:()=>{p("giftWrappingId",n==null?void 0:n.uid,{isGiftWrappingSelected:!0}),t()},children:u.modalConfirmButton}),r(oe,{type:"button",variant:"secondary",onClick:t,"data-testid":"gift-option-modal-cancel-button",children:u.modalCancelButton})]})},nr=()=>r(Qe,{children:r(Ye,{variant:"row",size:"small",fullWidth:!0,lines:1,multilineGap:"small"})}),or=({className:e,view:o,item:l,giftOptions:c,disabled:t,cartData:p,giftWrappingConfig:u,setShowModal:n,onInputChange:d,areGiftOptionsVisible:m})=>{var $,S,z,q;const O=Me(),i=X({customize:`Cart.GiftOptions.${o}.customize`,giftReceiptIncludedTitle:`Cart.GiftOptions.${o}.giftReceiptIncluded.title`,giftReceiptIncludedText:`Cart.GiftOptions.${o}.giftReceiptIncluded.subtitle`,printedCardIncludedTitle:`Cart.GiftOptions.${o}.printedCardIncluded.title`,printedCardIncludedText:`Cart.GiftOptions.${o}.printedCardIncluded.subtitle`,giftOptionsWrapTitle:`Cart.GiftOptions.${o}.giftOptionsWrap.title`,giftOptionsWrapText:`Cart.GiftOptions.${o}.giftOptionsWrap.subtitle`,requiredFieldError:"Cart.GiftOptions.formText.requiredFieldError"}),N=l==null?void 0:l.productGiftWrapping,M=p==null?void 0:p.cartGiftWrapping,b=o==="product"?N:M,G=b==null?void 0:b.find(I=>I.uid===c.giftWrappingId),W=(G==null?void 0:G.design)??"",g=l==null?void 0:l.giftWrappingPrice,T=W?`${i.giftOptionsWrapText} ${W}`:"",_=+(((S=($=H.config)==null?void 0:$.printedCardPrice)==null?void 0:S.value)??0)>0?(z=H.config)==null?void 0:z.printedCardPrice:null;let v=null;g!=null&&g.value?v=g:(q=G==null?void 0:G.price)!=null&&q.value&&(v=G.price);const V=I=>I?f("span",{children:[" (+",r(le,{amount:I.value,currency:I.currency,weight:"normal"}),")"]}):null;return f("div",{className:xe([e,[`${e}--hidden`,!m.isGiftOptionsVisible]]),children:[m.isGiftReceiptVisible?r(Z,{disabled:t,className:"cart-gift-options-view__field-gift-receipt",children:r(ie,{id:`giftReceiptIncluded-${O}`,disabled:t,name:"giftReceiptIncluded",checked:c.giftReceiptIncluded,placeholder:i.giftReceiptIncludedTitle,label:i.giftReceiptIncludedTitle,description:i.giftReceiptIncludedText,onChange:d})}):null,m.isPrintedCartVisible?r(Z,{disabled:t,className:"cart-gift-options-view__field-printed-card",children:r(ie,{id:`printedCardIncluded-${O}`,disabled:t,name:"printedCardIncluded",checked:c.printedCardIncluded,placeholder:i.printedCardIncludedTitle,label:f(B,{children:[i.printedCardIncludedTitle,V(_)]}),description:i.printedCardIncludedText,onChange:d})}):null,m.isGiftWrappingVisible?f(B,{children:[r(Z,{disabled:t,className:"cart-gift-options-view__field-gift-wrap",children:r(ie,{id:`giftOptionsWrap-${O}`,disabled:t,name:"isGiftWrappingSelected",checked:c.isGiftWrappingSelected,placeholder:i.giftOptionsWrapTitle,label:f(B,{children:[i.giftOptionsWrapTitle,V(v)]}),description:T,onChange:d})}),r(oe,{disabled:t||!u.length,type:"button","data-testid":`gift-option-customize-${o}`,variant:"tertiary",onClick:()=>n(!0),children:i.customize})]}):null]})},sr=({view:e,giftOptions:o,disabled:l,errorMessage:c,onInputChange:t,onBlur:p,isGiftMessageVisible:u})=>{const n=Me(),d=X({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 u?f(B,{children:[r("span",{children:d.formTitle}),f("div",{children:[r("span",{children:d.formTo}),r(Z,{disabled:l,error:c.recipientName,children:r(ve,{id:`recipientName-${n}`,disabled:l,type:"text",name:"recipientName",value:o.recipientName,placeholder:d.formToPlaceholder,onChange:t,onBlur:p})})]}),f("div",{children:[r("span",{children:d.formFrom}),r(Z,{disabled:l,error:c.senderName,children:r(ve,{id:`senderName-${n}`,disabled:l,type:"text",name:"senderName",value:o.senderName,placeholder:d.formFromPlaceholder,onChange:t,onBlur:p})})]}),f("div",{children:[r("span",{children:d.giftMessageTitle}),r(Z,{disabled:l,children:r(Ue,{id:`message-${n}`,errorMessage:c.message,disabled:l,name:"message",value:o.message,label:d.formMessagePlaceholder,onChange:t,onBlur:p})})]})]}):null},dr=({view:e,giftOptions:o,giftWrappingConfig:l,readOnlyFormOrderView:c})=>{const t=X({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:p,senderName:u,message:n,giftReceiptIncluded:d,printedCardIncluded:m,isGiftWrappingSelected:O}=o,i=l==null?void 0:l.find(({uid:g})=>g===(o==null?void 0:o.giftWrappingId)),N=!!p||!!u||!!n,M=i==null?void 0:i.design,b=d||m||(i==null?void 0:i.selected),G=[{id:1,title:t.wrapping,message:O?M:""},{id:2,title:t.recipient,message:p},{id:3,title:t.sender,message:u},{id:4,title:t.message,message:n}],W=G.every(({message:g})=>!g);if(e==="product"&&!W)return r(Pe,{"data-testid":"gift-options-product",iconClose:Ve,iconOpen:$e,actionIconPosition:"right",children:r(Ne,{title:t.readOnlyProductTitle,showIconLeft:!0,iconLeft:de,defaultOpen:!1,renderContentWhenClosed:!1,children:r("div",{children:G.filter(g=>g.message).map(g=>f("p",{children:[g.title," ",g.message]},g.id))})})});if(e==="order"&&(N||b)){const g=f("div",{className:"cart-gift-options-readonly__header",children:[r(J,{source:de,size:"24"}),r("span",{children:t.readOnlyOrderTitle})]}),T=f(B,{children:[d?f("div",{className:"cart-gift-options-readonly__checkboxes cart-gift-options-readonly__checkboxes--gift-receipt",children:[r(J,{source:D,size:"16"}),r("p",{children:t.readOnlyOrderGiftReceiptTitle}),r("p",{children:t.readOnlyOrderGiftReceiptText})]}):null,m?f("div",{className:"cart-gift-options-readonly__checkboxes cart-gift-options-readonly__checkboxes--print-card",children:[r(J,{source:D,size:"16"}),r("p",{children:t.readOnlyOrderGiftPrintCardTitle}),r("p",{children:t.readOnlyOrderGiftPrintCardText})]}):null,i!=null&&i.selected?f("div",{className:"cart-gift-options-readonly__checkboxes cart-gift-options-readonly__checkboxes--gift-wrap",children:[r(J,{source:D,size:"16"}),f("p",{children:[t.readOnlyOrderGiftWrapTitle," (+",r(le,{amount:i.price.value,currency:i.price.currency,weight:"normal"}),")"]}),r("p",{children:`${t.readOnlyOrderGiftWrapOptionsText} ${i==null?void 0:i.design}`})]}):null]}),_=N?f("div",{className:"cart-gift-options-readonly__form",children:[r("div",{children:t.readOnlyOrderFormTitle}),f("div",{children:[f("p",{children:[r("span",{children:t.readOnlyOrderFormTo}),r("span",{children:p})]}),f("p",{children:[r("span",{children:t.readOnlyOrderFormFrom}),r("span",{children:u})]})]}),f("div",{children:[r("p",{children:t.readOnlyOrderFormMessageTitle}),r("p",{children:n})]})]}):null;return f(We,{variant:c,children:[g,T,_]})}return null},lr=({item:e,view:o,loading:l,giftOptions:c,showModal:t,isEditable:p,errorsField:u,updateLoading:n,cartData:d,fieldsDisabled:m,isGiftOptionsApplied:O,giftWrappingConfig:i,readOnlyFormOrderView:N,isGiftMessageVisible:M,areGiftOptionsVisible:b,onBlur:G,setShowModal:W,updateGiftOptions:g,onInputChange:T,handleFormMouseLeave:_})=>{const v=X({accordionHeading:`Cart.GiftOptions.${o}.accordionHeading`}),V=K($=>r(Pe,{"data-testid":"gift-options-product",iconClose:Ve,iconOpen:$e,actionIconPosition:"right",children:r(Ne,{title:f("div",{className:"cart-gift-options-view__icon--success",children:[r("span",{children:v.accordionHeading}),O?r(J,{source:D,size:"16"}):null]}),showIconLeft:!0,iconLeft:de,defaultOpen:O||$,renderContentWhenClosed:!1,children:f(B,{children:[r(or,{className:"cart-gift-options-view__top",view:o,item:e,giftOptions:c,disabled:m,onInputChange:T,cartData:d,giftWrappingConfig:i,setShowModal:W,areGiftOptionsVisible:b}),r("form",{className:"cart-gift-options-view__footer",onMouseLeave:_,children:r(sr,{view:o,giftOptions:c,disabled:m,errorMessage:u,onInputChange:T,onBlur:G,isGiftMessageVisible:M})})]})})}),[o,e,d,v,u,c,m,i,b,O,M,G,W,T,_]);return!b.isGiftOptionsVisible&&!M?null:f("div",{id:"cart-gift-options-view",className:xe(["cart-gift-options-view",`cart-gift-options-view--${o}`,["cart-gift-options-view--loading",n]]),children:[n?r(De,{className:"cart-gift-options-view__spinner"}):null,l?r(nr,{}):f(B,{children:[p?null:r("div",{className:"cart-gift-options-view--readonly",children:r(dr,{view:o,giftOptions:c,giftWrappingConfig:i,readOnlyFormOrderView:N})}),r(ir,{view:o,productName:e&&"name"in e?e==null?void 0:e.name:"",showModal:t,giftWrappingConfig:i,setShowModal:()=>W(!1),updateGiftOptions:g}),o==="product"&&p?V(!1):null,o==="order"&&p?r(We,{variant:"secondary",children:V(!0)}):null]})]})},U={recipientName:"",senderName:"",message:""},cr={giftReceiptIncluded:!1,printedCardIncluded:!1,isGiftWrappingSelected:!1},Re=(e,o)=>{var c,t;if(!o)return!!((c=H.config)!=null&&c.allowGiftMessageOnOrder);const l=((t=H.config)==null?void 0:t.allowGiftMessageOnOrderItems)??!1;return typeof(e==null?void 0:e.giftMessageAvailable)=="boolean"?e==null?void 0:e.giftMessageAvailable:l},ar=(e,o)=>{const{allowGiftWrappingOnOrder:l,allowGiftWrappingOnOrderItems:c,allowGiftMessageOnOrder:t,allowGiftMessageOnOrderItems:p,allowGiftReceipt:u,allowPrintedCard:n}=H.config||{},d=!p&&!c&&!Re(o,!0),m=!l&&!t&&!u&&!n;return!!(e==="product"&&d||e==="order"&&m)},fr=({item:e,view:o,dataSource:l,initialLoading:c,handleItemsLoading:t,handleItemsError:p,onItemUpdate:u,onGiftOptionsChange:n})=>{var ae,fe,pe,ue,ge,me;const d=o==="product",m=X({requiredFieldError:"Cart.GiftOptions.formText.requiredFieldError"}),[O,i]=P(()=>c),[N,M]=P({isGiftReceiptVisible:!0,isPrintedCartVisible:!0,isGiftWrappingVisible:!0,isGiftOptionsVisible:!0}),[b,G]=P(!0),[W,g]=P(!1),[T,_]=P(!1),[v,V]=P(!1),[$,S]=P(!1),[z,q]=P(!1),[I,ke]=P([]),[h,Se]=P(null),[Ie,ee]=P(U),[y,ce]=P(()=>({giftWrappingId:"",...U,...cr})),re=((ae=y.recipientName)==null?void 0:ae.trim())&&((fe=y.senderName)==null?void 0:fe.trim())&&((pe=y.message)==null?void 0:pe.trim()),Y=!((ue=y.recipientName)!=null&&ue.trim())&&!((ge=y.senderName)!=null&&ge.trim())&&!((me=y.message)!=null&&me.trim()),k=K(async s=>{switch(g(o==="order"),_(!0),o){case"product":{"uid"in e&&(t==null||t(e.uid,!0),p==null||p(e.uid));const{recipientName:a,senderName:F,message:C,giftWrappingId:x,isGiftWrappingSelected:w}=s,E={gift_message:{to:a??"",from:F??"",message:C??""},gift_wrapping_id:w?x:null};"uid"in e&&"quantity"in e&&await rr([{uid:e.uid,quantity:e.quantity,giftOptions:E}]).then(()=>{u==null||u({item:e})}).finally(()=>{t==null||t(e.uid,!1),_(!1),V(!1),g(!1)}).catch(R=>{console.warn(R)})}break;case"order":await tr(s).finally(()=>{_(!1),V(!1),g(!1)});break;default:console.error('Incorrect "view" prop value provided for GiftOptions container (storefront-cart)');break}},[p,t,e,u,o]),te=K((s,a,F={})=>{ce(C=>{const x=A=>A in C,w=A=>x(A)?C[A]:void 0;if(!(w(s)!==a||Object.keys(F).some(A=>w(A)!==F[A])))return n==null||n(C),C;const R={...C,[s]:a,...F};return!R.recipientName&&!R.senderName&&!R.message&&S(!0),(typeof a=="boolean"||["giftWrappingId","giftReceiptIncluded","printedCardIncluded"].includes(s))&&(typeof n=="function"?n(R):k(R)),V(!0),n==null||n(R),R})},[k,n]),Ae=K(async()=>{T||typeof n!="function"&&(Y&&$&&(ee(U),S(!1),await k(y)),v&&re&&(S(!0),await k(y)))},[k,y,v,Y,$,T,n]),He=K(async s=>{if(T||typeof n=="function")return;const{name:a,value:F}=s.target;ee(C=>({...C,[a]:F.trim()?"":m.requiredFieldError})),Y&&$&&(ee(U),S(!1),await k(y)),v&&re&&await k(y)},[T,Y,$,v,re,m,k,y,n]),Be=K(s=>{const a=s.target,F=a.name,C=a.type==="checkbox"?a.checked:a.value;te(F,C)},[te]);se(()=>{if(d)return;const s=er.on(l==="cart"?"cart/data":"order/data",a=>{var x,w;Se(a);const F=(x=a==null?void 0:a.items)==null?void 0:x.every(({giftWrappingAvailable:E})=>E),C=(w=a==null?void 0:a.cartGiftWrapping)==null?void 0:w.some(E=>E.selected);!F&&C&&k({...y,giftWrappingId:"",isGiftWrappingSelected:!1})},{eager:!0});return()=>{s==null||s.off()}},[k,l,y,d]);const L=ne(()=>{var Ge,ye,Te,Fe,we,be;if(!h&&!e)return null;const s=d?(Ge=e==null?void 0:e.productGiftWrapping)==null?void 0:Ge.map(j=>{var _e;return{...j,price:e!=null&&e.giftWrappingPrice&&((_e=e==null?void 0:e.giftWrappingPrice)==null?void 0:_e.value)>0?e.giftWrappingPrice:j.price}}):(h==null?void 0:h.cartGiftWrapping)||[],a=s==null?void 0:s.find(j=>j.selected),F=(a==null?void 0:a.uid)??((ye=s==null?void 0:s[0])==null?void 0:ye.uid),C=!!a,x=d?e.giftMessage:h==null?void 0:h.giftMessage,w=h==null?void 0:h.printedCardIncluded,E=h==null?void 0:h.giftReceiptIncluded,R=Re(e,d),A=(Te=H.config)==null?void 0:Te.allowGiftWrappingOnOrder,qe=(Fe=H.config)==null?void 0:Fe.allowGiftReceipt,Le=(we=H.config)==null?void 0:we.allowPrintedCard,je=(be=h==null?void 0:h.items)==null?void 0:be.every(j=>j.giftWrappingAvailable),Ke=e==null?void 0:e.giftWrappingAvailable,Oe=d?!1:!!qe,he=d?!1:!!Le,Ce=d?!!Ke&&!!s.length:!!A&&!!s.length&&!!je;return M({isGiftReceiptVisible:Oe,isPrintedCartVisible:he,isGiftWrappingVisible:Ce,isGiftOptionsVisible:!(!Oe&&!he&&!Ce)}),G(R),{...e&&"uid"in e?{itemId:e.uid}:{},...d?{}:{printedCardIncluded:w,giftReceiptIncluded:E},...x,giftWrappingId:F,isGiftWrappingSelected:C,giftWrappingOptions:s}},[h,e,d]);se(()=>{if(!L)return;const{giftWrappingOptions:s}=L;ce(a=>{const F=x=>x in a,C=Object.keys(L).reduce((x,w)=>F(w)&&a[w]!==L[w]?{...x,[w]:L[w]}:x,{});return Object.keys(C).length>0?{...a,...C}:a}),s!=null&&s.length&&ke(s),i(!1)},[L]);const Ee=ne(()=>Object.entries(y).filter(([s])=>s!=="itemId"&&s!=="giftWrappingId").some(([,s])=>!!s),[y]),ze=ne(()=>{var s;return!O&&!!((s=H)!=null&&s.config)&&ar(o,e)},[e,O,o]);return{loading:O,giftOptions:y,showModal:z,errorsField:Ie,updateLoading:W,cartData:h,fieldsDisabled:T,isGiftOptionsApplied:Ee,giftWrappingConfig:I,setFieldsDisabled:_,handleFormMouseLeave:Ae,onInputChange:Be,updateGiftOptions:te,setShowModal:q,handleBlur:He,isGiftMessageVisible:b,areGiftOptionsVisible:N,isGiftOptionsHidden:ze}},Wr=({item:e,view:o="order",readOnlyFormOrderView:l="primary",dataSource:c="cart",isEditable:t=!0,initialLoading:p=!0,handleItemsLoading:u,handleItemsError:n,onItemUpdate:d,onGiftOptionsChange:m})=>{const{isGiftMessageVisible:O,areGiftOptionsVisible:i,loading:N,giftOptions:M,showModal:b,errorsField:G,updateLoading:W,cartData:g,isGiftOptionsApplied:T,fieldsDisabled:_,giftWrappingConfig:v,handleFormMouseLeave:V,updateGiftOptions:$,setShowModal:S,onInputChange:z,handleBlur:q,isGiftOptionsHidden:I}=fr({item:e,view:o,dataSource:c,initialLoading:p,handleItemsLoading:u,handleItemsError:n,onItemUpdate:d,onGiftOptionsChange:m});return I?null:r(lr,{item:e,view:o,loading:N,onBlur:q,giftOptions:M,showModal:b,isEditable:t,errorsField:G,setShowModal:S,updateLoading:W,updateGiftOptions:$,cartData:g,isGiftOptionsApplied:T,fieldsDisabled:_,giftWrappingConfig:v,handleFormMouseLeave:V,readOnlyFormOrderView:l,onInputChange:z,isGiftMessageVisible:O,areGiftOptionsVisible:i})};export{Wr as GiftOptions,Wr as default}; diff --git a/scripts/__dropins__/storefront-cart/containers/GiftOptions/GiftOptions.d.ts b/scripts/__dropins__/storefront-cart/containers/GiftOptions/GiftOptions.d.ts new file mode 100644 index 0000000000..9d8f3fae31 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/containers/GiftOptions/GiftOptions.d.ts @@ -0,0 +1,20 @@ +import { Item } from '../../data/models'; +import { Container } from '@dropins/tools/types/elsie/src/lib'; +import { GiftOptionsViewProps, GiftOptionsDataSourcesProps, GiftFormDataType, ProductGiftOptionsConfig, GiftOptionsReadOnlyViewProps } from '../../types'; + +export interface GiftOptionsProps { + item: Item | ProductGiftOptionsConfig; + view?: GiftOptionsViewProps; + readOnlyFormOrderView: GiftOptionsReadOnlyViewProps; + dataSource?: GiftOptionsDataSourcesProps; + isEditable?: boolean; + initialLoading?: boolean; + handleItemsLoading?: (uid: string, state: boolean) => void; + handleItemsError?: (uid: string, message?: string) => void; + onItemUpdate?: ({ item }: { + item: Item; + }) => void; + onGiftOptionsChange?: (data: GiftFormDataType) => void; +} +export declare const GiftOptions: Container; +//# sourceMappingURL=GiftOptions.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/containers/GiftOptions/index.d.ts b/scripts/__dropins__/storefront-cart/containers/GiftOptions/index.d.ts new file mode 100644 index 0000000000..74fc33341c --- /dev/null +++ b/scripts/__dropins__/storefront-cart/containers/GiftOptions/index.d.ts @@ -0,0 +1,19 @@ +/******************************************************************** + * ADOBE CONFIDENTIAL + * __________________ + * + * Copyright 2024 Adobe + * All Rights Reserved. + * + * NOTICE: All information contained herein is, and remains + * the property of Adobe and its suppliers, if any. The intellectual + * and technical concepts contained herein are proprietary to Adobe + * and its suppliers and are protected by all applicable intellectual + * property laws, including trade secret and copyright laws. + * Dissemination of this information or reproduction of this material + * is strictly forbidden unless prior written permission is obtained + * from Adobe. + *******************************************************************/ +export * from './GiftOptions'; +export { GiftOptions as default } from './GiftOptions'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/containers/MiniCart.js b/scripts/__dropins__/storefront-cart/containers/MiniCart.js index 2c503eb48e..eaff7f06d8 100644 --- a/scripts/__dropins__/storefront-cart/containers/MiniCart.js +++ b/scripts/__dropins__/storefront-cart/containers/MiniCart.js @@ -1,3 +1,3 @@ /*! Copyright 2025 Adobe All Rights Reserved. */ -import{jsx as i,jsxs as s,Fragment as X}from"@dropins/tools/preact-jsx-runtime.js";import{useState as A,useEffect as H,useCallback as R}from"@dropins/tools/preact-compat.js";import{classes as h,VComponent as u,Slot as _}from"@dropins/tools/lib.js";import{g as j}from"../chunks/persisted-data.js";import{events as w}from"@dropins/tools/event-bus.js";import{Price as I,Button as N}from"@dropins/tools/components.js";/* empty css */import{useText as D}from"@dropins/tools/i18n.js";import{s as b}from"../chunks/resetCart.js";import{p as O}from"../chunks/acdl.js";import{u as B}from"../chunks/updateProductsFromCart.js";import"../chunks/CartSummaryGrid.js";import{C as V}from"../chunks/CartSummaryList.js";import"../chunks/OrderSummary.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/refreshCart.js";import"../fragments.js";import"../chunks/EmptyCart.js";import"../chunks/ChevronDown.js";import"../chunks/getEstimatedTotals.js";import"../chunks/OrderSummaryLine.js";import"../chunks/Coupon.js";const $=({className:f,products:m,productListFooter:l,subtotal:e,subtotalExcludingTaxes:d,preCheckoutSection:o,ctas:n,...x})=>{const p=D({subtotal:"Cart.MiniCart.subtotal",subtotalExcludingTaxes:"Cart.MiniCart.subtotalExcludingTaxes"});return i("div",{...x,className:h(["cart-mini-cart",f]),children:m&&s(X,{children:[i("div",{className:"cart-mini-cart__products","data-testid":"mini-cart-products-wrapper",children:m}),l&&i("div",{className:h(["cart-mini-cart__productListFooter"]),"data-testid":"mini-cart-product-list-footer",children:i(u,{node:l})}),s("div",{className:"cart-mini-cart__footer","data-testid":"mini-cart-subtotals",children:[e&&s("div",{className:"cart-mini-cart__footer__estimated-total","data-testid":"mini-cart-subtotal",children:[p.subtotal,i(u,{node:e})]}),d&&s("div",{className:"cart-mini-cart__footer__estimated-total-excluding-taxes","data-testid":"mini-cart-subtotal-excluding-taxes",children:[p.subtotalExcludingTaxes,i(u,{node:d,className:h(["dropin-price-summary__price","dropin-price-summary__price--muted"])})]}),o&&i("div",{className:h(["cart-mini-cart__preCheckoutSection"]),"data-testid":"mini-cart-pre-checkout-section",children:i(u,{node:o})}),n&&i(u,{node:n,className:"cart-mini-cart__footer__ctas"})]})]})})},q=({children:f,initialData:m=null,hideFooter:l=!0,slots:e,routeProduct:d,routeCart:o,routeCheckout:n,routeEmptyCartCTA:x,showDiscount:p,showSavings:P,...S})=>{var v,k,L;const[t,M]=A(m),a=(v=b.config)==null?void 0:v.shoppingCartDisplaySetting;H(()=>{const r=w.on("cart/data",y=>{M(y)},{eager:!0});return()=>{r==null||r.off()}},[]);const g=D({cartLink:"Cart.MiniCart.cartLink",checkoutLink:"Cart.MiniCart.checkoutLink"}),C=(r,y)=>B([{uid:r,quantity:y}]),Q=r=>C(r,0),c=t==null?void 0:t.hasOutOfStockItems,T=R(()=>{t&&!c&&O(t,b.locale)},[t,c]),E=i(_,{name:"ProductList",slot:e==null?void 0:e.ProductList,context:{itemQuantityUpdateHandler:C,itemRemoveHandler:Q,totalQuantity:t==null?void 0:t.totalQuantity},children:i(V,{"data-testid":"default-cart-summary-list",routeProduct:d,routeEmptyCartCTA:x,initialData:t,maxItems:(k=b.config)==null?void 0:k.miniCartMaxItemsDisplay,showMaxItems:!!((L=b.config)!=null&&L.miniCartMaxItemsDisplay),hideHeading:!(t!=null&&t.totalQuantity),hideFooter:l,enableRemoveItem:!0,showDiscount:p,showSavings:P})}),U=r=>i(_,{name:"ProductListFooter",slot:e==null?void 0:e.ProductListFooter,context:{data:r}}),F=r=>i(_,{name:"PreCheckoutSection",slot:e==null?void 0:e.PreCheckoutSection,context:{data:r}}),G=()=>(a==null?void 0:a.subtotal)==="INCLUDING_TAX"||(a==null?void 0:a.subtotal)==="INCLUDING_EXCLUDING_TAX"?{amount:t==null?void 0:t.subtotal.includingTax.value,currency:t==null?void 0:t.subtotal.includingTax.currency,"data-testid":"subtotal-including-tax",style:{font:"inherit"}}:{amount:t==null?void 0:t.subtotal.excludingTax.value,currency:t==null?void 0:t.subtotal.excludingTax.currency,"data-testid":"subtotal-excluding-tax",style:{font:"inherit"}};return i($,{...S,productListFooter:U(t),subtotal:t!=null&&t.totalQuantity?(t==null?void 0:t.subtotal)&&i(I,{...G()}):void 0,subtotalExcludingTaxes:t!=null&&t.totalQuantity?(t==null?void 0:t.subtotal)&&((a==null?void 0:a.subtotal)==="INCLUDING_EXCLUDING_TAX"?i(I,{amount:t==null?void 0:t.subtotal.excludingTax.value,currency:t==null?void 0:t.subtotal.excludingTax.currency,"data-testid":"subtotal-including-excluding-tax",style:{font:"inherit"}}):void 0):void 0,preCheckoutSection:F(t),ctas:t!=null&&t.totalQuantity?s("div",{children:[n&&i(N,{"data-testid":"route-checkout-button",variant:"primary",href:c?void 0:n(),disabled:c,"aria-disabled":c,onClick:T,children:g.checkoutLink}),o&&i(N,{"data-testid":"route-cart-button",variant:"tertiary",href:o(),children:g.cartLink})]}):void 0,products:E})};q.getInitialData=async function(){return j()};export{q as MiniCart,q as default}; +import{jsx as i,jsxs as s,Fragment as X}from"@dropins/tools/preact-jsx-runtime.js";import{useState as A,useEffect as H,useCallback as R}from"@dropins/tools/preact-compat.js";import{classes as h,VComponent as u,Slot as _}from"@dropins/tools/lib.js";import{g as j}from"../chunks/persisted-data.js";import{events as w}from"@dropins/tools/event-bus.js";import{Price as I,Button as N}from"@dropins/tools/components.js";/* empty css */import{useText as D}from"@dropins/tools/i18n.js";import"@dropins/tools/preact-hooks.js";import{s as b}from"../chunks/resetCart.js";import{p as O}from"../chunks/acdl.js";import{u as B}from"../chunks/updateProductsFromCart.js";import"../chunks/CartSummaryGrid.js";import{C as V}from"../chunks/CartSummaryList.js";import"../chunks/OrderSummary.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/refreshCart.js";import"../fragments.js";import"../chunks/EmptyCart.js";import"../chunks/ChevronDown.js";import"../chunks/getEstimatedTotals.js";import"../chunks/OrderSummaryLine.js";import"../chunks/ChevronUp.js";import"../chunks/Coupon.js";import"../chunks/GiftCard.js";const $=({className:f,products:m,productListFooter:l,subtotal:e,subtotalExcludingTaxes:d,preCheckoutSection:o,ctas:n,...x})=>{const p=D({subtotal:"Cart.MiniCart.subtotal",subtotalExcludingTaxes:"Cart.MiniCart.subtotalExcludingTaxes"});return i("div",{...x,className:h(["cart-mini-cart",f]),children:m&&s(X,{children:[i("div",{className:"cart-mini-cart__products","data-testid":"mini-cart-products-wrapper",children:m}),l&&i("div",{className:h(["cart-mini-cart__productListFooter"]),"data-testid":"mini-cart-product-list-footer",children:i(u,{node:l})}),s("div",{className:"cart-mini-cart__footer","data-testid":"mini-cart-subtotals",children:[e&&s("div",{className:"cart-mini-cart__footer__estimated-total","data-testid":"mini-cart-subtotal",children:[p.subtotal,i(u,{node:e})]}),d&&s("div",{className:"cart-mini-cart__footer__estimated-total-excluding-taxes","data-testid":"mini-cart-subtotal-excluding-taxes",children:[p.subtotalExcludingTaxes,i(u,{node:d,className:h(["dropin-price-summary__price","dropin-price-summary__price--muted"])})]}),o&&i("div",{className:h(["cart-mini-cart__preCheckoutSection"]),"data-testid":"mini-cart-pre-checkout-section",children:i(u,{node:o})}),n&&i(u,{node:n,className:"cart-mini-cart__footer__ctas"})]})]})})},q=({children:f,initialData:m=null,hideFooter:l=!0,slots:e,routeProduct:d,routeCart:o,routeCheckout:n,routeEmptyCartCTA:x,showDiscount:p,showSavings:P,...S})=>{var v,k,L;const[t,M]=A(m),a=(v=b.config)==null?void 0:v.shoppingCartDisplaySetting;H(()=>{const r=w.on("cart/data",y=>{M(y)},{eager:!0});return()=>{r==null||r.off()}},[]);const g=D({cartLink:"Cart.MiniCart.cartLink",checkoutLink:"Cart.MiniCart.checkoutLink"}),C=(r,y)=>B([{uid:r,quantity:y}]),Q=r=>C(r,0),c=t==null?void 0:t.hasOutOfStockItems,T=R(()=>{t&&!c&&O(t,b.locale)},[t,c]),E=i(_,{name:"ProductList",slot:e==null?void 0:e.ProductList,context:{itemQuantityUpdateHandler:C,itemRemoveHandler:Q,totalQuantity:t==null?void 0:t.totalQuantity},children:i(V,{"data-testid":"default-cart-summary-list",routeProduct:d,routeEmptyCartCTA:x,initialData:t,maxItems:(k=b.config)==null?void 0:k.miniCartMaxItemsDisplay,showMaxItems:!!((L=b.config)!=null&&L.miniCartMaxItemsDisplay),hideHeading:!(t!=null&&t.totalQuantity),hideFooter:l,enableRemoveItem:!0,showDiscount:p,showSavings:P})}),U=r=>i(_,{name:"ProductListFooter",slot:e==null?void 0:e.ProductListFooter,context:{data:r}}),F=r=>i(_,{name:"PreCheckoutSection",slot:e==null?void 0:e.PreCheckoutSection,context:{data:r}}),G=()=>(a==null?void 0:a.subtotal)==="INCLUDING_TAX"||(a==null?void 0:a.subtotal)==="INCLUDING_EXCLUDING_TAX"?{amount:t==null?void 0:t.subtotal.includingTax.value,currency:t==null?void 0:t.subtotal.includingTax.currency,"data-testid":"subtotal-including-tax",style:{font:"inherit"}}:{amount:t==null?void 0:t.subtotal.excludingTax.value,currency:t==null?void 0:t.subtotal.excludingTax.currency,"data-testid":"subtotal-excluding-tax",style:{font:"inherit"}};return i($,{...S,productListFooter:U(t),subtotal:t!=null&&t.totalQuantity?(t==null?void 0:t.subtotal)&&i(I,{...G()}):void 0,subtotalExcludingTaxes:t!=null&&t.totalQuantity?(t==null?void 0:t.subtotal)&&((a==null?void 0:a.subtotal)==="INCLUDING_EXCLUDING_TAX"?i(I,{amount:t==null?void 0:t.subtotal.excludingTax.value,currency:t==null?void 0:t.subtotal.excludingTax.currency,"data-testid":"subtotal-including-excluding-tax",style:{font:"inherit"}}):void 0):void 0,preCheckoutSection:F(t),ctas:t!=null&&t.totalQuantity?s("div",{children:[n&&i(N,{"data-testid":"route-checkout-button",variant:"primary",href:c?void 0:n(),disabled:c,"aria-disabled":c,onClick:T,children:g.checkoutLink}),o&&i(N,{"data-testid":"route-cart-button",variant:"tertiary",href:o(),children:g.cartLink})]}):void 0,products:E})};q.getInitialData=async function(){return j()};export{q as MiniCart,q as default}; diff --git a/scripts/__dropins__/storefront-cart/containers/OrderSummary.js b/scripts/__dropins__/storefront-cart/containers/OrderSummary.js index 658e9aa06d..290828a58e 100644 --- a/scripts/__dropins__/storefront-cart/containers/OrderSummary.js +++ b/scripts/__dropins__/storefront-cart/containers/OrderSummary.js @@ -1,3 +1,3 @@ /*! Copyright 2025 Adobe All Rights Reserved. */ -import{O as g,O as h}from"../chunks/OrderSummary.js";import"@dropins/tools/preact-jsx-runtime.js";import"@dropins/tools/preact-compat.js";import"@dropins/tools/lib.js";import"@dropins/tools/event-bus.js";import"../chunks/persisted-data.js";import"../chunks/resetCart.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/getEstimatedTotals.js";import"../chunks/refreshCart.js";import"../fragments.js";import"../chunks/acdl.js";import"@dropins/tools/components.js";/* empty css */import"../chunks/OrderSummaryLine.js";import"../chunks/ChevronDown.js";import"@dropins/tools/i18n.js";import"../chunks/Coupon.js";export{g as OrderSummary,h as default}; +import{O as k,O as n}from"../chunks/OrderSummary.js";import"@dropins/tools/preact-jsx-runtime.js";import"@dropins/tools/preact-compat.js";import"@dropins/tools/lib.js";import"@dropins/tools/event-bus.js";import"../chunks/persisted-data.js";import"../chunks/resetCart.js";import"@dropins/tools/fetch-graphql.js";import"../chunks/getEstimatedTotals.js";import"../chunks/refreshCart.js";import"../fragments.js";import"../chunks/acdl.js";import"@dropins/tools/preact-hooks.js";import"@dropins/tools/components.js";/* empty css */import"../chunks/OrderSummaryLine.js";import"../chunks/ChevronDown.js";import"../chunks/ChevronUp.js";import"@dropins/tools/i18n.js";import"../chunks/Coupon.js";import"../chunks/GiftCard.js";export{k as OrderSummary,n as default}; diff --git a/scripts/__dropins__/storefront-cart/containers/OrderSummary/OrderSummary.d.ts b/scripts/__dropins__/storefront-cart/containers/OrderSummary/OrderSummary.d.ts index e0e3403fe0..9fc9a28d9a 100644 --- a/scripts/__dropins__/storefront-cart/containers/OrderSummary/OrderSummary.d.ts +++ b/scripts/__dropins__/storefront-cart/containers/OrderSummary/OrderSummary.d.ts @@ -11,8 +11,10 @@ export interface OrderSummaryProps extends HTMLAttributes { slots?: { EstimateShipping?: SlotProps; Coupons?: SlotProps; + GiftCards?: SlotProps; }; enableCoupons?: boolean; + enableGiftCards?: boolean; errors: boolean; showTotalSaved?: boolean; updateLineItems?: (lineItems: Array) => Array; diff --git a/scripts/__dropins__/storefront-cart/containers/OrderSummaryLine.js b/scripts/__dropins__/storefront-cart/containers/OrderSummaryLine.js index 4a4510c1c8..af5b80fa61 100644 --- a/scripts/__dropins__/storefront-cart/containers/OrderSummaryLine.js +++ b/scripts/__dropins__/storefront-cart/containers/OrderSummaryLine.js @@ -1,3 +1,3 @@ /*! Copyright 2025 Adobe All Rights Reserved. */ -import{O as e,O}from"../chunks/OrderSummaryLine.js";import"@dropins/tools/preact-jsx-runtime.js";import"@dropins/tools/lib.js";import"@dropins/tools/components.js";/* empty css */import"@dropins/tools/preact-compat.js";export{e as OrderSummaryLine,O as default}; +import{O,O as d}from"../chunks/OrderSummaryLine.js";import"@dropins/tools/preact-jsx-runtime.js";import"@dropins/tools/lib.js";import"@dropins/tools/components.js";/* empty css */import"@dropins/tools/preact-compat.js";import"@dropins/tools/preact-hooks.js";export{O as OrderSummaryLine,d as default}; diff --git a/scripts/__dropins__/storefront-cart/containers/OrderSummaryLine/OrderSummaryLine.d.ts b/scripts/__dropins__/storefront-cart/containers/OrderSummaryLine/OrderSummaryLine.d.ts index 20539fa9d4..9c909de0d0 100644 --- a/scripts/__dropins__/storefront-cart/containers/OrderSummaryLine/OrderSummaryLine.d.ts +++ b/scripts/__dropins__/storefront-cart/containers/OrderSummaryLine/OrderSummaryLine.d.ts @@ -2,8 +2,8 @@ import { HTMLAttributes } from 'preact/compat'; import { Container } from '@dropins/tools/types/elsie/src/lib'; import { VNode } from 'preact'; -export interface OrderSummaryLineProps extends HTMLAttributes { - label: string; +export interface OrderSummaryLineProps extends Omit, 'label'> { + label: VNode | string; price: VNode>; classSuffixes?: Array; labelClassSuffix?: string; diff --git a/scripts/__dropins__/storefront-cart/containers/index.d.ts b/scripts/__dropins__/storefront-cart/containers/index.d.ts index d18c60a0c6..da611c378e 100644 --- a/scripts/__dropins__/storefront-cart/containers/index.d.ts +++ b/scripts/__dropins__/storefront-cart/containers/index.d.ts @@ -22,4 +22,6 @@ export * from './OrderSummary'; export * from './EmptyCart'; export * from './Coupons'; export * from './OrderSummaryLine'; +export * from './GiftCards'; +export * from './GiftOptions'; //# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/data/models/cart-model.d.ts b/scripts/__dropins__/storefront-cart/data/models/cart-model.d.ts index 5a203b8b52..97e50ca151 100644 --- a/scripts/__dropins__/storefront-cart/data/models/cart-model.d.ts +++ b/scripts/__dropins__/storefront-cart/data/models/cart-model.d.ts @@ -15,6 +15,29 @@ * from Adobe. *******************************************************************/ export interface CartModel { + totalGiftOptions: { + giftWrappingForItems: Price; + giftWrappingForItemsInclTax: Price; + giftWrappingForOrder: Price; + giftWrappingForOrderInclTax: Price; + printedCard: Price; + printedCardInclTax: Price; + }; + cartGiftWrapping: { + uid: string; + design: string; + selected: boolean; + image: WrappingImage; + price: Price; + }[]; + giftReceiptIncluded: boolean; + printedCardIncluded: boolean; + giftMessage: { + recipientName: string; + senderName: string; + message: string; + }; + appliedGiftCards: AppliedGiftCardProps[]; id: string; totalQuantity: number; totalUniqueItems: number; @@ -48,6 +71,12 @@ export interface CartModel { hasFullyOutOfStockItems?: boolean; appliedCoupons?: Coupon[]; } +export interface AppliedGiftCardProps { + code: string; + appliedBalance: Price; + currentBalance: Price; + expirationDate: string; +} interface TotalPriceModifier { amount: Price; label: string; @@ -58,6 +87,24 @@ interface FixedProductTax { label: string; } export interface Item { + giftWrappingAvailable: boolean; + giftWrappingPrice: { + currency: string; + value: number; + }; + productGiftWrapping: { + uid: string; + design: string; + selected: boolean; + image: WrappingImage; + price: Price; + }[]; + giftMessage: { + recipientName: string; + senderName: string; + message: string; + }; + giftMessageAvailable: boolean | null; taxedPrice: Price; rowTotal: Price; rowTotalIncludingTax: Price; @@ -135,5 +182,9 @@ interface Attribute { interface Coupon { code: string; } +export interface WrappingImage { + url: string; + design: string; +} export {}; //# sourceMappingURL=cart-model.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/data/models/gift-card-account.d.ts b/scripts/__dropins__/storefront-cart/data/models/gift-card-account.d.ts new file mode 100644 index 0000000000..703f584c6c --- /dev/null +++ b/scripts/__dropins__/storefront-cart/data/models/gift-card-account.d.ts @@ -0,0 +1,8 @@ +import { Price } from './cart-model'; + +export type GiftCardAccountResponse = { + code: string; + balance: Price; + expirationDate: string; +}; +//# sourceMappingURL=gift-card-account.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/data/models/index.d.ts b/scripts/__dropins__/storefront-cart/data/models/index.d.ts index ee523c8c0e..a4f4e33cd9 100644 --- a/scripts/__dropins__/storefront-cart/data/models/index.d.ts +++ b/scripts/__dropins__/storefront-cart/data/models/index.d.ts @@ -17,4 +17,5 @@ export * from './cart-model'; export * from './shipping-models'; export * from './store-models'; +export * from './gift-card-account'; //# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/data/models/store-models.d.ts b/scripts/__dropins__/storefront-cart/data/models/store-models.d.ts index fe9932b556..078479c595 100644 --- a/scripts/__dropins__/storefront-cart/data/models/store-models.d.ts +++ b/scripts/__dropins__/storefront-cart/data/models/store-models.d.ts @@ -1,19 +1,5 @@ -/******************************************************************** - * ADOBE CONFIDENTIAL - * __________________ - * - * Copyright 2024 Adobe - * All Rights Reserved. - * - * NOTICE: All information contained herein is, and remains - * the property of Adobe and its suppliers, if any. The intellectual - * and technical concepts contained herein are proprietary to Adobe - * and its suppliers and are protected by all applicable intellectual - * property laws, including trade secret and copyright laws. - * Dissemination of this information or reproduction of this material - * is strictly forbidden unless prior written permission is obtained - * from Adobe. - *******************************************************************/ +import { Price } from './cart-model'; + export interface StoreConfigModel { displayMiniCart: boolean; miniCartMaxItemsDisplay: number; @@ -34,5 +20,14 @@ export interface StoreConfigModel { zeroTax: boolean; }; useConfigurableParentThumbnail: boolean; + allowGiftWrappingOnOrder: boolean | null; + allowGiftWrappingOnOrderItems: boolean | null; + allowGiftMessageOnOrder: boolean | null; + allowGiftMessageOnOrderItems: boolean | null; + allowGiftReceipt: boolean; + allowPrintedCard: boolean; + printedCardPrice: Price; + cartGiftWrapping: string; + cartPrintedCard: string; } //# sourceMappingURL=store-models.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/data/transforms/__fixtures__/cartModel.d.ts b/scripts/__dropins__/storefront-cart/data/transforms/__fixtures__/cartModel.d.ts index 11cb8f6f3a..80a02e7c33 100644 --- a/scripts/__dropins__/storefront-cart/data/transforms/__fixtures__/cartModel.d.ts +++ b/scripts/__dropins__/storefront-cart/data/transforms/__fixtures__/cartModel.d.ts @@ -3,4 +3,18 @@ import { CartModel } from '../../models/cart-model'; export declare const cart: CartModel; export declare const sampleDataCart: CartModel; export declare const sampleDataWithCoupons: CartModel; +export declare const sampleDataWithGiftCodes: CartModel; +export declare const sampleGiftWrappingConfig: { + design: string; + uid: string; + selected: boolean; + image: { + url: string; + label: string; + }; + price: { + currency: string; + value: number; + }; +}[]; //# sourceMappingURL=cartModel.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/data/transforms/__fixtures__/productTypesData.d.ts b/scripts/__dropins__/storefront-cart/data/transforms/__fixtures__/productTypesData.d.ts index 60ac98bf2f..d7448a6a21 100644 --- a/scripts/__dropins__/storefront-cart/data/transforms/__fixtures__/productTypesData.d.ts +++ b/scripts/__dropins__/storefront-cart/data/transforms/__fixtures__/productTypesData.d.ts @@ -28,6 +28,7 @@ declare const bundleOptions: { }[]; uid: string; quantity: number; + gift_message_available: string; errors: null; prices: { price: { @@ -93,6 +94,7 @@ declare const bundleOptionsEmpty: { bundle_options: never[]; uid: string; quantity: number; + gift_message_available: string; errors: null; prices: { price: { @@ -160,6 +162,7 @@ declare const giftCardPhysical: { sender_name: string; uid: string; quantity: number; + gift_message_available: string; errors: null; prices: { price: { @@ -229,6 +232,7 @@ declare const giftCardVirtual: { sender_name: string; uid: string; quantity: number; + gift_message_available: string; errors: null; prices: { price: { @@ -292,6 +296,7 @@ declare const giftCardVirtual: { declare const simple: { uid: string; quantity: number; + gift_message_available: string; errors: null; prices: { price: { @@ -374,6 +379,7 @@ declare const simpleCustomizable: { })[]; uid: string; quantity: number; + gift_message_available: string; errors: null; prices: { price: { @@ -466,6 +472,7 @@ declare const configurable: { }; uid: string; quantity: number; + gift_message_available: string; errors: null; prices: { price: { @@ -576,6 +583,7 @@ declare const configurableCustomizable: { }; uid: string; quantity: number; + gift_message_available: string; errors: null; prices: { price: { @@ -640,6 +648,7 @@ declare const giftCard: { __typename: string; uid: string; quantity: number; + gift_message_available: string; errors: null; prices: { price: { @@ -708,6 +717,7 @@ declare const downloadbleWithMultipleLinks: { }[]; uid: string; quantity: number; + gift_message_available: string; errors: null; prices: { price: { @@ -804,6 +814,7 @@ declare const simpleLowInventory: { }; uid: string; quantity: number; + gift_message_available: string; errors: null; prices: { price: { @@ -876,6 +887,7 @@ declare const complexInsufficientQuantity: { }[]; uid: string; quantity: number; + gift_message_available: string; errors: null; prices: { price: { @@ -948,6 +960,7 @@ declare const complexInsufficientQuantityGeneralMessage: { }[]; uid: string; quantity: number; + gift_message_available: string; errors: null; prices: { price: { @@ -1030,6 +1043,7 @@ declare const complexWithProductAttributes: { }[]; uid: string; quantity: number; + gift_message_available: string; errors: null; prices: { price: { @@ -1122,6 +1136,7 @@ declare const simpleWithNoDiscount: { }; uid: string; quantity: number; + gift_message_available: string; errors: null; }; export { bundleOptions, bundleOptionsEmpty, giftCardPhysical, giftCardVirtual, simple, simpleCustomizable, configurable, configurableCustomizable, giftCard, downloadbleWithMultipleLinks, simpleLowInventory, complexInsufficientQuantity, complexInsufficientQuantityGeneralMessage, complexWithProductAttributes, simpleWithNoDiscount, }; diff --git a/scripts/__dropins__/storefront-cart/data/transforms/index.d.ts b/scripts/__dropins__/storefront-cart/data/transforms/index.d.ts index 7a549a6980..340b9436c5 100644 --- a/scripts/__dropins__/storefront-cart/data/transforms/index.d.ts +++ b/scripts/__dropins__/storefront-cart/data/transforms/index.d.ts @@ -16,4 +16,5 @@ *******************************************************************/ export * from './transform-cart'; export * from './transform-store-config'; +export * from './transform-gift-card-account'; //# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/data/transforms/transform-gift-card-account.d.ts b/scripts/__dropins__/storefront-cart/data/transforms/transform-gift-card-account.d.ts new file mode 100644 index 0000000000..d02e82e969 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/data/transforms/transform-gift-card-account.d.ts @@ -0,0 +1,4 @@ +import { GiftCardAccountResponse } from '../models'; + +export declare function transformGiftCardAccount(data: any): GiftCardAccountResponse | null; +//# sourceMappingURL=transform-gift-card-account.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/fragments.js b/scripts/__dropins__/storefront-cart/fragments.js index daa8effdcd..ca0fa696dc 100644 --- a/scripts/__dropins__/storefront-cart/fragments.js +++ b/scripts/__dropins__/storefront-cart/fragments.js @@ -31,7 +31,7 @@ const e=` } } } -`,t=` +`,_=` fragment CUSTOMIZABLE_OPTIONS_FRAGMENT on SelectedCustomizableOption { type customizable_option_uid @@ -57,7 +57,55 @@ const e=` ...CUSTOMIZABLE_OPTIONS_FRAGMENT } } +`,t=` + fragment APPLIED_GIFT_CARDS_FRAGMENT on AppliedGiftCard { + __typename + code + applied_balance { + value + currency + } + current_balance { + value + currency + } + expiration_date + } `,r=` + fragment GIFT_MESSAGE_FRAGMENT on GiftMessage { + __typename + from + to + message + } +`,i=` + fragment GIFT_WRAPPING_FRAGMENT on GiftWrapping { + __typename + uid + design + image { + url + } + price { + value + currency + } + } +`,n=` + fragment AVAILABLE_GIFT_WRAPPING_FRAGMENT on GiftWrapping { + __typename + uid + design + image { + url + label + } + price { + currency + value + } + } +`,l=` fragment CART_ITEM_FRAGMENT on CartItemInterface { __typename uid @@ -117,6 +165,12 @@ const e=` product { name sku + gift_message_available + gift_wrapping_available + gift_wrapping_price { + currency + value + } thumbnail { url label @@ -149,11 +203,29 @@ const e=` } } ... on SimpleCartItem { + available_gift_wrapping { + ...AVAILABLE_GIFT_WRAPPING_FRAGMENT + } + gift_message { + ...GIFT_MESSAGE_FRAGMENT + } + gift_wrapping { + ...GIFT_WRAPPING_FRAGMENT + } customizable_options { ...CUSTOMIZABLE_OPTIONS_FRAGMENT } } ... on ConfigurableCartItem { + available_gift_wrapping { + ...AVAILABLE_GIFT_WRAPPING_FRAGMENT + } + gift_message { + ...GIFT_MESSAGE_FRAGMENT + } + gift_wrapping { + ...GIFT_WRAPPING_FRAGMENT + } configurable_options { configurable_product_option_uid option_label @@ -178,6 +250,15 @@ const e=` } ...DOWNLOADABLE_CART_ITEMS_FRAGMENT ... on BundleCartItem { + available_gift_wrapping { + ...AVAILABLE_GIFT_WRAPPING_FRAGMENT + } + gift_message { + ...GIFT_MESSAGE_FRAGMENT + } + gift_wrapping { + ...GIFT_WRAPPING_FRAGMENT + } bundle_options { uid label @@ -202,14 +283,57 @@ const e=` } ${e} - ${t} + ${_} ${a} -`,n=` + ${i} + ${r} + ${n} +`,c=` fragment CART_FRAGMENT on Cart { id total_quantity is_virtual + applied_gift_cards { + ...APPLIED_GIFT_CARDS_FRAGMENT + } + gift_receipt_included + printed_card_included + gift_message { + ...GIFT_MESSAGE_FRAGMENT + } + gift_wrapping { + ...GIFT_WRAPPING_FRAGMENT + } + available_gift_wrappings { + ...AVAILABLE_GIFT_WRAPPING_FRAGMENT + } prices { + gift_options { + gift_wrapping_for_items { + currency + value + } + gift_wrapping_for_items_incl_tax { + currency + value + } + gift_wrapping_for_order { + currency + value + } + gift_wrapping_for_order_incl_tax { + currency + value + } + printed_card { + currency + value + } + printed_card_incl_tax { + currency + value + } + } subtotal_with_discount_excluding_tax { currency value @@ -272,5 +396,6 @@ const e=` } } - ${r} -`;export{n as CART_FRAGMENT,r as CART_ITEM_FRAGMENT,a as DOWNLOADABLE_CART_ITEMS_FRAGMENT}; + ${l} + ${t} +`;export{t as APPLIED_GIFT_CARDS_FRAGMENT,n as AVAILABLE_GIFT_WRAPPING_FRAGMENT,c as CART_FRAGMENT,l as CART_ITEM_FRAGMENT,a as DOWNLOADABLE_CART_ITEMS_FRAGMENT,r as GIFT_MESSAGE_FRAGMENT,i as GIFT_WRAPPING_FRAGMENT}; diff --git a/scripts/__dropins__/storefront-cart/hooks/index.d.ts b/scripts/__dropins__/storefront-cart/hooks/index.d.ts index 0cb86a53f8..9a46b52deb 100644 --- a/scripts/__dropins__/storefront-cart/hooks/index.d.ts +++ b/scripts/__dropins__/storefront-cart/hooks/index.d.ts @@ -16,4 +16,5 @@ *******************************************************************/ export * from './useEstimatedTotals'; export * from './useEstimatedShipping'; +export * from './useGiftOptions'; //# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/hooks/useGiftOptions.d.ts b/scripts/__dropins__/storefront-cart/hooks/useGiftOptions.d.ts new file mode 100644 index 0000000000..e136fb7f87 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/hooks/useGiftOptions.d.ts @@ -0,0 +1,46 @@ +import { CartModel, Item } from '../data/models'; +import { GiftOptionsDataSourcesProps, GiftOptionsViewProps, GiftWrappingConfigProps, GiftFormDataType, ProductGiftOptionsConfig } from '../types'; + +interface UseGiftOptionsProps { + item: Item | ProductGiftOptionsConfig; + view: GiftOptionsViewProps; + dataSource: GiftOptionsDataSourcesProps; + initialLoading: boolean; + handleItemsLoading?: (uid: string, state: boolean) => void; + handleItemsError?: (uid: string, message?: string) => void; + onItemUpdate?: ({ item }: { + item: Item; + }) => void; + onGiftOptionsChange?: (data: GiftFormDataType) => void; +} +export declare const useGiftOptions: ({ item, view, dataSource, initialLoading, handleItemsLoading, handleItemsError, onItemUpdate, onGiftOptionsChange, }: UseGiftOptionsProps) => { + loading: boolean; + giftOptions: GiftFormDataType; + showModal: boolean; + errorsField: { + recipientName: string; + senderName: string; + message: string; + }; + updateLoading: boolean; + cartData: CartModel | null; + fieldsDisabled: boolean; + isGiftOptionsApplied: boolean; + giftWrappingConfig: [] | GiftWrappingConfigProps[]; + setFieldsDisabled: import('preact/hooks').Dispatch>; + handleFormMouseLeave: () => Promise; + onInputChange: (event: Event) => void; + updateGiftOptions: (name: string, value: string | boolean | number | undefined, extraGiftOptions?: Record) => void; + setShowModal: import('preact/hooks').Dispatch>; + handleBlur: (event: Event) => Promise; + isGiftMessageVisible: boolean; + areGiftOptionsVisible: { + isGiftReceiptVisible: boolean; + isPrintedCartVisible: boolean; + isGiftWrappingVisible: boolean; + isGiftOptionsVisible: boolean; + }; + isGiftOptionsHidden: boolean; +}; +export {}; +//# sourceMappingURL=useGiftOptions.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/i18n/en_US.json.d.ts b/scripts/__dropins__/storefront-cart/i18n/en_US.json.d.ts index f5fc3998b2..734977a8fc 100644 --- a/scripts/__dropins__/storefront-cart/i18n/en_US.json.d.ts +++ b/scripts/__dropins__/storefront-cart/i18n/en_US.json.d.ts @@ -21,6 +21,38 @@ declare const _default: { "taxToBeDetermined": "TBD", "checkout": "Checkout", "orderSummary": "Order Summary", + "giftCard": { + "label": "Gift Card", + "applyAction": "Apply", + "ariaLabel": "Enter gift card code", + "ariaLabelRemove": "Remove gift card", + "placeholder": "Enter code", + "title": "Gift Card", + "errors": { + "empty": "Please enter a gift card code." + }, + "appliedGiftCards": { + "label": { "singular": "Gift card", "plural": "Gift cards" }, + "remainingBalance": "Remaining balance" + } + }, + "giftOptionsTax": { + "printedCard": { + "title": "Printed card", + "inclTax": "Including taxes", + "exclTax": "excluding taxes" + }, + "itemGiftWrapping": { + "title": "Item gift wrapping", + "inclTax": "Including taxes", + "exclTax": "excluding taxes" + }, + "orderGiftWrapping": { + "title": "Order gift wrapping", + "inclTax": "Including taxes", + "exclTax": "excluding taxes" + } + }, "subTotal": { "label": "Subtotal", "withTaxes": "Including taxes", @@ -73,7 +105,8 @@ declare const _default: { "coupon": { "applyAction": "Apply", "placeholder": "Enter code", - "title": "Discount code" + "title": "Discount code", + "ariaLabelRemove": "Remove coupon" } }, "CartItem": { @@ -111,6 +144,89 @@ declare const _default: { "message": "Please adjust quantities to continue", "alert": "Out of stock", "action": "Remove all out of stock items from cart" + }, + "GiftOptions": { + "formText": { + "requiredFieldError": "This field is required" + }, + "modal": { + "defaultTitle": "Gift wrapping for Cart", + "title": "Gift wrapping for", + "wrappingText": "Wrapping choice", + "wrappingSubText": "", + "modalConfirmButton": "Apply", + "modalCancelButton": "Cancel" + }, + "order": { + "customize": "Customize", + "accordionHeading": "Gift options", + "giftReceiptIncluded": { + "title": "Use gift receipt", + "subtitle": "The receipt and order invoice will not show the price." + }, + "printedCardIncluded": { + "title": "Include printed card", + "subtitle": "" + }, + "giftOptionsWrap": { + "title": "Gift wrap this order", + "subtitle": "Wrapping option:" + }, + "formContent": { + "formTitle": "Add a message to the order (optional)", + "formTo": "To", + "formFrom": "From", + "giftMessageTitle": "Gift message", + "formToPlaceholder": "Recipient’s name", + "formFromPlaceholder": "Sender’s name", + "formMessagePlaceholder": "Gift message" + }, + "readOnlyFormView": { + "title": "Selected gift order options", + "giftWrap": "Gift wrap this order", + "giftWrapOptions": "Wrapping option:", + "giftReceipt": "Use gift receipt", + "giftReceiptText": "The receipt and order invoice will not show the price.", + "printCard": "Use printed card", + "printCardText": "", + "formTitle": "Your gift message", + "formTo": "To", + "formFrom": "From", + "formMessageTitle": "Gift message" + } + }, + "product": { + "customize": "Customize", + "accordionHeading": "Gift options", + "giftReceiptIncluded": { + "title": "Use gift receipt", + "subtitle": "The receipt and order invoice will not show the price." + }, + "printedCardIncluded": { + "title": "Include printed card", + "subtitle": "" + }, + "giftOptionsWrap": { + "title": "Gift wrap this item", + "subtitle": "Wrapping option:" + }, + "formContent": { + "formTitle": "Add a message to the item (optional)", + "formTo": "To", + "formFrom": "From", + "giftMessageTitle": "Gift message", + "formToPlaceholder": "Recipient’s name", + "formFromPlaceholder": "Sender’s name", + "formMessagePlaceholder": "Gift message" + }, + "readOnlyFormView": { + "title": "This item is a gift", + "wrapping": "Wrapping:", + "recipient": "To:", + "sender": "From:", + "message": "Message:" + } + } } } } diff --git a/scripts/__dropins__/storefront-cart/lib/giftOptionsHelper.d.ts b/scripts/__dropins__/storefront-cart/lib/giftOptionsHelper.d.ts new file mode 100644 index 0000000000..9290c0a229 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/lib/giftOptionsHelper.d.ts @@ -0,0 +1,18 @@ +import { CartModel, Item } from '../data/models'; +import { GiftWrappingConfigProps, GiftOptionsViewProps, ProductGiftOptionsConfig } from '../types'; + +export declare const DEFAULT_FORM_STATE: { + recipientName: string; + senderName: string; + message: string; +}; +export declare const DEFAULT_CHECKBOXES_STATE: { + giftReceiptIncluded: boolean; + printedCardIncluded: boolean; + isGiftWrappingSelected: boolean; +}; +export declare const shouldShowGiftMessage: (item: CartModel['items'][0] | ProductGiftOptionsConfig, isProductView: boolean) => boolean; +export declare const getSelectedGiftWrapping: (giftWrappingOptions: GiftWrappingConfigProps[] | [ +]) => GiftWrappingConfigProps | undefined; +export declare const areGiftOptionsDisabled: (view: GiftOptionsViewProps, item: Item | ProductGiftOptionsConfig) => boolean; +//# sourceMappingURL=giftOptionsHelper.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/render.js b/scripts/__dropins__/storefront-cart/render.js index 0e200db93d..af9e260e21 100644 --- a/scripts/__dropins__/storefront-cart/render.js +++ b/scripts/__dropins__/storefront-cart/render.js @@ -1,4 +1,4 @@ /*! Copyright 2025 Adobe All Rights Reserved. */ -(function(i,t){try{if(typeof document<"u"){const a=document.createElement("style"),n=t.styleId;for(const r in t.attributes)a.setAttribute(r,t.attributes[r]);a.setAttribute("data-dropin",n),a.appendChild(document.createTextNode(i));const e=document.querySelector('style[data-dropin="sdk"]');if(e)e.after(a);else{const r=document.querySelector('link[rel="stylesheet"], style');r?r.before(a):document.head.append(a)}}}catch(a){console.error("dropin-styles (injectCodeFunction)",a)}})(".cart-empty-cart{container-type:inline-size;container-name:cart}.cart-empty-cart__wrapper .dropin-card--secondary{display:grid;grid-auto-rows:min-content;justify-content:center;text-align:center}@container cart (width < 737px){.cart-empty-cart__wrapper .dropin-card{border:unset;border-style:hidden}}.cart-estimate-shipping{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xsmall);align-items:flex-end;color:var(--color-neutral-800)}.cart-estimate-shipping__label,.cart-estimate-shipping__price{font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing)}.cart-estimate-shipping__label--muted{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);color:var(--color-neutral-700)}.cart-estimate-shipping__price--muted{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing)}.cart-estimate-shipping__price{text-align:right}a.cart-estimate-shippingLink{text-decoration:underline}.cart-estimate-shipping__label--bold,.cart-estimate-shipping__price--bold{font:var(--type-body-1-emphasized-font);letter-spacing:var(--type-body-1-emphasized-letter-spacing)}.cart-estimate-shipping__caption{font:var(--type-details-caption-2-font);letter-spacing:var(--type-details-caption-2-letter-spacing);grid-column:span 2;color:var(--color-neutral-700)}.cart-estimate-shipping--zip,.cart-estimate-shipping--state{background-color:var(--color-neutral-50)}.cart-estimate-shipping--edit{display:grid;grid-column:1 / span 2;gap:var(--spacing-small);padding-top:var(--spacing-small)}a.cart-estimate-shipping__link{text-decoration:underline}.cart-estimate-shipping--hide{display:none!important}.cart-estimate-shipping--edit button{width:var(--spacing-huge);justify-self:end}.cart-estimate-shipping--loading{opacity:.4;pointer-events:none}.cart-mini-cart{display:flex;flex-direction:column;height:100%;padding:var(--spacing-small) var(--spacing-small) var(--spacing-medium);box-sizing:border-box}.cart-mini-cart__empty-cart{width:100%;max-width:800px;height:100%;display:flex;flex-direction:column;justify-content:center;align-self:center}.cart-mini-cart__heading{display:grid;row-gap:var(--spacing-xsmall);font:var(--type-headline-2-default-font);letter-spacing:var(--type-headline-2-default-letter-spacing)}.cart-mini-cart__heading-divider{width:100%;margin:var(--spacing-xxsmall) 0 0 0}.cart-mini-cart__products{flex:1;overflow-y:auto;max-height:100%;padding-bottom:var(--spacing-medium)}.cart-mini-cart__products .cart-cart-summary-list__heading{padding:0}.cart-mini-cart__products .dropin-cart-item__configurations li{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cart-mini-cart__footer{display:grid;grid-auto-flow:row;gap:var(--spacing-small);padding-top:var(--spacing-small);row-gap:var(--spacing-xsmall)}.cart-mini-cart__footer__estimated-total{font:var(--type-body-1-emphasized-font);letter-spacing:var(--type-body-1-emphasized-letter-spacing);display:grid;grid-template:max-content / 1fr auto;gap:var(--spacing-xsmall)}.cart-mini-cart__footer__estimated-total-excluding-taxes{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);display:grid;grid-template:max-content / 1fr auto;gap:var(--spacing-xsmall);color:var(--color-neutral-700)}.cart-mini-cart__productListFooter,.cart-mini-cart__preCheckoutSection{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);color:var(--color-neutral-800)}.cart-mini-cart__footer__ctas{display:grid;grid-auto-flow:row;gap:var(--spacing-xsmall);padding-top:var(--spacing-small)}.cart-cart-summary-grid{container-type:inline-size;container-name:cart-summary-grid;max-width:inherit}.cart-cart-summary-grid__content{display:grid;flex-wrap:wrap;gap:var(--spacing-small);grid-template-columns:repeat(6,1fr);margin:auto}.cart-cart-summary-grid__item-container{aspect-ratio:auto 3/4;display:inline-block}.cart-cart-summary-grid__item-container img{height:auto;max-width:100%}.cart-cart-summary-grid__item-container a:focus{display:block}.cart-cart-summary-grid__content--empty{grid-template-columns:repeat(1,1fr)}.cart-cart-summary-grid__empty-cart{align-self:center;justify-self:center;max-width:800px;width:100%}@container cart-summary-grid (width < 360px){.cart-cart-summary-grid__content{grid-template-columns:repeat(4,1fr);gap:var(--spacing-xsmall)}.cart-cart-summary-grid__content--empty{grid-template-columns:repeat(1,1fr)}}.cart-cart-summary-list{container-type:inline-size;container-name:cart-summary-list}.cart-cart-summary-list__background--secondary{background-color:var(--color-neutral-200)}.cart-cart-summary-list__heading{display:grid;row-gap:var(--spacing-xsmall);padding:var(--spacing-medium) 0 0 0;font:var(--type-headline-1-font);letter-spacing:var(--type-headline-1-letter-spacing);color:var(--color-neutral-800)}.cart-cart-summary-list__heading--full-width{width:100%}.cart-cart-summary-list__heading-divider{width:100%;margin:var(--spacing-xxsmall) 0 var(--spacing-medium) 0}.cart-cart-summary-list__content{display:grid;grid-template-columns:1fr;padding:0}.cart-cart-summary-list__out-of-stock-message{margin:calc(-1 * var(--spacing-xsmall)) 0 var(--spacing-medium) 0}.cart-cart-summary-list__empty-cart{justify-self:center;align-self:center;width:100%;max-width:800px}.cart-cart-summary-list-footer__action,.cart-cart-summary-list-footer__action:focus .cart-cart-summary-list-footer__action:active,.cart-cart-summary-list-footer__action:link{font:var(--type-body-2-strong-font);margin:0 auto;width:auto;margin-top:var(--spacing-medium);margin-bottom:var(--spacing-medium)}.cart-cart-summary-list-footer__action:hover{text-decoration:underline;text-underline-offset:var(--spacing-xxsmall);background:transparent;color:var(--color-brand-700)}.cart-cart-summary-list-footer__action:visited{background-color:none}.cart-cart-summary-list-accordion{border-left:var(--shape-border-width-2) solid var(--color-neutral-400);border-right:var(--shape-border-width-2) solid var(--color-neutral-400)}.cart-cart-summary-list-accordion__section{margin:var(--spacing-medium)}@container cart-summary-list (width >= 768px){.cart-cart-summary-list__out-of-stock-message{margin:calc(-1 * var(--spacing-small)) 0 var(--spacing-xxbig) 0}}@container cart-summary-list (width >= 1024px){.cart-cart-summary-list__content,.cart-cart-summary-list__heading{grid-column:1 / span 8}.cart-cart-summary-list__heading--full-width,.cart-cart-summary-list__content--empty{grid-column:1 / span 12}.cart-cart-summary-list__content{padding:0}}.cart-order-summary{display:grid;position:relative;grid-auto-flow:row;padding:var(--spacing-medium)}.cart-order-summary__primary{background-color:var(--color-neutral-200)}.cart-order-summary__secondary{background-color:var(--color-neutral-50)}.cart-order-summary__content{display:grid;gap:var(--spacing-xsmall);margin-top:var(--spacing-small)}.cart-order-summary__heading{display:grid;font:var(--type-headline-2-strong-font);letter-spacing:var(--type-headline-2-strong-letter-spacing);color:var(--color-neutral-800);gap:var(--spacing-small)}.cart-order-summary__discount .cart-order-summary__label,.cart-order-summary__discount .cart-order-summary__price{color:var(--color-warning-800)}.cart-order-summary__coupon__code{display:flex;align-items:center;font:var(--type-details-overline-font);letter-spacing:var(--type-details-overline-letter-spacing);color:var(--color-neutral-700);gap:var(--spacing-xsmall);grid-column:span 2}.cart-order-summary__taxes .dropin-divider:last-child{margin-bottom:0}.cart-order-summary__total{margin-top:var(--spacing-medium)}.cart-order-summary__divider-primary,.cart-order-summary__divider-secondary{width:100%;margin:0}.cart-order-summary__divider-secondary{margin:0}.cart-order-summary__taxEntry.cart-order-summary__entry{margin-top:0}.cart-order-summary__entry,.cart-order-summary__taxEntry{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xxsmall);align-items:center;color:var(--color-neutral-800)}.cart-order-summary__caption{font:var(--type-details-caption-2-font);letter-spacing:var(--type-details-caption-2-letter-spacing);grid-column:span 2;color:var(--color-neutral-700)}.cart-order-summary__primaryAction{margin-top:var(--spacing-small);grid-template-columns:1fr}.cart-order-summary__shipping--edit{display:grid;grid-column:1 / span 2;gap:var(--spacing-small);padding-top:var(--spacing-small);padding-left:var(--spacing-small)}a.cart-order-summary__shippingLink{text-decoration:underline}.cart-order-summary__shipping--hide{display:none!important}.cart-order-summary__shipping--edit button{width:var(--spacing-huge);justify-self:end}.cart-order-summary__shipping--zip,.cart-order-summary__shipping--state{background-color:var(--color-neutral-50)}.cart-order-summary__taxes .dropin-accordion-section__content-container{gap:var(--spacing-small);margin:var(--spacing-small) 0}.cart-order-summary--loading{opacity:.4;pointer-events:none}.cart-order-summary__spinner{margin:0 auto;position:absolute;z-index:999;left:0;right:0;top:calc(50% - (var(--size) / 2));bottom:0}.coupon-code-form__action{display:flex}.coupon-code-form__action .dropin-input-container{flex-grow:1;margin-right:var(--spacing-small)}.cart-coupons__accordion-section .dropin-accordion-section__content-container{gap:var(--spacing-small)}.coupon-code-form__codes{background-color:var(--color-neutral-50)}.coupon-code-form__error{font:var(--type-details-caption-2-font);letter-spacing:var(--type-details-caption-2-letter-spacing);color:var(--color-alert-500);margin-top:calc(var(--spacing-xsmall) * -1)}.coupon-code-form__applied{display:flex;flex-wrap:wrap;gap:var(--spacing-small)}div.coupon-code-form__applied button{background:var(--color-neutral-400);color:var(--color-neutral-800);display:flex;flex-direction:row-reverse}.cart-order-summary__label,.cart-order-summary__price{font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing)}.cart-order-summary__price{text-align:right;text-transform:uppercase}.cart-order-summary__label--muted{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);color:var(--color-neutral-700)}.cart-order-summary__price--muted{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing)}.cart-order-summary__label--bold,.cart-order-summary__price--bold{font:var(--type-body-1-emphasized-font);letter-spacing:var(--type-body-1-emphasized-letter-spacing)}",{styleId:"Cart"}); -import{jsx as n}from"@dropins/tools/preact-jsx-runtime.js";import{deepmerge as c,Render as d}from"@dropins/tools/lib.js";import{useState as u,useEffect as p}from"@dropins/tools/preact-hooks.js";import{UIProvider as m}from"@dropins/tools/components.js";import{events as g}from"@dropins/tools/event-bus.js";import"./chunks/resetCart.js";import{c as h}from"./chunks/refreshCart.js";import"@dropins/tools/fetch-graphql.js";import"./chunks/persisted-data.js";import"./fragments.js";const f={Cart:{heading:"Shopping Cart ({count})",editCart:"Edit",viewAll:"View all in cart",viewMore:"View more"},MiniCart:{heading:"Shopping Cart ({count})",subtotal:"Subtotal",subtotalExcludingTaxes:"Subtotal excluding taxes",cartLink:"View Cart",checkoutLink:"Checkout"},EmptyCart:{heading:"Your cart is empty",cta:"Start shopping"},PriceSummary:{taxToBeDetermined:"TBD",checkout:"Checkout",orderSummary:"Order Summary",subTotal:{label:"Subtotal",withTaxes:"Including taxes",withoutTaxes:"excluding taxes"},shipping:{label:"Shipping",editZipAction:"Apply",estimated:"Estimated Shipping",estimatedDestination:"Estimated Shipping to",destinationLinkAriaLabel:"Change destination",zipPlaceholder:"Zip Code",withTaxes:"Including taxes",withoutTaxes:"excluding taxes",alternateField:{zip:"Estimate using country/zip",state:"Estimate using country/state"}},taxes:{total:"Tax Total",totalOnly:"Tax",breakdown:"Taxes",showBreakdown:"Show Tax Breakdown",hideBreakdown:"Hide Tax Breakdown",estimated:"Estimated Tax"},total:{estimated:"Estimated Total",free:"Free",label:"Total",withoutTax:"Total excluding taxes",saved:"Total saved"},estimatedShippingForm:{country:{placeholder:"Country"},state:{placeholder:"State"},zip:{placeholder:"Zip Code"},apply:{label:"Apply"}},freeShipping:"Free",coupon:{applyAction:"Apply",placeholder:"Enter code",title:"Discount code"}},CartItem:{discountedPrice:"Discounted Price",download:"file",message:"Note",recipient:"To",regularPrice:"Regular Price",sender:"From",file:"{count} file",files:"{count} files",lowInventory:"Only {count} left!",insufficientQuantity:"Only {inventory} of {count} in stock",insufficientQuantityGeneral:"Not enough items for sale",notAvailableMessage:"Requested qty. not available",discountPercentage:"{discount}% off",savingsAmount:"Savings"},EstimateShipping:{label:"Shipping",editZipAction:"Apply",estimated:"Estimated Shipping",estimatedDestination:"Estimated Shipping to",destinationLinkAriaLabel:"{destination}, Change destination",zipPlaceholder:"Zip Code",withTaxes:"Including taxes",withoutTaxes:"excluding taxes",alternateField:{zip:"Estimate using country/zip",state:"Estimate using country/state"}},OutOfStockMessage:{heading:"Your cart contains items with limited stock",message:"Please adjust quantities to continue",alert:"Out of stock",action:"Remove all out of stock items from cart"}},x={Cart:f},y={default:x},S=({children:o})=>{var i;const[t,s]=u(),r=(i=h.getConfig())==null?void 0:i.langDefinitions;p(()=>{const e=g.on("locale",a=>{a!==t&&s(a)},{eager:!0});return()=>{e==null||e.off()}},[t]);const l=c(y,r??{});return n(m,{lang:t,langDefinitions:l,children:o})},L=new d(n(S,{}));export{L as render}; +(function(o,a){try{if(typeof document<"u"){const t=document.createElement("style"),e=a.styleId;for(const r in a.attributes)t.setAttribute(r,a.attributes[r]);t.setAttribute("data-dropin",e),t.appendChild(document.createTextNode(o));const i=document.querySelector('style[data-dropin="sdk"]');if(i)i.after(t);else{const r=document.querySelector('link[rel="stylesheet"], style');r?r.before(t):document.head.append(t)}}}catch(t){console.error("dropin-styles (injectCodeFunction)",t)}})(".cart-empty-cart{container-type:inline-size;container-name:cart}.cart-empty-cart__wrapper .dropin-card--secondary{display:grid;grid-auto-rows:min-content;justify-content:center;text-align:center}@container cart (width < 737px){.cart-empty-cart__wrapper .dropin-card{border:unset;border-style:hidden}}.cart-estimate-shipping{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xsmall);align-items:flex-end;color:var(--color-neutral-800)}.cart-estimate-shipping__label,.cart-estimate-shipping__price{font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing)}.cart-estimate-shipping__label--muted{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);color:var(--color-neutral-700)}.cart-estimate-shipping__price--muted{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing)}.cart-estimate-shipping__price{text-align:right}a.cart-estimate-shippingLink{text-decoration:underline}.cart-estimate-shipping__label--bold,.cart-estimate-shipping__price--bold{font:var(--type-body-1-emphasized-font);letter-spacing:var(--type-body-1-emphasized-letter-spacing)}.cart-estimate-shipping__caption{font:var(--type-details-caption-2-font);letter-spacing:var(--type-details-caption-2-letter-spacing);grid-column:span 2;color:var(--color-neutral-700)}.cart-estimate-shipping--zip,.cart-estimate-shipping--state{background-color:var(--color-neutral-50)}.cart-estimate-shipping--edit{display:grid;grid-column:1 / span 2;gap:var(--spacing-small);padding-top:var(--spacing-small)}a.cart-estimate-shipping__link{text-decoration:underline}.cart-estimate-shipping--hide{display:none!important}.cart-estimate-shipping--edit button{width:var(--spacing-huge);justify-self:end}.cart-estimate-shipping--loading{opacity:.4;pointer-events:none}.cart-mini-cart{display:flex;flex-direction:column;height:100%;padding:var(--spacing-small) var(--spacing-small) var(--spacing-medium);box-sizing:border-box}.cart-mini-cart__empty-cart{width:100%;max-width:800px;height:100%;display:flex;flex-direction:column;justify-content:center;align-self:center}.cart-mini-cart__heading{display:grid;row-gap:var(--spacing-xsmall);font:var(--type-headline-2-default-font);letter-spacing:var(--type-headline-2-default-letter-spacing)}.cart-mini-cart__heading-divider{width:100%;margin:var(--spacing-xxsmall) 0 0 0}.cart-mini-cart__products{flex:1;overflow-y:auto;max-height:100%;padding-bottom:var(--spacing-medium)}.cart-mini-cart__products .cart-cart-summary-list__heading{padding:0}.cart-mini-cart__products .dropin-cart-item__configurations li{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cart-mini-cart__footer{display:grid;grid-auto-flow:row;gap:var(--spacing-small);padding-top:var(--spacing-small);row-gap:var(--spacing-xsmall)}.cart-mini-cart__footer__estimated-total{font:var(--type-body-1-emphasized-font);letter-spacing:var(--type-body-1-emphasized-letter-spacing);display:grid;grid-template:max-content / 1fr auto;gap:var(--spacing-xsmall)}.cart-mini-cart__footer__estimated-total-excluding-taxes{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);display:grid;grid-template:max-content / 1fr auto;gap:var(--spacing-xsmall);color:var(--color-neutral-700)}.cart-mini-cart__productListFooter,.cart-mini-cart__preCheckoutSection{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);color:var(--color-neutral-800)}.cart-mini-cart__footer__ctas{display:grid;grid-auto-flow:row;gap:var(--spacing-xsmall);padding-top:var(--spacing-small)}.cart-cart-summary-grid{container-type:inline-size;container-name:cart-summary-grid;max-width:inherit}.cart-cart-summary-grid__content{display:grid;flex-wrap:wrap;gap:var(--spacing-small);grid-template-columns:repeat(6,1fr);margin:auto}.cart-cart-summary-grid__item-container{aspect-ratio:auto 3/4;display:inline-block}.cart-cart-summary-grid__item-container img{height:auto;max-width:100%}.cart-cart-summary-grid__item-container a:focus{display:block}.cart-cart-summary-grid__content--empty{grid-template-columns:repeat(1,1fr)}.cart-cart-summary-grid__empty-cart{align-self:center;justify-self:center;max-width:800px;width:100%}@container cart-summary-grid (width < 360px){.cart-cart-summary-grid__content{grid-template-columns:repeat(4,1fr);gap:var(--spacing-xsmall)}.cart-cart-summary-grid__content--empty{grid-template-columns:repeat(1,1fr)}}.cart-cart-summary-list{container-type:inline-size;container-name:cart-summary-list}.cart-cart-summary-list__background--secondary{background-color:var(--color-neutral-200)}.cart-cart-summary-list__heading{display:grid;row-gap:var(--spacing-xsmall);padding:var(--spacing-medium) 0 0 0;font:var(--type-headline-1-font);letter-spacing:var(--type-headline-1-letter-spacing);color:var(--color-neutral-800)}.cart-cart-summary-list__heading--full-width{width:100%}.cart-cart-summary-list__heading-divider{width:100%;margin:var(--spacing-xxsmall) 0 var(--spacing-medium) 0}.cart-cart-summary-list__content{display:grid;grid-template-columns:1fr;padding:0}.cart-cart-summary-list__out-of-stock-message{margin:calc(-1 * var(--spacing-xsmall)) 0 var(--spacing-medium) 0}.cart-cart-summary-list__empty-cart{justify-self:center;align-self:center;width:100%;max-width:800px}.cart-cart-summary-list-footer__action,.cart-cart-summary-list-footer__action:focus .cart-cart-summary-list-footer__action:active,.cart-cart-summary-list-footer__action:link{font:var(--type-body-2-strong-font);margin:0 auto;width:auto;margin-top:var(--spacing-medium);margin-bottom:var(--spacing-medium)}.cart-cart-summary-list-footer__action:hover{text-decoration:underline;text-underline-offset:var(--spacing-xxsmall);background:transparent;color:var(--color-brand-700)}.cart-cart-summary-list-footer__action:visited{background-color:none}.cart-cart-summary-list-accordion{border-left:var(--shape-border-width-2) solid var(--color-neutral-400);border-right:var(--shape-border-width-2) solid var(--color-neutral-400)}.cart-cart-summary-list-accordion__section{margin:var(--spacing-medium)}@container cart-summary-list (width >= 768px){.cart-cart-summary-list__out-of-stock-message{margin:calc(-1 * var(--spacing-small)) 0 var(--spacing-xxbig) 0}}@container cart-summary-list (width >= 1024px){.cart-cart-summary-list__content,.cart-cart-summary-list__heading{grid-column:1 / span 8}.cart-cart-summary-list__heading--full-width,.cart-cart-summary-list__content--empty{grid-column:1 / span 12}.cart-cart-summary-list__content{padding:0}}.cart-order-summary{display:grid;position:relative;grid-auto-flow:row;padding:var(--spacing-medium)}.cart-order-summary__primary{background-color:var(--color-neutral-200)}.cart-order-summary__secondary{background-color:var(--color-neutral-50)}.cart-order-summary__content{display:grid;gap:var(--spacing-xsmall);margin-top:var(--spacing-small)}.cart-order-summary__heading{display:grid;font:var(--type-headline-2-strong-font);letter-spacing:var(--type-headline-2-strong-letter-spacing);color:var(--color-neutral-800);gap:var(--spacing-small)}.cart-order-summary__discount .cart-order-summary__label,.cart-order-summary__discount .cart-order-summary__price,.cart-order-summary__applied-gift-cards .cart-order-summary__price{color:var(--color-warning-800)}.cart-order-summary__coupon__code{display:flex;align-items:center;font:var(--type-details-overline-font);letter-spacing:var(--type-details-overline-letter-spacing);color:var(--color-neutral-700);gap:var(--spacing-xsmall);grid-column:span 2}.cart-order-summary__taxes .dropin-divider:last-child{margin-bottom:0}.cart-order-summary__total{margin-top:var(--spacing-medium)}.cart-order-summary__divider-primary,.cart-order-summary__divider-secondary{width:100%;margin:0}.cart-order-summary__divider-secondary{margin:0}.cart-order-summary__taxEntry.cart-order-summary__entry{margin-top:0}.cart-order-summary__entry,.cart-order-summary__taxEntry{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xxsmall);align-items:center;color:var(--color-neutral-800)}.cart-order-summary__caption{font:var(--type-details-caption-2-font);letter-spacing:var(--type-details-caption-2-letter-spacing);grid-column:span 2;color:var(--color-neutral-700)}.cart-order-summary__primaryAction{margin-top:var(--spacing-small);grid-template-columns:1fr}.cart-order-summary__shipping--edit{display:grid;grid-column:1 / span 2;gap:var(--spacing-small);padding-top:var(--spacing-small);padding-left:var(--spacing-small)}a.cart-order-summary__shippingLink{text-decoration:underline}.cart-order-summary__shipping--hide{display:none!important}.cart-order-summary__shipping--edit button{width:var(--spacing-huge);justify-self:end}.cart-order-summary__shipping--zip,.cart-order-summary__shipping--state{background-color:var(--color-neutral-50)}.cart-order-summary__taxes .dropin-accordion-section__content-container{gap:var(--spacing-small);margin:var(--spacing-small) 0}.cart-order-summary--loading{opacity:.4;pointer-events:none}.cart-order-summary__spinner{margin:0 auto;position:absolute;z-index:999;left:0;right:0;top:calc(50% - (var(--size) / 2));bottom:0}.cart-order-summary__content:has(.cart-order-summary__coupons .dropin-accordion):has(.cart-order-summary__gift-cards .dropin-accordion):has(.cart-order-summary__coupons+.cart-order-summary__gift-cards) .cart-order-summary__coupons .dropin-accordion hr:last-child{opacity:0;margin-bottom:0}.cart-order-summary__content:has(.cart-order-summary__coupons .dropin-accordion):has(.cart-order-summary__gift-cards .dropin-accordion):has(.cart-order-summary__coupons+.cart-order-summary__gift-cards) .cart-order-summary__gift-cards .dropin-accordion hr:first-child{margin-top:calc(var(--spacing-xsmall) * -1)}.cart-order-summary__applied-gift-cards .cart-order-summary__coupon__code,.cart-order-summary__applied-gift-cards .cart-order-summary__caption{display:flex;justify-content:flex-start;align-items:end;gap:0 var(--spacing-xsmall)}.coupon-code-form__action{display:flex}.coupon-code-form__action .dropin-input-container{flex-grow:1;margin-right:var(--spacing-small)}.cart-coupons__accordion-section .dropin-accordion-section__content-container{gap:var(--spacing-small)}.coupon-code-form__codes{background-color:var(--color-neutral-50)}.coupon-code-form__error{font:var(--type-details-caption-2-font);letter-spacing:var(--type-details-caption-2-letter-spacing);color:var(--color-alert-500);margin-top:calc(var(--spacing-xsmall) * -1)}.coupon-code-form__applied{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:var(--spacing-small)}.coupon-code-form__applied-item{box-sizing:border-box;display:grid;grid-template-columns:1fr auto;gap:0 var(--spacing-small)}.coupon-code-form__applied-item button{all:unset;margin:0;padding:0;display:flex;justify-content:center;align-items:center;background-color:transparent;border-color:transparent;cursor:pointer}.coupon-code-form__applied .dropin-tag-container{background-color:var(--color-neutral-400);color:var(--color-neutral-800);font:var(--type-button-2-font);letter-spacing:var(--type-button-2-letter-spacing)}.cart-gift-cards .dropin-accordion-section__title-container svg:first-of-type path{transform-box:fill-box;transform-origin:center;transform:translateY(4px)}.cart-order-summary__label,.cart-order-summary__price{font:var(--type-body-1-default-font);letter-spacing:var(--type-body-1-default-letter-spacing)}.cart-order-summary__price{text-align:right;text-transform:uppercase}.cart-order-summary__label--muted{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);color:var(--color-neutral-700)}.cart-order-summary__price--muted{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing)}.cart-order-summary__label--bold,.cart-order-summary__price--bold{font:var(--type-body-1-emphasized-font);letter-spacing:var(--type-body-1-emphasized-letter-spacing)}.cart-gift-options-view{position:relative}.cart-gift-options-view textarea{border:var(--shape-border-width-1) solid var(--color-neutral-600)}.cart-gift-options-view.cart-gift-options-view--product .dropin-accordion-section__heading{grid-template-columns:auto 1fr}.cart-gift-options-view.cart-gift-options-view--product .dropin-accordion-section__flex,.cart-gift-options-view.cart-gift-options-view--product .dropin-accordion-section__heading,.cart-gift-options-view.cart-gift-options-view--product .dropin-accordion-section__title-container,.cart-gift-options-view.cart-gift-options-view--product .cart-gift-options-view__icon--success{margin-top:0}.cart-gift-options-view.cart-gift-options-view--order .dropin-accordion-section__title-container,.cart-gift-options-view.cart-gift-options-view--order .dropin-accordion-section__title-container .dropin-accordion-section__title{width:100%}.cart-gift-options-view.cart-gift-options-view--order .dropin-accordion-section__title-container svg{min-width:24px}#cart-gift-options-view.cart-gift-options-view .dropin-accordion-section__content-container{display:block!important;margin-bottom:0;gap:0}.cart-gift-options-view .dropin-accordion-section__heading{align-items:flex-end}.cart-gift-options-view .cart-gift-options-view__top{display:grid;grid-template-columns:1fr;gap:var(--grid-1-gutters) 0;width:100%;align-items:start;margin-top:var(--spacing-small);margin-bottom:var(--spacing-medium)}.cart-gift-options-view .cart-gift-options-view__top.cart-gift-options-view__top--hidden{display:none}.cart-gift-options-view .cart-gift-options-view__field-gift-wrap{margin-top:0;grid-column:1 / -1}.cart-gift-options-view .cart-gift-options-view__top .dropin-field:nth-child(3){grid-column:1 / -1}.cart-gift-options-view .cart-gift-options-view__top .dropin-checkbox__label.dropin-checkbox__label--medium{margin-right:var(--spacing-xsmall)}@media (max-width: 768px){.cart-gift-options-view .cart-gift-options-view__top{display:flex;flex-direction:column}}.cart-gift-options-view .cart-gift-options-view__top .dropin-field:nth-child(2){grid-column:1;margin-top:0}.cart-gift-options-view .cart-gift-options-view__top .dropin-field div{margin-top:0}.cart-gift-options-view .cart-gift-options-view__top button{font:var(--type-body-2-strong-font);padding:0;margin:0;text-decoration:underline;grid-column:2;align-self:start}.cart-gift-options-view .cart-gift-options-view__footer{display:grid;grid-template-columns:1fr 1fr;gap:var(--grid-1-gutters);margin-top:var(--spacing-xsmall)}.cart-gift-options-view .cart-gift-options-view__footer>:first-child{grid-column:span 2;font:var(--type-body-2-strong-font);color:var(--color-neutral-800)}.cart-gift-options-view .cart-gift-options-view__footer>:nth-child(4){grid-column:span 2}.cart-gift-options-view .cart-gift-options-view__footer div>span{font:var(--type-details-caption-1-font);color:var(--color-neutral-800);display:inline-block;margin-bottom:var(--spacing-xsmall)}.cart-gift-options-view .cart-gift-options-view__footer .dropin-textarea__label--floating.dropin-textarea__label--floating--error{padding-top:0;color:var(--color-neutral-700);font:var(--type-body-2-default-font)}.cart-gift-options-view .dropin-textarea__label--floating--text.dropin-textarea__label--floating--error{color:var(--color-alert-800);font:var(--type-details-caption-2-font)}.cart-gift-options-view .dropin-textarea.dropin-textarea--error{border:var(--shape-border-width-2) solid var(--color-alert-500)}.cart-gift-options-view .cart-gift-options-view__modal{width:100%;max-width:735px;margin:auto}.cart-gift-options-view.cart-gift-options-view--product .dropin-modal.dropin-modal--dim{margin:0}.cart-gift-options-view.cart-gift-options-view--product .dropin-modal.dropin-modal--dim .cart-gift-options-view__modal{margin-top:var(--spacing-huge)}.cart-gift-options-view.cart-gift-options-view--product .dropin-modal__header.dropin-modal__header-title{display:grid;grid-template-columns:1fr auto}.cart-gift-options-view__modal .dropin-modal__header-title-content{display:block}.cart-gift-options-view__modal .dropin-modal__header-title-content span{display:block;word-wrap:break-word;overflow-wrap:break-word}.cart-gift-options-view__modal .dropin-modal__header-title-content span:first-child{font:var(--type-headline-1-font);letter-spacing:var(--type-headline-1-letter-spacing)}.cart-gift-options-view__modal .dropin-modal__header-title-content .dropin-price{font:var(--type-headline-2-strong-font);letter-spacing:var(--type-headline-2-strong-letter-spacing)}.cart-gift-options-view__modal .dropin-iconButton{text-align:right}.cart-gift-options-view__modal .dropin-modal__content.dropin-modal__body--centered{margin:0}.cart-gift-options-view__modal .cart-gift-options-view__modal-content span{display:block;text-align:left;font:var(--type-details-caption-1-font);letter-spacing:var(--type-details-caption-1-letter-spacing)}.cart-gift-options-view__modal .cart-gift-options-view__modal-content span:last-child{margin-top:var(--spacing-xsmall);font:var(--type-details-caption-2-font);letter-spacing:var(--type-details-caption-2-letter-spacing)}.cart-gift-options-view__modal .dropin-content-grid.cart-gift-options-view__modal-grid{margin-top:0;overflow:auto}.cart-gift-options-view__modal .dropin-content-grid__content{margin-top:0;padding:var(--spacing-xsmall);gap:var(--spacing-xsmall)}.cart-gift-options-view__modal .cart-gift-options-view__modal-content{margin-bottom:var(--spacing-big)}.cart-gift-options-view__modal button{width:100%;display:block;text-align:center}.cart-gift-options-view__modal button:nth-child(2){margin-bottom:var(--spacing-xsmall)}.cart-gift-options-view .dropin-divider{display:none}.cart-gift-options-view .cart-gift-options-view__footer div{margin:0}.cart-gift-options-view .cart-gift-options-view__icon--success{display:grid;grid-template-columns:auto 1fr;gap:0 var(--spacing-xsmall);align-items:center}.cart-gift-options-view .cart-gift-options-view__icon--success svg{fill:var(--color-informational-800);margin-left:auto}.cart-gift-options-view .cart-gift-options-view__icon--success svg path:first-of-type{stroke:var(--color-informational-800)}.cart-gift-options-view .cart-gift-options-view__icon--success svg path:last-of-type{stroke:var(--color-neutral-50)}.cart-gift-options-view .dropin-textarea{padding:var(--spacing-xxsmall) var(--spacing-small);min-height:40px;height:40px}.cart-gift-options-view textarea:focus::placeholder{color:transparent}.dropin-textarea:not(:placeholder-shown)+.dropin-textarea__label--floating,.dropin-textarea:focus+.dropin-textarea__label--floating{display:none;opacity:0;z-index:-1}.cart-gift-options-view .dropin-textarea__label--floating{top:10px}.cart-gift-options-view__spinner{position:absolute;margin:0 auto;z-index:999;left:0;right:0;top:calc(50% - (var(--size) / 2));bottom:0}.cart-gift-options-view--loading{opacity:.4;pointer-events:none}.cart-gift-options-view .cart-gift-options-view--readonly .dropin-card.dropin-card--primary{border-radius:0}.cart-gift-options-view .cart-gift-options-view--readonly .cart-gift-options-readonly__header>span{color:var(--color-neutral-800);font:var(--type-body-1-strong-font);letter-spacing:var(--type-body-1-strong-letter-spacing);cursor:pointer}.cart-gift-options-view.cart-gift-options-view--product .cart-gift-options-view--readonly p{margin:var(--spacing-xxsmall) 0;font:var(--type-body-2-strong-font);color:var(--color-neutral-800)}.cart-gift-options-view.cart-gift-options-view--order .cart-gift-options-view--readonly .dropin-card__content{gap:var(--spacing-small)}.cart-gift-options-view.cart-gift-options-view--order .cart-gift-options-view--readonly .cart-gift-options-readonly__header{display:flex;align-items:center;gap:var(--spacing-xsmall)}.cart-gift-options-view.cart-gift-options-view--order .cart-gift-options-view--readonly .cart-gift-options-readonly__checkboxes{display:grid;grid-template-columns:auto 1fr;gap:0 var(--spacing-xsmall);align-items:center}.cart-gift-options-view.cart-gift-options-view--order .cart-gift-options-view--readonly p{margin:0;padding:0}.cart-gift-options-view.cart-gift-options-view--order .cart-gift-options-view--readonly .cart-gift-options-readonly__checkboxes svg{grid-column:1;grid-row:1;fill:var(--color-positive-800);color:var(--color-neutral-50)}.cart-gift-options-view.cart-gift-options-view--order .cart-gift-options-view--readonly .cart-gift-options-readonly__checkboxes svg>path:first-of-type{stroke:var(--color-positive-800)}.cart-gift-options-view.cart-gift-options-view--order .cart-gift-options-view--readonly .cart-gift-options-readonly__checkboxes p{grid-column:2;grid-row:1;color:var(--color-neutral-800);font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing)}.cart-gift-options-view.cart-gift-options-view--order .cart-gift-options-view--readonly .cart-gift-options-readonly__checkboxes p:last-child{grid-column:2;grid-row:2;color:var(--color-neutral-700);font:var(--type-details-caption-2-font);letter-spacing:var(--type-details-caption-2-letter-spacing)}.cart-gift-options-view.cart-gift-options-view--order .cart-gift-options-view--readonly .cart-gift-options-readonly__form{display:flex;flex-direction:column;gap:var(--spacing-small) 0;font:var(--type-body-2-strong-font);letter-spacing:var(--type-body-2-strong-letter-spacing);color:var(--color-neutral-800)}.cart-gift-options-view.cart-gift-options-view--order .cart-gift-options-view--readonly .cart-gift-options-readonly__form div:nth-child(2){display:grid;grid-template-columns:repeat(2,1fr);gap:var(--grid-1-gutters);justify-content:start}.cart-gift-options-view.cart-gift-options-view--order .cart-gift-options-view--readonly .cart-gift-options-readonly__form div:nth-child(2) p span{display:block;margin-bottom:var(--spacing-xsmall)}.cart-gift-options-view.cart-gift-options-view--order .cart-gift-options-view--readonly .cart-gift-options-readonly__form div:nth-child(2) p span:first-child{font:var(--type-details-caption-1-font);letter-spacing:var(--type-details-caption-1-letter-spacing)}.cart-gift-options-view.cart-gift-options-view--order .cart-gift-options-view--readonly .cart-gift-options-readonly__form div:last-child p:first-child{font:var(--type-details-caption-1-font);letter-spacing:var(--type-details-caption-1-letter-spacing);margin-bottom:var(--spacing-xsmall)}",{styleId:"Cart"}); +import{jsx as o}from"@dropins/tools/preact-jsx-runtime.js";import{deepmerge as d,Render as p}from"@dropins/tools/lib.js";import{useState as c,useEffect as m}from"@dropins/tools/preact-hooks.js";import{UIProvider as g}from"@dropins/tools/components.js";import{events as f}from"@dropins/tools/event-bus.js";import"./chunks/resetCart.js";import{c as u}from"./chunks/refreshCart.js";import"@dropins/tools/fetch-graphql.js";import"./chunks/persisted-data.js";import"./fragments.js";const h={Cart:{heading:"Shopping Cart ({count})",editCart:"Edit",viewAll:"View all in cart",viewMore:"View more"},MiniCart:{heading:"Shopping Cart ({count})",subtotal:"Subtotal",subtotalExcludingTaxes:"Subtotal excluding taxes",cartLink:"View Cart",checkoutLink:"Checkout"},EmptyCart:{heading:"Your cart is empty",cta:"Start shopping"},PriceSummary:{taxToBeDetermined:"TBD",checkout:"Checkout",orderSummary:"Order Summary",giftCard:{label:"Gift Card",applyAction:"Apply",ariaLabel:"Enter gift card code",ariaLabelRemove:"Remove gift card",placeholder:"Enter code",title:"Gift Card",errors:{empty:"Please enter a gift card code."},appliedGiftCards:{label:{singular:"Gift card",plural:"Gift cards"},remainingBalance:"Remaining balance"}},giftOptionsTax:{printedCard:{title:"Printed card",inclTax:"Including taxes",exclTax:"excluding taxes"},itemGiftWrapping:{title:"Item gift wrapping",inclTax:"Including taxes",exclTax:"excluding taxes"},orderGiftWrapping:{title:"Order gift wrapping",inclTax:"Including taxes",exclTax:"excluding taxes"}},subTotal:{label:"Subtotal",withTaxes:"Including taxes",withoutTaxes:"excluding taxes"},shipping:{label:"Shipping",editZipAction:"Apply",estimated:"Estimated Shipping",estimatedDestination:"Estimated Shipping to",destinationLinkAriaLabel:"Change destination",zipPlaceholder:"Zip Code",withTaxes:"Including taxes",withoutTaxes:"excluding taxes",alternateField:{zip:"Estimate using country/zip",state:"Estimate using country/state"}},taxes:{total:"Tax Total",totalOnly:"Tax",breakdown:"Taxes",showBreakdown:"Show Tax Breakdown",hideBreakdown:"Hide Tax Breakdown",estimated:"Estimated Tax"},total:{estimated:"Estimated Total",free:"Free",label:"Total",withoutTax:"Total excluding taxes",saved:"Total saved"},estimatedShippingForm:{country:{placeholder:"Country"},state:{placeholder:"State"},zip:{placeholder:"Zip Code"},apply:{label:"Apply"}},freeShipping:"Free",coupon:{applyAction:"Apply",placeholder:"Enter code",title:"Discount code",ariaLabelRemove:"Remove coupon"}},CartItem:{discountedPrice:"Discounted Price",download:"file",message:"Note",recipient:"To",regularPrice:"Regular Price",sender:"From",file:"{count} file",files:"{count} files",lowInventory:"Only {count} left!",insufficientQuantity:"Only {inventory} of {count} in stock",insufficientQuantityGeneral:"Not enough items for sale",notAvailableMessage:"Requested qty. not available",discountPercentage:"{discount}% off",savingsAmount:"Savings"},EstimateShipping:{label:"Shipping",editZipAction:"Apply",estimated:"Estimated Shipping",estimatedDestination:"Estimated Shipping to",destinationLinkAriaLabel:"{destination}, Change destination",zipPlaceholder:"Zip Code",withTaxes:"Including taxes",withoutTaxes:"excluding taxes",alternateField:{zip:"Estimate using country/zip",state:"Estimate using country/state"}},OutOfStockMessage:{heading:"Your cart contains items with limited stock",message:"Please adjust quantities to continue",alert:"Out of stock",action:"Remove all out of stock items from cart"},GiftOptions:{formText:{requiredFieldError:"This field is required"},modal:{defaultTitle:"Gift wrapping for Cart",title:"Gift wrapping for",wrappingText:"Wrapping choice",wrappingSubText:"",modalConfirmButton:"Apply",modalCancelButton:"Cancel"},order:{customize:"Customize",accordionHeading:"Gift options",giftReceiptIncluded:{title:"Use gift receipt",subtitle:"The receipt and order invoice will not show the price."},printedCardIncluded:{title:"Include printed card",subtitle:""},giftOptionsWrap:{title:"Gift wrap this order",subtitle:"Wrapping option:"},formContent:{formTitle:"Add a message to the order (optional)",formTo:"To",formFrom:"From",giftMessageTitle:"Gift message",formToPlaceholder:"Recipient’s name",formFromPlaceholder:"Sender’s name",formMessagePlaceholder:"Gift message"},readOnlyFormView:{title:"Selected gift order options",giftWrap:"Gift wrap this order",giftWrapOptions:"Wrapping option:",giftReceipt:"Use gift receipt",giftReceiptText:"The receipt and order invoice will not show the price.",printCard:"Use printed card",printCardText:"",formTitle:"Your gift message",formTo:"To",formFrom:"From",formMessageTitle:"Gift message"}},product:{customize:"Customize",accordionHeading:"Gift options",giftReceiptIncluded:{title:"Use gift receipt",subtitle:"The receipt and order invoice will not show the price."},printedCardIncluded:{title:"Include printed card",subtitle:""},giftOptionsWrap:{title:"Gift wrap this item",subtitle:"Wrapping option:"},formContent:{formTitle:"Add a message to the item (optional)",formTo:"To",formFrom:"From",giftMessageTitle:"Gift message",formToPlaceholder:"Recipient’s name",formFromPlaceholder:"Sender’s name",formMessagePlaceholder:"Gift message"},readOnlyFormView:{title:"This item is a gift",wrapping:"Wrapping:",recipient:"To:",sender:"From:",message:"Message:"}}}},x={Cart:h},T={default:x},w=({children:r})=>{var i;const[e,n]=c(),s=(i=u.getConfig())==null?void 0:i.langDefinitions;m(()=>{const t=f.on("locale",a=>{a!==e&&n(a)},{eager:!0});return()=>{t==null||t.off()}},[e]);const l=d(T,s??{});return o(g,{lang:e,langDefinitions:l,children:r})},A=new p(o(w,{}));export{A as render}; diff --git a/scripts/__dropins__/storefront-cart/types/giftOptions.types.d.ts b/scripts/__dropins__/storefront-cart/types/giftOptions.types.d.ts new file mode 100644 index 0000000000..35899df7d0 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/types/giftOptions.types.d.ts @@ -0,0 +1,35 @@ +import { WrappingImage, Price } from '../data/models'; + +export type GiftOptionsReadOnlyViewProps = 'primary' | 'secondary'; +export type GiftOptionsViewProps = 'product' | 'order'; +export type GiftOptionsDataSourcesProps = 'cart' | 'order'; +export type GiftWrappingConfigProps = { + uid: string; + design: string; + selected: boolean; + image: WrappingImage; + price: Price; +}; +export type GiftFormDataType = { + giftReceiptIncluded?: boolean; + printedCardIncluded?: boolean; + isGiftWrappingSelected?: boolean; + recipientName?: string; + senderName?: string; + message?: string; + giftWrappingId?: string; + itemId?: string; + giftWrappingOptions?: GiftWrappingConfigProps[]; +}; +export type ProductGiftOptionsConfig = { + giftWrappingAvailable: boolean; + giftMessageAvailable: boolean; + giftWrappingPrice?: Price; + giftMessage?: { + recipientName?: string; + senderName?: string; + message?: string; + }; + productGiftWrapping: GiftWrappingConfigProps[]; +}; +//# sourceMappingURL=giftOptions.types.d.ts.map \ No newline at end of file diff --git a/scripts/__dropins__/storefront-cart/types/index.d.ts b/scripts/__dropins__/storefront-cart/types/index.d.ts new file mode 100644 index 0000000000..b37e362c65 --- /dev/null +++ b/scripts/__dropins__/storefront-cart/types/index.d.ts @@ -0,0 +1,2 @@ +export * from './giftOptions.types'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file From c0c36438147e653e3041e9ba3fb199c070ad3177 Mon Sep 17 00:00:00 2001 From: chutingy Date: Tue, 4 Mar 2025 16:00:49 -0600 Subject: [PATCH 2/2] Update cart with final version --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index faef922ac0..9995731424 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "@adobe/magento-storefront-events-sdk": "^1.8.0", "@dropins/storefront-account": "~1.0.3", "@dropins/storefront-auth": "~1.0.3", - "@dropins/storefront-cart": "~1.2.0-beta1", + "@dropins/storefront-cart": "~1.2.0", "@dropins/storefront-checkout": "~1.2.0", "@dropins/storefront-order": "~1.0.4", "@dropins/storefront-payment-services": "~1.0.1", @@ -1809,9 +1809,9 @@ "integrity": "sha512-cKPh0OwDr8A3XpvYfeKpdwImAutnqr2M7iTFJrJvgrBUVkFsYWpV9biWg4nctj8etbI03f+2mrPYyZul1bQjEA==" }, "node_modules/@dropins/storefront-cart": { - "version": "1.2.0-beta1", - "resolved": "https://registry.npmjs.org/@dropins/storefront-cart/-/storefront-cart-1.2.0-beta1.tgz", - "integrity": "sha512-pvK3RLdAAcOuoqmM6DEnpAp+T7a6oD09RGyS4vDNna4y6o2kebj3h/uixZZAdsWXW4kVbu5gYIFgr5M1+kA4FQ==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dropins/storefront-cart/-/storefront-cart-1.2.0.tgz", + "integrity": "sha512-4mm4nWsreAYef09uSJiLHkGscK1LvbkFCzezy65h6+/jw9JODO9JONhGQe5BuLmm5bWBq33SAOteIQqf8HDVpA==" }, "node_modules/@dropins/storefront-checkout": { "version": "1.2.0", diff --git a/package.json b/package.json index 409a809369..529d666922 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "@adobe/magento-storefront-events-sdk": "^1.8.0", "@dropins/storefront-account": "~1.0.3", "@dropins/storefront-auth": "~1.0.3", - "@dropins/storefront-cart": "~1.2.0-beta1", + "@dropins/storefront-cart": "~1.2.0", "@dropins/storefront-checkout": "~1.2.0", "@dropins/storefront-order": "~1.0.4", "@dropins/storefront-payment-services": "~1.0.1",