@merchi/cart 1.4.4

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 (372) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +134 -0
  3. package/esm/Cart.js +62 -0
  4. package/esm/CartAlert.js +47 -0
  5. package/esm/CartHeader.js +29 -0
  6. package/esm/CartProvider.js +1101 -0
  7. package/esm/CartTotals.js +89 -0
  8. package/esm/assets/merchi-monster-loader.gif +0 -0
  9. package/esm/assets/merchi-swipe-outline.png +0 -0
  10. package/esm/assets/product-not-found.png +0 -0
  11. package/esm/assets/stripe-payment-secure.png +0 -0
  12. package/esm/buttons/Button.js +23 -0
  13. package/esm/buttons/ButtonBack.js +35 -0
  14. package/esm/buttons/ButtonClearCart.js +17 -0
  15. package/esm/buttons/ButtonInvoiceDownload.js +88 -0
  16. package/esm/buttons/ButtonNext.js +39 -0
  17. package/esm/buttons/ButtonNextDynamic.js +19 -0
  18. package/esm/buttons/ButtonOpenCartMerchiCartModal.js +47 -0
  19. package/esm/buttons/ButtonPay.js +26 -0
  20. package/esm/buttons/ButtonShipmentTabNext.js +28 -0
  21. package/esm/buttons/index.js +7 -0
  22. package/esm/components/Alert.js +26 -0
  23. package/esm/components/CartBody.js +14 -0
  24. package/esm/components/CartClient.js +62 -0
  25. package/esm/components/CartFooter.js +12 -0
  26. package/esm/components/CartItemRow.js +230 -0
  27. package/esm/components/CartPaymentSettingsInvalid.js +13 -0
  28. package/esm/components/CartShipment.js +52 -0
  29. package/esm/components/CartTabContent.js +12 -0
  30. package/esm/components/CartTabPanel.js +25 -0
  31. package/esm/components/CartTableContainer.js +12 -0
  32. package/esm/components/CartTitle.js +26 -0
  33. package/esm/components/CartTotalsListGroup.js +71 -0
  34. package/esm/components/Collapse.js +32 -0
  35. package/esm/components/CustomCartProductForm.js +128 -0
  36. package/esm/components/CustomerCheckoutMethodTabs.js +94 -0
  37. package/esm/components/DiscountInputGroup.js +293 -0
  38. package/esm/components/LoadingTemplate.js +23 -0
  39. package/esm/components/NoCartItems.js +20 -0
  40. package/esm/components/ShipmentGroupCard.js +207 -0
  41. package/esm/components/Table.js +13 -0
  42. package/esm/components/containers.js +31 -0
  43. package/esm/components/index.js +18 -0
  44. package/esm/components/product-form-sdk-externals.js +36 -0
  45. package/esm/forms/FormNewCustomer.js +243 -0
  46. package/esm/forms/FormReturningCustomer.js +165 -0
  47. package/esm/forms/FormShipmentAddressAndNotes.js +195 -0
  48. package/esm/forms/FormSquarePayment.js +19 -0
  49. package/esm/forms/FormStripePayment.js +19 -0
  50. package/esm/forms/FormWhatsappCustomer.js +253 -0
  51. package/esm/forms/InputAcceptUserTermsAndConditions.js +35 -0
  52. package/esm/forms/InputError.js +16 -0
  53. package/esm/forms/InputSelect.js +48 -0
  54. package/esm/forms/InputText.js +56 -0
  55. package/esm/forms/InputsAddress.js +476 -0
  56. package/esm/forms/index.js +8 -0
  57. package/esm/index.js +13 -0
  58. package/esm/modals.js +51 -0
  59. package/esm/panels/PanelCartItems.js +49 -0
  60. package/esm/panels/PanelCartShipment.js +66 -0
  61. package/esm/panels/PanelClearCart.js +56 -0
  62. package/esm/panels/PanelClientCheckout.js +81 -0
  63. package/esm/panels/PanelEditCartItem.js +199 -0
  64. package/esm/panels/PanelPaymentSuccess.js +63 -0
  65. package/esm/panels/index.js +7 -0
  66. package/esm/square/SquareCard.js +106 -0
  67. package/esm/stripe/LegacyStripeCardForm.js +157 -0
  68. package/esm/stripe/StripeCardFields.js +126 -0
  69. package/esm/stripe/StripeCardForm.js +33 -0
  70. package/esm/stripe/StripePaymentButtons.js +98 -0
  71. package/esm/stripe/actions.js +192 -0
  72. package/esm/stripe/utils.js +20 -0
  73. package/esm/styles/globals.css +463 -0
  74. package/esm/styles/globals.css.map +1 -0
  75. package/esm/tabs/CartNav.js +28 -0
  76. package/esm/tabs/NavTab.js +31 -0
  77. package/esm/types/assets.d.js +0 -0
  78. package/esm/types/index.js +1 -0
  79. package/esm/types/merchi_product_form/index.d.js +0 -0
  80. package/esm/types/merchi_sdk_ts/index.d.js +0 -0
  81. package/esm/types/react-redux/index.d.js +0 -0
  82. package/esm/utilities/address.js +457 -0
  83. package/esm/utilities/area.js +297 -0
  84. package/esm/utilities/cart.js +95 -0
  85. package/esm/utilities/company.js +6 -0
  86. package/esm/utilities/cookie.js +156 -0
  87. package/esm/utilities/currency.js +219 -0
  88. package/esm/utilities/customForm.js +57 -0
  89. package/esm/utilities/helpers.js +229 -0
  90. package/esm/utilities/index.js +14 -0
  91. package/esm/utilities/invoice.js +112 -0
  92. package/esm/utilities/job.js +9 -0
  93. package/esm/utilities/local_storage.js +85 -0
  94. package/esm/utilities/product.js +13 -0
  95. package/esm/utilities/shipment.js +11 -0
  96. package/esm/utilities/tabs.js +51 -0
  97. package/esm/utilities/user.js +65 -0
  98. package/esm/utilities/variations.js +58 -0
  99. package/lib/Cart.d.ts +9 -0
  100. package/lib/Cart.js +69 -0
  101. package/lib/CartAlert.d.ts +3 -0
  102. package/lib/CartAlert.js +53 -0
  103. package/lib/CartHeader.d.ts +3 -0
  104. package/lib/CartHeader.js +37 -0
  105. package/lib/CartProvider.d.ts +236 -0
  106. package/lib/CartProvider.js +1107 -0
  107. package/lib/CartTotals.d.ts +7 -0
  108. package/lib/CartTotals.js +96 -0
  109. package/lib/assets/merchi-monster-loader.gif +0 -0
  110. package/lib/assets/merchi-swipe-outline.png +0 -0
  111. package/lib/assets/product-not-found.png +0 -0
  112. package/lib/assets/stripe-payment-secure.png +0 -0
  113. package/lib/buttons/Button.d.ts +11 -0
  114. package/lib/buttons/Button.js +31 -0
  115. package/lib/buttons/ButtonBack.d.ts +6 -0
  116. package/lib/buttons/ButtonBack.js +44 -0
  117. package/lib/buttons/ButtonClearCart.d.ts +3 -0
  118. package/lib/buttons/ButtonClearCart.js +24 -0
  119. package/lib/buttons/ButtonInvoiceDownload.d.ts +3 -0
  120. package/lib/buttons/ButtonInvoiceDownload.js +96 -0
  121. package/lib/buttons/ButtonNext.d.ts +3 -0
  122. package/lib/buttons/ButtonNext.js +48 -0
  123. package/lib/buttons/ButtonNextDynamic.d.ts +3 -0
  124. package/lib/buttons/ButtonNextDynamic.js +28 -0
  125. package/lib/buttons/ButtonOpenCartMerchiCartModal.d.ts +9 -0
  126. package/lib/buttons/ButtonOpenCartMerchiCartModal.js +57 -0
  127. package/lib/buttons/ButtonPay.d.ts +7 -0
  128. package/lib/buttons/ButtonPay.js +35 -0
  129. package/lib/buttons/ButtonShipmentTabNext.d.ts +2 -0
  130. package/lib/buttons/ButtonShipmentTabNext.js +37 -0
  131. package/lib/buttons/index.d.ts +7 -0
  132. package/lib/buttons/index.js +48 -0
  133. package/lib/components/Alert.d.ts +7 -0
  134. package/lib/components/Alert.js +34 -0
  135. package/lib/components/CartBody.d.ts +7 -0
  136. package/lib/components/CartBody.js +22 -0
  137. package/lib/components/CartClient.d.ts +4 -0
  138. package/lib/components/CartClient.js +71 -0
  139. package/lib/components/CartFooter.d.ts +6 -0
  140. package/lib/components/CartFooter.js +20 -0
  141. package/lib/components/CartItemRow.d.ts +7 -0
  142. package/lib/components/CartItemRow.js +236 -0
  143. package/lib/components/CartPaymentSettingsInvalid.d.ts +2 -0
  144. package/lib/components/CartPaymentSettingsInvalid.js +21 -0
  145. package/lib/components/CartShipment.d.ts +6 -0
  146. package/lib/components/CartShipment.js +59 -0
  147. package/lib/components/CartTabContent.d.ts +6 -0
  148. package/lib/components/CartTabContent.js +20 -0
  149. package/lib/components/CartTabPanel.d.ts +7 -0
  150. package/lib/components/CartTabPanel.js +31 -0
  151. package/lib/components/CartTableContainer.d.ts +6 -0
  152. package/lib/components/CartTableContainer.js +20 -0
  153. package/lib/components/CartTitle.d.ts +2 -0
  154. package/lib/components/CartTitle.js +34 -0
  155. package/lib/components/CartTotalsListGroup.d.ts +3 -0
  156. package/lib/components/CartTotalsListGroup.js +78 -0
  157. package/lib/components/Collapse.d.ts +3 -0
  158. package/lib/components/Collapse.js +40 -0
  159. package/lib/components/CustomCartProductForm.d.ts +18 -0
  160. package/lib/components/CustomCartProductForm.js +136 -0
  161. package/lib/components/CustomerCheckoutMethodTabs.d.ts +6 -0
  162. package/lib/components/CustomerCheckoutMethodTabs.js +103 -0
  163. package/lib/components/DiscountInputGroup.d.ts +2 -0
  164. package/lib/components/DiscountInputGroup.js +301 -0
  165. package/lib/components/LoadingTemplate.d.ts +7 -0
  166. package/lib/components/LoadingTemplate.js +30 -0
  167. package/lib/components/NoCartItems.d.ts +3 -0
  168. package/lib/components/NoCartItems.js +27 -0
  169. package/lib/components/ShipmentGroupCard.d.ts +7 -0
  170. package/lib/components/ShipmentGroupCard.js +215 -0
  171. package/lib/components/Table.d.ts +7 -0
  172. package/lib/components/Table.js +19 -0
  173. package/lib/components/containers.d.ts +14 -0
  174. package/lib/components/containers.js +40 -0
  175. package/lib/components/index.d.ts +18 -0
  176. package/lib/components/index.js +133 -0
  177. package/lib/components/product-form-sdk-externals.d.ts +46 -0
  178. package/lib/components/product-form-sdk-externals.js +43 -0
  179. package/lib/forms/FormNewCustomer.d.ts +4 -0
  180. package/lib/forms/FormNewCustomer.js +252 -0
  181. package/lib/forms/FormReturningCustomer.d.ts +3 -0
  182. package/lib/forms/FormReturningCustomer.js +173 -0
  183. package/lib/forms/FormShipmentAddressAndNotes.d.ts +15 -0
  184. package/lib/forms/FormShipmentAddressAndNotes.js +203 -0
  185. package/lib/forms/FormSquarePayment.d.ts +3 -0
  186. package/lib/forms/FormSquarePayment.js +27 -0
  187. package/lib/forms/FormStripePayment.d.ts +3 -0
  188. package/lib/forms/FormStripePayment.js +27 -0
  189. package/lib/forms/FormWhatsappCustomer.d.ts +3 -0
  190. package/lib/forms/FormWhatsappCustomer.js +261 -0
  191. package/lib/forms/InputAcceptUserTermsAndConditions.d.ts +7 -0
  192. package/lib/forms/InputAcceptUserTermsAndConditions.js +41 -0
  193. package/lib/forms/InputError.d.ts +8 -0
  194. package/lib/forms/InputError.js +24 -0
  195. package/lib/forms/InputSelect.d.ts +14 -0
  196. package/lib/forms/InputSelect.js +55 -0
  197. package/lib/forms/InputText.d.ts +12 -0
  198. package/lib/forms/InputText.js +63 -0
  199. package/lib/forms/InputsAddress.d.ts +11 -0
  200. package/lib/forms/InputsAddress.js +485 -0
  201. package/lib/forms/index.d.ts +8 -0
  202. package/lib/forms/index.js +63 -0
  203. package/lib/index.d.ts +13 -0
  204. package/lib/index.js +93 -0
  205. package/lib/modals.d.ts +17 -0
  206. package/lib/modals.js +59 -0
  207. package/lib/panels/PanelCartItems.d.ts +3 -0
  208. package/lib/panels/PanelCartItems.js +56 -0
  209. package/lib/panels/PanelCartShipment.d.ts +3 -0
  210. package/lib/panels/PanelCartShipment.js +72 -0
  211. package/lib/panels/PanelClearCart.d.ts +3 -0
  212. package/lib/panels/PanelClearCart.js +62 -0
  213. package/lib/panels/PanelClientCheckout.d.ts +3 -0
  214. package/lib/panels/PanelClientCheckout.js +88 -0
  215. package/lib/panels/PanelEditCartItem.d.ts +6 -0
  216. package/lib/panels/PanelEditCartItem.js +206 -0
  217. package/lib/panels/PanelPaymentSuccess.d.ts +3 -0
  218. package/lib/panels/PanelPaymentSuccess.js +69 -0
  219. package/lib/panels/index.d.ts +7 -0
  220. package/lib/panels/index.js +48 -0
  221. package/lib/square/SquareCard.d.ts +3 -0
  222. package/lib/square/SquareCard.js +114 -0
  223. package/lib/stripe/LegacyStripeCardForm.d.ts +3 -0
  224. package/lib/stripe/LegacyStripeCardForm.js +166 -0
  225. package/lib/stripe/StripeCardFields.d.ts +15 -0
  226. package/lib/stripe/StripeCardFields.js +135 -0
  227. package/lib/stripe/StripeCardForm.d.ts +2 -0
  228. package/lib/stripe/StripeCardForm.js +42 -0
  229. package/lib/stripe/StripePaymentButtons.d.ts +8 -0
  230. package/lib/stripe/StripePaymentButtons.js +106 -0
  231. package/lib/stripe/actions.d.ts +4 -0
  232. package/lib/stripe/actions.js +200 -0
  233. package/lib/stripe/utils.d.ts +18 -0
  234. package/lib/stripe/utils.js +27 -0
  235. package/lib/styles/globals.css +463 -0
  236. package/lib/styles/globals.css.map +1 -0
  237. package/lib/tabs/CartNav.d.ts +3 -0
  238. package/lib/tabs/CartNav.js +36 -0
  239. package/lib/tabs/NavTab.d.ts +9 -0
  240. package/lib/tabs/NavTab.js +39 -0
  241. package/lib/types/index.d.ts +13 -0
  242. package/lib/types/index.js +1 -0
  243. package/lib/utilities/address.d.ts +30 -0
  244. package/lib/utilities/address.js +468 -0
  245. package/lib/utilities/area.d.ts +77 -0
  246. package/lib/utilities/area.js +328 -0
  247. package/lib/utilities/cart.d.ts +9 -0
  248. package/lib/utilities/cart.js +108 -0
  249. package/lib/utilities/company.d.ts +2 -0
  250. package/lib/utilities/company.js +13 -0
  251. package/lib/utilities/cookie.d.ts +4 -0
  252. package/lib/utilities/cookie.js +165 -0
  253. package/lib/utilities/currency.d.ts +5 -0
  254. package/lib/utilities/currency.js +229 -0
  255. package/lib/utilities/customForm.d.ts +17 -0
  256. package/lib/utilities/customForm.js +64 -0
  257. package/lib/utilities/helpers.d.ts +24 -0
  258. package/lib/utilities/helpers.js +240 -0
  259. package/lib/utilities/index.d.ts +14 -0
  260. package/lib/utilities/index.js +159 -0
  261. package/lib/utilities/invoice.d.ts +3 -0
  262. package/lib/utilities/invoice.js +118 -0
  263. package/lib/utilities/job.d.ts +1 -0
  264. package/lib/utilities/job.js +15 -0
  265. package/lib/utilities/local_storage.d.ts +31 -0
  266. package/lib/utilities/local_storage.js +96 -0
  267. package/lib/utilities/product.d.ts +2 -0
  268. package/lib/utilities/product.js +21 -0
  269. package/lib/utilities/shipment.d.ts +2 -0
  270. package/lib/utilities/shipment.js +18 -0
  271. package/lib/utilities/tabs.d.ts +14 -0
  272. package/lib/utilities/tabs.js +60 -0
  273. package/lib/utilities/user.d.ts +5 -0
  274. package/lib/utilities/user.js +75 -0
  275. package/lib/utilities/variations.d.ts +18 -0
  276. package/lib/utilities/variations.js +66 -0
  277. package/package.json +109 -0
  278. package/src/Cart.tsx +96 -0
  279. package/src/CartAlert.tsx +35 -0
  280. package/src/CartHeader.tsx +28 -0
  281. package/src/CartProvider.tsx +992 -0
  282. package/src/CartTotals.tsx +102 -0
  283. package/src/assets/merchi-monster-loader.gif +0 -0
  284. package/src/assets/merchi-swipe-outline.png +0 -0
  285. package/src/assets/product-not-found.png +0 -0
  286. package/src/assets/stripe-payment-secure.png +0 -0
  287. package/src/buttons/Button.tsx +35 -0
  288. package/src/buttons/ButtonBack.tsx +42 -0
  289. package/src/buttons/ButtonClearCart.tsx +17 -0
  290. package/src/buttons/ButtonInvoiceDownload.tsx +60 -0
  291. package/src/buttons/ButtonNext.tsx +35 -0
  292. package/src/buttons/ButtonNextDynamic.tsx +31 -0
  293. package/src/buttons/ButtonOpenCartMerchiCartModal.tsx +61 -0
  294. package/src/buttons/ButtonPay.tsx +32 -0
  295. package/src/buttons/ButtonShipmentTabNext.tsx +24 -0
  296. package/src/buttons/index.ts +15 -0
  297. package/src/components/Alert.tsx +31 -0
  298. package/src/components/CartBody.tsx +16 -0
  299. package/src/components/CartClient.tsx +52 -0
  300. package/src/components/CartFooter.tsx +15 -0
  301. package/src/components/CartItemRow.tsx +212 -0
  302. package/src/components/CartPaymentSettingsInvalid.tsx +12 -0
  303. package/src/components/CartShipment.tsx +56 -0
  304. package/src/components/CartTabContent.tsx +15 -0
  305. package/src/components/CartTabPanel.tsx +25 -0
  306. package/src/components/CartTableContainer.tsx +15 -0
  307. package/src/components/CartTitle.tsx +22 -0
  308. package/src/components/CartTotalsListGroup.tsx +58 -0
  309. package/src/components/Collapse.tsx +23 -0
  310. package/src/components/CustomCartProductForm.tsx +123 -0
  311. package/src/components/CustomerCheckoutMethodTabs.tsx +106 -0
  312. package/src/components/DiscountInputGroup.tsx +160 -0
  313. package/src/components/LoadingTemplate.tsx +22 -0
  314. package/src/components/NoCartItems.tsx +20 -0
  315. package/src/components/ShipmentGroupCard.tsx +170 -0
  316. package/src/components/Table.tsx +15 -0
  317. package/src/components/containers.tsx +40 -0
  318. package/src/components/index.ts +38 -0
  319. package/src/components/product-form-sdk-externals.ts +67 -0
  320. package/src/forms/FormNewCustomer.tsx +170 -0
  321. package/src/forms/FormReturningCustomer.tsx +117 -0
  322. package/src/forms/FormShipmentAddressAndNotes.tsx +165 -0
  323. package/src/forms/FormSquarePayment.tsx +19 -0
  324. package/src/forms/FormStripePayment.tsx +19 -0
  325. package/src/forms/FormWhatsappCustomer.tsx +179 -0
  326. package/src/forms/InputAcceptUserTermsAndConditions.tsx +43 -0
  327. package/src/forms/InputError.tsx +23 -0
  328. package/src/forms/InputSelect.tsx +58 -0
  329. package/src/forms/InputText.tsx +56 -0
  330. package/src/forms/InputsAddress.tsx +438 -0
  331. package/src/forms/index.ts +18 -0
  332. package/src/index.ts +31 -0
  333. package/src/modals.tsx +65 -0
  334. package/src/panels/PanelCartItems.tsx +56 -0
  335. package/src/panels/PanelCartShipment.tsx +86 -0
  336. package/src/panels/PanelClearCart.tsx +50 -0
  337. package/src/panels/PanelClientCheckout.tsx +102 -0
  338. package/src/panels/PanelEditCartItem.tsx +172 -0
  339. package/src/panels/PanelPaymentSuccess.tsx +66 -0
  340. package/src/panels/index.ts +15 -0
  341. package/src/square/SquareCard.tsx +84 -0
  342. package/src/stripe/LegacyStripeCardForm.tsx +91 -0
  343. package/src/stripe/StripeCardFields.tsx +173 -0
  344. package/src/stripe/StripeCardForm.tsx +18 -0
  345. package/src/stripe/StripePaymentButtons.tsx +117 -0
  346. package/src/stripe/actions.ts +94 -0
  347. package/src/stripe/utils.ts +22 -0
  348. package/src/styles/globals.scss +475 -0
  349. package/src/tabs/CartNav.tsx +18 -0
  350. package/src/tabs/NavTab.tsx +36 -0
  351. package/src/types/assets.d.ts +4 -0
  352. package/src/types/index.ts +15 -0
  353. package/src/types/merchi_product_form/index.d.ts +1 -0
  354. package/src/types/merchi_sdk_ts/index.d.ts +1 -0
  355. package/src/types/react-redux/index.d.ts +0 -0
  356. package/src/utilities/address.ts +463 -0
  357. package/src/utilities/area.ts +359 -0
  358. package/src/utilities/cart.ts +80 -0
  359. package/src/utilities/company.ts +8 -0
  360. package/src/utilities/cookie.ts +58 -0
  361. package/src/utilities/currency.ts +216 -0
  362. package/src/utilities/customForm.ts +71 -0
  363. package/src/utilities/helpers.ts +213 -0
  364. package/src/utilities/index.ts +14 -0
  365. package/src/utilities/invoice.ts +60 -0
  366. package/src/utilities/job.ts +13 -0
  367. package/src/utilities/local_storage.ts +130 -0
  368. package/src/utilities/product.ts +14 -0
  369. package/src/utilities/shipment.ts +11 -0
  370. package/src/utilities/tabs.ts +38 -0
  371. package/src/utilities/user.ts +33 -0
  372. package/src/utilities/variations.ts +80 -0
