@dropins/storefront-cart 0.1.1-alpha3 → 0.1.1-alpha77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api.js +26 -1
- package/api.js.map +1 -0
- package/chunks/MiniCart.js +2 -0
- package/chunks/MiniCart.js.map +1 -0
- package/chunks/getEstimateShipping.js +39 -0
- package/chunks/getEstimateShipping.js.map +1 -0
- package/chunks/getStoreConfig.js +253 -0
- package/chunks/getStoreConfig.js.map +1 -0
- package/chunks/updateProductsFromCart.js +21 -0
- package/chunks/updateProductsFromCart.js.map +1 -0
- package/containers/Cart.js +2 -1
- package/containers/Cart.js.map +1 -0
- package/containers/MiniCart.js +2 -1
- package/containers/MiniCart.js.map +1 -0
- package/package.json +1 -1
- package/render.js +3 -1
- package/render.js.map +1 -0
- package/108.js +0 -1
- package/12.js +0 -1
- package/148.js +0 -1
- package/176.js +0 -1
- package/180.js +0 -1
- package/220.js +0 -1
- package/328.js +0 -1
- package/388.js +0 -1
- package/4.js +0 -1
- package/424.js +0 -1
- package/456.js +0 -1
- package/484.js +0 -1
- package/488.js +0 -1
- package/524.js +0 -1
- package/543.js +0 -1
- package/604.js +0 -1
- package/664.js +0 -1
- package/680.js +0 -1
- package/728.js +0 -1
- package/756.js +0 -1
- package/764.js +0 -1
- package/772.js +0 -1
- package/805.js +0 -1
- package/820.js +0 -1
- package/824.js +0 -1
- package/832.js +0 -1
- package/844.js +0 -1
- package/868.js +0 -1
- package/916.js +0 -1
- package/920.js +0 -1
- package/928.js +0 -1
- package/940.js +0 -1
- package/984.js +0 -1
- package/992.js +0 -1
- package/996.js +0 -1
- package/runtime.js +0 -1
package/api.js
CHANGED
|
@@ -1 +1,26 @@
|
|
|
1
|
-
import*as t from"@dropins/tools/event-bus.js";import*as r from"@dropins/tools/fetch-graphql.js";export const id=0;export const ids=[0];export const modules={7536:(t,r,e)=>{e.d(r,{A:()=>a,c:()=>i});var n=new class{get map(){return this._map}set map(t){this._map=t}getMethods(){return{setMap:t=>{this.map=t},getMap:()=>this.map}}},{setMap:a,getMap:i}=n.getMethods()},412:(t,r,e)=>{e.d(r,{_:()=>l});class n{constructor(t){this.config=t}getConfig(){return this.config}setConfig(t){this.config=t}}var a=e(7536),i=["imageParamsKeyMap"];function o(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable}))),e.push.apply(e,n)}return e}function c(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?o(Object(e),!0).forEach((function(r){s(t,r,e[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):o(Object(e)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}))}return t}function u(t,r){if(null==t)return{};var e,n,a=function(t,r){if(null==t)return{};var e,n,a={},i=Object.keys(t);for(n=0;n<i.length;n++)e=i[n],r.indexOf(e)>=0||(a[e]=t[e]);return a}(t,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)e=i[n],r.indexOf(e)>=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(a[e]=t[e])}return a}function s(t,r,e){var n;return(r="symbol"==typeof(n=function(t,r){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,r||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(r,"string"))?n:String(n))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}class l{constructor(t){var{init:r,listeners:e}=t;s(this,"_listeners",[]),s(this,"config",new n({})),this.listeners=t=>(this._listeners.forEach((t=>t.off())),this._listeners=e(t)),this.init=t=>{var e=t,{imageParamsKeyMap:n}=e,o=u(e,i);return this.config.setConfig(c(c({},this.config.getConfig()),o)),(0,a.A)(n),r(t)}}}class d{static register(t,r){var e,n;d._mounted&&(null===(e=t.listeners)||void 0===e||e.call(t,r),null===(n=t.init)||void 0===n||n.call(t,r));d._initializers.push([t,r])}static mount(){var t,r;d._mounted=!0,null===(t=d._initializers)||void 0===t||t.forEach((t=>{var r,[e,n]=t;null===(r=e.listeners)||void 0===r||r.call(e,n)})),null===(r=d._initializers)||void 0===r||r.forEach((t=>{var r,[e,n]=t;null===(r=e.init)||void 0===r||r.call(e,c({imageParamsKeyMap:d._imageParamsKeyMap},n))}))}static setImageParamKeys(t){d._imageParamsKeyMap=t}}s(d,"_initializers",[]),s(d,"_mounted",!1),s(d,"_imageParamsKeyMap",void 0)},3884:(t,r,e)=>{e.d(r,{KG:()=>s,QN:()=>u,iM:()=>l});var n=e(7218),a=e(3584),i=e(764);function o(t,r,e,n,a,i,o){try{var c=t[i](o),u=c.value}catch(t){return void e(t)}c.done?r(u):Promise.resolve(u).then(n,a)}function c(t){return function(){var r=this,e=arguments;return new Promise((function(n,a){var i=t.apply(r,e);function c(t){o(i,n,a,c,u,"next",t)}function u(t){o(i,n,a,c,u,"throw",t)}c(void 0)}))}}var u=function(){var t=c((function*(t){var r=n.K.cartId;if(!r)throw new Error("No cart ID found");if(!t)throw new Error("No address parameter found");var{countryCode:e,postcode:o,region:c}=t;return(0,a.CA)("\n mutation ESTIMATE_SHIPPING_METHODS_MUTATION(\n $cartId: String!\n $address: EstimateAddressInput!\n ) {\n estimateShippingMethods(\n input: {\n cart_id: $cartId\n address: $address\n }\n ) {\n amount {\n currency\n value\n }\n error_message\n }\n }\n",{variables:{cartId:r,address:{country_code:e||"US",postcode:o||"",region:{region_code:(null==c?void 0:c.code)||""}}}}).then((t=>{var{errors:r,data:e}=t;if(r)return(0,i.H)(r);var n=e.estimateShippingMethods;return 0===n.length?null:n.find((t=>!t.error_message))}))}));return function(r){return t.apply(this,arguments)}}(),s=function(){var t=c((function*(){return(0,a.CA)("\nquery COUNTRIES_QUERY {\n countries {\n label: full_name_locale\n id\n }\n storeConfig {\n defaultCountry: default_country\n }\n}\n",{}).then((t=>{var r,e,{errors:n,data:a}=t;if(n)return(0,i.H)(n);var o=(null==a||null===(r=a.countries)||void 0===r?void 0:r.sort(((t,r)=>t.label.localeCompare(r.label))))||[],c=(null==a||null===(e=a.storeConfig)||void 0===e?void 0:e.defaultCountry)||"US";return o.forEach((t=>{t.isDefaultCountry=t.id===c})),o}))}));return function(){return t.apply(this,arguments)}}(),l=function(){var t=c((function*(t){return(0,a.CA)("\nquery REGIONS_QUERY($id: String) {\n country(id: $id) {\n available_regions {\n code\n\t\t\tname\n }\n }\n}\n",{variables:{id:t}}).then((t=>{var r,{errors:e,data:n}=t;return e?(0,i.H)(e):(null==n||null===(r=n.country)||void 0===r?void 0:r.available_regions)||[]}))}));return function(r){return t.apply(this,arguments)}}()},7788:(t,r,e)=>{e.d(r,{Mf:()=>m,Ej:()=>n.E,iS:()=>c,CA:()=>a.CA,KG:()=>g.K,eE:()=>a.eE,sj:()=>C.KG,QN:()=>C.QN,iM:()=>C.iM,a_:()=>_.a,ii:()=>n.i,cx:()=>y.c,__:()=>a.__,KM:()=>O.a,Ef:()=>a.Ef,o8:()=>a.o8,Uh:()=>a.Uh,EW:()=>h.E});var n=e(7540),a=e(3584),i=e(7218);function o(t,r,e,n,a,i,o){try{var c=t[i](o),u=c.value}catch(t){return void e(t)}c.done?r(u):Promise.resolve(u).then(n,a)}var c=function(){var t,r=(t=function*(){var{disableGuestCart:t}=n.E.getConfig();if(t)throw new Error("Guest cart is disabled");return yield(0,a.CA)("\n mutation CREATE_EMPTY_CART_MUTATION {\n createEmptyCart\n }\n").then((t=>{var{data:r}=t,e=r.createEmptyCart;return i.K.cartId=e,e}))},function(){var r=this,e=arguments;return new Promise((function(n,a){var i=t.apply(r,e);function c(t){o(i,n,a,c,u,"next",t)}function u(t){o(i,n,a,c,u,"throw",t)}c(void 0)}))});return function(){return r.apply(this,arguments)}}(),u=e(4020),s=e(8122),l=e(764),d=e(1136),p="\n mutation ADD_PRODUCTS_TO_CART_MUTATION(\n $cartId: String!, \n $cartItems: [CartItemInput!]!,\n ".concat(d.w,"\n ) {\n addProductsToCart(\n cartId: $cartId\n cartItems: $cartItems\n ) {\n cart {\n ...CartFragment\n }\n user_errors {\n code\n message\n }\n }\n }\n ").concat(d.A,"\n"),f=e(7192);function v(t,r,e,n,a,i,o){try{var c=t[i](o),u=c.value}catch(t){return void e(t)}c.done?r(u):Promise.resolve(u).then(n,a)}var m=function(){var t,r=(t=function*(t){var r=!1,e=i.K.cartId||(yield c().then((t=>(r=!0,t))));return(0,a.CA)(p,{variables:{cartId:e,cartItems:t.map((t=>{var{sku:r,parentSku:e,quantity:n,optionsUIDs:a,enteredOptions:i}=t;return{sku:r,parent_sku:e,quantity:n,selected_options:a,entered_options:i}}))}}).then((e=>{var{errors:n,data:a}=e;if(n)return(0,l.H)(n);var o=(0,u.o)(a.addProductsToCart.cart);if(s.events.emit("cart/updated",o),s.events.emit("cart/data",o),o){var c=o.items.filter((r=>t.some((t=>{var{sku:e}=t;return e===r.sku}))));r?(0,f.S8)(o,c,i.K.locale||"en-US"):(0,f.K6)(o,c,i.K.locale||"en-US")}return o}))},function(){var r=this,e=arguments;return new Promise((function(n,a){var i=t.apply(r,e);function o(t){v(i,n,a,o,c,"next",t)}function c(t){v(i,n,a,o,c,"throw",t)}o(void 0)}))});return function(t){return r.apply(this,arguments)}}(),g=e(6696),y=e(2840),h=e(1580),O=e(4444),_=e(8960),C=e(3884)},1580:(t,r,e)=>{e.d(r,{E:()=>p});var n=e(7218),a=e(3584),i=e(764),o=e(4020),c=e(8122),u=e(1136),s="\n mutation UPDATE_PRODUCTS_FROM_CART_MUTATION(\n $cartId: String!, \n $cartItems: [CartItemUpdateInput!]!,\n ".concat(u.w,"\n ) {\n updateCartItems(\n input: {\n cart_id: $cartId\n cart_items: $cartItems \n }\n ) {\n cart {\n ...CartFragment\n }\n\n }\n }\n ").concat(u.A,"\n"),l=e(7192);function d(t,r,e,n,a,i,o){try{var c=t[i](o),u=c.value}catch(t){return void e(t)}c.done?r(u):Promise.resolve(u).then(n,a)}var p=function(){var t,r=(t=function*(t){var r=n.K.cartId;if(!r)throw Error("Cart ID is not set");return(0,a.CA)(s,{variables:{cartId:r,cartItems:t.map((t=>{var{uid:r,quantity:e}=t;return{cart_item_uid:r,quantity:e}}))}}).then((r=>{var{errors:e,data:a}=r;if(e)return(0,i.H)(e);var u=(0,o.o)(a.updateCartItems.cart);return c.events.emit("cart/updated",u),c.events.emit("cart/data",u),u&&(0,l.K6)(u,t,n.K.locale||"en-US"),u}))},function(){var r=this,e=arguments;return new Promise((function(n,a){var i=t.apply(r,e);function o(t){d(i,n,a,o,c,"next",t)}function c(t){d(i,n,a,o,c,"throw",t)}o(void 0)}))});return function(t){return r.apply(this,arguments)}}()},7192:(t,r,e)=>{function n(t){var{cart:r,locale:e="en-US"}=t;return{id:r.id,items:a(r.items,e),prices:{subtotalExcludingTax:r.subtotal.excludingTax,subtotalIncludingTax:r.subtotal.includingTax},totalQuantity:r.totalQuantity,possibleOnepageCheckout:void 0,giftMessageSelected:void 0,giftWrappingSelected:void 0,source:void 0}}function a(t,r){return t.map((t=>{var e;return{canApplyMsrp:!1,formattedPrice:i(r,t.price.currency,t.price.value),id:t.uid,prices:{price:t.price},product:{productId:t.uid,name:t.name,sku:t.sku,topLevelSku:void 0,specialToDate:void 0,specialFromDate:void 0,newToDate:void 0,newFromDate:void 0,createdAt:void 0,updatedAt:void 0,manufacturer:void 0,countryOfManufacture:void 0,categories:t.url.categories,productType:void 0,pricing:{regularPrice:t.regularPrice.value,minimalPrice:void 0,maximalPrice:void 0,specialPrice:null===(e=t.discount)||void 0===e?void 0:e.value,tierPricing:void 0,currencyCode:t.regularPrice.currency},canonicalUrl:t.url.urlKey,mainImageUrl:t.image.src,image:{src:t.image.src,alt:t.image.alt}},configurableOptions:void 0,quantity:t.quantity}}))}function i(t,r,e){var n=t.replace("_","-");return new Intl.NumberFormat(n,{style:"currency",currency:r}).format(e)}function o(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable}))),e.push.apply(e,n)}return e}function c(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?o(Object(e),!0).forEach((function(r){u(t,r,e[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):o(Object(e)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}))}return t}function u(t,r,e){var n;return(r="symbol"==typeof(n=function(t,r){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,r||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(r,"string"))?n:String(n))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}e.d(r,{K6:()=>y,S8:()=>v,Ws:()=>m});var s={SHOPPING_CART_CONTEXT:"shoppingCartContext",PRODUCT_CONTEXT:"productContext",CHANGED_PRODUCTS_CONTEXT:"changedProductsContext"},l={OPEN_CART:"open-cart",ADD_TO_CART:"add-to-cart",REMOVE_FROM_CART:"remove-from-cart",SHOPPING_CART_VIEW:"shopping-cart-view"};function d(){return window.adobeDataLayer=window.adobeDataLayer||[],window.adobeDataLayer}function p(t,r){var e=d();e.push({[t]:null}),e.push({[t]:r})}function f(t,r){d().push((e=>{var n=e.getState?e.getState():{};e.push({event:t,eventInfo:c(c({},n),r)})}))}function v(t,r,e){var i=n({cart:t,locale:e});p(s.SHOPPING_CART_CONTEXT,c({},i)),f(l.OPEN_CART),a(r,e).forEach((t=>{p(s.PRODUCT_CONTEXT,t.product),g(i,[t],l.ADD_TO_CART)}))}function m(t,r){var e=n({cart:t,locale:r});p(s.SHOPPING_CART_CONTEXT,c({},e)),f(l.SHOPPING_CART_VIEW)}function g(t,r,e){var n={items:r};p(s.SHOPPING_CART_CONTEXT,c({},t)),p(s.CHANGED_PRODUCTS_CONTEXT,c({},n)),f(e)}function y(t,r,e){var a=n({cart:t,locale:e}),i=a.items,o=d(),c=o.getState?o.getState():{},{shoppingCartContext:{items:u=[]}={}}=c;r.forEach((t=>{var r=u.find((r=>r.id===t.uid)),e=i.find((r=>r.id===t.uid));(e||r)&&(!r&&e?(p(s.PRODUCT_CONTEXT,e.product),g(a,[e],l.ADD_TO_CART)):r&&!e?(p(s.PRODUCT_CONTEXT,r.product),g(a,[r],l.REMOVE_FROM_CART)):e.quantity>r.quantity?(p(s.PRODUCT_CONTEXT,e.product),g(a,[e],l.ADD_TO_CART)):(p(s.PRODUCT_CONTEXT,e.product),g(a,[e],l.REMOVE_FROM_CART)))}))}},8122:(r,e,n)=>{r.exports=(t=>{var r={};return n.d(r,t),r})({events:()=>t.events})},8616:(t,e,n)=>{t.exports=(t=>{var r={};return n.d(r,t),r})({FetchGraphQL:()=>r.FetchGraphQL})}};import e from"./runtime.js";import*as n from"./928.js";e.C(n);import*as a from"./api.js";e.C(a);var i,o=(i=7788,e(e.s=i)),c=o.Mf,u=o.Ej,s=o.iS,l=o.CA,d=o.KG,p=o.eE,f=o.sj,v=o.QN,m=o.iM,g=o.a_,y=o.ii,h=o.cx,O=o.__,_=o.KM,C=o.Ef,T=o.o8,P=o.Uh,b=o.EW;export{c as addProductsToCart,u as config,s as createEmptyCart,l as fetchGraphQl,d as getCartData,p as getConfig,f as getCountries,v as getEstimateShipping,m as getRegions,g as getStoreConfig,y as initialize,h as initializeCart,O as removeFetchGraphQlHeader,_ as resetCart,C as setEndpoint,T as setFetchGraphQlHeader,P as setFetchGraphQlHeaders,b as updateProductsFromCart};
|
|
1
|
+
import{C,a as T,s as n,f as m,h as u,t as l,c as I}from"./chunks/getStoreConfig.js";import{j as P,g as D,m as b,i as F,k as y,r as $,l as v,b as w,d as x,e as Q}from"./chunks/getStoreConfig.js";import{events as d}from"@dropins/tools/event-bus.js";import{p as f,a as _}from"./chunks/updateProductsFromCart.js";import{u as H}from"./chunks/updateProductsFromCart.js";import{a as Y,g as j,b as q}from"./chunks/getEstimateShipping.js";import"@dropins/tools/fetch-graphql.js";import"@dropins/tools/lib.js";const g=`
|
|
2
|
+
mutation ADD_PRODUCTS_TO_CART_MUTATION(
|
|
3
|
+
$cartId: String!,
|
|
4
|
+
$cartItems: [CartItemInput!]!,
|
|
5
|
+
${C}
|
|
6
|
+
) {
|
|
7
|
+
addProductsToCart(
|
|
8
|
+
cartId: $cartId
|
|
9
|
+
cartItems: $cartItems
|
|
10
|
+
) {
|
|
11
|
+
cart {
|
|
12
|
+
...CartFragment
|
|
13
|
+
}
|
|
14
|
+
user_errors {
|
|
15
|
+
code
|
|
16
|
+
message
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
${T}
|
|
21
|
+
`,G=async e=>{let r=!1;const s=n.cartId||await A().then(a=>(r=!0,a));return m(g,{variables:{cartId:s,cartItems:e.map(({sku:a,parentSku:i,quantity:t,optionsUIDs:o,enteredOptions:c})=>({sku:a,parent_sku:i,quantity:t,selected_options:o,entered_options:c}))}}).then(({errors:a,data:i})=>{if(a)return u(a);const t=l(i.addProductsToCart.cart);if(d.emit("cart/updated",t),d.emit("cart/data",t),t){const o=t.items.filter(c=>e.some(({sku:p})=>p===c.sku));r?f(t,o,n.locale||"en-US"):_(t,o,n.locale||"en-US")}return t})},h=`
|
|
22
|
+
mutation CREATE_EMPTY_CART_MUTATION {
|
|
23
|
+
createEmptyCart
|
|
24
|
+
}
|
|
25
|
+
`,A=async()=>{const{disableGuestCart:e}=I.getConfig();if(e)throw new Error("Guest cart is disabled");return await m(h).then(({data:r})=>{const s=r.createEmptyCart;return n.cartId=s,s})};export{G as addProductsToCart,I as config,A as createEmptyCart,m as fetchGraphQl,P as getCartData,D as getConfig,Y as getCountries,j as getEstimateShipping,q as getRegions,b as getStoreConfig,F as initialize,y as initializeCart,$ as removeFetchGraphQlHeader,v as resetCart,w as setEndpoint,x as setFetchGraphQlHeader,Q as setFetchGraphQlHeaders,H as updateProductsFromCart};
|
|
26
|
+
//# sourceMappingURL=api.js.map
|
package/api.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sources":["../src/api/addProductsToCart/graphql/AddProductsToCartMutation.ts","../src/api/addProductsToCart/addProductsToCart.ts","../src/api/createEmptyCart/graphql/CreateCartMutation.ts","../src/api/createEmptyCart/createEmptyCart.ts"],"sourcesContent":["import { CART_FRAGMENT, CART_ITEMS_PAGINATION_ARGUMENTS } from '@/cart/api/graphql/CartFragment';\n\nexport const ADD_PRODUCTS_TO_CART_MUTATION = `\n mutation ADD_PRODUCTS_TO_CART_MUTATION(\n $cartId: String!, \n $cartItems: [CartItemInput!]!,\n ${CART_ITEMS_PAGINATION_ARGUMENTS}\n ) {\n addProductsToCart(\n cartId: $cartId\n cartItems: $cartItems\n ) {\n cart {\n ...CartFragment\n }\n user_errors {\n code\n message\n }\n }\n }\n ${CART_FRAGMENT}\n`;\n","import { fetchGraphQl, createEmptyCart } 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/event-bus';\nimport { handleFetchError } from '@/cart/lib/fetch-error';\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 }[]\n): Promise<CartModel | null> => {\n let isNewCart = false;\n\n const cartId =\n state.cartId ||\n (await createEmptyCart().then((id) => {\n isNewCart = true;\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 }) => ({\n sku,\n parent_sku,\n quantity,\n selected_options,\n entered_options,\n })\n ),\n },\n }).then(({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n const payload = transformCart(data.addProductsToCart.cart);\n\n events.emit('cart/updated', payload);\n events.emit('cart/data', payload);\n\n if (payload) {\n const updatedItems = payload.items.filter((item) =>\n items.some(({ sku }) => sku === item.sku)\n );\n if (isNewCart) {\n // Publish open cart event when the first item is added to the cart\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","export const CREATE_EMPTY_CART_MUTATION = `\n mutation CREATE_EMPTY_CART_MUTATION {\n createEmptyCart\n }\n`;\n","import { config, fetchGraphQl } from '@/cart/api';\nimport { state } from '@/cart/lib/state';\n\nimport { CREATE_EMPTY_CART_MUTATION } from './graphql/CreateCartMutation';\n\nexport const createEmptyCart = 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_EMPTY_CART_MUTATION).then(({ data }) => {\n const cartId = data.createEmptyCart;\n\n // Set cart id in state\n state.cartId = cartId;\n\n return cartId;\n });\n};\n"],"names":["ADD_PRODUCTS_TO_CART_MUTATION","CART_ITEMS_PAGINATION_ARGUMENTS","CART_FRAGMENT","addProductsToCart","items","isNewCart","cartId","state","createEmptyCart","then","id","fetchGraphQl","variables","cartItems","map","sku","parentSku","parent_sku","quantity","optionsUIDs","selected_options","enteredOptions","entered_options","errors","data","handleFetchError","payload","transformCart","cart","emit","updatedItems","filter","some","item","publishOpenCartEvent","locale","publishCartUpdateEvents","CREATE_EMPTY_CART_MUTATION","disableGuestCart","config","getConfig","Error"],"mappings":"ofAEO,MAAMA,EAAiC;AAAA;AAAA;AAAA;AAAA,QAItCC,CAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAepCC,CAAc;AAAA,ECXLC,EAAoB,MAC/BC,GAO8B,CAC9B,IAAIC,EAAY,GAEhB,MAAMC,EACJC,EAAMD,QACL,MAAME,IAAkBC,KAAaC,IACxBL,EAAA,GACLK,EACR,EAEH,OAAOC,EAAaX,EAA+B,CACjDY,UAAW,CACTN,OAAAA,EACAO,UAAWT,EAAMU,IACf,CAAC,CACCC,IAAAA,EACAC,UAAWC,EACXC,SAAAA,EACAC,YAAaC,EACbC,eAAgBC,CAAAA,KACX,CACLP,IAAAA,EACAE,WAAAA,EACAC,SAAAA,EACAE,iBAAAA,EACAE,gBAAAA,CAAAA,EAEJ,CACF,CAAA,CACD,EAAEb,KAAK,CAAC,CAAEc,OAAAA,EAAQC,KAAAA,CAAAA,IAAW,CACxBD,GAAAA,EAAQ,OAAOE,EAAiBF,CAAM,EAE1C,MAAMG,EAAUC,EAAcH,EAAKrB,kBAAkByB,IAAI,EAKzD,GAHOC,EAAAA,KAAK,eAAgBH,CAAO,EAC5BG,EAAAA,KAAK,YAAaH,CAAO,EAE5BA,EAAS,CACX,MAAMI,EAAeJ,EAAQtB,MAAM2B,OACjC3B,GAAAA,EAAM4B,KAAK,CAAC,CAAEjB,IAAAA,CAAUA,IAAAA,IAAQkB,EAAKlB,GAAG,CAC1C,EACIV,EAEF6B,EAAqBR,EAASI,EAAcvB,EAAM4B,QAAU,OAAO,EAGnEC,EAAwBV,EAASI,EAAcvB,EAAM4B,QAAU,OAAO,CAE1E,CAEOT,OAAAA,CAAAA,CACR,CACH,ECtEaW,EAA8B;AAAA;AAAA;AAAA;AAAA,ECK9B7B,EAAkB,SAAY,CACnC,KAAA,CAAE8B,iBAAAA,CAAAA,EAAqBC,EAAOC,YAGpC,GAAIF,EACI,MAAA,IAAIG,MAAM,wBAAwB,EAI1C,OAAO,MAAM9B,EAAa0B,CAA0B,EAAE5B,KAAK,CAAC,CAAEe,KAAAA,CAAAA,IAAW,CACvE,MAAMlB,EAASkB,EAAKhB,gBAGpBD,OAAAA,EAAMD,OAASA,EAERA,CAAAA,CACR,CACH"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{classes as o}from"@dropins/tools/lib.js";import{IllustratedMessage as i,Icon as s,Button as m}from"@dropins/tools/components.js";import{jsx as r}from"@dropins/tools/preact-jsx-runtime.js";import*as t from"@dropins/tools/preact-compat.js";import{useText as l}from"@dropins/tools/i18n.js";const p=e=>t.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},t.createElement("g",{clipPath:"url(#clip0_102_196)"},t.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M18.3601 18.16H6.5601L4.8801 3H2.3501M19.6701 19.59C19.6701 20.3687 19.0388 21 18.2601 21C17.4814 21 16.8501 20.3687 16.8501 19.59C16.8501 18.8113 17.4814 18.18 18.2601 18.18C19.0388 18.18 19.6701 18.8113 19.6701 19.59ZM7.42986 19.59C7.42986 20.3687 6.79858 21 6.01986 21C5.24114 21 4.60986 20.3687 4.60986 19.59C4.60986 18.8113 5.24114 18.18 6.01986 18.18C6.79858 18.18 7.42986 18.8113 7.42986 19.59Z",stroke:"currentColor",strokeLinejoin:"round"}),t.createElement("path",{vectorEffect:"non-scaling-stroke",d:"M5.25 6.37L20.89 8.06L20.14 14.8H6.19",stroke:"currentColor",strokeLinejoin:"round"})),t.createElement("defs",null,t.createElement("clipPath",{id:"clip0_102_196"},t.createElement("rect",{vectorEffect:"non-scaling-stroke",width:19.29,height:19.5,fill:"white",transform:"translate(2.3501 2.25)"})))),E=({className:e,children:d,ctaLinkURL:a,...n})=>{const c=l({emptyCart:"Cart.EmptyCart.heading",cta:"Cart.EmptyCart.cta"});return r("div",{...n,className:o(["cart-empty-cart",e]),children:r(i,{className:o(["cart-empty-cart__wrapper",e]),"data-testid":"cart-empty-cart",heading:c.emptyCart,icon:r(s,{className:"cart-empty-cart__icon",source:p}),action:a?r(m,{"data-testid":"cart-empty-cart-button",size:"medium",variant:"primary",type:"submit",href:a,children:c.cta},"routeHome"):void 0})})};export{E};
|
|
2
|
+
//# sourceMappingURL=MiniCart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MiniCart.js","sources":["../../node_modules/@adobe/elsie/src/icons/Cart.svg","../../src/components/EmptyCart/EmptyCart.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgCart = (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_102_196)\" }, /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M18.3601 18.16H6.5601L4.8801 3H2.3501M19.6701 19.59C19.6701 20.3687 19.0388 21 18.2601 21C17.4814 21 16.8501 20.3687 16.8501 19.59C16.8501 18.8113 17.4814 18.18 18.2601 18.18C19.0388 18.18 19.6701 18.8113 19.6701 19.59ZM7.42986 19.59C7.42986 20.3687 6.79858 21 6.01986 21C5.24114 21 4.60986 20.3687 4.60986 19.59C4.60986 18.8113 5.24114 18.18 6.01986 18.18C6.79858 18.18 7.42986 18.8113 7.42986 19.59Z\", stroke: \"currentColor\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { vectorEffect: \"non-scaling-stroke\", d: \"M5.25 6.37L20.89 8.06L20.14 14.8H6.19\", stroke: \"currentColor\", strokeLinejoin: \"round\" })), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"clip0_102_196\" }, /* @__PURE__ */ React.createElement(\"rect\", { vectorEffect: \"non-scaling-stroke\", width: 19.29, height: 19.5, fill: \"white\", transform: \"translate(2.3501 2.25)\" }))));\nexport default SvgCart;\n","import { FunctionComponent } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { classes } from '@adobe/elsie/lib';\nimport { useText } from '@adobe/elsie/i18n';\nimport { Button, Icon, IllustratedMessage } from '@adobe/elsie/components';\nimport { Cart } from '@adobe/elsie/icons';\n\nimport '@/cart/components/EmptyCart/EmptyCart.css';\n\nexport interface EmptyCartProps extends HTMLAttributes<HTMLDivElement> {\n ctaLinkURL?: string;\n}\n\nexport const EmptyCart: FunctionComponent<EmptyCartProps> = ({\n className,\n children,\n ctaLinkURL,\n ...props\n}) => {\n const labels = useText({\n emptyCart: 'Cart.EmptyCart.heading',\n cta: 'Cart.EmptyCart.cta',\n });\n\n return (\n <div {...props} className={classes(['cart-empty-cart', className])}>\n <IllustratedMessage\n className={classes(['cart-empty-cart__wrapper', className])}\n data-testid=\"cart-empty-cart\"\n heading={labels.emptyCart}\n icon={<Icon className=\"cart-empty-cart__icon\" source={Cart} />}\n action={\n ctaLinkURL ? (\n <Button\n data-testid=\"cart-empty-cart-button\"\n size=\"medium\"\n variant=\"primary\"\n key=\"routeHome\"\n type=\"submit\"\n href={ctaLinkURL}\n >\n {labels.cta}\n </Button>\n ) : undefined\n }\n />\n </div>\n );\n};\n"],"names":["SvgCart","props","React","EmptyCart","className","children","ctaLinkURL","labels","useText","emptyCart","cta","_jsx","classes","IllustratedMessage","heading","icon","Icon","source","Cart","action","Button","size","variant","type","href","undefined"],"mappings":"sSACA,MAAMA,EAAWC,GAA0BC,EAAM,cAAc,MAAO,CAAE,MAAO,GAAI,OAAQ,GAAI,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,GAAGD,CAAO,EAAkBC,EAAM,cAAc,IAAK,CAAE,SAAU,qBAAqB,EAAoBA,EAAM,cAAc,OAAQ,CAAE,aAAc,qBAAsB,EAAG,oZAAqZ,OAAQ,eAAgB,eAAgB,OAAO,CAAE,EAAmBA,EAAM,cAAc,OAAQ,CAAE,aAAc,qBAAsB,EAAG,wCAAyC,OAAQ,eAAgB,eAAgB,OAAS,CAAA,CAAC,EAAmBA,EAAM,cAAc,OAAQ,KAAsBA,EAAM,cAAc,WAAY,CAAE,GAAI,eAAe,EAAoBA,EAAM,cAAc,OAAQ,CAAE,aAAc,qBAAsB,MAAO,MAAO,OAAQ,KAAM,KAAM,QAAS,UAAW,wBAAwB,CAAE,CAAC,CAAC,CAAC,ECYtuCC,EAA+CA,CAAC,CAC3DC,UAAAA,EACAC,SAAAA,EACAC,WAAAA,EACA,GAAGL,CACL,IAAM,CACJ,MAAMM,EAASC,EAAQ,CACrBC,UAAW,yBACXC,IAAK,oBAAA,CACN,EAED,OACEC,EAAA,MAAA,CAAA,GAASV,EAAOG,UAAWQ,EAAQ,CAAC,kBAAmBR,CAAS,CAAC,EAAEC,SACjEM,EAACE,EAAkB,CACjBT,UAAWQ,EAAQ,CAAC,2BAA4BR,CAAS,CAAC,EAC1D,cAAY,kBACZU,QAASP,EAAOE,UAChBM,KAAMJ,EAACK,EAAI,CAACZ,UAAU,wBAAwBa,OAAQC,CAAAA,CAAO,EAC7DC,OACEb,EACEK,EAACS,EAAM,CACL,cAAY,yBACZC,KAAK,SACLC,QAAQ,UAERC,KAAK,SACLC,KAAMlB,EAAWD,SAEhBE,EAAOG,GAAAA,EAJJ,WAKE,EACNe,MAAAA,CAEP,CAAA,CACE,CAET","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import{s as d,f as u,h as a}from"./getStoreConfig.js";import"@dropins/tools/event-bus.js";const f=`
|
|
2
|
+
mutation ESTIMATE_SHIPPING_METHODS_MUTATION(
|
|
3
|
+
$cartId: String!
|
|
4
|
+
$address: EstimateAddressInput!
|
|
5
|
+
) {
|
|
6
|
+
estimateShippingMethods(
|
|
7
|
+
input: {
|
|
8
|
+
cart_id: $cartId
|
|
9
|
+
address: $address
|
|
10
|
+
}
|
|
11
|
+
) {
|
|
12
|
+
amount {
|
|
13
|
+
currency
|
|
14
|
+
value
|
|
15
|
+
}
|
|
16
|
+
error_message
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
`,E=`
|
|
20
|
+
query COUNTRIES_QUERY {
|
|
21
|
+
countries {
|
|
22
|
+
label: full_name_locale
|
|
23
|
+
id
|
|
24
|
+
}
|
|
25
|
+
storeConfig {
|
|
26
|
+
defaultCountry: default_country
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
`,_=`
|
|
30
|
+
query REGIONS_QUERY($id: String) {
|
|
31
|
+
country(id: $id) {
|
|
32
|
+
available_regions {
|
|
33
|
+
code
|
|
34
|
+
name
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
`,p=async t=>{const e=d.cartId;if(!e)throw new Error("No cart ID found");if(!t)throw new Error("No address parameter found");const{countryCode:r,postcode:n,region:o}=t;return u(f,{variables:{cartId:e,address:{country_code:r||"US",postcode:n||"",region:{region_code:(o==null?void 0:o.code)||""}}}}).then(({errors:i,data:s})=>{if(i)return a(i);const c=s.estimateShippingMethods;return c.length===0?null:c.find(l=>!l.error_message)})},I=async()=>u(E,{}).then(({errors:t,data:e})=>{var o,i;if(t)return a(t);const r=((o=e==null?void 0:e.countries)==null?void 0:o.sort((s,c)=>s.label.localeCompare(c.label)))||[],n=((i=e==null?void 0:e.storeConfig)==null?void 0:i.defaultCountry)||"US";return r.forEach(s=>{s.isDefaultCountry=s.id===n}),r}),S=async t=>u(_,{variables:{id:t}}).then(({errors:e,data:r})=>{var n;return e?a(e):((n=r==null?void 0:r.country)==null?void 0:n.available_regions)||[]});export{I as a,S as b,p as g};
|
|
39
|
+
//# sourceMappingURL=getEstimateShipping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getEstimateShipping.js","sources":["../../src/api/getEstimateShipping/graphql/estimateShippingMethodsMutation.ts","../../src/api/getEstimateShipping/graphql/countriesAndRegionsQueries.ts","../../src/api/getEstimateShipping/getEstimateShipping.ts"],"sourcesContent":["export const ESTIMATE_SHIPPING_METHODS_MUTATION = `\n mutation ESTIMATE_SHIPPING_METHODS_MUTATION(\n $cartId: String!\n $address: EstimateAddressInput!\n ) {\n estimateShippingMethods(\n input: {\n cart_id: $cartId\n address: $address\n }\n ) {\n amount {\n currency\n value\n }\n error_message\n }\n }\n`;\n","export const COUNTRIES_QUERY = `\nquery COUNTRIES_QUERY {\n countries {\n label: full_name_locale\n id\n }\n storeConfig {\n defaultCountry: default_country\n }\n}\n`;\n\nexport const REGIONS_QUERY = `\nquery REGIONS_QUERY($id: String) {\n country(id: $id) {\n available_regions {\n code\n\t\t\tname\n }\n }\n}\n`;\n\nexport type CountryData = {\n label: string;\n id: string;\n available_regions?: Array<{\n code: string;\n name: string;\n }>;\n isDefaultCountry?: boolean\n};\n","import { state } from '@/cart/lib/state';\nimport { fetchGraphQl } from '@/cart/api';\nimport { handleFetchError } from '@/cart/lib/fetch-error';\n\nimport { ESTIMATE_SHIPPING_METHODS_MUTATION } from './graphql/estimateShippingMethodsMutation';\nimport {\n COUNTRIES_QUERY,\n CountryData,\n REGIONS_QUERY,\n} from './graphql/countriesAndRegionsQueries';\n\nexport interface EstimateAddressInput {\n countryCode: string;\n postcode?: string;\n region?: {\n code?: string;\n };\n}\n\nexport const getEstimateShipping = async (\n address: EstimateAddressInput\n): Promise<any | null> => {\n const cartId = state.cartId;\n\n if (!cartId) throw new Error('No cart ID found');\n if (!address) throw new Error('No address parameter found');\n\n const { countryCode, postcode, region } = address;\n\n return fetchGraphQl(ESTIMATE_SHIPPING_METHODS_MUTATION, {\n variables: {\n cartId,\n address: {\n country_code: countryCode || 'US',\n postcode: postcode || '',\n region: {\n region_code: region?.code || '',\n },\n },\n },\n }).then(({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n const estimateShippingMethods: Array<any> = data.estimateShippingMethods;\n\n if (estimateShippingMethods.length === 0) {\n return null;\n }\n\n return estimateShippingMethods.find((method) => !method.error_message);\n });\n};\n\nexport const getCountries = async (): Promise<[CountryData]> => {\n return fetchGraphQl(COUNTRIES_QUERY, {}).then(({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n const sortedCountries =\n data?.countries?.sort((a: any, b: any) =>\n a.label.localeCompare(b.label)\n ) || [];\n\n const defaultCountry = data?.storeConfig?.defaultCountry || 'US';\n\n // Set the default country property\n sortedCountries.forEach((country: any) => {\n country.isDefaultCountry = country.id === defaultCountry;\n });\n\n return sortedCountries;\n });\n};\n\nexport const getRegions = async (\n countryId: string\n): Promise<Array<{ code: string; name: string }>> => {\n return fetchGraphQl(REGIONS_QUERY, {\n variables: {\n id: countryId,\n },\n }).then(({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n return data?.country?.available_regions || [];\n });\n};\n"],"names":["ESTIMATE_SHIPPING_METHODS_MUTATION","COUNTRIES_QUERY","REGIONS_QUERY","getEstimateShipping","address","cartId","state","Error","countryCode","postcode","region","fetchGraphQl","variables","country_code","region_code","code","then","errors","data","handleFetchError","estimateShippingMethods","length","find","method","error_message","getCountries","sortedCountries","countries","sort","a","b","label","localeCompare","defaultCountry","storeConfig","forEach","country","isDefaultCountry","id","getRegions","countryId","available_regions"],"mappings":"0FAAO,MAAMA,EAAsC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECAtCC,EAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYnBC,EAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECOjBC,EAAsB,MACjCC,GACwB,CACxB,MAAMC,EAASC,EAAMD,OAErB,GAAI,CAACA,EAAc,MAAA,IAAIE,MAAM,kBAAkB,EAC/C,GAAI,CAACH,EAAe,MAAA,IAAIG,MAAM,4BAA4B,EAEpD,KAAA,CAAEC,YAAAA,EAAaC,SAAAA,EAAUC,OAAAA,CAAWN,EAAAA,EAE1C,OAAOO,EAAaX,EAAoC,CACtDY,UAAW,CACTP,OAAAA,EACAD,QAAS,CACPS,aAAcL,GAAe,KAC7BC,SAAUA,GAAY,GACtBC,OAAQ,CACNI,aAAaJ,GAAAA,YAAAA,EAAQK,OAAQ,EAC/B,CACF,CACF,CAAA,CACD,EAAEC,KAAK,CAAC,CAAEC,OAAAA,EAAQC,KAAAA,CAAAA,IAAW,CACxBD,GAAAA,EAAQ,OAAOE,EAAiBF,CAAM,EAE1C,MAAMG,EAAsCF,EAAKE,wBAE7CA,OAAAA,EAAwBC,SAAW,EAC9B,KAGFD,EAAwBE,KAAiBC,GAAA,CAACA,EAAOC,aAAa,CAAA,CACtE,CACH,EAEaC,EAAe,SACnBd,EAAaV,EAAiB,EAAE,EAAEe,KAAK,CAAC,CAAEC,OAAAA,EAAQC,KAAAA,CAAAA,IAAW,SAC9DD,GAAAA,EAAQ,OAAOE,EAAiBF,CAAM,EAE1C,MAAMS,IACJR,EAAAA,GAAAA,YAAAA,EAAMS,YAANT,YAAAA,EAAiBU,KAAK,CAACC,EAAQC,IAC7BD,EAAEE,MAAMC,cAAcF,EAAEC,KAAK,KAC1B,CAAA,EAEDE,IAAiBf,EAAAA,GAAAA,YAAAA,EAAMgB,cAANhB,YAAAA,EAAmBe,iBAAkB,KAG5CE,OAAAA,EAAAA,QAASC,GAAiB,CAChCC,EAAAA,iBAAmBD,EAAQE,KAAOL,CAAAA,CAC3C,EAEMP,CAAAA,CACR,EAGUa,EAAa,MACxBC,GAEO7B,EAAaT,EAAe,CACjCU,UAAW,CACT0B,GAAIE,CACN,CAAA,CACD,EAAExB,KAAK,CAAC,CAAEC,OAAAA,EAAQC,KAAAA,CAAAA,IAAW,OACxBD,OAAAA,EAAeE,EAAiBF,CAAM,IAEnCC,EAAAA,GAAAA,YAAAA,EAAMkB,UAANlB,YAAAA,EAAeuB,oBAAqB,EAAE,CAC9C"}
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
import{events as i}from"@dropins/tools/event-bus.js";import{FetchGraphQL as z}from"@dropins/tools/fetch-graphql.js";import{Initializer as M}from"@dropins/tools/lib.js";function N(e){const t=document.cookie.split(";");for(let n=0;n<t.length;n++){const r=t[n].trim();if(r.indexOf(`${e}=`)===0)return r.substring(e.length+1)}return null}function k(e){e?sessionStorage.setItem("DROPIN__CART__CART__DATA",JSON.stringify(e)):sessionStorage.removeItem("DROPIN__CART__CART__DATA")}function F(){const e=sessionStorage.getItem("DROPIN__CART__CART__DATA");return e?JSON.parse(e):null}const U=(()=>{const e=F();return{cartId:null,authenticated:e?!e.isGuestCart:!1}})(),u=new Proxy(U,{set(e,t,n){var r;if(e[t]=n,t==="cartId"){if(n===u.cartId)return!0;if(n===null)return document.cookie="DROPIN__CART__CART-ID=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/",!0;const a=(r=u.config)==null?void 0:r.cartExpiresInDays;a||console.warn('Missing "expiresInDays" config. Cookie expiration will default to 30 days.');const c=new Date;c.setDate(c.getDate()+(a??30)),document.cookie=`DROPIN__CART__CART-ID=${n}; expires=${c.toUTCString()}; path=/`}return!0},get(e,t){return t==="cartId"?N("DROPIN__CART__CART-ID"):e[t]}}),O=new M({init:async e=>{const t={disableGuestCart:!1,...e};O.config.setConfig(t),o().catch(console.error)},listeners:()=>[i.on("authenticated",async e=>{if(u.authenticated&&!e){i.emit("cart/reset",void 0);return}e&&!u.authenticated&&(u.authenticated=e,o().catch(console.error))},{eager:!0}),i.on("locale",async e=>{e!==u.locale&&(u.locale=e,o().catch(console.error))}),i.on("cart/reset",()=>{$().catch(console.error)}),i.on("cart/data",e=>{k(e)})]}),Q=O.config,{setEndpoint:ie,setFetchGraphQlHeader:le,removeFetchGraphQlHeader:se,setFetchGraphQlHeaders:oe,fetchGraphQl:_,getConfig:_e}=new z().getMethods();function m(e){var t,n,r,a,c,l,s;return e?{id:e.id,totalQuantity:H(e),errors:B(e==null?void 0:e.itemsV2),items:S(e==null?void 0:e.itemsV2),miniCartMaxItems:S(e==null?void 0:e.itemsV2).slice(0,((t=u.config)==null?void 0:t.miniCartMaxItemsDisplay)??10),total:{value:e.prices.grand_total.value,currency:e.prices.grand_total.currency},subtotal:{excludingTax:{value:(n=e.prices.subtotal_excluding_tax)==null?void 0:n.value,currency:(r=e.prices.subtotal_excluding_tax)==null?void 0:r.currency},includingTax:{value:(a=e.prices.subtotal_including_tax)==null?void 0:a.value,currency:(c=e.prices.subtotal_including_tax)==null?void 0:c.currency},includingDiscountOnly:{value:(l=e.prices.subtotal_with_discount_excluding_tax)==null?void 0:l.value,currency:(s=e.prices.subtotal_with_discount_excluding_tax)==null?void 0:s.currency}},appliedTaxes:D(e.prices.applied_taxes),totalTax:q(e.prices.applied_taxes),appliedDiscounts:D(e.prices.discounts),isVirtual:e.is_virtual,addresses:{shipping:e.shipping_addresses&&L(e.shipping_addresses)},isGuestCart:!u.authenticated}:null}function q(e){return e!=null&&e.length?e.reduce((t,n)=>({value:t.value+n.amount.value,currency:n.amount.currency}),{value:0,currency:""}):null}function S(e){var n;if(!((n=e==null?void 0:e.items)!=null&&n.length))return[];const t=u.config;return e.items.map(r=>{var a,c,l,s,y,C,h,b,I,v,x,T,R,E,A;return{itemType:r.__typename,uid:r.uid,url:{urlKey:r.product.url_key,categories:r.product.categories.map(P=>P.url_key)},quantity:r.quantity,sku:r.product.sku,name:r.product.name,image:{src:t!=null&&t.useConfigurableParentThumbnail?r.product.thumbnail.url:((c=(a=r.configured_variant)==null?void 0:a.thumbnail)==null?void 0:c.url)||r.product.thumbnail.url,alt:t!=null&&t.useConfigurableParentThumbnail?r.product.thumbnail.label:((s=(l=r.configured_variant)==null?void 0:l.thumbnail)==null?void 0:s.label)||r.product.thumbnail.label},price:{value:r.prices.price.value,currency:r.prices.price.currency},links:J(r.links),total:r.__typename==="SimpleCartItem"&&r.customizable_options.length!==0||r.__typename==="BundleCartItem"?{value:r.prices.row_total.value,currency:r.prices.row_total.currency}:{value:(y=r.prices.original_row_total)==null?void 0:y.value,currency:(C=r.prices.original_row_total)==null?void 0:C.currency},discount:{value:r.prices.total_item_discount.value,currency:r.prices.total_item_discount.currency},regularPrice:r.__typename==="ConfigurableCartItem"?{value:(b=(h=r.configured_variant)==null?void 0:h.price_range)==null?void 0:b.maximum_price.regular_price.value,currency:(v=(I=r.configured_variant)==null?void 0:I.price_range)==null?void 0:v.maximum_price.regular_price.currency}:r.__typename==="GiftCardCartItem"||r.__typename==="SimpleCartItem"&&r.customizable_options.length!==0||r.__typename==="BundleCartItem"?{value:r.prices.price.value,currency:r.prices.price.currency}:{value:(x=r.product.price_range)==null?void 0:x.maximum_price.regular_price.value,currency:(T=r.product.price_range)==null?void 0:T.maximum_price.regular_price.currency},discounted:r.__typename==="BundleCartItem"||r.__typename==="SimpleCartItem"&&r.customizable_options.length!==0?!1:r.__typename==="ConfigurableCartItem"?((E=(R=r.configured_variant)==null?void 0:R.price_range)==null?void 0:E.maximum_price.discount.amount_off)>0:((A=r.product.price_range)==null?void 0:A.maximum_price.discount.amount_off)>0,bundleOptions:r.__typename==="BundleCartItem"?V(r.bundle_options):null,selectedOptions:j(r.configurable_options),customizableOptions:Y(r.customizable_options),sender:r.__typename==="GiftCardCartItem"?r.sender_name:null,senderEmail:r.__typename==="GiftCardCartItem"?r.sender_email:null,recipient:r.__typename==="GiftCardCartItem"?r.recipient_name:null,recipientEmail:r.__typename==="GiftCardCartItem"?r.recipient_email:null,message:r.__typename==="GiftCardCartItem"?r.message:null,discountedTotal:{value:r.prices.row_total.value,currency:r.prices.row_total.currency}}})}function B(e){var n;const t=(n=e==null?void 0:e.items)==null?void 0:n.reduce((r,a)=>{var c;return(c=a.errors)==null||c.forEach(l=>{r.push({uid:a.uid,text:l.message})}),r},[]);return t!=null&&t.length?t:null}function D(e){return e!=null&&e.length?e.map(t=>({amount:{value:t.amount.value,currency:t.amount.currency},label:t.label})):[]}function V(e){const t=e==null?void 0:e.map(r=>({uid:r.uid,label:r.label,value:r.values.map(a=>a.label).join(", ")})),n={};return t==null||t.forEach(r=>{n[r.label]=r.value}),Object.keys(n).length>0?n:null}function j(e){const t=e==null?void 0:e.map(r=>({uid:r.configurable_product_option_uid,label:r.option_label,value:r.value_label})),n={};return t==null||t.forEach(r=>{n[r.label]=r.value}),Object.keys(n).length>0?n:null}function Y(e){const t=e==null?void 0:e.map(r=>({uid:r.customizable_option_uid,label:r.label,type:r.type,values:r.values.map(a=>({uid:a.customizable_option_value_uid,label:a.label,value:a.value}))})),n={};return t==null||t.forEach(r=>{switch(r.type){case"field":case"area":case"date_time":n[r.label]=r.values[0].value;break;case"radio":case"drop_down":n[r.label]=r.values[0].label;break;case"multiple":case"checkbox":n[r.label]=r.values.reduce((a,c)=>a?`${a}, ${c.label}`:c.label,"");break}}),n}function H(e){var t,n;return((t=u.config)==null?void 0:t.cartSummaryDisplayTotal)===0?e.itemsV2.items.length:((n=u.config)==null?void 0:n.cartSummaryDisplayTotal)===1?e.total_quantity:e.itemsV2.items.length}function J(e){return(e==null?void 0:e.length)>0?{count:e.length,result:e.map(t=>t.title).join(", ")}:null}function L(e){return e!=null&&e.length?e.map(t=>{var n,r;return{countryCode:(n=t.country)==null?void 0:n.code,zipCode:t.postcode,regionCode:(r=t.region)==null?void 0:r.code}}):null}function Z(e){return e?{displayMiniCart:e.minicart_display,miniCartMaxItemsDisplay:e.minicart_max_items,cartExpiresInDays:e.cart_expires_in_days,cartSummaryDisplayTotal:e.cart_summary_display_quantity,defaultCountry:e.default_country,categoryFixedProductTaxDisplaySetting:e.category_fixed_product_tax_display_setting,productFixedProductTaxDisplaySetting:e.product_fixed_product_tax_display_setting,salesFixedProductTaxDisplaySetting:e.sales_fixed_product_tax_display_setting,shoppingCartDisplayZeroTax:e.shopping_cart_display_zero_tax,useConfigurableParentThumbnail:e.configurable_thumbnail_source==="parent"}:null}const d=e=>{const t=e.findIndex(({extensions:a})=>(a==null?void 0:a.category)==="graphql-authorization")>-1,n=e.findIndex(({extensions:a})=>(a==null?void 0:a.category)==="graphql-no-such-entity")>-1,r=e.map(a=>a.message).join(" ");if(t||n)return $(),console.error(r),null;throw Error(r)},p=`
|
|
2
|
+
customizable_options {
|
|
3
|
+
type
|
|
4
|
+
customizable_option_uid
|
|
5
|
+
label
|
|
6
|
+
is_required
|
|
7
|
+
values {
|
|
8
|
+
label
|
|
9
|
+
value
|
|
10
|
+
price{
|
|
11
|
+
type
|
|
12
|
+
units
|
|
13
|
+
value
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
`,G=`
|
|
18
|
+
price_range {
|
|
19
|
+
minimum_price {
|
|
20
|
+
regular_price {
|
|
21
|
+
value
|
|
22
|
+
currency
|
|
23
|
+
}
|
|
24
|
+
final_price {
|
|
25
|
+
value
|
|
26
|
+
currency
|
|
27
|
+
}
|
|
28
|
+
discount {
|
|
29
|
+
percent_off
|
|
30
|
+
amount_off
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
maximum_price {
|
|
34
|
+
regular_price {
|
|
35
|
+
value
|
|
36
|
+
currency
|
|
37
|
+
}
|
|
38
|
+
final_price {
|
|
39
|
+
value
|
|
40
|
+
currency
|
|
41
|
+
}
|
|
42
|
+
discount {
|
|
43
|
+
percent_off
|
|
44
|
+
amount_off
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
`,g=`
|
|
49
|
+
fragment CartFragment on Cart {
|
|
50
|
+
id
|
|
51
|
+
total_quantity
|
|
52
|
+
is_virtual
|
|
53
|
+
prices {
|
|
54
|
+
subtotal_with_discount_excluding_tax {
|
|
55
|
+
currency
|
|
56
|
+
value
|
|
57
|
+
}
|
|
58
|
+
subtotal_including_tax {
|
|
59
|
+
currency
|
|
60
|
+
value
|
|
61
|
+
}
|
|
62
|
+
subtotal_excluding_tax {
|
|
63
|
+
currency
|
|
64
|
+
value
|
|
65
|
+
}
|
|
66
|
+
grand_total {
|
|
67
|
+
currency
|
|
68
|
+
value
|
|
69
|
+
}
|
|
70
|
+
applied_taxes {
|
|
71
|
+
label,
|
|
72
|
+
amount {
|
|
73
|
+
value
|
|
74
|
+
currency
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
discounts {
|
|
78
|
+
amount {
|
|
79
|
+
value
|
|
80
|
+
currency
|
|
81
|
+
}
|
|
82
|
+
label
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
itemsV2 (
|
|
86
|
+
pageSize:$pageSize,
|
|
87
|
+
currentPage:$currentPage,
|
|
88
|
+
sort: $itemsSortInput
|
|
89
|
+
) {
|
|
90
|
+
items {
|
|
91
|
+
__typename
|
|
92
|
+
uid
|
|
93
|
+
quantity
|
|
94
|
+
|
|
95
|
+
errors {
|
|
96
|
+
code
|
|
97
|
+
message
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
prices {
|
|
101
|
+
price {
|
|
102
|
+
value
|
|
103
|
+
currency
|
|
104
|
+
}
|
|
105
|
+
total_item_discount {
|
|
106
|
+
value
|
|
107
|
+
currency
|
|
108
|
+
}
|
|
109
|
+
row_total {
|
|
110
|
+
value
|
|
111
|
+
currency
|
|
112
|
+
}
|
|
113
|
+
original_row_total{
|
|
114
|
+
value
|
|
115
|
+
currency
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
product {
|
|
120
|
+
name
|
|
121
|
+
sku
|
|
122
|
+
thumbnail {
|
|
123
|
+
url
|
|
124
|
+
label
|
|
125
|
+
}
|
|
126
|
+
url_key
|
|
127
|
+
url_suffix
|
|
128
|
+
categories {
|
|
129
|
+
url_path
|
|
130
|
+
url_key
|
|
131
|
+
}
|
|
132
|
+
${G}
|
|
133
|
+
}
|
|
134
|
+
...on SimpleCartItem {
|
|
135
|
+
${p}
|
|
136
|
+
}
|
|
137
|
+
... on ConfigurableCartItem {
|
|
138
|
+
configurable_options {
|
|
139
|
+
configurable_product_option_uid
|
|
140
|
+
option_label
|
|
141
|
+
value_label
|
|
142
|
+
}
|
|
143
|
+
configured_variant {
|
|
144
|
+
uid
|
|
145
|
+
sku
|
|
146
|
+
thumbnail {
|
|
147
|
+
label
|
|
148
|
+
url
|
|
149
|
+
}
|
|
150
|
+
${G}
|
|
151
|
+
}
|
|
152
|
+
${p}
|
|
153
|
+
}
|
|
154
|
+
... on DownloadableCartItem {
|
|
155
|
+
links {
|
|
156
|
+
sort_order
|
|
157
|
+
title
|
|
158
|
+
}
|
|
159
|
+
${p}
|
|
160
|
+
}
|
|
161
|
+
... on BundleCartItem {
|
|
162
|
+
bundle_options {
|
|
163
|
+
uid
|
|
164
|
+
label
|
|
165
|
+
values {
|
|
166
|
+
uid
|
|
167
|
+
label
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
... on GiftCardCartItem {
|
|
172
|
+
message
|
|
173
|
+
recipient_email
|
|
174
|
+
recipient_name
|
|
175
|
+
sender_email
|
|
176
|
+
sender_name
|
|
177
|
+
amount{
|
|
178
|
+
currency
|
|
179
|
+
value
|
|
180
|
+
}
|
|
181
|
+
is_available
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
shipping_addresses {
|
|
186
|
+
country {
|
|
187
|
+
code
|
|
188
|
+
}
|
|
189
|
+
region {
|
|
190
|
+
code
|
|
191
|
+
}
|
|
192
|
+
postcode
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
`,f=`
|
|
196
|
+
$pageSize: Int! = 100,
|
|
197
|
+
$currentPage: Int! = 1,
|
|
198
|
+
$itemsSortInput: QuoteItemsSortInput! = {field: CREATED_AT, order: DESC}
|
|
199
|
+
`,K=`
|
|
200
|
+
query GUEST_CART_QUERY(
|
|
201
|
+
$cartId: String!,
|
|
202
|
+
${f}
|
|
203
|
+
) {
|
|
204
|
+
|
|
205
|
+
cart(cart_id: $cartId){
|
|
206
|
+
...CartFragment
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
${g}
|
|
211
|
+
`,W=`
|
|
212
|
+
query CUSTOMER_CART_QUERY(
|
|
213
|
+
${f}
|
|
214
|
+
) {
|
|
215
|
+
|
|
216
|
+
cart: customerCart {
|
|
217
|
+
...CartFragment
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
${g}
|
|
222
|
+
`,w=async()=>{const e=u.authenticated,t=u.cartId;if(e)return _(W,{method:"GET",cache:"no-cache"}).then(({errors:n,data:r})=>n?d(n):m(r.cart));if(!t)throw new Error("No cart ID found");return _(K,{method:"GET",cache:"no-cache",variables:{cartId:t}}).then(({errors:n,data:r})=>n?d(n):m(r.cart))},X=`
|
|
223
|
+
mutation MERGE_CARTS_MUTATION(
|
|
224
|
+
$guestCartId: String!,
|
|
225
|
+
$customerCartId: String!,
|
|
226
|
+
${f}
|
|
227
|
+
) {
|
|
228
|
+
mergeCarts(
|
|
229
|
+
source_cart_id: $guestCartId,
|
|
230
|
+
destination_cart_id: $customerCartId
|
|
231
|
+
) {
|
|
232
|
+
...CartFragment
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
${g}
|
|
237
|
+
`,o=async()=>{u.config=await ne();const e=u.authenticated?await ee():await re();return i.emit("cart/initialized",e),i.emit("cart/data",e),e};async function ee(){const e=u.cartId,t=await w();return t?(u.cartId=t.id,!e||t.id===e?t:await _(X,{variables:{guestCartId:e,customerCartId:t.id}}).then(({data:n})=>{const r=m(n.mergeCarts);return i.emit("cart/merged",r),r}).catch(()=>(console.error("Could not merge carts"),t))):null}async function re(){if(Q.getConfig().disableGuestCart===!0||!u.cartId)return null;try{return await w()}catch(e){return console.error(e),null}}const $=()=>(u.cartId=null,u.authenticated=!1,o()),te=`
|
|
238
|
+
query STORE_CONFIG_QUERY {
|
|
239
|
+
storeConfig {
|
|
240
|
+
minicart_display
|
|
241
|
+
minicart_max_items
|
|
242
|
+
cart_expires_in_days
|
|
243
|
+
cart_summary_display_quantity
|
|
244
|
+
default_country
|
|
245
|
+
category_fixed_product_tax_display_setting
|
|
246
|
+
product_fixed_product_tax_display_setting
|
|
247
|
+
sales_fixed_product_tax_display_setting
|
|
248
|
+
shopping_cart_display_zero_tax
|
|
249
|
+
configurable_thumbnail_source
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
`,ne=async()=>_(te,{method:"GET",cache:"force-cache"}).then(({errors:e,data:t})=>e?d(e):Z(t.storeConfig));export{f as C,g as a,ie as b,Q as c,le as d,oe as e,_ as f,_e as g,d as h,O as i,w as j,o as k,$ as l,ne as m,F as n,se as r,u as s,m as t};
|
|
253
|
+
//# sourceMappingURL=getStoreConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getStoreConfig.js","sources":["../../src/lib/cookies.ts","../../src/lib/persisted-data.ts","../../src/lib/state.ts","../../src/api/initialize/initialize.ts","../../src/api/fetch-graphql/fetch-graphql.ts","../../src/data/transforms/transform-cart.ts","../../src/data/transforms/transform-store-config.ts","../../src/lib/fetch-error.ts","../../src/api/graphql/CartFragment.ts","../../src/api/getCartData/graphql/CartQuery.ts","../../src/api/getCartData/getCartData.ts","../../src/api/initializeCart/graphql/MergeCartsMutation.ts","../../src/api/initializeCart/initializeCart.ts","../../src/api/resetCart/resetCart.ts","../../src/api/getStoreConfig/graphql/StoreConfigQuery.ts","../../src/api/getStoreConfig/getStoreConfig.ts"],"sourcesContent":["export function getCookie(cookieName: string) {\n // Split the cookie string into an array of individual cookies\n const cookies = document.cookie.split(';');\n\n // Loop through the cookies to find the one with the specified name\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].trim(); // Remove leading and trailing spaces\n\n // Check if this cookie starts with the name you're looking for\n if (cookie.indexOf(`${cookieName}=`) === 0) {\n // Extract and return the cookie's value\n return cookie.substring(cookieName.length + 1);\n }\n }\n\n // If the cookie is not found, return null\n return null;\n}\n","import { CartModel } from '@/cart/data/models';\n\nexport function setPersistedData(data: CartModel | null) {\n if (data) {\n sessionStorage.setItem('DROPIN__CART__CART__DATA', JSON.stringify(data));\n } else {\n sessionStorage.removeItem('DROPIN__CART__CART__DATA');\n }\n}\n\nexport function getPersistedData(): CartModel | null {\n const data = sessionStorage.getItem('DROPIN__CART__CART__DATA');\n\n if (data) return JSON.parse(data);\n\n return null;\n}\n","import { getCookie } from '@/cart/lib/cookies';\nimport { StoreConfigModel } from '@/cart/data/models/store-models';\nimport { getPersistedData } from './persisted-data';\n\ntype State = {\n cartId: string | null;\n authenticated: boolean;\n locale?: string;\n config?: StoreConfigModel | null;\n};\n\nconst _state: State = (() => {\n const persistedData = getPersistedData();\n const isAuthenticated = persistedData ? !persistedData.isGuestCart : false;\n return {\n cartId: null,\n authenticated: isAuthenticated,\n };\n})();\n\n// Proxy state to allow reactivity\nexport const state = new Proxy(_state, {\n set(target, key, value) {\n // @ts-ignore\n target[key] = value;\n\n if (key === 'cartId') {\n // only update cookie if value has changed\n if (value === state.cartId) return true;\n\n if (value === null) {\n // remove cookie\n document.cookie = `DROPIN__CART__CART-ID=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/`;\n return true;\n }\n\n // get expiration days from config\n const expiresInDays = state.config?.cartExpiresInDays;\n\n if (!expiresInDays) {\n console.warn(\n 'Missing \"expiresInDays\" config. Cookie expiration will default to 30 days.'\n );\n }\n\n // set expiration date\n const expires = new Date();\n expires.setDate(expires.getDate() + (expiresInDays ?? 30));\n\n // set cookie\n document.cookie = `DROPIN__CART__CART-ID=${value}; expires=${expires.toUTCString()}; path=/`;\n }\n\n return true;\n },\n get(target, key) {\n if (key === 'cartId') {\n // get value from cookie\n return getCookie('DROPIN__CART__CART-ID');\n }\n\n return target[key as keyof State];\n },\n});\n","import { Initializer } from '@adobe/elsie/lib';\nimport { initializeCart, resetCart } from '@/cart/api';\nimport { state } from '@/cart/lib/state';\nimport { events } from '@adobe/event-bus';\nimport { Lang } from '@adobe/elsie/i18n';\nimport { setPersistedData } from '@/cart/lib/persisted-data';\n\ntype ConfigProps = {\n disableGuestCart?: boolean;\n langDefinitions?: Lang;\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 async (authenticated) => {\n if (state.authenticated && !authenticated) {\n // Reset cart if the user is no longer authenticated\n events.emit('cart/reset', undefined);\n // State is already updated to false and cart is reinitialized on reset so we can just return\n return;\n }\n\n // Login event occurred\n 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 }),\n\n events.on('cart/data', (payload) => {\n setPersistedData(payload);\n }),\n ],\n});\n\nexport const config = initialize.config;\n","import { FetchGraphQL } from '@adobe/fetch-graphql';\n\nexport const {\n setEndpoint,\n setFetchGraphQlHeader,\n removeFetchGraphQlHeader,\n setFetchGraphQlHeaders,\n fetchGraphQl,\n getConfig,\n} = new FetchGraphQL().getMethods();\n","import { CartModel } from '@/cart/data/models';\nimport { state } from '@/cart/lib/state';\n\nexport function transformCart(data: any): CartModel | null {\n if (!data) return null;\n\n return {\n id: data.id,\n totalQuantity: transformQuantity(data),\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 value: data.prices.grand_total.value,\n currency: 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: calculateTotalTax(data.prices.applied_taxes),\n appliedDiscounts: transformTotalPriceModifiers(data.prices.discounts),\n isVirtual: data.is_virtual,\n addresses: {\n shipping:\n data.shipping_addresses && transformAddresses(data.shipping_addresses),\n },\n isGuestCart: !state.authenticated,\n };\n}\n\n// Need to calculate total tax amount since it's not provided by GraphQL\nfunction calculateTotalTax(data: any[]) {\n if (!data?.length) return null;\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 transformItems(data: any) {\n if (!data?.items?.length) return [];\n\n const config = state.config;\n\n return data.items.map((item: any) => ({\n itemType: item.__typename,\n uid: item.uid,\n url: {\n urlKey: item.product.url_key,\n categories: item.product.categories.map(\n (category: any) => category.url_key\n ),\n },\n quantity: item.quantity,\n sku: item.product.sku,\n name: item.product.name,\n image: {\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 price: {\n value: item.prices.price.value,\n currency: item.prices.price.currency,\n },\n links: transformLinks(item.links),\n\n // Update BundleCartItem after USF-1221 is completed\n // Update SimpleWithCustomizableOptions after USF-1212 is completed\n total:\n (item.__typename === 'SimpleCartItem' &&\n item.customizable_options.length !== 0) ||\n item.__typename === 'BundleCartItem'\n ? {\n value: item.prices.row_total.value,\n currency: item.prices.row_total.currency,\n }\n : {\n value: item.prices.original_row_total?.value,\n currency: item.prices.original_row_total?.currency,\n },\n\n discount: {\n value: item.prices.total_item_discount.value,\n currency: item.prices.total_item_discount.currency,\n },\n\n // Add support for BundleCartItem after USF-1221 is completed\n // Add support for SimpleWithCustomizableOptions after USF-1212 is completed\n regularPrice:\n item.__typename === 'ConfigurableCartItem'\n ? {\n value:\n item.configured_variant?.price_range?.maximum_price.regular_price\n .value,\n currency:\n item.configured_variant?.price_range?.maximum_price.regular_price\n .currency,\n }\n : item.__typename === 'GiftCardCartItem' ||\n (item.__typename === 'SimpleCartItem' &&\n item.customizable_options.length !== 0) ||\n item.__typename === 'BundleCartItem'\n ? {\n value: item.prices.price.value,\n currency: item.prices.price.currency,\n }\n : {\n value: item.product.price_range?.maximum_price.regular_price.value,\n currency:\n item.product.price_range?.maximum_price.regular_price.currency,\n },\n\n // Add support for BundleCartItem after USF-1221 is completed\n // Add support for SimpleWithCustomizableOptions after USF-1212 is completed\n discounted:\n item.__typename === 'BundleCartItem' ||\n (item.__typename === 'SimpleCartItem' &&\n item.customizable_options.length !== 0)\n ? false\n : item.__typename === 'ConfigurableCartItem'\n ? item.configured_variant?.price_range?.maximum_price.discount\n .amount_off > 0\n : item.product.price_range?.maximum_price.discount.amount_off > 0,\n bundleOptions:\n item.__typename === 'BundleCartItem'\n ? transformBundleOptions(item.bundle_options)\n : null,\n selectedOptions: transformSelectedOptions(item.configurable_options),\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}\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 }));\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 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 }));\n\n const selectedOptions: { [key: string]: any } = {};\n\n selected?.forEach((option: any) => {\n selectedOptions[option.label] = option.value;\n });\n\n return Object.keys(selectedOptions).length > 0 ? selectedOptions : null;\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 }\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 if (!data?.length) return null;\n\n return data.map((address: any) => ({\n countryCode: address.country?.code,\n zipCode: address.postcode,\n regionCode: address.region?.code,\n }));\n}\n","import { StoreConfigModel } from '@/cart/data/models';\n\nexport function transformStoreConfig(data: any): StoreConfigModel | null {\n if (!data) return null;\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 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 shoppingCartDisplayZeroTax: data.shopping_cart_display_zero_tax,\n useConfigurableParentThumbnail: data.configurable_thumbnail_source === 'parent',\n };\n}\n","import { resetCart } from '../api';\n\n/** Actions */\nexport const handleFetchError = (\n errors: Array<{ message: string; extensions: { category: string } }>\n) => {\n const unauthorized =\n errors.findIndex(\n ({ extensions }) => extensions?.category === 'graphql-authorization'\n ) > -1;\n\n const missingCart =\n errors.findIndex(\n ({ extensions }) => extensions?.category === 'graphql-no-such-entity'\n ) > -1;\n\n const errorMessage = errors.map((e: any) => e.message).join(' ');\n\n // Reset cart data if unauthorized or missing cart\n if (unauthorized || missingCart) {\n resetCart();\n console.error(errorMessage);\n return null;\n }\n\n throw Error(errorMessage);\n};\n","const CUSTOMIZABLE_OPTIONS_FRAGMENT = `\n customizable_options {\n type\n customizable_option_uid\n label\n is_required\n values {\n label\n value\n price{\n type\n units\n value\n }\n }\n }\n`;\n\nconst PRICE_RANGE_FRAGMENT = `\n price_range {\n minimum_price {\n regular_price {\n value\n currency\n }\n final_price {\n value\n currency\n }\n discount {\n percent_off\n amount_off\n }\n }\n maximum_price {\n regular_price {\n value\n currency\n }\n final_price {\n value\n currency\n }\n discount {\n percent_off\n amount_off\n }\n }\n }\n`;\n\nexport const CART_FRAGMENT = `\nfragment CartFragment on Cart {\n id\n total_quantity\n is_virtual\n prices {\n subtotal_with_discount_excluding_tax {\n currency\n value\n }\n subtotal_including_tax {\n currency\n value\n }\n subtotal_excluding_tax {\n currency\n value\n }\n grand_total {\n currency\n value\n }\n applied_taxes {\n label,\n amount {\n value\n currency\n }\n }\n discounts {\n amount {\n value\n currency\n }\n label\n }\n }\n itemsV2 (\n pageSize:$pageSize,\n currentPage:$currentPage,\n sort: $itemsSortInput\n ) {\n items {\n __typename\n uid\n quantity\n \n errors {\n code\n message\n }\n \n prices {\n price {\n value\n currency\n }\n total_item_discount {\n value\n currency\n }\n row_total {\n value\n currency\n }\n original_row_total{\n value\n currency\n }\n }\n \n product {\n name\n sku\n thumbnail {\n url\n label\n }\n url_key\n url_suffix\n categories {\n url_path\n url_key\n }\n ${PRICE_RANGE_FRAGMENT}\n }\n ...on SimpleCartItem {\n ${CUSTOMIZABLE_OPTIONS_FRAGMENT}\n }\n ... on ConfigurableCartItem {\n configurable_options {\n configurable_product_option_uid\n option_label\n value_label\n }\n configured_variant {\n uid\n sku\n thumbnail {\n label\n url\n }\n ${PRICE_RANGE_FRAGMENT}\n }\n ${CUSTOMIZABLE_OPTIONS_FRAGMENT}\n }\n ... on DownloadableCartItem {\n links {\n sort_order\n title\n }\n ${CUSTOMIZABLE_OPTIONS_FRAGMENT}\n }\n ... on BundleCartItem {\n bundle_options {\n uid\n label\n values {\n uid\n label\n }\n }\n }\n ... on GiftCardCartItem {\n message\n recipient_email\n recipient_name\n sender_email\n sender_name\n amount{\n currency\n value\n }\n is_available\n }\n }\n }\n shipping_addresses {\n country {\n code\n }\n region {\n code\n }\n postcode\n }\n}\n`;\n\n// Default values for pagination and sorting for cart items\nexport const CART_ITEMS_PAGINATION_ARGUMENTS = `\n $pageSize: Int! = 100,\n $currentPage: Int! = 1,\n $itemsSortInput: QuoteItemsSortInput! = {field: CREATED_AT, order: DESC}\n`;\n","import {\n CART_FRAGMENT,\n CART_ITEMS_PAGINATION_ARGUMENTS,\n} from '@/cart/api/graphql/CartFragment';\n\nexport const GUEST_CART_QUERY = `\n query GUEST_CART_QUERY(\n $cartId: String!,\n ${CART_ITEMS_PAGINATION_ARGUMENTS}\n ) {\n\n cart(cart_id: $cartId){\n ...CartFragment\n }\n }\n\n ${CART_FRAGMENT}\n`;\n\nexport const CUSTOMER_CART_QUERY = `\n query CUSTOMER_CART_QUERY(\n ${CART_ITEMS_PAGINATION_ARGUMENTS}\n ) {\n\n cart: customerCart {\n ...CartFragment\n }\n }\n\n ${CART_FRAGMENT}\n`;\n","import { 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, {\n method: 'GET',\n cache: 'no-cache',\n }).then(({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n return transformCart(data.cart);\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: 'GET',\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","import { CART_FRAGMENT, CART_ITEMS_PAGINATION_ARGUMENTS } from '@/cart/api/graphql/CartFragment';\n\nexport const MERGE_CARTS_MUTATION = `\n mutation MERGE_CARTS_MUTATION(\n $guestCartId: String!, \n $customerCartId: String!,\n ${CART_ITEMS_PAGINATION_ARGUMENTS}\n ) {\n mergeCarts(\n source_cart_id: $guestCartId,\n destination_cart_id: $customerCartId\n ) {\n ...CartFragment \n }\n }\n\n ${CART_FRAGMENT}\n`;\n","import { events } from '@adobe/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';\nimport { transformCart } from '@/cart/data/transforms/transform-cart';\n\nexport const initializeCart = async (): Promise<CartModel | null> => {\n // set config\n state.config = await getStoreConfig();\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 return payload;\n};\n\nasync 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(({ data }) => {\n const transformedCartData = transformCart(data.mergeCarts);\n events.emit('cart/merged', transformedCartData);\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\nasync 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","import { state } from '@/cart/lib/state';\nimport { initializeCart } from '@/cart/api';\nimport { CartModel } from '@/cart/data/models';\n\nexport const resetCart = (): Promise<CartModel | null> => {\n state.cartId = null;\n state.authenticated = false;\n\n return initializeCart();\n};\n","export 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 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_zero_tax\n configurable_thumbnail_source\n }\n}\n`;\n","import { 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"],"names":["getCookie","cookieName","cookies","document","cookie","split","i","length","trim","indexOf","substring","setPersistedData","data","sessionStorage","setItem","JSON","stringify","removeItem","getPersistedData","getItem","parse","_state","persistedData","cartId","authenticated","isGuestCart","isAuthenticated","state","Proxy","set","target","key","value","expiresInDays","config","cartExpiresInDays","console","warn","expires","Date","setDate","getDate","toUTCString","get","initialize","Initializer","init","_config","disableGuestCart","setConfig","initializeCart","catch","error","listeners","events","on","emit","undefined","eager","locale","resetCart","payload","setEndpoint","setFetchGraphQlHeader","removeFetchGraphQlHeader","setFetchGraphQlHeaders","fetchGraphQl","getConfig","FetchGraphQL","getMethods","transformCart","id","totalQuantity","transformQuantity","errors","transformErrors","itemsV2","items","transformItems","miniCartMaxItems","slice","miniCartMaxItemsDisplay","total","prices","grand_total","currency","subtotal","excludingTax","subtotal_excluding_tax","includingTax","subtotal_including_tax","includingDiscountOnly","subtotal_with_discount_excluding_tax","appliedTaxes","transformTotalPriceModifiers","applied_taxes","totalTax","calculateTotalTax","appliedDiscounts","discounts","isVirtual","is_virtual","addresses","shipping","shipping_addresses","transformAddresses","reduce","acc","item","amount","map","itemType","__typename","uid","url","urlKey","product","url_key","categories","category","quantity","sku","name","image","src","useConfigurableParentThumbnail","thumbnail","configured_variant","alt","label","price","links","transformLinks","customizable_options","row_total","original_row_total","discount","total_item_discount","regularPrice","price_range","maximum_price","regular_price","discounted","amount_off","bundleOptions","transformBundleOptions","bundle_options","selectedOptions","transformSelectedOptions","configurable_options","customizableOptions","transformCustomizableOptions","sender","sender_name","senderEmail","sender_email","recipient","recipient_name","recipientEmail","recipient_email","message","discountedTotal","result","forEach","push","text","bundle","option","values","join","Object","keys","selected","configurable_product_option_uid","option_label","value_label","transformedOptions","customizable_option_uid","type","customizable_option_value_uid","previous","current","cartSummaryDisplayTotal","total_quantity","count","link","title","address","countryCode","country","code","zipCode","postcode","regionCode","region","transformStoreConfig","displayMiniCart","minicart_display","minicart_max_items","cart_expires_in_days","cart_summary_display_quantity","defaultCountry","default_country","categoryFixedProductTaxDisplaySetting","category_fixed_product_tax_display_setting","productFixedProductTaxDisplaySetting","product_fixed_product_tax_display_setting","salesFixedProductTaxDisplaySetting","sales_fixed_product_tax_display_setting","shoppingCartDisplayZeroTax","shopping_cart_display_zero_tax","configurable_thumbnail_source","handleFetchError","unauthorized","findIndex","extensions","missingCart","errorMessage","e","Error","CUSTOMIZABLE_OPTIONS_FRAGMENT","PRICE_RANGE_FRAGMENT","CART_FRAGMENT","CART_ITEMS_PAGINATION_ARGUMENTS","GUEST_CART_QUERY","CUSTOMER_CART_QUERY","getCartData","method","cache","then","cart","variables","MERGE_CARTS_MUTATION","getStoreConfig","getCustomerCartPayload","getGuestCartPayload","existingCartId","guestCartId","customerCartId","transformedCartData","mergeCarts","STORE_CONFIG_QUERY","storeConfig"],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import{C as P,a as A,s as f,f as I,h as v,t as D}from"./getStoreConfig.js";import{events as g}from"@dropins/tools/event-bus.js";function T(r){const{cart:e,locale:t="en-US"}=r;return{id:e.id,items:m(e.items,t),prices:{subtotalExcludingTax:e.subtotal.excludingTax,subtotalIncludingTax:e.subtotal.includingTax},totalQuantity:e.totalQuantity,possibleOnepageCheckout:void 0,giftMessageSelected:void 0,giftWrappingSelected:void 0,source:void 0}}function m(r,e){return r.map(t=>{var a;return{canApplyMsrp:!1,formattedPrice:h(e,t.price.currency,t.price.value),id:t.uid,prices:{price:t.price},product:{productId:t.uid,name:t.name,sku:t.sku,topLevelSku:void 0,specialToDate:void 0,specialFromDate:void 0,newToDate:void 0,newFromDate:void 0,createdAt:void 0,updatedAt:void 0,manufacturer:void 0,countryOfManufacture:void 0,categories:t.url.categories,productType:void 0,pricing:{regularPrice:t.regularPrice.value,minimalPrice:void 0,maximalPrice:void 0,specialPrice:(a=t.discount)==null?void 0:a.value,tierPricing:void 0,currencyCode:t.regularPrice.currency},canonicalUrl:t.url.urlKey,mainImageUrl:t.image.src,image:{src:t.image.src,alt:t.image.alt}},configurableOptions:void 0,quantity:t.quantity}})}function h(r,e,t){const a=r.replace("_","-");return new Intl.NumberFormat(a,{style:"currency",currency:e}).format(t)}const c={SHOPPING_CART_CONTEXT:"shoppingCartContext",PRODUCT_CONTEXT:"productContext",CHANGED_PRODUCTS_CONTEXT:"changedProductsContext"},s={OPEN_CART:"open-cart",ADD_TO_CART:"add-to-cart",REMOVE_FROM_CART:"remove-from-cart",SHOPPING_CART_VIEW:"shopping-cart-view"};function _(){return window.adobeDataLayer=window.adobeDataLayer||[],window.adobeDataLayer}function i(r,e){const t=_();t.push({[r]:null}),t.push({[r]:e})}function l(r,e){_().push(a=>{const n=a.getState?a.getState():{};a.push({event:r,eventInfo:{...n,...e}})})}function b(r,e,t){const a=T({cart:r,locale:t});i(c.SHOPPING_CART_CONTEXT,{...a}),l(s.OPEN_CART),m(e,t).forEach(d=>{i(c.PRODUCT_CONTEXT,d.product),p(a,[d],s.ADD_TO_CART)})}function x(r,e){const t=T({cart:r,locale:e});i(c.SHOPPING_CART_CONTEXT,{...t}),l(s.SHOPPING_CART_VIEW)}function p(r,e,t){const a={items:e};i(c.SHOPPING_CART_CONTEXT,{...r}),i(c.CHANGED_PRODUCTS_CONTEXT,{...a}),l(t)}function N(r,e,t){const a=T({cart:r,locale:t}),n=a.items,d=_(),E=d.getState?d.getState():{},{shoppingCartContext:{items:R=[]}={}}=E;e.forEach(O=>{const u=R.find(C=>C.id===O.uid),o=n.find(C=>C.id===O.uid);!o&&!u||(!u&&o?(i(c.PRODUCT_CONTEXT,o.product),p(a,[o],s.ADD_TO_CART)):u&&!o?(i(c.PRODUCT_CONTEXT,u.product),p(a,[u],s.REMOVE_FROM_CART)):o.quantity>u.quantity?(i(c.PRODUCT_CONTEXT,o.product),p(a,[o],s.ADD_TO_CART)):(i(c.PRODUCT_CONTEXT,o.product),p(a,[o],s.REMOVE_FROM_CART)))})}const y=`
|
|
2
|
+
mutation UPDATE_PRODUCTS_FROM_CART_MUTATION(
|
|
3
|
+
$cartId: String!,
|
|
4
|
+
$cartItems: [CartItemUpdateInput!]!,
|
|
5
|
+
${P}
|
|
6
|
+
) {
|
|
7
|
+
updateCartItems(
|
|
8
|
+
input: {
|
|
9
|
+
cart_id: $cartId
|
|
10
|
+
cart_items: $cartItems
|
|
11
|
+
}
|
|
12
|
+
) {
|
|
13
|
+
cart {
|
|
14
|
+
...CartFragment
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
${A}
|
|
20
|
+
`,M=async r=>{const e=f.cartId;if(!e)throw Error("Cart ID is not set");return I(y,{variables:{cartId:e,cartItems:r.map(({uid:t,quantity:a})=>({cart_item_uid:t,quantity:a}))}}).then(({errors:t,data:a})=>{if(t)return v(t);const n=D(a.updateCartItems.cart);return g.emit("cart/updated",n),g.emit("cart/data",n),n&&N(n,r,f.locale||"en-US"),n})};export{N as a,x as b,b as p,M as u};
|
|
21
|
+
//# sourceMappingURL=updateProductsFromCart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateProductsFromCart.js","sources":["../../src/data/transforms/acdl-context.ts","../../src/lib/acdl.ts","../../src/api/updateProductsFromCart/graphql/UpdateProductsMutation.ts","../../src/api/updateProductsFromCart/updateProductsFromCart.ts"],"sourcesContent":["import { ShoppingCartContext, ShoppingCartItem } from '../models/acdl-models';\nimport { CartModel, Item } from '../models/cart-model';\n\ntype TransformShoppingCartParams = {\n cart: CartModel;\n locale?: string;\n};\n\nexport function transformShoppingCart(\n params: TransformShoppingCartParams\n): ShoppingCartContext {\n const { cart, locale = 'en-US' } = params;\n\n return {\n id: cart.id,\n items: transformItems(cart.items, locale),\n prices: {\n subtotalExcludingTax: cart.subtotal.excludingTax,\n subtotalIncludingTax: cart.subtotal.includingTax,\n },\n totalQuantity: cart.totalQuantity,\n possibleOnepageCheckout: undefined,\n giftMessageSelected: undefined,\n giftWrappingSelected: undefined,\n source: undefined,\n };\n}\n\nexport function transformItems(items: Item[], locale: string): ShoppingCartItem[] {\n return items.map((item: any) => ({\n canApplyMsrp: false,\n formattedPrice: formatCurrency(\n locale,\n item.price.currency,\n item.price.value\n ),\n id: item.uid,\n prices: {\n price: item.price,\n },\n product: {\n productId: item.uid,\n name: item.name,\n sku: item.sku,\n topLevelSku: undefined,\n specialToDate: undefined,\n specialFromDate: undefined,\n newToDate: undefined,\n newFromDate: undefined,\n createdAt: undefined,\n updatedAt: undefined,\n manufacturer: undefined,\n countryOfManufacture: undefined,\n categories: item.url.categories,\n productType: undefined,\n pricing: {\n regularPrice: item.regularPrice.value,\n minimalPrice: undefined,\n maximalPrice: undefined,\n specialPrice: item.discount?.value,\n tierPricing: undefined,\n currencyCode: item.regularPrice.currency,\n },\n canonicalUrl: item.url.urlKey,\n mainImageUrl: item.image.src,\n image: {\n src: item.image.src,\n alt: item.image.alt,\n },\n },\n configurableOptions: undefined,\n quantity: item.quantity,\n }));\n}\n\nfunction formatCurrency(\n locale: string,\n currency: string,\n value: number\n): string {\n const formattedLocale = locale.replace('_', '-');\n\n return new Intl.NumberFormat(formattedLocale, {\n style: 'currency',\n currency,\n }).format(value);\n}\n","/* Publish functions for the Adobe Client Data Layer (ACDL) */\n\nimport { CartModel, Item } from '@/cart/data/models/cart-model';\nimport {\n transformItems,\n transformShoppingCart,\n} from '@/cart/data/transforms/acdl-context';\nimport {\n ShoppingCartContext,\n ShoppingCartItem,\n} from '../data/models/acdl-models';\n\n/**\n * See: https://github.com/adobe/commerce-events/blob/main/packages/storefront-events-sdk/src/contexts.ts\n */\nexport const contexts = {\n SHOPPING_CART_CONTEXT: 'shoppingCartContext',\n PRODUCT_CONTEXT: 'productContext',\n CHANGED_PRODUCTS_CONTEXT: 'changedProductsContext',\n};\n\n/**\n * See: https://github.com/adobe/commerce-events/blob/main/packages/storefront-events-sdk/src/events.ts\n */\nexport const events = {\n // See: https://github.com/adobe/commerce-events/blob/main/examples/events/open-cart.md\n OPEN_CART: 'open-cart',\n // See: ??? (not documented in the commerce-events repo)\n //UPDATE_CART: 'update-cart',\n // See: https://github.com/adobe/commerce-events/blob/main/examples/events/add-to-cart.md\n ADD_TO_CART: 'add-to-cart',\n // See: https://github.com/adobe/commerce-events/blob/main/examples/events/remove-from-cart.md\n REMOVE_FROM_CART: 'remove-from-cart',\n // See: https://github.com/adobe/commerce-events/blob/main/examples/events/shopping-cart-view.md\n SHOPPING_CART_VIEW: 'shopping-cart-view',\n};\n\nexport function getAdobeDataLayer() {\n // @ts-ignore\n window.adobeDataLayer = window.adobeDataLayer || [];\n // @ts-ignore\n return window.adobeDataLayer;\n}\n\n/**\n * Sets a context in the Adobe Client Data Layer (ACDL)\n * Logic based on: https://github.com/adobe/commerce-events/blob/main/packages/storefront-events-sdk/src/Base.ts#L6\n */\nfunction setContext(name: string, data: any) {\n const adobeDataLayer = getAdobeDataLayer();\n\n // Clear existing context\n adobeDataLayer.push({\n [name]: null,\n });\n\n // Set new context\n adobeDataLayer.push({\n [name]: data,\n });\n}\n\n/**\n * Pushes an event to the Adobe Client Data Layer (ACDL)\n * Logic based on: https://github.com/adobe/commerce-events/blob/1973d0ce28471ef190fa06dad6359ffa0ab51db6/packages/storefront-events-sdk/src/Base.ts#L34\n */\nfunction pushEvent(event: string, additionalContext?: any) {\n const adobeDataLayer = getAdobeDataLayer();\n\n adobeDataLayer.push((acdl: any) => {\n const state = acdl.getState ? acdl.getState() : {};\n\n acdl.push({\n event,\n eventInfo: {\n ...state,\n ...additionalContext,\n },\n });\n });\n}\n\n// Triggered when a new cart is created, which is when a product is added to an empty cart.\nexport function publishOpenCartEvent(\n cart: CartModel,\n addedItems: Item[],\n locale: string\n) {\n const shoppingCartContext = transformShoppingCart({\n cart,\n locale,\n });\n\n // Set context and push open cart event\n setContext(contexts.SHOPPING_CART_CONTEXT, {\n ...shoppingCartContext,\n });\n\n pushEvent(events.OPEN_CART);\n\n // Set context and push add to cart event for each updated item\n const shoppingCartItems = transformItems(addedItems, locale);\n\n shoppingCartItems.forEach((item) => {\n setContext(contexts.PRODUCT_CONTEXT, item.product);\n publishItemsUpdatedEvent(shoppingCartContext, [item], events.ADD_TO_CART);\n });\n}\n\n// Triggered when any cart page loads.\nexport function publishShoppingCartViewEvent(cart: CartModel, locale: string) {\n const shoppingCartContext = transformShoppingCart({\n cart,\n locale,\n });\n\n setContext(contexts.SHOPPING_CART_CONTEXT, {\n ...shoppingCartContext,\n });\n\n pushEvent(events.SHOPPING_CART_VIEW);\n}\n\n// A re-usable function to publish events when items are added to, or removed from the cart.\nfunction publishItemsUpdatedEvent(\n shoppingCartContext: ShoppingCartContext,\n updatedItems: ShoppingCartItem[],\n event: string\n) {\n const changedProductsContext = {\n items: updatedItems,\n };\n\n setContext(contexts.SHOPPING_CART_CONTEXT, {\n ...shoppingCartContext,\n });\n\n setContext(contexts.CHANGED_PRODUCTS_CONTEXT, {\n ...changedProductsContext,\n });\n\n pushEvent(event);\n}\n\nexport function publishCartUpdateEvents(\n cart: CartModel,\n updatedItems: {\n uid: string;\n }[],\n locale: string\n) {\n const newShoppingCartContext = transformShoppingCart({\n cart,\n locale,\n });\n\n const currentItems = newShoppingCartContext.items;\n\n const adobeDataLayer = getAdobeDataLayer();\n\n const currentState = adobeDataLayer.getState ? adobeDataLayer.getState() : {};\n\n const { shoppingCartContext: { items: previousItems = [] } = {} } =\n currentState;\n\n updatedItems.forEach((updatedItem) => {\n const previousItem = previousItems.find(\n (item: ShoppingCartItem) => item.id === updatedItem.uid\n );\n\n const currentItem = currentItems!.find(\n (item: ShoppingCartItem) => item.id === updatedItem.uid\n );\n\n if (!currentItem && !previousItem) {\n // Not enough data available to publish an event\n // Adobe Data Layer possibly not initialized yet\n return;\n }\n\n if (!previousItem && currentItem) {\n // Publish add to cart event for the item added\n setContext(contexts.PRODUCT_CONTEXT, currentItem.product);\n publishItemsUpdatedEvent(\n newShoppingCartContext,\n [currentItem],\n events.ADD_TO_CART\n );\n } else if (previousItem && !currentItem) {\n // Publish remove from cart event for the item removed\n setContext(contexts.PRODUCT_CONTEXT, previousItem.product);\n publishItemsUpdatedEvent(\n newShoppingCartContext,\n [previousItem],\n events.REMOVE_FROM_CART\n );\n } else if (currentItem!.quantity > previousItem.quantity) {\n // Publish add to cart event for the item increased\n setContext(contexts.PRODUCT_CONTEXT, currentItem!.product);\n publishItemsUpdatedEvent(\n newShoppingCartContext,\n [currentItem!],\n events.ADD_TO_CART\n );\n } else {\n // Publish remove from cart event for the item decreased\n setContext(contexts.PRODUCT_CONTEXT, currentItem!.product);\n publishItemsUpdatedEvent(\n newShoppingCartContext,\n [currentItem!],\n events.REMOVE_FROM_CART\n );\n }\n });\n}\n","import { CART_FRAGMENT, CART_ITEMS_PAGINATION_ARGUMENTS } from '../../graphql/CartFragment';\n\nexport const UPDATE_PRODUCTS_FROM_CART_MUTATION = `\n mutation UPDATE_PRODUCTS_FROM_CART_MUTATION(\n $cartId: String!, \n $cartItems: [CartItemUpdateInput!]!,\n ${CART_ITEMS_PAGINATION_ARGUMENTS}\n ) {\n updateCartItems(\n input: {\n cart_id: $cartId\n cart_items: $cartItems \n }\n ) {\n cart {\n ...CartFragment\n }\n\n }\n }\n ${CART_FRAGMENT}\n`;\n","import { state } from '@/cart/lib/state';\nimport { fetchGraphQl } from '@/cart/api';\nimport { handleFetchError } from '@/cart/lib/fetch-error';\nimport { CartModel } from '@/cart/data/models';\nimport { transformCart } from '@/cart/data/transforms';\nimport { events } from '@adobe/event-bus';\n\nimport { UPDATE_PRODUCTS_FROM_CART_MUTATION } from './graphql/UpdateProductsMutation';\nimport { publishCartUpdateEvents } from '@/cart/lib/acdl';\n\ntype UpdateProductsFromCart = Array<{\n uid: string;\n quantity: number;\n}>;\n\nexport const updateProductsFromCart = async (\n items: UpdateProductsFromCart\n): Promise<CartModel | null> => {\n const cartId = state.cartId;\n\n if (!cartId) {\n throw Error('Cart ID is not set');\n }\n\n return fetchGraphQl(UPDATE_PRODUCTS_FROM_CART_MUTATION, {\n variables: {\n cartId,\n cartItems: items.map(({ uid, quantity }) => ({\n cart_item_uid: uid,\n quantity,\n })),\n },\n }).then(({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n const payload = transformCart(data.updateCartItems.cart);\n\n events.emit('cart/updated', payload);\n events.emit('cart/data', payload);\n\n if (payload) {\n // Publish cart update events\n publishCartUpdateEvents(payload, items, state.locale || 'en-US');\n }\n\n return payload;\n });\n};\n"],"names":["transformShoppingCart","params","cart","locale","id","items","transformItems","prices","subtotalExcludingTax","subtotal","excludingTax","subtotalIncludingTax","includingTax","totalQuantity","possibleOnepageCheckout","undefined","giftMessageSelected","giftWrappingSelected","source","map","item","canApplyMsrp","formattedPrice","formatCurrency","price","currency","value","uid","product","productId","name","sku","topLevelSku","specialToDate","specialFromDate","newToDate","newFromDate","createdAt","updatedAt","manufacturer","countryOfManufacture","categories","url","productType","pricing","regularPrice","minimalPrice","maximalPrice","specialPrice","discount","tierPricing","currencyCode","canonicalUrl","urlKey","mainImageUrl","image","src","alt","configurableOptions","quantity","formattedLocale","replace","Intl","NumberFormat","style","format","contexts","SHOPPING_CART_CONTEXT","PRODUCT_CONTEXT","CHANGED_PRODUCTS_CONTEXT","events","OPEN_CART","ADD_TO_CART","REMOVE_FROM_CART","SHOPPING_CART_VIEW","getAdobeDataLayer","adobeDataLayer","window","setContext","data","push","pushEvent","event","additionalContext","acdl","state","getState","eventInfo","publishOpenCartEvent","addedItems","shoppingCartContext","forEach","publishItemsUpdatedEvent","publishShoppingCartViewEvent","updatedItems","changedProductsContext","publishCartUpdateEvents","newShoppingCartContext","currentItems","currentState","previousItems","updatedItem","previousItem","find","currentItem","UPDATE_PRODUCTS_FROM_CART_MUTATION","CART_ITEMS_PAGINATION_ARGUMENTS","CART_FRAGMENT","updateProductsFromCart","cartId","Error","fetchGraphQl","variables","cartItems","cart_item_uid","then","errors","handleFetchError","payload","transformCart","updateCartItems","emit"],"mappings":"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"}
|