@dropins/storefront-cart 0.2.0-alpha77 → 0.2.0-beta2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/initialize/initialize.d.ts.map +1 -1
- package/api/resetCart/resetCart.d.ts.map +1 -1
- package/api.js +3 -3
- package/api.js.map +1 -1
- package/chunks/getEstimatedTotals.js +1 -1
- package/chunks/getEstimatedTotals.js.map +1 -1
- package/chunks/getStoreConfig.js +257 -2
- package/chunks/getStoreConfig.js.map +1 -1
- package/chunks/updateProductsFromCart.js +1 -1
- package/chunks/updateProductsFromCart.js.map +1 -1
- package/containers/Cart.js +1 -1
- package/containers/Cart.js.map +1 -1
- package/containers/MiniCart.js +1 -1
- package/containers/MiniCart.js.map +1 -1
- package/data/models/cart-model.d.ts +0 -1
- package/data/models/cart-model.d.ts.map +1 -1
- package/data/transforms/transform-cart.d.ts.map +1 -1
- package/lib/state.d.ts.map +1 -1
- package/package.json +1 -1
- package/render.js +1 -1
- package/render.js.map +1 -1
- package/chunks/initializeCart.js +0 -40
- package/chunks/initializeCart.js.map +0 -1
- package/chunks/resetCart.js +0 -219
- package/chunks/resetCart.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateProductsFromCart.js","sources":["../../src/data/transforms/acdl-context.ts","../../src/lib/acdl.ts","../../src/api/updateProductsFromCart/graphql/UpdateProductsMutation.ts","../../src/api/updateProductsFromCart/updateProductsFromCart.ts"],"sourcesContent":["import { ShoppingCartContext, ShoppingCartItem } from '../models/acdl-models';\nimport { CartModel, Item } from '../models/cart-model';\n\ntype TransformShoppingCartParams = {\n cart: CartModel;\n locale?: string;\n};\n\nexport function transformShoppingCart(\n params: TransformShoppingCartParams\n): ShoppingCartContext {\n const { cart, locale = 'en-US' } = params;\n\n return {\n id: cart.id,\n items: transformItems(cart.items, locale),\n prices: {\n subtotalExcludingTax: cart.subtotal.excludingTax,\n subtotalIncludingTax: cart.subtotal.includingTax,\n },\n totalQuantity: cart.totalQuantity,\n possibleOnepageCheckout: undefined,\n giftMessageSelected: undefined,\n giftWrappingSelected: undefined,\n source: undefined,\n };\n}\n\nexport function transformItems(items: Item[], locale: string): ShoppingCartItem[] {\n return items.map((item: any) => ({\n canApplyMsrp: false,\n formattedPrice: formatCurrency(\n locale,\n item.price.currency,\n item.price.value\n ),\n id: item.uid,\n prices: {\n price: item.price,\n },\n product: {\n productId: item.uid,\n name: item.name,\n sku: item.sku,\n topLevelSku: undefined,\n specialToDate: undefined,\n specialFromDate: undefined,\n newToDate: undefined,\n newFromDate: undefined,\n createdAt: undefined,\n updatedAt: undefined,\n manufacturer: undefined,\n countryOfManufacture: undefined,\n categories: item.url.categories,\n productType: undefined,\n pricing: {\n regularPrice: item.regularPrice.value,\n minimalPrice: undefined,\n maximalPrice: undefined,\n specialPrice: item.discount?.value,\n tierPricing: undefined,\n currencyCode: item.regularPrice.currency,\n },\n canonicalUrl: item.url.urlKey,\n mainImageUrl: item.image.src,\n image: {\n src: item.image.src,\n alt: item.image.alt,\n },\n },\n configurableOptions: undefined,\n quantity: item.quantity,\n }));\n}\n\nfunction formatCurrency(\n locale: string,\n currency: string,\n value: number\n): string {\n const formattedLocale = locale.replace('_', '-');\n\n return new Intl.NumberFormat(formattedLocale, {\n style: 'currency',\n currency,\n }).format(value);\n}\n","/* Publish functions for the Adobe Client Data Layer (ACDL) */\n\nimport { CartModel, Item } from '@/cart/data/models/cart-model';\nimport {\n transformItems,\n transformShoppingCart,\n} from '@/cart/data/transforms/acdl-context';\nimport {\n ShoppingCartContext,\n ShoppingCartItem,\n} from '../data/models/acdl-models';\n\n/**\n * See: https://github.com/adobe/commerce-events/blob/main/packages/storefront-events-sdk/src/contexts.ts\n */\nexport const contexts = {\n SHOPPING_CART_CONTEXT: 'shoppingCartContext',\n PRODUCT_CONTEXT: 'productContext',\n CHANGED_PRODUCTS_CONTEXT: 'changedProductsContext',\n};\n\n/**\n * See: https://github.com/adobe/commerce-events/blob/main/packages/storefront-events-sdk/src/events.ts\n */\nexport const events = {\n // See: https://github.com/adobe/commerce-events/blob/main/examples/events/open-cart.md\n OPEN_CART: 'open-cart',\n // See: ??? (not documented in the commerce-events repo)\n //UPDATE_CART: 'update-cart',\n // See: https://github.com/adobe/commerce-events/blob/main/examples/events/add-to-cart.md\n ADD_TO_CART: 'add-to-cart',\n // See: https://github.com/adobe/commerce-events/blob/main/examples/events/remove-from-cart.md\n REMOVE_FROM_CART: 'remove-from-cart',\n // See: https://github.com/adobe/commerce-events/blob/main/examples/events/shopping-cart-view.md\n SHOPPING_CART_VIEW: 'shopping-cart-view',\n};\n\nexport function getAdobeDataLayer() {\n // @ts-ignore\n window.adobeDataLayer = window.adobeDataLayer || [];\n // @ts-ignore\n return window.adobeDataLayer;\n}\n\n/**\n * Sets a context in the Adobe Client Data Layer (ACDL)\n * Logic based on: https://github.com/adobe/commerce-events/blob/main/packages/storefront-events-sdk/src/Base.ts#L6\n */\nfunction setContext(name: string, data: any) {\n const adobeDataLayer = getAdobeDataLayer();\n\n // Clear existing context\n adobeDataLayer.push({\n [name]: null,\n });\n\n // Set new context\n adobeDataLayer.push({\n [name]: data,\n });\n}\n\n/**\n * Pushes an event to the Adobe Client Data Layer (ACDL)\n * Logic based on: https://github.com/adobe/commerce-events/blob/1973d0ce28471ef190fa06dad6359ffa0ab51db6/packages/storefront-events-sdk/src/Base.ts#L34\n */\nfunction pushEvent(event: string, additionalContext?: any) {\n const adobeDataLayer = getAdobeDataLayer();\n\n adobeDataLayer.push((acdl: any) => {\n const state = acdl.getState ? acdl.getState() : {};\n\n acdl.push({\n event,\n eventInfo: {\n ...state,\n ...additionalContext,\n },\n });\n });\n}\n\n// Triggered when a new cart is created, which is when a product is added to an empty cart.\nexport function publishOpenCartEvent(\n cart: CartModel,\n addedItems: Item[],\n locale: string\n) {\n const shoppingCartContext = transformShoppingCart({\n cart,\n locale,\n });\n\n // Set context and push open cart event\n setContext(contexts.SHOPPING_CART_CONTEXT, {\n ...shoppingCartContext,\n });\n\n pushEvent(events.OPEN_CART);\n\n // Set context and push add to cart event for each updated item\n const shoppingCartItems = transformItems(addedItems, locale);\n\n shoppingCartItems.forEach((item) => {\n setContext(contexts.PRODUCT_CONTEXT, item.product);\n publishItemsUpdatedEvent(shoppingCartContext, [item], events.ADD_TO_CART);\n });\n}\n\n// Triggered when any cart page loads.\nexport function publishShoppingCartViewEvent(cart: CartModel, locale: string) {\n const shoppingCartContext = transformShoppingCart({\n cart,\n locale,\n });\n\n setContext(contexts.SHOPPING_CART_CONTEXT, {\n ...shoppingCartContext,\n });\n\n pushEvent(events.SHOPPING_CART_VIEW);\n}\n\n// A re-usable function to publish events when items are added to, or removed from the cart.\nfunction publishItemsUpdatedEvent(\n shoppingCartContext: ShoppingCartContext,\n updatedItems: ShoppingCartItem[],\n event: string\n) {\n const changedProductsContext = {\n items: updatedItems,\n };\n\n setContext(contexts.SHOPPING_CART_CONTEXT, {\n ...shoppingCartContext,\n });\n\n setContext(contexts.CHANGED_PRODUCTS_CONTEXT, {\n ...changedProductsContext,\n });\n\n pushEvent(event);\n}\n\nexport function publishCartUpdateEvents(\n cart: CartModel,\n updatedItems: {\n uid: string;\n }[],\n locale: string\n) {\n const newShoppingCartContext = transformShoppingCart({\n cart,\n locale,\n });\n\n const currentItems = newShoppingCartContext.items;\n\n const adobeDataLayer = getAdobeDataLayer();\n\n const currentState = adobeDataLayer.getState ? adobeDataLayer.getState() : {};\n\n const { shoppingCartContext: { items: previousItems = [] } = {} } =\n currentState;\n\n updatedItems.forEach((updatedItem) => {\n const previousItem = previousItems.find(\n (item: ShoppingCartItem) => item.id === updatedItem.uid\n );\n\n const currentItem = currentItems!.find(\n (item: ShoppingCartItem) => item.id === updatedItem.uid\n );\n\n if (!currentItem && !previousItem) {\n // Not enough data available to publish an event\n // Adobe Data Layer possibly not initialized yet\n return;\n }\n\n if (!previousItem && currentItem) {\n // Publish add to cart event for the item added\n setContext(contexts.PRODUCT_CONTEXT, currentItem.product);\n publishItemsUpdatedEvent(\n newShoppingCartContext,\n [currentItem],\n events.ADD_TO_CART\n );\n } else if (previousItem && !currentItem) {\n // Publish remove from cart event for the item removed\n setContext(contexts.PRODUCT_CONTEXT, previousItem.product);\n publishItemsUpdatedEvent(\n newShoppingCartContext,\n [previousItem],\n events.REMOVE_FROM_CART\n );\n } else if (currentItem!.quantity > previousItem.quantity) {\n // Publish add to cart event for the item increased\n setContext(contexts.PRODUCT_CONTEXT, currentItem!.product);\n publishItemsUpdatedEvent(\n newShoppingCartContext,\n [currentItem!],\n events.ADD_TO_CART\n );\n } else {\n // Publish remove from cart event for the item decreased\n setContext(contexts.PRODUCT_CONTEXT, currentItem!.product);\n publishItemsUpdatedEvent(\n newShoppingCartContext,\n [currentItem!],\n events.REMOVE_FROM_CART\n );\n }\n });\n}\n","import { CART_FRAGMENT, CART_ITEMS_PAGINATION_ARGUMENTS } from '../../graphql/CartFragment';\n\nexport const UPDATE_PRODUCTS_FROM_CART_MUTATION = `\n mutation UPDATE_PRODUCTS_FROM_CART_MUTATION(\n $cartId: String!, \n $cartItems: [CartItemUpdateInput!]!,\n ${CART_ITEMS_PAGINATION_ARGUMENTS}\n ) {\n updateCartItems(\n input: {\n cart_id: $cartId\n cart_items: $cartItems \n }\n ) {\n cart {\n ...CartFragment\n }\n\n }\n }\n ${CART_FRAGMENT}\n`;\n","import { state } from '@/cart/lib/state';\nimport { fetchGraphQl } from '@/cart/api';\nimport { handleFetchError } from '@/cart/lib/fetch-error';\nimport { CartModel } from '@/cart/data/models';\nimport { transformCart } from '@/cart/data/transforms';\nimport { events } from '@adobe/event-bus';\n\nimport { UPDATE_PRODUCTS_FROM_CART_MUTATION } from './graphql/UpdateProductsMutation';\nimport { publishCartUpdateEvents } from '@/cart/lib/acdl';\n\ntype UpdateProductsFromCart = Array<{\n uid: string;\n quantity: number;\n}>;\n\nexport const updateProductsFromCart = async (\n items: UpdateProductsFromCart\n): Promise<CartModel | null> => {\n const cartId = state.cartId;\n\n if (!cartId) {\n throw Error('Cart ID is not set');\n }\n\n return fetchGraphQl(UPDATE_PRODUCTS_FROM_CART_MUTATION, {\n variables: {\n cartId,\n cartItems: items.map(({ uid, quantity }) => ({\n cart_item_uid: uid,\n quantity,\n })),\n },\n }).then(({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n const payload = transformCart(data.updateCartItems.cart);\n\n events.emit('cart/updated', payload);\n events.emit('cart/data', payload);\n\n if (payload) {\n // Publish cart update events\n publishCartUpdateEvents(payload, items, state.locale || 'en-US');\n }\n\n return payload;\n });\n};\n"],"names":["transformShoppingCart","params","cart","locale","id","items","transformItems","prices","subtotalExcludingTax","subtotal","excludingTax","subtotalIncludingTax","includingTax","totalQuantity","possibleOnepageCheckout","undefined","giftMessageSelected","giftWrappingSelected","source","map","item","canApplyMsrp","formattedPrice","formatCurrency","price","currency","value","uid","product","productId","name","sku","topLevelSku","specialToDate","specialFromDate","newToDate","newFromDate","createdAt","updatedAt","manufacturer","countryOfManufacture","categories","url","productType","pricing","regularPrice","minimalPrice","maximalPrice","specialPrice","discount","tierPricing","currencyCode","canonicalUrl","urlKey","mainImageUrl","image","src","alt","configurableOptions","quantity","formattedLocale","replace","Intl","NumberFormat","style","format","contexts","SHOPPING_CART_CONTEXT","PRODUCT_CONTEXT","CHANGED_PRODUCTS_CONTEXT","events","OPEN_CART","ADD_TO_CART","REMOVE_FROM_CART","SHOPPING_CART_VIEW","getAdobeDataLayer","adobeDataLayer","window","setContext","data","push","pushEvent","event","additionalContext","acdl","state","getState","eventInfo","publishOpenCartEvent","addedItems","shoppingCartContext","forEach","publishItemsUpdatedEvent","publishShoppingCartViewEvent","updatedItems","changedProductsContext","publishCartUpdateEvents","newShoppingCartContext","currentItems","currentState","previousItems","updatedItem","previousItem","find","currentItem","UPDATE_PRODUCTS_FROM_CART_MUTATION","CART_ITEMS_PAGINATION_ARGUMENTS","CART_FRAGMENT","updateProductsFromCart","cartId","Error","fetchGraphQl","variables","cartItems","cart_item_uid","then","errors","handleFetchError","payload","transformCart","updateCartItems","emit"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"updateProductsFromCart.js","sources":["../../src/data/transforms/acdl-context.ts","../../src/lib/acdl.ts","../../src/api/updateProductsFromCart/graphql/UpdateProductsMutation.ts","../../src/api/updateProductsFromCart/updateProductsFromCart.ts"],"sourcesContent":["import { ShoppingCartContext, ShoppingCartItem } from '../models/acdl-models';\nimport { CartModel, Item } from '../models/cart-model';\n\ntype TransformShoppingCartParams = {\n cart: CartModel;\n locale?: string;\n};\n\nexport function transformShoppingCart(\n params: TransformShoppingCartParams\n): ShoppingCartContext {\n const { cart, locale = 'en-US' } = params;\n\n return {\n id: cart.id,\n items: transformItems(cart.items, locale),\n prices: {\n subtotalExcludingTax: cart.subtotal.excludingTax,\n subtotalIncludingTax: cart.subtotal.includingTax,\n },\n totalQuantity: cart.totalQuantity,\n possibleOnepageCheckout: undefined,\n giftMessageSelected: undefined,\n giftWrappingSelected: undefined,\n source: undefined,\n };\n}\n\nexport function transformItems(items: Item[], locale: string): ShoppingCartItem[] {\n return items.map((item: any) => ({\n canApplyMsrp: false,\n formattedPrice: formatCurrency(\n locale,\n item.price.currency,\n item.price.value\n ),\n id: item.uid,\n prices: {\n price: item.price,\n },\n product: {\n productId: item.uid,\n name: item.name,\n sku: item.sku,\n topLevelSku: undefined,\n specialToDate: undefined,\n specialFromDate: undefined,\n newToDate: undefined,\n newFromDate: undefined,\n createdAt: undefined,\n updatedAt: undefined,\n manufacturer: undefined,\n countryOfManufacture: undefined,\n categories: item.url.categories,\n productType: undefined,\n pricing: {\n regularPrice: item.regularPrice.value,\n minimalPrice: undefined,\n maximalPrice: undefined,\n specialPrice: item.discount?.value,\n tierPricing: undefined,\n currencyCode: item.regularPrice.currency,\n },\n canonicalUrl: item.url.urlKey,\n mainImageUrl: item.image.src,\n image: {\n src: item.image.src,\n alt: item.image.alt,\n },\n },\n configurableOptions: undefined,\n quantity: item.quantity,\n }));\n}\n\nfunction formatCurrency(\n locale: string,\n currency: string,\n value: number\n): string {\n const formattedLocale = locale.replace('_', '-');\n\n return new Intl.NumberFormat(formattedLocale, {\n style: 'currency',\n currency,\n }).format(value);\n}\n","/* Publish functions for the Adobe Client Data Layer (ACDL) */\n\nimport { CartModel, Item } from '@/cart/data/models/cart-model';\nimport {\n transformItems,\n transformShoppingCart,\n} from '@/cart/data/transforms/acdl-context';\nimport {\n ShoppingCartContext,\n ShoppingCartItem,\n} from '../data/models/acdl-models';\n\n/**\n * See: https://github.com/adobe/commerce-events/blob/main/packages/storefront-events-sdk/src/contexts.ts\n */\nexport const contexts = {\n SHOPPING_CART_CONTEXT: 'shoppingCartContext',\n PRODUCT_CONTEXT: 'productContext',\n CHANGED_PRODUCTS_CONTEXT: 'changedProductsContext',\n};\n\n/**\n * See: https://github.com/adobe/commerce-events/blob/main/packages/storefront-events-sdk/src/events.ts\n */\nexport const events = {\n // See: https://github.com/adobe/commerce-events/blob/main/examples/events/open-cart.md\n OPEN_CART: 'open-cart',\n // See: ??? (not documented in the commerce-events repo)\n //UPDATE_CART: 'update-cart',\n // See: https://github.com/adobe/commerce-events/blob/main/examples/events/add-to-cart.md\n ADD_TO_CART: 'add-to-cart',\n // See: https://github.com/adobe/commerce-events/blob/main/examples/events/remove-from-cart.md\n REMOVE_FROM_CART: 'remove-from-cart',\n // See: https://github.com/adobe/commerce-events/blob/main/examples/events/shopping-cart-view.md\n SHOPPING_CART_VIEW: 'shopping-cart-view',\n};\n\nexport function getAdobeDataLayer() {\n // @ts-ignore\n window.adobeDataLayer = window.adobeDataLayer || [];\n // @ts-ignore\n return window.adobeDataLayer;\n}\n\n/**\n * Sets a context in the Adobe Client Data Layer (ACDL)\n * Logic based on: https://github.com/adobe/commerce-events/blob/main/packages/storefront-events-sdk/src/Base.ts#L6\n */\nfunction setContext(name: string, data: any) {\n const adobeDataLayer = getAdobeDataLayer();\n\n // Clear existing context\n adobeDataLayer.push({\n [name]: null,\n });\n\n // Set new context\n adobeDataLayer.push({\n [name]: data,\n });\n}\n\n/**\n * Pushes an event to the Adobe Client Data Layer (ACDL)\n * Logic based on: https://github.com/adobe/commerce-events/blob/1973d0ce28471ef190fa06dad6359ffa0ab51db6/packages/storefront-events-sdk/src/Base.ts#L34\n */\nfunction pushEvent(event: string, additionalContext?: any) {\n const adobeDataLayer = getAdobeDataLayer();\n\n adobeDataLayer.push((acdl: any) => {\n const state = acdl.getState ? acdl.getState() : {};\n\n acdl.push({\n event,\n eventInfo: {\n ...state,\n ...additionalContext,\n },\n });\n });\n}\n\n// Triggered when a new cart is created, which is when a product is added to an empty cart.\nexport function publishOpenCartEvent(\n cart: CartModel,\n addedItems: Item[],\n locale: string\n) {\n const shoppingCartContext = transformShoppingCart({\n cart,\n locale,\n });\n\n // Set context and push open cart event\n setContext(contexts.SHOPPING_CART_CONTEXT, {\n ...shoppingCartContext,\n });\n\n pushEvent(events.OPEN_CART);\n\n // Set context and push add to cart event for each updated item\n const shoppingCartItems = transformItems(addedItems, locale);\n\n shoppingCartItems.forEach((item) => {\n setContext(contexts.PRODUCT_CONTEXT, item.product);\n publishItemsUpdatedEvent(shoppingCartContext, [item], events.ADD_TO_CART);\n });\n}\n\n// Triggered when any cart page loads.\nexport function publishShoppingCartViewEvent(cart: CartModel, locale: string) {\n const shoppingCartContext = transformShoppingCart({\n cart,\n locale,\n });\n\n setContext(contexts.SHOPPING_CART_CONTEXT, {\n ...shoppingCartContext,\n });\n\n pushEvent(events.SHOPPING_CART_VIEW);\n}\n\n// A re-usable function to publish events when items are added to, or removed from the cart.\nfunction publishItemsUpdatedEvent(\n shoppingCartContext: ShoppingCartContext,\n updatedItems: ShoppingCartItem[],\n event: string\n) {\n const changedProductsContext = {\n items: updatedItems,\n };\n\n setContext(contexts.SHOPPING_CART_CONTEXT, {\n ...shoppingCartContext,\n });\n\n setContext(contexts.CHANGED_PRODUCTS_CONTEXT, {\n ...changedProductsContext,\n });\n\n pushEvent(event);\n}\n\nexport function publishCartUpdateEvents(\n cart: CartModel,\n updatedItems: {\n uid: string;\n }[],\n locale: string\n) {\n const newShoppingCartContext = transformShoppingCart({\n cart,\n locale,\n });\n\n const currentItems = newShoppingCartContext.items;\n\n const adobeDataLayer = getAdobeDataLayer();\n\n const currentState = adobeDataLayer.getState ? adobeDataLayer.getState() : {};\n\n const { shoppingCartContext: { items: previousItems = [] } = {} } =\n currentState;\n\n updatedItems.forEach((updatedItem) => {\n const previousItem = previousItems.find(\n (item: ShoppingCartItem) => item.id === updatedItem.uid\n );\n\n const currentItem = currentItems!.find(\n (item: ShoppingCartItem) => item.id === updatedItem.uid\n );\n\n if (!currentItem && !previousItem) {\n // Not enough data available to publish an event\n // Adobe Data Layer possibly not initialized yet\n return;\n }\n\n if (!previousItem && currentItem) {\n // Publish add to cart event for the item added\n setContext(contexts.PRODUCT_CONTEXT, currentItem.product);\n publishItemsUpdatedEvent(\n newShoppingCartContext,\n [currentItem],\n events.ADD_TO_CART\n );\n } else if (previousItem && !currentItem) {\n // Publish remove from cart event for the item removed\n setContext(contexts.PRODUCT_CONTEXT, previousItem.product);\n publishItemsUpdatedEvent(\n newShoppingCartContext,\n [previousItem],\n events.REMOVE_FROM_CART\n );\n } else if (currentItem!.quantity > previousItem.quantity) {\n // Publish add to cart event for the item increased\n setContext(contexts.PRODUCT_CONTEXT, currentItem!.product);\n publishItemsUpdatedEvent(\n newShoppingCartContext,\n [currentItem!],\n events.ADD_TO_CART\n );\n } else {\n // Publish remove from cart event for the item decreased\n setContext(contexts.PRODUCT_CONTEXT, currentItem!.product);\n publishItemsUpdatedEvent(\n newShoppingCartContext,\n [currentItem!],\n events.REMOVE_FROM_CART\n );\n }\n });\n}\n","import { CART_FRAGMENT, CART_ITEMS_PAGINATION_ARGUMENTS } from '../../graphql/CartFragment';\n\nexport const UPDATE_PRODUCTS_FROM_CART_MUTATION = `\n mutation UPDATE_PRODUCTS_FROM_CART_MUTATION(\n $cartId: String!, \n $cartItems: [CartItemUpdateInput!]!,\n ${CART_ITEMS_PAGINATION_ARGUMENTS}\n ) {\n updateCartItems(\n input: {\n cart_id: $cartId\n cart_items: $cartItems \n }\n ) {\n cart {\n ...CartFragment\n }\n\n }\n }\n ${CART_FRAGMENT}\n`;\n","import { state } from '@/cart/lib/state';\nimport { fetchGraphQl } from '@/cart/api';\nimport { handleFetchError } from '@/cart/lib/fetch-error';\nimport { CartModel } from '@/cart/data/models';\nimport { transformCart } from '@/cart/data/transforms';\nimport { events } from '@adobe/event-bus';\n\nimport { UPDATE_PRODUCTS_FROM_CART_MUTATION } from './graphql/UpdateProductsMutation';\nimport { publishCartUpdateEvents } from '@/cart/lib/acdl';\n\ntype UpdateProductsFromCart = Array<{\n uid: string;\n quantity: number;\n}>;\n\nexport const updateProductsFromCart = async (\n items: UpdateProductsFromCart\n): Promise<CartModel | null> => {\n const cartId = state.cartId;\n\n if (!cartId) {\n throw Error('Cart ID is not set');\n }\n\n return fetchGraphQl(UPDATE_PRODUCTS_FROM_CART_MUTATION, {\n variables: {\n cartId,\n cartItems: items.map(({ uid, quantity }) => ({\n cart_item_uid: uid,\n quantity,\n })),\n },\n }).then(({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n const payload = transformCart(data.updateCartItems.cart);\n\n events.emit('cart/updated', payload);\n events.emit('cart/data', payload);\n\n if (payload) {\n // Publish cart update events\n publishCartUpdateEvents(payload, items, state.locale || 'en-US');\n }\n\n return payload;\n });\n};\n"],"names":["transformShoppingCart","params","cart","locale","id","items","transformItems","prices","subtotalExcludingTax","subtotal","excludingTax","subtotalIncludingTax","includingTax","totalQuantity","possibleOnepageCheckout","undefined","giftMessageSelected","giftWrappingSelected","source","map","item","canApplyMsrp","formattedPrice","formatCurrency","price","currency","value","uid","product","productId","name","sku","topLevelSku","specialToDate","specialFromDate","newToDate","newFromDate","createdAt","updatedAt","manufacturer","countryOfManufacture","categories","url","productType","pricing","regularPrice","minimalPrice","maximalPrice","specialPrice","discount","tierPricing","currencyCode","canonicalUrl","urlKey","mainImageUrl","image","src","alt","configurableOptions","quantity","formattedLocale","replace","Intl","NumberFormat","style","format","contexts","SHOPPING_CART_CONTEXT","PRODUCT_CONTEXT","CHANGED_PRODUCTS_CONTEXT","events","OPEN_CART","ADD_TO_CART","REMOVE_FROM_CART","SHOPPING_CART_VIEW","getAdobeDataLayer","adobeDataLayer","window","setContext","data","push","pushEvent","event","additionalContext","acdl","state","getState","eventInfo","publishOpenCartEvent","addedItems","shoppingCartContext","forEach","publishItemsUpdatedEvent","publishShoppingCartViewEvent","updatedItems","changedProductsContext","publishCartUpdateEvents","newShoppingCartContext","currentItems","currentState","previousItems","updatedItem","previousItem","find","currentItem","UPDATE_PRODUCTS_FROM_CART_MUTATION","CART_ITEMS_PAGINATION_ARGUMENTS","CART_FRAGMENT","updateProductsFromCart","cartId","Error","fetchGraphQl","variables","cartItems","cart_item_uid","then","errors","handleFetchError","payload","transformCart","updateCartItems","emit"],"mappings":"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"}
|
package/containers/Cart.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useState as y,useEffect as ee,useCallback as ve}from"@dropins/tools/preact-compat.js";import{events as Ie}from"@dropins/tools/event-bus.js";import{Divider as be,PriceSummary as _e,Price as c,Picker as ge,Input as me,Button as ye,CartList as Se,CartItem as Te,Image as he}from"@dropins/tools/components.js";import{E as Ne}from"../chunks/MiniCart.js";import{classes as z,VComponent as re}from"@dropins/tools/lib.js";import{jsx as n,jsxs as te,Fragment as M}from"@dropins/tools/preact-jsx-runtime.js";import{s as ne,j as De}from"../chunks/resetCart.js";import{b as Ee,u as Le}from"../chunks/updateProductsFromCart.js";import{g as Pe}from"../chunks/getStoreConfig.js";import{c as Ce,a as we,b as Ue,g as Ge}from"../chunks/getEstimatedTotals.js";import{useText as fe}from"@dropins/tools/i18n.js";import"@dropins/tools/fetch-graphql.js";const ke=({className:f,children:I,emptyCart:x,heading:h,products:o,priceSummary:v,...r})=>n("div",{...r,className:z(["cart-cart",f]),children:te("div",{className:z(["cart-cart__wrapper"]),children:[h&&te("div",{className:z(["cart-cart__heading",["cart-cart__heading--full-width",!o||!v]]),children:[n(re,{node:h,className:"cart-cart__heading-text"}),n(be,{variant:"primary",className:z(["cart-cart__heading-divider"])})]}),n("div",{className:z(["cart-cart__content",["cart-cart__content--empty",!o],["cart-cart__content--full-width",!v]]),children:o||n(re,{node:x,className:"cart-cart__empty-cart"})}),o&&v&&n(re,{node:v,className:z(["cart-cart__price-summary"])})]})}),Xe=()=>{const[f,I]=y();return{handleEstimateTotals:(h,o)=>{const{shippingCountry:v,shippingState:r="",shippingZip:k=""}=h,B={countryCode:v,postcode:k,region:{region:r},shipping_method:{carrier_code:(o==null?void 0:o.carrier_code)||"",method_code:(o==null?void 0:o.method_code)||""}};Ce(B).then(l=>{var X,S,E,L,P,s,F,C,w,_,U,T,a,d,m,p,i,t,H,O;l&&I({estimatedTaxTotal:{amount:(X=l.totalTax)==null?void 0:X.value,currency:(S=l.totalTax)==null?void 0:S.currency},estimatedSubTotal:{excludingTax:{amount:(L=(E=l.subtotal)==null?void 0:E.excludingTax)==null?void 0:L.value,currency:(s=(P=l.subtotal)==null?void 0:P.excludingTax)==null?void 0:s.currency},includingTax:{amount:(C=(F=l.subtotal)==null?void 0:F.includingTax)==null?void 0:C.value,currency:(_=(w=l.subtotal)==null?void 0:w.includingTax)==null?void 0:_.currency},includingDiscountOnly:{amount:(T=(U=l.subtotal)==null?void 0:U.includingDiscountOnly)==null?void 0:T.value,currency:(d=(a=l.subtotal)==null?void 0:a.includingDiscountOnly)==null?void 0:d.currency}},estimatedGrandTotalPrice:{includingTax:{amount:(m=l.total)==null?void 0:m.includingTax.value,currency:(p=l.total)==null?void 0:p.includingTax.currency},excludingTax:{amount:(i=l.total)==null?void 0:i.excludingTax.value,currency:(t=l.total)==null?void 0:t.excludingTax.currency}},estimatedAppliedTaxes:{taxes:(H=l.appliedTaxes)==null?void 0:H.map(u=>{var N,D;return{label:u.label,amount:{value:(N=u.amount)==null?void 0:N.value,currency:(D=u.amount)==null?void 0:D.currency}}})},estimatedItems:{items:(O=l.items)==null?void 0:O.map(u=>{var N,D,R,Z,j,$,Q,V,q,W;return{uid:u.uid,price:{amount:(N=u.price)==null?void 0:N.value,currency:(D=u.price)==null?void 0:D.currency},taxedPrice:{amount:(R=u.taxedPrice)==null?void 0:R.value,currency:(Z=u.taxedPrice)==null?void 0:Z.currency},rowTotal:{amount:(j=u.rowTotal)==null?void 0:j.value,currency:($=u.rowTotal)==null?void 0:$.currency},rowTotalIncludingTax:{amount:(Q=u.rowTotalIncludingTax)==null?void 0:Q.value,currency:(V=u.rowTotalIncludingTax)==null?void 0:V.currency},regularPrice:{amount:(q=u.regularPrice)==null?void 0:q.value,currency:(W=u.regularPrice)==null?void 0:W.currency}}})}})})},estimatedTotals:f}},Fe=()=>{const[f,I]=y([]),[x,h]=y("US"),[o,v]=y(""),[r,k]=y(""),[B,l]=y([]),[X,S]=y(!1),[E,L]=y(),[P,s]=y(),[F,C]=y(""),[w,_]=y(!1),U=async a=>{const{shippingCountry:d,shippingState:m="",shippingZip:p=""}=a,i={countryCode:d,postcode:p,region:{region:m}};return _(!0),Ge(i).then(t=>(t&&(L({amount:t.amount.value,currency:t.amount.currency,priceIncludingtax:{amount:t.price_incl_tax.value,currency:t.price_incl_tax.currency},priceExcludingtax:{amount:t.price_excl_tax.value,currency:t.price_excl_tax.currency}}),s({carrier_code:t.carrier_code,method_code:t.method_code}),h(d),v(m),k(p),C(m||p||d)),t)).finally(()=>{_(!1)})},T=a=>{a.preventDefault(),v(""),k("");const d=a.target.value;h(d)};return ee(()=>{we().then(a=>{let d="US";const m=a.map(p=>(p.isDefaultCountry&&(d=p.id),{text:p.label,value:p.id}));I(m),h(d)})},[]),ee(()=>{S(!0),Ue(x).then(a=>{const d=a.map(m=>({text:m.name,value:m.code}));l(d)}).finally(()=>{S(!1)})},[x,S]),{loading:w,regionsLoading:X,estimatedDestinationText:F,countries:f,selectedCountry:x,selectedRegion:o,selectedZip:r,regions:B,estimatedShippingPrice:E,estimatedShippingMethod:P,handleEstimateShipping:U,handleCountrySelected:T}},Ae=({children:f,initialData:I=null,routeProduct:x,routeEmptyCartCTA:h,routeCheckout:o,...v})=>{var O,u,N,D,R,Z,j,$,Q,V,q,W,ae,ie,ce;const[r,k]=y(I),[B,l]=y(new Set),{loading:X,countries:S,regions:E,selectedCountry:L,estimatedDestinationText:P,estimatedShippingPrice:s,handleCountrySelected:F,handleEstimateShipping:C,regionsLoading:w,selectedRegion:_,selectedZip:U}=Fe(),{handleEstimateTotals:T,estimatedTotals:a}=Xe(),d=(e,g)=>{l(b=>(e?b.add(g):b.delete(g),new Set(b)))},m=(e,g)=>{d(!0,e),Le([{uid:e,quantity:g}]).finally(()=>{d(!1,e),P&&p({shippingCountry:L,shippingState:_,shippingZip:U})})},p=ve(e=>{C(e).then(g=>{if(g){const{carrier_code:b,method_code:G}=g;T(e,{carrier_code:b,method_code:G})}else T(e)})},[C,T]),i=fe({applyButton:"Cart.PriceSummary.estimatedShippingForm.apply.label",checkout:"Cart.PriceSummary.checkout",countryField:"Cart.PriceSummary.estimatedShippingForm.country.placeholder",discountedPrice:"Cart.CartItem.discountedPrice",download:"Cart.CartItem.download",freeShipping:"Cart.PriceSummary.freeShipping",heading:"Cart.Cart.heading",message:"Cart.CartItem.message",regularPrice:"Cart.CartItem.regularPrice",recipient:"Cart.CartItem.recipient",sender:"Cart.CartItem.sender",stateField:"Cart.PriceSummary.estimatedShippingForm.state.placeholder",taxToBeDetermined:"Cart.PriceSummary.taxToBeDetermined",zipField:"Cart.PriceSummary.estimatedShippingForm.zip.placeholder",file:"Cart.CartItem.file",files:"Cart.CartItem.files"});ee(()=>{const e=Ie.on("cart/data",g=>{var G,A;k(g);const b=(A=(G=g==null?void 0:g.addresses)==null?void 0:G.shipping)==null?void 0:A[0];if(b){const{countryCode:J,regionCode:K,zipCode:Y}=b;p({shippingCountry:J,shippingState:K,shippingZip:Y})}},{eager:!0});return()=>{e==null||e.off()}},[]),ee(()=>{I&&Object.keys(I).length>0&&Ee(I,ne.locale||"en-US")},[I]),Pe().then(e=>{ne.config=e});const t=(O=ne.config)==null?void 0:O.shoppingCartDisplaySetting,H=(r==null?void 0:r.totalQuantity)??0?n(_e,{"data-testid":"price-summary",loading:X,heading:"Order Summary",total:{price:a!=null&&a.estimatedGrandTotalPrice?n(c,{...a==null?void 0:a.estimatedGrandTotalPrice.includingTax}):n(c,{amount:r==null?void 0:r.total.includingTax.value,currency:r==null?void 0:r.total.includingTax.currency}),estimated:!0,priceWithoutTax:t!=null&&t.grandTotal?a!=null&&a.estimatedAppliedTaxes?n(c,{...a==null?void 0:a.estimatedGrandTotalPrice.excludingTax}):n(c,{amount:r==null?void 0:r.total.excludingTax.value,currency:r==null?void 0:r.total.excludingTax.currency}):void 0},subTotal:{taxIncluded:(t==null?void 0:t.subtotal)==="INCLUDING_TAX"&&!(t!=null&&t.zeroTax),taxExcluded:(t==null?void 0:t.subtotal)==="INCLUDING_EXCLUDING_TAX",zeroTaxSubtotal:t==null?void 0:t.zeroTax,priceExcludingTax:(u=a==null?void 0:a.estimatedSubTotal)!=null&&u.excludingTax?n(c,{"data-testid":"subtotal",...(N=a==null?void 0:a.estimatedSubTotal)==null?void 0:N.excludingTax}):n(c,{"data-testid":"subtotal",amount:(D=r==null?void 0:r.subtotal.excludingTax)==null?void 0:D.value,currency:(R=r==null?void 0:r.subtotal.excludingTax)==null?void 0:R.currency}),price:!(t!=null&&t.zeroTax)&&(t==null?void 0:t.subtotal)==="INCLUDING_TAX"||!(t!=null&&t.zeroTax)&&(t==null?void 0:t.subtotal)==="INCLUDING_EXCLUDING_TAX"?(Z=a==null?void 0:a.estimatedSubTotal)!=null&&Z.includingTax?n(c,{"data-testid":"subtotal",...(j=a==null?void 0:a.estimatedSubTotal)==null?void 0:j.includingTax}):n(c,{"data-testid":"subtotal",amount:($=r==null?void 0:r.subtotal.includingTax)==null?void 0:$.value,currency:(Q=r==null?void 0:r.subtotal.includingTax)==null?void 0:Q.currency}):n(c,{"data-testid":"subtotal",amount:(V=r==null?void 0:r.subtotal.excludingTax)==null?void 0:V.value,currency:(q=r==null?void 0:r.subtotal.excludingTax)==null?void 0:q.currency})},shipping:r!=null&&r.isVirtual?void 0:{taxIncluded:(t==null?void 0:t.shipping)==="INCLUDING_TAX",taxExcluded:(t==null?void 0:t.shipping)==="INCLUDING_EXCLUDING_TAX",price:(s==null?void 0:s.amount)==0?n("span",{"data-testId":"free-shipping",children:i.freeShipping}):(t==null?void 0:t.shipping)==="INCLUDING_TAX"&&s?n(c,{"data-testid":"shipping",...s.priceIncludingtax}):s?n(c,{...s}):n("span",{children:i.taxToBeDetermined}),estimated:!0,priceExcludingTax:s!=null&&s.priceExcludingtax?n(c,{"data-testid":"shipping-excluding-tax",...s.priceExcludingtax}):n("span",{children:i.taxToBeDetermined}),countryField:n(ge,{name:"shippingCountry",placeholder:i.countryField,value:L,variant:"primary",options:S,handleSelect:F,"data-testid":"estimate-shipping-country-selector"}),stateField:E.length>0?n(ge,{name:"shippingState",placeholder:i.stateField,variant:"primary",options:E,value:_,"data-testid":"estimate-shipping-state-selector",disabled:w}):n(me,{"aria-label":i.stateField,name:"shippingState",placeholder:i.stateField,variant:"primary",value:_,disabled:w,"data-testid":"estimate-shipping-state-input",maxLength:50}),zipField:n(me,{"aria-label":i.zipField,name:"shippingZip",placeholder:i.zipField,variant:"primary","data-testid":"estimate-shipping-zip-input",value:U,maxLength:12}),estimateButton:n(ye,{variant:"secondary","data-testid":"estimate-shipping-apply-button","aria-label":i.applyButton,children:i.applyButton}),destinationText:P||i.taxToBeDetermined,onEstimate:p},taxTotal:r!=null&&r.isVirtual?{price:n("span",{"data-testid":"tax-total",children:i.taxToBeDetermined})}:{price:a!=null&&a.estimatedTaxTotal?n(c,{"data-testid":"tax-total",...a==null?void 0:a.estimatedTaxTotal}):r!=null&&r.totalTax?n(c,{"data-testid":"tax-total",amount:(W=r==null?void 0:r.totalTax)==null?void 0:W.value,currency:(ae=r==null?void 0:r.totalTax)==null?void 0:ae.currency}):n("span",{"data-testid":"tax-total",children:i.taxToBeDetermined}),estimated:!0},taxesApplied:r!=null&&r.isVirtual?void 0:t!=null&&t.fullSummary&&(a!=null&&a.estimatedAppliedTaxes)?(ce=(ie=a==null?void 0:a.estimatedAppliedTaxes)==null?void 0:ie.taxes)==null?void 0:ce.map(e=>({label:e.label,price:n(c,{"data-testid":"applied-taxes",amount:e.amount.value,currency:e.amount.currency})})):t!=null&&t.fullSummary?r==null?void 0:r.appliedTaxes.map(e=>({label:e.label,price:n(c,{"data-testid":"applied-taxes",amount:e.amount.value,currency:e.amount.currency})})):void 0,primaryAction:o?n(ye,{"data-testid":"checkout-button",variant:"primary",href:o({cartId:r.id}),children:i.checkout}):void 0,discounts:r==null?void 0:r.appliedDiscounts.map(e=>({label:e.label,price:n(c,{"data-testid":"summary-discount-total",amount:-e.amount.value,currency:e.amount.currency,sale:!0})}))}):void 0;return n(ke,{...v,heading:n("div",{children:i.heading}),emptyCart:n(Ne,{ctaLinkURL:h==null?void 0:h()}),priceSummary:H,products:(r==null?void 0:r.totalQuantity)??0?n(Se,{children:r==null?void 0:r.items.map((e,g)=>{var A,J,K,Y,le,ue,oe,se,de,pe;const b=B.has(e.uid),G={...e.bundleOptions??{},...e.selectedOptions??{},...e.customizableOptions,...e.recipient?{[i.recipient]:e.recipient}:{},...e.recipientEmail&&e.recipient?{[i.recipient]:`${e.recipient} (${e.recipientEmail})`}:{},...e.sender?{[i.sender]:e.sender}:{},...e.senderEmail&&e.sender?{[i.sender]:`${e.sender} (${e.senderEmail})`}:{},...e.message?{[i.message]:e.message}:{},...e.links&&e.links.count?e.links.count>1?{[i.files.replace("{count}",e.links.count.toString())]:e.links.result}:{[i.file.replace("{count}",e.links.count.toString())]:e.links.result}:{}};return n(Te,{ariaLabel:e.name,updating:b,"data-testid":"cart-item",taxIncluded:(t==null?void 0:t.price)==="INCLUDING_TAX",taxExcluded:(t==null?void 0:t.price)==="INCLUDING_EXCLUDING_TAX",image:x?n("a",{href:x(e),children:n(he,{loading:g<4?"eager":"lazy",src:e.image.src,alt:e.image.alt,width:"300",height:"300",params:{width:300}})}):n(he,{loading:g<4?"eager":"lazy",src:e.image.src,alt:e.image.alt,width:"300",height:"300",params:{width:300}}),title:n("span",{children:x?n("a",{href:x(e),children:e.name}):n(M,{children:e.name})}),sku:n("span",{children:e.sku}),configurations:Object.keys(G).length>0?G:void 0,quantity:e.quantity,price:(t==null?void 0:t.price)==="INCLUDING_TAX"?n(c,{amount:e.discounted?(A=e.regularPrice)==null?void 0:A.value:(J=e.taxedPrice)==null?void 0:J.value,currency:e.discounted?(K=e.regularPrice)==null?void 0:K.currency:(Y=e.taxedPrice)==null?void 0:Y.currency,style:{font:"inherit"},"data-testid":"including-tax-item-price"}):n(c,{amount:(le=e.regularPrice)==null?void 0:le.value,currency:(ue=e.regularPrice)==null?void 0:ue.currency,style:{font:"inherit"},"data-testid":"regular-item-price"}),total:(t==null?void 0:t.price)==="INCLUDING_EXCLUDING_TAX"||(t==null?void 0:t.price)==="INCLUDING_TAX"?n(M,{children:e.discounted?te(M,{children:[n(c,{amount:e.total.value,currency:e.total.currency,variant:e.discounted?"strikethrough":"default","data-testid":"including-tax-row-total","aria-label":i.regularPrice}),n(c,{amount:(oe=e.rowTotalIncludingTax)==null?void 0:oe.value,currency:(se=e.rowTotalIncludingTax)==null?void 0:se.currency,sale:e.discounted,"data-testid":"discount-total","aria-label":i.discountedPrice})]}):n(c,{amount:e.rowTotalIncludingTax.value,currency:e.rowTotalIncludingTax.currency,"data-testid":"including-tax-row-total","aria-label":i.regularPrice})}):te(M,{children:[n(c,{amount:e.total.value,currency:e.total.currency,variant:e.discounted?"strikethrough":"default","data-testid":"regular-total","aria-label":i.regularPrice}),e.discounted&&n(c,{amount:(de=e.discountedTotal)==null?void 0:de.value,currency:(pe=e.discountedTotal)==null?void 0:pe.currency,sale:e.discounted,"data-testid":"discount-total","aria-label":i.discountedPrice})]}),totalExcludingTax:(t==null?void 0:t.price)==="INCLUDING_EXCLUDING_TAX"?n(c,{amount:e.rowTotal.value,currency:e.rowTotal.currency,"data-testid":"excluding-tax-total","aria-label":i.regularPrice}):void 0,onQuantity:xe=>{m(e.uid,xe)},onRemove:()=>{m(e.uid,0)}},e.uid)})}):void 0})};Ae.getInitialData=async function(){return De()};export{Ae as Cart,Ae as default};
|
|
1
|
+
import{useState as y,useEffect as ee,useCallback as ve}from"@dropins/tools/preact-compat.js";import{events as Ie}from"@dropins/tools/event-bus.js";import{Divider as be,PriceSummary as _e,Price as c,Picker as ge,Input as me,Button as ye,CartList as Se,CartItem as Te,Image as he}from"@dropins/tools/components.js";import{E as Ne}from"../chunks/MiniCart.js";import{classes as z,VComponent as ne}from"@dropins/tools/lib.js";import{jsx as r,jsxs as te,Fragment as M}from"@dropins/tools/preact-jsx-runtime.js";import{s as re,m as De,n as Ee}from"../chunks/getStoreConfig.js";import{b as Le,u as Pe}from"../chunks/updateProductsFromCart.js";import{c as Ce,a as we,b as Ue,g as Ge}from"../chunks/getEstimatedTotals.js";import{useText as fe}from"@dropins/tools/i18n.js";import"@dropins/tools/fetch-graphql.js";const ke=({className:f,children:I,emptyCart:x,heading:h,products:o,priceSummary:v,...n})=>r("div",{...n,className:z(["cart-cart",f]),children:te("div",{className:z(["cart-cart__wrapper"]),children:[h&&te("div",{className:z(["cart-cart__heading",["cart-cart__heading--full-width",!o||!v]]),children:[r(ne,{node:h,className:"cart-cart__heading-text"}),r(be,{variant:"primary",className:z(["cart-cart__heading-divider"])})]}),r("div",{className:z(["cart-cart__content",["cart-cart__content--empty",!o],["cart-cart__content--full-width",!v]]),children:o||r(ne,{node:x,className:"cart-cart__empty-cart"})}),o&&v&&r(ne,{node:v,className:z(["cart-cart__price-summary"])})]})}),Xe=()=>{const[f,I]=y();return{handleEstimateTotals:(h,o)=>{const{shippingCountry:v,shippingState:n="",shippingZip:k=""}=h,B={countryCode:v,postcode:k,region:{region:n},shipping_method:{carrier_code:(o==null?void 0:o.carrier_code)||"",method_code:(o==null?void 0:o.method_code)||""}};Ce(B).then(l=>{var X,S,E,L,P,s,F,C,w,_,U,T,a,d,m,p,i,t,H,O;l&&I({estimatedTaxTotal:{amount:(X=l.totalTax)==null?void 0:X.value,currency:(S=l.totalTax)==null?void 0:S.currency},estimatedSubTotal:{excludingTax:{amount:(L=(E=l.subtotal)==null?void 0:E.excludingTax)==null?void 0:L.value,currency:(s=(P=l.subtotal)==null?void 0:P.excludingTax)==null?void 0:s.currency},includingTax:{amount:(C=(F=l.subtotal)==null?void 0:F.includingTax)==null?void 0:C.value,currency:(_=(w=l.subtotal)==null?void 0:w.includingTax)==null?void 0:_.currency},includingDiscountOnly:{amount:(T=(U=l.subtotal)==null?void 0:U.includingDiscountOnly)==null?void 0:T.value,currency:(d=(a=l.subtotal)==null?void 0:a.includingDiscountOnly)==null?void 0:d.currency}},estimatedGrandTotalPrice:{includingTax:{amount:(m=l.total)==null?void 0:m.includingTax.value,currency:(p=l.total)==null?void 0:p.includingTax.currency},excludingTax:{amount:(i=l.total)==null?void 0:i.excludingTax.value,currency:(t=l.total)==null?void 0:t.excludingTax.currency}},estimatedAppliedTaxes:{taxes:(H=l.appliedTaxes)==null?void 0:H.map(u=>{var N,D;return{label:u.label,amount:{value:(N=u.amount)==null?void 0:N.value,currency:(D=u.amount)==null?void 0:D.currency}}})},estimatedItems:{items:(O=l.items)==null?void 0:O.map(u=>{var N,D,R,Z,$,j,Q,V,q,W;return{uid:u.uid,price:{amount:(N=u.price)==null?void 0:N.value,currency:(D=u.price)==null?void 0:D.currency},taxedPrice:{amount:(R=u.taxedPrice)==null?void 0:R.value,currency:(Z=u.taxedPrice)==null?void 0:Z.currency},rowTotal:{amount:($=u.rowTotal)==null?void 0:$.value,currency:(j=u.rowTotal)==null?void 0:j.currency},rowTotalIncludingTax:{amount:(Q=u.rowTotalIncludingTax)==null?void 0:Q.value,currency:(V=u.rowTotalIncludingTax)==null?void 0:V.currency},regularPrice:{amount:(q=u.regularPrice)==null?void 0:q.value,currency:(W=u.regularPrice)==null?void 0:W.currency}}})}})})},estimatedTotals:f}},Fe=()=>{const[f,I]=y([]),[x,h]=y("US"),[o,v]=y(""),[n,k]=y(""),[B,l]=y([]),[X,S]=y(!1),[E,L]=y(),[P,s]=y(),[F,C]=y(""),[w,_]=y(!1),U=async a=>{const{shippingCountry:d,shippingState:m="",shippingZip:p=""}=a,i={countryCode:d,postcode:p,region:{region:m}};return _(!0),Ge(i).then(t=>(t&&(L({amount:t.amount.value,currency:t.amount.currency,priceIncludingtax:{amount:t.price_incl_tax.value,currency:t.price_incl_tax.currency},priceExcludingtax:{amount:t.price_excl_tax.value,currency:t.price_excl_tax.currency}}),s({carrier_code:t.carrier_code,method_code:t.method_code}),h(d),v(m),k(p),C(m||p||d)),t)).finally(()=>{_(!1)})},T=a=>{a.preventDefault(),v(""),k("");const d=a.target.value;h(d)};return ee(()=>{we().then(a=>{let d="US";const m=a.map(p=>(p.isDefaultCountry&&(d=p.id),{text:p.label,value:p.id}));I(m),h(d)})},[]),ee(()=>{S(!0),Ue(x).then(a=>{const d=a.map(m=>({text:m.name,value:m.code}));l(d)}).finally(()=>{S(!1)})},[x,S]),{loading:w,regionsLoading:X,estimatedDestinationText:F,countries:f,selectedCountry:x,selectedRegion:o,selectedZip:n,regions:B,estimatedShippingPrice:E,estimatedShippingMethod:P,handleEstimateShipping:U,handleCountrySelected:T}},Ae=({children:f,initialData:I=null,routeProduct:x,routeEmptyCartCTA:h,routeCheckout:o,...v})=>{var O,u,N,D,R,Z,$,j,Q,V,q,W,ae,ie,ce;const[n,k]=y(I),[B,l]=y(new Set),{loading:X,countries:S,regions:E,selectedCountry:L,estimatedDestinationText:P,estimatedShippingPrice:s,handleCountrySelected:F,handleEstimateShipping:C,regionsLoading:w,selectedRegion:_,selectedZip:U}=Fe(),{handleEstimateTotals:T,estimatedTotals:a}=Xe(),d=(e,g)=>{l(b=>(e?b.add(g):b.delete(g),new Set(b)))},m=(e,g)=>{d(!0,e),Pe([{uid:e,quantity:g}]).finally(()=>{d(!1,e),P&&p({shippingCountry:L,shippingState:_,shippingZip:U})})},p=ve(e=>{C(e).then(g=>{if(g){const{carrier_code:b,method_code:G}=g;T(e,{carrier_code:b,method_code:G})}else T(e)})},[C,T]),i=fe({applyButton:"Cart.PriceSummary.estimatedShippingForm.apply.label",checkout:"Cart.PriceSummary.checkout",countryField:"Cart.PriceSummary.estimatedShippingForm.country.placeholder",discountedPrice:"Cart.CartItem.discountedPrice",download:"Cart.CartItem.download",freeShipping:"Cart.PriceSummary.freeShipping",heading:"Cart.Cart.heading",message:"Cart.CartItem.message",regularPrice:"Cart.CartItem.regularPrice",recipient:"Cart.CartItem.recipient",sender:"Cart.CartItem.sender",stateField:"Cart.PriceSummary.estimatedShippingForm.state.placeholder",taxToBeDetermined:"Cart.PriceSummary.taxToBeDetermined",zipField:"Cart.PriceSummary.estimatedShippingForm.zip.placeholder",file:"Cart.CartItem.file",files:"Cart.CartItem.files"});ee(()=>{const e=Ie.on("cart/data",g=>{var G,A;k(g);const b=(A=(G=g==null?void 0:g.addresses)==null?void 0:G.shipping)==null?void 0:A[0];if(b){const{countryCode:J,regionCode:K,zipCode:Y}=b;p({shippingCountry:J,shippingState:K,shippingZip:Y})}},{eager:!0});return()=>{e==null||e.off()}},[]),ee(()=>{I&&Object.keys(I).length>0&&Le(I,re.locale||"en-US")},[I]),De().then(e=>{re.config=e});const t=(O=re.config)==null?void 0:O.shoppingCartDisplaySetting,H=(n==null?void 0:n.totalQuantity)??0?r(_e,{"data-testid":"price-summary",loading:X,heading:"Order Summary",total:{price:a!=null&&a.estimatedGrandTotalPrice?r(c,{...a==null?void 0:a.estimatedGrandTotalPrice.includingTax}):r(c,{amount:n==null?void 0:n.total.includingTax.value,currency:n==null?void 0:n.total.includingTax.currency}),estimated:!0,priceWithoutTax:t!=null&&t.grandTotal?a!=null&&a.estimatedAppliedTaxes?r(c,{...a==null?void 0:a.estimatedGrandTotalPrice.excludingTax}):r(c,{amount:n==null?void 0:n.total.excludingTax.value,currency:n==null?void 0:n.total.excludingTax.currency}):void 0},subTotal:{taxIncluded:(t==null?void 0:t.subtotal)==="INCLUDING_TAX"&&!(t!=null&&t.zeroTax),taxExcluded:(t==null?void 0:t.subtotal)==="INCLUDING_EXCLUDING_TAX",zeroTaxSubtotal:t==null?void 0:t.zeroTax,priceExcludingTax:(u=a==null?void 0:a.estimatedSubTotal)!=null&&u.excludingTax?r(c,{"data-testid":"subtotal",...(N=a==null?void 0:a.estimatedSubTotal)==null?void 0:N.excludingTax}):r(c,{"data-testid":"subtotal",amount:(D=n==null?void 0:n.subtotal.excludingTax)==null?void 0:D.value,currency:(R=n==null?void 0:n.subtotal.excludingTax)==null?void 0:R.currency}),price:!(t!=null&&t.zeroTax)&&(t==null?void 0:t.subtotal)==="INCLUDING_TAX"||!(t!=null&&t.zeroTax)&&(t==null?void 0:t.subtotal)==="INCLUDING_EXCLUDING_TAX"?(Z=a==null?void 0:a.estimatedSubTotal)!=null&&Z.includingTax?r(c,{"data-testid":"subtotal",...($=a==null?void 0:a.estimatedSubTotal)==null?void 0:$.includingTax}):r(c,{"data-testid":"subtotal",amount:(j=n==null?void 0:n.subtotal.includingTax)==null?void 0:j.value,currency:(Q=n==null?void 0:n.subtotal.includingTax)==null?void 0:Q.currency}):r(c,{"data-testid":"subtotal",amount:(V=n==null?void 0:n.subtotal.excludingTax)==null?void 0:V.value,currency:(q=n==null?void 0:n.subtotal.excludingTax)==null?void 0:q.currency})},shipping:n!=null&&n.isVirtual?void 0:{taxIncluded:(t==null?void 0:t.shipping)==="INCLUDING_TAX",taxExcluded:(t==null?void 0:t.shipping)==="INCLUDING_EXCLUDING_TAX",price:(s==null?void 0:s.amount)==0?r("span",{"data-testId":"free-shipping",children:i.freeShipping}):(t==null?void 0:t.shipping)==="INCLUDING_TAX"&&s?r(c,{"data-testid":"shipping",...s.priceIncludingtax}):s?r(c,{...s}):r("span",{children:i.taxToBeDetermined}),estimated:!0,priceExcludingTax:s!=null&&s.priceExcludingtax?r(c,{"data-testid":"shipping-excluding-tax",...s.priceExcludingtax}):r("span",{children:i.taxToBeDetermined}),countryField:r(ge,{name:"shippingCountry",placeholder:i.countryField,value:L,variant:"primary",options:S,handleSelect:F,"data-testid":"estimate-shipping-country-selector"}),stateField:E.length>0?r(ge,{name:"shippingState",placeholder:i.stateField,variant:"primary",options:E,value:_,"data-testid":"estimate-shipping-state-selector",disabled:w}):r(me,{"aria-label":i.stateField,name:"shippingState",placeholder:i.stateField,variant:"primary",value:_,disabled:w,"data-testid":"estimate-shipping-state-input",maxLength:50}),zipField:r(me,{"aria-label":i.zipField,name:"shippingZip",placeholder:i.zipField,variant:"primary","data-testid":"estimate-shipping-zip-input",value:U,maxLength:12}),estimateButton:r(ye,{variant:"secondary","data-testid":"estimate-shipping-apply-button","aria-label":i.applyButton,children:i.applyButton}),destinationText:P||i.taxToBeDetermined,onEstimate:p},taxTotal:n!=null&&n.isVirtual?{price:r("span",{"data-testid":"tax-total",children:i.taxToBeDetermined})}:{price:a!=null&&a.estimatedTaxTotal?r(c,{"data-testid":"tax-total",...a==null?void 0:a.estimatedTaxTotal}):n!=null&&n.totalTax?r(c,{"data-testid":"tax-total",amount:(W=n==null?void 0:n.totalTax)==null?void 0:W.value,currency:(ae=n==null?void 0:n.totalTax)==null?void 0:ae.currency}):r("span",{"data-testid":"tax-total",children:i.taxToBeDetermined}),estimated:!0},taxesApplied:n!=null&&n.isVirtual?void 0:t!=null&&t.fullSummary&&(a!=null&&a.estimatedAppliedTaxes)?(ce=(ie=a==null?void 0:a.estimatedAppliedTaxes)==null?void 0:ie.taxes)==null?void 0:ce.map(e=>({label:e.label,price:r(c,{"data-testid":"applied-taxes",amount:e.amount.value,currency:e.amount.currency})})):t!=null&&t.fullSummary?n==null?void 0:n.appliedTaxes.map(e=>({label:e.label,price:r(c,{"data-testid":"applied-taxes",amount:e.amount.value,currency:e.amount.currency})})):void 0,primaryAction:o?r(ye,{"data-testid":"checkout-button",variant:"primary",href:o({cartId:n.id}),children:i.checkout}):void 0,discounts:n==null?void 0:n.appliedDiscounts.map(e=>({label:e.label,price:r(c,{"data-testid":"summary-discount-total",amount:-e.amount.value,currency:e.amount.currency,sale:!0})}))}):void 0;return r(ke,{...v,heading:r("div",{children:i.heading}),emptyCart:r(Ne,{ctaLinkURL:h==null?void 0:h()}),priceSummary:H,products:(n==null?void 0:n.totalQuantity)??0?r(Se,{children:n==null?void 0:n.items.map((e,g)=>{var A,J,K,Y,le,ue,oe,se,de,pe;const b=B.has(e.uid),G={...e.bundleOptions??{},...e.selectedOptions??{},...e.customizableOptions,...e.recipient?{[i.recipient]:e.recipient}:{},...e.recipientEmail&&e.recipient?{[i.recipient]:`${e.recipient} (${e.recipientEmail})`}:{},...e.sender?{[i.sender]:e.sender}:{},...e.senderEmail&&e.sender?{[i.sender]:`${e.sender} (${e.senderEmail})`}:{},...e.message?{[i.message]:e.message}:{},...e.links&&e.links.count?e.links.count>1?{[i.files.replace("{count}",e.links.count.toString())]:e.links.result}:{[i.file.replace("{count}",e.links.count.toString())]:e.links.result}:{}};return r(Te,{ariaLabel:e.name,updating:b,"data-testid":"cart-item",taxIncluded:(t==null?void 0:t.price)==="INCLUDING_TAX",taxExcluded:(t==null?void 0:t.price)==="INCLUDING_EXCLUDING_TAX",image:x?r("a",{href:x(e),children:r(he,{loading:g<4?"eager":"lazy",src:e.image.src,alt:e.image.alt,width:"300",height:"300",params:{width:300}})}):r(he,{loading:g<4?"eager":"lazy",src:e.image.src,alt:e.image.alt,width:"300",height:"300",params:{width:300}}),title:r("span",{children:x?r("a",{href:x(e),children:e.name}):r(M,{children:e.name})}),sku:r("span",{children:e.sku}),configurations:Object.keys(G).length>0?G:void 0,quantity:e.quantity,price:(t==null?void 0:t.price)==="INCLUDING_TAX"?r(c,{amount:e.discounted?(A=e.regularPrice)==null?void 0:A.value:(J=e.taxedPrice)==null?void 0:J.value,currency:e.discounted?(K=e.regularPrice)==null?void 0:K.currency:(Y=e.taxedPrice)==null?void 0:Y.currency,style:{font:"inherit"},"data-testid":"including-tax-item-price"}):r(c,{amount:(le=e.regularPrice)==null?void 0:le.value,currency:(ue=e.regularPrice)==null?void 0:ue.currency,style:{font:"inherit"},"data-testid":"regular-item-price"}),total:(t==null?void 0:t.price)==="INCLUDING_EXCLUDING_TAX"||(t==null?void 0:t.price)==="INCLUDING_TAX"?r(M,{children:e.discounted?te(M,{children:[r(c,{amount:e.total.value,currency:e.total.currency,variant:e.discounted?"strikethrough":"default","data-testid":"including-tax-row-total","aria-label":i.regularPrice}),r(c,{amount:(oe=e.rowTotalIncludingTax)==null?void 0:oe.value,currency:(se=e.rowTotalIncludingTax)==null?void 0:se.currency,sale:e.discounted,"data-testid":"discount-total","aria-label":i.discountedPrice})]}):r(c,{amount:e.rowTotalIncludingTax.value,currency:e.rowTotalIncludingTax.currency,"data-testid":"including-tax-row-total","aria-label":i.regularPrice})}):te(M,{children:[r(c,{amount:e.total.value,currency:e.total.currency,variant:e.discounted?"strikethrough":"default","data-testid":"regular-total","aria-label":i.regularPrice}),e.discounted&&r(c,{amount:(de=e.discountedTotal)==null?void 0:de.value,currency:(pe=e.discountedTotal)==null?void 0:pe.currency,sale:e.discounted,"data-testid":"discount-total","aria-label":i.discountedPrice})]}),totalExcludingTax:(t==null?void 0:t.price)==="INCLUDING_EXCLUDING_TAX"?r(c,{amount:e.rowTotal.value,currency:e.rowTotal.currency,"data-testid":"excluding-tax-total","aria-label":i.regularPrice}):void 0,onQuantity:xe=>{m(e.uid,xe)},onRemove:()=>{m(e.uid,0)}},e.uid)})}):void 0})};Ae.getInitialData=async function(){return Ee()};export{Ae as Cart,Ae as default};
|
|
2
2
|
//# sourceMappingURL=Cart.js.map
|
package/containers/Cart.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cart.js","sources":["../../src/components/Cart/Cart.tsx","../../src/hooks/useEstimatedTotals.tsx","../../src/hooks/useEstimatedShipping.ts","../../src/containers/Cart/Cart.tsx"],"sourcesContent":["import { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { VComponent, classes } from '@adobe/elsie/lib';\nimport { Divider } from '@adobe/elsie/components';\n\nimport '@/cart/components/Cart/Cart.css';\n\nexport interface CartProps extends HTMLAttributes<HTMLDivElement> {\n emptyCart: VNode;\n heading?: VNode;\n products?: VNode;\n priceSummary?: VNode<HTMLAttributes<HTMLElement>>;\n}\n\nexport const Cart: FunctionComponent<CartProps> = ({\n className,\n children,\n emptyCart,\n heading,\n products,\n priceSummary,\n ...props\n}) => {\n return (\n <div {...props} className={classes(['cart-cart', className])}>\n <div className={classes(['cart-cart__wrapper'])}>\n {/* Heading */}\n {heading && (\n <div\n className={classes([\n 'cart-cart__heading',\n ['cart-cart__heading--full-width', !products || !priceSummary],\n ])}\n >\n <VComponent node={heading} className=\"cart-cart__heading-text\" />\n\n <Divider\n variant=\"primary\"\n className={classes(['cart-cart__heading-divider'])}\n />\n </div>\n )}\n\n {/* Content */}\n <div\n className={classes([\n 'cart-cart__content',\n ['cart-cart__content--empty', !products],\n ['cart-cart__content--full-width', !priceSummary],\n ])}\n >\n {products || (\n <VComponent node={emptyCart} className=\"cart-cart__empty-cart\" />\n )}\n </div>\n {products && priceSummary && (\n <VComponent\n node={priceSummary}\n className={classes(['cart-cart__price-summary'])}\n />\n )}\n </div>\n </div>\n );\n};\n","import { useState } from 'preact/compat';\nimport { PriceProps } from '@adobe/elsie/components';\n\nimport { getEstimatedTotals } from '@/cart/api';\n\nexport const useEstimatedTotals = () => {\n const [estimatedTotals, setEstimatedTotals] = useState<any>();\n\n const handleEstimateTotals = (\n formValues: {\n shippingCountry: string;\n shippingState?: string;\n shippingZip?: string;\n },\n shippingMethods?: {\n carrier_code: string;\n method_code: string;\n }\n ) => {\n const {\n shippingCountry,\n shippingState = '',\n shippingZip = '',\n } = formValues;\n\n const inputData = {\n countryCode: shippingCountry,\n postcode: shippingZip,\n region: {\n region: shippingState,\n },\n shipping_method: {\n carrier_code: shippingMethods?.carrier_code || '',\n method_code: shippingMethods?.method_code || '',\n },\n };\n\n getEstimatedTotals(inputData).then((data) => {\n if (data) {\n setEstimatedTotals({\n estimatedTaxTotal: {\n amount: data.totalTax?.value,\n currency: data.totalTax?.currency,\n },\n estimatedSubTotal: {\n excludingTax: {\n amount: data.subtotal?.excludingTax?.value,\n currency: data.subtotal?.excludingTax?.currency,\n },\n includingTax: {\n amount: data.subtotal?.includingTax?.value,\n currency: data.subtotal?.includingTax?.currency,\n },\n includingDiscountOnly: {\n amount: data.subtotal?.includingDiscountOnly?.value,\n currency: data.subtotal?.includingDiscountOnly?.currency,\n },\n },\n estimatedGrandTotalPrice: {\n includingTax: {\n amount: data.total?.includingTax.value,\n currency: data.total?.includingTax.currency,\n },\n excludingTax: {\n amount: data.total?.excludingTax.value,\n currency: data.total?.excludingTax.currency,\n },\n },\n estimatedAppliedTaxes: {\n taxes: data.appliedTaxes?.map((tax) => {\n return {\n label: tax.label,\n amount: {\n value: tax.amount?.value,\n currency: tax.amount?.currency,\n },\n };\n }),\n },\n estimatedItems: {\n items: data.items?.map((item) => {\n return {\n uid: item.uid,\n price: {\n amount: item.price?.value,\n currency: item.price?.currency,\n },\n taxedPrice: {\n amount: item.taxedPrice?.value,\n currency: item.taxedPrice?.currency,\n },\n rowTotal: {\n amount: item.rowTotal?.value,\n currency: item.rowTotal?.currency,\n },\n rowTotalIncludingTax: {\n amount: item.rowTotalIncludingTax?.value,\n currency: item.rowTotalIncludingTax?.currency,\n },\n regularPrice: {\n amount: item.regularPrice?.value,\n currency: item.regularPrice?.currency,\n },\n };\n }),\n },\n } as PriceProps);\n }\n });\n };\n\n return {\n handleEstimateTotals,\n estimatedTotals,\n };\n};\n","import { useEffect, useState } from 'preact/compat';\n\nimport {\n EstimateAddressInput,\n getCountries,\n getEstimateShipping,\n getRegions,\n} from '@/cart/api';\nimport { PriceProps } from '@adobe/elsie/components';\n\nexport const useEstimatedShipping = () => {\n /* State data related to estimating costs in the Price Summary component */\n const [countries, setCountries] = useState<{ text: string; value: string }[]>(\n []\n );\n const [selectedCountry, setSelectedCountry] = useState<string>('US');\n const [selectedRegion, setSelectedRegion] = useState<string>('');\n const [selectedZip, setSelectedZip] = useState<string>('');\n const [regions, setRegions] = useState<{ text: string; value: string }[]>([]);\n const [regionsLoading, setRegionsLoading] = useState<boolean>(false);\n const [estimatedShippingPrice, setEstimatedShippingPrice] = useState<\n PriceProps | null | any\n >();\n const [estimatedShippingMethod, setEstimatedShippingMethod] = useState<any>();\n const [estimatedDestinationText, setEstimatedDestinationText] =\n useState<string>('');\n const [priceSummaryLoading, setPriceSummaryLoading] =\n useState<boolean>(false);\n\n const handleEstimateShipping = async (formValues: {\n shippingCountry: string;\n shippingState?: string;\n shippingZip?: string;\n }) => {\n const {\n shippingCountry,\n shippingState = '',\n shippingZip = '',\n } = formValues;\n\n const addressData: EstimateAddressInput = {\n countryCode: shippingCountry,\n postcode: shippingZip,\n region: {\n region: shippingState,\n },\n };\n\n setPriceSummaryLoading(true);\n\n return getEstimateShipping(addressData)\n .then((data) => {\n if (data) {\n setEstimatedShippingPrice({\n amount: data.amount.value,\n currency: data.amount.currency,\n priceIncludingtax: {\n amount: data.price_incl_tax.value,\n currency: data.price_incl_tax.currency,\n },\n priceExcludingtax: {\n amount: data.price_excl_tax.value,\n currency: data.price_excl_tax.currency,\n },\n });\n setEstimatedShippingMethod({\n carrier_code: data.carrier_code,\n method_code: data.method_code,\n });\n\n setSelectedCountry(shippingCountry);\n setSelectedRegion(shippingState);\n setSelectedZip(shippingZip);\n\n setEstimatedDestinationText(\n shippingState || shippingZip || shippingCountry\n );\n }\n return data;\n })\n\n .finally(() => {\n setPriceSummaryLoading(false);\n });\n };\n\n const handleCountrySelected = (event: Event) => {\n event.preventDefault();\n\n setSelectedRegion('');\n setSelectedZip('');\n\n const value = (event.target as HTMLSelectElement).value;\n setSelectedCountry(value);\n };\n\n // Get list of countries on initial load\n useEffect(() => {\n getCountries().then((countries) => {\n let defaultCountry = 'US';\n const transformedCountries = countries.map((country) => {\n if (country.isDefaultCountry) {\n defaultCountry = country.id;\n }\n return {\n text: country.label,\n value: country.id,\n };\n });\n setCountries(transformedCountries);\n setSelectedCountry(defaultCountry);\n });\n }, []);\n\n // Update regions when country is updated\n useEffect(() => {\n setRegionsLoading(true);\n getRegions(selectedCountry)\n .then((regions) => {\n const transformedRegions = regions.map((region) => {\n return {\n text: region.name,\n value: region.code,\n };\n });\n setRegions(transformedRegions);\n })\n .finally(() => {\n setRegionsLoading(false);\n });\n }, [selectedCountry, setRegionsLoading]);\n\n return {\n loading: priceSummaryLoading,\n regionsLoading,\n estimatedDestinationText,\n countries,\n selectedCountry,\n selectedRegion,\n selectedZip,\n regions,\n estimatedShippingPrice,\n estimatedShippingMethod,\n handleEstimateShipping,\n handleCountrySelected,\n };\n};\n","import {\n HTMLAttributes,\n useCallback,\n useEffect,\n useState,\n} from 'preact/compat';\nimport { Container } from '@adobe/elsie/lib';\nimport { events } from '@adobe/event-bus';\nimport { CartModel } from '@/cart/data/models';\nimport {\n Button,\n CartItem,\n CartList,\n Input,\n Image,\n Picker,\n Price,\n PriceSummary,\n} from '@adobe/elsie/components';\nimport { Cart as CartComponent, EmptyCart } from '@/cart/components';\nimport { updateProductsFromCart, getStoreConfig } from '@/cart/api';\nimport { useText } from '@adobe/elsie/i18n';\nimport { getPersistedData } from '@/cart/lib/persisted-data';\n\nimport { publishShoppingCartViewEvent } from '@/cart/lib/acdl';\nimport { state } from '@/cart/lib/state';\nimport { useEstimatedShipping, useEstimatedTotals } from '@/cart/hooks';\n\ninterface CheckoutRouteContext {\n cartId: string;\n}\nexport interface CartProps extends HTMLAttributes<HTMLDivElement> {\n // Links\n routeProduct?: (item: CartModel['items'][0]) => string;\n routeEmptyCartCTA?: () => string;\n routeCheckout?: (context: CheckoutRouteContext) => string;\n}\n\nexport const Cart: Container<CartProps, CartModel | null> = ({\n children,\n initialData = null,\n routeProduct,\n routeEmptyCartCTA,\n routeCheckout,\n ...props\n}) => {\n const [data, setData] = useState<CartModel | null>(initialData);\n const [itemsLoading, setItemLoading] = useState<Set<string>>(new Set());\n\n const {\n loading: priceSummaryLoading,\n countries,\n regions,\n selectedCountry,\n estimatedDestinationText,\n estimatedShippingPrice,\n handleCountrySelected,\n handleEstimateShipping,\n regionsLoading,\n selectedRegion,\n selectedZip,\n } = useEstimatedShipping();\n\n const { handleEstimateTotals, estimatedTotals } = useEstimatedTotals();\n\n const handleItemsLoading = (state: boolean, uid: string) => {\n setItemLoading((prev) => {\n state ? prev.add(uid) : prev.delete(uid);\n return new Set(prev);\n });\n };\n\n const handleItemQuantityUpdate = (uid: string, quantity: number) => {\n handleItemsLoading(true, uid);\n\n updateProductsFromCart([{ uid, quantity }]).finally(() => {\n handleItemsLoading(false, uid);\n if (estimatedDestinationText) {\n handleEstimations({\n shippingCountry: selectedCountry,\n shippingState: selectedRegion,\n shippingZip: selectedZip,\n });\n }\n });\n };\n\n const handleEstimations = useCallback(\n (formValues: any) => {\n handleEstimateShipping(formValues).then((data) => {\n if (data) {\n const { carrier_code, method_code } = data;\n const incomingEstimatedShippingMethods = {\n carrier_code,\n method_code,\n };\n handleEstimateTotals(formValues, incomingEstimatedShippingMethods);\n } else {\n handleEstimateTotals(formValues);\n }\n });\n },\n [handleEstimateShipping, handleEstimateTotals]\n );\n\n const dictionary = useText({\n applyButton: 'Cart.PriceSummary.estimatedShippingForm.apply.label',\n checkout: 'Cart.PriceSummary.checkout',\n countryField: 'Cart.PriceSummary.estimatedShippingForm.country.placeholder',\n discountedPrice: 'Cart.CartItem.discountedPrice',\n download: 'Cart.CartItem.download',\n freeShipping: 'Cart.PriceSummary.freeShipping',\n heading: 'Cart.Cart.heading',\n message: 'Cart.CartItem.message',\n regularPrice: 'Cart.CartItem.regularPrice',\n recipient: 'Cart.CartItem.recipient',\n sender: 'Cart.CartItem.sender',\n stateField: 'Cart.PriceSummary.estimatedShippingForm.state.placeholder',\n taxToBeDetermined: 'Cart.PriceSummary.taxToBeDetermined',\n zipField: 'Cart.PriceSummary.estimatedShippingForm.zip.placeholder',\n file: 'Cart.CartItem.file',\n files: 'Cart.CartItem.files',\n });\n\n // Subscribe to cart data events\n useEffect(() => {\n const event = events.on(\n 'cart/data',\n (payload) => {\n setData(payload as CartModel);\n\n const shippingAddress = payload?.addresses?.shipping?.[0];\n\n if (shippingAddress) {\n const { countryCode, regionCode, zipCode } = shippingAddress;\n handleEstimations({\n shippingCountry: countryCode,\n shippingState: regionCode,\n shippingZip: zipCode,\n });\n }\n },\n { eager: true }\n );\n\n return () => {\n event?.off();\n };\n }, []);\n\n // Publish shopping cart view event only once when the component is mounted and initialData is available\n useEffect(() => {\n if (initialData && Object.keys(initialData).length > 0) {\n publishShoppingCartViewEvent(initialData, state.locale || 'en-US');\n }\n }, [initialData]);\n\n // Add StoreConfig Into State\n getStoreConfig().then((config) => {\n state.config = config;\n });\n\n const cartTaxesConfig = state.config?.shoppingCartDisplaySetting;\n\n const priceSummary =\n data?.totalQuantity ?? 0 ? (\n <PriceSummary\n data-testid=\"price-summary\"\n loading={priceSummaryLoading}\n heading=\"Order Summary\"\n total={{\n price: estimatedTotals?.estimatedGrandTotalPrice ? (\n <Price\n {...estimatedTotals?.estimatedGrandTotalPrice.includingTax}\n />\n ) : (\n <Price\n amount={data?.total.includingTax.value}\n currency={data?.total.includingTax.currency}\n />\n ),\n estimated: true,\n priceWithoutTax: cartTaxesConfig?.grandTotal ? (\n estimatedTotals?.estimatedAppliedTaxes ? (\n <Price\n {...estimatedTotals?.estimatedGrandTotalPrice.excludingTax}\n />\n ) : (\n <Price\n amount={data?.total.excludingTax.value}\n currency={data?.total.excludingTax.currency}\n />\n )\n ) : undefined,\n }}\n subTotal={{\n taxIncluded:\n cartTaxesConfig?.subtotal === 'INCLUDING_TAX' &&\n !cartTaxesConfig?.zeroTax,\n taxExcluded: cartTaxesConfig?.subtotal === 'INCLUDING_EXCLUDING_TAX',\n zeroTaxSubtotal: cartTaxesConfig?.zeroTax,\n priceExcludingTax: estimatedTotals?.estimatedSubTotal\n ?.excludingTax ? (\n <Price\n data-testid=\"subtotal\"\n {...estimatedTotals?.estimatedSubTotal?.excludingTax}\n />\n ) : (\n <Price\n data-testid=\"subtotal\"\n amount={data?.subtotal.excludingTax?.value}\n currency={data?.subtotal.excludingTax?.currency}\n />\n ),\n price:\n (!cartTaxesConfig?.zeroTax &&\n cartTaxesConfig?.subtotal === 'INCLUDING_TAX') ||\n (!cartTaxesConfig?.zeroTax &&\n cartTaxesConfig?.subtotal === 'INCLUDING_EXCLUDING_TAX') ? (\n estimatedTotals?.estimatedSubTotal?.includingTax ? (\n <Price\n data-testid=\"subtotal\"\n {...estimatedTotals?.estimatedSubTotal?.includingTax}\n />\n ) : (\n <Price\n data-testid=\"subtotal\"\n amount={data?.subtotal.includingTax?.value}\n currency={data?.subtotal.includingTax?.currency}\n />\n )\n ) : (\n <Price\n data-testid=\"subtotal\"\n amount={data?.subtotal.excludingTax?.value}\n currency={data?.subtotal.excludingTax?.currency}\n />\n ),\n }}\n shipping={\n data?.isVirtual\n ? undefined\n : {\n taxIncluded: cartTaxesConfig?.shipping === 'INCLUDING_TAX',\n taxExcluded:\n cartTaxesConfig?.shipping === 'INCLUDING_EXCLUDING_TAX',\n price:\n estimatedShippingPrice?.amount == 0 ? (\n <span data-testId=\"free-shipping\">\n {dictionary.freeShipping}\n </span>\n ) : cartTaxesConfig?.shipping === 'INCLUDING_TAX' &&\n estimatedShippingPrice ? (\n <Price\n data-testid=\"shipping\"\n {...estimatedShippingPrice.priceIncludingtax}\n />\n ) : estimatedShippingPrice ? (\n <Price {...estimatedShippingPrice} />\n ) : (\n <span>{dictionary.taxToBeDetermined}</span>\n ),\n estimated: true,\n priceExcludingTax: estimatedShippingPrice?.priceExcludingtax ? (\n <Price\n data-testid=\"shipping-excluding-tax\"\n {...estimatedShippingPrice.priceExcludingtax}\n />\n ) : (\n <span>{dictionary.taxToBeDetermined}</span>\n ),\n\n countryField: (\n <Picker\n name=\"shippingCountry\"\n placeholder={dictionary.countryField}\n value={selectedCountry}\n variant=\"primary\"\n options={countries}\n handleSelect={handleCountrySelected}\n data-testid=\"estimate-shipping-country-selector\"\n />\n ),\n stateField:\n regions.length > 0 ? (\n <Picker\n name=\"shippingState\"\n placeholder={dictionary.stateField}\n variant=\"primary\"\n options={regions}\n value={selectedRegion}\n data-testid=\"estimate-shipping-state-selector\"\n disabled={regionsLoading}\n />\n ) : (\n <Input\n aria-label={dictionary.stateField}\n name=\"shippingState\"\n placeholder={dictionary.stateField}\n variant=\"primary\"\n value={selectedRegion}\n disabled={regionsLoading}\n data-testid=\"estimate-shipping-state-input\"\n maxLength={50}\n />\n ),\n zipField: (\n <Input\n aria-label={dictionary.zipField}\n name=\"shippingZip\"\n placeholder={dictionary.zipField}\n variant=\"primary\"\n data-testid=\"estimate-shipping-zip-input\"\n value={selectedZip}\n maxLength={12}\n />\n ),\n estimateButton: (\n <Button\n variant=\"secondary\"\n data-testid=\"estimate-shipping-apply-button\"\n aria-label={dictionary.applyButton}\n >\n {dictionary.applyButton}\n </Button>\n ),\n destinationText:\n estimatedDestinationText || dictionary.taxToBeDetermined,\n onEstimate: handleEstimations,\n }\n }\n taxTotal={\n data?.isVirtual\n ? {\n price: (\n <span data-testid=\"tax-total\">\n {dictionary.taxToBeDetermined}\n </span>\n ),\n }\n : {\n price: estimatedTotals?.estimatedTaxTotal ? (\n <Price\n data-testid=\"tax-total\"\n {...estimatedTotals?.estimatedTaxTotal}\n />\n ) : data?.totalTax ? (\n <Price\n data-testid=\"tax-total\"\n amount={data?.totalTax?.value}\n currency={data?.totalTax?.currency}\n />\n ) : (\n <span data-testid=\"tax-total\">\n {dictionary.taxToBeDetermined}\n </span>\n ),\n estimated: true,\n }\n }\n taxesApplied={\n data?.isVirtual\n ? undefined\n : cartTaxesConfig?.fullSummary &&\n estimatedTotals?.estimatedAppliedTaxes\n ? estimatedTotals?.estimatedAppliedTaxes?.taxes?.map((tax: any) => {\n return {\n label: tax.label,\n price: (\n <Price\n data-testid=\"applied-taxes\"\n amount={tax.amount.value}\n currency={tax.amount.currency}\n />\n ),\n };\n })\n : cartTaxesConfig?.fullSummary\n ? data?.appliedTaxes.map((tax) => {\n return {\n label: tax.label,\n price: (\n <Price\n data-testid=\"applied-taxes\"\n amount={tax.amount.value}\n currency={tax.amount.currency}\n />\n ),\n };\n })\n : undefined\n }\n primaryAction={\n routeCheckout ? (\n <Button\n data-testid=\"checkout-button\"\n variant=\"primary\"\n href={routeCheckout({\n cartId: data!.id,\n })}\n >\n {dictionary.checkout}\n </Button>\n ) : undefined\n }\n discounts={data?.appliedDiscounts.map((discount) => {\n return {\n label: discount.label,\n price: (\n <Price\n data-testid=\"summary-discount-total\"\n amount={-discount.amount.value}\n currency={discount.amount.currency}\n sale={true}\n />\n ),\n };\n })}\n />\n ) : undefined;\n\n return (\n <CartComponent\n {...props}\n heading={<div>{dictionary.heading}</div>}\n emptyCart={<EmptyCart ctaLinkURL={routeEmptyCartCTA?.()} />}\n priceSummary={priceSummary}\n products={\n data?.totalQuantity ?? 0 ? (\n <CartList>\n {data?.items.map((item, index) => {\n const isLoading = itemsLoading.has(item.uid);\n\n const configurations = {\n ...(item.bundleOptions ?? {}),\n ...(item.selectedOptions ?? {}),\n ...item.customizableOptions,\n ...(item.recipient\n ? { [dictionary.recipient]: item.recipient }\n : {}),\n ...(item.recipientEmail && item.recipient\n ? {\n [dictionary.recipient]: `${item.recipient} (${item.recipientEmail})`,\n }\n : {}),\n ...(item.sender ? { [dictionary.sender]: item.sender } : {}),\n ...(item.senderEmail && item.sender\n ? {\n [dictionary.sender]: `${item.sender} (${item.senderEmail})`,\n }\n : {}),\n ...(item.message ? { [dictionary.message]: item.message } : {}),\n ...(item.links && item.links.count\n ? item.links.count > 1\n ? {\n [dictionary.files.replace(\n '{count}',\n item.links.count.toString()\n )]: item.links.result,\n }\n : {\n [dictionary.file.replace(\n '{count}',\n item.links.count.toString()\n )]: item.links.result,\n }\n : {}),\n };\n\n return (\n <CartItem\n ariaLabel={item.name}\n key={item.uid}\n updating={isLoading}\n data-testid=\"cart-item\"\n taxIncluded={cartTaxesConfig?.price === 'INCLUDING_TAX'}\n taxExcluded={\n cartTaxesConfig?.price === 'INCLUDING_EXCLUDING_TAX'\n }\n image={\n routeProduct ? (\n <a href={routeProduct(item)}>\n <Image\n loading={index < 4 ? 'eager' : 'lazy'}\n src={item.image.src}\n alt={item.image.alt}\n width=\"300\"\n height=\"300\"\n params={{ width: 300 }}\n />\n </a>\n ) : (\n <Image\n loading={index < 4 ? 'eager' : 'lazy'}\n src={item.image.src}\n alt={item.image.alt}\n width=\"300\"\n height=\"300\"\n params={{ width: 300 }}\n />\n )\n }\n title={\n <span>\n {routeProduct ? (\n <a href={routeProduct(item)}>{item.name}</a>\n ) : (\n <>{item.name}</>\n )}\n </span>\n }\n sku={<span>{item.sku}</span>}\n configurations={\n Object.keys(configurations).length > 0\n ? configurations\n : undefined\n }\n quantity={item.quantity}\n //unit price\n price={\n cartTaxesConfig?.price === 'INCLUDING_TAX' ? (\n <Price\n amount={\n item.discounted\n ? item.regularPrice?.value\n : item.taxedPrice?.value\n }\n currency={\n item.discounted\n ? item.regularPrice?.currency\n : item.taxedPrice?.currency\n }\n style={{ font: 'inherit' }}\n data-testid=\"including-tax-item-price\"\n />\n ) : (\n <Price\n amount={item.regularPrice?.value}\n currency={item.regularPrice?.currency}\n style={{ font: 'inherit' }}\n data-testid=\"regular-item-price\"\n />\n )\n }\n //row total\n total={\n cartTaxesConfig?.price === 'INCLUDING_EXCLUDING_TAX' ||\n cartTaxesConfig?.price === 'INCLUDING_TAX' ? (\n <>\n {item.discounted ? (\n <>\n <Price\n amount={item.total.value}\n currency={item.total.currency}\n variant={\n item.discounted ? 'strikethrough' : 'default'\n }\n data-testid=\"including-tax-row-total\"\n aria-label={dictionary.regularPrice}\n />\n <Price\n amount={item.rowTotalIncludingTax?.value}\n currency={item.rowTotalIncludingTax?.currency}\n sale={item.discounted}\n data-testid=\"discount-total\"\n aria-label={dictionary.discountedPrice}\n />\n </>\n ) : (\n <Price\n amount={item.rowTotalIncludingTax.value}\n currency={item.rowTotalIncludingTax.currency}\n data-testid=\"including-tax-row-total\"\n aria-label={dictionary.regularPrice}\n />\n )}\n </>\n ) : (\n <>\n <Price\n amount={item.total.value}\n currency={item.total.currency}\n variant={\n item.discounted ? 'strikethrough' : 'default'\n }\n data-testid=\"regular-total\"\n aria-label={dictionary.regularPrice}\n />\n\n {item.discounted && (\n <Price\n amount={item.discountedTotal?.value}\n currency={item.discountedTotal?.currency}\n sale={item.discounted}\n data-testid=\"discount-total\"\n aria-label={dictionary.discountedPrice}\n />\n )}\n </>\n )\n }\n totalExcludingTax={\n cartTaxesConfig?.price === 'INCLUDING_EXCLUDING_TAX' ? (\n <Price\n amount={item.rowTotal.value}\n currency={item.rowTotal.currency}\n data-testid=\"excluding-tax-total\"\n aria-label={dictionary.regularPrice}\n />\n ) : undefined\n }\n onQuantity={(value) => {\n handleItemQuantityUpdate(item.uid, value);\n }}\n onRemove={() => {\n handleItemQuantityUpdate(item.uid, 0);\n }}\n />\n );\n })}\n </CartList>\n ) : undefined\n }\n />\n );\n};\n\nCart.getInitialData = async function () {\n return getPersistedData();\n};\n"],"names":["Cart","className","children","emptyCart","heading","products","priceSummary","props","_jsx","classes","_jsxs","VComponent","node","Divider","variant","useEstimatedTotals","estimatedTotals","setEstimatedTotals","useState","handleEstimateTotals","formValues","shippingMethods","shippingCountry","shippingState","shippingZip","inputData","countryCode","postcode","region","shipping_method","carrier_code","method_code","then","data","estimatedTaxTotal","amount","totalTax","value","currency","estimatedSubTotal","excludingTax","subtotal","includingTax","includingDiscountOnly","estimatedGrandTotalPrice","total","estimatedAppliedTaxes","taxes","appliedTaxes","map","tax","label","estimatedItems","items","item","uid","price","taxedPrice","rowTotal","rowTotalIncludingTax","regularPrice","useEstimatedShipping","countries","setCountries","selectedCountry","setSelectedCountry","selectedRegion","setSelectedRegion","selectedZip","setSelectedZip","regions","setRegions","regionsLoading","setRegionsLoading","estimatedShippingPrice","setEstimatedShippingPrice","estimatedShippingMethod","setEstimatedShippingMethod","estimatedDestinationText","setEstimatedDestinationText","priceSummaryLoading","setPriceSummaryLoading","handleEstimateShipping","addressData","getEstimateShipping","priceIncludingtax","price_incl_tax","priceExcludingtax","price_excl_tax","finally","handleCountrySelected","event","preventDefault","target","useEffect","getCountries","defaultCountry","transformedCountries","country","isDefaultCountry","id","text","getRegions","transformedRegions","name","code","loading","initialData","routeProduct","routeEmptyCartCTA","routeCheckout","setData","itemsLoading","setItemLoading","Set","handleItemsLoading","state","prev","add","delete","handleItemQuantityUpdate","quantity","updateProductsFromCart","handleEstimations","useCallback","dictionary","useText","applyButton","checkout","countryField","discountedPrice","download","freeShipping","message","recipient","sender","stateField","taxToBeDetermined","zipField","file","files","events","on","payload","shippingAddress","addresses","shipping","regionCode","zipCode","eager","off","Object","keys","length","locale","getStoreConfig","config","cartTaxesConfig","shoppingCartDisplaySetting","totalQuantity","PriceSummary","Price","estimated","priceWithoutTax","grandTotal","undefined","subTotal","taxIncluded","zeroTax","taxExcluded","zeroTaxSubtotal","priceExcludingTax","isVirtual","Picker","placeholder","options","handleSelect","disabled","Input","maxLength","estimateButton","Button","destinationText","onEstimate","taxTotal","taxesApplied","fullSummary","primaryAction","href","cartId","discounts","appliedDiscounts","discount","sale","CartComponent","EmptyCart","ctaLinkURL","CartList","index","isLoading","has","configurations","bundleOptions","selectedOptions","customizableOptions","recipientEmail","senderEmail","links","count","replace","toString","result","CartItem","ariaLabel","updating","image","Image","src","alt","width","height","params","title","_Fragment","sku","discounted","style","font","discountedTotal","totalExcludingTax","onQuantity","onRemove","getInitialData","getPersistedData"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Cart.js","sources":["../../src/components/Cart/Cart.tsx","../../src/hooks/useEstimatedTotals.tsx","../../src/hooks/useEstimatedShipping.ts","../../src/containers/Cart/Cart.tsx"],"sourcesContent":["import { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { VComponent, classes } from '@adobe/elsie/lib';\nimport { Divider } from '@adobe/elsie/components';\n\nimport '@/cart/components/Cart/Cart.css';\n\nexport interface CartProps extends HTMLAttributes<HTMLDivElement> {\n emptyCart: VNode;\n heading?: VNode;\n products?: VNode;\n priceSummary?: VNode<HTMLAttributes<HTMLElement>>;\n}\n\nexport const Cart: FunctionComponent<CartProps> = ({\n className,\n children,\n emptyCart,\n heading,\n products,\n priceSummary,\n ...props\n}) => {\n return (\n <div {...props} className={classes(['cart-cart', className])}>\n <div className={classes(['cart-cart__wrapper'])}>\n {/* Heading */}\n {heading && (\n <div\n className={classes([\n 'cart-cart__heading',\n ['cart-cart__heading--full-width', !products || !priceSummary],\n ])}\n >\n <VComponent node={heading} className=\"cart-cart__heading-text\" />\n\n <Divider\n variant=\"primary\"\n className={classes(['cart-cart__heading-divider'])}\n />\n </div>\n )}\n\n {/* Content */}\n <div\n className={classes([\n 'cart-cart__content',\n ['cart-cart__content--empty', !products],\n ['cart-cart__content--full-width', !priceSummary],\n ])}\n >\n {products || (\n <VComponent node={emptyCart} className=\"cart-cart__empty-cart\" />\n )}\n </div>\n {products && priceSummary && (\n <VComponent\n node={priceSummary}\n className={classes(['cart-cart__price-summary'])}\n />\n )}\n </div>\n </div>\n );\n};\n","import { useState } from 'preact/compat';\nimport { PriceProps } from '@adobe/elsie/components';\n\nimport { getEstimatedTotals } from '@/cart/api';\n\nexport const useEstimatedTotals = () => {\n const [estimatedTotals, setEstimatedTotals] = useState<any>();\n\n const handleEstimateTotals = (\n formValues: {\n shippingCountry: string;\n shippingState?: string;\n shippingZip?: string;\n },\n shippingMethods?: {\n carrier_code: string;\n method_code: string;\n }\n ) => {\n const {\n shippingCountry,\n shippingState = '',\n shippingZip = '',\n } = formValues;\n\n const inputData = {\n countryCode: shippingCountry,\n postcode: shippingZip,\n region: {\n region: shippingState,\n },\n shipping_method: {\n carrier_code: shippingMethods?.carrier_code || '',\n method_code: shippingMethods?.method_code || '',\n },\n };\n\n getEstimatedTotals(inputData).then((data) => {\n if (data) {\n setEstimatedTotals({\n estimatedTaxTotal: {\n amount: data.totalTax?.value,\n currency: data.totalTax?.currency,\n },\n estimatedSubTotal: {\n excludingTax: {\n amount: data.subtotal?.excludingTax?.value,\n currency: data.subtotal?.excludingTax?.currency,\n },\n includingTax: {\n amount: data.subtotal?.includingTax?.value,\n currency: data.subtotal?.includingTax?.currency,\n },\n includingDiscountOnly: {\n amount: data.subtotal?.includingDiscountOnly?.value,\n currency: data.subtotal?.includingDiscountOnly?.currency,\n },\n },\n estimatedGrandTotalPrice: {\n includingTax: {\n amount: data.total?.includingTax.value,\n currency: data.total?.includingTax.currency,\n },\n excludingTax: {\n amount: data.total?.excludingTax.value,\n currency: data.total?.excludingTax.currency,\n },\n },\n estimatedAppliedTaxes: {\n taxes: data.appliedTaxes?.map((tax) => {\n return {\n label: tax.label,\n amount: {\n value: tax.amount?.value,\n currency: tax.amount?.currency,\n },\n };\n }),\n },\n estimatedItems: {\n items: data.items?.map((item) => {\n return {\n uid: item.uid,\n price: {\n amount: item.price?.value,\n currency: item.price?.currency,\n },\n taxedPrice: {\n amount: item.taxedPrice?.value,\n currency: item.taxedPrice?.currency,\n },\n rowTotal: {\n amount: item.rowTotal?.value,\n currency: item.rowTotal?.currency,\n },\n rowTotalIncludingTax: {\n amount: item.rowTotalIncludingTax?.value,\n currency: item.rowTotalIncludingTax?.currency,\n },\n regularPrice: {\n amount: item.regularPrice?.value,\n currency: item.regularPrice?.currency,\n },\n };\n }),\n },\n } as PriceProps);\n }\n });\n };\n\n return {\n handleEstimateTotals,\n estimatedTotals,\n };\n};\n","import { useEffect, useState } from 'preact/compat';\n\nimport {\n EstimateAddressInput,\n getCountries,\n getEstimateShipping,\n getRegions,\n} from '@/cart/api';\nimport { PriceProps } from '@adobe/elsie/components';\n\nexport const useEstimatedShipping = () => {\n /* State data related to estimating costs in the Price Summary component */\n const [countries, setCountries] = useState<{ text: string; value: string }[]>(\n []\n );\n const [selectedCountry, setSelectedCountry] = useState<string>('US');\n const [selectedRegion, setSelectedRegion] = useState<string>('');\n const [selectedZip, setSelectedZip] = useState<string>('');\n const [regions, setRegions] = useState<{ text: string; value: string }[]>([]);\n const [regionsLoading, setRegionsLoading] = useState<boolean>(false);\n const [estimatedShippingPrice, setEstimatedShippingPrice] = useState<\n PriceProps | null | any\n >();\n const [estimatedShippingMethod, setEstimatedShippingMethod] = useState<any>();\n const [estimatedDestinationText, setEstimatedDestinationText] =\n useState<string>('');\n const [priceSummaryLoading, setPriceSummaryLoading] =\n useState<boolean>(false);\n\n const handleEstimateShipping = async (formValues: {\n shippingCountry: string;\n shippingState?: string;\n shippingZip?: string;\n }) => {\n const {\n shippingCountry,\n shippingState = '',\n shippingZip = '',\n } = formValues;\n\n const addressData: EstimateAddressInput = {\n countryCode: shippingCountry,\n postcode: shippingZip,\n region: {\n region: shippingState,\n },\n };\n\n setPriceSummaryLoading(true);\n\n return getEstimateShipping(addressData)\n .then((data) => {\n if (data) {\n setEstimatedShippingPrice({\n amount: data.amount.value,\n currency: data.amount.currency,\n priceIncludingtax: {\n amount: data.price_incl_tax.value,\n currency: data.price_incl_tax.currency,\n },\n priceExcludingtax: {\n amount: data.price_excl_tax.value,\n currency: data.price_excl_tax.currency,\n },\n });\n setEstimatedShippingMethod({\n carrier_code: data.carrier_code,\n method_code: data.method_code,\n });\n\n setSelectedCountry(shippingCountry);\n setSelectedRegion(shippingState);\n setSelectedZip(shippingZip);\n\n setEstimatedDestinationText(\n shippingState || shippingZip || shippingCountry\n );\n }\n return data;\n })\n\n .finally(() => {\n setPriceSummaryLoading(false);\n });\n };\n\n const handleCountrySelected = (event: Event) => {\n event.preventDefault();\n\n setSelectedRegion('');\n setSelectedZip('');\n\n const value = (event.target as HTMLSelectElement).value;\n setSelectedCountry(value);\n };\n\n // Get list of countries on initial load\n useEffect(() => {\n getCountries().then((countries) => {\n let defaultCountry = 'US';\n const transformedCountries = countries.map((country) => {\n if (country.isDefaultCountry) {\n defaultCountry = country.id;\n }\n return {\n text: country.label,\n value: country.id,\n };\n });\n setCountries(transformedCountries);\n setSelectedCountry(defaultCountry);\n });\n }, []);\n\n // Update regions when country is updated\n useEffect(() => {\n setRegionsLoading(true);\n getRegions(selectedCountry)\n .then((regions) => {\n const transformedRegions = regions.map((region) => {\n return {\n text: region.name,\n value: region.code,\n };\n });\n setRegions(transformedRegions);\n })\n .finally(() => {\n setRegionsLoading(false);\n });\n }, [selectedCountry, setRegionsLoading]);\n\n return {\n loading: priceSummaryLoading,\n regionsLoading,\n estimatedDestinationText,\n countries,\n selectedCountry,\n selectedRegion,\n selectedZip,\n regions,\n estimatedShippingPrice,\n estimatedShippingMethod,\n handleEstimateShipping,\n handleCountrySelected,\n };\n};\n","import {\n HTMLAttributes,\n useCallback,\n useEffect,\n useState,\n} from 'preact/compat';\nimport { Container } from '@adobe/elsie/lib';\nimport { events } from '@adobe/event-bus';\nimport { CartModel } from '@/cart/data/models';\nimport {\n Button,\n CartItem,\n CartList,\n Input,\n Image,\n Picker,\n Price,\n PriceSummary,\n} from '@adobe/elsie/components';\nimport { Cart as CartComponent, EmptyCart } from '@/cart/components';\nimport { updateProductsFromCart, getStoreConfig } from '@/cart/api';\nimport { useText } from '@adobe/elsie/i18n';\nimport { getPersistedData } from '@/cart/lib/persisted-data';\n\nimport { publishShoppingCartViewEvent } from '@/cart/lib/acdl';\nimport { state } from '@/cart/lib/state';\nimport { useEstimatedShipping, useEstimatedTotals } from '@/cart/hooks';\n\ninterface CheckoutRouteContext {\n cartId: string;\n}\nexport interface CartProps extends HTMLAttributes<HTMLDivElement> {\n // Links\n routeProduct?: (item: CartModel['items'][0]) => string;\n routeEmptyCartCTA?: () => string;\n routeCheckout?: (context: CheckoutRouteContext) => string;\n}\n\nexport const Cart: Container<CartProps, CartModel | null> = ({\n children,\n initialData = null,\n routeProduct,\n routeEmptyCartCTA,\n routeCheckout,\n ...props\n}) => {\n const [data, setData] = useState<CartModel | null>(initialData);\n const [itemsLoading, setItemLoading] = useState<Set<string>>(new Set());\n\n const {\n loading: priceSummaryLoading,\n countries,\n regions,\n selectedCountry,\n estimatedDestinationText,\n estimatedShippingPrice,\n handleCountrySelected,\n handleEstimateShipping,\n regionsLoading,\n selectedRegion,\n selectedZip,\n } = useEstimatedShipping();\n\n const { handleEstimateTotals, estimatedTotals } = useEstimatedTotals();\n\n const handleItemsLoading = (state: boolean, uid: string) => {\n setItemLoading((prev) => {\n state ? prev.add(uid) : prev.delete(uid);\n return new Set(prev);\n });\n };\n\n const handleItemQuantityUpdate = (uid: string, quantity: number) => {\n handleItemsLoading(true, uid);\n\n updateProductsFromCart([{ uid, quantity }]).finally(() => {\n handleItemsLoading(false, uid);\n if (estimatedDestinationText) {\n handleEstimations({\n shippingCountry: selectedCountry,\n shippingState: selectedRegion,\n shippingZip: selectedZip,\n });\n }\n });\n };\n\n const handleEstimations = useCallback(\n (formValues: any) => {\n handleEstimateShipping(formValues).then((data) => {\n if (data) {\n const { carrier_code, method_code } = data;\n const incomingEstimatedShippingMethods = {\n carrier_code,\n method_code,\n };\n handleEstimateTotals(formValues, incomingEstimatedShippingMethods);\n } else {\n handleEstimateTotals(formValues);\n }\n });\n },\n [handleEstimateShipping, handleEstimateTotals]\n );\n\n const dictionary = useText({\n applyButton: 'Cart.PriceSummary.estimatedShippingForm.apply.label',\n checkout: 'Cart.PriceSummary.checkout',\n countryField: 'Cart.PriceSummary.estimatedShippingForm.country.placeholder',\n discountedPrice: 'Cart.CartItem.discountedPrice',\n download: 'Cart.CartItem.download',\n freeShipping: 'Cart.PriceSummary.freeShipping',\n heading: 'Cart.Cart.heading',\n message: 'Cart.CartItem.message',\n regularPrice: 'Cart.CartItem.regularPrice',\n recipient: 'Cart.CartItem.recipient',\n sender: 'Cart.CartItem.sender',\n stateField: 'Cart.PriceSummary.estimatedShippingForm.state.placeholder',\n taxToBeDetermined: 'Cart.PriceSummary.taxToBeDetermined',\n zipField: 'Cart.PriceSummary.estimatedShippingForm.zip.placeholder',\n file: 'Cart.CartItem.file',\n files: 'Cart.CartItem.files',\n });\n\n // Subscribe to cart data events\n useEffect(() => {\n const event = events.on(\n 'cart/data',\n (payload) => {\n setData(payload as CartModel);\n\n const shippingAddress = payload?.addresses?.shipping?.[0];\n\n if (shippingAddress) {\n const { countryCode, regionCode, zipCode } = shippingAddress;\n handleEstimations({\n shippingCountry: countryCode,\n shippingState: regionCode,\n shippingZip: zipCode,\n });\n }\n },\n { eager: true }\n );\n\n return () => {\n event?.off();\n };\n }, []);\n\n // Publish shopping cart view event only once when the component is mounted and initialData is available\n useEffect(() => {\n if (initialData && Object.keys(initialData).length > 0) {\n publishShoppingCartViewEvent(initialData, state.locale || 'en-US');\n }\n }, [initialData]);\n\n // Add StoreConfig Into State\n getStoreConfig().then((config) => {\n state.config = config;\n });\n\n const cartTaxesConfig = state.config?.shoppingCartDisplaySetting;\n\n const priceSummary =\n data?.totalQuantity ?? 0 ? (\n <PriceSummary\n data-testid=\"price-summary\"\n loading={priceSummaryLoading}\n heading=\"Order Summary\"\n total={{\n price: estimatedTotals?.estimatedGrandTotalPrice ? (\n <Price\n {...estimatedTotals?.estimatedGrandTotalPrice.includingTax}\n />\n ) : (\n <Price\n amount={data?.total.includingTax.value}\n currency={data?.total.includingTax.currency}\n />\n ),\n estimated: true,\n priceWithoutTax: cartTaxesConfig?.grandTotal ? (\n estimatedTotals?.estimatedAppliedTaxes ? (\n <Price\n {...estimatedTotals?.estimatedGrandTotalPrice.excludingTax}\n />\n ) : (\n <Price\n amount={data?.total.excludingTax.value}\n currency={data?.total.excludingTax.currency}\n />\n )\n ) : undefined,\n }}\n subTotal={{\n taxIncluded:\n cartTaxesConfig?.subtotal === 'INCLUDING_TAX' &&\n !cartTaxesConfig?.zeroTax,\n taxExcluded: cartTaxesConfig?.subtotal === 'INCLUDING_EXCLUDING_TAX',\n zeroTaxSubtotal: cartTaxesConfig?.zeroTax,\n priceExcludingTax: estimatedTotals?.estimatedSubTotal\n ?.excludingTax ? (\n <Price\n data-testid=\"subtotal\"\n {...estimatedTotals?.estimatedSubTotal?.excludingTax}\n />\n ) : (\n <Price\n data-testid=\"subtotal\"\n amount={data?.subtotal.excludingTax?.value}\n currency={data?.subtotal.excludingTax?.currency}\n />\n ),\n price:\n (!cartTaxesConfig?.zeroTax &&\n cartTaxesConfig?.subtotal === 'INCLUDING_TAX') ||\n (!cartTaxesConfig?.zeroTax &&\n cartTaxesConfig?.subtotal === 'INCLUDING_EXCLUDING_TAX') ? (\n estimatedTotals?.estimatedSubTotal?.includingTax ? (\n <Price\n data-testid=\"subtotal\"\n {...estimatedTotals?.estimatedSubTotal?.includingTax}\n />\n ) : (\n <Price\n data-testid=\"subtotal\"\n amount={data?.subtotal.includingTax?.value}\n currency={data?.subtotal.includingTax?.currency}\n />\n )\n ) : (\n <Price\n data-testid=\"subtotal\"\n amount={data?.subtotal.excludingTax?.value}\n currency={data?.subtotal.excludingTax?.currency}\n />\n ),\n }}\n shipping={\n data?.isVirtual\n ? undefined\n : {\n taxIncluded: cartTaxesConfig?.shipping === 'INCLUDING_TAX',\n taxExcluded:\n cartTaxesConfig?.shipping === 'INCLUDING_EXCLUDING_TAX',\n price:\n estimatedShippingPrice?.amount == 0 ? (\n <span data-testId=\"free-shipping\">\n {dictionary.freeShipping}\n </span>\n ) : cartTaxesConfig?.shipping === 'INCLUDING_TAX' &&\n estimatedShippingPrice ? (\n <Price\n data-testid=\"shipping\"\n {...estimatedShippingPrice.priceIncludingtax}\n />\n ) : estimatedShippingPrice ? (\n <Price {...estimatedShippingPrice} />\n ) : (\n <span>{dictionary.taxToBeDetermined}</span>\n ),\n estimated: true,\n priceExcludingTax: estimatedShippingPrice?.priceExcludingtax ? (\n <Price\n data-testid=\"shipping-excluding-tax\"\n {...estimatedShippingPrice.priceExcludingtax}\n />\n ) : (\n <span>{dictionary.taxToBeDetermined}</span>\n ),\n\n countryField: (\n <Picker\n name=\"shippingCountry\"\n placeholder={dictionary.countryField}\n value={selectedCountry}\n variant=\"primary\"\n options={countries}\n handleSelect={handleCountrySelected}\n data-testid=\"estimate-shipping-country-selector\"\n />\n ),\n stateField:\n regions.length > 0 ? (\n <Picker\n name=\"shippingState\"\n placeholder={dictionary.stateField}\n variant=\"primary\"\n options={regions}\n value={selectedRegion}\n data-testid=\"estimate-shipping-state-selector\"\n disabled={regionsLoading}\n />\n ) : (\n <Input\n aria-label={dictionary.stateField}\n name=\"shippingState\"\n placeholder={dictionary.stateField}\n variant=\"primary\"\n value={selectedRegion}\n disabled={regionsLoading}\n data-testid=\"estimate-shipping-state-input\"\n maxLength={50}\n />\n ),\n zipField: (\n <Input\n aria-label={dictionary.zipField}\n name=\"shippingZip\"\n placeholder={dictionary.zipField}\n variant=\"primary\"\n data-testid=\"estimate-shipping-zip-input\"\n value={selectedZip}\n maxLength={12}\n />\n ),\n estimateButton: (\n <Button\n variant=\"secondary\"\n data-testid=\"estimate-shipping-apply-button\"\n aria-label={dictionary.applyButton}\n >\n {dictionary.applyButton}\n </Button>\n ),\n destinationText:\n estimatedDestinationText || dictionary.taxToBeDetermined,\n onEstimate: handleEstimations,\n }\n }\n taxTotal={\n data?.isVirtual\n ? {\n price: (\n <span data-testid=\"tax-total\">\n {dictionary.taxToBeDetermined}\n </span>\n ),\n }\n : {\n price: estimatedTotals?.estimatedTaxTotal ? (\n <Price\n data-testid=\"tax-total\"\n {...estimatedTotals?.estimatedTaxTotal}\n />\n ) : data?.totalTax ? (\n <Price\n data-testid=\"tax-total\"\n amount={data?.totalTax?.value}\n currency={data?.totalTax?.currency}\n />\n ) : (\n <span data-testid=\"tax-total\">\n {dictionary.taxToBeDetermined}\n </span>\n ),\n estimated: true,\n }\n }\n taxesApplied={\n data?.isVirtual\n ? undefined\n : cartTaxesConfig?.fullSummary &&\n estimatedTotals?.estimatedAppliedTaxes\n ? estimatedTotals?.estimatedAppliedTaxes?.taxes?.map((tax: any) => {\n return {\n label: tax.label,\n price: (\n <Price\n data-testid=\"applied-taxes\"\n amount={tax.amount.value}\n currency={tax.amount.currency}\n />\n ),\n };\n })\n : cartTaxesConfig?.fullSummary\n ? data?.appliedTaxes.map((tax) => {\n return {\n label: tax.label,\n price: (\n <Price\n data-testid=\"applied-taxes\"\n amount={tax.amount.value}\n currency={tax.amount.currency}\n />\n ),\n };\n })\n : undefined\n }\n primaryAction={\n routeCheckout ? (\n <Button\n data-testid=\"checkout-button\"\n variant=\"primary\"\n href={routeCheckout({\n cartId: data!.id,\n })}\n >\n {dictionary.checkout}\n </Button>\n ) : undefined\n }\n discounts={data?.appliedDiscounts.map((discount) => {\n return {\n label: discount.label,\n price: (\n <Price\n data-testid=\"summary-discount-total\"\n amount={-discount.amount.value}\n currency={discount.amount.currency}\n sale={true}\n />\n ),\n };\n })}\n />\n ) : undefined;\n\n return (\n <CartComponent\n {...props}\n heading={<div>{dictionary.heading}</div>}\n emptyCart={<EmptyCart ctaLinkURL={routeEmptyCartCTA?.()} />}\n priceSummary={priceSummary}\n products={\n data?.totalQuantity ?? 0 ? (\n <CartList>\n {data?.items.map((item, index) => {\n const isLoading = itemsLoading.has(item.uid);\n\n const configurations = {\n ...(item.bundleOptions ?? {}),\n ...(item.selectedOptions ?? {}),\n ...item.customizableOptions,\n ...(item.recipient\n ? { [dictionary.recipient]: item.recipient }\n : {}),\n ...(item.recipientEmail && item.recipient\n ? {\n [dictionary.recipient]: `${item.recipient} (${item.recipientEmail})`,\n }\n : {}),\n ...(item.sender ? { [dictionary.sender]: item.sender } : {}),\n ...(item.senderEmail && item.sender\n ? {\n [dictionary.sender]: `${item.sender} (${item.senderEmail})`,\n }\n : {}),\n ...(item.message ? { [dictionary.message]: item.message } : {}),\n ...(item.links && item.links.count\n ? item.links.count > 1\n ? {\n [dictionary.files.replace(\n '{count}',\n item.links.count.toString()\n )]: item.links.result,\n }\n : {\n [dictionary.file.replace(\n '{count}',\n item.links.count.toString()\n )]: item.links.result,\n }\n : {}),\n };\n\n return (\n <CartItem\n ariaLabel={item.name}\n key={item.uid}\n updating={isLoading}\n data-testid=\"cart-item\"\n taxIncluded={cartTaxesConfig?.price === 'INCLUDING_TAX'}\n taxExcluded={\n cartTaxesConfig?.price === 'INCLUDING_EXCLUDING_TAX'\n }\n image={\n routeProduct ? (\n <a href={routeProduct(item)}>\n <Image\n loading={index < 4 ? 'eager' : 'lazy'}\n src={item.image.src}\n alt={item.image.alt}\n width=\"300\"\n height=\"300\"\n params={{ width: 300 }}\n />\n </a>\n ) : (\n <Image\n loading={index < 4 ? 'eager' : 'lazy'}\n src={item.image.src}\n alt={item.image.alt}\n width=\"300\"\n height=\"300\"\n params={{ width: 300 }}\n />\n )\n }\n title={\n <span>\n {routeProduct ? (\n <a href={routeProduct(item)}>{item.name}</a>\n ) : (\n <>{item.name}</>\n )}\n </span>\n }\n sku={<span>{item.sku}</span>}\n configurations={\n Object.keys(configurations).length > 0\n ? configurations\n : undefined\n }\n quantity={item.quantity}\n //unit price\n price={\n cartTaxesConfig?.price === 'INCLUDING_TAX' ? (\n <Price\n amount={\n item.discounted\n ? item.regularPrice?.value\n : item.taxedPrice?.value\n }\n currency={\n item.discounted\n ? item.regularPrice?.currency\n : item.taxedPrice?.currency\n }\n style={{ font: 'inherit' }}\n data-testid=\"including-tax-item-price\"\n />\n ) : (\n <Price\n amount={item.regularPrice?.value}\n currency={item.regularPrice?.currency}\n style={{ font: 'inherit' }}\n data-testid=\"regular-item-price\"\n />\n )\n }\n //row total\n total={\n cartTaxesConfig?.price === 'INCLUDING_EXCLUDING_TAX' ||\n cartTaxesConfig?.price === 'INCLUDING_TAX' ? (\n <>\n {item.discounted ? (\n <>\n <Price\n amount={item.total.value}\n currency={item.total.currency}\n variant={\n item.discounted ? 'strikethrough' : 'default'\n }\n data-testid=\"including-tax-row-total\"\n aria-label={dictionary.regularPrice}\n />\n <Price\n amount={item.rowTotalIncludingTax?.value}\n currency={item.rowTotalIncludingTax?.currency}\n sale={item.discounted}\n data-testid=\"discount-total\"\n aria-label={dictionary.discountedPrice}\n />\n </>\n ) : (\n <Price\n amount={item.rowTotalIncludingTax.value}\n currency={item.rowTotalIncludingTax.currency}\n data-testid=\"including-tax-row-total\"\n aria-label={dictionary.regularPrice}\n />\n )}\n </>\n ) : (\n <>\n <Price\n amount={item.total.value}\n currency={item.total.currency}\n variant={\n item.discounted ? 'strikethrough' : 'default'\n }\n data-testid=\"regular-total\"\n aria-label={dictionary.regularPrice}\n />\n\n {item.discounted && (\n <Price\n amount={item.discountedTotal?.value}\n currency={item.discountedTotal?.currency}\n sale={item.discounted}\n data-testid=\"discount-total\"\n aria-label={dictionary.discountedPrice}\n />\n )}\n </>\n )\n }\n totalExcludingTax={\n cartTaxesConfig?.price === 'INCLUDING_EXCLUDING_TAX' ? (\n <Price\n amount={item.rowTotal.value}\n currency={item.rowTotal.currency}\n data-testid=\"excluding-tax-total\"\n aria-label={dictionary.regularPrice}\n />\n ) : undefined\n }\n onQuantity={(value) => {\n handleItemQuantityUpdate(item.uid, value);\n }}\n onRemove={() => {\n handleItemQuantityUpdate(item.uid, 0);\n }}\n />\n );\n })}\n </CartList>\n ) : undefined\n }\n />\n );\n};\n\nCart.getInitialData = async function () {\n return getPersistedData();\n};\n"],"names":["Cart","className","children","emptyCart","heading","products","priceSummary","props","_jsx","classes","_jsxs","VComponent","node","Divider","variant","useEstimatedTotals","estimatedTotals","setEstimatedTotals","useState","handleEstimateTotals","formValues","shippingMethods","shippingCountry","shippingState","shippingZip","inputData","countryCode","postcode","region","shipping_method","carrier_code","method_code","then","data","estimatedTaxTotal","amount","totalTax","value","currency","estimatedSubTotal","excludingTax","subtotal","includingTax","includingDiscountOnly","estimatedGrandTotalPrice","total","estimatedAppliedTaxes","taxes","appliedTaxes","map","tax","label","estimatedItems","items","item","uid","price","taxedPrice","rowTotal","rowTotalIncludingTax","regularPrice","useEstimatedShipping","countries","setCountries","selectedCountry","setSelectedCountry","selectedRegion","setSelectedRegion","selectedZip","setSelectedZip","regions","setRegions","regionsLoading","setRegionsLoading","estimatedShippingPrice","setEstimatedShippingPrice","estimatedShippingMethod","setEstimatedShippingMethod","estimatedDestinationText","setEstimatedDestinationText","priceSummaryLoading","setPriceSummaryLoading","handleEstimateShipping","addressData","getEstimateShipping","priceIncludingtax","price_incl_tax","priceExcludingtax","price_excl_tax","finally","handleCountrySelected","event","preventDefault","target","useEffect","getCountries","defaultCountry","transformedCountries","country","isDefaultCountry","id","text","getRegions","transformedRegions","name","code","loading","initialData","routeProduct","routeEmptyCartCTA","routeCheckout","setData","itemsLoading","setItemLoading","Set","handleItemsLoading","state","prev","add","delete","handleItemQuantityUpdate","quantity","updateProductsFromCart","handleEstimations","useCallback","dictionary","useText","applyButton","checkout","countryField","discountedPrice","download","freeShipping","message","recipient","sender","stateField","taxToBeDetermined","zipField","file","files","events","on","payload","shippingAddress","addresses","shipping","regionCode","zipCode","eager","off","Object","keys","length","locale","getStoreConfig","config","cartTaxesConfig","shoppingCartDisplaySetting","totalQuantity","PriceSummary","Price","estimated","priceWithoutTax","grandTotal","undefined","subTotal","taxIncluded","zeroTax","taxExcluded","zeroTaxSubtotal","priceExcludingTax","isVirtual","Picker","placeholder","options","handleSelect","disabled","Input","maxLength","estimateButton","Button","destinationText","onEstimate","taxTotal","taxesApplied","fullSummary","primaryAction","href","cartId","discounts","appliedDiscounts","discount","sale","CartComponent","EmptyCart","ctaLinkURL","CartList","index","isLoading","has","configurations","bundleOptions","selectedOptions","customizableOptions","recipientEmail","senderEmail","links","count","replace","toString","result","CartItem","ariaLabel","updating","image","Image","src","alt","width","height","params","title","_Fragment","sku","discounted","style","font","discountedTotal","totalExcludingTax","onQuantity","onRemove","getInitialData","getPersistedData"],"mappings":"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"}
|
package/containers/MiniCart.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useState as T,useEffect as S}from"@dropins/tools/preact-compat.js";import{s as M,
|
|
1
|
+
import{useState as T,useEffect as S}from"@dropins/tools/preact-compat.js";import{s as M,n as q}from"../chunks/getStoreConfig.js";import{events as F}from"@dropins/tools/event-bus.js";import{E as R}from"../chunks/MiniCart.js";import{classes as A,VComponent as p}from"@dropins/tools/lib.js";import{Divider as V,Price as i,Button as O,CartList as B,CartItem as H,Image as $}from"@dropins/tools/components.js";import{jsxs as l,jsx as e,Fragment as _}from"@dropins/tools/preact-jsx-runtime.js";import{useText as j}from"@dropins/tools/i18n.js";import{b as J,u as K}from"../chunks/updateProductsFromCart.js";import"@dropins/tools/fetch-graphql.js";const W=({className:N,children:s,emptyCart:u,heading:g,products:o,subtotal:d,subtotalExcludingTaxes:y,ctas:t,...m})=>{const I=j({subtotal:"Cart.MiniCart.subtotal",subtotalExcludingTaxes:"Cart.MiniCart.subtotalExcludingTaxes"});return l("div",{...m,className:A(["cart-mini-cart",N]),children:[o&&g&&l("div",{className:"cart-mini-cart__heading",children:[e(p,{node:g,className:"cart-mini-cart__heading-text"}),e(V,{variant:"primary",className:"cart-mini-cart__heading-divider"})]}),o?l(_,{children:[e("div",{className:"cart-mini-cart__products",children:o}),l("div",{className:"cart-mini-cart__footer",children:[d&&l("div",{className:"cart-mini-cart__footer__estimated-total",children:[I.subtotal,e(p,{node:d})]}),y&&l("div",{className:"cart-mini-cart__footer__estimated-total-excluding-taxes",children:[I.subtotalExcludingTaxes,e(p,{node:y,className:A(["dropin-price-summary__price","dropin-price-summary__price--muted"])})]}),t&&e(p,{node:t,className:"cart-mini-cart__footer__ctas"})]})]}):e(p,{node:u,className:"cart-mini-cart__empty-cart"})]})},Y=({children:N,initialData:s=null,routeProduct:u,routeCart:g,routeCheckout:o,routeEmptyCartCTA:d,...y})=>{var v,x;const[t,m]=T(s),[I,z]=T(new Set),a=(v=M.config)==null?void 0:v.shoppingCartDisplaySetting,b=(r,c)=>{z(h=>(r?h.add(c):h.delete(c),new Set(h)))};S(()=>{const r=F.on("cart/data",c=>{m(c)},{eager:!0});return()=>{r==null||r.off()}},[]);const n=j({cartLink:"Cart.MiniCart.cartLink",checkoutLink:"Cart.MiniCart.checkoutLink",discountedPrice:"Cart.CartItem.discountedPrice",heading:"Cart.MiniCart.heading",message:"Cart.CartItem.message",recipient:"Cart.CartItem.recipient",regularPrice:"Cart.CartItem.regularPrice",sender:"Cart.CartItem.sender",file:"Cart.CartItem.file",files:"Cart.CartItem.files"}),Q=(r,c)=>{b(!0,r),K([{uid:r,quantity:c}]).finally(()=>{b(!1,r)})};return S(()=>{s&&Object.keys(s).length>0&&J(s,M.locale||"en-US")},[s]),e(W,{...y,heading:e("div",{children:n.heading.replace("{count}",((t==null?void 0:t.totalQuantity)??0).toString())}),emptyCart:e(R,{ctaLinkURL:d==null?void 0:d()}),subtotal:(t==null?void 0:t.subtotal)&&((a==null?void 0:a.subtotal)==="INCLUDING_TAX"||(a==null?void 0:a.subtotal)==="INCLUDING_EXCLUDING_TAX"?e(i,{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"}}):e(i,{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"}})),subtotalExcludingTaxes:(t==null?void 0:t.subtotal)&&((a==null?void 0:a.subtotal)==="INCLUDING_EXCLUDING_TAX"?e(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),ctas:l("div",{children:[o&&e(O,{variant:"primary",href:o(),children:n.checkoutLink}),g&&e(O,{variant:"tertiary",href:g(),children:n.cartLink})]}),products:(t==null?void 0:t.totalQuantity)??0?e(B,{children:(x=t==null?void 0:t.miniCartMaxItems)==null?void 0:x.map((r,c)=>{var f,k,C,U,P,w,D,E,G,X;const h=I.has(r.uid),L={...r.bundleOptions??{},...r.selectedOptions??{},...r.customizableOptions,...r.recipient?{[n.recipient]:r.recipient}:{},...r.recipientEmail&&r.recipient?{[n.recipient]:`${r.recipient} (${r.recipientEmail})`}:{},...r.sender?{[n.sender]:r.sender}:{},...r.senderEmail&&r.sender?{[n.sender]:`${r.sender} (${r.senderEmail})`}:{},...r.message?{[n.message]:r.message}:{},...r.links&&r.links.count?r.links.count>1?{[n.files.replace("{count}",r.links.count.toString())]:r.links.result}:{[n.file.replace("{count}",r.links.count.toString())]:r.links.result}:{}};return e(H,{"data-testid":"cart-item",updating:h,taxIncluded:(a==null?void 0:a.price)==="INCLUDING_TAX",taxExcluded:(a==null?void 0:a.price)==="INCLUDING_EXCLUDING_TAX",image:u?e("a",{href:u(r),children:e($,{loading:c<4?"eager":"lazy",src:r.image.src,alt:r.image.alt,width:"300",height:"300",params:{width:300}})}):e($,{loading:c<4?"eager":"lazy",src:r.image.src,alt:r.image.alt,width:"300",height:"300",params:{width:300}}),title:e("span",{children:u?e("a",{href:u(r),children:r.name}):r.name}),sku:e("span",{children:r.sku}),configurations:Object.keys(L).length>0?L:void 0,quantity:r.quantity,price:(a==null?void 0:a.price)==="INCLUDING_TAX"?e(i,{amount:r.discounted?(f=r.regularPrice)==null?void 0:f.value:(k=r.taxedPrice)==null?void 0:k.value,currency:r.discounted?(C=r.regularPrice)==null?void 0:C.currency:(U=r.taxedPrice)==null?void 0:U.currency,style:{font:"inherit"},"data-testid":"including-tax-item-price"}):e(i,{amount:(P=r.regularPrice)==null?void 0:P.value,currency:(w=r.regularPrice)==null?void 0:w.currency,style:{font:"inherit"},"data-testid":"regular-item-price"}),total:(a==null?void 0:a.price)==="INCLUDING_EXCLUDING_TAX"||(a==null?void 0:a.price)==="INCLUDING_TAX"?e(_,{children:r.discounted?l(_,{children:[e(i,{amount:r.total.value,currency:r.total.currency,variant:"strikethrough","data-testid":"including-tax-row-total","aria-label":n.regularPrice}),e(i,{amount:(D=r.rowTotalIncludingTax)==null?void 0:D.value,currency:(E=r.rowTotalIncludingTax)==null?void 0:E.currency,sale:r.discounted,"data-testid":"discount-total","aria-label":n.discountedPrice})]}):e(i,{amount:r.rowTotalIncludingTax.value,currency:r.rowTotalIncludingTax.currency,"data-testid":"including-tax-row-total","aria-label":n.regularPrice})}):l(_,{children:[e(i,{amount:r.total.value,currency:r.total.currency,variant:r.discounted?"strikethrough":"default","data-testid":"regular-total","aria-label":n.regularPrice}),r.discounted&&e(i,{amount:(G=r.discountedTotal)==null?void 0:G.value,currency:(X=r.discountedTotal)==null?void 0:X.currency,sale:r.discounted,"data-testid":"discount-total","aria-label":n.discountedPrice})]}),totalExcludingTax:(a==null?void 0:a.price)==="INCLUDING_EXCLUDING_TAX"?e(i,{amount:r.rowTotal.value,currency:r.rowTotal.currency,"data-testid":"excluding-tax-total","aria-label":n.regularPrice}):void 0,onRemove:()=>{Q(r.uid,0)}},r.uid)})}):void 0})};Y.getInitialData=async function(){return q()};export{Y as MiniCart,Y as default};
|
|
2
2
|
//# sourceMappingURL=MiniCart.js.map
|