@@ -0,0 +1,1101 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
3
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
4
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
5
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
6
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
7
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
8
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
9
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
10
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
13
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
14
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
15
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
16
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
18
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
19
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
20
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
21
+ import * as React from 'react';
22
+ import { createContext, useContext, useEffect, useState } from 'react';
23
+ import { faCheckCircle, faExclamationTriangle, faInfoCircle } from '@fortawesome/free-solid-svg-icons';
24
+ import { makeCart, makeCartItem, stripeIsValidAndActive } from './utilities/cart';
25
+ import { cartEmbed } from './utilities/helpers';
26
+ import { initTabs, tabIdItems, tabShipment } from './utilities/tabs';
27
+ import { Merchi } from '@merchi/sdk';
28
+ import { getCartCookie, getCartCookieToken, setCartCookie } from './utilities/cookie';
29
+ import { makeAddress, sanitizeAddressFields } from './utilities/address';
30
+ import { appendStyleSheetText } from './utilities/helpers';
31
+ import { makeJob } from './utilities/job';
32
+ import { makeProduct } from './utilities/product';
33
+ import { getSavedCheckoutCustomer, saveCheckoutAddress } from './utilities/local_storage';
34
+ import { makeUser } from './utilities/user';
35
+ import { jsx as _jsx } from "react/jsx-runtime";
36
+ var CartContext = /*#__PURE__*/createContext({
37
+ cart: {},
38
+ cartClient: {},
39
+ setCart: console.log,
40
+ setCartClient: console.log,
41
+ activeTabIndex: 0,
42
+ setActiveTabIndex: console.log,
43
+ alert: {},
44
+ alertError: console.log,
45
+ alertSuccess: console.log,
46
+ setAlert: console.log,
47
+ cartItem: {},
48
+ classNameAlertError: undefined,
49
+ classNameAlertInfo: undefined,
50
+ classNameAlertSuccess: undefined,
51
+ classNameAlertWarning: undefined,
52
+ classNameBtn: undefined,
53
+ classNameBtnBack: undefined,
54
+ classNameBtnCartClear: undefined,
55
+ classNameBtnClose: undefined,
56
+ classNameBtnDanger: undefined,
57
+ classNameBtnDefault: undefined,
58
+ classNameBtnDownloadInvoice: undefined,
59
+ classNameBtnEditCartItem: undefined,
60
+ classNameBtnPrimary: undefined,
61
+ classNameBtnLink: undefined,
62
+ classNameBtnNext: undefined,
63
+ classNameBtnNextComplete: undefined,
64
+ classNameBtnPay: undefined,
65
+ classNameCartBody: undefined,
66
+ classNameCartFooter: undefined,
67
+ classNameCartFormCheckbox: undefined,
68
+ classNameCartFormGroup: undefined,
69
+ classNameCartFormGroupButton: undefined,
70
+ classNameCartFormGroupCheckbox: undefined,
71
+ classNameCartFormInput: undefined,
72
+ classNameCartInputError: undefined,
73
+ classNameCartFormLabelCheckbox: undefined,
74
+ classNameCartRow: undefined,
75
+ classNameCartRowColumn: undefined,
76
+ classNameCartTabItem: undefined,
77
+ classNameCartTabItemLink: undefined,
78
+ classNameCartGoogleSuggestList: undefined,
79
+ classNameCartGoogleSuggestListItem: undefined,
80
+ classNameCartHeader: undefined,
81
+ classNameCartItemFeatureImage: undefined,
82
+ classNameCartItemInfo: undefined,
83
+ classNameCartItemInfoCell: undefined,
84
+ classNameCartItemInfoCellRight: undefined,
85
+ classNameCartItemInfoContainer: undefined,
86
+ classNameCartNav: undefined,
87
+ classNameCartTab: undefined,
88
+ classNameCartTabPanel: undefined,
89
+ classNameCartTitle: undefined,
90
+ classNameCartTotalContainer: undefined,
91
+ classNameCartTotalItem: undefined,
92
+ classNameCartTotaListContainer: undefined,
93
+ classNameCartTotalItemPrice: undefined,
94
+ classNameCartToggleIconButton: undefined,
95
+ classNameClearCartContainer: undefined,
96
+ classNameClearCartText: undefined,
97
+ classNameListClientInfo: undefined,
98
+ classNameListContainer: undefined,
99
+ classNameListItem: undefined,
100
+ classNameListItemCartTotals: undefined,
101
+ classNameList: undefined,
102
+ classNameListInline: undefined,
103
+ classNameListUnstyled: undefined,
104
+ classNameLoadingTemplate: undefined,
105
+ classNameLoadingTemplateContainer: undefined,
106
+ classNameNoItems: undefined,
107
+ classNameShipmentOption: undefined,
108
+ classNameTable: undefined,
109
+ classNameTableContainer: undefined,
110
+ classNameVariationsList: undefined,
111
+ customSuccessMessage: undefined,
112
+ // Discount code input props
113
+ discountButtonText: undefined,
114
+ discountClassName: undefined,
115
+ discountClassNameButton: undefined,
116
+ discountClassNameButtonContainer: undefined,
117
+ discountClassNameButtonItemRemove: undefined,
118
+ discountClassNameErrorMessage: undefined,
119
+ discountClassNameInput: undefined,
120
+ discountClassNameInputContainer: undefined,
121
+ discountClassNameListItem: undefined,
122
+ discountClassNameListItems: undefined,
123
+ discountClassNameMainContainer: undefined,
124
+ discountShowAppliedItems: true,
125
+ showDiscountCode: true,
126
+ domainId: undefined,
127
+ googlePlacesLoaded: false,
128
+ hideHead: false,
129
+ invoiceJson: {},
130
+ setInvoiceJson: console.log,
131
+ includeTheme: false,
132
+ initialiseCart: true,
133
+ cartSettingsInvalid: false,
134
+ fetchingCart: false,
135
+ setFetchingCart: console.log,
136
+ fetchingShipmentGroups: false,
137
+ isCartModalOpen: false,
138
+ setIsCartModalOpen: console.log,
139
+ onClickClose: undefined,
140
+ toggleCartModal: console.log,
141
+ productFormClassNames: {},
142
+ showCartItemInfo: undefined,
143
+ showUserTermsAndConditions: undefined,
144
+ apiUrl: undefined,
145
+ updateCartShipmentAddress: console.log,
146
+ urlFrontend: undefined,
147
+ urlTrackingPage: undefined,
148
+ setCartItem: console.log,
149
+ tabs: [tabShipment],
150
+ setTabs: console.log,
151
+ clearCart: console.log,
152
+ closeClearCart: console.log,
153
+ setCartComplete: console.log,
154
+ refetchCart: console.log,
155
+ createCartAndCookie: console.log,
156
+ loadingTotals: false,
157
+ setLoadingTotals: console.log,
158
+ setActiveTabAndEditDisabled: console.log,
159
+ loading: false,
160
+ getCartShipmentOptions: console.log
161
+ });
162
+ export var useCartContext = function useCartContext() {
163
+ return useContext(CartContext);
164
+ };
165
+ var CartProvider = function CartProvider(_ref) {
166
+ var _ref$cart = _ref.cart,
167
+ initCart = _ref$cart === void 0 ? {} : _ref$cart,
168
+ children = _ref.children,
169
+ _ref$classNameAlertEr = _ref.classNameAlertError,
170
+ classNameAlertError = _ref$classNameAlertEr === void 0 ? 'alert-danger' : _ref$classNameAlertEr,
171
+ _ref$classNameAlertIn = _ref.classNameAlertInfo,
172
+ classNameAlertInfo = _ref$classNameAlertIn === void 0 ? 'alert-info' : _ref$classNameAlertIn,
173
+ _ref$classNameAlertSu = _ref.classNameAlertSuccess,
174
+ classNameAlertSuccess = _ref$classNameAlertSu === void 0 ? 'alert-success' : _ref$classNameAlertSu,
175
+ _ref$classNameAlertWa = _ref.classNameAlertWarning,
176
+ classNameAlertWarning = _ref$classNameAlertWa === void 0 ? 'alert-warning' : _ref$classNameAlertWa,
177
+ _ref$classNameBtn = _ref.classNameBtn,
178
+ classNameBtn = _ref$classNameBtn === void 0 ? 'btn' : _ref$classNameBtn,
179
+ _ref$classNameBtnBack = _ref.classNameBtnBack,
180
+ classNameBtnBack = _ref$classNameBtnBack === void 0 ? 'btn-lg btn-default' : _ref$classNameBtnBack,
181
+ _ref$classNameBtnCart = _ref.classNameBtnCartClear,
182
+ classNameBtnCartClear = _ref$classNameBtnCart === void 0 ? 'btn-lg btn-danger' : _ref$classNameBtnCart,
183
+ _ref$classNameBtnClos = _ref.classNameBtnClose,
184
+ classNameBtnClose = _ref$classNameBtnClos === void 0 ? 'merchi-btn-close' : _ref$classNameBtnClos,
185
+ _ref$classNameBtnDang = _ref.classNameBtnDanger,
186
+ classNameBtnDanger = _ref$classNameBtnDang === void 0 ? 'btn btn-md btn-danger' : _ref$classNameBtnDang,
187
+ _ref$classNameBtnDefa = _ref.classNameBtnDefault,
188
+ classNameBtnDefault = _ref$classNameBtnDefa === void 0 ? 'btn btn-md btn-default' : _ref$classNameBtnDefa,
189
+ _ref$classNameBtnDown = _ref.classNameBtnDownloadInvoice,
190
+ classNameBtnDownloadInvoice = _ref$classNameBtnDown === void 0 ? 'btn btn-lg btn-primary' : _ref$classNameBtnDown,
191
+ _ref$classNameBtnEdit = _ref.classNameBtnEditCartItem,
192
+ classNameBtnEditCartItem = _ref$classNameBtnEdit === void 0 ? 'btn btn-lg btn-primary ml-auto' : _ref$classNameBtnEdit,
193
+ _ref$classNameBtnPrim = _ref.classNameBtnPrimary,
194
+ classNameBtnPrimary = _ref$classNameBtnPrim === void 0 ? 'btn btn-md btn-primary' : _ref$classNameBtnPrim,
195
+ _ref$classNameBtnLink = _ref.classNameBtnLink,
196
+ classNameBtnLink = _ref$classNameBtnLink === void 0 ? 'btn-md btn-link' : _ref$classNameBtnLink,
197
+ _ref$classNameBtnNext = _ref.classNameBtnNext,
198
+ classNameBtnNext = _ref$classNameBtnNext === void 0 ? 'btn-lg btn-primary ml-auto' : _ref$classNameBtnNext,
199
+ _ref$classNameBtnNext2 = _ref.classNameBtnNextComplete,
200
+ classNameBtnNextComplete = _ref$classNameBtnNext2 === void 0 ? 'btn-lg btn-success ml-auto' : _ref$classNameBtnNext2,
201
+ _ref$classNameBtnPay = _ref.classNameBtnPay,
202
+ classNameBtnPay = _ref$classNameBtnPay === void 0 ? 'btn-lg btn-primary width-full' : _ref$classNameBtnPay,
203
+ _ref$classNameCartBod = _ref.classNameCartBody,
204
+ classNameCartBody = _ref$classNameCartBod === void 0 ? 'merchi-cart-body' : _ref$classNameCartBod,
205
+ _ref$classNameCartFoo = _ref.classNameCartFooter,
206
+ classNameCartFooter = _ref$classNameCartFoo === void 0 ? 'merchi-cart-footer' : _ref$classNameCartFoo,
207
+ _ref$classNameCartFor = _ref.classNameCartFormCheckbox,
208
+ classNameCartFormCheckbox = _ref$classNameCartFor === void 0 ? 'form-check-input' : _ref$classNameCartFor,
209
+ _ref$classNameCartFor2 = _ref.classNameCartFormGroup,
210
+ classNameCartFormGroup = _ref$classNameCartFor2 === void 0 ? 'form-group merchi-form-group' : _ref$classNameCartFor2,
211
+ _ref$classNameCartFor3 = _ref.classNameCartFormGroupButton,
212
+ classNameCartFormGroupButton = _ref$classNameCartFor3 === void 0 ? 'merchi-form-group-button' : _ref$classNameCartFor3,
213
+ _ref$classNameCartFor4 = _ref.classNameCartFormGroupCheckbox,
214
+ classNameCartFormGroupCheckbox = _ref$classNameCartFor4 === void 0 ? 'form-check' : _ref$classNameCartFor4,
215
+ _ref$classNameCartFor5 = _ref.classNameCartFormInput,
216
+ classNameCartFormInput = _ref$classNameCartFor5 === void 0 ? 'form-control' : _ref$classNameCartFor5,
217
+ _ref$classNameCartFor6 = _ref.classNameCartFormLabelCheckbox,
218
+ classNameCartFormLabelCheckbox = _ref$classNameCartFor6 === void 0 ? '' : _ref$classNameCartFor6,
219
+ _ref$classNameCartInp = _ref.classNameCartInputError,
220
+ classNameCartInputError = _ref$classNameCartInp === void 0 ? 'text-danger' : _ref$classNameCartInp,
221
+ _ref$classNameCartNav = _ref.classNameCartNav,
222
+ classNameCartNav = _ref$classNameCartNav === void 0 ? 'nav merchi-nav-tabs merchi-nav merchi-nav-fill merchi-nav-pills' : _ref$classNameCartNav,
223
+ _ref$classNameCartRow = _ref.classNameCartRow,
224
+ classNameCartRow = _ref$classNameCartRow === void 0 ? 'merchi-row' : _ref$classNameCartRow,
225
+ _ref$classNameCartRow2 = _ref.classNameCartRowColumn,
226
+ classNameCartRowColumn = _ref$classNameCartRow2 === void 0 ? 'merchi-column' : _ref$classNameCartRow2,
227
+ _ref$classNameCartTab = _ref.classNameCartTabItem,
228
+ classNameCartTabItem = _ref$classNameCartTab === void 0 ? 'nav-item merchi-nav-item' : _ref$classNameCartTab,
229
+ _ref$classNameCartTab2 = _ref.classNameCartTabItemLink,
230
+ classNameCartTabItemLink = _ref$classNameCartTab2 === void 0 ? 'merchi-nav-link' : _ref$classNameCartTab2,
231
+ _ref$classNameCartTog = _ref.classNameCartToggleIconButton,
232
+ classNameCartToggleIconButton = _ref$classNameCartTog === void 0 ? 'cart-icon-button-class' : _ref$classNameCartTog,
233
+ _ref$classNameCartGoo = _ref.classNameCartGoogleSuggestList,
234
+ classNameCartGoogleSuggestList = _ref$classNameCartGoo === void 0 ? 'merchi-cart-google-suggest-list' : _ref$classNameCartGoo,
235
+ _ref$classNameCartGoo2 = _ref.classNameCartGoogleSuggestListItem,
236
+ classNameCartGoogleSuggestListItem = _ref$classNameCartGoo2 === void 0 ? 'merchi-cart-google-suggest-list-item' : _ref$classNameCartGoo2,
237
+ _ref$classNameCartHea = _ref.classNameCartHeader,
238
+ classNameCartHeader = _ref$classNameCartHea === void 0 ? 'merchi-cart-header' : _ref$classNameCartHea,
239
+ _ref$classNameCartIte = _ref.classNameCartItemFeatureImage,
240
+ classNameCartItemFeatureImage = _ref$classNameCartIte === void 0 ? 'img-rounded m-10' : _ref$classNameCartIte,
241
+ _ref$classNameCartIte2 = _ref.classNameCartItemInfo,
242
+ classNameCartItemInfo = _ref$classNameCartIte2 === void 0 ? 'text-muted font-weight-normal font-italic' : _ref$classNameCartIte2,
243
+ _ref$classNameCartIte3 = _ref.classNameCartItemInfoCell,
244
+ classNameCartItemInfoCell = _ref$classNameCartIte3 === void 0 ? 'border-0 align-middle' : _ref$classNameCartIte3,
245
+ _ref$classNameCartIte4 = _ref.classNameCartItemInfoCellRight,
246
+ classNameCartItemInfoCellRight = _ref$classNameCartIte4 === void 0 ? 'border-0 align-middle text-right' : _ref$classNameCartIte4,
247
+ _ref$classNameCartIte5 = _ref.classNameCartItemInfoContainer,
248
+ classNameCartItemInfoContainer = _ref$classNameCartIte5 === void 0 ? 'ml-3 d-inline-block align-middle' : _ref$classNameCartIte5,
249
+ _ref$classNameCartTab3 = _ref.classNameCartTab,
250
+ classNameCartTab = _ref$classNameCartTab3 === void 0 ? 'merchi-tab-content' : _ref$classNameCartTab3,
251
+ _ref$classNameCartTab4 = _ref.classNameCartTabPanel,
252
+ classNameCartTabPanel = _ref$classNameCartTab4 === void 0 ? 'merchi-tab-panel' : _ref$classNameCartTab4,
253
+ _ref$classNameCartTit = _ref.classNameCartTitle,
254
+ classNameCartTitle = _ref$classNameCartTit === void 0 ? 'merchi-cart-title' : _ref$classNameCartTit,
255
+ _ref$classNameCartTot = _ref.classNameCartTotalContainer,
256
+ classNameCartTotalContainer = _ref$classNameCartTot === void 0 ? 'merchi-cart-total-container' : _ref$classNameCartTot,
257
+ _ref$classNameCartTot2 = _ref.classNameCartTotaListContainer,
258
+ classNameCartTotaListContainer = _ref$classNameCartTot2 === void 0 ? 'merchi-cart-total-list-container' : _ref$classNameCartTot2,
259
+ _ref$classNameCartTot3 = _ref.classNameCartTotalItem,
260
+ classNameCartTotalItem = _ref$classNameCartTot3 === void 0 ? 'merchi-cart-total-item' : _ref$classNameCartTot3,
261
+ _ref$classNameCartTot4 = _ref.classNameCartTotalItemPrice,
262
+ classNameCartTotalItemPrice = _ref$classNameCartTot4 === void 0 ? 'merchi-cart-total-item-price' : _ref$classNameCartTot4,
263
+ _ref$classNameClearCa = _ref.classNameClearCartContainer,
264
+ classNameClearCartContainer = _ref$classNameClearCa === void 0 ? 'merchi-cart-clear-container' : _ref$classNameClearCa,
265
+ _ref$classNameClearCa2 = _ref.classNameClearCartText,
266
+ classNameClearCartText = _ref$classNameClearCa2 === void 0 ? 'merchi-cart-clear-text' : _ref$classNameClearCa2,
267
+ _ref$classNameListCli = _ref.classNameListClientInfo,
268
+ classNameListClientInfo = _ref$classNameListCli === void 0 ? 'merchi-cart-client-info-list' : _ref$classNameListCli,
269
+ _ref$classNameList = _ref.classNameList,
270
+ classNameList = _ref$classNameList === void 0 ? 'list-group' : _ref$classNameList,
271
+ _ref$classNameListInl = _ref.classNameListInline,
272
+ classNameListInline = _ref$classNameListInl === void 0 ? 'list-inline' : _ref$classNameListInl,
273
+ _ref$classNameListUns = _ref.classNameListUnstyled,
274
+ classNameListUnstyled = _ref$classNameListUns === void 0 ? 'list-unstyled' : _ref$classNameListUns,
275
+ _ref$classNameListCon = _ref.classNameListContainer,
276
+ classNameListContainer = _ref$classNameListCon === void 0 ? 'pb-2' : _ref$classNameListCon,
277
+ _ref$classNameListIte = _ref.classNameListItem,
278
+ classNameListItem = _ref$classNameListIte === void 0 ? 'list-group-item' : _ref$classNameListIte,
279
+ _ref$classNameListIte2 = _ref.classNameListItemCartTotals,
280
+ classNameListItemCartTotals = _ref$classNameListIte2 === void 0 ? 'list-group-item d-flex justify-content-between align-items-center' : _ref$classNameListIte2,
281
+ _ref$classNameLoading = _ref.classNameLoadingTemplate,
282
+ classNameLoadingTemplate = _ref$classNameLoading === void 0 ? 'merchi-loading-template' : _ref$classNameLoading,
283
+ _ref$classNameLoading2 = _ref.classNameLoadingTemplateContainer,
284
+ classNameLoadingTemplateContainer = _ref$classNameLoading2 === void 0 ? 'merchi-loading-template-container' : _ref$classNameLoading2,
285
+ _ref$classNameNoItems = _ref.classNameNoItems,
286
+ classNameNoItems = _ref$classNameNoItems === void 0 ? 'merchi-no-cart-items' : _ref$classNameNoItems,
287
+ _ref$classNameShipmen = _ref.classNameShipmentOption,
288
+ classNameShipmentOption = _ref$classNameShipmen === void 0 ? 'merchi-shipment-option' : _ref$classNameShipmen,
289
+ _ref$classNameTable = _ref.classNameTable,
290
+ classNameTable = _ref$classNameTable === void 0 ? 'table' : _ref$classNameTable,
291
+ _ref$classNameTableCo = _ref.classNameTableContainer,
292
+ classNameTableContainer = _ref$classNameTableCo === void 0 ? 'table-responsive' : _ref$classNameTableCo,
293
+ _ref$classNameVariati = _ref.classNameVariationsList,
294
+ classNameVariationsList = _ref$classNameVariati === void 0 ? 'list-unstyled list-inline' : _ref$classNameVariati,
295
+ customSuccessMessage = _ref.customSuccessMessage,
296
+ domainId = _ref.domainId,
297
+ _ref$discountButtonTe = _ref.discountButtonText,
298
+ discountButtonText = _ref$discountButtonTe === void 0 ? 'Apply' : _ref$discountButtonTe,
299
+ _ref$discountClassNam = _ref.discountClassName,
300
+ discountClassName = _ref$discountClassNam === void 0 ? 'merchi-discount-group-container' : _ref$discountClassNam,
301
+ _ref$discountClassNam2 = _ref.discountClassNameButton,
302
+ discountClassNameButton = _ref$discountClassNam2 === void 0 ? 'btn btn-primary btn-lg' : _ref$discountClassNam2,
303
+ _ref$discountClassNam3 = _ref.discountClassNameButtonContainer,
304
+ discountClassNameButtonContainer = _ref$discountClassNam3 === void 0 ? 'col-auto' : _ref$discountClassNam3,
305
+ _ref$discountClassNam4 = _ref.discountClassNameButtonItemRemove,
306
+ discountClassNameButtonItemRemove = _ref$discountClassNam4 === void 0 ? 'btn btn-sm btn-link' : _ref$discountClassNam4,
307
+ _ref$discountClassNam5 = _ref.discountClassNameErrorMessage,
308
+ discountClassNameErrorMessage = _ref$discountClassNam5 === void 0 ? 'text-danger' : _ref$discountClassNam5,
309
+ _ref$discountClassNam6 = _ref.discountClassNameInput,
310
+ discountClassNameInput = _ref$discountClassNam6 === void 0 ? 'form-control input-lg' : _ref$discountClassNam6,
311
+ discountClassNameInputContainer = _ref.discountClassNameInputContainer,
312
+ _ref$discountClassNam7 = _ref.discountClassNameListItem,
313
+ discountClassNameListItem = _ref$discountClassNam7 === void 0 ? 'list-group-item d-flex align-items-center justify-content-between mt-2' : _ref$discountClassNam7,
314
+ _ref$discountClassNam8 = _ref.discountClassNameListItems,
315
+ discountClassNameListItems = _ref$discountClassNam8 === void 0 ? 'list-group' : _ref$discountClassNam8,
316
+ discountClassNameMainContainer = _ref.discountClassNameMainContainer,
317
+ _ref$discountShowAppl = _ref.discountShowAppliedItems,
318
+ discountShowAppliedItems = _ref$discountShowAppl === void 0 ? true : _ref$discountShowAppl,
319
+ _ref$showDiscountCode = _ref.showDiscountCode,
320
+ showDiscountCode = _ref$showDiscountCode === void 0 ? true : _ref$showDiscountCode,
321
+ _ref$googlePlacesLoad = _ref.googlePlacesLoaded,
322
+ googlePlacesLoaded = _ref$googlePlacesLoad === void 0 ? false : _ref$googlePlacesLoad,
323
+ _ref$hideHead = _ref.hideHead,
324
+ hideHead = _ref$hideHead === void 0 ? false : _ref$hideHead,
325
+ _ref$includeTheme = _ref.includeTheme,
326
+ includeTheme = _ref$includeTheme === void 0 ? false : _ref$includeTheme,
327
+ _ref$initialiseCart = _ref.initialiseCart,
328
+ initialiseCart = _ref$initialiseCart === void 0 ? true : _ref$initialiseCart,
329
+ isCartModalOpen = _ref.isCartModalOpen,
330
+ setIsCartModalOpen = _ref.setIsCartModalOpen,
331
+ onClickClose = _ref.onClickClose,
332
+ _ref$productFormClass = _ref.productFormClassNames,
333
+ productFormClassNames = _ref$productFormClass === void 0 ? {} : _ref$productFormClass,
334
+ _ref$showUserTermsAnd = _ref.showUserTermsAndConditions,
335
+ showUserTermsAndConditions = _ref$showUserTermsAnd === void 0 ? true : _ref$showUserTermsAnd,
336
+ _ref$showCartItemInfo = _ref.showCartItemInfo,
337
+ showCartItemInfo = _ref$showCartItemInfo === void 0 ? true : _ref$showCartItemInfo,
338
+ _ref$apiUrl = _ref.apiUrl,
339
+ apiUrl = _ref$apiUrl === void 0 ? 'https://api.merchi.co/v6/' : _ref$apiUrl,
340
+ _ref$urlFrontend = _ref.urlFrontend,
341
+ urlFrontend = _ref$urlFrontend === void 0 ? 'https://merchi.co/' : _ref$urlFrontend,
342
+ urlTrackingPage = _ref.urlTrackingPage;
343
+ var merchi = new Merchi();
344
+ var _useState = useState(_objectSpread({}, initCart)),
345
+ _useState2 = _slicedToArray(_useState, 2),
346
+ cart = _useState2[0],
347
+ setCart = _useState2[1];
348
+ var _useState3 = useState(null),
349
+ _useState4 = _slicedToArray(_useState3, 2),
350
+ cartClient = _useState4[0],
351
+ setCartClient = _useState4[1];
352
+ var _useState5 = useState(false),
353
+ _useState6 = _slicedToArray(_useState5, 2),
354
+ isOpen = _useState6[0],
355
+ setIsOpen = _useState6[1];
356
+ var _useState7 = useState(0),
357
+ _useState8 = _slicedToArray(_useState7, 2),
358
+ activeTabIndex = _useState8[0],
359
+ setActiveTabIndex = _useState8[1];
360
+ var _useState9 = useState(_toConsumableArray(initTabs)),
361
+ _useState0 = _slicedToArray(_useState9, 2),
362
+ tabs = _useState0[0],
363
+ setTabs = _useState0[1];
364
+ function setActiveTabAndEditDisabled(nextTab) {
365
+ var tabId = nextTab.tabId,
366
+ tabIndexToSet = nextTab.tabIndexToSet,
367
+ disabled = nextTab.disabled;
368
+ setTabs(function (prev) {
369
+ var index = tabIndexToSet >= 0 && tabIndexToSet < prev.length ? tabIndexToSet : prev.findIndex(function (t) {
370
+ return t.tabId === tabId;
371
+ });
372
+ if (index < 0 || index >= prev.length) {
373
+ return prev;
374
+ }
375
+ var next = _toConsumableArray(prev);
376
+ next[index] = _objectSpread(_objectSpread({}, next[index]), {}, {
377
+ disabled: disabled
378
+ });
379
+ return next;
380
+ });
381
+ setActiveTabIndex(tabId);
382
+ }
383
+ var _useState1 = useState({}),
384
+ _useState10 = _slicedToArray(_useState1, 2),
385
+ cartItem = _useState10[0],
386
+ setCartItem = _useState10[1];
387
+ var _useState11 = useState({
388
+ icon: faInfoCircle,
389
+ message: '',
390
+ show: false,
391
+ title: '',
392
+ type: 'info'
393
+ }),
394
+ _useState12 = _slicedToArray(_useState11, 2),
395
+ alert = _useState12[0],
396
+ setAlert = _useState12[1];
397
+ function alertSuccess(message) {
398
+ setAlert({
399
+ icon: faCheckCircle,
400
+ message: message,
401
+ show: true,
402
+ title: 'Success!',
403
+ type: 'success'
404
+ });
405
+ }
406
+ function alertError(message) {
407
+ setAlert({
408
+ icon: faExclamationTriangle,
409
+ message: message,
410
+ show: true,
411
+ title: 'Error!',
412
+ type: 'danger'
413
+ });
414
+ }
415
+ function closeClearCart() {
416
+ setActiveTabIndex(tabIdItems);
417
+ }
418
+ var _useState13 = useState(false),
419
+ _useState14 = _slicedToArray(_useState13, 2),
420
+ fetchingCart = _useState14[0],
421
+ setFetchingCart = _useState14[1];
422
+ var _useState15 = useState(false),
423
+ _useState16 = _slicedToArray(_useState15, 2),
424
+ cartSettingsInvalid = _useState16[0],
425
+ setCartSettingsInvalid = _useState16[1];
426
+ function attachSavedClientIfNeeded(_x) {
427
+ return _attachSavedClientIfNeeded.apply(this, arguments);
428
+ } // Create cart and save cart cookie
429
+ function _attachSavedClientIfNeeded() {
430
+ _attachSavedClientIfNeeded = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(cartJson) {
431
+ var _cartJson$client;
432
+ var savedCustomer, _nextCart$client, cartToken, clientEnt, cartEnt, savedCart, nextCart, _t, _t2;
433
+ return _regenerator().w(function (_context) {
434
+ while (1) switch (_context.p = _context.n) {
435
+ case 0:
436
+ if (!(cartJson !== null && cartJson !== void 0 && (_cartJson$client = cartJson.client) !== null && _cartJson$client !== void 0 && _cartJson$client.id)) {
437
+ _context.n = 1;
438
+ break;
439
+ }
440
+ setCartClient(cartJson.client);
441
+ return _context.a(2, cartJson);
442
+ case 1:
443
+ savedCustomer = getSavedCheckoutCustomer(domainId);
444
+ if (savedCustomer !== null && savedCustomer !== void 0 && savedCustomer.id) {
445
+ _context.n = 2;
446
+ break;
447
+ }
448
+ setCartClient(null);
449
+ return _context.a(2, cartJson);
450
+ case 2:
451
+ _context.p = 2;
452
+ _t = cartJson.token;
453
+ if (_t) {
454
+ _context.n = 4;
455
+ break;
456
+ }
457
+ _context.n = 3;
458
+ return getCartCookieToken(domainId);
459
+ case 3:
460
+ _t = _context.v;
461
+ case 4:
462
+ cartToken = _t;
463
+ clientEnt = makeUser({
464
+ id: savedCustomer.id
465
+ }, true);
466
+ cartEnt = makeCart(_objectSpread({}, cartJson), false, cartToken);
467
+ cartEnt.client = clientEnt;
468
+ _context.n = 5;
469
+ return cartEnt.save({
470
+ embed: cartEmbed
471
+ });
472
+ case 5:
473
+ savedCart = _context.v;
474
+ nextCart = savedCart.toJson();
475
+ if (!(nextCart !== null && nextCart !== void 0 && (_nextCart$client = nextCart.client) !== null && _nextCart$client !== void 0 && _nextCart$client.id)) {
476
+ _context.n = 6;
477
+ break;
478
+ }
479
+ setCartClient(nextCart.client);
480
+ return _context.a(2, nextCart);
481
+ case 6:
482
+ _context.n = 8;
483
+ break;
484
+ case 7:
485
+ _context.p = 7;
486
+ _t2 = _context.v;
487
+ case 8:
488
+ setCartClient(null);
489
+ return _context.a(2, cartJson);
490
+ }
491
+ }, _callee, null, [[2, 7]]);
492
+ }));
493
+ return _attachSavedClientIfNeeded.apply(this, arguments);
494
+ }
495
+ function createCartAndCookie(_x2) {
496
+ return _createCartAndCookie.apply(this, arguments);
497
+ }
498
+ function _createCartAndCookie() {
499
+ _createCartAndCookie = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(callback) {
500
+ var _cart, cartJson, _t3;
501
+ return _regenerator().w(function (_context2) {
502
+ while (1) switch (_context2.p = _context2.n) {
503
+ case 0:
504
+ setFetchingCart(true);
505
+ _context2.p = 1;
506
+ _cart = makeCart({
507
+ domain: {
508
+ id: domainId
509
+ }
510
+ }, true);
511
+ _context2.n = 2;
512
+ return _cart.create({
513
+ embed: cartEmbed
514
+ });
515
+ case 2:
516
+ _context2.n = 3;
517
+ return _cart.toJson();
518
+ case 3:
519
+ cartJson = _context2.v;
520
+ if (domainId) setCartCookie(Number(domainId), cartJson, undefined);
521
+ _context2.n = 4;
522
+ return attachSavedClientIfNeeded(cartJson);
523
+ case 4:
524
+ cartJson = _context2.v;
525
+ setCart(_objectSpread({}, cartJson));
526
+ if (callback) callback();
527
+ _context2.n = 6;
528
+ break;
529
+ case 5:
530
+ _context2.p = 5;
531
+ _t3 = _context2.v;
532
+ alertError(_t3.errorMessage || _t3.message || 'Unable to fetch cart.');
533
+ case 6:
534
+ _context2.p = 6;
535
+ setFetchingCart(false);
536
+ return _context2.f(6);
537
+ case 7:
538
+ return _context2.a(2);
539
+ }
540
+ }, _callee2, null, [[1, 5, 6, 7]]);
541
+ }));
542
+ return _createCartAndCookie.apply(this, arguments);
543
+ }
544
+ function getCart(_x3) {
545
+ return _getCart.apply(this, arguments);
546
+ }
547
+ function _getCart() {
548
+ _getCart = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(cartIdAndToken) {
549
+ var id, _cart2, cartJson, _t4;
550
+ return _regenerator().w(function (_context3) {
551
+ while (1) switch (_context3.p = _context3.n) {
552
+ case 0:
553
+ id = Number(cartIdAndToken[0]); // Set the cart token on the merchi entity
554
+ if (cartIdAndToken[1]) merchi.cartToken = cartIdAndToken[1];
555
+ setFetchingCart(true);
556
+ _context3.p = 1;
557
+ _context3.n = 2;
558
+ return merchi.Cart.get(id, {
559
+ embed: cartEmbed
560
+ });
561
+ case 2:
562
+ _cart2 = _context3.v;
563
+ _context3.n = 3;
564
+ return _cart2.toJson();
565
+ case 3:
566
+ cartJson = _context3.v;
567
+ if (!stripeIsValidAndActive(cartJson)) {
568
+ _context3.n = 5;
569
+ break;
570
+ }
571
+ _context3.n = 4;
572
+ return attachSavedClientIfNeeded(cartJson);
573
+ case 4:
574
+ cartJson = _context3.v;
575
+ setCart(_objectSpread({}, cartJson));
576
+ _context3.n = 6;
577
+ break;
578
+ case 5:
579
+ console.error("MErhci cart error: Stripe payment " + "options have not been correctly set up. " + "Check the company profile payment options tab " + "to set and edit stripe payment options.");
580
+ setCartSettingsInvalid(true);
581
+ case 6:
582
+ _context3.n = 8;
583
+ break;
584
+ case 7:
585
+ _context3.p = 7;
586
+ _t4 = _context3.v;
587
+ _context3.n = 8;
588
+ return createCartAndCookie();
589
+ case 8:
590
+ _context3.p = 8;
591
+ setFetchingCart(false);
592
+ return _context3.f(8);
593
+ case 9:
594
+ return _context3.a(2);
595
+ }
596
+ }, _callee3, null, [[1, 7, 8, 9]]);
597
+ }));
598
+ return _getCart.apply(this, arguments);
599
+ }
600
+ function actionGetMerchiCart() {
601
+ return _actionGetMerchiCart.apply(this, arguments);
602
+ }
603
+ function _actionGetMerchiCart() {
604
+ _actionGetMerchiCart = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4() {
605
+ var cartIdAndToken;
606
+ return _regenerator().w(function (_context4) {
607
+ while (1) switch (_context4.n) {
608
+ case 0:
609
+ _context4.n = 1;
610
+ return getCartCookie(domainId);
611
+ case 1:
612
+ cartIdAndToken = _context4.v;
613
+ if (cartIdAndToken) {
614
+ getCart(cartIdAndToken);
615
+ } else {
616
+ createCartAndCookie();
617
+ }
618
+ case 2:
619
+ return _context4.a(2);
620
+ }
621
+ }, _callee4);
622
+ }));
623
+ return _actionGetMerchiCart.apply(this, arguments);
624
+ }
625
+ function clearCart(_x4) {
626
+ return _clearCart.apply(this, arguments);
627
+ }
628
+ function _clearCart() {
629
+ _clearCart = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5(callback) {
630
+ return _regenerator().w(function (_context5) {
631
+ while (1) switch (_context5.n) {
632
+ case 0:
633
+ _context5.n = 1;
634
+ return createCartAndCookie();
635
+ case 1:
636
+ if (callback) callback();
637
+ closeClearCart();
638
+ case 2:
639
+ return _context5.a(2);
640
+ }
641
+ }, _callee5);
642
+ }));
643
+ return _clearCart.apply(this, arguments);
644
+ }
645
+ var _useState17 = useState(false),
646
+ _useState18 = _slicedToArray(_useState17, 2),
647
+ fetchingShipmentGroups = _useState18[0],
648
+ setFetchingShipmentGroups = _useState18[1];
649
+ function updateCartShipmentAddress(_x5) {
650
+ return _updateCartShipmentAddress.apply(this, arguments);
651
+ }
652
+ function _updateCartShipmentAddress() {
653
+ _updateCartShipmentAddress = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(address) {
654
+ var token, addressFields, receiverAddress, cartEnt, cartJson, query, cartWithShipmentGroups, _t5;
655
+ return _regenerator().w(function (_context6) {
656
+ while (1) switch (_context6.p = _context6.n) {
657
+ case 0:
658
+ _context6.n = 1;
659
+ return getCartCookieToken(domainId);
660
+ case 1:
661
+ token = _context6.v;
662
+ addressFields = sanitizeAddressFields(address);
663
+ receiverAddress = makeAddress(addressFields, true);
664
+ cartEnt = makeCart(cart, false, token);
665
+ setFetchingShipmentGroups(true);
666
+ _context6.p = 2;
667
+ cartEnt.receiverAddress = receiverAddress;
668
+ _context6.n = 3;
669
+ return cartEnt.save({
670
+ embed: cartEmbed
671
+ });
672
+ case 3:
673
+ cartEnt = _context6.v;
674
+ cartJson = cartEnt.toJson();
675
+ saveCheckoutAddress(domainId, addressFields);
676
+ query = [];
677
+ query.push(['cart_token', cart.token]);
678
+ _context6.n = 4;
679
+ return merchi.authenticatedFetch("/generate-cart-shipment-quotes/".concat(cart.id, "/"), {
680
+ method: 'GET',
681
+ query: query
682
+ });
683
+ case 4:
684
+ cartWithShipmentGroups = _context6.v;
685
+ setCart(_objectSpread(_objectSpread({}, cartJson), {}, {
686
+ shipmentGroups: cartWithShipmentGroups.shipmentGroups || []
687
+ }));
688
+ _context6.n = 6;
689
+ break;
690
+ case 5:
691
+ _context6.p = 5;
692
+ _t5 = _context6.v;
693
+ alertError(_t5.errorMessage || _t5.message || 'Unable to set address');
694
+ case 6:
695
+ _context6.p = 6;
696
+ setFetchingShipmentGroups(false);
697
+ return _context6.f(6);
698
+ case 7:
699
+ return _context6.a(2);
700
+ }
701
+ }, _callee6, null, [[2, 5, 6, 7]]);
702
+ }));
703
+ return _updateCartShipmentAddress.apply(this, arguments);
704
+ }
705
+ function getCartShipmentOptions() {
706
+ return _getCartShipmentOptions.apply(this, arguments);
707
+ }
708
+ function _getCartShipmentOptions() {
709
+ _getCartShipmentOptions = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee7() {
710
+ var query, cartWithGroups, _t6;
711
+ return _regenerator().w(function (_context7) {
712
+ while (1) switch (_context7.p = _context7.n) {
713
+ case 0:
714
+ setFetchingShipmentGroups(true);
715
+ _context7.p = 1;
716
+ query = [];
717
+ query.push(['cart_token', cart.token]);
718
+ _context7.n = 2;
719
+ return merchi.authenticatedFetch("/generate-cart-shipment-quotes/".concat(cart.id, "/"), {
720
+ method: 'GET',
721
+ query: query
722
+ });
723
+ case 2:
724
+ cartWithGroups = _context7.v;
725
+ setCart(_objectSpread(_objectSpread({}, cart), {}, {
726
+ shipmentGroups: cartWithGroups.shipmentGroups || []
727
+ }));
728
+ _context7.n = 4;
729
+ break;
730
+ case 3:
731
+ _context7.p = 3;
732
+ _t6 = _context7.v;
733
+ alertError(_t6.errorMessage || _t6.message || 'Unable to fetch shipment options');
734
+ case 4:
735
+ _context7.p = 4;
736
+ setFetchingShipmentGroups(false);
737
+ return _context7.f(4);
738
+ case 5:
739
+ return _context7.a(2);
740
+ }
741
+ }, _callee7, null, [[1, 3, 4, 5]]);
742
+ }));
743
+ return _getCartShipmentOptions.apply(this, arguments);
744
+ }
745
+ function getMerchiCartValues() {
746
+ return _getMerchiCartValues.apply(this, arguments);
747
+ }
748
+ function _getMerchiCartValues() {
749
+ _getMerchiCartValues = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee8() {
750
+ var _ref2, cartItems, currency, subtotalCost, taxAmount, totalCost, cartItemsCount;
751
+ return _regenerator().w(function (_context8) {
752
+ while (1) switch (_context8.n) {
753
+ case 0:
754
+ _ref2 = cart, cartItems = _ref2.cartItems, currency = _ref2.currency, subtotalCost = _ref2.subtotalCost, taxAmount = _ref2.taxAmount, totalCost = _ref2.totalCost;
755
+ cartItemsCount = cartItems ? cartItems.length : 0;
756
+ return _context8.a(2, {
757
+ cart: cart,
758
+ cartItemsCount: cartItemsCount,
759
+ currency: currency || '',
760
+ subtotalCost: subtotalCost || 0,
761
+ taxAmount: taxAmount || 0,
762
+ totalCost: totalCost || 0
763
+ });
764
+ }
765
+ }, _callee8);
766
+ }));
767
+ return _getMerchiCartValues.apply(this, arguments);
768
+ }
769
+ function isMerchiCartFetching() {
770
+ return _isMerchiCartFetching.apply(this, arguments);
771
+ }
772
+ function _isMerchiCartFetching() {
773
+ _isMerchiCartFetching = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee9() {
774
+ return _regenerator().w(function (_context9) {
775
+ while (1) switch (_context9.n) {
776
+ case 0:
777
+ return _context9.a(2, fetchingCart);
778
+ }
779
+ }, _callee9);
780
+ }));
781
+ return _isMerchiCartFetching.apply(this, arguments);
782
+ }
783
+ var _useState19 = useState(false),
784
+ _useState20 = _slicedToArray(_useState19, 2),
785
+ loading = _useState20[0],
786
+ setLoading = _useState20[1];
787
+
788
+ // Fetch the associated cart theme via the cart domain.
789
+ function actionFetchTheme() {
790
+ return _actionFetchTheme.apply(this, arguments);
791
+ }
792
+ function _actionFetchTheme() {
793
+ _actionFetchTheme = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee0() {
794
+ var domain, theme, _t7;
795
+ return _regenerator().w(function (_context0) {
796
+ while (1) switch (_context0.p = _context0.n) {
797
+ case 0:
798
+ setLoading(true);
799
+ _context0.p = 1;
800
+ _context0.n = 2;
801
+ return merchi.Domain.get(domainId, {
802
+ embed: {
803
+ activeTheme: {
804
+ mainCss: {}
805
+ }
806
+ }
807
+ });
808
+ case 2:
809
+ domain = _context0.v;
810
+ theme = domain.activeTheme;
811
+ _context0.n = 3;
812
+ return appendStyleSheetText(theme.mainCss, function () {
813
+ return setLoading(false);
814
+ });
815
+ case 3:
816
+ _context0.n = 5;
817
+ break;
818
+ case 4:
819
+ _context0.p = 4;
820
+ _t7 = _context0.v;
821
+ alertError(_t7.errorMessage || _t7.message || 'Error fetching domain theme.');
822
+ setLoading(false);
823
+ case 5:
824
+ return _context0.a(2);
825
+ }
826
+ }, _callee0, null, [[1, 4]]);
827
+ }));
828
+ return _actionFetchTheme.apply(this, arguments);
829
+ }
830
+ function setCartComplete() {
831
+ return _setCartComplete.apply(this, arguments);
832
+ }
833
+ function _setCartComplete() {
834
+ _setCartComplete = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee1() {
835
+ return _regenerator().w(function (_context1) {
836
+ while (1) switch (_context1.n) {
837
+ case 0:
838
+ _context1.n = 1;
839
+ return createCartAndCookie();
840
+ case 1:
841
+ location.reload();
842
+ case 2:
843
+ return _context1.a(2);
844
+ }
845
+ }, _callee1);
846
+ }));
847
+ return _setCartComplete.apply(this, arguments);
848
+ }
849
+ function refetchCart() {
850
+ return _refetchCart.apply(this, arguments);
851
+ }
852
+ function _refetchCart() {
853
+ _refetchCart = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee10() {
854
+ return _regenerator().w(function (_context10) {
855
+ while (1) switch (_context10.n) {
856
+ case 0:
857
+ _context10.n = 1;
858
+ return actionGetMerchiCart();
859
+ case 1:
860
+ return _context10.a(2);
861
+ }
862
+ }, _callee10);
863
+ }));
864
+ return _refetchCart.apply(this, arguments);
865
+ }
866
+ var _useState21 = useState({}),
867
+ _useState22 = _slicedToArray(_useState21, 2),
868
+ invoiceJson = _useState22[0],
869
+ setInvoiceJson = _useState22[1];
870
+ var _useState23 = useState(false),
871
+ _useState24 = _slicedToArray(_useState23, 2),
872
+ loadingTotals = _useState24[0],
873
+ setLoadingTotals = _useState24[1];
874
+ function addCartItem(_x6, _x7, _x8) {
875
+ return _addCartItem.apply(this, arguments);
876
+ }
877
+ function _addCartItem() {
878
+ _addCartItem = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee11(jobJson, onSuccess, onError) {
879
+ var jobEnt, cartToken, cartEnt, cartItemEnt, cartItemProduct, item, itemJson, _t8;
880
+ return _regenerator().w(function (_context11) {
881
+ while (1) switch (_context11.p = _context11.n) {
882
+ case 0:
883
+ setFetchingCart(true);
884
+ jobEnt = makeJob(jobJson, true);
885
+ _context11.n = 1;
886
+ return getCartCookieToken(domainId);
887
+ case 1:
888
+ cartToken = _context11.v;
889
+ cartEnt = makeCart(cart, false, cartToken);
890
+ cartItemEnt = makeCartItem({}, true);
891
+ cartItemProduct = makeProduct({
892
+ id: jobEnt.product.id
893
+ });
894
+ cartItemEnt.cart = cartEnt;
895
+ cartItemEnt.quantity = jobEnt.quantity;
896
+ cartItemEnt.product = cartItemProduct;
897
+ cartItemEnt.variations = jobEnt.variations;
898
+ cartItemEnt.variationsGroups = jobEnt.variationsGroups;
899
+ cartItemEnt.taxType = jobEnt.taxType;
900
+ cartItemEnt.ownDrafts = jobEnt.ownDrafts;
901
+ cartItemEnt.tags = jobEnt.tags;
902
+ _context11.p = 2;
903
+ _context11.n = 3;
904
+ return cartItemEnt.create();
905
+ case 3:
906
+ item = _context11.v;
907
+ _context11.n = 4;
908
+ return item.toJson();
909
+ case 4:
910
+ itemJson = _context11.v;
911
+ onSuccess(itemJson);
912
+ _context11.n = 6;
913
+ break;
914
+ case 5:
915
+ _context11.p = 5;
916
+ _t8 = _context11.v;
917
+ onError(_t8);
918
+ case 6:
919
+ _context11.p = 6;
920
+ setFetchingCart(false);
921
+ return _context11.f(6);
922
+ case 7:
923
+ return _context11.a(2);
924
+ }
925
+ }, _callee11, null, [[2, 5, 6, 7]]);
926
+ }));
927
+ return _addCartItem.apply(this, arguments);
928
+ }
929
+ var toggleCartModal = function toggleCartModal() {
930
+ var newIsOpen = setIsCartModalOpen ? !isCartModalOpen : !isOpen;
931
+
932
+ // Toggle the modal state
933
+ if (setIsCartModalOpen) {
934
+ setIsCartModalOpen(newIsOpen);
935
+ } else {
936
+ setIsOpen(newIsOpen);
937
+ }
938
+
939
+ // Refetch the cart if the modal is opening
940
+ if (newIsOpen) {
941
+ refetchCart();
942
+ }
943
+ };
944
+
945
+ // Set a global toggle function for cart wrapper
946
+ if (typeof window !== 'undefined') {
947
+ window.addCartItem = addCartItem;
948
+ window.toggleCartOpen = toggleCartModal;
949
+ window.getCart = function () {
950
+ return actionGetMerchiCart();
951
+ };
952
+ window.getMerchiCartValues = getMerchiCartValues;
953
+ window.isMerchiCartFetching = isMerchiCartFetching;
954
+ window.setCartComplete = setCartComplete;
955
+ window.refetchCart = refetchCart;
956
+ window.createCartAndCookie = createCartAndCookie;
957
+ }
958
+ useEffect(function () {
959
+ if (domainId) actionGetMerchiCart();
960
+ if (domainId && includeTheme) actionFetchTheme();
961
+ }, [domainId]);
962
+ return /*#__PURE__*/_jsx(CartContext.Provider, {
963
+ value: {
964
+ cart: cart,
965
+ setCart: setCart,
966
+ cartClient: cartClient,
967
+ setCartClient: setCartClient,
968
+ cartSettingsInvalid: cartSettingsInvalid,
969
+ // if true do show error to user about settings
970
+
971
+ activeTabIndex: activeTabIndex,
972
+ setActiveTabIndex: setActiveTabIndex,
973
+ alert: alert,
974
+ alertSuccess: alertSuccess,
975
+ alertError: alertError,
976
+ setAlert: setAlert,
977
+ cartItem: cartItem,
978
+ setCartItem: setCartItem,
979
+ classNameAlertError: classNameAlertError,
980
+ classNameAlertInfo: classNameAlertInfo,
981
+ classNameAlertSuccess: classNameAlertSuccess,
982
+ classNameAlertWarning: classNameAlertWarning,
983
+ classNameBtn: classNameBtn,
984
+ classNameBtnBack: classNameBtnBack,
985
+ classNameBtnCartClear: classNameBtnCartClear,
986
+ classNameBtnClose: classNameBtnClose,
987
+ classNameBtnDanger: classNameBtnDanger,
988
+ classNameBtnDefault: classNameBtnDefault,
989
+ classNameBtnDownloadInvoice: classNameBtnDownloadInvoice,
990
+ classNameBtnEditCartItem: classNameBtnEditCartItem,
991
+ classNameBtnPrimary: classNameBtnPrimary,
992
+ classNameBtnLink: classNameBtnLink,
993
+ classNameBtnNext: classNameBtnNext,
994
+ classNameBtnNextComplete: classNameBtnNextComplete,
995
+ classNameBtnPay: classNameBtnPay,
996
+ classNameCartBody: classNameCartBody,
997
+ classNameCartFooter: classNameCartFooter,
998
+ classNameCartFormCheckbox: classNameCartFormCheckbox,
999
+ classNameCartFormGroup: classNameCartFormGroup,
1000
+ classNameCartFormGroupButton: classNameCartFormGroupButton,
1001
+ classNameCartFormGroupCheckbox: classNameCartFormGroupCheckbox,
1002
+ classNameCartFormInput: classNameCartFormInput,
1003
+ classNameCartFormLabelCheckbox: classNameCartFormLabelCheckbox,
1004
+ classNameCartInputError: classNameCartInputError,
1005
+ classNameCartNav: classNameCartNav,
1006
+ classNameCartRow: classNameCartRow,
1007
+ classNameCartRowColumn: classNameCartRowColumn,
1008
+ classNameCartTabItem: classNameCartTabItem,
1009
+ classNameCartTabItemLink: classNameCartTabItemLink,
1010
+ classNameCartToggleIconButton: classNameCartToggleIconButton,
1011
+ classNameCartGoogleSuggestList: classNameCartGoogleSuggestList,
1012
+ classNameCartGoogleSuggestListItem: classNameCartGoogleSuggestListItem,
1013
+ classNameCartHeader: classNameCartHeader,
1014
+ classNameCartItemFeatureImage: classNameCartItemFeatureImage,
1015
+ classNameCartItemInfo: classNameCartItemInfo,
1016
+ classNameCartItemInfoCell: classNameCartItemInfoCell,
1017
+ classNameCartItemInfoCellRight: classNameCartItemInfoCellRight,
1018
+ classNameCartItemInfoContainer: classNameCartItemInfoContainer,
1019
+ classNameCartTab: classNameCartTab,
1020
+ classNameCartTabPanel: classNameCartTabPanel,
1021
+ classNameCartTitle: classNameCartTitle,
1022
+ classNameCartTotalContainer: classNameCartTotalContainer,
1023
+ classNameCartTotalItem: classNameCartTotalItem,
1024
+ classNameCartTotaListContainer: classNameCartTotaListContainer,
1025
+ classNameCartTotalItemPrice: classNameCartTotalItemPrice,
1026
+ classNameClearCartContainer: classNameClearCartContainer,
1027
+ classNameClearCartText: classNameClearCartText,
1028
+ classNameListClientInfo: classNameListClientInfo,
1029
+ classNameList: classNameList,
1030
+ classNameListInline: classNameListInline,
1031
+ classNameListContainer: classNameListContainer,
1032
+ classNameListItem: classNameListItem,
1033
+ classNameListItemCartTotals: classNameListItemCartTotals,
1034
+ classNameListUnstyled: classNameListUnstyled,
1035
+ classNameLoadingTemplate: classNameLoadingTemplate,
1036
+ classNameLoadingTemplateContainer: classNameLoadingTemplateContainer,
1037
+ classNameNoItems: classNameNoItems,
1038
+ classNameShipmentOption: classNameShipmentOption,
1039
+ classNameTable: classNameTable,
1040
+ classNameTableContainer: classNameTableContainer,
1041
+ classNameVariationsList: classNameVariationsList,
1042
+ customSuccessMessage: customSuccessMessage,
1043
+ discountButtonText: discountButtonText,
1044
+ discountClassName: discountClassName,
1045
+ discountClassNameButton: discountClassNameButton,
1046
+ discountClassNameButtonContainer: discountClassNameButtonContainer,
1047
+ discountClassNameButtonItemRemove: discountClassNameButtonItemRemove,
1048
+ discountClassNameErrorMessage: discountClassNameErrorMessage,
1049
+ discountClassNameInput: discountClassNameInput,
1050
+ discountClassNameInputContainer: discountClassNameInputContainer,
1051
+ discountClassNameListItem: discountClassNameListItem,
1052
+ discountClassNameListItems: discountClassNameListItems,
1053
+ discountClassNameMainContainer: discountClassNameMainContainer,
1054
+ discountShowAppliedItems: discountShowAppliedItems,
1055
+ showDiscountCode: showDiscountCode,
1056
+ fetchingCart: fetchingCart,
1057
+ // boolean indicator true when fetching cart
1058
+ setFetchingCart: setFetchingCart,
1059
+ fetchingShipmentGroups: fetchingShipmentGroups,
1060
+ // boolean for fetching shipment groups
1061
+
1062
+ domainId: domainId,
1063
+ googlePlacesLoaded: googlePlacesLoaded,
1064
+ hideHead: hideHead,
1065
+ invoiceJson: invoiceJson,
1066
+ setInvoiceJson: setInvoiceJson,
1067
+ includeTheme: includeTheme,
1068
+ initialiseCart: initialiseCart,
1069
+ isCartModalOpen: typeof isCartModalOpen !== 'undefined' ? isCartModalOpen : isOpen,
1070
+ // Control the cart modal open and closed
1071
+ toggleCartModal: toggleCartModal,
1072
+ onClickClose: onClickClose,
1073
+ productFormClassNames: productFormClassNames,
1074
+ showUserTermsAndConditions: showUserTermsAndConditions,
1075
+ apiUrl: apiUrl,
1076
+ updateCartShipmentAddress: updateCartShipmentAddress,
1077
+ urlFrontend: urlFrontend,
1078
+ urlTrackingPage: urlTrackingPage,
1079
+ tabs: tabs,
1080
+ setTabs: setTabs,
1081
+ clearCart: clearCart,
1082
+ // Resets the cart and it's values
1083
+ closeClearCart: closeClearCart,
1084
+ setCartComplete: setCartComplete,
1085
+ // creates a token and cart and then reloads the page
1086
+ refetchCart: refetchCart,
1087
+ // used to refetch the cart
1088
+ createCartAndCookie: createCartAndCookie,
1089
+ // creates a new cart and cookie
1090
+
1091
+ loading: loading,
1092
+ showCartItemInfo: showCartItemInfo,
1093
+ loadingTotals: loadingTotals,
1094
+ setLoadingTotals: setLoadingTotals,
1095
+ setActiveTabAndEditDisabled: setActiveTabAndEditDisabled,
1096
+ getCartShipmentOptions: getCartShipmentOptions // refetch of the shipment quote options
1097
+ },
1098
+ children: children
1099
+ });
1100
+ };
1101
+ export default CartProvider;