@dropins/storefront-cart 0.1.0 → 0.1.1-alpha68

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.
Files changed (182) hide show
  1. package/api/addProductsToCart/addProductsToCart.d.ts +13 -0
  2. package/api/addProductsToCart/addProductsToCart.d.ts.map +1 -0
  3. package/api/addProductsToCart/graphql/AddProductsToCartMutation.d.ts +2 -0
  4. package/api/addProductsToCart/graphql/AddProductsToCartMutation.d.ts.map +1 -0
  5. package/api/addProductsToCart/index.d.ts +2 -0
  6. package/api/addProductsToCart/index.d.ts.map +1 -0
  7. package/api/createEmptyCart/createEmptyCart.d.ts +2 -0
  8. package/api/createEmptyCart/createEmptyCart.d.ts.map +1 -0
  9. package/api/createEmptyCart/graphql/CreateCartMutation.d.ts +2 -0
  10. package/api/createEmptyCart/graphql/CreateCartMutation.d.ts.map +1 -0
  11. package/api/createEmptyCart/index.d.ts +2 -0
  12. package/api/createEmptyCart/index.d.ts.map +1 -0
  13. package/api/fetch-graphql/fetch-graphql.d.ts +8 -0
  14. package/api/fetch-graphql/fetch-graphql.d.ts.map +1 -0
  15. package/api/fetch-graphql/index.d.ts +2 -0
  16. package/api/fetch-graphql/index.d.ts.map +1 -0
  17. package/api/getCartData/getCartData.d.ts +4 -0
  18. package/api/getCartData/getCartData.d.ts.map +1 -0
  19. package/api/getCartData/graphql/CartQuery.d.ts +3 -0
  20. package/api/getCartData/graphql/CartQuery.d.ts.map +1 -0
  21. package/api/getCartData/index.d.ts +2 -0
  22. package/api/getCartData/index.d.ts.map +1 -0
  23. package/api/getEstimateShipping/getEstimateShipping.d.ts +16 -0
  24. package/api/getEstimateShipping/getEstimateShipping.d.ts.map +1 -0
  25. package/api/getEstimateShipping/graphql/countriesAndRegionsQueries.d.ts +12 -0
  26. package/api/getEstimateShipping/graphql/countriesAndRegionsQueries.d.ts.map +1 -0
  27. package/api/getEstimateShipping/graphql/estimateShippingMethodsMutation.d.ts +2 -0
  28. package/api/getEstimateShipping/graphql/estimateShippingMethodsMutation.d.ts.map +1 -0
  29. package/api/getEstimateShipping/index.d.ts +2 -0
  30. package/api/getEstimateShipping/index.d.ts.map +1 -0
  31. package/api/getStoreConfig/getStoreConfig.d.ts +4 -0
  32. package/api/getStoreConfig/getStoreConfig.d.ts.map +1 -0
  33. package/api/getStoreConfig/graphql/StoreConfigQuery.d.ts +2 -0
  34. package/api/getStoreConfig/graphql/StoreConfigQuery.d.ts.map +1 -0
  35. package/api/getStoreConfig/index.d.ts +2 -0
  36. package/api/getStoreConfig/index.d.ts.map +1 -0
  37. package/api/graphql/CartFragment.d.ts +3 -0
  38. package/api/graphql/CartFragment.d.ts.map +1 -0
  39. package/api/index.d.ts +11 -0
  40. package/api/index.d.ts.map +1 -0
  41. package/api/initialize/index.d.ts +2 -0
  42. package/api/initialize/index.d.ts.map +1 -0
  43. package/api/initialize/initialize.d.ts +11 -0
  44. package/api/initialize/initialize.d.ts.map +1 -0
  45. package/api/initializeCart/graphql/MergeCartsMutation.d.ts +2 -0
  46. package/api/initializeCart/graphql/MergeCartsMutation.d.ts.map +1 -0
  47. package/api/initializeCart/index.d.ts +2 -0
  48. package/api/initializeCart/index.d.ts.map +1 -0
  49. package/api/initializeCart/initializeCart.d.ts +4 -0
  50. package/api/initializeCart/initializeCart.d.ts.map +1 -0
  51. package/api/resetCart/index.d.ts +2 -0
  52. package/api/resetCart/index.d.ts.map +1 -0
  53. package/api/resetCart/resetCart.d.ts +4 -0
  54. package/api/resetCart/resetCart.d.ts.map +1 -0
  55. package/api/updateProductsFromCart/graphql/UpdateProductsMutation.d.ts +2 -0
  56. package/api/updateProductsFromCart/graphql/UpdateProductsMutation.d.ts.map +1 -0
  57. package/api/updateProductsFromCart/index.d.ts +2 -0
  58. package/api/updateProductsFromCart/index.d.ts.map +1 -0
  59. package/api/updateProductsFromCart/updateProductsFromCart.d.ts +9 -0
  60. package/api/updateProductsFromCart/updateProductsFromCart.d.ts.map +1 -0
  61. package/api.d.ts +1 -0
  62. package/api.js +26 -1
  63. package/api.js.map +1 -0
  64. package/chunks/MiniCart.js +2 -0
  65. package/chunks/MiniCart.js.map +1 -0
  66. package/chunks/getEstimateShipping.js +39 -0
  67. package/chunks/getEstimateShipping.js.map +1 -0
  68. package/chunks/getStoreConfig.js +253 -0
  69. package/chunks/getStoreConfig.js.map +1 -0
  70. package/chunks/updateProductsFromCart.js +21 -0
  71. package/chunks/updateProductsFromCart.js.map +1 -0
  72. package/components/Cart/Cart.d.ts +11 -0
  73. package/components/Cart/Cart.d.ts.map +1 -0
  74. package/components/Cart/index.d.ts +3 -0
  75. package/components/Cart/index.d.ts.map +1 -0
  76. package/components/EmptyCart/EmptyCart.d.ts +8 -0
  77. package/components/EmptyCart/EmptyCart.d.ts.map +1 -0
  78. package/components/EmptyCart/index.d.ts +3 -0
  79. package/components/EmptyCart/index.d.ts.map +1 -0
  80. package/components/MiniCart/MiniCart.d.ts +12 -0
  81. package/components/MiniCart/MiniCart.d.ts.map +1 -0
  82. package/components/MiniCart/index.d.ts +3 -0
  83. package/components/MiniCart/index.d.ts.map +1 -0
  84. package/components/index.d.ts +4 -0
  85. package/components/index.d.ts.map +1 -0
  86. package/containers/Cart/Cart.d.ts +15 -0
  87. package/containers/Cart/Cart.d.ts.map +1 -0
  88. package/containers/Cart/index.d.ts +3 -0
  89. package/containers/Cart/index.d.ts.map +1 -0
  90. package/containers/Cart.d.ts +3 -0
  91. package/containers/Cart.js +2 -1
  92. package/containers/Cart.js.map +1 -0
  93. package/containers/MiniCart/MiniCart.d.ts +12 -0
  94. package/containers/MiniCart/MiniCart.d.ts.map +1 -0
  95. package/containers/MiniCart/index.d.ts +3 -0
  96. package/containers/MiniCart/index.d.ts.map +1 -0
  97. package/containers/MiniCart.d.ts +3 -0
  98. package/containers/MiniCart.js +2 -1
  99. package/containers/MiniCart.js.map +1 -0
  100. package/containers/index.d.ts +3 -0
  101. package/containers/index.d.ts.map +1 -0
  102. package/data/models/acdl-models.d.ts +73 -0
  103. package/data/models/acdl-models.d.ts.map +1 -0
  104. package/data/models/cart-model.d.ts +82 -0
  105. package/data/models/cart-model.d.ts.map +1 -0
  106. package/data/models/index.d.ts +3 -0
  107. package/data/models/index.d.ts.map +1 -0
  108. package/data/models/store-models.d.ts +13 -0
  109. package/data/models/store-models.d.ts.map +1 -0
  110. package/data/transforms/__fixtures__/cartModel.d.ts +4 -0
  111. package/data/transforms/__fixtures__/cartModel.d.ts.map +1 -0
  112. package/data/transforms/__fixtures__/productTypesData.d.ts +640 -0
  113. package/data/transforms/__fixtures__/productTypesData.d.ts.map +1 -0
  114. package/data/transforms/acdl-context.d.ts +11 -0
  115. package/data/transforms/acdl-context.d.ts.map +1 -0
  116. package/data/transforms/index.d.ts +3 -0
  117. package/data/transforms/index.d.ts.map +1 -0
  118. package/data/transforms/transform-cart.d.ts +4 -0
  119. package/data/transforms/transform-cart.d.ts.map +1 -0
  120. package/data/transforms/transform-store-config.d.ts +4 -0
  121. package/data/transforms/transform-store-config.d.ts.map +1 -0
  122. package/hooks/index.d.ts +2 -0
  123. package/hooks/index.d.ts.map +1 -0
  124. package/hooks/useEstimatedShipping.d.ts +26 -0
  125. package/hooks/useEstimatedShipping.d.ts.map +1 -0
  126. package/i18n/en_US.json.d.ts +49 -0
  127. package/lib/acdl.d.ts +26 -0
  128. package/lib/acdl.d.ts.map +1 -0
  129. package/lib/cookies.d.ts +2 -0
  130. package/lib/cookies.d.ts.map +1 -0
  131. package/lib/fetch-error.d.ts +8 -0
  132. package/lib/fetch-error.d.ts.map +1 -0
  133. package/lib/persisted-data.d.ts +5 -0
  134. package/lib/persisted-data.d.ts.map +1 -0
  135. package/lib/state.d.ts +11 -0
  136. package/lib/state.d.ts.map +1 -0
  137. package/package.json +1 -1
  138. package/render/Provider.d.ts +8 -0
  139. package/render/Provider.d.ts.map +1 -0
  140. package/render/index.d.ts +2 -0
  141. package/render/index.d.ts.map +1 -0
  142. package/render/render.d.ts +4 -0
  143. package/render/render.d.ts.map +1 -0
  144. package/render.d.ts +1 -0
  145. package/render.js +3 -1
  146. package/render.js.map +1 -0
  147. package/108.js +0 -1
  148. package/12.js +0 -1
  149. package/148.js +0 -1
  150. package/176.js +0 -1
  151. package/180.js +0 -1
  152. package/220.js +0 -1
  153. package/328.js +0 -1
  154. package/388.js +0 -1
  155. package/4.js +0 -1
  156. package/424.js +0 -1
  157. package/456.js +0 -1
  158. package/484.js +0 -1
  159. package/488.js +0 -1
  160. package/524.js +0 -1
  161. package/543.js +0 -1
  162. package/604.js +0 -1
  163. package/664.js +0 -1
  164. package/680.js +0 -1
  165. package/728.js +0 -1
  166. package/756.js +0 -1
  167. package/764.js +0 -1
  168. package/772.js +0 -1
  169. package/805.js +0 -1
  170. package/820.js +0 -1
  171. package/824.js +0 -1
  172. package/832.js +0 -1
  173. package/844.js +0 -1
  174. package/868.js +0 -1
  175. package/916.js +0 -1
  176. package/920.js +0 -1
  177. package/928.js +0 -1
  178. package/940.js +0 -1
  179. package/984.js +0 -1
  180. package/992.js +0 -1
  181. package/996.js +0 -1
  182. package/runtime.js +0 -1
