@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,56 @@
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
+ var _excluded = ["ref"];
3
+ 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; }
4
+ 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; }
5
+ 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; }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
7
+ 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); }
8
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
9
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
10
+ import { useController } from 'react-hook-form';
11
+ import { useCartContext } from '../CartProvider';
12
+ import InputError from './InputError';
13
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+ function InputText(_ref) {
15
+ var control = _ref.control,
16
+ label = _ref.label,
17
+ name = _ref.name,
18
+ placeholder = _ref.placeholder,
19
+ _ref$type = _ref.type,
20
+ type = _ref$type === void 0 ? 'text' : _ref$type,
21
+ _onChange = _ref.onChange,
22
+ rules = _ref.rules;
23
+ var _useCartContext = useCartContext(),
24
+ classNameCartFormGroup = _useCartContext.classNameCartFormGroup,
25
+ classNameCartFormInput = _useCartContext.classNameCartFormInput;
26
+ var _useController = useController({
27
+ name: name,
28
+ control: control,
29
+ rules: rules,
30
+ defaultValue: ''
31
+ }),
32
+ _useController$field = _useController.field,
33
+ ref = _useController$field.ref,
34
+ inputProps = _objectWithoutProperties(_useController$field, _excluded),
35
+ _useController$fieldS = _useController.fieldState,
36
+ error = _useController$fieldS.error,
37
+ invalid = _useController$fieldS.invalid;
38
+ return /*#__PURE__*/_jsxs("div", {
39
+ className: classNameCartFormGroup,
40
+ children: [label && /*#__PURE__*/_jsx("label", {
41
+ children: label
42
+ }), /*#__PURE__*/_jsx("input", _objectSpread(_objectSpread({
43
+ className: "".concat(classNameCartFormInput, " ").concat(invalid && ' is-invalid'),
44
+ type: type,
45
+ placeholder: placeholder
46
+ }, inputProps), {}, {
47
+ onChange: function onChange(e) {
48
+ if (_onChange) _onChange(e); // Check if custom onChange was provided
49
+ inputProps.onChange(e); // Default RHF onChange
50
+ }
51
+ })), /*#__PURE__*/_jsx(InputError, {
52
+ error: error
53
+ })]
54
+ });
55
+ }
56
+ export default InputText;
@@ -0,0 +1,476 @@
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 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; }
7
+ 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; }
8
+ 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; }
9
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
10
+ 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); }
11
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
12
+ 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."); }
13
+ 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; } }
14
+ 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; }
15
+ 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; } }
16
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
17
+ import * as React from 'react';
18
+ import { useEffect, useMemo, useState } from 'react';
19
+ import { debounce } from 'lodash';
20
+ import { Merchi } from '@merchi/sdk';
21
+ import { CountryDropdown, RegionDropdown } from 'react-country-region-selector';
22
+ import { Controller } from 'react-hook-form';
23
+ import InputText from './InputText';
24
+ import { addressInOneLine, googlePlacesResultAsNewAddress } from '../utilities/address';
25
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
26
+ import { faSpinner, faTimes, faEdit, faExclamationTriangle } from '@fortawesome/free-solid-svg-icons';
27
+ import { Collapse } from '../components';
28
+ import { useCartContext } from '../CartProvider';
29
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
30
+ var merchi = new Merchi();
31
+ export function InputsAddress(_ref) {
32
+ var _ref$defaultAddress = _ref.defaultAddress,
33
+ defaultAddress = _ref$defaultAddress === void 0 ? {} : _ref$defaultAddress,
34
+ _ref$labelGeoSuggest = _ref.labelGeoSuggest,
35
+ labelGeoSuggest = _ref$labelGeoSuggest === void 0 ? 'Address' : _ref$labelGeoSuggest,
36
+ hookForm = _ref.hookForm,
37
+ name = _ref.name,
38
+ _ref$placeholder = _ref.placeholder,
39
+ placeholder = _ref$placeholder === void 0 ? 'Search your address' : _ref$placeholder,
40
+ updateAddress = _ref.updateAddress;
41
+ var _useCartContext = useCartContext(),
42
+ classNameCartFormGroup = _useCartContext.classNameCartFormGroup,
43
+ classNameCartFormInput = _useCartContext.classNameCartFormInput,
44
+ classNameCartRow = _useCartContext.classNameCartRow,
45
+ classNameCartRowColumn = _useCartContext.classNameCartRowColumn,
46
+ classNameCartGoogleSuggestList = _useCartContext.classNameCartGoogleSuggestList,
47
+ classNameCartGoogleSuggestListItem = _useCartContext.classNameCartGoogleSuggestListItem;
48
+ var _React$useState = React.useState(''),
49
+ _React$useState2 = _slicedToArray(_React$useState, 2),
50
+ inputValue = _React$useState2[0],
51
+ setInputValue = _React$useState2[1];
52
+ var _React$useState3 = React.useState([]),
53
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
54
+ suggestions = _React$useState4[0],
55
+ setSuggestions = _React$useState4[1];
56
+ var _React$useState5 = React.useState(false),
57
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
58
+ showSuggestions = _React$useState6[0],
59
+ setShowSuggestions = _React$useState6[1];
60
+ var _React$useState7 = React.useState(false),
61
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
62
+ loading = _React$useState8[0],
63
+ setLoading = _React$useState8[1];
64
+ var _React$useState9 = React.useState(-1),
65
+ _React$useState0 = _slicedToArray(_React$useState9, 2),
66
+ selectedIndex = _React$useState0[0],
67
+ setSelectedIndex = _React$useState0[1];
68
+ var inputRef = React.useRef(null);
69
+ var suggestionsRef = React.useRef(null);
70
+ var control = hookForm.control,
71
+ _hookForm$formState = hookForm.formState,
72
+ errors = _hookForm$formState.errors,
73
+ isValid = _hookForm$formState.isValid,
74
+ submitCount = _hookForm$formState.submitCount,
75
+ setValue = hookForm.setValue,
76
+ getValues = hookForm.getValues,
77
+ reset = hookForm.reset,
78
+ watch = hookForm.watch;
79
+ var inputName = function inputName(_name) {
80
+ return "".concat(name ? "".concat(name, ".") : '').concat(_name);
81
+ };
82
+ var selectedCountry = watch(inputName('country'));
83
+ function onChangeCountryState() {
84
+ var values = getValues();
85
+ updateAddress(name ? values[name] : values);
86
+ }
87
+ var _useState = useState(false),
88
+ _useState2 = _slicedToArray(_useState, 2),
89
+ addressFieldsOpen = _useState2[0],
90
+ setAddressFieldsOpen = _useState2[1];
91
+ var toggleAddressFieldsOpen = function toggleAddressFieldsOpen() {
92
+ return setAddressFieldsOpen(!addressFieldsOpen);
93
+ };
94
+ useEffect(function () {
95
+ if (!isValid && !addressFieldsOpen && submitCount > 0) {
96
+ toggleAddressFieldsOpen();
97
+ }
98
+ }, [isValid, submitCount]);
99
+ useEffect(function () {
100
+ if (!(defaultAddress !== null && defaultAddress !== void 0 && defaultAddress.lineOne)) return;
101
+ var nextAddress = _objectSpread({}, defaultAddress);
102
+ setInputValue(addressInOneLine(nextAddress));
103
+ reset(name ? _objectSpread(_objectSpread({}, getValues()), {}, _defineProperty({}, name, nextAddress)) : _objectSpread(_objectSpread({}, getValues()), nextAddress), {
104
+ keepSubmitCount: true
105
+ });
106
+ }, [defaultAddress === null || defaultAddress === void 0 ? void 0 : defaultAddress.lineOne, defaultAddress === null || defaultAddress === void 0 ? void 0 : defaultAddress.city, defaultAddress === null || defaultAddress === void 0 ? void 0 : defaultAddress.postcode]);
107
+ function searchAddresses(_x) {
108
+ return _searchAddresses.apply(this, arguments);
109
+ }
110
+ function _searchAddresses() {
111
+ _searchAddresses = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(query) {
112
+ var response, _t;
113
+ return _regenerator().w(function (_context) {
114
+ while (1) switch (_context.p = _context.n) {
115
+ case 0:
116
+ if (query.trim()) {
117
+ _context.n = 1;
118
+ break;
119
+ }
120
+ setSuggestions([]);
121
+ setShowSuggestions(false);
122
+ return _context.a(2);
123
+ case 1:
124
+ setLoading(true);
125
+ _context.p = 2;
126
+ _context.n = 3;
127
+ return merchi.authenticatedFetch('/addresses/place-search/', {
128
+ method: 'GET',
129
+ query: [['q', query]]
130
+ });
131
+ case 3:
132
+ response = _context.v;
133
+ if (response.status === 'success') {
134
+ setSuggestions(response.results || []);
135
+ setShowSuggestions(true);
136
+ setSelectedIndex(-1);
137
+ }
138
+ _context.n = 5;
139
+ break;
140
+ case 4:
141
+ _context.p = 4;
142
+ _t = _context.v;
143
+ console.error('Error searching addresses:', _t);
144
+ setSuggestions([]);
145
+ setShowSuggestions(false);
146
+ case 5:
147
+ _context.p = 5;
148
+ setLoading(false);
149
+ return _context.f(5);
150
+ case 6:
151
+ return _context.a(2);
152
+ }
153
+ }, _callee, null, [[2, 4, 5, 6]]);
154
+ }));
155
+ return _searchAddresses.apply(this, arguments);
156
+ }
157
+ var debouncedSearch = useMemo(function () {
158
+ return debounce(searchAddresses, 500);
159
+ }, []);
160
+ useEffect(function () {
161
+ return function () {
162
+ return debouncedSearch.cancel();
163
+ };
164
+ }, [debouncedSearch]);
165
+ function handleInputChange(event) {
166
+ var value = event.target.value;
167
+ setInputValue(value);
168
+ debouncedSearch(value);
169
+ }
170
+ function handleSuggestionSelect(_x2) {
171
+ return _handleSuggestionSelect.apply(this, arguments);
172
+ }
173
+ function _handleSuggestionSelect() {
174
+ _handleSuggestionSelect = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(suggestion) {
175
+ var applyDescriptionOnly, response, parsedAddress, _t2;
176
+ return _regenerator().w(function (_context2) {
177
+ while (1) switch (_context2.p = _context2.n) {
178
+ case 0:
179
+ applyDescriptionOnly = function _applyDescriptionOnly() {
180
+ setInputValue(suggestion.description);
181
+ updateAddress({
182
+ city: '',
183
+ country: '',
184
+ lineOne: suggestion.description,
185
+ lineTwo: '',
186
+ postcode: '',
187
+ state: ''
188
+ });
189
+ };
190
+ setLoading(true);
191
+ _context2.p = 1;
192
+ _context2.n = 2;
193
+ return merchi.authenticatedFetch('/addresses/place-details/', {
194
+ method: 'GET',
195
+ query: [['place_id', suggestion.placeId]]
196
+ });
197
+ case 2:
198
+ response = _context2.v;
199
+ parsedAddress = response.status === 'success' ? googlePlacesResultAsNewAddress(response.result) : null;
200
+ if (parsedAddress) {
201
+ setInputValue(addressInOneLine(parsedAddress));
202
+ updateAddress(parsedAddress);
203
+ } else {
204
+ applyDescriptionOnly();
205
+ }
206
+ _context2.n = 4;
207
+ break;
208
+ case 3:
209
+ _context2.p = 3;
210
+ _t2 = _context2.v;
211
+ console.error('Error fetching place details:', _t2);
212
+ applyDescriptionOnly();
213
+ case 4:
214
+ _context2.p = 4;
215
+ setLoading(false);
216
+ setShowSuggestions(false);
217
+ setSuggestions([]);
218
+ setSelectedIndex(-1);
219
+ return _context2.f(4);
220
+ case 5:
221
+ return _context2.a(2);
222
+ }
223
+ }, _callee2, null, [[1, 3, 4, 5]]);
224
+ }));
225
+ return _handleSuggestionSelect.apply(this, arguments);
226
+ }
227
+ function handleKeyDown(event) {
228
+ if (!showSuggestions || suggestions.length === 0) return;
229
+ switch (event.key) {
230
+ case 'ArrowDown':
231
+ event.preventDefault();
232
+ setSelectedIndex(function (prev) {
233
+ return prev < suggestions.length - 1 ? prev + 1 : 0;
234
+ });
235
+ break;
236
+ case 'ArrowUp':
237
+ event.preventDefault();
238
+ setSelectedIndex(function (prev) {
239
+ return prev > 0 ? prev - 1 : suggestions.length - 1;
240
+ });
241
+ break;
242
+ case 'Enter':
243
+ event.preventDefault();
244
+ if (selectedIndex >= 0 && selectedIndex < suggestions.length) {
245
+ handleSuggestionSelect(suggestions[selectedIndex]);
246
+ }
247
+ break;
248
+ case 'Escape':
249
+ setShowSuggestions(false);
250
+ setSelectedIndex(-1);
251
+ break;
252
+ default:
253
+ break;
254
+ }
255
+ }
256
+ function handleInputBlur() {
257
+ setTimeout(function () {
258
+ var _suggestionsRef$curre;
259
+ if (!((_suggestionsRef$curre = suggestionsRef.current) !== null && _suggestionsRef$curre !== void 0 && _suggestionsRef$curre.contains(document.activeElement))) {
260
+ setShowSuggestions(false);
261
+ setSelectedIndex(-1);
262
+ }
263
+ }, 200);
264
+ }
265
+ function handleInputFocus() {
266
+ if (suggestions.length > 0) {
267
+ setShowSuggestions(true);
268
+ }
269
+ }
270
+ function clearInput(e) {
271
+ e.preventDefault();
272
+ setInputValue('');
273
+ setSuggestions([]);
274
+ setShowSuggestions(false);
275
+ updateAddress({
276
+ city: '',
277
+ country: '',
278
+ lineOne: '',
279
+ lineTwo: '',
280
+ postcode: '',
281
+ state: ''
282
+ });
283
+ }
284
+ var hasErrors = !!Object.keys(errors || {}).length;
285
+ var addressForm = /*#__PURE__*/_jsxs(_Fragment, {
286
+ children: [/*#__PURE__*/_jsx(InputText, {
287
+ control: control,
288
+ label: "Address line one",
289
+ name: inputName('lineOne'),
290
+ placeholder: "123 Fake st",
291
+ rules: {
292
+ required: 'Address line one is required.'
293
+ }
294
+ }), /*#__PURE__*/_jsx(InputText, {
295
+ control: control,
296
+ label: "Continue address",
297
+ name: inputName('lineTwo'),
298
+ placeholder: "Continue address..."
299
+ }), /*#__PURE__*/_jsxs("div", {
300
+ className: classNameCartRow,
301
+ children: [/*#__PURE__*/_jsx("div", {
302
+ className: classNameCartRowColumn,
303
+ children: /*#__PURE__*/_jsx(InputText, {
304
+ control: control,
305
+ label: "City / Province",
306
+ name: inputName('city'),
307
+ placeholder: "City",
308
+ rules: {
309
+ required: 'City / Province is required.'
310
+ }
311
+ })
312
+ }), /*#__PURE__*/_jsx("div", {
313
+ className: classNameCartRowColumn,
314
+ children: /*#__PURE__*/_jsx(InputText, {
315
+ control: control,
316
+ label: "Post / Zip code",
317
+ name: inputName('postcode'),
318
+ placeholder: "90210"
319
+ })
320
+ })]
321
+ }), /*#__PURE__*/_jsxs("div", {
322
+ className: classNameCartRow,
323
+ children: [/*#__PURE__*/_jsx("div", {
324
+ className: classNameCartRowColumn,
325
+ children: /*#__PURE__*/_jsxs("div", {
326
+ className: classNameCartFormGroup,
327
+ children: [/*#__PURE__*/_jsx("label", {
328
+ children: "Country"
329
+ }), /*#__PURE__*/_jsx(Controller, {
330
+ name: inputName('country'),
331
+ control: control,
332
+ defaultValue: defaultAddress && defaultAddress.country,
333
+ render: function render(_ref2) {
334
+ var field = _ref2.field;
335
+ return /*#__PURE__*/_jsx(CountryDropdown, _objectSpread(_objectSpread({}, field), {}, {
336
+ classes: classNameCartFormInput,
337
+ onChange: function onChange(val) {
338
+ setValue(inputName('country'), val);
339
+ setValue(inputName('state'), '');
340
+ field.onChange(val);
341
+ onChangeCountryState();
342
+ },
343
+ valueType: "short"
344
+ }));
345
+ }
346
+ })]
347
+ })
348
+ }), /*#__PURE__*/_jsx("div", {
349
+ className: classNameCartRowColumn,
350
+ children: /*#__PURE__*/_jsxs("div", {
351
+ className: classNameCartFormGroup,
352
+ children: [/*#__PURE__*/_jsx("label", {
353
+ children: "State / Region"
354
+ }), /*#__PURE__*/_jsx(Controller, {
355
+ name: inputName('state'),
356
+ control: control,
357
+ defaultValue: defaultAddress && defaultAddress.state,
358
+ render: function render(_ref3) {
359
+ var field = _ref3.field;
360
+ return /*#__PURE__*/_jsx(RegionDropdown, _objectSpread(_objectSpread({}, field), {}, {
361
+ countryValueType: "short",
362
+ country: selectedCountry,
363
+ classes: classNameCartFormInput,
364
+ onChange: function onChange(val) {
365
+ setValue(inputName('state'), val);
366
+ field.onChange(val);
367
+ onChangeCountryState();
368
+ },
369
+ valueType: "short"
370
+ }));
371
+ }
372
+ })]
373
+ })
374
+ })]
375
+ })]
376
+ });
377
+ return /*#__PURE__*/_jsxs(_Fragment, {
378
+ children: [/*#__PURE__*/_jsxs("div", {
379
+ className: classNameCartFormGroup,
380
+ children: [/*#__PURE__*/_jsx("label", {
381
+ children: labelGeoSuggest
382
+ }), /*#__PURE__*/_jsxs("div", {
383
+ className: "merchi-cart-address-search",
384
+ style: {
385
+ position: 'relative'
386
+ },
387
+ children: [/*#__PURE__*/_jsx("input", {
388
+ autoComplete: "new-password",
389
+ ref: inputRef,
390
+ type: "text",
391
+ name: "address-suggestion",
392
+ className: classNameCartFormInput,
393
+ placeholder: placeholder,
394
+ value: inputValue,
395
+ onChange: handleInputChange,
396
+ onKeyDown: handleKeyDown,
397
+ onBlur: handleInputBlur,
398
+ onFocus: handleInputFocus,
399
+ style: {
400
+ paddingRight: loading || inputValue ? '40px' : undefined
401
+ }
402
+ }), loading && /*#__PURE__*/_jsx("div", {
403
+ className: "merchi-cart-address-search__spinner",
404
+ style: {
405
+ position: 'absolute',
406
+ right: '10px',
407
+ top: '50%',
408
+ transform: 'translateY(-50%)'
409
+ },
410
+ children: /*#__PURE__*/_jsx(FontAwesomeIcon, {
411
+ icon: faSpinner,
412
+ spin: true
413
+ })
414
+ }), inputValue && !loading && /*#__PURE__*/_jsx("button", {
415
+ type: "button",
416
+ className: "btn btn-sm merchi-cart-address-search__clear",
417
+ style: {
418
+ position: 'absolute',
419
+ right: '5px',
420
+ top: '50%',
421
+ transform: 'translateY(-50%)',
422
+ border: 'none',
423
+ background: 'transparent',
424
+ padding: '2px 5px'
425
+ },
426
+ onClick: clearInput,
427
+ children: /*#__PURE__*/_jsx(FontAwesomeIcon, {
428
+ icon: faTimes
429
+ })
430
+ }), showSuggestions && suggestions.length > 0 && /*#__PURE__*/_jsx("div", {
431
+ ref: suggestionsRef,
432
+ className: classNameCartGoogleSuggestList,
433
+ role: "listbox",
434
+ children: suggestions.map(function (suggestion, index) {
435
+ var _suggestion$structure, _suggestion$structure2;
436
+ return /*#__PURE__*/_jsxs("div", {
437
+ className: "".concat(classNameCartGoogleSuggestListItem).concat(index === selectedIndex ? ' active' : ''),
438
+ role: "option",
439
+ onMouseDown: function onMouseDown(e) {
440
+ e.preventDefault();
441
+ handleSuggestionSelect(suggestion);
442
+ },
443
+ onMouseEnter: function onMouseEnter() {
444
+ return setSelectedIndex(index);
445
+ },
446
+ children: [/*#__PURE__*/_jsx("strong", {
447
+ children: ((_suggestion$structure = suggestion.structuredFormatting) === null || _suggestion$structure === void 0 ? void 0 : _suggestion$structure.main_text) || suggestion.description
448
+ }), ((_suggestion$structure2 = suggestion.structuredFormatting) === null || _suggestion$structure2 === void 0 ? void 0 : _suggestion$structure2.secondary_text) && /*#__PURE__*/_jsx("div", {
449
+ className: "text-muted small",
450
+ children: suggestion.structuredFormatting.secondary_text
451
+ })]
452
+ }, suggestion.placeId);
453
+ })
454
+ })]
455
+ })]
456
+ }), /*#__PURE__*/_jsx(Collapse, {
457
+ isOpen: addressFieldsOpen,
458
+ children: addressForm
459
+ }), /*#__PURE__*/_jsxs("div", {
460
+ className: "d-flex align-items-center",
461
+ children: [hasErrors && /*#__PURE__*/_jsxs("div", {
462
+ className: "text-danger",
463
+ children: [/*#__PURE__*/_jsx(FontAwesomeIcon, {
464
+ icon: faExclamationTriangle
465
+ }), " Invalid address!"]
466
+ }), /*#__PURE__*/_jsxs("a", {
467
+ className: "ml-auto btn btn-sm btn-link ".concat(hasErrors ? 'text-danger' : ''),
468
+ onClick: toggleAddressFieldsOpen,
469
+ children: [/*#__PURE__*/_jsx(FontAwesomeIcon, {
470
+ icon: addressFieldsOpen ? faTimes : faEdit
471
+ }), ' ', addressFieldsOpen ? 'Close' : 'Edit fields']
472
+ })]
473
+ })]
474
+ });
475
+ }
476
+ export default InputsAddress;
@@ -0,0 +1,8 @@
1
+ import FormCustomerNew from "./FormNewCustomer";
2
+ import FormReturningCustomer from "./FormReturningCustomer";
3
+ import FormShipmentAddressAndNotes, { ActiveFormShipmentAddressAndNotes } from "./FormShipmentAddressAndNotes";
4
+ import FormSquarePayment from "./FormSquarePayment";
5
+ import FormStripePayment from "./FormStripePayment";
6
+ import FormWhatsappCustomer from "./FormWhatsappCustomer";
7
+ import CustomerCheckoutMethodTabs from "../components/CustomerCheckoutMethodTabs";
8
+ export { ActiveFormShipmentAddressAndNotes, CustomerCheckoutMethodTabs, FormCustomerNew, FormReturningCustomer, FormShipmentAddressAndNotes, FormSquarePayment, FormStripePayment, FormWhatsappCustomer };
package/esm/index.js ADDED
@@ -0,0 +1,13 @@
1
+ import Cart, { CartComponents } from './Cart';
2
+ import { MerchiCartModal, MerchiShoppingCartModal } from './modals';
3
+ import { ButtonOpenCart, ButtonListWrappedOpenCart } from './buttons/ButtonOpenCartMerchiCartModal';
4
+ import * as components from './components';
5
+ import CartProvider, { useCartContext } from './CartProvider';
6
+ import CartAlert from './CartAlert';
7
+ import CartHeader from './CartHeader';
8
+ import CartTotals from './CartTotals';
9
+ import * as buttons from './buttons';
10
+ import * as forms from './forms';
11
+ import * as panels from './panels';
12
+ import * as utilities from './utilities';
13
+ export { buttons, ButtonOpenCart, ButtonListWrappedOpenCart, Cart, CartComponents, CartAlert, CartHeader, CartProvider, CartTotals, components, forms, MerchiCartModal, MerchiShoppingCartModal, panels, useCartContext, utilities };
package/esm/modals.js ADDED
@@ -0,0 +1,51 @@
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 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; }
3
+ 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; }
4
+ 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; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6
+ 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); }
7
+ import { CartComponents } from './Cart';
8
+ import { Modal } from 'reactstrap';
9
+ import { ButtonListWrappedOpenCart } from './buttons/ButtonOpenCartMerchiCartModal';
10
+ import CartProvider, { useCartContext } from './CartProvider';
11
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
12
+ function CartModal(props) {
13
+ var _useCartContext = useCartContext(),
14
+ isCartModalOpen = _useCartContext.isCartModalOpen,
15
+ toggleCartModal = _useCartContext.toggleCartModal;
16
+ var _props$cartButtonWrap = props.cartButtonWrappedInContainer,
17
+ cartButtonWrappedInContainer = _props$cartButtonWrap === void 0 ? true : _props$cartButtonWrap,
18
+ footer = props.footer,
19
+ listContainerClass = props.listContainerClass,
20
+ listItemClass = props.listItemClass,
21
+ _props$showOpenCartBu = props.showOpenCartButton,
22
+ showOpenCartButton = _props$showOpenCartBu === void 0 ? true : _props$showOpenCartBu,
23
+ _props$size = props.size,
24
+ size = _props$size === void 0 ? 'xl' : _props$size;
25
+ return /*#__PURE__*/_jsxs(_Fragment, {
26
+ children: [showOpenCartButton && /*#__PURE__*/_jsx(ButtonListWrappedOpenCart, {
27
+ cartButtonWrappedInContainer: cartButtonWrappedInContainer,
28
+ listContainerClass: listContainerClass,
29
+ listItemClass: listItemClass
30
+ }), /*#__PURE__*/_jsx(Modal, {
31
+ size: size,
32
+ className: "m-auto",
33
+ isOpen: isCartModalOpen,
34
+ toggle: toggleCartModal,
35
+ children: /*#__PURE__*/_jsx(CartComponents, {
36
+ footer: footer
37
+ })
38
+ })]
39
+ });
40
+ }
41
+ export function MerchiCartModal(props) {
42
+ return /*#__PURE__*/_jsx(CartProvider, _objectSpread(_objectSpread({}, props), {}, {
43
+ children: /*#__PURE__*/_jsx(CartModal, _objectSpread({}, props))
44
+ }));
45
+ }
46
+ export function MerchiShoppingCartModal(props) {
47
+ var storeId = props.storeId;
48
+ return /*#__PURE__*/_jsx(MerchiCartModal, _objectSpread(_objectSpread({}, props), {}, {
49
+ domainId: storeId
50
+ }));
51
+ }
@@ -0,0 +1,49 @@
1
+ import CartItemRow from '../components/CartItemRow';
2
+ import { tabIdItems } from '../utilities/tabs';
3
+ import { CartTableContainer, CartTabPanel, NoCartItems, Table } from '../components';
4
+ import { useCartContext } from '../CartProvider';
5
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
+ function PanelCartItems() {
7
+ var _useCartContext = useCartContext(),
8
+ cart = _useCartContext.cart;
9
+ var cartItems = cart.cartItems ? cart.cartItems : [];
10
+ var hasItems = cartItems.length > 0;
11
+ return /*#__PURE__*/_jsx(CartTabPanel, {
12
+ tabId: tabIdItems,
13
+ children: /*#__PURE__*/_jsx("div", {
14
+ children: hasItems ? /*#__PURE__*/_jsx(CartTableContainer, {
15
+ children: /*#__PURE__*/_jsxs(Table, {
16
+ children: [/*#__PURE__*/_jsx("thead", {
17
+ children: /*#__PURE__*/_jsxs("tr", {
18
+ children: [/*#__PURE__*/_jsx("th", {
19
+ scope: "col",
20
+ className: "merchi-cart-item-table-head",
21
+ children: "Product"
22
+ }), /*#__PURE__*/_jsx("th", {
23
+ scope: "col",
24
+ className: "merchi-cart-item-table-head-right",
25
+ children: "Quantity"
26
+ }), /*#__PURE__*/_jsx("th", {
27
+ scope: "col",
28
+ className: "merchi-cart-item-table-head-right",
29
+ children: "Price"
30
+ }), /*#__PURE__*/_jsx("th", {
31
+ scope: "col",
32
+ className: "merchi-cart-item-table-head-right",
33
+ children: "Actions"
34
+ })]
35
+ })
36
+ }), /*#__PURE__*/_jsx("tbody", {
37
+ children: cartItems.map(function (cartItem, index) {
38
+ return /*#__PURE__*/_jsx(CartItemRow, {
39
+ cartItem: cartItem,
40
+ index: index
41
+ }, cartItem.id);
42
+ })
43
+ })]
44
+ })
45
+ }) : /*#__PURE__*/_jsx(NoCartItems, {})
46
+ })
47
+ });
48
+ }
49
+ export default PanelCartItems;