@dropins/storefront-cart 1.6.0-alpha5 → 3.0.0-alpha001
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/chunks/ChevronDown.js +1 -1
- package/chunks/ChevronDown.js.map +1 -1
- package/chunks/ChevronUp.js +1 -1
- package/chunks/ChevronUp.js.map +1 -1
- package/chunks/Coupons.js +1 -1
- package/chunks/Coupons.js.map +1 -1
- package/chunks/GiftCard.js +1 -1
- package/chunks/GiftCard.js.map +1 -1
- package/chunks/OrderSummary.js +1 -1
- package/chunks/OrderSummary.js.map +1 -1
- package/chunks/WarningWithCircle.js +1 -1
- package/chunks/WarningWithCircle.js.map +1 -1
- package/chunks/createGuestCart.js +2 -2
- package/chunks/createGuestCart.js.map +1 -1
- package/chunks/refreshCart.js +7 -7
- package/chunks/refreshCart.js.map +1 -1
- package/containers/GiftOptions.js +1 -1
- package/containers/GiftOptions.js.map +1 -1
- package/containers/MiniCart.js +1 -1
- package/containers/MiniCart.js.map +1 -1
- package/package.json +1 -1
- package/render.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WarningWithCircle.js","sources":["../../node_modules/@adobe-commerce/elsie/src/icons/OrderError.svg","../../node_modules/@adobe-commerce/elsie/src/icons/Trash.svg","../../node_modules/@adobe-commerce/elsie/src/icons/WarningWithCircle.svg"],"sourcesContent":["import * as React from \"react\";\nconst SvgOrderError = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { clipPath: \"url(#clip0_4797_15331)\" }, /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M10.25 20.91L1.5 17.55V6.51996L10.25 9.92996V20.91Z\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M6.24023 4.64001L14.9902 8.06001V11.42\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { className: \"error-icon\", vectorEffect: \"non-scaling-stroke\", d: \"M19 13.31L15.5 19.37H22.5L19 13.31Z\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { className: \"error-icon\", vectorEffect: \"non-scaling-stroke\", d: \"M19.0202 17.11H18.9802L18.9502 15.56H19.0502L19.0202 17.11ZM18.9602 18.29V18.06H19.0502V18.29H18.9602Z\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M19 12.16V6.51996L10.25 9.92996V20.91L14.27 19.37L14.4 19.32\", stroke: \"currentColor\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M1.5 6.51999L10.25 3.04999L19 6.51999L10.25 9.92999L1.5 6.51999Z\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\" })), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"clip0_4797_15331\" }, /* @__PURE__ */ React.createElement(\"rect\", { width: 22, height: 18.86, fill: \"white\", transform: \"translate(1 2.54999)\" }))));\nexport default SvgOrderError;\n","import * as React from \"react\";\nconst SvgTrash = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M1 5H23\", stroke: \"currentColor\", strokeWidth: 1
|
|
1
|
+
{"version":3,"file":"WarningWithCircle.js","sources":["../../node_modules/@adobe-commerce/elsie/src/icons/OrderError.svg","../../node_modules/@adobe-commerce/elsie/src/icons/Trash.svg","../../node_modules/@adobe-commerce/elsie/src/icons/WarningWithCircle.svg"],"sourcesContent":["import * as React from \"react\";\nconst SvgOrderError = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { clipPath: \"url(#clip0_4797_15331)\" }, /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M10.25 20.91L1.5 17.55V6.51996L10.25 9.92996V20.91Z\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\", strokeWidth: 1 }), /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M6.24023 4.64001L14.9902 8.06001V11.42\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\", strokeWidth: 1 }), /* @__PURE__ */ React.createElement(\"path\", { className: \"error-icon\", vectorEffect: \"non-scaling-stroke\", d: \"M19 13.31L15.5 19.37H22.5L19 13.31Z\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\", strokeWidth: 1 }), /* @__PURE__ */ React.createElement(\"path\", { className: \"error-icon\", vectorEffect: \"non-scaling-stroke\", d: \"M19.0202 17.11H18.9802L18.9502 15.56H19.0502L19.0202 17.11ZM18.9602 18.29V18.06H19.0502V18.29H18.9602Z\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\", strokeWidth: 1 }), /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M19 12.16V6.51996L10.25 9.92996V20.91L14.27 19.37L14.4 19.32\", stroke: \"currentColor\", strokeLinejoin: \"round\", strokeWidth: 1 }), /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M1.5 6.51999L10.25 3.04999L19 6.51999L10.25 9.92999L1.5 6.51999Z\", stroke: \"currentColor\", strokeLinecap: \"round\", strokeLinejoin: \"round\", strokeWidth: 1 })), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"clip0_4797_15331\" }, /* @__PURE__ */ React.createElement(\"rect\", { width: 22, height: 18.86, fill: \"white\", transform: \"translate(1 2.54999)\" }))));\nexport default SvgOrderError;\n","import * as React from \"react\";\nconst SvgTrash = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M1 5H23\", stroke: \"currentColor\", strokeWidth: 1, strokeMiterlimit: 10 }), /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M17.3674 22H6.63446C5.67952 22 4.88992 21.2688 4.8379 20.3338L4 5H20L19.1621 20.3338C19.1119 21.2688 18.3223 22 17.3655 22H17.3674Z\", stroke: \"currentColor\", strokeWidth: 1, strokeMiterlimit: 10 }), /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M9.87189 2H14.1281C14.6085 2 15 2.39766 15 2.88889V5H9V2.88889C9 2.39912 9.39006 2 9.87189 2Z\", stroke: \"currentColor\", strokeWidth: 1, strokeMiterlimit: 10 }), /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M8.87402 8.58057L9.39348 17.682\", stroke: \"currentColor\", strokeWidth: 1, strokeMiterlimit: 10 }), /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M14.6673 8.58057L14.146 17.682\", stroke: \"currentColor\", strokeWidth: 1, strokeMiterlimit: 10 }));\nexport default SvgTrash;\n","import * as React from \"react\";\nconst SvgWarningWithCircle = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M0.75 12C0.75 5.78421 5.78421 0.75 12 0.75C18.2158 0.75 23.25 5.78421 23.25 12C23.25 18.2158 18.2158 23.25 12 23.25C5.78421 23.25 0.75 18.2158 0.75 12Z\", stroke: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M11.75 5.88423V4.75H12.25V5.88423L12.0485 13.0713H11.9515L11.75 5.88423ZM11.7994 18.25V16.9868H12.2253V18.25H11.7994Z\", stroke: \"currentColor\" }));\nexport default SvgWarningWithCircle;\n"],"names":["SvgOrderError","props","React","SvgTrash","SvgWarningWithCircle"],"mappings":"kDACK,MAACA,EAAiBC,GAA0BC,EAAM,cAAc,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAGD,CAAK,EAAoBC,EAAM,cAAc,IAAK,CAAE,SAAU,0BAA4CA,EAAM,cAAc,OAAQ,CAAE,aAAc,qBAAsB,EAAG,sDAAuD,OAAQ,eAAgB,cAAe,QAAS,eAAgB,QAAS,YAAa,CAAC,CAAE,EAAmBA,EAAM,cAAc,OAAQ,CAAE,aAAc,qBAAsB,EAAG,yCAA0C,OAAQ,eAAgB,cAAe,QAAS,eAAgB,QAAS,YAAa,CAAC,CAAE,EAAmBA,EAAM,cAAc,OAAQ,CAAE,UAAW,aAAc,aAAc,qBAAsB,EAAG,sCAAuC,OAAQ,eAAgB,cAAe,QAAS,eAAgB,QAAS,YAAa,CAAG,CAAA,EAAmBA,EAAM,cAAc,OAAQ,CAAE,UAAW,aAAc,aAAc,qBAAsB,EAAG,yGAA0G,OAAQ,eAAgB,cAAe,QAAS,eAAgB,QAAS,YAAa,CAAG,CAAA,EAAmBA,EAAM,cAAc,OAAQ,CAAE,aAAc,qBAAsB,EAAG,+DAAgE,OAAQ,eAAgB,eAAgB,QAAS,YAAa,CAAC,CAAE,EAAmBA,EAAM,cAAc,OAAQ,CAAE,aAAc,qBAAsB,EAAG,mEAAoE,OAAQ,eAAgB,cAAe,QAAS,eAAgB,QAAS,YAAa,EAAG,CAAC,EAAmBA,EAAM,cAAc,OAAQ,KAAsBA,EAAM,cAAc,WAAY,CAAE,GAAI,kBAAoB,EAAkBA,EAAM,cAAc,OAAQ,CAAE,MAAO,GAAI,OAAQ,MAAO,KAAM,QAAS,UAAW,sBAAwB,CAAA,CAAC,CAAC,CAAC,ECAv7DC,EAAYF,GAA0BC,EAAM,cAAc,MAAO,CAAE,MAAO,6BAA8B,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,GAAGD,GAAyBC,EAAM,cAAc,OAAQ,CAAE,aAAc,qBAAsB,EAAG,UAAW,OAAQ,eAAgB,YAAa,EAAG,iBAAkB,EAAE,CAAE,EAAmBA,EAAM,cAAc,OAAQ,CAAE,aAAc,qBAAsB,EAAG,sIAAuI,OAAQ,eAAgB,YAAa,EAAG,iBAAkB,GAAI,EAAmBA,EAAM,cAAc,OAAQ,CAAE,aAAc,qBAAsB,EAAG,gGAAiG,OAAQ,eAAgB,YAAa,EAAG,iBAAkB,GAAI,EAAmBA,EAAM,cAAc,OAAQ,CAAE,aAAc,qBAAsB,EAAG,kCAAmC,OAAQ,eAAgB,YAAa,EAAG,iBAAkB,GAAI,EAAmBA,EAAM,cAAc,OAAQ,CAAE,aAAc,qBAAsB,EAAG,iCAAkC,OAAQ,eAAgB,YAAa,EAAG,iBAAkB,GAAI,CAAC,ECAntCE,EAAwBH,GAA0BC,EAAM,cAAc,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAGD,CAAK,EAAoBC,EAAM,cAAc,OAAQ,CAAE,aAAc,qBAAsB,EAAG,0JAA2J,OAAQ,cAAc,CAAE,EAAmBA,EAAM,cAAc,OAAQ,CAAE,aAAc,qBAAsB,EAAG,wHAAyH,OAAQ,eAAgB,CAAC","x_google_ignoreList":[0,1,2]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! Copyright 2025 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import{s as
|
|
3
|
+
import{s as p,f as T,h}from"./resetCart.js";import{t as I,c as _}from"./refreshCart.js";import{events as m}from"@dropins/tools/event-bus.js";import{g as E}from"./persisted-data.js";import{A}from"./updateProductsFromCart.js";import{c as U,b as g}from"./acdl.js";const R=async i=>{const f=p.cartId||await G().then(r=>r);return T(A,{variables:{cartId:f,cartItems:i.map(({sku:r,parentSku:s,quantity:u,optionsUIDs:t,enteredOptions:e,customFields:n})=>({sku:r,parent_sku:s,quantity:u,selected_options:t,entered_options:e,...n||{}}))}}).then(({errors:r,data:s})=>{var C;const u=[...((C=s==null?void 0:s.addProductsToCart)==null?void 0:C.user_errors)??[],...r??[]];if(u.length>0)return h(u);const t=I(s.addProductsToCart.cart),e=E(),n=(e==null?void 0:e.items)||[];if(m.emit("cart/updated",t),m.emit("cart/data",t),t){const c=t.items.filter(a=>!n.some(o=>o.sku===a.sku)),d=t.items.filter(a=>{const o=n.find(l=>l.sku===a.sku);return o&&a.quantity!==o.quantity});c.length>0&&m.emit("cart/product/added",c),d.length>0&&m.emit("cart/product/updated",d)}if(t){const c=t.items.filter(o=>i.some(({sku:l})=>l===o.topLevelSku)),d=!e||(e.totalQuantity??0)===0,a=(t.totalQuantity??0)>0;d&&a?U(t,c,p.locale??"en-US"):g(t,c,p.locale??"en-US")}return t})},y=`
|
|
4
4
|
mutation CREATE_GUEST_CART_MUTATION {
|
|
5
5
|
createGuestCart {
|
|
6
6
|
cart {
|
|
@@ -8,5 +8,5 @@ import{s as l,f as T,h as I}from"./resetCart.js";import{t as _,c as A}from"./ref
|
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
|
-
`,
|
|
11
|
+
`,G=async()=>{const{disableGuestCart:i}=_.getConfig();if(i)throw new Error("Guest cart is disabled");return await T(y).then(({data:f})=>{const r=f.createGuestCart.cart.id;return p.cartId=r,r})};export{R as a,G as c};
|
|
12
12
|
//# sourceMappingURL=createGuestCart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createGuestCart.js","sources":["/@dropins/storefront-cart/src/api/addProductsToCart/addProductsToCart.ts","/@dropins/storefront-cart/src/api/createGuestCart/graphql/CreateCartMutation.ts","/@dropins/storefront-cart/src/api/createGuestCart/createGuestCart.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl, createGuestCart } from '@/cart/api';\nimport { state } from '@/cart/lib/state';\nimport { CartModel } from '@/cart/data/models';\nimport { transformCart } from '@/cart/data/transforms';\nimport { events } from '@adobe-commerce/event-bus';\nimport { handleFetchError } from '@/cart/lib/fetch-error';\nimport { getPersistedCartData } from '@/cart/lib/persisted-data';\n\nimport { ADD_PRODUCTS_TO_CART_MUTATION } from './graphql/AddProductsToCartMutation';\nimport { publishCartUpdateEvents, publishOpenCartEvent } from '@/cart/lib/acdl';\n\nexport const addProductsToCart = async (\n items: {\n sku: string;\n parentSku?: string;\n quantity: number;\n optionsUIDs?: string[];\n enteredOptions?: { uid: string; value: string }[];\n customFields?: Record<string, any>;\n }[]\n): Promise<CartModel | null> => {\n
|
|
1
|
+
{"version":3,"file":"createGuestCart.js","sources":["/@dropins/storefront-cart/src/api/addProductsToCart/addProductsToCart.ts","/@dropins/storefront-cart/src/api/createGuestCart/graphql/CreateCartMutation.ts","/@dropins/storefront-cart/src/api/createGuestCart/createGuestCart.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl, createGuestCart } from '@/cart/api';\nimport { state } from '@/cart/lib/state';\nimport { CartModel } from '@/cart/data/models';\nimport { transformCart } from '@/cart/data/transforms';\nimport { events } from '@adobe-commerce/event-bus';\nimport { handleFetchError } from '@/cart/lib/fetch-error';\nimport { getPersistedCartData } from '@/cart/lib/persisted-data';\n\nimport { ADD_PRODUCTS_TO_CART_MUTATION } from './graphql/AddProductsToCartMutation';\nimport { publishCartUpdateEvents, publishOpenCartEvent } from '@/cart/lib/acdl';\n\nexport const addProductsToCart = async (\n items: {\n sku: string;\n parentSku?: string;\n quantity: number;\n optionsUIDs?: string[];\n enteredOptions?: { uid: string; value: string }[];\n customFields?: Record<string, any>;\n }[]\n): Promise<CartModel | null> => {\n const cartId =\n state.cartId ||\n (await createGuestCart().then((id) => {\n return id;\n }));\n\n return fetchGraphQl(ADD_PRODUCTS_TO_CART_MUTATION, {\n variables: {\n cartId,\n cartItems: items.map(\n ({\n sku,\n parentSku: parent_sku,\n quantity,\n optionsUIDs: selected_options,\n enteredOptions: entered_options,\n customFields,\n }) => ({\n sku,\n parent_sku,\n quantity,\n selected_options,\n entered_options,\n ...(customFields ? customFields : {}),\n })\n ),\n },\n }).then(({ errors, data }) => {\n // handle errors\n const _errors = [\n ...(data?.addProductsToCart?.user_errors ?? []),\n ...(errors ?? []),\n ];\n\n if (_errors.length > 0) return handleFetchError(_errors);\n\n // transform cart\n const payload = transformCart(data.addProductsToCart.cart);\n\n // Get previous cart data before emitting events\n const previousCart = getPersistedCartData();\n const previousItems = previousCart?.items || [];\n\n // emit events\n events.emit('cart/updated', payload);\n events.emit('cart/data', payload);\n\n // emit add to cart event with affected items\n if (payload) {\n // Separate new items and updated items\n const newItems = payload.items.filter((item) => {\n return !previousItems.some((prev) => prev.sku === item.sku);\n });\n\n const updatedItems = payload.items.filter((item) => {\n const previousItem = previousItems.find(\n (prev) => prev.sku === item.sku\n );\n // Emit update event if quantity has changed\n return previousItem && item.quantity !== previousItem.quantity;\n });\n\n // Emit add event for new items\n if (newItems.length > 0) {\n events.emit('cart/product/added', newItems);\n }\n\n // Emit update event for existing items\n if (updatedItems.length > 0) {\n events.emit('cart/product/updated', updatedItems);\n }\n }\n\n // data collection\n if (payload) {\n const updatedItems = payload.items.filter((item) =>\n items.some(({ sku }) => sku === item.topLevelSku)\n );\n \n // Check if cart was empty before adding items\n const wasCartEmpty = !previousCart || (previousCart.totalQuantity ?? 0) === 0;\n const hasItemsNow = (payload.totalQuantity ?? 0) > 0;\n \n if (wasCartEmpty && hasItemsNow) {\n // Publish open cart event when cart goes from empty to having items\n publishOpenCartEvent(payload, updatedItems, state.locale ?? 'en-US');\n } else {\n // Otherwise publish cart update events\n publishCartUpdateEvents(payload, updatedItems, state.locale ?? 'en-US');\n }\n }\n\n return payload;\n });\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const CREATE_GUEST_CART_MUTATION = `\n mutation CREATE_GUEST_CART_MUTATION {\n createGuestCart {\n cart {\n id\n }\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { config, fetchGraphQl } from '@/cart/api';\nimport { state } from '@/cart/lib/state';\n\nimport { CREATE_GUEST_CART_MUTATION } from './graphql/CreateCartMutation';\n\nexport const createGuestCart = async () => {\n const { disableGuestCart } = config.getConfig();\n\n // If guest cart is disabled, throw an error\n if (disableGuestCart) {\n throw new Error('Guest cart is disabled');\n }\n\n // Return new empty cart id\n return await fetchGraphQl(CREATE_GUEST_CART_MUTATION).then(({ data }) => {\n const cartId = data.createGuestCart.cart.id;\n\n // Set cart id in state\n state.cartId = cartId;\n\n return cartId;\n });\n};\n"],"names":["addProductsToCart","items","cartId","state","createGuestCart","id","fetchGraphQl","ADD_PRODUCTS_TO_CART_MUTATION","sku","parent_sku","quantity","selected_options","entered_options","customFields","errors","data","_errors","_a","handleFetchError","payload","transformCart","previousCart","getPersistedCartData","previousItems","events","newItems","item","prev","updatedItems","previousItem","wasCartEmpty","hasItemsNow","publishOpenCartEvent","publishCartUpdateEvents","CREATE_GUEST_CART_MUTATION","disableGuestCart","config"],"mappings":"qQA4Ba,MAAAA,EAAoB,MAC/BC,GAQ8B,CACxB,MAAAC,EACJC,EAAM,QACL,MAAMC,IAAkB,KAAMC,GACtBA,CACR,EAEH,OAAOC,EAAaC,EAA+B,CACjD,UAAW,CACT,OAAAL,EACA,UAAWD,EAAM,IACf,CAAC,CACC,IAAAO,EACA,UAAWC,EACX,SAAAC,EACA,YAAaC,EACb,eAAgBC,EAChB,aAAAC,CAAA,KACK,CACL,IAAAL,EACA,WAAAC,EACA,SAAAC,EACA,iBAAAC,EACA,gBAAAC,EACA,GAAIC,GAA8B,CAAA,CACpC,EAAA,CACF,CAEH,CAAA,EAAE,KAAK,CAAC,CAAE,OAAAC,EAAQ,KAAAC,KAAW,OAE5B,MAAMC,EAAU,CACd,KAAIC,EAAAF,GAAA,YAAAA,EAAM,oBAAN,YAAAE,EAAyB,cAAe,CAAC,EAC7C,GAAIH,GAAU,CAAA,CAChB,EAEA,GAAIE,EAAQ,OAAS,EAAG,OAAOE,EAAiBF,CAAO,EAGvD,MAAMG,EAAUC,EAAcL,EAAK,kBAAkB,IAAI,EAGnDM,EAAeC,EAAqB,EACpCC,GAAgBF,GAAA,YAAAA,EAAc,QAAS,CAAC,EAO9C,GAJOG,EAAA,KAAK,eAAgBL,CAAO,EAC5BK,EAAA,KAAK,YAAaL,CAAO,EAG5BA,EAAS,CAEX,MAAMM,EAAWN,EAAQ,MAAM,OAAQO,GAC9B,CAACH,EAAc,KAAMI,GAASA,EAAK,MAAQD,EAAK,GAAG,CAC3D,EAEKE,EAAeT,EAAQ,MAAM,OAAQO,GAAS,CAClD,MAAMG,EAAeN,EAAc,KAChCI,GAASA,EAAK,MAAQD,EAAK,GAC9B,EAEO,OAAAG,GAAgBH,EAAK,WAAaG,EAAa,QAAA,CACvD,EAGGJ,EAAS,OAAS,GACbD,EAAA,KAAK,qBAAsBC,CAAQ,EAIxCG,EAAa,OAAS,GACjBJ,EAAA,KAAK,uBAAwBI,CAAY,CAClD,CAIF,GAAIT,EAAS,CACL,MAAAS,EAAeT,EAAQ,MAAM,OAAQO,GACzCzB,EAAM,KAAK,CAAC,CAAE,IAAAO,KAAUA,IAAQkB,EAAK,WAAW,CAClD,EAGMI,EAAe,CAACT,IAAiBA,EAAa,eAAiB,KAAO,EACtEU,GAAeZ,EAAQ,eAAiB,GAAK,EAE/CW,GAAgBC,EAElBC,EAAqBb,EAASS,EAAczB,EAAM,QAAU,OAAO,EAGnE8B,EAAwBd,EAASS,EAAczB,EAAM,QAAU,OAAO,CACxE,CAGK,OAAAgB,CAAA,CACR,CACH,ECnHae,EAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECK7B9B,EAAkB,SAAY,CACzC,KAAM,CAAE,iBAAA+B,CAAA,EAAqBC,EAAO,UAAU,EAG9C,GAAID,EACI,MAAA,IAAI,MAAM,wBAAwB,EAInC,OAAA,MAAM7B,EAAa4B,CAA0B,EAAE,KAAK,CAAC,CAAE,KAAAnB,KAAW,CACjE,MAAAb,EAASa,EAAK,gBAAgB,KAAK,GAGzC,OAAAZ,EAAM,OAASD,EAERA,CAAA,CACR,CACH"}
|
package/chunks/refreshCart.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! Copyright 2025 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import{s as o,d as X,f as I,h as G}from"./resetCart.js";import{events as g}from"@dropins/tools/event-bus.js";import{Initializer as K,merge as j}from"@dropins/tools/lib.js";import{c as Y}from"./persisted-data.js";import{CART_FRAGMENT as w}from"../fragments.js";const z=new K({init:async r=>{const n={disableGuestCart:!1,...r};z.config.setConfig(n),D().catch(console.error)},listeners:()=>[g.on("authenticated",r=>{o.authenticated&&!r?g.emit("cart/reset",void 0):r&&!o.authenticated&&(o.authenticated=r,D().catch(console.error))},{eager:!0}),g.on("locale",async r=>{r!==o.locale&&(o.locale=r,D().catch(console.error))}),g.on("cart/reset",()=>{X().catch(console.error),g.emit("cart/data",null)}),g.on("cart/data",r=>{Y(r)}),g.on("checkout/updated",r=>{!r||(r==null?void 0:r.type)==="quote"||U().catch(console.error)}),g.on("companyContext/changed",()=>{U().catch(console.error)}),g.on("requisitionList/alert",()=>{U().catch(console.error)})]}),B=z.config;function P(r){var c,e,u,l,i,_,a,f,y,d,m,h,b,x,t,T;if(!r)return null;const n={appliedGiftCards:((c=r==null?void 0:r.applied_gift_cards)==null?void 0:c.map(s=>{var R,M,k;const p={code:s.code??"",appliedBalance:{value:s.applied_balance.value??0,currency:s.applied_balance.currency??"USD"},currentBalance:{value:s.current_balance.value??0,currency:s.current_balance.currency??"USD"},expirationDate:s.expiration_date??""},v=(R=p==null?void 0:p.currentBalance)==null?void 0:R.value,C=(M=p==null?void 0:p.appliedBalance)==null?void 0:M.value,S=(k=p==null?void 0:p.currentBalance)==null?void 0:k.currency,L=v-C>0?v-C:0;return{...p,giftCardBalance:{value:L,currency:S}}}))??[],id:r.id,totalQuantity:tr(r),totalUniqueItems:r.itemsV2.items.length,totalGiftOptions:O((e=r==null?void 0:r.prices)==null?void 0:e.gift_options),giftReceiptIncluded:(r==null?void 0:r.gift_receipt_included)??!1,printedCardIncluded:(r==null?void 0:r.printed_card_included)??!1,cartGiftWrapping:((u=r==null?void 0:r.available_gift_wrappings)==null?void 0:u.map(s=>{var p,v,C,S,E;return{design:s.design??"",uid:s.uid,selected:((p=r==null?void 0:r.gift_wrapping)==null?void 0:p.uid)===s.uid,image:{url:((v=s==null?void 0:s.image)==null?void 0:v.url)??"",label:((C=s.image)==null?void 0:C.label)??""},price:{currency:((S=s==null?void 0:s.price)==null?void 0:S.currency)??"USD",value:((E=s==null?void 0:s.price)==null?void 0:E.value)??0}}}))??[],giftMessage:{senderName:((l=r==null?void 0:r.gift_message)==null?void 0:l.from)??"",recipientName:((i=r==null?void 0:r.gift_message)==null?void 0:i.to)??"",message:((_=r==null?void 0:r.gift_message)==null?void 0:_.message)??""},errors:cr(r==null?void 0:r.itemsV2),items:F(r==null?void 0:r.itemsV2),miniCartMaxItems:F(r==null?void 0:r.itemsV2).slice(0,((a=o.config)==null?void 0:a.miniCartMaxItemsDisplay)??10),total:{includingTax:{value:r.prices.grand_total.value,currency:r.prices.grand_total.currency},excludingTax:{value:r.prices.grand_total_excluding_tax.value,currency:r.prices.grand_total_excluding_tax.currency}},discount:N(r.prices.discounts,r.prices.grand_total.currency),subtotal:{excludingTax:{value:(f=r.prices.subtotal_excluding_tax)==null?void 0:f.value,currency:(y=r.prices.subtotal_excluding_tax)==null?void 0:y.currency},includingTax:{value:(d=r.prices.subtotal_including_tax)==null?void 0:d.value,currency:(m=r.prices.subtotal_including_tax)==null?void 0:m.currency},includingDiscountOnly:{value:(h=r.prices.subtotal_with_discount_excluding_tax)==null?void 0:h.value,currency:(b=r.prices.subtotal_with_discount_excluding_tax)==null?void 0:b.currency}},appliedTaxes:q(r.prices.applied_taxes),totalTax:N(r.prices.applied_taxes,r.prices.grand_total.currency),appliedDiscounts:q(r.prices.discounts),isVirtual:r.is_virtual,addresses:{shipping:r.shipping_addresses&&or(r)},isGuestCart:!o.authenticated,hasOutOfStockItems:_r(r),hasFullyOutOfStockItems:pr(r),appliedCoupons:r.applied_coupons};return j(n,(T=(t=(x=B.getConfig().models)==null?void 0:x.CartModel)==null?void 0:t.transformer)==null?void 0:T.call(t,r))}function O(r){var n,c,e,u,l,i,_,a,f,y,d,m;return{giftWrappingForItems:{value:((n=r==null?void 0:r.gift_wrapping_for_items)==null?void 0:n.value)??0,currency:((c=r==null?void 0:r.gift_wrapping_for_items)==null?void 0:c.currency)??"USD"},giftWrappingForItemsInclTax:{value:((e=r==null?void 0:r.gift_wrapping_for_items_incl_tax)==null?void 0:e.value)??0,currency:((u=r==null?void 0:r.gift_wrapping_for_items_incl_tax)==null?void 0:u.currency)??"USD"},giftWrappingForOrder:{value:((l=r==null?void 0:r.gift_wrapping_for_order)==null?void 0:l.value)??0,currency:((i=r==null?void 0:r.gift_wrapping_for_order)==null?void 0:i.currency)??"USD"},giftWrappingForOrderInclTax:{value:((_=r==null?void 0:r.gift_wrapping_for_order_incl_tax)==null?void 0:_.value)??0,currency:((a=r==null?void 0:r.gift_wrapping_for_order_incl_tax)==null?void 0:a.currency)??"USD"},printedCard:{value:((f=r==null?void 0:r.printed_card)==null?void 0:f.value)??0,currency:((y=r==null?void 0:r.printed_card)==null?void 0:y.currency)??"USD"},printedCardInclTax:{value:((d=r==null?void 0:r.printed_card_incl_tax)==null?void 0:d.value)??0,currency:((m=r==null?void 0:r.printed_card_incl_tax)==null?void 0:m.currency)??"USD"}}}function N(r,n){return r!=null&&r.length?r.reduce((c,e)=>({value:c.value+e.amount.value,currency:e.amount.currency}),{value:0,currency:n}):{value:0,currency:n}}function H(r,n){var c,e,u,l;return{src:r!=null&&r.useConfigurableParentThumbnail?n.product.thumbnail.url:((e=(c=n.configured_variant)==null?void 0:c.thumbnail)==null?void 0:e.url)||n.product.thumbnail.url,alt:r!=null&&r.useConfigurableParentThumbnail?n.product.thumbnail.label:((l=(u=n.configured_variant)==null?void 0:u.thumbnail)==null?void 0:l.label)||n.product.thumbnail.label}}function J(r){var n,c,e,u;return r.__typename==="ConfigurableCartItem"?{value:(c=(n=r.configured_variant)==null?void 0:n.price_range)==null?void 0:c.maximum_price.regular_price.value,currency:(u=(e=r.configured_variant)==null?void 0:e.price_range)==null?void 0:u.maximum_price.regular_price.currency}:r.__typename==="GiftCardCartItem"?{value:r.prices.price.value,currency:r.prices.price.currency}:{value:r.prices.original_item_price.value,currency:r.prices.original_item_price.currency}}function V(r,n){return r!=null&&r.length&&[...r].sort((e,u)=>u.quantity-e.quantity).find(e=>n>=e.quantity)||null}function Z(r){var i,_;const n=r.quantity,c=r.__typename==="ConfigurableCartItem",e=c?(i=r.configured_variant)==null?void 0:i.price_tiers:r.product.price_tiers,u=c?(_=r.configured_variant)==null?void 0:_.price_range:r.product.price_range,l=V(e,n);return l?l.discount.amount_off>0:(u==null?void 0:u.maximum_price.discount.amount_off)>0}function rr(r){var n,c,e;return{senderName:((n=r==null?void 0:r.gift_message)==null?void 0:n.from)??"",recipientName:((c=r==null?void 0:r.gift_message)==null?void 0:c.to)??"",message:((e=r==null?void 0:r.gift_message)==null?void 0:e.message)??""}}function er(r){return{currency:(r==null?void 0:r.currency)??"USD",value:(r==null?void 0:r.value)??0}}function F(r){var c;if(!((c=r==null?void 0:r.items)!=null&&c.length))return[];const n=o.config;return r.items.map(e=>{var u,l,i,_,a,f,y,d,m,h,b,x;return{giftWrappingAvailable:((u=e==null?void 0:e.product)==null?void 0:u.gift_wrapping_available)??!1,giftWrappingPrice:er((l=e==null?void 0:e.product)==null?void 0:l.gift_wrapping_price),giftMessage:rr(e),productGiftWrapping:((i=e==null?void 0:e.available_gift_wrapping)==null?void 0:i.map(t=>{var T,s,p,v,C;return{design:t.design??"",uid:t.uid,selected:((T=e.gift_wrapping)==null?void 0:T.uid)===t.uid,image:{url:((s=t==null?void 0:t.image)==null?void 0:s.url)??"",label:((p=t.image)==null?void 0:p.label)??""},price:{currency:((v=t==null?void 0:t.price)==null?void 0:v.currency)??"USD",value:((C=t==null?void 0:t.price)==null?void 0:C.value)??0}}}))??[],itemType:e.__typename,uid:e.uid,giftMessageAvailable:nr(e.product.gift_message_available),url:{urlKey:e.product.url_key,categories:e.product.categories.map(t=>t.url_key)},canonicalUrl:e.product.canonical_url,categories:e.product.categories.map(t=>t.name),priceTiers:e.__typename==="ConfigurableCartItem"?((a=(_=e.configured_variant)==null?void 0:_.price_tiers)==null?void 0:a.map(t=>t))||[]:((f=e.product.price_tiers)==null?void 0:f.map(t=>t))||[],quantity:e.quantity,sku:fr(e),topLevelSku:e.product.sku,name:e.product.name,image:H(n,e),price:{value:e.prices.price.value,currency:e.prices.price.currency},taxedPrice:{value:e.prices.price_including_tax.value,currency:e.prices.price_including_tax.currency},fixedProductTaxes:e.prices.fixed_product_taxes,rowTotal:{value:e.prices.row_total.value,currency:e.prices.row_total.currency},rowTotalIncludingTax:{value:e.prices.row_total_including_tax.value,currency:e.prices.row_total_including_tax.currency},links:sr(e.links),total:{value:(y=e.prices.original_row_total)==null?void 0:y.value,currency:(d=e.prices.original_row_total)==null?void 0:d.currency},discount:{value:e.prices.total_item_discount.value,currency:e.prices.total_item_discount.currency,label:(m=e.prices.discounts)==null?void 0:m.map(t=>t.label)},regularPrice:J(e),discounted:Z(e),bundleOptions:e.__typename==="BundleCartItem"?ur(e.bundle_options):null,bundleOptionsUIDs:e.__typename==="BundleCartItem"?lr(e.bundle_options):null,selectedOptions:(h=$(e.configurable_options))==null?void 0:h.options,selectedOptionsUIDs:(b=$(e.configurable_options))==null?void 0:b.uids,customizableOptions:ir(e.customizable_options),sender:e.__typename==="GiftCardCartItem"?e.sender_name:null,senderEmail:e.__typename==="GiftCardCartItem"?e.sender_email:null,recipient:e.__typename==="GiftCardCartItem"?e.recipient_name:null,recipientEmail:e.__typename==="GiftCardCartItem"?e.recipient_email:null,message:e.__typename==="GiftCardCartItem"?e.message:null,discountedTotal:{value:e.prices.row_total.value,currency:e.prices.row_total.currency},onlyXLeftInStock:e.__typename==="ConfigurableCartItem"?(x=e.configured_variant)==null?void 0:x.only_x_left_in_stock:e.product.only_x_left_in_stock,lowInventory:e.is_available&&e.product.only_x_left_in_stock!==null,insufficientQuantity:(e.__typename==="ConfigurableCartItem"?e.configured_variant:e.product).stock_status==="IN_STOCK"&&!e.is_available,outOfStock:e.product.stock_status==="OUT_OF_STOCK",stockLevel:ar(e),discountPercentage:gr(e),savingsAmount:yr(e),productAttributes:dr(e)}})}function nr(r){switch(+r){case 0:return!1;case 1:return!0;case 2:return null;default:return!1}}function cr(r){var c;const n=(c=r==null?void 0:r.items)==null?void 0:c.reduce((e,u)=>{var l;return(l=u.errors)==null||l.forEach(i=>{e.push({uid:u.uid,text:i.message})}),e},[]);return n!=null&&n.length?n:null}function q(r){return r!=null&&r.length?r.map(n=>({amount:{value:n.amount.value,currency:n.amount.currency},label:n.label,coupon:n.coupon})):[]}function ur(r){const n=r==null?void 0:r.map(e=>({uid:e.uid,label:e.label,value:e.values.map(u=>u.label).join(", ")})),c={};return n==null||n.forEach(e=>{c[e.label]=e.value}),Object.keys(c).length>0?c:null}function lr(r){if(!(r!=null&&r.length))return null;const n=[];return r.forEach(c=>{var e;if((e=c.values)!=null&&e.length){const u=c.values.map(l=>l.uid);n.push(...u)}}),n.length>0?n:null}function $(r){const n=r==null?void 0:r.map(u=>({uid:u.configurable_product_option_uid,label:u.option_label,value:u.value_label,valueUid:u.configurable_product_option_value_uid})),c={},e={};return n==null||n.forEach(u=>{c[u.label]=u.value,e[u.label]=u.valueUid}),{options:Object.keys(c).length>0?c:null,uids:Object.keys(e).length>0?e:null}}function ir(r){const n=r==null?void 0:r.map(e=>({uid:e.customizable_option_uid,label:e.label,type:e.type,values:e.values.map(u=>({uid:u.customizable_option_value_uid,label:u.label,value:u.value}))})),c={};return n==null||n.forEach(e=>{var u;switch(e.type){case"field":case"area":case"date_time":c[e.label]=e.values[0].value;break;case"radio":case"drop_down":c[e.label]=e.values[0].label;break;case"multiple":case"checkbox":c[e.label]=e.values.reduce((l,i)=>l?`${l}, ${i.label}`:i.label,"");break;case"file":{const l=new DOMParser,i=e.values[0].value,a=((u=l.parseFromString(i,"text/html").querySelector("a"))==null?void 0:u.textContent)||"";c[e.label]=a;break}}}),c}function tr(r){var n,c;return((n=o.config)==null?void 0:n.cartSummaryDisplayTotal)===0?r.itemsV2.items.length:((c=o.config)==null?void 0:c.cartSummaryDisplayTotal)===1?r.total_quantity:r.itemsV2.items.length}function sr(r){return(r==null?void 0:r.length)>0?{count:r.length,result:r.map(n=>n.title).join(", ")}:null}function or(r){var n,c,e,u;return(n=r.shipping_addresses)!=null&&n.length?(c=r.shipping_addresses)==null?void 0:c.map(l=>({countryCode:l.country.code,zipCode:l.postcode,regionCode:l.region.code})):(e=r.addresses)!=null&&e.length?(u=r.addresses)==null?void 0:u.filter(l=>l.default_shipping).map(l=>{var i;return l.default_shipping&&{countryCode:l.country_code,zipCode:l.postcode,regionCode:(i=l.region)==null?void 0:i.region_code}}):null}function _r(r){var n,c;return(c=(n=r==null?void 0:r.itemsV2)==null?void 0:n.items)==null?void 0:c.some(e=>{var u;return((u=e==null?void 0:e.product)==null?void 0:u.stock_status)==="OUT_OF_STOCK"||e.product.stock_status==="IN_STOCK"&&!e.is_available})}function ar(r){return r.not_available_message?r.product.quantity!=null?r.product.quantity:"noNumber":null}function pr(r){var n,c;return(c=(n=r==null?void 0:r.itemsV2)==null?void 0:n.items)==null?void 0:c.some(e=>{var u;return((u=e==null?void 0:e.product)==null?void 0:u.stock_status)==="OUT_OF_STOCK"})}function gr(r){var u,l,i,_,a,f,y,d;const n=r.quantity,c=V(r.product.price_tiers,n);if(c)return Math.round(c.discount.percent_off);let e;if(r.__typename==="ConfigurableCartItem")e=(_=(i=(l=(u=r==null?void 0:r.configured_variant)==null?void 0:u.price_range)==null?void 0:l.maximum_price)==null?void 0:i.discount)==null?void 0:_.percent_off;else{if(r.__typename==="BundleCartItem")return;e=(d=(y=(f=(a=r==null?void 0:r.product)==null?void 0:a.price_range)==null?void 0:f.maximum_price)==null?void 0:y.discount)==null?void 0:d.percent_off}if(e!==0)return Math.round(e)}function fr(r){var n;return r.__typename==="ConfigurableCartItem"?r.configured_variant.sku:((n=r.product)==null?void 0:n.variantSku)||r.product.sku}function yr(r){var e,u,l,i,_,a;let n,c;if(n=((u=(e=r==null?void 0:r.prices)==null?void 0:e.original_row_total)==null?void 0:u.value)-((i=(l=r==null?void 0:r.prices)==null?void 0:l.row_total)==null?void 0:i.value),c=(a=(_=r==null?void 0:r.prices)==null?void 0:_.row_total)==null?void 0:a.currency,n!==0)return{value:n,currency:c}}function dr(r){var n,c,e;return(e=(c=(n=r==null?void 0:r.product)==null?void 0:n.custom_attributesV2)==null?void 0:c.items)==null?void 0:e.map(u=>{const l=u.code.split("_").map(i=>i.charAt(0).toUpperCase()+i.slice(1)).join(" ");return{...u,code:l}})}function mr(r){var e,u;if(!r)return null;const n=l=>{switch(l){case 1:return"EXCLUDING_TAX";case 2:return"INCLUDING_TAX";case 3:return"INCLUDING_EXCLUDING_TAX";default:return"EXCLUDING_TAX"}},c=l=>{switch(+l){case 0:return!1;case 1:return!0;case 2:return null;default:return!1}};return{displayMiniCart:r.minicart_display,miniCartMaxItemsDisplay:r.minicart_max_items,cartExpiresInDays:r.cart_expires_in_days,cartSummaryDisplayTotal:r.cart_summary_display_quantity,cartSummaryMaxItems:r.max_items_in_order_summary,defaultCountry:r.default_country,categoryFixedProductTaxDisplaySetting:r.category_fixed_product_tax_display_setting,productFixedProductTaxDisplaySetting:r.product_fixed_product_tax_display_setting,salesFixedProductTaxDisplaySetting:r.sales_fixed_product_tax_display_setting,shoppingCartDisplaySetting:{zeroTax:r.shopping_cart_display_zero_tax,subtotal:n(r.shopping_cart_display_subtotal),price:n(r.shopping_cart_display_price),shipping:n(r.shopping_cart_display_shipping),fullSummary:r.shopping_cart_display_full_summary,grandTotal:r.shopping_cart_display_grand_total,taxGiftWrapping:r.shopping_cart_display_tax_gift_wrapping},useConfigurableParentThumbnail:r.configurable_thumbnail_source==="parent",allowGiftWrappingOnOrder:c(r==null?void 0:r.allow_gift_wrapping_on_order),allowGiftWrappingOnOrderItems:c(r==null?void 0:r.allow_gift_wrapping_on_order_items),allowGiftMessageOnOrder:c(r==null?void 0:r.allow_order),allowGiftMessageOnOrderItems:c(r==null?void 0:r.allow_items),allowGiftReceipt:!!+(r==null?void 0:r.allow_gift_receipt),allowPrintedCard:!!+(r==null?void 0:r.allow_printed_card),printedCardPrice:{currency:((e=r==null?void 0:r.printed_card_priceV2)==null?void 0:e.currency)??"",value:((u=r==null?void 0:r.printed_card_priceV2)==null?void 0:u.value)!=null?+r.printed_card_priceV2.value:0},cartGiftWrapping:n(+r.cart_gift_wrapping),cartPrintedCard:n(+r.cart_printed_card)}}const vr=`
|
|
3
|
+
import{s as o,d as X,f as I,h as U}from"./resetCart.js";import{events as g}from"@dropins/tools/event-bus.js";import{Initializer as K,merge as j}from"@dropins/tools/lib.js";import{c as Y}from"./persisted-data.js";import{CART_FRAGMENT as A}from"../fragments.js";const z=new K({init:async r=>{const n={disableGuestCart:!1,...r};z.config.setConfig(n),D().catch(console.error)},listeners:()=>[g.on("authenticated",r=>{o.authenticated&&!r?g.emit("cart/reset",void 0):r&&!o.authenticated&&(o.authenticated=r,D().catch(console.error))},{eager:!0}),g.on("locale",async r=>{r!==o.locale&&(o.locale=r,D().catch(console.error))}),g.on("cart/reset",()=>{X().catch(console.error),g.emit("cart/data",null)}),g.on("cart/data",r=>{Y(r)}),g.on("checkout/updated",r=>{!r||(r==null?void 0:r.type)==="quote"||$().catch(console.error)}),g.on("requisitionList/alert",()=>{$().catch(console.error)})]}),B=z.config;function k(r){var c,e,u,l,i,_,a,f,y,d,m,h,b,x,t,T;if(!r)return null;const n={appliedGiftCards:((c=r==null?void 0:r.applied_gift_cards)==null?void 0:c.map(s=>{var w,R,M;const p={code:s.code??"",appliedBalance:{value:s.applied_balance.value??0,currency:s.applied_balance.currency??"USD"},currentBalance:{value:s.current_balance.value??0,currency:s.current_balance.currency??"USD"},expirationDate:s.expiration_date??""},v=(w=p==null?void 0:p.currentBalance)==null?void 0:w.value,C=(R=p==null?void 0:p.appliedBalance)==null?void 0:R.value,S=(M=p==null?void 0:p.currentBalance)==null?void 0:M.currency,L=v-C>0?v-C:0;return{...p,giftCardBalance:{value:L,currency:S}}}))??[],id:r.id,totalQuantity:tr(r),totalUniqueItems:r.itemsV2.items.length,totalGiftOptions:O((e=r==null?void 0:r.prices)==null?void 0:e.gift_options),giftReceiptIncluded:(r==null?void 0:r.gift_receipt_included)??!1,printedCardIncluded:(r==null?void 0:r.printed_card_included)??!1,cartGiftWrapping:((u=r==null?void 0:r.available_gift_wrappings)==null?void 0:u.map(s=>{var p,v,C,S,E;return{design:s.design??"",uid:s.uid,selected:((p=r==null?void 0:r.gift_wrapping)==null?void 0:p.uid)===s.uid,image:{url:((v=s==null?void 0:s.image)==null?void 0:v.url)??"",label:((C=s.image)==null?void 0:C.label)??""},price:{currency:((S=s==null?void 0:s.price)==null?void 0:S.currency)??"USD",value:((E=s==null?void 0:s.price)==null?void 0:E.value)??0}}}))??[],giftMessage:{senderName:((l=r==null?void 0:r.gift_message)==null?void 0:l.from)??"",recipientName:((i=r==null?void 0:r.gift_message)==null?void 0:i.to)??"",message:((_=r==null?void 0:r.gift_message)==null?void 0:_.message)??""},errors:cr(r==null?void 0:r.itemsV2),items:N(r==null?void 0:r.itemsV2),miniCartMaxItems:N(r==null?void 0:r.itemsV2).slice(0,((a=o.config)==null?void 0:a.miniCartMaxItemsDisplay)??10),total:{includingTax:{value:r.prices.grand_total.value,currency:r.prices.grand_total.currency},excludingTax:{value:r.prices.grand_total_excluding_tax.value,currency:r.prices.grand_total_excluding_tax.currency}},discount:P(r.prices.discounts,r.prices.grand_total.currency),subtotal:{excludingTax:{value:(f=r.prices.subtotal_excluding_tax)==null?void 0:f.value,currency:(y=r.prices.subtotal_excluding_tax)==null?void 0:y.currency},includingTax:{value:(d=r.prices.subtotal_including_tax)==null?void 0:d.value,currency:(m=r.prices.subtotal_including_tax)==null?void 0:m.currency},includingDiscountOnly:{value:(h=r.prices.subtotal_with_discount_excluding_tax)==null?void 0:h.value,currency:(b=r.prices.subtotal_with_discount_excluding_tax)==null?void 0:b.currency}},appliedTaxes:F(r.prices.applied_taxes),totalTax:P(r.prices.applied_taxes,r.prices.grand_total.currency),appliedDiscounts:F(r.prices.discounts),isVirtual:r.is_virtual,addresses:{shipping:r.shipping_addresses&&or(r)},isGuestCart:!o.authenticated,hasOutOfStockItems:_r(r),hasFullyOutOfStockItems:pr(r),appliedCoupons:r.applied_coupons};return j(n,(T=(t=(x=B.getConfig().models)==null?void 0:x.CartModel)==null?void 0:t.transformer)==null?void 0:T.call(t,r))}function O(r){var n,c,e,u,l,i,_,a,f,y,d,m;return{giftWrappingForItems:{value:((n=r==null?void 0:r.gift_wrapping_for_items)==null?void 0:n.value)??0,currency:((c=r==null?void 0:r.gift_wrapping_for_items)==null?void 0:c.currency)??"USD"},giftWrappingForItemsInclTax:{value:((e=r==null?void 0:r.gift_wrapping_for_items_incl_tax)==null?void 0:e.value)??0,currency:((u=r==null?void 0:r.gift_wrapping_for_items_incl_tax)==null?void 0:u.currency)??"USD"},giftWrappingForOrder:{value:((l=r==null?void 0:r.gift_wrapping_for_order)==null?void 0:l.value)??0,currency:((i=r==null?void 0:r.gift_wrapping_for_order)==null?void 0:i.currency)??"USD"},giftWrappingForOrderInclTax:{value:((_=r==null?void 0:r.gift_wrapping_for_order_incl_tax)==null?void 0:_.value)??0,currency:((a=r==null?void 0:r.gift_wrapping_for_order_incl_tax)==null?void 0:a.currency)??"USD"},printedCard:{value:((f=r==null?void 0:r.printed_card)==null?void 0:f.value)??0,currency:((y=r==null?void 0:r.printed_card)==null?void 0:y.currency)??"USD"},printedCardInclTax:{value:((d=r==null?void 0:r.printed_card_incl_tax)==null?void 0:d.value)??0,currency:((m=r==null?void 0:r.printed_card_incl_tax)==null?void 0:m.currency)??"USD"}}}function P(r,n){return r!=null&&r.length?r.reduce((c,e)=>({value:c.value+e.amount.value,currency:e.amount.currency}),{value:0,currency:n}):{value:0,currency:n}}function H(r,n){var c,e,u,l;return{src:r!=null&&r.useConfigurableParentThumbnail?n.product.thumbnail.url:((e=(c=n.configured_variant)==null?void 0:c.thumbnail)==null?void 0:e.url)||n.product.thumbnail.url,alt:r!=null&&r.useConfigurableParentThumbnail?n.product.thumbnail.label:((l=(u=n.configured_variant)==null?void 0:u.thumbnail)==null?void 0:l.label)||n.product.thumbnail.label}}function J(r){var n,c,e,u;return r.__typename==="ConfigurableCartItem"?{value:(c=(n=r.configured_variant)==null?void 0:n.price_range)==null?void 0:c.maximum_price.regular_price.value,currency:(u=(e=r.configured_variant)==null?void 0:e.price_range)==null?void 0:u.maximum_price.regular_price.currency}:r.__typename==="GiftCardCartItem"?{value:r.prices.price.value,currency:r.prices.price.currency}:{value:r.prices.original_item_price.value,currency:r.prices.original_item_price.currency}}function V(r,n){return r!=null&&r.length&&[...r].sort((e,u)=>u.quantity-e.quantity).find(e=>n>=e.quantity)||null}function Z(r){var i,_;const n=r.quantity,c=r.__typename==="ConfigurableCartItem",e=c?(i=r.configured_variant)==null?void 0:i.price_tiers:r.product.price_tiers,u=c?(_=r.configured_variant)==null?void 0:_.price_range:r.product.price_range,l=V(e,n);return l?l.discount.amount_off>0:(u==null?void 0:u.maximum_price.discount.amount_off)>0}function rr(r){var n,c,e;return{senderName:((n=r==null?void 0:r.gift_message)==null?void 0:n.from)??"",recipientName:((c=r==null?void 0:r.gift_message)==null?void 0:c.to)??"",message:((e=r==null?void 0:r.gift_message)==null?void 0:e.message)??""}}function er(r){return{currency:(r==null?void 0:r.currency)??"USD",value:(r==null?void 0:r.value)??0}}function N(r){var c;if(!((c=r==null?void 0:r.items)!=null&&c.length))return[];const n=o.config;return r.items.map(e=>{var u,l,i,_,a,f,y,d,m,h,b,x;return{giftWrappingAvailable:((u=e==null?void 0:e.product)==null?void 0:u.gift_wrapping_available)??!1,giftWrappingPrice:er((l=e==null?void 0:e.product)==null?void 0:l.gift_wrapping_price),giftMessage:rr(e),productGiftWrapping:((i=e==null?void 0:e.available_gift_wrapping)==null?void 0:i.map(t=>{var T,s,p,v,C;return{design:t.design??"",uid:t.uid,selected:((T=e.gift_wrapping)==null?void 0:T.uid)===t.uid,image:{url:((s=t==null?void 0:t.image)==null?void 0:s.url)??"",label:((p=t.image)==null?void 0:p.label)??""},price:{currency:((v=t==null?void 0:t.price)==null?void 0:v.currency)??"USD",value:((C=t==null?void 0:t.price)==null?void 0:C.value)??0}}}))??[],itemType:e.__typename,uid:e.uid,giftMessageAvailable:nr(e.product.gift_message_available),url:{urlKey:e.product.url_key,categories:e.product.categories.map(t=>t.url_key)},canonicalUrl:e.product.canonical_url,categories:e.product.categories.map(t=>t.name),priceTiers:e.__typename==="ConfigurableCartItem"?((a=(_=e.configured_variant)==null?void 0:_.price_tiers)==null?void 0:a.map(t=>t))||[]:((f=e.product.price_tiers)==null?void 0:f.map(t=>t))||[],quantity:e.quantity,sku:fr(e),topLevelSku:e.product.sku,name:e.product.name,image:H(n,e),price:{value:e.prices.price.value,currency:e.prices.price.currency},taxedPrice:{value:e.prices.price_including_tax.value,currency:e.prices.price_including_tax.currency},fixedProductTaxes:e.prices.fixed_product_taxes,rowTotal:{value:e.prices.row_total.value,currency:e.prices.row_total.currency},rowTotalIncludingTax:{value:e.prices.row_total_including_tax.value,currency:e.prices.row_total_including_tax.currency},links:sr(e.links),total:{value:(y=e.prices.original_row_total)==null?void 0:y.value,currency:(d=e.prices.original_row_total)==null?void 0:d.currency},discount:{value:e.prices.total_item_discount.value,currency:e.prices.total_item_discount.currency,label:(m=e.prices.discounts)==null?void 0:m.map(t=>t.label)},regularPrice:J(e),discounted:Z(e),bundleOptions:e.__typename==="BundleCartItem"?ur(e.bundle_options):null,bundleOptionsUIDs:e.__typename==="BundleCartItem"?lr(e.bundle_options):null,selectedOptions:(h=q(e.configurable_options))==null?void 0:h.options,selectedOptionsUIDs:(b=q(e.configurable_options))==null?void 0:b.uids,customizableOptions:ir(e.customizable_options),sender:e.__typename==="GiftCardCartItem"?e.sender_name:null,senderEmail:e.__typename==="GiftCardCartItem"?e.sender_email:null,recipient:e.__typename==="GiftCardCartItem"?e.recipient_name:null,recipientEmail:e.__typename==="GiftCardCartItem"?e.recipient_email:null,message:e.__typename==="GiftCardCartItem"?e.message:null,discountedTotal:{value:e.prices.row_total.value,currency:e.prices.row_total.currency},onlyXLeftInStock:e.__typename==="ConfigurableCartItem"?(x=e.configured_variant)==null?void 0:x.only_x_left_in_stock:e.product.only_x_left_in_stock,lowInventory:e.is_available&&e.product.only_x_left_in_stock!==null,insufficientQuantity:(e.__typename==="ConfigurableCartItem"?e.configured_variant:e.product).stock_status==="IN_STOCK"&&!e.is_available,outOfStock:e.product.stock_status==="OUT_OF_STOCK",stockLevel:ar(e),discountPercentage:gr(e),savingsAmount:yr(e),productAttributes:dr(e)}})}function nr(r){switch(+r){case 0:return!1;case 1:return!0;case 2:return null;default:return!1}}function cr(r){var c;const n=(c=r==null?void 0:r.items)==null?void 0:c.reduce((e,u)=>{var l;return(l=u.errors)==null||l.forEach(i=>{e.push({uid:u.uid,text:i.message})}),e},[]);return n!=null&&n.length?n:null}function F(r){return r!=null&&r.length?r.map(n=>({amount:{value:n.amount.value,currency:n.amount.currency},label:n.label,coupon:n.coupon})):[]}function ur(r){const n=r==null?void 0:r.map(e=>({uid:e.uid,label:e.label,value:e.values.map(u=>u.label).join(", ")})),c={};return n==null||n.forEach(e=>{c[e.label]=e.value}),Object.keys(c).length>0?c:null}function lr(r){if(!(r!=null&&r.length))return null;const n=[];return r.forEach(c=>{var e;if((e=c.values)!=null&&e.length){const u=c.values.map(l=>l.uid);n.push(...u)}}),n.length>0?n:null}function q(r){const n=r==null?void 0:r.map(u=>({uid:u.configurable_product_option_uid,label:u.option_label,value:u.value_label,valueUid:u.configurable_product_option_value_uid})),c={},e={};return n==null||n.forEach(u=>{c[u.label]=u.value,e[u.label]=u.valueUid}),{options:Object.keys(c).length>0?c:null,uids:Object.keys(e).length>0?e:null}}function ir(r){const n=r==null?void 0:r.map(e=>({uid:e.customizable_option_uid,label:e.label,type:e.type,values:e.values.map(u=>({uid:u.customizable_option_value_uid,label:u.label,value:u.value}))})),c={};return n==null||n.forEach(e=>{var u;switch(e.type){case"field":case"area":case"date_time":c[e.label]=e.values[0].value;break;case"radio":case"drop_down":c[e.label]=e.values[0].label;break;case"multiple":case"checkbox":c[e.label]=e.values.reduce((l,i)=>l?`${l}, ${i.label}`:i.label,"");break;case"file":{const l=new DOMParser,i=e.values[0].value,a=((u=l.parseFromString(i,"text/html").querySelector("a"))==null?void 0:u.textContent)||"";c[e.label]=a;break}}}),c}function tr(r){var n,c;return((n=o.config)==null?void 0:n.cartSummaryDisplayTotal)===0?r.itemsV2.items.length:((c=o.config)==null?void 0:c.cartSummaryDisplayTotal)===1?r.total_quantity:r.itemsV2.items.length}function sr(r){return(r==null?void 0:r.length)>0?{count:r.length,result:r.map(n=>n.title).join(", ")}:null}function or(r){var n,c,e,u;return(n=r.shipping_addresses)!=null&&n.length?(c=r.shipping_addresses)==null?void 0:c.map(l=>({countryCode:l.country.code,zipCode:l.postcode,regionCode:l.region.code})):(e=r.addresses)!=null&&e.length?(u=r.addresses)==null?void 0:u.filter(l=>l.default_shipping).map(l=>{var i;return l.default_shipping&&{countryCode:l.country_code,zipCode:l.postcode,regionCode:(i=l.region)==null?void 0:i.region_code}}):null}function _r(r){var n,c;return(c=(n=r==null?void 0:r.itemsV2)==null?void 0:n.items)==null?void 0:c.some(e=>{var u;return((u=e==null?void 0:e.product)==null?void 0:u.stock_status)==="OUT_OF_STOCK"||e.product.stock_status==="IN_STOCK"&&!e.is_available})}function ar(r){return r.not_available_message?r.product.quantity!=null?r.product.quantity:"noNumber":null}function pr(r){var n,c;return(c=(n=r==null?void 0:r.itemsV2)==null?void 0:n.items)==null?void 0:c.some(e=>{var u;return((u=e==null?void 0:e.product)==null?void 0:u.stock_status)==="OUT_OF_STOCK"})}function gr(r){var u,l,i,_,a,f,y,d;const n=r.quantity,c=V(r.product.price_tiers,n);if(c)return Math.round(c.discount.percent_off);let e;if(r.__typename==="ConfigurableCartItem")e=(_=(i=(l=(u=r==null?void 0:r.configured_variant)==null?void 0:u.price_range)==null?void 0:l.maximum_price)==null?void 0:i.discount)==null?void 0:_.percent_off;else{if(r.__typename==="BundleCartItem")return;e=(d=(y=(f=(a=r==null?void 0:r.product)==null?void 0:a.price_range)==null?void 0:f.maximum_price)==null?void 0:y.discount)==null?void 0:d.percent_off}if(e!==0)return Math.round(e)}function fr(r){var n;return r.__typename==="ConfigurableCartItem"?r.configured_variant.sku:((n=r.product)==null?void 0:n.variantSku)||r.product.sku}function yr(r){var e,u,l,i,_,a;let n,c;if(n=((u=(e=r==null?void 0:r.prices)==null?void 0:e.original_row_total)==null?void 0:u.value)-((i=(l=r==null?void 0:r.prices)==null?void 0:l.row_total)==null?void 0:i.value),c=(a=(_=r==null?void 0:r.prices)==null?void 0:_.row_total)==null?void 0:a.currency,n!==0)return{value:n,currency:c}}function dr(r){var n,c,e;return(e=(c=(n=r==null?void 0:r.product)==null?void 0:n.custom_attributesV2)==null?void 0:c.items)==null?void 0:e.map(u=>{const l=u.code.split("_").map(i=>i.charAt(0).toUpperCase()+i.slice(1)).join(" ");return{...u,code:l}})}function mr(r){var e,u;if(!r)return null;const n=l=>{switch(l){case 1:return"EXCLUDING_TAX";case 2:return"INCLUDING_TAX";case 3:return"INCLUDING_EXCLUDING_TAX";default:return"EXCLUDING_TAX"}},c=l=>{switch(+l){case 0:return!1;case 1:return!0;case 2:return null;default:return!1}};return{displayMiniCart:r.minicart_display,miniCartMaxItemsDisplay:r.minicart_max_items,cartExpiresInDays:r.cart_expires_in_days,cartSummaryDisplayTotal:r.cart_summary_display_quantity,cartSummaryMaxItems:r.max_items_in_order_summary,defaultCountry:r.default_country,categoryFixedProductTaxDisplaySetting:r.category_fixed_product_tax_display_setting,productFixedProductTaxDisplaySetting:r.product_fixed_product_tax_display_setting,salesFixedProductTaxDisplaySetting:r.sales_fixed_product_tax_display_setting,shoppingCartDisplaySetting:{zeroTax:r.shopping_cart_display_zero_tax,subtotal:n(r.shopping_cart_display_subtotal),price:n(r.shopping_cart_display_price),shipping:n(r.shopping_cart_display_shipping),fullSummary:r.shopping_cart_display_full_summary,grandTotal:r.shopping_cart_display_grand_total,taxGiftWrapping:r.shopping_cart_display_tax_gift_wrapping},useConfigurableParentThumbnail:r.configurable_thumbnail_source==="parent",allowGiftWrappingOnOrder:c(r==null?void 0:r.allow_gift_wrapping_on_order),allowGiftWrappingOnOrderItems:c(r==null?void 0:r.allow_gift_wrapping_on_order_items),allowGiftMessageOnOrder:c(r==null?void 0:r.allow_order),allowGiftMessageOnOrderItems:c(r==null?void 0:r.allow_items),allowGiftReceipt:!!+(r==null?void 0:r.allow_gift_receipt),allowPrintedCard:!!+(r==null?void 0:r.allow_printed_card),printedCardPrice:{currency:((e=r==null?void 0:r.printed_card_priceV2)==null?void 0:e.currency)??"",value:((u=r==null?void 0:r.printed_card_priceV2)==null?void 0:u.value)!=null?+r.printed_card_priceV2.value:0},cartGiftWrapping:n(+r.cart_gift_wrapping),cartPrintedCard:n(+r.cart_printed_card)}}const vr=`
|
|
4
4
|
fragment CUSTOMER_FRAGMENT on Customer {
|
|
5
5
|
addresses {
|
|
6
6
|
default_shipping
|
|
@@ -26,7 +26,7 @@ import{s as o,d as X,f as I,h as G}from"./resetCart.js";import{events as g}from"
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
${
|
|
29
|
+
${A}
|
|
30
30
|
`,hr=`
|
|
31
31
|
query CUSTOMER_CART_QUERY(
|
|
32
32
|
$pageSize: Int! = 100,
|
|
@@ -44,8 +44,8 @@ import{s as o,d as X,f as I,h as G}from"./resetCart.js";import{events as g}from"
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
${vr}
|
|
47
|
-
${
|
|
48
|
-
`,
|
|
47
|
+
${A}
|
|
48
|
+
`,G=async()=>{const r=o.authenticated,n=o.cartId;if(r)return I(hr,{method:"POST"}).then(({errors:c,data:e})=>{if(c)return U(c);const u={...e.cart,...e.customer};return k(u)});if(!n)throw new Error("No cart ID found");return I(Cr,{method:"POST",cache:"no-cache",variables:{cartId:n}}).then(({errors:c,data:e})=>c?U(c):k(e.cart))},br=`
|
|
49
49
|
mutation MERGE_CARTS_MUTATION(
|
|
50
50
|
$guestCartId: String!,
|
|
51
51
|
$customerCartId: String!,
|
|
@@ -61,8 +61,8 @@ import{s as o,d as X,f as I,h as G}from"./resetCart.js";import{events as g}from"
|
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
${
|
|
65
|
-
`,D=async()=>{if(o.initializing)return null;o.initializing=!0,o.config||(o.config=await Tr());const r=o.authenticated?await Q():await W();return g.emit("cart/initialized",r),g.emit("cart/data",r),o.initializing=!1,r};async function Q(){const r=o.cartId,n=await
|
|
64
|
+
${A}
|
|
65
|
+
`,D=async()=>{if(o.initializing)return null;o.initializing=!0,o.config||(o.config=await Tr());const r=o.authenticated?await Q():await W();return g.emit("cart/initialized",r),g.emit("cart/data",r),o.initializing=!1,r};async function Q(){const r=o.cartId,n=await G();return n?(o.cartId=n.id,!r||n.id===r?n:await I(br,{variables:{guestCartId:r,customerCartId:n.id}}).then(()=>G()).then(c=>{const e={oldCartItems:n.items,newCart:c};return g.emit("cart/merged",e),c}).catch(()=>(console.error("Could not merge carts"),n))):null}async function W(){if(B.getConfig().disableGuestCart===!0||!o.cartId)return null;try{return await G()}catch(r){return console.error(r),null}}const xr=`
|
|
66
66
|
query STORE_CONFIG_QUERY {
|
|
67
67
|
storeConfig {
|
|
68
68
|
minicart_display
|
|
@@ -96,5 +96,5 @@ query STORE_CONFIG_QUERY {
|
|
|
96
96
|
cart_printed_card
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
-
`,Tr=async()=>I(xr,{method:"GET",cache:"force-cache"}).then(({errors:r,data:n})=>r?
|
|
99
|
+
`,Tr=async()=>I(xr,{method:"GET",cache:"force-cache"}).then(({errors:r,data:n})=>r?U(r):mr(n.storeConfig)),$=async()=>{const r=o.authenticated?await Q():await W();return g.emit("cart/data",r),r};export{D as a,Q as b,B as c,W as d,Tr as e,G as g,z as i,$ as r,k as t};
|
|
100
100
|
//# sourceMappingURL=refreshCart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refreshCart.js","sources":["/@dropins/storefront-cart/src/api/initialize/initialize.ts","/@dropins/storefront-cart/src/data/transforms/transform-cart.ts","/@dropins/storefront-cart/src/data/transforms/transform-store-config.ts","/@dropins/storefront-cart/src/api/graphql/CustomerAccountFragment.ts","/@dropins/storefront-cart/src/api/getCartData/graphql/CartQuery.ts","/@dropins/storefront-cart/src/api/getCartData/getCartData.ts","/@dropins/storefront-cart/src/api/initializeCart/graphql/MergeCartsMutation.ts","/@dropins/storefront-cart/src/api/initializeCart/initializeCart.ts","/@dropins/storefront-cart/src/api/getStoreConfig/graphql/StoreConfigQuery.ts","/@dropins/storefront-cart/src/api/getStoreConfig/getStoreConfig.ts","/@dropins/storefront-cart/src/api/refreshCart/refreshCart.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { Initializer, Model } from '@adobe-commerce/elsie/lib';\nimport { initializeCart, refreshCart, resetCart } from '@/cart/api';\nimport { state } from '@/cart/lib/state';\nimport { events } from '@adobe-commerce/event-bus';\nimport { Lang } from '@adobe-commerce/elsie/i18n';\nimport { setPersistedCartData } from '@/cart/lib/persisted-data';\nimport { CartModel } from '@/cart/data/models';\n\ntype ConfigProps = {\n disableGuestCart?: boolean;\n langDefinitions?: Lang;\n\n models?: {\n CartModel?: Model<CartModel>;\n };\n};\n\nexport const initialize = new Initializer<ConfigProps>({\n init: async (_config) => {\n const config = { disableGuestCart: false, ..._config };\n\n // Set config\n initialize.config.setConfig(config);\n\n initializeCart().catch(console.error);\n },\n\n listeners: () => [\n events.on(\n 'authenticated',\n (authenticated) => {\n if (state.authenticated && !authenticated) {\n // Reset cart if the user is no longer authenticated\n events.emit('cart/reset', undefined);\n }\n // Login event occurred\n else if (authenticated && !state.authenticated) {\n state.authenticated = authenticated;\n initializeCart().catch(console.error);\n }\n },\n { eager: true }\n ),\n\n events.on('locale', async (locale) => {\n if (locale !== state.locale) {\n state.locale = locale;\n initializeCart().catch(console.error);\n }\n }),\n\n events.on('cart/reset', () => {\n resetCart().catch(console.error);\n events.emit('cart/data', null);\n }),\n\n events.on('cart/data', (payload) => {\n setPersistedCartData(payload);\n }),\n\n events.on('checkout/updated', (payload) => {\n if (!payload || payload?.type === 'quote') return;\n\n refreshCart().catch(console.error);\n }),\n\n events.on('companyContext/changed', () => {\n refreshCart().catch(console.error);\n }),\n events.on('requisitionList/alert', () => {\n refreshCart().catch(console.error);\n }),\n ],\n});\n\nexport const config = initialize.config;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { merge } from '@adobe-commerce/elsie/lib';\nimport { CartModel, StoreConfigModel } from '@/cart/data/models';\nimport { state } from '@/cart/lib/state';\nimport { config } from '@/cart/api';\n\nexport function transformCart(data: any): CartModel | null {\n if (!data) return null;\n\n const model = {\n appliedGiftCards:\n data?.applied_gift_cards?.map((giftCard: any) => {\n const giftCartState = {\n code: giftCard.code ?? '',\n appliedBalance: {\n value: giftCard.applied_balance.value ?? 0,\n currency: giftCard.applied_balance.currency ?? 'USD',\n },\n currentBalance: {\n value: giftCard.current_balance.value ?? 0,\n currency: giftCard.current_balance.currency ?? 'USD',\n },\n expirationDate: giftCard.expiration_date ?? '',\n };\n\n const currentBalanceValue = giftCartState?.currentBalance?.value;\n const appliedBalanceValue = giftCartState?.appliedBalance?.value;\n const currency = giftCartState?.currentBalance?.currency;\n\n const hasBalanceDifference =\n currentBalanceValue - appliedBalanceValue > 0;\n\n const value = hasBalanceDifference\n ? currentBalanceValue - appliedBalanceValue\n : 0;\n\n return {\n ...giftCartState,\n giftCardBalance: { value, currency },\n };\n }) ?? [],\n id: data.id,\n totalQuantity: transformQuantity(data),\n totalUniqueItems: data.itemsV2.items.length,\n totalGiftOptions: transformGiftOptions(data?.prices?.gift_options),\n giftReceiptIncluded: data?.gift_receipt_included ?? false,\n printedCardIncluded: data?.printed_card_included ?? false,\n cartGiftWrapping:\n data?.available_gift_wrappings?.map((wrapItem: any) => {\n return {\n design: wrapItem.design ?? '',\n uid: wrapItem.uid,\n selected: data?.gift_wrapping?.uid === wrapItem.uid,\n image: {\n url: wrapItem?.image?.url ?? '',\n label: wrapItem.image?.label ?? '',\n },\n price: {\n currency: wrapItem?.price?.currency ?? 'USD',\n value: wrapItem?.price?.value ?? 0,\n },\n };\n }) ?? [],\n giftMessage: {\n senderName: data?.gift_message?.from ?? '',\n recipientName: data?.gift_message?.to ?? '',\n message: data?.gift_message?.message ?? '',\n },\n errors: transformErrors(data?.itemsV2),\n items: transformItems(data?.itemsV2),\n miniCartMaxItems: transformItems(data?.itemsV2).slice(\n 0,\n state.config?.miniCartMaxItemsDisplay ?? 10\n ),\n total: {\n includingTax: {\n value: data.prices.grand_total.value,\n currency: data.prices.grand_total.currency,\n },\n excludingTax: {\n value: data.prices.grand_total_excluding_tax.value,\n currency: data.prices.grand_total_excluding_tax.currency,\n },\n },\n discount: calculateTotal(\n data.prices.discounts,\n data.prices.grand_total.currency\n ),\n subtotal: {\n excludingTax: {\n value: data.prices.subtotal_excluding_tax?.value,\n currency: data.prices.subtotal_excluding_tax?.currency,\n },\n includingTax: {\n value: data.prices.subtotal_including_tax?.value,\n currency: data.prices.subtotal_including_tax?.currency,\n },\n includingDiscountOnly: {\n value: data.prices.subtotal_with_discount_excluding_tax?.value,\n currency: data.prices.subtotal_with_discount_excluding_tax?.currency,\n },\n },\n appliedTaxes: transformTotalPriceModifiers(data.prices.applied_taxes),\n totalTax: calculateTotal(\n data.prices.applied_taxes,\n data.prices.grand_total.currency\n ),\n appliedDiscounts: transformTotalPriceModifiers(data.prices.discounts),\n isVirtual: data.is_virtual,\n addresses: {\n shipping: data.shipping_addresses && transformAddresses(data),\n },\n isGuestCart: !state.authenticated,\n hasOutOfStockItems: transformOutOfStockItems(data),\n hasFullyOutOfStockItems: transformFullyOutOfStockItems(data),\n appliedCoupons: data.applied_coupons,\n };\n\n // extend the model with custom transformer\n return merge(\n model,\n config.getConfig().models?.CartModel?.transformer?.(data)\n );\n}\n\nfunction transformGiftOptions(giftOptions: any) {\n return {\n giftWrappingForItems: {\n value: giftOptions?.gift_wrapping_for_items?.value ?? 0,\n currency: giftOptions?.gift_wrapping_for_items?.currency ?? 'USD',\n },\n giftWrappingForItemsInclTax: {\n value: giftOptions?.gift_wrapping_for_items_incl_tax?.value ?? 0,\n currency:\n giftOptions?.gift_wrapping_for_items_incl_tax?.currency ?? 'USD',\n },\n giftWrappingForOrder: {\n value: giftOptions?.gift_wrapping_for_order?.value ?? 0,\n currency: giftOptions?.gift_wrapping_for_order?.currency ?? 'USD',\n },\n giftWrappingForOrderInclTax: {\n value: giftOptions?.gift_wrapping_for_order_incl_tax?.value ?? 0,\n currency:\n giftOptions?.gift_wrapping_for_order_incl_tax?.currency ?? 'USD',\n },\n printedCard: {\n value: giftOptions?.printed_card?.value ?? 0,\n currency: giftOptions?.printed_card?.currency ?? 'USD',\n },\n printedCardInclTax: {\n value: giftOptions?.printed_card_incl_tax?.value ?? 0,\n currency: giftOptions?.printed_card_incl_tax?.currency ?? 'USD',\n },\n };\n}\n\n// Need to calculate total amount since it's not provided by GraphQL\nfunction calculateTotal(data: any[], currency: string) {\n if (!data?.length)\n return {\n value: 0,\n currency,\n };\n\n return data.reduce(\n (acc: any, item: any) => {\n return {\n value: acc.value + item.amount.value,\n currency: item.amount.currency,\n };\n },\n { value: 0, currency }\n );\n}\n\nfunction getImage(config: StoreConfigModel | null | undefined, item: any) {\n return {\n // Use parent thumbnail if configured, otherwise use own variant. use the parent thumbnail as a fallback\n src: config?.useConfigurableParentThumbnail\n ? item.product.thumbnail.url\n : item.configured_variant?.thumbnail?.url || item.product.thumbnail.url,\n alt: config?.useConfigurableParentThumbnail\n ? item.product.thumbnail.label\n : item.configured_variant?.thumbnail?.label ||\n item.product.thumbnail.label,\n };\n}\n\nfunction getRegularPrice(item: any) {\n if (item.__typename === 'ConfigurableCartItem') {\n return {\n value:\n item.configured_variant?.price_range?.maximum_price.regular_price.value,\n currency:\n item.configured_variant?.price_range?.maximum_price.regular_price\n .currency,\n };\n }\n if (item.__typename === 'GiftCardCartItem') {\n return {\n value: item.prices.price.value,\n currency: item.prices.price.currency,\n };\n }\n return {\n value: item.prices.original_item_price.value,\n currency: item.prices.original_item_price.currency,\n };\n}\n\n/**\n * Finds the most applicable price tier for a given quantity\n * @param priceTiers - Array of price tier objects\n * @param quantity - Current item quantity\n * @returns The applicable tier or null if none found\n */\nfunction findApplicablePriceTier(priceTiers: any[], quantity: number) {\n if (!priceTiers?.length) return null;\n\n // Sort price tiers by quantity in descending order to find the highest applicable tier\n const sortedTiers = [...priceTiers].sort(\n (a: any, b: any) => b.quantity - a.quantity\n );\n\n // Find the highest tier where the current quantity meets or exceeds the tier's minimum quantity\n return sortedTiers.find((tier: any) => quantity >= tier.quantity) || null;\n}\n\nfunction getDiscounted(item: any) {\n const quantity = item.quantity;\n const isConfigurable = item.__typename === 'ConfigurableCartItem';\n\n // Get price tiers and price range based on item type\n const priceTiers = isConfigurable\n ? item.configured_variant?.price_tiers\n : item.product.price_tiers;\n const priceRange = isConfigurable\n ? item.configured_variant?.price_range\n : item.product.price_range;\n\n // Check price tiers first for discount eligibility\n const applicableTier = findApplicablePriceTier(priceTiers, quantity);\n if (applicableTier) {\n return applicableTier.discount.amount_off > 0;\n }\n\n // Fallback to regular price range discount\n return priceRange?.maximum_price.discount.amount_off > 0;\n}\n\nfunction transformGiftMessage(data: any) {\n return {\n senderName: data?.gift_message?.from ?? '',\n recipientName: data?.gift_message?.to ?? '',\n message: data?.gift_message?.message ?? '',\n };\n}\n\nfunction transformWrappingPrice(data: any) {\n return {\n currency: data?.currency ?? 'USD',\n value: data?.value ?? 0,\n };\n}\n\nfunction transformItems(data: any) {\n if (!data?.items?.length) return [];\n\n const config = state.config;\n\n return data.items.map((item: any) => ({\n giftWrappingAvailable: item?.product?.gift_wrapping_available ?? false,\n giftWrappingPrice: transformWrappingPrice(\n item?.product?.gift_wrapping_price\n ),\n giftMessage: transformGiftMessage(item),\n productGiftWrapping:\n item?.available_gift_wrapping?.map((wrapItem: any) => {\n return {\n design: wrapItem.design ?? '',\n uid: wrapItem.uid,\n selected: item.gift_wrapping?.uid === wrapItem.uid,\n image: {\n url: wrapItem?.image?.url ?? '',\n label: wrapItem.image?.label ?? '',\n },\n price: {\n currency: wrapItem?.price?.currency ?? 'USD',\n value: wrapItem?.price?.value ?? 0,\n },\n };\n }) ?? [],\n itemType: item.__typename,\n uid: item.uid,\n giftMessageAvailable: transformGiftOptionsCode(\n item.product.gift_message_available\n ),\n url: {\n urlKey: item.product.url_key,\n categories: item.product.categories.map(\n (category: any) => category.url_key\n ),\n },\n canonicalUrl: item.product.canonical_url,\n categories: item.product.categories.map((category: any) => category.name),\n priceTiers:\n item.__typename === 'ConfigurableCartItem'\n ? item.configured_variant?.price_tiers?.map(\n (priceTier: any) => priceTier\n ) || []\n : item.product.price_tiers?.map((priceTier: any) => priceTier) || [],\n quantity: item.quantity,\n sku: transformSKU(item),\n topLevelSku: item.product.sku,\n name: item.product.name,\n image: getImage(config, item),\n price: {\n value: item.prices.price.value,\n currency: item.prices.price.currency,\n },\n taxedPrice: {\n value: item.prices.price_including_tax.value,\n currency: item.prices.price_including_tax.currency,\n },\n fixedProductTaxes: item.prices.fixed_product_taxes,\n rowTotal: {\n value: item.prices.row_total.value,\n currency: item.prices.row_total.currency,\n },\n rowTotalIncludingTax: {\n value: item.prices.row_total_including_tax.value,\n currency: item.prices.row_total_including_tax.currency,\n },\n links: transformLinks(item.links),\n total: {\n value: item.prices.original_row_total?.value,\n currency: item.prices.original_row_total?.currency,\n },\n discount: {\n value: item.prices.total_item_discount.value,\n currency: item.prices.total_item_discount.currency,\n label: item.prices.discounts?.map((discount: any) => discount.label),\n },\n regularPrice: getRegularPrice(item),\n discounted: getDiscounted(item),\n bundleOptions:\n item.__typename === 'BundleCartItem'\n ? transformBundleOptions(item.bundle_options)\n : null,\n bundleOptionsUIDs:\n item.__typename === 'BundleCartItem'\n ? extractBundleOptionUIDs(item.bundle_options)\n : null,\n selectedOptions: transformSelectedOptions(item.configurable_options)\n ?.options,\n selectedOptionsUIDs: transformSelectedOptions(item.configurable_options)\n ?.uids,\n customizableOptions: transformCustomizableOptions(\n item.customizable_options\n ),\n sender: item.__typename === 'GiftCardCartItem' ? item.sender_name : null,\n senderEmail:\n item.__typename === 'GiftCardCartItem' ? item.sender_email : null,\n recipient:\n item.__typename === 'GiftCardCartItem' ? item.recipient_name : null,\n recipientEmail:\n item.__typename === 'GiftCardCartItem' ? item.recipient_email : null,\n message: item.__typename === 'GiftCardCartItem' ? item.message : null,\n\n discountedTotal: {\n value: item.prices.row_total.value,\n currency: item.prices.row_total.currency,\n },\n\n onlyXLeftInStock:\n item.__typename === 'ConfigurableCartItem'\n ? item.configured_variant?.only_x_left_in_stock\n : item.product.only_x_left_in_stock,\n lowInventory:\n item.is_available && item.product.only_x_left_in_stock !== null,\n insufficientQuantity:\n (item.__typename === 'ConfigurableCartItem'\n ? item.configured_variant\n : item.product\n ).stock_status === 'IN_STOCK' && !item.is_available,\n outOfStock: item.product.stock_status === 'OUT_OF_STOCK',\n stockLevel: transformStockLevel(item),\n // Add support for BundleCartItem\n discountPercentage: transformDiscountPercentage(item),\n savingsAmount: transformDiscountAmount(item),\n productAttributes: transformProductAttributes(item),\n }));\n}\n\n// This helper follows the approach used in the store configuration GraphQL schema for Gift Messages,\n// where a `null` value represents the \"use system value\" option. It requires special processing\n// based on both global and product-level configurations\nfunction transformGiftOptionsCode(data: string) {\n switch (+data) {\n case 0:\n return false;\n case 1:\n return true;\n case 2:\n return null;\n default:\n return false;\n }\n}\n\nfunction transformErrors(data: any) {\n const result = data?.items?.reduce((acc: any, item: any) => {\n item.errors?.forEach((error: Error) => {\n acc.push({ uid: item.uid, text: error.message });\n });\n\n return acc;\n }, []);\n\n return result?.length ? result : null;\n}\n\nfunction transformTotalPriceModifiers(data: any) {\n if (!data?.length) return [];\n\n return data.map((item: any) => ({\n amount: {\n value: item.amount.value,\n currency: item.amount.currency,\n },\n label: item.label,\n coupon: item.coupon,\n }));\n}\n\nfunction transformBundleOptions(data: any) {\n const bundle = data?.map((option: any) => ({\n uid: option.uid,\n label: option.label,\n value: option.values.map((value: any) => value.label).join(', '),\n }));\n\n const bundleOptions: { [key: string]: any } = {};\n\n bundle?.forEach((option: any) => {\n bundleOptions[option.label] = option.value;\n });\n\n return Object.keys(bundleOptions).length > 0 ? bundleOptions : null;\n}\n\nfunction extractBundleOptionUIDs(data: any) {\n if (!data?.length) return null;\n\n const allUIDs: string[] = [];\n data.forEach((option: any) => {\n if (option.values?.length) {\n const valueUIDs = option.values.map((value: any) => value.uid);\n allUIDs.push(...valueUIDs);\n }\n });\n\n return allUIDs.length > 0 ? allUIDs : null;\n}\n\nfunction transformSelectedOptions(data: any) {\n const selected = data?.map((option: any) => ({\n uid: option.configurable_product_option_uid,\n label: option.option_label,\n value: option.value_label,\n valueUid: option.configurable_product_option_value_uid,\n }));\n\n const selectedOptions: { [key: string]: any } = {};\n const selectedOptionsUIDs: { [key: string]: any } = {};\n\n selected?.forEach((option: any) => {\n selectedOptions[option.label] = option.value;\n selectedOptionsUIDs[option.label] = option.valueUid;\n });\n\n return {\n options: Object.keys(selectedOptions).length > 0 ? selectedOptions : null,\n uids:\n Object.keys(selectedOptionsUIDs).length > 0 ? selectedOptionsUIDs : null,\n };\n}\n\nfunction transformCustomizableOptions(data: any) {\n const transformedOptions = data?.map((option: any) => ({\n uid: option.customizable_option_uid,\n label: option.label,\n type: option.type,\n values: option.values.map((value: any) => ({\n uid: value.customizable_option_value_uid,\n label: value.label,\n value: value.value,\n })),\n }));\n\n const result: { [key: string]: any } = {};\n\n transformedOptions?.forEach((option: any) => {\n switch (option.type) {\n case 'field':\n case 'area':\n case 'date_time':\n result[option.label] = option.values[0].value;\n break;\n case 'radio':\n case 'drop_down':\n result[option.label] = option.values[0].label;\n break;\n case 'multiple':\n case 'checkbox':\n result[option.label] = (option.values as Array<any>).reduce(\n (previous, current) => {\n if (previous) return `${previous}, ${current.label}`;\n return current.label;\n },\n ''\n );\n break;\n case 'file': {\n const parser = new DOMParser();\n const fileAnchorElementHtml = option.values[0].value;\n const doc = parser.parseFromString(fileAnchorElementHtml, 'text/html');\n const anchorText = doc.querySelector('a')?.textContent || '';\n result[option.label] = anchorText;\n break;\n }\n }\n });\n return result;\n}\n\nfunction transformQuantity(data: any) {\n if (state.config?.cartSummaryDisplayTotal === 0)\n return data.itemsV2.items.length;\n if (state.config?.cartSummaryDisplayTotal === 1) return data.total_quantity;\n // Default to items count if unexpected config value or error returned\n return data.itemsV2.items.length;\n}\n\nfunction transformLinks(links: any) {\n return links?.length > 0\n ? {\n count: links.length,\n result: links.map((link: any) => link.title).join(', '),\n }\n : null;\n}\n\nfunction transformAddresses(data: any) {\n //Shipping Address bound to cart\n if (data.shipping_addresses?.length) {\n return data.shipping_addresses?.map((address: any) => ({\n countryCode: address.country.code,\n zipCode: address.postcode,\n regionCode: address.region.code,\n }));\n //Shipping Address bound to customer\n } else if (data.addresses?.length) {\n return data.addresses\n ?.filter((address: any) => address.default_shipping)\n .map(\n (address: any) =>\n address.default_shipping && {\n countryCode: address.country_code,\n zipCode: address.postcode,\n regionCode: address.region?.region_code,\n }\n );\n }\n\n return null;\n}\n\nfunction transformOutOfStockItems(data: any) {\n return data?.itemsV2?.items?.some(\n (item: any) =>\n item?.product?.stock_status === 'OUT_OF_STOCK' ||\n (item.product.stock_status === 'IN_STOCK' && !item.is_available)\n );\n}\n\nfunction transformStockLevel(item: any) {\n if (!item.not_available_message) return null;\n\n return item.product.quantity != null ? item.product.quantity : 'noNumber';\n}\n\nfunction transformFullyOutOfStockItems(data: any) {\n return data?.itemsV2?.items?.some(\n (item: any) => item?.product?.stock_status === 'OUT_OF_STOCK'\n );\n}\n\n// Add support for BundleCartItem in USF-1591 after LYNX-599 is completed\nfunction transformDiscountPercentage(data: any) {\n const quantity = data.quantity;\n\n // Check price tiers first for discount percentage\n const applicableTier = findApplicablePriceTier(\n data.product.price_tiers,\n quantity\n );\n\n if (applicableTier) {\n return Math.round(applicableTier.discount.percent_off);\n }\n\n // Fallback to product-specific discount percentage\n let percent_off;\n\n if (data.__typename === 'ConfigurableCartItem') {\n percent_off =\n data?.configured_variant?.price_range?.maximum_price?.discount\n ?.percent_off;\n } else if (data.__typename === 'BundleCartItem') {\n return undefined;\n } else {\n percent_off =\n data?.product?.price_range?.maximum_price?.discount?.percent_off;\n }\n\n if (percent_off === 0) {\n return undefined;\n }\n\n return Math.round(percent_off);\n}\n\n// Add support for returning configured_variant sku for __typename:\"ConfigurableCartItem\"\nfunction transformSKU(item: any) {\n if (item.__typename === 'ConfigurableCartItem') {\n return item.configured_variant.sku;\n }\n\n // If varaintSku is available return it, otherwise return product sku\n return item.product?.variantSku || item.product.sku;\n}\n\nfunction transformDiscountAmount(data: any) {\n let amount_off;\n let currency;\n\n amount_off =\n data?.prices?.original_row_total?.value - data?.prices?.row_total?.value;\n currency = data?.prices?.row_total?.currency;\n\n if (amount_off === 0) {\n return undefined;\n }\n return {\n value: amount_off,\n currency,\n };\n}\n\nfunction transformProductAttributes(item: any) {\n return item?.product?.custom_attributesV2?.items?.map((attribute: any) => {\n const transformedCode = attribute.code\n .split('_')\n .map((word: any) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n\n return {\n ...attribute,\n code: transformedCode,\n };\n });\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { StoreConfigModel } from '@/cart/data/models';\n\nexport function transformStoreConfig(data: any): StoreConfigModel | null {\n if (!data) return null;\n\n const transformTaxDisplaySetting = (taxDisplaySetting: number) => {\n switch (taxDisplaySetting) {\n case 1:\n return 'EXCLUDING_TAX';\n case 2:\n return 'INCLUDING_TAX';\n case 3:\n return 'INCLUDING_EXCLUDING_TAX';\n default:\n return 'EXCLUDING_TAX';\n }\n };\n\n // A `null` value indicates the \"use system value\" option, which requires special handling\n // based on both global and product-level configurations\n const transformGiftOptionsCode = (data: string) => {\n switch (+data) {\n case 0:\n return false;\n case 1:\n return true;\n case 2:\n return null;\n default:\n return false;\n }\n };\n\n return {\n displayMiniCart: data.minicart_display,\n miniCartMaxItemsDisplay: data.minicart_max_items,\n cartExpiresInDays: data.cart_expires_in_days,\n cartSummaryDisplayTotal: data.cart_summary_display_quantity,\n cartSummaryMaxItems: data.max_items_in_order_summary,\n defaultCountry: data.default_country!,\n categoryFixedProductTaxDisplaySetting:\n data.category_fixed_product_tax_display_setting,\n productFixedProductTaxDisplaySetting:\n data.product_fixed_product_tax_display_setting,\n salesFixedProductTaxDisplaySetting:\n data.sales_fixed_product_tax_display_setting,\n shoppingCartDisplaySetting: {\n zeroTax: data.shopping_cart_display_zero_tax,\n subtotal: transformTaxDisplaySetting(data.shopping_cart_display_subtotal),\n price: transformTaxDisplaySetting(data.shopping_cart_display_price),\n shipping: transformTaxDisplaySetting(data.shopping_cart_display_shipping),\n fullSummary: data.shopping_cart_display_full_summary,\n grandTotal: data.shopping_cart_display_grand_total,\n taxGiftWrapping: data.shopping_cart_display_tax_gift_wrapping,\n },\n useConfigurableParentThumbnail:\n data.configurable_thumbnail_source === 'parent',\n allowGiftWrappingOnOrder: transformGiftOptionsCode(\n data?.allow_gift_wrapping_on_order\n ),\n allowGiftWrappingOnOrderItems: transformGiftOptionsCode(\n data?.allow_gift_wrapping_on_order_items\n ),\n allowGiftMessageOnOrder: transformGiftOptionsCode(data?.allow_order),\n allowGiftMessageOnOrderItems: transformGiftOptionsCode(data?.allow_items),\n allowGiftReceipt: Boolean(+data?.allow_gift_receipt),\n allowPrintedCard: Boolean(+data?.allow_printed_card),\n printedCardPrice: {\n currency: data?.printed_card_priceV2?.currency ?? '',\n value:\n data?.printed_card_priceV2?.value != null\n ? +data.printed_card_priceV2.value\n : 0,\n },\n cartGiftWrapping: transformTaxDisplaySetting(+data.cart_gift_wrapping),\n cartPrintedCard: transformTaxDisplaySetting(+data.cart_printed_card),\n };\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const CUSTOMER_ACCOUNT_FRAGMENT = /* GraphQL */ `\n fragment CUSTOMER_FRAGMENT on Customer {\n addresses {\n default_shipping\n country_code\n postcode\n region {\n region\n region_code\n region_id\n }\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { CART_FRAGMENT } from '@/cart/api/graphql/CartFragment';\n\nimport { CUSTOMER_ACCOUNT_FRAGMENT } from '@/cart/api/graphql/CustomerAccountFragment';\n\nexport const GUEST_CART_QUERY = `\n query GUEST_CART_QUERY(\n $cartId: String!,\n $pageSize: Int! = 100,\n $currentPage: Int! = 1,\n $itemsSortInput: QuoteItemsSortInput! = {field: CREATED_AT, order: DESC}\n ) {\n\n cart(cart_id: $cartId){\n ...CART_FRAGMENT\n }\n }\n\n ${CART_FRAGMENT}\n`;\n\nexport const CUSTOMER_CART_QUERY = `\n query CUSTOMER_CART_QUERY(\n $pageSize: Int! = 100,\n $currentPage: Int! = 1,\n $itemsSortInput: QuoteItemsSortInput! = {field: CREATED_AT, order: DESC}\n ) {\n \n customer {\n ...CUSTOMER_FRAGMENT\n }\n\n cart: customerCart {\n ...CART_FRAGMENT\n }\n }\n\n ${CUSTOMER_ACCOUNT_FRAGMENT}\n ${CART_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/cart/api';\nimport { handleFetchError } from '@/cart/lib/fetch-error';\nimport { state } from '@/cart/lib/state';\nimport { CartModel } from '@/cart/data/models';\nimport { transformCart } from '@/cart/data/transforms';\n\nimport { GUEST_CART_QUERY, CUSTOMER_CART_QUERY } from './graphql/CartQuery';\n\nexport const getCartData = async (): Promise<CartModel | null> => {\n const authenticated = state.authenticated;\n const cartId = state.cartId;\n\n // Customer Cart\n if (authenticated) {\n return fetchGraphQl(CUSTOMER_CART_QUERY, { method: 'POST' }).then(\n ({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n const merged = { ...data.cart, ...data.customer };\n\n return transformCart(merged);\n }\n );\n }\n\n // Guest Cart\n if (!cartId) throw new Error('No cart ID found');\n\n return fetchGraphQl(GUEST_CART_QUERY, {\n method: 'POST',\n cache: 'no-cache',\n variables: { cartId },\n }).then(({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n return transformCart(data.cart);\n });\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { CART_FRAGMENT } from '@/cart/api/graphql/CartFragment';\n\nexport const MERGE_CARTS_MUTATION = `\n mutation MERGE_CARTS_MUTATION(\n $guestCartId: String!, \n $customerCartId: String!,\n $pageSize: Int! = 100,\n $currentPage: Int! = 1,\n $itemsSortInput: QuoteItemsSortInput! = {field: CREATED_AT, order: DESC}\n ) {\n mergeCarts(\n source_cart_id: $guestCartId,\n destination_cart_id: $customerCartId\n ) {\n ...CART_FRAGMENT \n }\n }\n\n ${CART_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { events } from '@adobe-commerce/event-bus';\nimport { state } from '@/cart/lib/state';\nimport { config, fetchGraphQl, getCartData, getStoreConfig } from '@/cart/api';\nimport { MERGE_CARTS_MUTATION } from './graphql/MergeCartsMutation';\nimport { CartModel } from '@/cart/data/models';\n\nexport const initializeCart = async (): Promise<CartModel | null> => {\n if (state.initializing) return null;\n\n state.initializing = true;\n\n // set config\n if (!state.config) {\n state.config = await getStoreConfig();\n }\n\n const payload = state.authenticated\n ? await getCustomerCartPayload()\n : await getGuestCartPayload();\n\n events.emit('cart/initialized', payload);\n events.emit('cart/data', payload);\n\n state.initializing = false;\n\n return payload;\n};\n\nexport async function getCustomerCartPayload() {\n const existingCartId = state.cartId;\n\n const cart = await getCartData();\n\n if (!cart) return null;\n\n // set cartid in the state\n state.cartId = cart.id;\n\n // If the existing cart is the same as the fetched cart, return the fetched cart\n if (!existingCartId || cart.id === existingCartId) return cart;\n\n // If the existing cart is not the same as the fetched cart, merge the carts\n return await fetchGraphQl(MERGE_CARTS_MUTATION, {\n variables: {\n guestCartId: existingCartId,\n customerCartId: cart.id,\n },\n })\n .then(() => {\n return getCartData();\n })\n .then((transformedCartData) => {\n const payload = {\n oldCartItems: cart.items,\n newCart: transformedCartData,\n };\n events.emit('cart/merged', payload);\n return transformedCartData;\n })\n .catch(() => {\n // gracefully handle merge error, continue with existing cart\n console.error('Could not merge carts');\n return cart;\n });\n}\n\nexport async function getGuestCartPayload() {\n // If guest cart is not enabled, return null\n if (config.getConfig().disableGuestCart === true) {\n return null;\n }\n\n // If there is not a cart id in the state, return null\n if (!state.cartId) {\n return null;\n }\n\n // If there is a cart id in the state, return the cart data\n try {\n return await getCartData();\n } catch (error) {\n console.error(error);\n return null;\n }\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const STORE_CONFIG_QUERY = `\nquery STORE_CONFIG_QUERY {\n storeConfig {\n minicart_display\n minicart_max_items\n cart_expires_in_days\n cart_summary_display_quantity\n max_items_in_order_summary\n default_country\n category_fixed_product_tax_display_setting\n product_fixed_product_tax_display_setting\n sales_fixed_product_tax_display_setting\n shopping_cart_display_full_summary\n shopping_cart_display_grand_total\n shopping_cart_display_price\n shopping_cart_display_shipping\n shopping_cart_display_subtotal\n shopping_cart_display_tax_gift_wrapping\n shopping_cart_display_zero_tax\n configurable_thumbnail_source\n allow_gift_wrapping_on_order\n allow_gift_wrapping_on_order_items\n allow_order\n allow_items\n allow_gift_receipt\n allow_printed_card\n printed_card_priceV2 {\n currency\n value\n }\n cart_gift_wrapping\n cart_printed_card\n }\n}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/cart/api';\nimport { StoreConfigModel } from '@/cart/data/models';\nimport { transformStoreConfig } from '@/cart/data/transforms';\nimport { handleFetchError } from '@/cart/lib/fetch-error';\n\nimport { STORE_CONFIG_QUERY } from './graphql/StoreConfigQuery';\n\nexport const getStoreConfig = async (): Promise<StoreConfigModel | null> => {\n return fetchGraphQl(STORE_CONFIG_QUERY, {\n method: 'GET',\n cache: 'force-cache',\n }).then(({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n return transformStoreConfig(data.storeConfig);\n });\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { state } from '@/cart/lib/state';\nimport { CartModel } from '@/cart/data/models';\nimport { getCustomerCartPayload, getGuestCartPayload } from '@/cart/api';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport const refreshCart = async (): Promise<CartModel | null> => {\n const payload = state.authenticated\n ? await getCustomerCartPayload()\n : await getGuestCartPayload();\n\n events.emit('cart/data', payload);\n\n return payload;\n};\n"],"names":["initialize","Initializer","_config","config","initializeCart","events","authenticated","state","locale","resetCart","payload","setPersistedCartData","refreshCart","transformCart","data","model","_a","giftCard","giftCartState","currentBalanceValue","appliedBalanceValue","_b","currency","_c","value","transformQuantity","transformGiftOptions","wrapItem","_d","_e","_f","transformErrors","transformItems","_g","calculateTotal","_h","_i","_j","_k","_l","_m","transformTotalPriceModifiers","transformAddresses","transformOutOfStockItems","transformFullyOutOfStockItems","merge","_p","_o","_n","giftOptions","acc","item","getImage","getRegularPrice","findApplicablePriceTier","priceTiers","quantity","a","b","tier","getDiscounted","isConfigurable","priceRange","applicableTier","transformGiftMessage","transformWrappingPrice","transformGiftOptionsCode","category","priceTier","transformSKU","transformLinks","discount","transformBundleOptions","extractBundleOptionUIDs","transformSelectedOptions","transformCustomizableOptions","transformStockLevel","transformDiscountPercentage","transformDiscountAmount","transformProductAttributes","result","error","bundle","option","bundleOptions","allUIDs","valueUIDs","selected","selectedOptions","selectedOptionsUIDs","transformedOptions","previous","current","parser","fileAnchorElementHtml","anchorText","links","link","address","percent_off","amount_off","attribute","transformedCode","word","transformStoreConfig","transformTaxDisplaySetting","taxDisplaySetting","CUSTOMER_ACCOUNT_FRAGMENT","GUEST_CART_QUERY","CART_FRAGMENT","CUSTOMER_CART_QUERY","getCartData","cartId","fetchGraphQl","errors","handleFetchError","merged","MERGE_CARTS_MUTATION","getStoreConfig","getCustomerCartPayload","getGuestCartPayload","existingCartId","cart","transformedCartData","STORE_CONFIG_QUERY"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"refreshCart.js","sources":["/@dropins/storefront-cart/src/api/initialize/initialize.ts","/@dropins/storefront-cart/src/data/transforms/transform-cart.ts","/@dropins/storefront-cart/src/data/transforms/transform-store-config.ts","/@dropins/storefront-cart/src/api/graphql/CustomerAccountFragment.ts","/@dropins/storefront-cart/src/api/getCartData/graphql/CartQuery.ts","/@dropins/storefront-cart/src/api/getCartData/getCartData.ts","/@dropins/storefront-cart/src/api/initializeCart/graphql/MergeCartsMutation.ts","/@dropins/storefront-cart/src/api/initializeCart/initializeCart.ts","/@dropins/storefront-cart/src/api/getStoreConfig/graphql/StoreConfigQuery.ts","/@dropins/storefront-cart/src/api/getStoreConfig/getStoreConfig.ts","/@dropins/storefront-cart/src/api/refreshCart/refreshCart.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { Initializer, Model } from '@adobe-commerce/elsie/lib';\nimport { initializeCart, refreshCart, resetCart } from '@/cart/api';\nimport { state } from '@/cart/lib/state';\nimport { events } from '@adobe-commerce/event-bus';\nimport { Lang } from '@adobe-commerce/elsie/i18n';\nimport { setPersistedCartData } from '@/cart/lib/persisted-data';\nimport { CartModel } from '@/cart/data/models';\n\ntype ConfigProps = {\n disableGuestCart?: boolean;\n langDefinitions?: Lang;\n\n models?: {\n CartModel?: Model<CartModel>;\n };\n};\n\nexport const initialize = new Initializer<ConfigProps>({\n init: async (_config) => {\n const config = { disableGuestCart: false, ..._config };\n\n // Set config\n initialize.config.setConfig(config);\n\n initializeCart().catch(console.error);\n },\n\n listeners: () => [\n events.on(\n 'authenticated',\n (authenticated) => {\n if (state.authenticated && !authenticated) {\n // Reset cart if the user is no longer authenticated\n events.emit('cart/reset', undefined);\n }\n // Login event occurred\n else if (authenticated && !state.authenticated) {\n state.authenticated = authenticated;\n initializeCart().catch(console.error);\n }\n },\n { eager: true }\n ),\n\n events.on('locale', async (locale) => {\n if (locale !== state.locale) {\n state.locale = locale;\n initializeCart().catch(console.error);\n }\n }),\n\n events.on('cart/reset', () => {\n resetCart().catch(console.error);\n events.emit('cart/data', null);\n }),\n\n events.on('cart/data', (payload) => {\n setPersistedCartData(payload);\n }),\n\n events.on('checkout/updated', (payload) => {\n if (!payload || payload?.type === 'quote') return;\n\n refreshCart().catch(console.error);\n }),\n\n events.on('requisitionList/alert', () => {\n refreshCart().catch(console.error);\n }),\n ],\n});\n\nexport const config = initialize.config;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { merge } from '@adobe-commerce/elsie/lib';\nimport { CartModel, StoreConfigModel } from '@/cart/data/models';\nimport { state } from '@/cart/lib/state';\nimport { config } from '@/cart/api';\n\nexport function transformCart(data: any): CartModel | null {\n if (!data) return null;\n\n const model = {\n appliedGiftCards:\n data?.applied_gift_cards?.map((giftCard: any) => {\n const giftCartState = {\n code: giftCard.code ?? '',\n appliedBalance: {\n value: giftCard.applied_balance.value ?? 0,\n currency: giftCard.applied_balance.currency ?? 'USD',\n },\n currentBalance: {\n value: giftCard.current_balance.value ?? 0,\n currency: giftCard.current_balance.currency ?? 'USD',\n },\n expirationDate: giftCard.expiration_date ?? '',\n };\n\n const currentBalanceValue = giftCartState?.currentBalance?.value;\n const appliedBalanceValue = giftCartState?.appliedBalance?.value;\n const currency = giftCartState?.currentBalance?.currency;\n\n const hasBalanceDifference =\n currentBalanceValue - appliedBalanceValue > 0;\n\n const value = hasBalanceDifference\n ? currentBalanceValue - appliedBalanceValue\n : 0;\n\n return {\n ...giftCartState,\n giftCardBalance: { value, currency },\n };\n }) ?? [],\n id: data.id,\n totalQuantity: transformQuantity(data),\n totalUniqueItems: data.itemsV2.items.length,\n totalGiftOptions: transformGiftOptions(data?.prices?.gift_options),\n giftReceiptIncluded: data?.gift_receipt_included ?? false,\n printedCardIncluded: data?.printed_card_included ?? false,\n cartGiftWrapping:\n data?.available_gift_wrappings?.map((wrapItem: any) => {\n return {\n design: wrapItem.design ?? '',\n uid: wrapItem.uid,\n selected: data?.gift_wrapping?.uid === wrapItem.uid,\n image: {\n url: wrapItem?.image?.url ?? '',\n label: wrapItem.image?.label ?? '',\n },\n price: {\n currency: wrapItem?.price?.currency ?? 'USD',\n value: wrapItem?.price?.value ?? 0,\n },\n };\n }) ?? [],\n giftMessage: {\n senderName: data?.gift_message?.from ?? '',\n recipientName: data?.gift_message?.to ?? '',\n message: data?.gift_message?.message ?? '',\n },\n errors: transformErrors(data?.itemsV2),\n items: transformItems(data?.itemsV2),\n miniCartMaxItems: transformItems(data?.itemsV2).slice(\n 0,\n state.config?.miniCartMaxItemsDisplay ?? 10\n ),\n total: {\n includingTax: {\n value: data.prices.grand_total.value,\n currency: data.prices.grand_total.currency,\n },\n excludingTax: {\n value: data.prices.grand_total_excluding_tax.value,\n currency: data.prices.grand_total_excluding_tax.currency,\n },\n },\n discount: calculateTotal(\n data.prices.discounts,\n data.prices.grand_total.currency\n ),\n subtotal: {\n excludingTax: {\n value: data.prices.subtotal_excluding_tax?.value,\n currency: data.prices.subtotal_excluding_tax?.currency,\n },\n includingTax: {\n value: data.prices.subtotal_including_tax?.value,\n currency: data.prices.subtotal_including_tax?.currency,\n },\n includingDiscountOnly: {\n value: data.prices.subtotal_with_discount_excluding_tax?.value,\n currency: data.prices.subtotal_with_discount_excluding_tax?.currency,\n },\n },\n appliedTaxes: transformTotalPriceModifiers(data.prices.applied_taxes),\n totalTax: calculateTotal(\n data.prices.applied_taxes,\n data.prices.grand_total.currency\n ),\n appliedDiscounts: transformTotalPriceModifiers(data.prices.discounts),\n isVirtual: data.is_virtual,\n addresses: {\n shipping: data.shipping_addresses && transformAddresses(data),\n },\n isGuestCart: !state.authenticated,\n hasOutOfStockItems: transformOutOfStockItems(data),\n hasFullyOutOfStockItems: transformFullyOutOfStockItems(data),\n appliedCoupons: data.applied_coupons,\n };\n\n // extend the model with custom transformer\n return merge(\n model,\n config.getConfig().models?.CartModel?.transformer?.(data)\n );\n}\n\nfunction transformGiftOptions(giftOptions: any) {\n return {\n giftWrappingForItems: {\n value: giftOptions?.gift_wrapping_for_items?.value ?? 0,\n currency: giftOptions?.gift_wrapping_for_items?.currency ?? 'USD',\n },\n giftWrappingForItemsInclTax: {\n value: giftOptions?.gift_wrapping_for_items_incl_tax?.value ?? 0,\n currency:\n giftOptions?.gift_wrapping_for_items_incl_tax?.currency ?? 'USD',\n },\n giftWrappingForOrder: {\n value: giftOptions?.gift_wrapping_for_order?.value ?? 0,\n currency: giftOptions?.gift_wrapping_for_order?.currency ?? 'USD',\n },\n giftWrappingForOrderInclTax: {\n value: giftOptions?.gift_wrapping_for_order_incl_tax?.value ?? 0,\n currency:\n giftOptions?.gift_wrapping_for_order_incl_tax?.currency ?? 'USD',\n },\n printedCard: {\n value: giftOptions?.printed_card?.value ?? 0,\n currency: giftOptions?.printed_card?.currency ?? 'USD',\n },\n printedCardInclTax: {\n value: giftOptions?.printed_card_incl_tax?.value ?? 0,\n currency: giftOptions?.printed_card_incl_tax?.currency ?? 'USD',\n },\n };\n}\n\n// Need to calculate total amount since it's not provided by GraphQL\nfunction calculateTotal(data: any[], currency: string) {\n if (!data?.length)\n return {\n value: 0,\n currency,\n };\n\n return data.reduce(\n (acc: any, item: any) => {\n return {\n value: acc.value + item.amount.value,\n currency: item.amount.currency,\n };\n },\n { value: 0, currency }\n );\n}\n\nfunction getImage(config: StoreConfigModel | null | undefined, item: any) {\n return {\n // Use parent thumbnail if configured, otherwise use own variant. use the parent thumbnail as a fallback\n src: config?.useConfigurableParentThumbnail\n ? item.product.thumbnail.url\n : item.configured_variant?.thumbnail?.url || item.product.thumbnail.url,\n alt: config?.useConfigurableParentThumbnail\n ? item.product.thumbnail.label\n : item.configured_variant?.thumbnail?.label ||\n item.product.thumbnail.label,\n };\n}\n\nfunction getRegularPrice(item: any) {\n if (item.__typename === 'ConfigurableCartItem') {\n return {\n value:\n item.configured_variant?.price_range?.maximum_price.regular_price.value,\n currency:\n item.configured_variant?.price_range?.maximum_price.regular_price\n .currency,\n };\n }\n if (item.__typename === 'GiftCardCartItem') {\n return {\n value: item.prices.price.value,\n currency: item.prices.price.currency,\n };\n }\n return {\n value: item.prices.original_item_price.value,\n currency: item.prices.original_item_price.currency,\n };\n}\n\n/**\n * Finds the most applicable price tier for a given quantity\n * @param priceTiers - Array of price tier objects\n * @param quantity - Current item quantity\n * @returns The applicable tier or null if none found\n */\nfunction findApplicablePriceTier(priceTiers: any[], quantity: number) {\n if (!priceTiers?.length) return null;\n\n // Sort price tiers by quantity in descending order to find the highest applicable tier\n const sortedTiers = [...priceTiers].sort(\n (a: any, b: any) => b.quantity - a.quantity\n );\n\n // Find the highest tier where the current quantity meets or exceeds the tier's minimum quantity\n return sortedTiers.find((tier: any) => quantity >= tier.quantity) || null;\n}\n\nfunction getDiscounted(item: any) {\n const quantity = item.quantity;\n const isConfigurable = item.__typename === 'ConfigurableCartItem';\n\n // Get price tiers and price range based on item type\n const priceTiers = isConfigurable\n ? item.configured_variant?.price_tiers\n : item.product.price_tiers;\n const priceRange = isConfigurable\n ? item.configured_variant?.price_range\n : item.product.price_range;\n\n // Check price tiers first for discount eligibility\n const applicableTier = findApplicablePriceTier(priceTiers, quantity);\n if (applicableTier) {\n return applicableTier.discount.amount_off > 0;\n }\n\n // Fallback to regular price range discount\n return priceRange?.maximum_price.discount.amount_off > 0;\n}\n\nfunction transformGiftMessage(data: any) {\n return {\n senderName: data?.gift_message?.from ?? '',\n recipientName: data?.gift_message?.to ?? '',\n message: data?.gift_message?.message ?? '',\n };\n}\n\nfunction transformWrappingPrice(data: any) {\n return {\n currency: data?.currency ?? 'USD',\n value: data?.value ?? 0,\n };\n}\n\nfunction transformItems(data: any) {\n if (!data?.items?.length) return [];\n\n const config = state.config;\n\n return data.items.map((item: any) => ({\n giftWrappingAvailable: item?.product?.gift_wrapping_available ?? false,\n giftWrappingPrice: transformWrappingPrice(\n item?.product?.gift_wrapping_price\n ),\n giftMessage: transformGiftMessage(item),\n productGiftWrapping:\n item?.available_gift_wrapping?.map((wrapItem: any) => {\n return {\n design: wrapItem.design ?? '',\n uid: wrapItem.uid,\n selected: item.gift_wrapping?.uid === wrapItem.uid,\n image: {\n url: wrapItem?.image?.url ?? '',\n label: wrapItem.image?.label ?? '',\n },\n price: {\n currency: wrapItem?.price?.currency ?? 'USD',\n value: wrapItem?.price?.value ?? 0,\n },\n };\n }) ?? [],\n itemType: item.__typename,\n uid: item.uid,\n giftMessageAvailable: transformGiftOptionsCode(\n item.product.gift_message_available\n ),\n url: {\n urlKey: item.product.url_key,\n categories: item.product.categories.map(\n (category: any) => category.url_key\n ),\n },\n canonicalUrl: item.product.canonical_url,\n categories: item.product.categories.map((category: any) => category.name),\n priceTiers:\n item.__typename === 'ConfigurableCartItem'\n ? item.configured_variant?.price_tiers?.map(\n (priceTier: any) => priceTier\n ) || []\n : item.product.price_tiers?.map((priceTier: any) => priceTier) || [],\n quantity: item.quantity,\n sku: transformSKU(item),\n topLevelSku: item.product.sku,\n name: item.product.name,\n image: getImage(config, item),\n price: {\n value: item.prices.price.value,\n currency: item.prices.price.currency,\n },\n taxedPrice: {\n value: item.prices.price_including_tax.value,\n currency: item.prices.price_including_tax.currency,\n },\n fixedProductTaxes: item.prices.fixed_product_taxes,\n rowTotal: {\n value: item.prices.row_total.value,\n currency: item.prices.row_total.currency,\n },\n rowTotalIncludingTax: {\n value: item.prices.row_total_including_tax.value,\n currency: item.prices.row_total_including_tax.currency,\n },\n links: transformLinks(item.links),\n total: {\n value: item.prices.original_row_total?.value,\n currency: item.prices.original_row_total?.currency,\n },\n discount: {\n value: item.prices.total_item_discount.value,\n currency: item.prices.total_item_discount.currency,\n label: item.prices.discounts?.map((discount: any) => discount.label),\n },\n regularPrice: getRegularPrice(item),\n discounted: getDiscounted(item),\n bundleOptions:\n item.__typename === 'BundleCartItem'\n ? transformBundleOptions(item.bundle_options)\n : null,\n bundleOptionsUIDs:\n item.__typename === 'BundleCartItem'\n ? extractBundleOptionUIDs(item.bundle_options)\n : null,\n selectedOptions: transformSelectedOptions(item.configurable_options)\n ?.options,\n selectedOptionsUIDs: transformSelectedOptions(item.configurable_options)\n ?.uids,\n customizableOptions: transformCustomizableOptions(\n item.customizable_options\n ),\n sender: item.__typename === 'GiftCardCartItem' ? item.sender_name : null,\n senderEmail:\n item.__typename === 'GiftCardCartItem' ? item.sender_email : null,\n recipient:\n item.__typename === 'GiftCardCartItem' ? item.recipient_name : null,\n recipientEmail:\n item.__typename === 'GiftCardCartItem' ? item.recipient_email : null,\n message: item.__typename === 'GiftCardCartItem' ? item.message : null,\n\n discountedTotal: {\n value: item.prices.row_total.value,\n currency: item.prices.row_total.currency,\n },\n\n onlyXLeftInStock:\n item.__typename === 'ConfigurableCartItem'\n ? item.configured_variant?.only_x_left_in_stock\n : item.product.only_x_left_in_stock,\n lowInventory:\n item.is_available && item.product.only_x_left_in_stock !== null,\n insufficientQuantity:\n (item.__typename === 'ConfigurableCartItem'\n ? item.configured_variant\n : item.product\n ).stock_status === 'IN_STOCK' && !item.is_available,\n outOfStock: item.product.stock_status === 'OUT_OF_STOCK',\n stockLevel: transformStockLevel(item),\n // Add support for BundleCartItem\n discountPercentage: transformDiscountPercentage(item),\n savingsAmount: transformDiscountAmount(item),\n productAttributes: transformProductAttributes(item),\n }));\n}\n\n// This helper follows the approach used in the store configuration GraphQL schema for Gift Messages,\n// where a `null` value represents the \"use system value\" option. It requires special processing\n// based on both global and product-level configurations\nfunction transformGiftOptionsCode(data: string) {\n switch (+data) {\n case 0:\n return false;\n case 1:\n return true;\n case 2:\n return null;\n default:\n return false;\n }\n}\n\nfunction transformErrors(data: any) {\n const result = data?.items?.reduce((acc: any, item: any) => {\n item.errors?.forEach((error: Error) => {\n acc.push({ uid: item.uid, text: error.message });\n });\n\n return acc;\n }, []);\n\n return result?.length ? result : null;\n}\n\nfunction transformTotalPriceModifiers(data: any) {\n if (!data?.length) return [];\n\n return data.map((item: any) => ({\n amount: {\n value: item.amount.value,\n currency: item.amount.currency,\n },\n label: item.label,\n coupon: item.coupon,\n }));\n}\n\nfunction transformBundleOptions(data: any) {\n const bundle = data?.map((option: any) => ({\n uid: option.uid,\n label: option.label,\n value: option.values.map((value: any) => value.label).join(', '),\n }));\n\n const bundleOptions: { [key: string]: any } = {};\n\n bundle?.forEach((option: any) => {\n bundleOptions[option.label] = option.value;\n });\n\n return Object.keys(bundleOptions).length > 0 ? bundleOptions : null;\n}\n\nfunction extractBundleOptionUIDs(data: any) {\n if (!data?.length) return null;\n\n const allUIDs: string[] = [];\n data.forEach((option: any) => {\n if (option.values?.length) {\n const valueUIDs = option.values.map((value: any) => value.uid);\n allUIDs.push(...valueUIDs);\n }\n });\n\n return allUIDs.length > 0 ? allUIDs : null;\n}\n\nfunction transformSelectedOptions(data: any) {\n const selected = data?.map((option: any) => ({\n uid: option.configurable_product_option_uid,\n label: option.option_label,\n value: option.value_label,\n valueUid: option.configurable_product_option_value_uid,\n }));\n\n const selectedOptions: { [key: string]: any } = {};\n const selectedOptionsUIDs: { [key: string]: any } = {};\n\n selected?.forEach((option: any) => {\n selectedOptions[option.label] = option.value;\n selectedOptionsUIDs[option.label] = option.valueUid;\n });\n\n return {\n options: Object.keys(selectedOptions).length > 0 ? selectedOptions : null,\n uids:\n Object.keys(selectedOptionsUIDs).length > 0 ? selectedOptionsUIDs : null,\n };\n}\n\nfunction transformCustomizableOptions(data: any) {\n const transformedOptions = data?.map((option: any) => ({\n uid: option.customizable_option_uid,\n label: option.label,\n type: option.type,\n values: option.values.map((value: any) => ({\n uid: value.customizable_option_value_uid,\n label: value.label,\n value: value.value,\n })),\n }));\n\n const result: { [key: string]: any } = {};\n\n transformedOptions?.forEach((option: any) => {\n switch (option.type) {\n case 'field':\n case 'area':\n case 'date_time':\n result[option.label] = option.values[0].value;\n break;\n case 'radio':\n case 'drop_down':\n result[option.label] = option.values[0].label;\n break;\n case 'multiple':\n case 'checkbox':\n result[option.label] = (option.values as Array<any>).reduce(\n (previous, current) => {\n if (previous) return `${previous}, ${current.label}`;\n return current.label;\n },\n ''\n );\n break;\n case 'file': {\n const parser = new DOMParser();\n const fileAnchorElementHtml = option.values[0].value;\n const doc = parser.parseFromString(fileAnchorElementHtml, 'text/html');\n const anchorText = doc.querySelector('a')?.textContent || '';\n result[option.label] = anchorText;\n break;\n }\n }\n });\n return result;\n}\n\nfunction transformQuantity(data: any) {\n if (state.config?.cartSummaryDisplayTotal === 0)\n return data.itemsV2.items.length;\n if (state.config?.cartSummaryDisplayTotal === 1) return data.total_quantity;\n // Default to items count if unexpected config value or error returned\n return data.itemsV2.items.length;\n}\n\nfunction transformLinks(links: any) {\n return links?.length > 0\n ? {\n count: links.length,\n result: links.map((link: any) => link.title).join(', '),\n }\n : null;\n}\n\nfunction transformAddresses(data: any) {\n //Shipping Address bound to cart\n if (data.shipping_addresses?.length) {\n return data.shipping_addresses?.map((address: any) => ({\n countryCode: address.country.code,\n zipCode: address.postcode,\n regionCode: address.region.code,\n }));\n //Shipping Address bound to customer\n } else if (data.addresses?.length) {\n return data.addresses\n ?.filter((address: any) => address.default_shipping)\n .map(\n (address: any) =>\n address.default_shipping && {\n countryCode: address.country_code,\n zipCode: address.postcode,\n regionCode: address.region?.region_code,\n }\n );\n }\n\n return null;\n}\n\nfunction transformOutOfStockItems(data: any) {\n return data?.itemsV2?.items?.some(\n (item: any) =>\n item?.product?.stock_status === 'OUT_OF_STOCK' ||\n (item.product.stock_status === 'IN_STOCK' && !item.is_available)\n );\n}\n\nfunction transformStockLevel(item: any) {\n if (!item.not_available_message) return null;\n\n return item.product.quantity != null ? item.product.quantity : 'noNumber';\n}\n\nfunction transformFullyOutOfStockItems(data: any) {\n return data?.itemsV2?.items?.some(\n (item: any) => item?.product?.stock_status === 'OUT_OF_STOCK'\n );\n}\n\n// Add support for BundleCartItem in USF-1591 after LYNX-599 is completed\nfunction transformDiscountPercentage(data: any) {\n const quantity = data.quantity;\n\n // Check price tiers first for discount percentage\n const applicableTier = findApplicablePriceTier(\n data.product.price_tiers,\n quantity\n );\n\n if (applicableTier) {\n return Math.round(applicableTier.discount.percent_off);\n }\n\n // Fallback to product-specific discount percentage\n let percent_off;\n\n if (data.__typename === 'ConfigurableCartItem') {\n percent_off =\n data?.configured_variant?.price_range?.maximum_price?.discount\n ?.percent_off;\n } else if (data.__typename === 'BundleCartItem') {\n return undefined;\n } else {\n percent_off =\n data?.product?.price_range?.maximum_price?.discount?.percent_off;\n }\n\n if (percent_off === 0) {\n return undefined;\n }\n\n return Math.round(percent_off);\n}\n\n// Add support for returning configured_variant sku for __typename:\"ConfigurableCartItem\"\nfunction transformSKU(item: any) {\n if (item.__typename === 'ConfigurableCartItem') {\n return item.configured_variant.sku;\n }\n\n // If varaintSku is available return it, otherwise return product sku\n return item.product?.variantSku || item.product.sku;\n}\n\nfunction transformDiscountAmount(data: any) {\n let amount_off;\n let currency;\n\n amount_off =\n data?.prices?.original_row_total?.value - data?.prices?.row_total?.value;\n currency = data?.prices?.row_total?.currency;\n\n if (amount_off === 0) {\n return undefined;\n }\n return {\n value: amount_off,\n currency,\n };\n}\n\nfunction transformProductAttributes(item: any) {\n return item?.product?.custom_attributesV2?.items?.map((attribute: any) => {\n const transformedCode = attribute.code\n .split('_')\n .map((word: any) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n\n return {\n ...attribute,\n code: transformedCode,\n };\n });\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { StoreConfigModel } from '@/cart/data/models';\n\nexport function transformStoreConfig(data: any): StoreConfigModel | null {\n if (!data) return null;\n\n const transformTaxDisplaySetting = (taxDisplaySetting: number) => {\n switch (taxDisplaySetting) {\n case 1:\n return 'EXCLUDING_TAX';\n case 2:\n return 'INCLUDING_TAX';\n case 3:\n return 'INCLUDING_EXCLUDING_TAX';\n default:\n return 'EXCLUDING_TAX';\n }\n };\n\n // A `null` value indicates the \"use system value\" option, which requires special handling\n // based on both global and product-level configurations\n const transformGiftOptionsCode = (data: string) => {\n switch (+data) {\n case 0:\n return false;\n case 1:\n return true;\n case 2:\n return null;\n default:\n return false;\n }\n };\n\n return {\n displayMiniCart: data.minicart_display,\n miniCartMaxItemsDisplay: data.minicart_max_items,\n cartExpiresInDays: data.cart_expires_in_days,\n cartSummaryDisplayTotal: data.cart_summary_display_quantity,\n cartSummaryMaxItems: data.max_items_in_order_summary,\n defaultCountry: data.default_country!,\n categoryFixedProductTaxDisplaySetting:\n data.category_fixed_product_tax_display_setting,\n productFixedProductTaxDisplaySetting:\n data.product_fixed_product_tax_display_setting,\n salesFixedProductTaxDisplaySetting:\n data.sales_fixed_product_tax_display_setting,\n shoppingCartDisplaySetting: {\n zeroTax: data.shopping_cart_display_zero_tax,\n subtotal: transformTaxDisplaySetting(data.shopping_cart_display_subtotal),\n price: transformTaxDisplaySetting(data.shopping_cart_display_price),\n shipping: transformTaxDisplaySetting(data.shopping_cart_display_shipping),\n fullSummary: data.shopping_cart_display_full_summary,\n grandTotal: data.shopping_cart_display_grand_total,\n taxGiftWrapping: data.shopping_cart_display_tax_gift_wrapping,\n },\n useConfigurableParentThumbnail:\n data.configurable_thumbnail_source === 'parent',\n allowGiftWrappingOnOrder: transformGiftOptionsCode(\n data?.allow_gift_wrapping_on_order\n ),\n allowGiftWrappingOnOrderItems: transformGiftOptionsCode(\n data?.allow_gift_wrapping_on_order_items\n ),\n allowGiftMessageOnOrder: transformGiftOptionsCode(data?.allow_order),\n allowGiftMessageOnOrderItems: transformGiftOptionsCode(data?.allow_items),\n allowGiftReceipt: Boolean(+data?.allow_gift_receipt),\n allowPrintedCard: Boolean(+data?.allow_printed_card),\n printedCardPrice: {\n currency: data?.printed_card_priceV2?.currency ?? '',\n value:\n data?.printed_card_priceV2?.value != null\n ? +data.printed_card_priceV2.value\n : 0,\n },\n cartGiftWrapping: transformTaxDisplaySetting(+data.cart_gift_wrapping),\n cartPrintedCard: transformTaxDisplaySetting(+data.cart_printed_card),\n };\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const CUSTOMER_ACCOUNT_FRAGMENT = /* GraphQL */ `\n fragment CUSTOMER_FRAGMENT on Customer {\n addresses {\n default_shipping\n country_code\n postcode\n region {\n region\n region_code\n region_id\n }\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { CART_FRAGMENT } from '@/cart/api/graphql/CartFragment';\n\nimport { CUSTOMER_ACCOUNT_FRAGMENT } from '@/cart/api/graphql/CustomerAccountFragment';\n\nexport const GUEST_CART_QUERY = `\n query GUEST_CART_QUERY(\n $cartId: String!,\n $pageSize: Int! = 100,\n $currentPage: Int! = 1,\n $itemsSortInput: QuoteItemsSortInput! = {field: CREATED_AT, order: DESC}\n ) {\n\n cart(cart_id: $cartId){\n ...CART_FRAGMENT\n }\n }\n\n ${CART_FRAGMENT}\n`;\n\nexport const CUSTOMER_CART_QUERY = `\n query CUSTOMER_CART_QUERY(\n $pageSize: Int! = 100,\n $currentPage: Int! = 1,\n $itemsSortInput: QuoteItemsSortInput! = {field: CREATED_AT, order: DESC}\n ) {\n \n customer {\n ...CUSTOMER_FRAGMENT\n }\n\n cart: customerCart {\n ...CART_FRAGMENT\n }\n }\n\n ${CUSTOMER_ACCOUNT_FRAGMENT}\n ${CART_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/cart/api';\nimport { handleFetchError } from '@/cart/lib/fetch-error';\nimport { state } from '@/cart/lib/state';\nimport { CartModel } from '@/cart/data/models';\nimport { transformCart } from '@/cart/data/transforms';\n\nimport { GUEST_CART_QUERY, CUSTOMER_CART_QUERY } from './graphql/CartQuery';\n\nexport const getCartData = async (): Promise<CartModel | null> => {\n const authenticated = state.authenticated;\n const cartId = state.cartId;\n\n // Customer Cart\n if (authenticated) {\n return fetchGraphQl(CUSTOMER_CART_QUERY, { method: 'POST' }).then(\n ({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n const merged = { ...data.cart, ...data.customer };\n\n return transformCart(merged);\n }\n );\n }\n\n // Guest Cart\n if (!cartId) throw new Error('No cart ID found');\n\n return fetchGraphQl(GUEST_CART_QUERY, {\n method: 'POST',\n cache: 'no-cache',\n variables: { cartId },\n }).then(({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n return transformCart(data.cart);\n });\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { CART_FRAGMENT } from '@/cart/api/graphql/CartFragment';\n\nexport const MERGE_CARTS_MUTATION = `\n mutation MERGE_CARTS_MUTATION(\n $guestCartId: String!, \n $customerCartId: String!,\n $pageSize: Int! = 100,\n $currentPage: Int! = 1,\n $itemsSortInput: QuoteItemsSortInput! = {field: CREATED_AT, order: DESC}\n ) {\n mergeCarts(\n source_cart_id: $guestCartId,\n destination_cart_id: $customerCartId\n ) {\n ...CART_FRAGMENT \n }\n }\n\n ${CART_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { events } from '@adobe-commerce/event-bus';\nimport { state } from '@/cart/lib/state';\nimport { config, fetchGraphQl, getCartData, getStoreConfig } from '@/cart/api';\nimport { MERGE_CARTS_MUTATION } from './graphql/MergeCartsMutation';\nimport { CartModel } from '@/cart/data/models';\n\nexport const initializeCart = async (): Promise<CartModel | null> => {\n if (state.initializing) return null;\n\n state.initializing = true;\n\n // set config\n if (!state.config) {\n state.config = await getStoreConfig();\n }\n\n const payload = state.authenticated\n ? await getCustomerCartPayload()\n : await getGuestCartPayload();\n\n events.emit('cart/initialized', payload);\n events.emit('cart/data', payload);\n\n state.initializing = false;\n\n return payload;\n};\n\nexport async function getCustomerCartPayload() {\n const existingCartId = state.cartId;\n\n const cart = await getCartData();\n\n if (!cart) return null;\n\n // set cartid in the state\n state.cartId = cart.id;\n\n // If the existing cart is the same as the fetched cart, return the fetched cart\n if (!existingCartId || cart.id === existingCartId) return cart;\n\n // If the existing cart is not the same as the fetched cart, merge the carts\n return await fetchGraphQl(MERGE_CARTS_MUTATION, {\n variables: {\n guestCartId: existingCartId,\n customerCartId: cart.id,\n },\n })\n .then(() => {\n return getCartData();\n })\n .then((transformedCartData) => {\n const payload = {\n oldCartItems: cart.items,\n newCart: transformedCartData,\n };\n events.emit('cart/merged', payload);\n return transformedCartData;\n })\n .catch(() => {\n // gracefully handle merge error, continue with existing cart\n console.error('Could not merge carts');\n return cart;\n });\n}\n\nexport async function getGuestCartPayload() {\n // If guest cart is not enabled, return null\n if (config.getConfig().disableGuestCart === true) {\n return null;\n }\n\n // If there is not a cart id in the state, return null\n if (!state.cartId) {\n return null;\n }\n\n // If there is a cart id in the state, return the cart data\n try {\n return await getCartData();\n } catch (error) {\n console.error(error);\n return null;\n }\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const STORE_CONFIG_QUERY = `\nquery STORE_CONFIG_QUERY {\n storeConfig {\n minicart_display\n minicart_max_items\n cart_expires_in_days\n cart_summary_display_quantity\n max_items_in_order_summary\n default_country\n category_fixed_product_tax_display_setting\n product_fixed_product_tax_display_setting\n sales_fixed_product_tax_display_setting\n shopping_cart_display_full_summary\n shopping_cart_display_grand_total\n shopping_cart_display_price\n shopping_cart_display_shipping\n shopping_cart_display_subtotal\n shopping_cart_display_tax_gift_wrapping\n shopping_cart_display_zero_tax\n configurable_thumbnail_source\n allow_gift_wrapping_on_order\n allow_gift_wrapping_on_order_items\n allow_order\n allow_items\n allow_gift_receipt\n allow_printed_card\n printed_card_priceV2 {\n currency\n value\n }\n cart_gift_wrapping\n cart_printed_card\n }\n}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { fetchGraphQl } from '@/cart/api';\nimport { StoreConfigModel } from '@/cart/data/models';\nimport { transformStoreConfig } from '@/cart/data/transforms';\nimport { handleFetchError } from '@/cart/lib/fetch-error';\n\nimport { STORE_CONFIG_QUERY } from './graphql/StoreConfigQuery';\n\nexport const getStoreConfig = async (): Promise<StoreConfigModel | null> => {\n return fetchGraphQl(STORE_CONFIG_QUERY, {\n method: 'GET',\n cache: 'force-cache',\n }).then(({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n return transformStoreConfig(data.storeConfig);\n });\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { state } from '@/cart/lib/state';\nimport { CartModel } from '@/cart/data/models';\nimport { getCustomerCartPayload, getGuestCartPayload } from '@/cart/api';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport const refreshCart = async (): Promise<CartModel | null> => {\n const payload = state.authenticated\n ? await getCustomerCartPayload()\n : await getGuestCartPayload();\n\n events.emit('cart/data', payload);\n\n return payload;\n};\n"],"names":["initialize","Initializer","_config","config","initializeCart","events","authenticated","state","locale","resetCart","payload","setPersistedCartData","refreshCart","transformCart","data","model","_a","giftCard","giftCartState","currentBalanceValue","appliedBalanceValue","_b","currency","_c","value","transformQuantity","transformGiftOptions","wrapItem","_d","_e","_f","transformErrors","transformItems","_g","calculateTotal","_h","_i","_j","_k","_l","_m","transformTotalPriceModifiers","transformAddresses","transformOutOfStockItems","transformFullyOutOfStockItems","merge","_p","_o","_n","giftOptions","acc","item","getImage","getRegularPrice","findApplicablePriceTier","priceTiers","quantity","a","b","tier","getDiscounted","isConfigurable","priceRange","applicableTier","transformGiftMessage","transformWrappingPrice","transformGiftOptionsCode","category","priceTier","transformSKU","transformLinks","discount","transformBundleOptions","extractBundleOptionUIDs","transformSelectedOptions","transformCustomizableOptions","transformStockLevel","transformDiscountPercentage","transformDiscountAmount","transformProductAttributes","result","error","bundle","option","bundleOptions","allUIDs","valueUIDs","selected","selectedOptions","selectedOptionsUIDs","transformedOptions","previous","current","parser","fileAnchorElementHtml","anchorText","links","link","address","percent_off","amount_off","attribute","transformedCode","word","transformStoreConfig","transformTaxDisplaySetting","taxDisplaySetting","CUSTOMER_ACCOUNT_FRAGMENT","GUEST_CART_QUERY","CART_FRAGMENT","CUSTOMER_CART_QUERY","getCartData","cartId","fetchGraphQl","errors","handleFetchError","merged","MERGE_CARTS_MUTATION","getStoreConfig","getCustomerCartPayload","getGuestCartPayload","existingCartId","cart","transformedCartData","STORE_CONFIG_QUERY"],"mappings":"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"}
|