@@ -0,0 +1,253 @@
1
+ import{events as l}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}const k={cartId:null,authenticated:!1},u=new Proxy(k,{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]}});function F(e){e?sessionStorage.setItem("DROPIN__CART__CART__DATA",JSON.stringify(e)):sessionStorage.removeItem("DROPIN__CART__CART__DATA")}function ce(){const e=sessionStorage.getItem("DROPIN__CART__CART__DATA");return e?JSON.parse(e):null}const G=new M({init:async e=>{const t={disableGuestCart:!1,...e};G.config.setConfig(t),s()},listeners:()=>[l.on("authenticated",async e=>{e!==u.authenticated&&(u.authenticated=e,s().catch(console.error))}),l.on("locale",async e=>{e!==u.locale&&(u.locale=e,s().catch(console.error))}),l.on("cart/reset",()=>{$().catch(console.error)}),l.on("cart/data",e=>{F(e)})]}),U=G.config,{setEndpoint:ie,setFetchGraphQlHeader:le,removeFetchGraphQlHeader:oe,setFetchGraphQlHeaders:se,fetchGraphQl:_,getConfig:_e}=new z().getMethods();function m(e){var t,n,r,a,c,i,o;return e?{id:e.id,totalQuantity:Y(e),errors:q(e==null?void 0:e.itemsV2),items:A(e==null?void 0:e.itemsV2),miniCartMaxItems:A(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:(i=e.prices.subtotal_with_discount_excluding_tax)==null?void 0:i.value,currency:(o=e.prices.subtotal_with_discount_excluding_tax)==null?void 0:o.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&&J(e.shipping_addresses)}}: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 A(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,i,o,y,C,b,h,I,v,x,T,R,E,S;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:((o=(i=r.configured_variant)==null?void 0:i.thumbnail)==null?void 0:o.label)||r.product.thumbnail.label},price:{value:r.prices.price.value,currency:r.prices.price.currency},links:H(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:(h=(b=r.configured_variant)==null?void 0:b.price_range)==null?void 0:h.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:((S=r.product.price_range)==null?void 0:S.maximum_price.discount.amount_off)>0,bundleOptions:r.__typename==="BundleCartItem"?B(r.bundle_options):null,selectedOptions:V(r.configurable_options),customizableOptions:j(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 q(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(i=>{r.push({uid:a.uid,text:i.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 B(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 V(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 j(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 Y(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 H(e){return(e==null?void 0:e.length)>0?{count:e.length,result:e.map(t=>t.title).join(", ")}:null}function J(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 L(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 g=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
+ `,O=`
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
+ `,d=`
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
+ ${O}
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
+ ${O}
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
+ `,Z=`
200
+ query GUEST_CART_QUERY(
201
+ $cartId: String!,
202
+ ${f}
203
+ ) {
204
+
205
+ cart(cart_id: $cartId){
206
+ ...CartFragment
207
+ }
208
+ }
209
+
210
+ ${d}
211
+ `,K=`
212
+ query CUSTOMER_CART_QUERY(
213
+ ${f}
214
+ ) {
215
+
216
+ cart: customerCart {
217
+ ...CartFragment
218
+ }
219
+ }
220
+
221
+ ${d}
222
+ `,w=async()=>{const e=u.authenticated,t=u.cartId;if(e)return _(K,{method:"GET"}).then(({errors:n,data:r})=>n?g(n):m(r.cart));if(!t)throw new Error("No cart ID found");return _(Z,{method:"GET",cache:"no-cache",variables:{cartId:t}}).then(({errors:n,data:r})=>n?g(n):m(r.cart))},W=`
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
+ ${d}
237
+ `,s=async()=>{u.config=await te();const e=u.authenticated?await X():await ee();return l.emit("cart/initialized",e),l.emit("cart/data",e),e};async function X(){const e=u.cartId,t=await w();return t?(u.cartId=t.id,!e||t.id===e?t:await _(W,{variables:{guestCartId:e,customerCartId:t.id}}).then(({data:n})=>m(n.mergeCarts)).catch(()=>(console.error("Could not merge carts"),t))):null}async function ee(){if(U.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,s()),re=`
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
+ `,te=async()=>_(re,{method:"GET",cache:"force-cache"}).then(({errors:e,data:t})=>e?g(e):L(t.storeConfig));export{f as C,d as a,ie as b,U as c,le as d,se as e,_ as f,_e as g,g as h,G as i,w as j,s as k,$ as l,te as m,ce as n,oe 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/state.ts","../../src/lib/persisted-data.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 { getCookie } from '@/cart/lib/cookies';\nimport { StoreConfigModel } from '@/cart/data/models/store-models';\n\ntype State = {\n cartId: string | null;\n authenticated: boolean;\n locale?: string;\n config?: StoreConfigModel | null;\n};\n\nconst _state: State = (() => ({\n cartId: null,\n authenticated: false,\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 { 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 { 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 // Initialize cart\n initializeCart();\n },\n\n listeners: () => [\n events.on('authenticated', async (authenticated) => {\n if (authenticated !== state.authenticated) {\n state.authenticated = authenticated;\n initializeCart().catch(console.error);\n }\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 };\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, { method: 'GET' }).then(\n ({ errors, data }) => {\n if (errors) return handleFetchError(errors);\n\n return transformCart(data.cart);\n }\n );\n }\n\n // Guest Cart\n if (!cartId) throw new Error('No cart ID found');\n\n return fetchGraphQl(GUEST_CART_QUERY, {\n method: '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 return transformCart(data.mergeCarts);\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","_state","cartId","authenticated","state","Proxy","set","target","key","value","expiresInDays","config","cartExpiresInDays","console","warn","expires","Date","setDate","getDate","toUTCString","get","setPersistedData","data","sessionStorage","setItem","JSON","stringify","removeItem","getPersistedData","getItem","parse","initialize","Initializer","init","_config","disableGuestCart","setConfig","initializeCart","listeners","events","on","catch","error","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","then","cart","cache","variables","MERGE_CARTS_MUTATION","getStoreConfig","getCustomerCartPayload","getGuestCartPayload","emit","existingCartId","guestCartId","customerCartId","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":"gIAQO,SAASA,EACdC,EACqB,CACf,KAAA,CAAEC,KAAAA,EAAMC,OAAAA,EAAS,OAAYF,EAAAA,EAE5B,MAAA,CACLG,GAAIF,EAAKE,GACTC,MAAOC,EAAeJ,EAAKG,MAAOF,CAAM,EACxCI,OAAQ,CACNC,qBAAsBN,EAAKO,SAASC,aACpCC,qBAAsBT,EAAKO,SAASG,YACtC,EACAC,cAAeX,EAAKW,cACpBC,wBAAyBC,OACzBC,oBAAqBD,OACrBE,qBAAsBF,OACtBG,OAAQH,MAAAA,CAEZ,CAEgBT,SAAAA,EAAeD,EAAeF,EAAoC,CACzEE,OAAAA,EAAMc,IAAKC,GAAe,OAAA,OAC/BC,aAAc,GACdC,eAAgBC,EACdpB,EACAiB,EAAKI,MAAMC,SACXL,EAAKI,MAAME,KACb,EACAtB,GAAIgB,EAAKO,IACTpB,OAAQ,CACNiB,MAAOJ,EAAKI,KACd,EACAI,QAAS,CACPC,UAAWT,EAAKO,IAChBG,KAAMV,EAAKU,KACXC,IAAKX,EAAKW,IACVC,YAAajB,OACbkB,cAAelB,OACfmB,gBAAiBnB,OACjBoB,UAAWpB,OACXqB,YAAarB,OACbsB,UAAWtB,OACXuB,UAAWvB,OACXwB,aAAcxB,OACdyB,qBAAsBzB,OACtB0B,WAAYrB,EAAKsB,IAAID,WACrBE,YAAa5B,OACb6B,QAAS,CACPC,aAAczB,EAAKyB,aAAanB,MAChCoB,aAAc/B,OACdgC,aAAchC,OACdiC,cAAc5B,EAAAA,EAAK6B,WAAL7B,YAAAA,EAAeM,MAC7BwB,YAAanC,OACboC,aAAc/B,EAAKyB,aAAapB,QAClC,EACA2B,aAAchC,EAAKsB,IAAIW,OACvBC,aAAclC,EAAKmC,MAAMC,IACzBD,MAAO,CACLC,IAAKpC,EAAKmC,MAAMC,IAChBC,IAAKrC,EAAKmC,MAAME,GAClB,CACF,EACAC,oBAAqB3C,OACrB4C,SAAUvC,EAAKuC,QACf,EAAA,CACJ,CAEA,SAASpC,EACPpB,EACAsB,EACAC,EACQ,CACR,MAAMkC,EAAkBzD,EAAO0D,QAAQ,IAAK,GAAG,EAExC,OAAA,IAAIC,KAAKC,aAAaH,EAAiB,CAC5CI,MAAO,WACPvC,SAAAA,CAAAA,CACD,EAAEwC,OAAOvC,CAAK,CACjB,CCvEO,MAAMwC,EAAW,CACtBC,sBAAuB,sBACvBC,gBAAiB,iBACjBC,yBAA0B,wBAC5B,EAKaC,EAAS,CAEpBC,UAAW,YAIXC,YAAa,cAEbC,iBAAkB,mBAElBC,mBAAoB,oBACtB,EAEO,SAASC,GAAoB,CAE3BC,cAAAA,eAAiBC,OAAOD,gBAAkB,CAAA,EAE1CC,OAAOD,cAChB,CAMA,SAASE,EAAWhD,EAAciD,EAAW,CAC3C,MAAMH,EAAiBD,IAGvBC,EAAeI,KAAK,CAClB,CAAClD,CAAI,EAAG,IAAA,CACT,EAGD8C,EAAeI,KAAK,CAClB,CAAClD,CAAI,EAAGiD,CAAAA,CACT,CACH,CAMA,SAASE,EAAUC,EAAeC,EAAyB,CAClCR,IAERK,KAAMI,GAAc,CACjC,MAAMC,EAAQD,EAAKE,SAAWF,EAAKE,WAAa,GAEhDF,EAAKJ,KAAK,CACRE,MAAAA,EACAK,UAAW,CACT,GAAGF,EACH,GAAGF,CACL,CAAA,CACD,CAAA,CACF,CACH,CAGgBK,SAAAA,EACdtF,EACAuF,EACAtF,EACA,CACA,MAAMuF,EAAsB1F,EAAsB,CAChDE,KAAAA,EACAC,OAAAA,CAAAA,CACD,EAGD2E,EAAWZ,EAASC,sBAAuB,CACzC,GAAGuB,CAAAA,CACJ,EAEDT,EAAUX,EAAOC,SAAS,EAGAjE,EAAemF,EAAYtF,CAAM,EAEzCwF,QAAkBvE,GAAA,CACvB8C,EAAAA,EAASE,gBAAiBhD,EAAKQ,OAAO,EACjDgE,EAAyBF,EAAqB,CAACtE,CAAI,EAAGkD,EAAOE,WAAW,CAAA,CACzE,CACH,CAGgBqB,SAAAA,EAA6B3F,EAAiBC,EAAgB,CAC5E,MAAMuF,EAAsB1F,EAAsB,CAChDE,KAAAA,EACAC,OAAAA,CAAAA,CACD,EAED2E,EAAWZ,EAASC,sBAAuB,CACzC,GAAGuB,CAAAA,CACJ,EAEDT,EAAUX,EAAOI,kBAAkB,CACrC,CAGA,SAASkB,EACPF,EACAI,EACAZ,EACA,CACA,MAAMa,EAAyB,CAC7B1F,MAAOyF,CAAAA,EAGThB,EAAWZ,EAASC,sBAAuB,CACzC,GAAGuB,CAAAA,CACJ,EAEDZ,EAAWZ,EAASG,yBAA0B,CAC5C,GAAG0B,CAAAA,CACJ,EAEDd,EAAUC,CAAK,CACjB,CAEgBc,SAAAA,EACd9F,EACA4F,EAGA3F,EACA,CACA,MAAM8F,EAAyBjG,EAAsB,CACnDE,KAAAA,EACAC,OAAAA,CAAAA,CACD,EAEK+F,EAAeD,EAAuB5F,MAEtCuE,EAAiBD,IAEjBwB,EAAevB,EAAeU,SAAWV,EAAeU,WAAa,GAErE,CAAEI,oBAAqB,CAAErF,MAAO+F,EAAgB,CAAA,CAAA,EAAO,CAAC,CAC5DD,EAAAA,EAEFL,EAAaH,QAAyBU,GAAA,CAC9BC,MAAAA,EAAeF,EAAcG,KAChCnF,GAA2BA,EAAKhB,KAAOiG,EAAY1E,GACtD,EAEM6E,EAAcN,EAAcK,KAC/BnF,GAA2BA,EAAKhB,KAAOiG,EAAY1E,GACtD,EAEI,CAAC6E,GAAe,CAACF,IAMjB,CAACA,GAAgBE,GAERtC,EAAAA,EAASE,gBAAiBoC,EAAY5E,OAAO,EACxDgE,EACEK,EACA,CAACO,CAAW,EACZlC,EAAOE,WACT,GACS8B,GAAgB,CAACE,GAEftC,EAAAA,EAASE,gBAAiBkC,EAAa1E,OAAO,EACzDgE,EACEK,EACA,CAACK,CAAY,EACbhC,EAAOG,gBACT,GACS+B,EAAa7C,SAAW2C,EAAa3C,UAEnCO,EAAAA,EAASE,gBAAiBoC,EAAa5E,OAAO,EACzDgE,EACEK,EACA,CAACO,CAAY,EACblC,EAAOE,WACT,IAGWN,EAAAA,EAASE,gBAAiBoC,EAAa5E,OAAO,EACzDgE,EACEK,EACA,CAACO,CAAY,EACblC,EAAOG,gBACT,GACF,CACD,CACH,CCpNO,MAAMgC,EAAqC;AAAA;AAAA;AAAA;AAAA,QAI1CC,CAA+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAcnCC,CAAa;AAAA,ECLJC,EAAyB,MACpCvG,GAC8B,CAC9B,MAAMwG,EAASxB,EAAMwB,OAErB,GAAI,CAACA,EACH,MAAMC,MAAM,oBAAoB,EAGlC,OAAOC,EAAaN,EAAoC,CACtDO,UAAW,CACTH,OAAAA,EACAI,UAAW5G,EAAMc,IAAI,CAAC,CAAEQ,IAAAA,EAAKgC,SAAAA,CAAAA,KAAgB,CAC3CuD,cAAevF,EACfgC,SAAAA,CAAAA,EACA,CACJ,CAAA,CACD,EAAEwD,KAAK,CAAC,CAAEC,OAAAA,EAAQrC,KAAAA,CAAAA,IAAW,CACxBqC,GAAAA,EAAQ,OAAOC,EAAiBD,CAAM,EAE1C,MAAME,EAAUC,EAAcxC,EAAKyC,gBAAgBtH,IAAI,EAEhDuH,OAAAA,EAAAA,KAAK,eAAgBH,CAAO,EAC5BG,EAAAA,KAAK,YAAaH,CAAO,EAE5BA,GAEFtB,EAAwBsB,EAASjH,EAAOgF,EAAMlF,QAAU,OAAO,EAG1DmH,CAAAA,CACR,CACH"}
@@ -0,0 +1,11 @@
1
+ import { FunctionComponent, VNode } from 'preact';
2
+ import { HTMLAttributes } from 'preact/compat';
3
+
4
+ export interface CartProps extends HTMLAttributes<HTMLDivElement> {
5
+ emptyCart: VNode;
6
+ heading?: VNode;
7
+ products?: VNode;
8
+ priceSummary?: VNode<HTMLAttributes<HTMLElement>>;
9
+ }
10
+ export declare const Cart: FunctionComponent<CartProps>;
11
+ //# sourceMappingURL=Cart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cart.d.ts","sourceRoot":"","sources":["../../../src/components/Cart/Cart.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAI/C,OAAO,iCAAiC,CAAC;AAEzC,MAAM,WAAW,SAAU,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC/D,SAAS,EAAE,KAAK,CAAC;IACjB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,YAAY,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;CACnD;AAED,eAAO,MAAM,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAkD7C,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './Cart';
2
+ export { Cart as default } from './Cart';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Cart/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { FunctionComponent } from 'preact';
2
+ import { HTMLAttributes } from 'preact/compat';
3
+
4
+ export interface EmptyCartProps extends HTMLAttributes<HTMLDivElement> {
5
+ ctaLinkURL?: string;
6
+ }
7
+ export declare const EmptyCart: FunctionComponent<EmptyCartProps>;
8
+ //# sourceMappingURL=EmptyCart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyCart.d.ts","sourceRoot":"","sources":["../../../src/components/EmptyCart/EmptyCart.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAM/C,OAAO,2CAA2C,CAAC;AAEnD,MAAM,WAAW,cAAe,SAAQ,cAAc,CAAC,cAAc,CAAC;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAmCvD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './EmptyCart';
2
+ export { EmptyCart as default } from './EmptyCart';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/EmptyCart/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAC;AACtD,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,uCAAuC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { FunctionComponent, VNode } from 'preact';
2
+ import { HTMLAttributes } from 'preact/compat';
3
+
4
+ export interface MiniCartProps extends HTMLAttributes<HTMLDivElement> {
5
+ emptyCart: VNode;
6
+ heading?: VNode;
7
+ products?: VNode;
8
+ estimatedTotal?: VNode;
9
+ ctas?: VNode;
10
+ }
11
+ export declare const MiniCart: FunctionComponent<MiniCartProps>;
12
+ //# sourceMappingURL=MiniCart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiniCart.d.ts","sourceRoot":"","sources":["../../../src/components/MiniCart/MiniCart.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAK/C,OAAO,yCAAyC,CAAC;AAEjD,MAAM,WAAW,aAAc,SAAQ,cAAc,CAAC,cAAc,CAAC;IACnE,SAAS,EAAE,KAAK,CAAC;IACjB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,cAAc,CAAC,EAAE,KAAK,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,CAAC;CACd;AAED,eAAO,MAAM,QAAQ,EAAE,iBAAiB,CAAC,aAAa,CAsDrD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './MiniCart';
2
+ export { MiniCart as default } from './MiniCart';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MiniCart/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,qCAAqC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './EmptyCart';
2
+ export * from './Cart';
3
+ export * from './MiniCart';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { HTMLAttributes } from 'preact/compat';
2
+ import { Container } from '@dropins/tools/types/elsie/src/lib';
3
+ import { CartModel } from '../../data/models';
4
+
5
+ interface CheckoutRouteContext {
6
+ cartId: string;
7
+ }
8
+ export interface CartProps extends HTMLAttributes<HTMLDivElement> {
9
+ routeProduct?: (item: CartModel['items'][0]) => string;
10
+ routeEmptyCartCTA?: () => string;
11
+ routeCheckout?: (context: CheckoutRouteContext) => string;
12
+ }
13
+ export declare const Cart: Container<CartProps, CartModel | null>;
14
+ export {};
15
+ //# sourceMappingURL=Cart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cart.d.ts","sourceRoot":"","sources":["../../../src/containers/Cart/Cart.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAuB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAoB/C,UAAU,oBAAoB;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,WAAW,SAAU,SAAQ,cAAc,CAAC,cAAc,CAAC;IAE/D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;IACvD,iBAAiB,CAAC,EAAE,MAAM,MAAM,CAAC;IACjC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,MAAM,CAAC;CAC3D;AAED,eAAO,MAAM,IAAI,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CA2WvD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './Cart';
2
+ export { Cart as default } from './Cart';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/containers/Cart/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './Cart/index'
2
+ import _default from './Cart/index'
3
+ export default _default
@@ -1 +1,2 @@
1
- import*as t from"@dropins/tools/event-bus.js";import*as e from"@dropins/tools/fetch-graphql.js";export const id=356;export const ids=[356];export const modules={3884:(t,e,r)=>{r.d(e,{KG:()=>d,QN:()=>c,iM:()=>u});var n=r(7218),i=r(3584),a=r(764);function o(t,e,r,n,i,a,o){try{var l=t[a](o),c=l.value}catch(t){return void r(t)}l.done?e(c):Promise.resolve(c).then(n,i)}function l(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function l(t){o(a,n,i,l,c,"next",t)}function c(t){o(a,n,i,l,c,"throw",t)}l(void 0)}))}}var c=function(){var t=l((function*(t){var e=n.K.cartId;if(!e)throw new Error("No cart ID found");if(!t)throw new Error("No address parameter found");var{countryCode:r,postcode:o,region:l}=t;return(0,i.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:e,address:{country_code:r||"US",postcode:o||"",region:{region_code:(null==l?void 0:l.code)||""}}}}).then((t=>{var{errors:e,data:r}=t;if(e)return(0,a.H)(e);var n=r.estimateShippingMethods;return 0===n.length?null:n.find((t=>!t.error_message))}))}));return function(e){return t.apply(this,arguments)}}(),d=function(){var t=l((function*(){return(0,i.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 e,r,{errors:n,data:i}=t;if(n)return(0,a.H)(n);var o=(null==i||null===(e=i.countries)||void 0===e?void 0:e.sort(((t,e)=>t.label.localeCompare(e.label))))||[],l=(null==i||null===(r=i.storeConfig)||void 0===r?void 0:r.defaultCountry)||"US";return o.forEach((t=>{t.isDefaultCountry=t.id===l})),o}))}));return function(){return t.apply(this,arguments)}}(),u=function(){var t=l((function*(t){return(0,i.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 e,{errors:r,data:n}=t;return r?(0,a.H)(r):(null==n||null===(e=n.country)||void 0===e?void 0:e.available_regions)||[]}))}));return function(e){return t.apply(this,arguments)}}()},8512:(t,e,r)=>{r.d(e,{M:()=>Z,c:()=>Z});var n=r(2796),i=r(8122),a=r(4772),o=r(8920),l=r(6360),c=r(7912),d=r(2872),u=r(3604),s=r(4168),p=r(4072),m=r(4944),g=r(1044),v=r(5092),y=r(5536),h=r.n(y),f=r(7008),b=r.n(f),S=r(1496),_=r.n(S),w=r(9356),C=r.n(w),O=r(9904),P=r.n(O),j=r(8016),x={attributes:{"data-dropin":"storefront-cart","data-sdk":"0.21.0"},styleTagTransform:function(t,e){window._loadedStyles=window._loadedStyles??{};const r=t?.match(/^\.dropin-(\w+)/)?.[1],n=e.getAttribute("data-sdk"),i=r?`sdk/${r}`:e.getAttribute("data-dropin");e.setAttribute("data-dropin",i),e.removeAttribute("data-sdk");const a=window._loadedStyles[i];if(a){const i=function(t,e){const[r,n]=t.split("-"),[i,a]=e.split("-"),o=[...r.split("."),n],l=[...i.split("."),a],c=parseInt(o[0],10),d=parseInt(l[0],10);if(c!==d)return c>d?t:e;const u=parseInt(o[1],10),s=parseInt(l[1],10);if(u!==s)return u>s?t:e;const p=parseInt(o[2],10),m=parseInt(l[2],10);if(p!==m)return p>m?t:e;if(o[3]&&l[3]){const r=/(alpha|beta)(.*)/,n=o[3].match(r),i=l[3].match(r),a=n[1],c=i[1],d=parseInt(n[2],10),u=parseInt(i[2],10);if(a===c)return d>u?t:e;if("alpha"===a&&"beta"===c)return e;if("beta"===a&&"alpha"===c)return t}return o[3]?e:t}(n,a.sdk);if(!r||r&&i===a.sdk){const e=a.style.textContent;a.style.textContent=`${e}\n/* --- MERGED --- */\n${t}`}else r&&i!==a.sdk&&(a.style.textContent=`/* --- UPGRADED --- */\n${t}`);return void e.remove()}e.textContent=t,window._loadedStyles[i]={sdk:n,core:r,style:e};const o=document.querySelector("head"),{lastDropinStyleInjected:l,lastSDKStyleInjected:c}=window._loadedStyles;r?(c?o.insertBefore(e,c.nextSibling):o.insertBefore(e,o.firstChild),window._loadedStyles.lastSDKStyleInjected=e):(l?o.insertBefore(e,l.nextSibling):c?o.insertBefore(e,c.nextSibling):o.insertBefore(e,o.firstChild),window._loadedStyles.lastDropinStyleInjected=e)}};x.setAttributes=C(),x.insert=_().bind(null,"head"),x.domAPI=b(),x.insertStyleElement=P();h()(j.c,x);j.c&&j.c.locals&&j.c.locals;var T=r(8412),D=["className","children","emptyCart","heading","products","priceSummary"];function E(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function I(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?E(Object(r),!0).forEach((function(e){k(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):E(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function k(t,e,r){var n;return(e="symbol"==typeof(n=function(t,e){if("object"!=typeof t||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(e,"string"))?n:String(n))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function N(t,e){if(null==t)return{};var r,n,i=function(t,e){if(null==t)return{};var r,n,i={},a=Object.keys(t);for(n=0;n<a.length;n++)r=a[n],e.indexOf(r)>=0||(i[r]=t[r]);return i}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(n=0;n<a.length;n++)r=a[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(i[r]=t[r])}return i}var F=t=>{var{className:e,children:r,emptyCart:n,heading:i,products:a,priceSummary:o}=t,l=N(t,D);return(0,T.im)("div",I(I({},l),{},{className:(0,m.i)(["cart-cart",e]),children:(0,T.YH)("div",{className:(0,m.i)(["cart-cart__wrapper"]),children:[i&&(0,T.YH)("div",{className:(0,m.i)(["cart-cart__heading",["cart-cart__heading--full-width",!a||!o]]),children:[(0,T.im)(g.o,{node:i,className:"cart-cart__heading-text"}),(0,T.im)(v.c,{variant:"primary",className:(0,m.i)(["cart-cart__heading-divider"])})]}),(0,T.im)("div",{className:(0,m.i)(["cart-cart__content",["cart-cart__content--empty",!a],["cart-cart__content--full-width",!o]]),children:a||(0,T.im)(g.o,{node:n,className:"cart-cart__empty-cart"})}),a&&o&&(0,T.im)(g.o,{node:o,className:(0,m.i)(["cart-cart__price-summary"])})]})}))},A=r(3912),B=r(1580),Y=r(2460),q=r(2336),z=r(7192),U=r(7218),M=r(3884),Q=["children","initialData","routeProduct","routeEmptyCartCTA","routeCheckout"];function R(t,e,r,n,i,a,o){try{var l=t[a](o),c=l.value}catch(t){return void r(t)}l.done?e(c):Promise.resolve(c).then(n,i)}function $(t){return function(){var e=this,r=arguments;return new Promise((function(n,i){var a=t.apply(e,r);function o(t){R(a,n,i,o,l,"next",t)}function l(t){R(a,n,i,o,l,"throw",t)}o(void 0)}))}}function L(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function G(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?L(Object(r),!0).forEach((function(e){H(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):L(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function H(t,e,r){var n;return(e="symbol"==typeof(n=function(t,e){if("object"!=typeof t||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(e,"string"))?n:String(n))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function K(t,e){if(null==t)return{};var r,n,i=function(t,e){if(null==t)return{};var r,n,i={},a=Object.keys(t);for(n=0;n<a.length;n++)r=a[n],e.indexOf(r)>=0||(i[r]=t[r]);return i}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(n=0;n<a.length;n++)r=a[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(i[r]=t[r])}return i}var Z=t=>{var e,r,m,g,v,y,{children:h,initialData:f=null,routeProduct:b,routeEmptyCartCTA:S,routeCheckout:_}=t,w=K(t,Q),[C,O]=(0,n.oT)(f),[P,j]=(0,n.oT)(new Set),{loading:x,regionsLoading:D,countries:E,regions:I,selectedCountry:k,selectedRegion:N,selectedZip:q,estimatedDestinationText:R,estimatedShippingPrice:$,handleCountrySelected:L,handleEstimateShipping:H}=(()=>{var[t,e]=(0,n.oT)([]),[r,i]=(0,n.oT)("US"),[a,o]=(0,n.oT)(""),[l,c]=(0,n.oT)(""),[d,u]=(0,n.oT)([]),[s,p]=(0,n.oT)(!1),[m,g]=(0,n.oT)(),[v,y]=(0,n.oT)(""),[h,f]=(0,n.oT)(!1);return(0,n.YB)((()=>{(0,M.KG)().then((t=>{var r="US",n=t.map((t=>(t.isDefaultCountry&&(r=t.id),{text:t.label,value:t.id})));e(n),i(r)}))}),[]),(0,n.YB)((()=>{p(!0),(0,M.iM)(r).then((t=>{var e=t.map((t=>({text:t.name,value:t.code})));u(e)})).finally((()=>{p(!1)}))}),[r,p]),{loading:h,regionsLoading:s,estimatedDestinationText:v,countries:t,selectedCountry:r,selectedRegion:a,selectedZip:l,regions:d,estimatedShippingPrice:m,handleEstimateShipping:t=>{var{shippingCountry:e,shippingState:r="",shippingZip:n=""}=t,a={countryCode:e,postcode:n,region:{code:r}};f(!0),(0,M.QN)(a).then((t=>{t&&(g({amount:t.amount.value,currency:t.amount.currency}),i(e),o(r),c(n),y(r||n||e))})).finally((()=>{f(!1)}))},handleCountrySelected:t=>{t.preventDefault(),o(""),c("");var e=t.target.value;i(e)}}})(),Z=(t,e)=>{j((r=>(t?r.add(e):r.delete(e),new Set(r))))},W=(t,e)=>{Z(!0,t),(0,B.E)([{uid:t,quantity:e}]).finally((()=>{Z(!1,t)}))},V=(0,Y.cF)({heading:"Cart.Cart.heading",taxToBeDetermined:"Cart.PriceSummary.taxToBeDetermined",checkout:"Cart.PriceSummary.checkout",regularPrice:"Cart.CartItem.regularPrice",discountedPrice:"Cart.CartItem.discountedPrice",countryField:"Cart.PriceSummary.estimatedShippingForm.country.placeholder",stateField:"Cart.PriceSummary.estimatedShippingForm.state.placeholder",zipField:"Cart.PriceSummary.estimatedShippingForm.zip.placeholder",applyButton:"Cart.PriceSummary.estimatedShippingForm.apply.label",freeShipping:"Cart.PriceSummary.freeShipping"});(0,n.YB)((()=>{var t=i.events.on("cart/data",(t=>{var e;O(t);var r=null==t||null===(e=t.addresses)||void 0===e||null===(e=e.shipping)||void 0===e?void 0:e[0];if(r){var{countryCode:n,regionCode:i,zipCode:a}=r;H({shippingCountry:n,shippingState:i,shippingZip:a})}}),{eager:!0});return()=>{null==t||t.off()}}),[]),(0,n.YB)((()=>{f&&Object.keys(f).length>0&&(0,z.Ws)(f,U.K.locale||"en-US")}),[f]);var J=null!==(e=null==C?void 0:C.totalQuantity)&&void 0!==e&&e?(0,T.im)(a.A,{"data-testid":"price-summary",loading:x,heading:"Order Summary",total:{price:(0,T.im)(o.Y,{amount:null==C?void 0:C.total.value,currency:null==C?void 0:C.total.currency}),estimated:!0},subTotal:{price:(0,T.im)(o.Y,{"data-testid":"subtotal",amount:null==C||null===(r=C.subtotal.excludingTax)||void 0===r?void 0:r.value,currency:null==C||null===(m=C.subtotal.excludingTax)||void 0===m?void 0:m.currency})},shipping:{price:null!=C&&C.isVirtual||0==(null==$?void 0:$.amount)?(0,T.im)("span",{children:V.freeShipping}):$?(0,T.im)(o.Y,G({},$)):(0,T.im)("span",{children:V.taxToBeDetermined}),estimated:!(null!=C&&C.isVirtual),countryField:(0,T.im)(l.q,{name:"shippingCountry",placeholder:V.countryField,value:k,variant:"primary",options:E,handleSelect:L,"data-testid":"estimate-shipping-country-selector"}),stateField:I.length>0?(0,T.im)(l.q,{name:"shippingState",placeholder:V.stateField,variant:"primary",options:I,value:N,"data-testid":"estimate-shipping-state-selector",disabled:D}):(0,T.im)(c.E,{"aria-label":V.stateField,name:"shippingState",placeholder:V.stateField,variant:"primary",value:N,disabled:D,"data-testid":"estimate-shipping-state-input",maxLength:50}),zipField:(0,T.im)(c.E,{"aria-label":V.zipField,name:"shippingZip",placeholder:V.zipField,variant:"primary","data-testid":"estimate-shipping-zip-input",value:q,maxLength:12}),estimateButton:(0,T.im)(d.q,{variant:"secondary","data-testid":"estimate-shipping-apply-button","aria-label":V.applyButton,children:V.applyButton}),destinationText:R||V.taxToBeDetermined,onEstimate:H},taxTotal:{price:null!=C&&C.totalTax?(0,T.im)(o.Y,{"data-testid":"tax-total",amount:null==C||null===(g=C.totalTax)||void 0===g?void 0:g.value,currency:null==C||null===(v=C.totalTax)||void 0===v?void 0:v.currency}):(0,T.im)("span",{"data-testid":"tax-total",children:V.taxToBeDetermined}),estimated:!0},primaryAction:_?(0,T.im)(d.q,{"data-testid":"checkout-button",variant:"primary",href:_({cartId:C.id}),children:V.checkout}):void 0,discounts:null==C?void 0:C.appliedDiscounts.map((t=>({label:t.label,price:(0,T.im)(o.Y,{"data-testid":"summary-discount-total",amount:-t.amount.value,currency:t.amount.currency,sale:!0})})))}):void 0;return(0,T.im)(F,G(G({},w),{},{heading:(0,T.im)("div",{children:V.heading}),emptyCart:(0,T.im)(A.Q,{ctaLinkURL:null==S?void 0:S()}),priceSummary:J,products:null!==(y=null==C?void 0:C.totalQuantity)&&void 0!==y&&y?(0,T.im)(u.A,{children:null==C?void 0:C.items.map(((t,e)=>{var r,n,i,a,l=P.has(t.uid);return(0,T.im)(s.Y,{ariaLabel:t.name,updating:l,image:b?(0,T.im)("a",{href:b(t),children:(0,T.im)(p.W,{loading:e<4?"eager":"lazy",src:t.image.src,alt:t.image.alt,width:"300",height:"300",params:{width:300}})}):(0,T.im)(p.W,{loading:e<4?"eager":"lazy",src:t.image.src,alt:t.image.alt,width:"300",height:"300",params:{width:300}}),title:(0,T.im)("span",{children:b?(0,T.im)("a",{href:b(t),children:t.name}):(0,T.im)(T.ae,{children:t.name})}),sku:(0,T.im)("span",{children:t.sku}),configurations:t.selectedOptions,quantity:t.quantity,price:(0,T.im)(o.Y,{amount:null===(r=t.regularPrice)||void 0===r?void 0:r.value,currency:null===(n=t.regularPrice)||void 0===n?void 0:n.currency,style:{font:"inherit"}}),total:(0,T.YH)(T.ae,{children:[(0,T.im)(o.Y,{amount:t.total.value,currency:t.total.currency,variant:t.discounted?"strikethrough":"default","data-testid":"regular-total","aria-label":V.regularPrice}),t.discounted&&(0,T.im)(o.Y,{amount:null===(i=t.discountedTotal)||void 0===i?void 0:i.value,currency:null===(a=t.discountedTotal)||void 0===a?void 0:a.currency,sale:t.discounted,"data-testid":"discount-total","aria-label":V.discountedPrice})]}),onQuantity:e=>{W(t.uid,e)},onRemove:()=>{W(t.uid,0)}},t.uid)}))}):void 0}))};Z.getInitialData=$((function*(){return(0,q.u)()}))},8016:(t,e,r)=>{r.d(e,{c:()=>l});var n=r(6008),i=r.n(n),a=r(2076),o=r.n(a)()(i());o.push([t.id,".cart-cart{\n container-type:inline-size;\n container-name:cart;\n}\n\n.cart-cart__wrapper{\n display:grid;\n grid-template-rows:auto 1fr;\n grid-gap:var(--spacing-medium);\n}\n\n.cart-cart__heading{\n display:grid;\n row-gap:var(--spacing-xsmall);\n padding:var(--spacing-medium);\n padding-bottom:0px;\n font:var(--type-headline-1-font);\n letter-spacing:var(--type-headline-1-letter-spacing);\n}\n\n.cart-cart__heading-divider{\n width:100%;\n margin:var(--spacing-xxsmall) 0 0 0;\n}\n\n.cart-cart__content{\n display:grid;\n grid-template-columns:1fr;\n padding:0 var(--spacing-medium);\n}\n\n.cart-cart__empty-cart{\n justify-self:center;\n align-self:center;\n width:100%;\n max-width:800px;\n}\n\n.cart-cart__price-summary{\n padding:var(--spacing-small) var(--spacing-medium);\n background-color:var(--color-neutral-200);\n}\n\n.dropin-price-summary__shipping--zip,\n.dropin-price-summary__shipping--state{\n background-color:var(--color-neutral-50);\n}\n\n\n@container cart (width >= 1024px){\n .cart-cart__wrapper{\n grid-template-columns:repeat(var(--grid-3-columns), 1fr);\n grid-column-gap:var(--grid-3-gutters);\n margin:0 var(--grid-3-margins);\n }\n\n .cart-cart__heading{\n padding:var(--spacing-medium) 0 0 0;\n }\n\n .cart-cart__content{\n padding:0px;\n }\n\n .cart-cart__heading,\n .cart-cart__content{\n grid-column:1 / span 8;\n }\n\n .cart-cart__price-summary{\n grid-row:1 / span 3;\n grid-column:9 / span 4;\n padding:var(--spacing-medium);\n height:min-content;\n }\n\n .cart-cart__heading--full-width,\n .cart-cart__content--empty,\n .cart-cart__content--full-width{\n grid-column:1 / span 12;\n }\n}\n",""]);const l=o},8122:(e,r,n)=>{e.exports=(t=>{var e={};return n.d(e,t),e})({events:()=>t.events})},8616:(t,r,n)=>{t.exports=(t=>{var e={};return n.d(e,t),e})({FetchGraphQL:()=>e.FetchGraphQL})}};import r from"../runtime.js";import*as n from"../756.js";r.C(n);import*as i from"../992.js";r.C(i);import*as a from"../12.js";r.C(a);import*as o from"../928.js";r.C(o);import*as l from"../805.js";r.C(l);import*as c from"./Cart.js";r.C(c);var d,u=(d=8512,r(r.s=d)),s=u.M,p=u.c;export{s as Cart,p as default};
1
+ import{useState as o,useCallback as W,useEffect as w}from"@dropins/tools/preact-compat.js";import{events as X}from"@dropins/tools/event-bus.js";import{Divider as Y,PriceSummary as A,Price as h,Picker as q,Input as G,Button as H,CartList as ee,CartItem as te,Image as J}from"@dropins/tools/components.js";import{E as ae}from"../chunks/MiniCart.js";import{classes as S,VComponent as U}from"@dropins/tools/lib.js";import{jsx as a,jsxs as $,Fragment as K}from"@dropins/tools/preact-jsx-runtime.js";import{s as re,n as ne}from"../chunks/getStoreConfig.js";import{b as ie,u as se}from"../chunks/updateProductsFromCart.js";import{g as ce,a as oe,b as le}from"../chunks/getEstimateShipping.js";import{useText as de}from"@dropins/tools/i18n.js";import"@dropins/tools/fetch-graphql.js";const ue=({className:b,children:m,emptyCart:l,heading:d,products:u,priceSummary:p,...t})=>a("div",{...t,className:S(["cart-cart",b]),children:$("div",{className:S(["cart-cart__wrapper"]),children:[d&&$("div",{className:S(["cart-cart__heading",["cart-cart__heading--full-width",!u||!p]]),children:[a(U,{node:d,className:"cart-cart__heading-text"}),a(Y,{variant:"primary",className:S(["cart-cart__heading-divider"])})]}),a("div",{className:S(["cart-cart__content",["cart-cart__content--empty",!u],["cart-cart__content--full-width",!p]]),children:u||a(U,{node:l,className:"cart-cart__empty-cart"})}),u&&p&&a(U,{node:p,className:S(["cart-cart__price-summary"])})]})}),pe=()=>{const[b,m]=o([]),[l,d]=o("US"),[u,p]=o(""),[t,_]=o(""),[D,E]=o([]),[z,f]=o(!1),[B,P]=o(),[R,k]=o(""),[N,F]=o(!1),y=W(i=>{const{shippingCountry:n,shippingState:c="",shippingZip:r=""}=i,Z={countryCode:n,postcode:r,region:{code:c}};F(!0),ce(Z).then(C=>{C&&(P({amount:C.amount.value,currency:C.amount.currency}),d(n),p(c),_(r),k(c||r||n))}).finally(()=>{F(!1)})},[]),O=i=>{i.preventDefault(),p(""),_("");const n=i.target.value;d(n)};return w(()=>{oe().then(i=>{let n="US";const c=i.map(r=>(r.isDefaultCountry&&(n=r.id),{text:r.label,value:r.id}));m(c),d(n)})},[]),w(()=>{f(!0),le(l).then(i=>{const n=i.map(c=>({text:c.name,value:c.code}));E(n)}).finally(()=>{f(!1)})},[l,f]),{loading:N,regionsLoading:z,estimatedDestinationText:R,countries:b,selectedCountry:l,selectedRegion:u,selectedZip:t,regions:D,estimatedShippingPrice:B,handleEstimateShipping:y,handleCountrySelected:O}},me=({children:b,initialData:m=null,routeProduct:l,routeEmptyCartCTA:d,routeCheckout:u,...p})=>{var C,j,Q,V;const[t,_]=o(m),[D,E]=o(new Set),{loading:z,regionsLoading:f,countries:B,regions:P,selectedCountry:R,selectedRegion:k,selectedZip:N,estimatedDestinationText:F,estimatedShippingPrice:y,handleCountrySelected:O,handleEstimateShipping:i}=pe(),n=(e,s)=>{E(g=>(e?g.add(s):g.delete(s),new Set(g)))},c=(e,s)=>{n(!0,e),se([{uid:e,quantity:s}]).finally(()=>{n(!1,e)})},r=de({applyButton:"Cart.PriceSummary.estimatedShippingForm.apply.label",checkout:"Cart.PriceSummary.checkout",countryField:"Cart.PriceSummary.estimatedShippingForm.country.placeholder",discountedPrice:"Cart.CartItem.discountedPrice",download:"Cart.CartItem.download",freeShipping:"Cart.PriceSummary.freeShipping",heading:"Cart.Cart.heading",message:"Cart.CartItem.message",regularPrice:"Cart.CartItem.regularPrice",recipient:"Cart.CartItem.recipient",sender:"Cart.CartItem.sender",stateField:"Cart.PriceSummary.estimatedShippingForm.state.placeholder",taxToBeDetermined:"Cart.PriceSummary.taxToBeDetermined",zipField:"Cart.PriceSummary.estimatedShippingForm.zip.placeholder",file:"Cart.CartItem.file",files:"Cart.CartItem.files"});w(()=>{const e=X.on("cart/data",s=>{var v,x;_(s);const g=(x=(v=s==null?void 0:s.addresses)==null?void 0:v.shipping)==null?void 0:x[0];if(g){const{countryCode:I,regionCode:L,zipCode:T}=g;i({shippingCountry:I,shippingState:L,shippingZip:T})}},{eager:!0});return()=>{e==null||e.off()}},[i]),w(()=>{m&&Object.keys(m).length>0&&ie(m,re.locale||"en-US")},[m]);const Z=(t==null?void 0:t.totalQuantity)??0?a(A,{"data-testid":"price-summary",loading:z,heading:"Order Summary",total:{price:a(h,{amount:t==null?void 0:t.total.value,currency:t==null?void 0:t.total.currency}),estimated:!0},subTotal:{price:a(h,{"data-testid":"subtotal",amount:(C=t==null?void 0:t.subtotal.excludingTax)==null?void 0:C.value,currency:(j=t==null?void 0:t.subtotal.excludingTax)==null?void 0:j.currency})},shipping:t!=null&&t.isVirtual?void 0:{price:(y==null?void 0:y.amount)==0?a("span",{"data-testId":"free-shipping",children:r.freeShipping}):y?a(h,{...y}):a("span",{children:r.taxToBeDetermined}),estimated:!0,countryField:a(q,{name:"shippingCountry",placeholder:r.countryField,value:R,variant:"primary",options:B,handleSelect:O,"data-testid":"estimate-shipping-country-selector"}),stateField:P.length>0?a(q,{name:"shippingState",placeholder:r.stateField,variant:"primary",options:P,value:k,"data-testid":"estimate-shipping-state-selector",disabled:f}):a(G,{"aria-label":r.stateField,name:"shippingState",placeholder:r.stateField,variant:"primary",value:k,disabled:f,"data-testid":"estimate-shipping-state-input",maxLength:50}),zipField:a(G,{"aria-label":r.zipField,name:"shippingZip",placeholder:r.zipField,variant:"primary","data-testid":"estimate-shipping-zip-input",value:N,maxLength:12}),estimateButton:a(H,{variant:"secondary","data-testid":"estimate-shipping-apply-button","aria-label":r.applyButton,children:r.applyButton}),destinationText:F||r.taxToBeDetermined,onEstimate:i},taxTotal:{price:t!=null&&t.totalTax?a(h,{"data-testid":"tax-total",amount:(Q=t==null?void 0:t.totalTax)==null?void 0:Q.value,currency:(V=t==null?void 0:t.totalTax)==null?void 0:V.currency}):a("span",{"data-testid":"tax-total",children:r.taxToBeDetermined}),estimated:!0},primaryAction:u?a(H,{"data-testid":"checkout-button",variant:"primary",href:u({cartId:t.id}),children:r.checkout}):void 0,discounts:t==null?void 0:t.appliedDiscounts.map(e=>({label:e.label,price:a(h,{"data-testid":"summary-discount-total",amount:-e.amount.value,currency:e.amount.currency,sale:!0})}))}):void 0;return a(ue,{...p,heading:a("div",{children:r.heading}),emptyCart:a(ae,{ctaLinkURL:d==null?void 0:d()}),priceSummary:Z,products:(t==null?void 0:t.totalQuantity)??0?a(ee,{children:t==null?void 0:t.items.map((e,s)=>{var x,I,L,T;const g=D.has(e.uid),v={...e.bundleOptions??{},...e.selectedOptions??{},...e.customizableOptions,...e.recipient?{[r.recipient]:e.recipient}:{},...e.recipientEmail&&e.recipient?{[r.recipient]:`${e.recipient} (${e.recipientEmail})`}:{},...e.sender?{[r.sender]:e.sender}:{},...e.senderEmail&&e.sender?{[r.sender]:`${e.sender} (${e.senderEmail})`}:{},...e.message?{[r.message]:e.message}:{},...e.links&&e.links.count?e.links.count>1?{[r.files.replace("{count}",e.links.count.toString())]:e.links.result}:{[r.file.replace("{count}",e.links.count.toString())]:e.links.result}:{}};return a(te,{"data-testid":"cart-item",ariaLabel:e.name,updating:g,image:l?a("a",{href:l(e),children:a(J,{loading:s<4?"eager":"lazy",src:e.image.src,alt:e.image.alt,width:"300",height:"300",params:{width:300}})}):a(J,{loading:s<4?"eager":"lazy",src:e.image.src,alt:e.image.alt,width:"300",height:"300",params:{width:300}}),title:a("span",{children:l?a("a",{href:l(e),children:e.name}):a(K,{children:e.name})}),sku:a("span",{children:e.sku}),configurations:Object.keys(v).length>0?v:void 0,quantity:e.quantity,price:a(h,{amount:(x=e.regularPrice)==null?void 0:x.value,currency:(I=e.regularPrice)==null?void 0:I.currency,style:{font:"inherit"}}),total:$(K,{children:[a(h,{amount:e.total.value,currency:e.total.currency,variant:e.discounted?"strikethrough":"default","data-testid":"regular-total","aria-label":r.regularPrice}),e.discounted&&a(h,{amount:(L=e.discountedTotal)==null?void 0:L.value,currency:(T=e.discountedTotal)==null?void 0:T.currency,sale:e.discounted,"data-testid":"discount-total","aria-label":r.discountedPrice})]}),onQuantity:M=>{c(e.uid,M)},onRemove:()=>{c(e.uid,0)}},e.uid)})}):void 0})};me.getInitialData=async function(){return ne()};export{me as Cart,me as default};
2
+ //# sourceMappingURL=Cart.js.map