@commercelayer/react-components 3.0.0-beta.7 → 3.0.1

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 (417) hide show
  1. package/README.md +1 -1
  2. package/{dist → lib}/components/AddToCartButton.d.ts +20 -17
  3. package/lib/components/AddToCartButton.js +1 -0
  4. package/{dist → lib}/components/Address.d.ts +13 -12
  5. package/lib/components/Address.js +1 -0
  6. package/{dist → lib}/components/AddressCountrySelector.d.ts +9 -9
  7. package/lib/components/AddressCountrySelector.js +1 -0
  8. package/{dist → lib}/components/AddressField.d.ts +15 -15
  9. package/lib/components/AddressField.js +1 -0
  10. package/{dist → lib}/components/AddressInput.d.ts +7 -7
  11. package/lib/components/AddressInput.js +1 -0
  12. package/lib/components/AddressStateSelector.d.ts +11 -0
  13. package/lib/components/AddressStateSelector.js +1 -0
  14. package/{dist → lib}/components/AddressesContainer.d.ts +7 -7
  15. package/lib/components/AddressesContainer.js +1 -0
  16. package/lib/components/AdjustmentAmount.d.ts +4 -0
  17. package/lib/components/AdjustmentAmount.js +1 -0
  18. package/lib/components/AdyenPayment.d.ts +25 -0
  19. package/lib/components/AdyenPayment.js +1 -0
  20. package/{dist → lib}/components/AvailabilityContainer.d.ts +7 -7
  21. package/lib/components/AvailabilityContainer.js +1 -0
  22. package/{dist → lib}/components/AvailabilityTemplate.d.ts +15 -16
  23. package/lib/components/AvailabilityTemplate.js +1 -0
  24. package/{dist → lib}/components/BillingAddressContainer.d.ts +6 -6
  25. package/lib/components/BillingAddressContainer.js +1 -0
  26. package/{dist → lib}/components/BillingAddressForm.d.ts +8 -8
  27. package/lib/components/BillingAddressForm.js +1 -0
  28. package/{dist → lib}/components/BraintreePayment.d.ts +30 -19
  29. package/lib/components/BraintreePayment.js +1 -0
  30. package/{dist → lib}/components/CheckoutLink.d.ts +11 -11
  31. package/lib/components/CheckoutLink.js +1 -0
  32. package/{dist → lib}/components/CommerceLayer.d.ts +8 -9
  33. package/lib/components/CommerceLayer.js +1 -0
  34. package/{dist → lib}/components/CustomerContainer.d.ts +7 -7
  35. package/lib/components/CustomerContainer.js +1 -0
  36. package/{dist → lib}/components/CustomerInput.d.ts +11 -11
  37. package/lib/components/CustomerInput.js +1 -0
  38. package/{dist → lib}/components/DeliveryLeadTime.d.ts +10 -10
  39. package/lib/components/DeliveryLeadTime.js +1 -0
  40. package/{dist → lib}/components/DiscountAmount.d.ts +4 -4
  41. package/lib/components/DiscountAmount.js +1 -0
  42. package/{dist → lib}/components/Errors.d.ts +5 -5
  43. package/lib/components/Errors.js +1 -0
  44. package/{dist → lib}/components/ExternalFunction.d.ts +7 -7
  45. package/lib/components/ExternalFunction.js +1 -0
  46. package/{dist → lib}/components/GiftCard.d.ts +8 -8
  47. package/lib/components/GiftCard.js +1 -0
  48. package/{dist → lib}/components/GiftCardAmount.d.ts +4 -4
  49. package/lib/components/GiftCardAmount.js +1 -0
  50. package/{dist → lib}/components/GiftCardContainer.d.ts +6 -6
  51. package/lib/components/GiftCardContainer.js +1 -0
  52. package/{dist → lib}/components/GiftCardCurrencySelector.d.ts +7 -7
  53. package/lib/components/GiftCardCurrencySelector.js +1 -0
  54. package/{dist → lib}/components/GiftCardInput.d.ts +7 -7
  55. package/lib/components/GiftCardInput.js +1 -0
  56. package/{dist → lib}/components/GiftCardOrCouponCode.d.ts +13 -13
  57. package/lib/components/GiftCardOrCouponCode.js +1 -0
  58. package/{dist → lib}/components/GiftCardOrCouponForm.d.ts +10 -10
  59. package/lib/components/GiftCardOrCouponForm.js +1 -0
  60. package/{dist → lib}/components/GiftCardOrCouponInput.d.ts +8 -8
  61. package/lib/components/GiftCardOrCouponInput.js +1 -0
  62. package/{dist → lib}/components/GiftCardOrCouponRemoveButton.d.ts +16 -16
  63. package/lib/components/GiftCardOrCouponRemoveButton.js +1 -0
  64. package/{dist → lib}/components/GiftCardOrCouponSubmit.d.ts +9 -9
  65. package/lib/components/GiftCardOrCouponSubmit.js +1 -0
  66. package/{dist → lib}/components/GiftCardRecipient.d.ts +0 -0
  67. package/lib/components/GiftCardRecipient.js +1 -0
  68. package/{dist → lib}/components/GiftCardRecipientInput.d.ts +0 -0
  69. package/lib/components/GiftCardRecipientInput.js +1 -0
  70. package/{dist → lib}/components/ItemContainer.d.ts +11 -11
  71. package/lib/components/ItemContainer.js +1 -0
  72. package/{dist → lib}/components/LineItem.d.ts +8 -8
  73. package/lib/components/LineItem.js +1 -0
  74. package/{dist → lib}/components/LineItemAmount.d.ts +7 -7
  75. package/lib/components/LineItemAmount.js +1 -0
  76. package/lib/components/LineItemCode.d.ts +12 -0
  77. package/lib/components/LineItemCode.js +1 -0
  78. package/lib/components/LineItemImage.d.ts +16 -0
  79. package/lib/components/LineItemImage.js +1 -0
  80. package/lib/components/LineItemName.d.ts +11 -0
  81. package/lib/components/LineItemName.js +1 -0
  82. package/{dist → lib}/components/LineItemOption.d.ts +19 -19
  83. package/lib/components/LineItemOption.js +1 -0
  84. package/{dist → lib}/components/LineItemOptions.d.ts +14 -14
  85. package/lib/components/LineItemOptions.js +1 -0
  86. package/{dist → lib}/components/LineItemQuantity.d.ts +14 -14
  87. package/lib/components/LineItemQuantity.js +1 -0
  88. package/{dist → lib}/components/LineItemRemoveLink.d.ts +12 -12
  89. package/lib/components/LineItemRemoveLink.js +1 -0
  90. package/{dist → lib}/components/LineItemsContainer.d.ts +8 -8
  91. package/lib/components/LineItemsContainer.js +1 -0
  92. package/{dist → lib}/components/LineItemsCount.d.ts +12 -10
  93. package/lib/components/LineItemsCount.js +1 -0
  94. package/lib/components/LineItemsEmpty.d.ts +12 -0
  95. package/lib/components/LineItemsEmpty.js +1 -0
  96. package/{dist → lib}/components/MetadataInput.d.ts +5 -5
  97. package/lib/components/MetadataInput.js +1 -0
  98. package/{dist → lib}/components/OrderContainer.d.ts +11 -10
  99. package/lib/components/OrderContainer.js +1 -0
  100. package/{dist → lib}/components/OrderNumber.d.ts +5 -5
  101. package/lib/components/OrderNumber.js +1 -0
  102. package/{dist → lib}/components/OrderStorage.d.ts +8 -8
  103. package/lib/components/OrderStorage.js +1 -0
  104. package/lib/components/PaymentGateway.d.ts +16 -0
  105. package/lib/components/PaymentGateway.js +1 -0
  106. package/{dist → lib}/components/PaymentMethod.d.ts +16 -16
  107. package/lib/components/PaymentMethod.js +1 -0
  108. package/{dist → lib}/components/PaymentMethodAmount.d.ts +4 -4
  109. package/lib/components/PaymentMethodAmount.js +1 -0
  110. package/{dist → lib}/components/PaymentMethodName.d.ts +9 -9
  111. package/lib/components/PaymentMethodName.js +1 -0
  112. package/{dist → lib}/components/PaymentMethodPrice.d.ts +9 -9
  113. package/lib/components/PaymentMethodPrice.js +1 -0
  114. package/{dist → lib}/components/PaymentMethodRadioButton.d.ts +11 -11
  115. package/lib/components/PaymentMethodRadioButton.js +1 -0
  116. package/{dist → lib}/components/PaymentMethodsContainer.d.ts +8 -8
  117. package/lib/components/PaymentMethodsContainer.js +1 -0
  118. package/{dist → lib}/components/PaymentSource.d.ts +19 -18
  119. package/lib/components/PaymentSource.js +1 -0
  120. package/{dist → lib}/components/PaymentSourceBrandIcon.d.ts +15 -15
  121. package/lib/components/PaymentSourceBrandIcon.js +1 -0
  122. package/{dist → lib}/components/PaymentSourceBrandName.d.ts +12 -12
  123. package/lib/components/PaymentSourceBrandName.js +1 -0
  124. package/{dist → lib}/components/PaymentSourceDetail.d.ts +12 -12
  125. package/lib/components/PaymentSourceDetail.js +1 -0
  126. package/{dist → lib}/components/PaymentSourceEditButton.d.ts +9 -9
  127. package/lib/components/PaymentSourceEditButton.js +1 -0
  128. package/{dist → lib}/components/PaypalPayment.d.ts +12 -12
  129. package/lib/components/PaypalPayment.js +1 -0
  130. package/{dist → lib}/components/PlaceOrderButton.d.ts +12 -12
  131. package/lib/components/PlaceOrderButton.js +1 -0
  132. package/{dist → lib}/components/PlaceOrderContainer.d.ts +8 -8
  133. package/lib/components/PlaceOrderContainer.js +1 -0
  134. package/{dist → lib}/components/Price.d.ts +16 -14
  135. package/lib/components/Price.js +1 -0
  136. package/{dist → lib}/components/PricesContainer.d.ts +11 -11
  137. package/lib/components/PricesContainer.js +1 -0
  138. package/{dist → lib}/components/PrivacyAndTermsCheckbox.d.ts +4 -4
  139. package/lib/components/PrivacyAndTermsCheckbox.js +1 -0
  140. package/{dist → lib}/components/QuantitySelector.d.ts +17 -17
  141. package/lib/components/QuantitySelector.js +1 -0
  142. package/{dist → lib}/components/SaveAddressesButton.d.ts +10 -10
  143. package/lib/components/SaveAddressesButton.js +1 -0
  144. package/{dist → lib}/components/SaveCustomerButton.d.ts +13 -13
  145. package/lib/components/SaveCustomerButton.js +1 -0
  146. package/{dist → lib}/components/Shipment.d.ts +8 -8
  147. package/lib/components/Shipment.js +1 -0
  148. package/{dist → lib}/components/ShipmentField.d.ts +12 -12
  149. package/lib/components/ShipmentField.js +1 -0
  150. package/{dist → lib}/components/ShipmentsContainer.d.ts +6 -6
  151. package/lib/components/ShipmentsContainer.js +1 -0
  152. package/{dist → lib}/components/ShippingAddressContainer.d.ts +6 -6
  153. package/lib/components/ShippingAddressContainer.js +1 -0
  154. package/{dist → lib}/components/ShippingAddressForm.d.ts +8 -8
  155. package/lib/components/ShippingAddressForm.js +1 -0
  156. package/{dist → lib}/components/ShippingAmount.d.ts +4 -4
  157. package/lib/components/ShippingAmount.js +1 -0
  158. package/{dist → lib}/components/ShippingMethod.d.ts +8 -8
  159. package/lib/components/ShippingMethod.js +1 -0
  160. package/{dist → lib}/components/ShippingMethodName.d.ts +11 -7
  161. package/lib/components/ShippingMethodName.js +1 -0
  162. package/{dist → lib}/components/ShippingMethodPrice.d.ts +13 -13
  163. package/lib/components/ShippingMethodPrice.js +1 -0
  164. package/lib/components/ShippingMethodRadioButton.d.ts +13 -0
  165. package/lib/components/ShippingMethodRadioButton.js +1 -0
  166. package/{dist → lib}/components/SkuList.d.ts +7 -7
  167. package/lib/components/SkuList.js +1 -0
  168. package/{dist → lib}/components/SkuListsContainer.d.ts +6 -6
  169. package/lib/components/SkuListsContainer.js +1 -0
  170. package/{dist → lib}/components/SkuOption.d.ts +7 -7
  171. package/lib/components/SkuOption.js +1 -0
  172. package/{dist → lib}/components/SkuOptionInput.d.ts +5 -5
  173. package/lib/components/SkuOptionInput.js +1 -0
  174. package/{dist → lib}/components/SkuOptionsContainer.d.ts +7 -7
  175. package/lib/components/SkuOptionsContainer.js +1 -0
  176. package/{dist → lib}/components/StockTransfer.d.ts +6 -6
  177. package/lib/components/StockTransfer.js +1 -0
  178. package/{dist → lib}/components/StockTransferField.d.ts +9 -9
  179. package/lib/components/StockTransferField.js +1 -0
  180. package/{dist → lib}/components/StripePayment.d.ts +18 -18
  181. package/lib/components/StripePayment.js +1 -0
  182. package/{dist → lib}/components/SubTotalAmount.d.ts +4 -4
  183. package/lib/components/SubTotalAmount.js +1 -0
  184. package/{dist → lib}/components/SubmitButton.d.ts +9 -9
  185. package/lib/components/SubmitButton.js +1 -0
  186. package/{dist → lib}/components/TaxesAmount.d.ts +4 -4
  187. package/lib/components/TaxesAmount.js +1 -0
  188. package/{dist → lib}/components/TotalAmount.d.ts +4 -4
  189. package/lib/components/TotalAmount.js +1 -0
  190. package/{dist → lib}/components/VariantSelector.d.ts +29 -27
  191. package/lib/components/VariantSelector.js +1 -0
  192. package/{dist → lib}/components/VariantsContainer.d.ts +8 -8
  193. package/lib/components/VariantsContainer.js +1 -0
  194. package/{dist → lib}/components/WireTransferPayment.d.ts +10 -10
  195. package/lib/components/WireTransferPayment.js +1 -0
  196. package/lib/components/gateways/AdyenGateway.d.ts +5 -0
  197. package/lib/components/gateways/AdyenGateway.js +1 -0
  198. package/lib/components/gateways/BraintreeGateway.d.ts +5 -0
  199. package/lib/components/gateways/BraintreeGateway.js +1 -0
  200. package/lib/components/gateways/PaypalGateway.d.ts +5 -0
  201. package/lib/components/gateways/PaypalGateway.js +1 -0
  202. package/lib/components/gateways/StripeGateway.d.ts +5 -0
  203. package/lib/components/gateways/StripeGateway.js +1 -0
  204. package/lib/components/gateways/WireTransferGateway.d.ts +5 -0
  205. package/lib/components/gateways/WireTransferGateway.js +1 -0
  206. package/lib/components/utils/AddressCardsTemplate.d.ts +27 -0
  207. package/lib/components/utils/AddressCardsTemplate.js +1 -0
  208. package/{dist → lib}/components/utils/BaseField.d.ts +8 -8
  209. package/lib/components/utils/BaseField.js +1 -0
  210. package/lib/components/utils/BaseInput.d.ts +5 -0
  211. package/lib/components/utils/BaseInput.js +1 -0
  212. package/{dist → lib}/components/utils/BaseOrderPrice.d.ts +6 -6
  213. package/lib/components/utils/BaseOrderPrice.js +1 -0
  214. package/{dist → lib}/components/utils/BaseSelect.d.ts +5 -5
  215. package/lib/components/utils/BaseSelect.js +1 -0
  216. package/{dist → lib}/components/utils/Parent.d.ts +8 -8
  217. package/lib/components/utils/Parent.js +1 -0
  218. package/lib/components/utils/PaymentCardsTemplate.d.ts +23 -0
  219. package/lib/components/utils/PaymentCardsTemplate.js +1 -0
  220. package/{dist → lib}/components/utils/PriceTemplate.d.ts +8 -8
  221. package/lib/components/utils/PriceTemplate.js +1 -0
  222. package/{dist → lib}/components/utils/VariantTemplate.d.ts +36 -34
  223. package/lib/components/utils/VariantTemplate.js +1 -0
  224. package/{dist → lib}/components/utils/getAllErrors.d.ts +17 -17
  225. package/lib/components/utils/getAllErrors.js +1 -0
  226. package/{dist → lib}/config/components.d.ts +892 -865
  227. package/lib/config/components.js +1 -0
  228. package/lib/config/currency.d.ts +5 -0
  229. package/lib/config/currency.js +1 -0
  230. package/{dist → lib}/context/AddressChildrenContext.d.ts +7 -7
  231. package/lib/context/AddressChildrenContext.js +1 -0
  232. package/{dist → lib}/context/AddressContext.d.ts +17 -16
  233. package/lib/context/AddressContext.js +1 -0
  234. package/{dist → lib}/context/AvailabilityContext.d.ts +3 -3
  235. package/lib/context/AvailabilityContext.js +1 -0
  236. package/{dist → lib}/context/BillingAddressContext.d.ts +12 -12
  237. package/lib/context/BillingAddressContext.js +1 -0
  238. package/{dist → lib}/context/BillingAddressFormContext.d.ts +18 -16
  239. package/lib/context/BillingAddressFormContext.js +1 -0
  240. package/{dist → lib}/context/CommerceLayerContext.d.ts +7 -8
  241. package/lib/context/CommerceLayerContext.js +1 -0
  242. package/{dist → lib}/context/CouponAndGiftCardFormContext.d.ts +7 -7
  243. package/lib/context/CouponAndGiftCardFormContext.js +1 -0
  244. package/{dist → lib}/context/CustomerContext.d.ts +16 -14
  245. package/lib/context/CustomerContext.js +1 -0
  246. package/{dist → lib}/context/ExternalFunctionContext.d.ts +12 -12
  247. package/lib/context/ExternalFunctionContext.js +1 -0
  248. package/{dist → lib}/context/GiftCardContext.d.ts +11 -11
  249. package/lib/context/GiftCardContext.js +1 -0
  250. package/{dist → lib}/context/ItemContext.d.ts +13 -13
  251. package/lib/context/ItemContext.js +1 -0
  252. package/lib/context/LineItemChildrenContext.d.ts +9 -0
  253. package/lib/context/LineItemChildrenContext.js +1 -0
  254. package/{dist → lib}/context/LineItemContext.d.ts +8 -8
  255. package/lib/context/LineItemContext.js +1 -0
  256. package/{dist → lib}/context/LineItemOptionChildrenContext.d.ts +8 -8
  257. package/lib/context/LineItemOptionChildrenContext.js +1 -0
  258. package/lib/context/OrderContext.d.ts +26 -0
  259. package/lib/context/OrderContext.js +1 -0
  260. package/{dist → lib}/context/OrderStorageContext.d.ts +11 -11
  261. package/lib/context/OrderStorageContext.js +1 -0
  262. package/{dist → lib}/context/PaymentMethodChildrenContext.d.ts +10 -10
  263. package/lib/context/PaymentMethodChildrenContext.js +1 -0
  264. package/{dist → lib}/context/PaymentMethodContext.d.ts +23 -20
  265. package/lib/context/PaymentMethodContext.js +1 -0
  266. package/{dist → lib}/context/PaymentSourceContext.d.ts +14 -14
  267. package/lib/context/PaymentSourceContext.js +1 -0
  268. package/{dist → lib}/context/PlaceOrderContext.d.ts +16 -16
  269. package/lib/context/PlaceOrderContext.js +1 -0
  270. package/{dist → lib}/context/PricesContext.d.ts +7 -7
  271. package/lib/context/PricesContext.js +1 -0
  272. package/lib/context/ShipmentChildrenContext.d.ts +13 -0
  273. package/lib/context/ShipmentChildrenContext.js +1 -0
  274. package/{dist → lib}/context/ShipmentContext.d.ts +12 -12
  275. package/lib/context/ShipmentContext.js +1 -0
  276. package/{dist → lib}/context/ShippingAddressContext.d.ts +10 -10
  277. package/lib/context/ShippingAddressContext.js +1 -0
  278. package/{dist → lib}/context/ShippingAddressFormContext.d.ts +4 -4
  279. package/lib/context/ShippingAddressFormContext.js +1 -0
  280. package/lib/context/ShippingMethodChildrenContext.d.ts +10 -0
  281. package/lib/context/ShippingMethodChildrenContext.js +1 -0
  282. package/lib/context/SkuListsContext.d.ts +6 -0
  283. package/lib/context/SkuListsContext.js +1 -0
  284. package/{dist → lib}/context/SkuOptionChildrenContext.d.ts +8 -8
  285. package/lib/context/SkuOptionChildrenContext.js +1 -0
  286. package/{dist → lib}/context/SkuOptionsContext.d.ts +3 -3
  287. package/lib/context/SkuOptionsContext.js +1 -0
  288. package/{dist → lib}/context/StockTransferChildrenContext.d.ts +7 -7
  289. package/lib/context/StockTransferChildrenContext.js +1 -0
  290. package/{dist → lib}/context/VariantsContext.d.ts +3 -3
  291. package/lib/context/VariantsContext.js +1 -0
  292. package/lib/index.d.ts +99 -0
  293. package/lib/index.js +1 -0
  294. package/{dist → lib}/reducers/AddressReducer.d.ts +58 -52
  295. package/lib/reducers/AddressReducer.js +1 -0
  296. package/lib/reducers/AvailabilityReducer.d.ts +53 -0
  297. package/lib/reducers/AvailabilityReducer.js +1 -0
  298. package/{dist → lib}/reducers/BillingAddressReducer.d.ts +31 -32
  299. package/lib/reducers/BillingAddressReducer.js +1 -0
  300. package/{dist → lib}/reducers/CustomerReducer.d.ts +50 -60
  301. package/lib/reducers/CustomerReducer.js +1 -0
  302. package/{dist → lib}/reducers/GiftCardReducer.d.ts +76 -75
  303. package/lib/reducers/GiftCardReducer.js +1 -0
  304. package/{dist → lib}/reducers/ItemReducer.d.ts +69 -68
  305. package/lib/reducers/ItemReducer.js +1 -0
  306. package/{dist → lib}/reducers/LineItemReducer.d.ts +52 -52
  307. package/lib/reducers/LineItemReducer.js +1 -0
  308. package/lib/reducers/OrderReducer.d.ts +131 -0
  309. package/lib/reducers/OrderReducer.js +1 -0
  310. package/{dist → lib}/reducers/PaymentMethodReducer.d.ts +105 -95
  311. package/lib/reducers/PaymentMethodReducer.js +1 -0
  312. package/{dist → lib}/reducers/PlaceOrderReducer.d.ts +52 -50
  313. package/lib/reducers/PlaceOrderReducer.js +1 -0
  314. package/{dist → lib}/reducers/PriceReducer.d.ts +44 -45
  315. package/lib/reducers/PriceReducer.js +1 -0
  316. package/{dist → lib}/reducers/ShipmentReducer.d.ts +40 -37
  317. package/lib/reducers/ShipmentReducer.js +1 -0
  318. package/{dist → lib}/reducers/ShippingAddressReducer.d.ts +32 -31
  319. package/lib/reducers/ShippingAddressReducer.js +1 -0
  320. package/{dist → lib}/reducers/SkuListsReducer.d.ts +21 -22
  321. package/lib/reducers/SkuListsReducer.js +1 -0
  322. package/{dist → lib}/reducers/SkuOptionsReducer.d.ts +26 -26
  323. package/lib/reducers/SkuOptionsReducer.js +1 -0
  324. package/{dist → lib}/reducers/VariantReducer.d.ts +71 -71
  325. package/lib/reducers/VariantReducer.js +1 -0
  326. package/{dist → lib}/typings/errors.d.ts +42 -40
  327. package/lib/typings/errors.js +1 -0
  328. package/{dist → lib}/typings/index.d.ts +126 -150
  329. package/lib/typings/index.js +1 -0
  330. package/{dist → lib}/utils/PropsType.d.ts +33 -33
  331. package/lib/utils/PropsType.js +1 -0
  332. package/{dist → lib}/utils/addressesManager.d.ts +28 -27
  333. package/lib/utils/addressesManager.js +1 -0
  334. package/{dist → lib}/utils/baseReducer.d.ts +3 -3
  335. package/lib/utils/baseReducer.js +1 -0
  336. package/lib/utils/browserInfo.d.ts +9 -0
  337. package/lib/utils/browserInfo.js +1 -0
  338. package/{dist → lib}/utils/childrenTypes.d.ts +9 -9
  339. package/lib/utils/childrenTypes.js +1 -0
  340. package/lib/utils/countryStateCity.d.ts +9 -0
  341. package/lib/utils/countryStateCity.js +1 -0
  342. package/{dist → lib}/utils/customMessages.d.ts +8 -8
  343. package/lib/utils/customMessages.js +1 -0
  344. package/lib/utils/customerOrderOptions.d.ts +3 -0
  345. package/lib/utils/customerOrderOptions.js +1 -0
  346. package/{dist → lib}/utils/getAmount.d.ts +9 -9
  347. package/lib/utils/getAmount.js +1 -0
  348. package/{dist → lib}/utils/getCurrentItemKey.d.ts +6 -6
  349. package/lib/utils/getCurrentItemKey.js +1 -0
  350. package/lib/utils/getErrors.d.ts +11 -0
  351. package/lib/utils/getErrors.js +1 -0
  352. package/lib/utils/getLineItemsCount.d.ts +12 -0
  353. package/lib/utils/getLineItemsCount.js +1 -0
  354. package/{dist → lib}/utils/getLoaderComponent.d.ts +3 -3
  355. package/lib/utils/getLoaderComponent.js +1 -0
  356. package/lib/utils/getPrices.d.ts +17 -0
  357. package/lib/utils/getPrices.js +1 -0
  358. package/lib/utils/getSdk.d.ts +3 -0
  359. package/lib/utils/getSdk.js +1 -0
  360. package/lib/utils/getSkus.d.ts +3 -0
  361. package/lib/utils/getSkus.js +1 -0
  362. package/lib/utils/isEmptyStates.d.ts +1 -0
  363. package/lib/utils/isEmptyStates.js +1 -0
  364. package/{dist → lib}/utils/isJSON.d.ts +1 -1
  365. package/lib/utils/isJSON.js +1 -0
  366. package/lib/utils/jwt.d.ts +27 -0
  367. package/lib/utils/jwt.js +1 -0
  368. package/lib/utils/localStorage.d.ts +17 -0
  369. package/lib/utils/localStorage.js +1 -0
  370. package/lib/utils/organization.d.ts +6 -0
  371. package/lib/utils/organization.js +1 -0
  372. package/lib/utils/paypalPayment.d.ts +3 -0
  373. package/lib/utils/paypalPayment.js +1 -0
  374. package/lib/utils/promisify.d.ts +1 -0
  375. package/lib/utils/promisify.js +1 -0
  376. package/lib/utils/shipments.d.ts +2 -0
  377. package/lib/utils/shipments.js +1 -0
  378. package/{dist → lib}/utils/validateFormFields.d.ts +20 -19
  379. package/lib/utils/validateFormFields.js +1 -0
  380. package/package.json +95 -81
  381. package/dist/components/CustomerField.d.ts +0 -10
  382. package/dist/components/LineItemImage.d.ts +0 -10
  383. package/dist/components/LineItemName.d.ts +0 -7
  384. package/dist/components/LineItemSkuCode.d.ts +0 -7
  385. package/dist/components/OrderList.d.ts +0 -26
  386. package/dist/components/OrderListRow.d.ts +0 -14
  387. package/dist/components/PaymentGateway.d.ts +0 -11
  388. package/dist/components/ShippingMethodRadioButton.d.ts +0 -9
  389. package/dist/components/utils/BaseInput.d.ts +0 -5
  390. package/dist/context/LineItemChildrenContext.d.ts +0 -7
  391. package/dist/context/OrderContext.d.ts +0 -4
  392. package/dist/context/OrderListChildrenContext.d.ts +0 -14
  393. package/dist/context/ShipmentChildrenContext.d.ts +0 -13
  394. package/dist/context/ShippingMethodChildrenContext.d.ts +0 -9
  395. package/dist/context/SkuListsContext.d.ts +0 -3
  396. package/dist/index.d.ts +0 -89
  397. package/dist/index.js +0 -8
  398. package/dist/react-components.cjs.development.js +0 -12693
  399. package/dist/react-components.cjs.development.js.map +0 -1
  400. package/dist/react-components.cjs.production.min.js +0 -2
  401. package/dist/react-components.cjs.production.min.js.map +0 -1
  402. package/dist/react-components.esm.js +0 -12597
  403. package/dist/react-components.esm.js.map +0 -1
  404. package/dist/reducers/AvailabilityReducer.d.ts +0 -40
  405. package/dist/reducers/OrderReducer.d.ts +0 -131
  406. package/dist/typings/order.d.ts +0 -120
  407. package/dist/utils/dynamicNaming.d.ts +0 -5
  408. package/dist/utils/getErrorsByCollection.d.ts +0 -11
  409. package/dist/utils/getLineItemsCount.d.ts +0 -6
  410. package/dist/utils/getPrices.d.ts +0 -18
  411. package/dist/utils/getSkus.d.ts +0 -3
  412. package/dist/utils/icons.d.ts +0 -3
  413. package/dist/utils/isDate.d.ts +0 -1
  414. package/dist/utils/localStorage.d.ts +0 -12
  415. package/dist/utils/paypalPayment.d.ts +0 -3
  416. package/dist/utils/scrollbarWidth.d.ts +0 -1
  417. package/dist/utils/shipments.d.ts +0 -5
@@ -1 +0,0 @@
1
- {"version":3,"file":"react-components.cjs.development.js","sources":["../src/components/utils/Parent.tsx","../node_modules/regenerator-runtime/runtime.js","../src/utils/baseReducer.ts","../src/utils/getErrorsByCollection.ts","../src/reducers/OrderReducer.ts","../src/context/OrderContext.ts","../src/context/ItemContext.ts","../src/utils/getCurrentItemKey.ts","../src/utils/childrenTypes.ts","../src/typings/index.ts","../src/typings/errors.ts","../src/config/components.ts","../src/reducers/SkuListsReducer.ts","../src/context/SkuListsContext.ts","../src/context/ExternalFunctionContext.ts","../src/components/AddToCartButton.tsx","../src/context/AddressChildrenContext.ts","../src/reducers/CustomerReducer.ts","../src/context/CustomerContext.ts","../src/context/BillingAddressContext.ts","../src/context/ShippingAddressContext.ts","../src/reducers/AddressReducer.ts","../src/context/AddressContext.ts","../src/components/Address.tsx","../src/components/utils/BaseSelect.tsx","../src/context/BillingAddressFormContext.ts","../src/context/ShippingAddressFormContext.ts","../src/components/AddressCountrySelector.tsx","../src/components/AddressField.tsx","../src/components/utils/BaseInput.tsx","../src/components/AddressInput.tsx","../src/context/CommerceLayerContext.ts","../src/components/AddressesContainer.tsx","../src/reducers/AvailabilityReducer.ts","../src/context/AvailabilityContext.ts","../src/context/LineItemChildrenContext.ts","../src/components/AvailabilityContainer.tsx","../src/components/AvailabilityTemplate.tsx","../src/reducers/BillingAddressReducer.ts","../src/components/BillingAddressContainer.tsx","../src/utils/localStorage.ts","../src/context/OrderStorageContext.ts","../src/components/BillingAddressForm.tsx","../src/components/CheckoutLink.tsx","../src/components/CommerceLayer.tsx","../src/components/CustomerContainer.tsx","../src/components/CustomerField.tsx","../src/components/CustomerInput.tsx","../src/context/ShippingMethodChildrenContext.ts","../src/components/DeliveryLeadTime.tsx","../src/utils/getAmount.ts","../src/components/utils/BaseOrderPrice.tsx","../src/components/DiscountAmount.tsx","../src/reducers/GiftCardReducer.ts","../src/context/GiftCardContext.ts","../src/utils/customMessages.ts","../src/components/utils/getAllErrors.tsx","../src/context/LineItemContext.ts","../src/utils/dynamicNaming.ts","../src/reducers/PaymentMethodReducer.ts","../src/context/PaymentMethodContext.ts","../src/context/PaymentMethodChildrenContext.ts","../src/components/Errors.tsx","../src/components/ExternalFunction.tsx","../src/utils/validateFormFields.ts","../src/components/GiftCard.tsx","../src/components/GiftCardAmount.tsx","../src/components/GiftCardContainer.tsx","../src/components/GiftCardCurrencySelector.tsx","../src/components/GiftCardInput.tsx","../src/components/GiftCardOrCouponCode.tsx","../src/context/CouponAndGiftCardFormContext.ts","../src/components/GiftCardOrCouponForm.tsx","../src/components/GiftCardOrCouponInput.tsx","../src/components/GiftCardOrCouponRemoveButton.tsx","../src/components/GiftCardOrCouponSubmit.tsx","../src/reducers/ItemReducer.ts","../src/components/ItemContainer.tsx","../src/context/ShipmentChildrenContext.ts","../src/components/LineItem.tsx","../src/components/LineItemAmount.tsx","../src/components/LineItemImage.tsx","../src/components/LineItemName.tsx","../src/context/LineItemOptionChildrenContext.ts","../src/utils/isJSON.ts","../src/components/LineItemOption.tsx","../src/components/LineItemOptions.tsx","../src/components/LineItemQuantity.tsx","../src/components/LineItemRemoveLink.tsx","../src/components/LineItemSkuCode.tsx","../src/reducers/LineItemReducer.ts","../src/components/LineItemsContainer.tsx","../src/utils/getLineItemsCount.ts","../src/components/LineItemsCount.tsx","../src/components/MetadataInput.tsx","../src/components/OrderContainer.tsx","../src/context/OrderListChildrenContext.ts","../src/utils/scrollbarWidth.ts","../src/utils/icons.tsx","../src/components/OrderList.tsx","../src/utils/isDate.ts","../src/components/OrderListRow.tsx","../src/components/utils/BaseField.tsx","../src/components/OrderNumber.tsx","../src/components/OrderStorage.tsx","../src/utils/getLoaderComponent.tsx","../src/components/PaymentMethod.tsx","../src/components/PaymentMethodAmount.tsx","../src/components/PaymentMethodName.tsx","../src/components/PaymentMethodPrice.tsx","../src/components/PaymentMethodRadioButton.tsx","../src/components/PaymentMethodsContainer.tsx","../src/context/PaymentSourceContext.ts","../src/utils/paypalPayment.ts","../src/components/PaypalPayment.tsx","../src/components/StripePayment.tsx","../src/components/WireTransferPayment.tsx","../src/components/PaymentGateway.tsx","../src/components/PaymentSource.tsx","../src/components/PaymentSourceBrandIcon.tsx","../src/components/PaymentSourceBrandName.tsx","../src/components/PaymentSourceDetail.tsx","../src/components/PaymentSourceEditButton.tsx","../src/utils/shipments.ts","../src/reducers/PlaceOrderReducer.ts","../src/context/PlaceOrderContext.ts","../src/components/PlaceOrderButton.tsx","../src/components/PlaceOrderContainer.tsx","../src/components/utils/PriceTemplate.tsx","../src/utils/getPrices.tsx","../src/reducers/PriceReducer.ts","../src/context/PricesContext.ts","../src/components/Price.tsx","../src/components/PricesContainer.tsx","../src/components/PrivacyAndTermsCheckbox.tsx","../src/components/QuantitySelector.tsx","../src/utils/addressesManager.ts","../src/components/SaveAddressesButton.tsx","../src/components/SaveCustomerButton.tsx","../src/reducers/ShipmentReducer.ts","../src/context/ShipmentContext.ts","../src/components/Shipment.tsx","../src/components/ShipmentField.tsx","../src/components/ShipmentsContainer.tsx","../src/reducers/ShippingAddressReducer.ts","../src/components/ShippingAddressContainer.tsx","../src/components/ShippingAddressForm.tsx","../src/components/ShippingAmount.tsx","../src/components/ShippingMethod.tsx","../src/components/ShippingMethodName.tsx","../src/components/ShippingMethodPrice.tsx","../src/components/ShippingMethodRadioButton.tsx","../src/components/SkuList.tsx","../src/components/SkuListsContainer.tsx","../src/context/SkuOptionChildrenContext.ts","../src/reducers/SkuOptionsReducer.ts","../src/context/SkuOptionsContext.ts","../src/components/SkuOption.tsx","../src/components/SkuOptionInput.tsx","../src/components/SkuOptionsContainer.tsx","../src/context/StockTransferChildrenContext.ts","../src/components/StockTransfer.tsx","../src/components/StockTransferField.tsx","../src/components/SubTotalAmount.tsx","../src/components/SubmitButton.tsx","../src/components/TaxesAmount.tsx","../src/components/TotalAmount.tsx","../src/components/utils/VariantTemplate.tsx","../src/utils/getSkus.ts","../src/reducers/VariantReducer.ts","../src/context/VariantsContext.ts","../src/components/VariantSelector.tsx","../src/components/VariantsContainer.tsx"],"sourcesContent":["import PropTypes, { InferProps } from 'prop-types'\nimport React, { FunctionComponent } from 'react'\n\nconst PProps = {\n children: PropTypes.func,\n}\n\nexport type ParentProps = InferProps<typeof PProps>\n\nconst Parent: FunctionComponent<ParentProps> = (props) => {\n const Child = props.children\n return Child ? <Child {...props} /> : null\n}\n\nParent.propTypes = PProps\n\nexport default Parent\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","import { BaseReducer } from '#typings'\n\nconst baseReducer: BaseReducer = (state, action, actionTypes) => {\n const actions = actionTypes\n if (actions.indexOf(action.type) !== -1) {\n const data = action.payload\n state = { ...state, ...data }\n }\n return state\n}\n\nexport default baseReducer\n","import { CodeErrorType, ResourceErrorType, BaseError } from '#typings/errors'\nimport BaseClass from '@commercelayer/js-sdk/dist/utils/BaseClass'\nimport isFunction from 'lodash/isFunction'\nimport get from 'lodash/get'\nimport isArray from 'lodash/isArray'\n\nconst ERROR_CODES: CodeErrorType[] = [\n 'FILTER_NOT_ALLOWED',\n 'FORBIDDEN',\n 'INTERNAL_SERVER_ERROR',\n 'INVALID_DATA_FORMAT',\n 'INVALID_FIELD',\n 'INVALID_FIELD_FORMAT',\n 'INVALID_FIELD_VALUE',\n 'INVALID_FILTERS_SYNTAX',\n 'INVALID_FILTER_VALUE',\n 'INVALID_INCLUDE',\n 'INVALID_LINKS_OBJECT',\n 'INVALID_PAGE_OBJECT',\n 'INVALID_PAGE_VALUE',\n 'INVALID_RESOURCE',\n 'INVALID_RESOURCE_ID',\n 'INVALID_SORT_CRITERIA',\n 'INVALID_TOKEN',\n 'KEY_NOT_INCLUDED_IN_URL',\n 'KEY_ORDER_MISMATCH',\n 'LOCKED',\n 'NOT_ACCEPTABLE',\n 'PARAM_MISSING',\n 'PARAM_NOT_ALLOWED',\n 'PAYMENT_NOT_APPROVED_FOR_EXECUTION',\n 'PAYMENT_INTENT_AUTHENTICATION_FAILURE',\n 'RECORD_NOT_FOUND',\n 'RECORD_NOT_FOUND',\n 'RELATION_EXISTS',\n 'SAVE_FAILED',\n 'TYPE_MISMATCH',\n 'UNAUTHORIZED',\n 'UNSUPPORTED_MEDIA_TYPE',\n 'VALIDATION_ERROR',\n]\n\nexport type GetErrorsByCollection = <C extends BaseClass>(\n collection: C,\n resourceType: ResourceErrorType,\n options?: {\n field?: string\n id?: string\n }\n) => BaseError[]\n\nexport interface TransformCode {\n (code: string): CodeErrorType\n}\n\nconst transformCode: TransformCode = (code) => {\n let newCode = '' as CodeErrorType\n ERROR_CODES.map((c) => {\n const checkCode: string[] = []\n const words = c.split('_')\n words.map((w) => {\n const rgx = new RegExp(`(?:s|${w})`, 'g')\n const m = code.match(rgx)\n if (m && m?.length > 0) {\n checkCode.push(m[0])\n }\n })\n if (checkCode.length === words.length) {\n newCode = c\n }\n })\n return newCode\n}\n\nfunction getErrorCodeByString<C extends string>(\n text: string,\n codes: C[]\n): C | undefined {\n let code: C | undefined\n codes?.map((c) => {\n if (text.search(c) !== -1) {\n code = c\n }\n })\n return code\n}\n\nconst getErrorsByCollection: GetErrorsByCollection = (\n collection,\n resourceType,\n options\n) => {\n const errors: BaseError[] = []\n if (isFunction(collection?.errors) && !collection?.errors().empty()) {\n collection\n .errors()\n .toArray()\n .map((error) => {\n // TODO Add function to correct different field\n if (error['field'] === 'recipientEmail') error['field'] = 'email'\n const e = {\n id: options?.id || get(collection, 'id'),\n code:\n getErrorCodeByString(error['message'], ERROR_CODES) ||\n transformCode(error['code']),\n field:\n error['field'] === 'recipientEmail'\n ? 'email'\n : options?.field || error['field'],\n resource: resourceType,\n message: error['message'],\n }\n errors.push(e)\n })\n } else if (isArray(collection)) {\n collection.map((error) => {\n errors.push({\n // id: collection['id'],\n code:\n getErrorCodeByString(error['message'], ERROR_CODES) ||\n transformCode(error['code']),\n field: error['field'] === 'recipientEmail' ? 'email' : error['field'],\n resource: resourceType,\n message: error['message'],\n })\n })\n }\n return errors\n}\n\nexport default getErrorsByCollection\n","import CLayer, { Order, OrderCollection } from '@commercelayer/js-sdk'\nimport { Dispatch } from 'react'\nimport { SetLocalOrder, DeleteLocalOrder } from '#utils/localStorage'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport baseReducer from '#utils/baseReducer'\nimport getErrorsByCollection from '#utils/getErrorsByCollection'\nimport { ItemOption, CustomLineItem } from './ItemReducer'\nimport { isEmpty, size, map } from 'lodash'\nimport { BaseMetadataObject } from '#typings/index'\nimport { BaseError } from '#typings/errors'\n\nexport interface GetOrderParams {\n clearWhenPlaced?: boolean\n config: CommerceLayerConfig\n deleteLocalOrder?: DeleteLocalOrder\n dispatch: Dispatch<OrderActions>\n id: string\n persistKey?: string\n}\n\nexport interface GetOrder {\n (params: GetOrderParams): Promise<void | OrderCollection>\n}\n\nexport interface SetOrderErrors {\n (params: { dispatch: Dispatch<OrderActions>; collection: any }): {\n success: boolean\n }\n}\n\ntype CreateOrderParams = Pick<\n AddToCartParams,\n | 'config'\n | 'dispatch'\n | 'persistKey'\n | 'state'\n | 'orderMetadata'\n | 'orderAttributes'\n | 'setLocalOrder'\n>\n\nexport interface CreateOrder {\n (params: CreateOrderParams): Promise<string>\n}\n\nexport interface AddToCartParams {\n skuCode: string\n persistKey: string\n config: CommerceLayerConfig\n dispatch: Dispatch<OrderActions>\n state: Partial<OrderState>\n skuId?: string\n quantity?: number\n option?: ItemOption\n lineItem?: CustomLineItem\n orderMetadata?: BaseMetadataObject\n orderAttributes?: Record<string, any>\n errors?: BaseError[]\n setLocalOrder?: SetLocalOrder\n}\n\nexport interface AddToCartImportParams\n extends Omit<\n AddToCartParams,\n 'skuCode' | 'skuId' | 'quantity' | 'option' | 'lineItem'\n > {\n lineItems: CustomLineItem[]\n}\n\nexport type AddToCartReturn = Promise<{\n success: boolean\n}>\n\nexport interface AddToCart {\n (params: AddToCartParams): AddToCartReturn\n}\n\nexport interface AddToCartImport {\n (params: AddToCartImportParams): AddToCartReturn\n}\n\nexport interface UnsetOrderState {\n (dispatch: Dispatch<OrderActions>): void\n}\n\nexport interface OrderPayload {\n loading?: boolean\n orderId?: string\n order?: OrderCollection\n errors?: BaseError[]\n}\n\nexport type AddToCartValues = {\n skuCode: string\n skuId?: string\n quantity?: number\n option?: ItemOption\n lineItem?: CustomLineItem\n}\n\nexport type AddToCartImportValues = Pick<AddToCartImportParams, 'lineItems'>\n\nexport type getOrderContext = (\n id: string\n) => Promise<undefined | OrderCollection>\n\nexport interface OrderState extends OrderPayload {\n loading: boolean\n orderId: string\n order?: OrderCollection\n saveBillingAddressToCustomerAddressBook: boolean\n saveShippingAddressToCustomerAddressBook: boolean\n getOrder?: getOrderContext\n createOrder?: () => Promise<string>\n addToCart: (values: AddToCartValues) => AddToCartReturn\n setOrderErrors: (collection: any) => { success: boolean }\n setGiftCardOrCouponCode: SetGiftCardOrCouponCode\n removeGiftCardOrCouponCode: RemoveGiftCardOrCouponCode\n saveAddressToCustomerAddressBook: (\n type: 'BillingAddress' | 'ShippingAddress',\n value: boolean\n ) => void\n}\n\nexport interface OrderActions {\n type: OrderActionType\n payload: OrderPayload\n}\n\nexport type OrderActionType =\n | 'setLoading'\n | 'setOrderId'\n | 'setOrder'\n | 'setSingleQuantity'\n | 'setCurrentSkuCodes'\n | 'setCurrentSkuPrices'\n | 'setCurrentItem'\n | 'setErrors'\n | 'setSaveAddressToCustomerAddressBook'\n | 'setGiftCardOrCouponCode'\n\nconst actionType: OrderActionType[] = [\n 'setLoading',\n 'setOrderId',\n 'setOrder',\n 'setSingleQuantity',\n 'setCurrentSkuCodes',\n 'setCurrentSkuPrices',\n 'setErrors',\n 'setCurrentItem',\n 'setSaveAddressToCustomerAddressBook',\n]\n\nexport const createOrder: CreateOrder = async (params) => {\n const {\n persistKey,\n state,\n dispatch,\n config,\n orderMetadata: metadata,\n orderAttributes = {},\n setLocalOrder,\n } = params\n if (state.orderId) return state.orderId\n const o = await CLayer.Order.withCredentials(config).create({\n metadata,\n ...orderAttributes,\n })\n if (!o.id) return ''\n dispatch({\n type: 'setOrderId',\n payload: {\n orderId: o.id,\n },\n })\n dispatch({\n type: 'setOrder',\n payload: {\n order: o,\n },\n })\n persistKey && setLocalOrder && setLocalOrder(persistKey, o.id)\n return o.id\n}\n\nexport const getApiOrder: GetOrder = async (params) => {\n const {\n id,\n dispatch,\n config,\n clearWhenPlaced,\n persistKey,\n deleteLocalOrder,\n } = params\n try {\n const o = await Order.withCredentials(config).find(id)\n if (o)\n if (\n (clearWhenPlaced && o.status === 'placed') ||\n o.status === 'approved' ||\n o.status === 'cancelled'\n ) {\n persistKey && deleteLocalOrder && deleteLocalOrder(persistKey)\n dispatch({\n type: 'setOrder',\n payload: {\n order: undefined,\n orderId: '',\n },\n })\n } else {\n dispatch({\n type: 'setOrder',\n payload: {\n order: o,\n },\n })\n }\n return o\n } catch (col) {\n persistKey && deleteLocalOrder && deleteLocalOrder(persistKey)\n dispatch({\n type: 'setOrder',\n payload: {\n order: undefined,\n orderId: '',\n },\n })\n return\n }\n}\n\nexport const setOrder = (\n order: OrderCollection,\n dispatch: Dispatch<OrderActions>\n): void => {\n dispatch({\n type: 'setOrder',\n payload: {\n order,\n },\n })\n}\n\nexport const addToCart: AddToCart = async (params) => {\n const {\n skuCode,\n skuId,\n quantity,\n option,\n config,\n dispatch,\n lineItem,\n errors,\n } = params\n try {\n const id = await createOrder(params)\n const order = CLayer.Order.build({ id })\n const name = lineItem?.name\n const imageUrl = lineItem?.imageUrl\n const attrs: Record<string, any> = {\n order,\n skuCode,\n name,\n imageUrl,\n quantity: quantity || 1,\n _updateQuantity: 1,\n }\n if (skuId) {\n attrs['item'] = CLayer.Sku.build({ id: skuId })\n }\n const lineItemResource = await CLayer.LineItem.withCredentials(\n config\n ).create(attrs)\n if (!isEmpty(option)) {\n let c = 0\n map(option, async (opt) => {\n const { options, skuOptionId } = opt\n const skuOption = CLayer.SkuOption.build({ id: skuOptionId })\n await CLayer.LineItemOption.withCredentials(config).create({\n quantity: 1,\n options,\n lineItem: lineItemResource,\n skuOption,\n })\n c += 1\n if (c === size(option)) {\n await getApiOrder({ id, ...params })\n }\n })\n } else {\n await getApiOrder({ id, ...params })\n }\n if (!isEmpty(errors)) {\n dispatch({\n type: 'setErrors',\n payload: {\n errors: [],\n },\n })\n }\n return { success: true }\n } catch (col) {\n const errors = getErrorsByCollection(col, 'order')\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n return { success: false }\n }\n}\n\nexport const unsetOrderState: UnsetOrderState = (dispatch) => {\n dispatch({\n type: 'setOrderId',\n payload: {\n orderId: '',\n },\n })\n dispatch({\n type: 'setOrder',\n payload: {\n order: undefined,\n },\n })\n}\n\nexport const setOrderErrors: SetOrderErrors = ({ dispatch, collection }) => {\n const errors = getErrorsByCollection(collection, 'order')\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n return { success: false }\n}\n\ntype SaveAddressToCustomerAddressBook = (params: {\n dispatch: Dispatch<OrderActions>\n type: 'BillingAddress' | 'ShippingAddress'\n value: boolean\n}) => void\n\nexport const saveAddressToCustomerAddressBook: SaveAddressToCustomerAddressBook = ({\n type,\n value,\n dispatch,\n}) => {\n dispatch({\n type: 'setSaveAddressToCustomerAddressBook',\n payload: {\n [`save${type}ToCustomerBook`]: value,\n },\n })\n}\n\ntype SetGiftCardOrCouponCode = (args: {\n code: string\n dispatch?: Dispatch<OrderActions>\n config?: CommerceLayerConfig\n order?: OrderCollection\n}) => Promise<{ success: boolean }>\n\nexport const setGiftCardOrCouponCode: SetGiftCardOrCouponCode = async ({\n code,\n dispatch,\n config,\n order,\n}) => {\n try {\n if (config && order && code && dispatch) {\n const o = await Order.build({ id: order.id })\n .withCredentials(config)\n .update({\n giftCardOrCouponCode: code,\n })\n if (!o.errors().empty()) throw o\n dispatch({\n type: 'setErrors',\n payload: {\n errors: [],\n },\n })\n getApiOrder({ id: order.id, config, dispatch })\n return { success: true }\n }\n return { success: false }\n } catch (e) {\n dispatch && setOrderErrors({ collection: e, dispatch })\n return { success: false }\n }\n}\n\nexport type CodeType = 'coupon' | 'giftCard'\nexport type OrderCodeType = `${CodeType}Code`\n\ntype RemoveGiftCardOrCouponCode = (args: {\n codeType: OrderCodeType\n dispatch?: Dispatch<OrderActions>\n config?: CommerceLayerConfig\n order?: OrderCollection\n}) => Promise<{ success: boolean }>\n\nexport const removeGiftCardOrCouponCode: RemoveGiftCardOrCouponCode = async ({\n codeType,\n dispatch,\n config,\n order,\n}) => {\n try {\n if (config && order && dispatch) {\n const o = await Order.build({ id: order.id })\n .withCredentials(config)\n .update({\n [codeType]: '',\n })\n if (!o.errors().empty()) throw o\n dispatch({\n type: 'setErrors',\n payload: {\n errors: [],\n },\n })\n getApiOrder({ id: order.id, config, dispatch })\n return { success: true }\n }\n return { success: false }\n } catch (e) {\n dispatch && setOrderErrors({ collection: e, dispatch })\n return { success: false }\n }\n}\n\nexport const orderInitialState: Partial<OrderState> = {\n loading: false,\n orderId: '',\n order: undefined,\n errors: [],\n}\n\nconst orderReducer = (\n state: Partial<OrderState>,\n reducer: OrderActions\n): Partial<OrderState> =>\n baseReducer<Partial<OrderState>, OrderActions, OrderActionType[]>(\n state,\n reducer,\n actionType\n )\n\nexport default orderReducer\n","import { createContext } from 'react'\nimport { orderInitialState, OrderState } from '#reducers/OrderReducer'\n\nconst OrderContext = createContext<OrderState>(orderInitialState as OrderState)\n\nexport default OrderContext\n","import { createContext } from 'react'\nimport {\n ItemState,\n Items,\n ItemQuantity,\n ItemOptions,\n ItemPrices,\n CustomLineItems,\n} from '#reducers/ItemReducer'\n\nexport interface InitItemContext extends Partial<ItemState> {\n item: Items\n items: Items\n quantity: ItemQuantity\n option: ItemOptions\n prices: ItemPrices\n lineItems: CustomLineItems\n}\n\nexport const initialItemContext: InitItemContext = {\n item: {},\n items: {},\n quantity: {},\n option: {},\n prices: {},\n lineItems: {},\n}\n\nconst ItemContext = createContext<InitItemContext>(initialItemContext)\n\nexport default ItemContext\n","import { first, keys } from 'lodash'\nimport { Items } from '#reducers/ItemReducer'\n\nexport interface GetCurrentItemKey {\n (item: Items): string\n}\n\nconst getCurrentItemKey: GetCurrentItemKey = (item) => {\n return first(keys(item)) || ''\n}\n\nexport default getCurrentItemKey\n","import { isValidElement, Children, ReactNode } from 'react'\nimport { isEmpty, isFunction, has, get } from 'lodash'\nimport { Requireable } from 'prop-types'\nimport components from '#config/components'\n\nexport interface CheckChildrenTypes {\n (\n props: { [key: string]: any },\n propName: string,\n componentName: string,\n location: string,\n propFullName: string\n ): Error | null\n}\n\nconst checkChildrenTypes: CheckChildrenTypes = (\n props,\n propName,\n componentName\n) => {\n let error: Error | null = null\n const children = props[propName]\n const cpName = componentName.replace('CL', '')\n if (isEmpty(children) && props['isRequired'])\n error = new Error(\n `The prop '${propName}' is marked as required in '${cpName}', but its value is '${children}'.`\n )\n Children.map(children, (c): any => {\n if (error) return error\n const type = c.type\n const itemTypes = get(components, `${cpName}.permittedChildren`)\n const errorMsg = `Invalid prop '${propName}' supplied to ${cpName}. Only components ${itemTypes.join(\n ', '\n )} are allowed.`\n if (isFunction(type) && has(type, 'displayName')) {\n const displayName: string = get(type, 'displayName')\n const childComponentName = type.name\n if (displayName && displayName === `${childComponentName}`) {\n if (!itemTypes.includes(childComponentName)) {\n error = new Error(errorMsg)\n }\n }\n }\n if (!isValidElement(c)) {\n error = new Error(errorMsg)\n }\n })\n return error\n}\n\nconst childrenTypes: any = checkChildrenTypes\nchildrenTypes['isRequired'] = (\n props: { [key: string]: any },\n propName: string,\n componentName: string,\n location: string,\n propFullName: string\n): Error | null | Element[] =>\n checkChildrenTypes(\n { ...props, isRequired: true },\n propName,\n componentName,\n location,\n propFullName\n )\n\n// NOTE change in the future (now is general for typescript)\nexport default childrenTypes as Requireable<ReactNode>\n","import { Dispatch, ReactNode, RefObject } from 'react'\nimport PropTypes, { InferProps } from 'prop-types'\nimport { BaseError } from './errors'\n\nexport const BC = {\n id: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n name: PropTypes.string,\n}\n\nexport const PTLoader = PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.string,\n])\n\nexport const BaseSelectComponentPropTypes = {\n children: PropTypes.func,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n .isRequired,\n selected: PropTypes.bool,\n }).isRequired\n ).isRequired,\n placeholder: PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n }),\n value: PropTypes.string,\n name: PropTypes.string.isRequired,\n}\n\nexport type SelectPlaceholder = Option\n\ntype BaseSelectChildrenComponentProps = Omit<\n BaseSelectComponentProps,\n 'children'\n>\n\ntype Option = {\n label: string\n value: string | number\n disabled?: boolean\n}\n\nexport interface BaseSelectComponentProps {\n children?: (props: BaseSelectChildrenComponentProps) => ReactNode\n options: Option[]\n placeholder?: Option\n value?: string\n className?: string\n required?: boolean\n name: string\n}\n\nexport const BaseInputComponentPropTypes = {\n children: PropTypes.func,\n name: PropTypes.string.isRequired,\n type: PropTypes.oneOf<BaseInputType>([\n 'text',\n 'email',\n 'number',\n 'date',\n 'checkbox',\n 'textarea',\n ]).isRequired,\n onChange: PropTypes.func,\n placeholder: PropTypes.string,\n}\n\ntype BaseInputChildrenComponentProps = Omit<\n BaseInputComponentProps,\n 'children'\n> & {\n handleChange: (\n event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>\n ) => void\n}\n\nexport interface BaseInputComponentProps {\n ref?: () => RefObject<any>\n children?: (props: BaseInputChildrenComponentProps) => ReactNode\n name: string\n onChange?: (\n event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>\n ) => void\n placeholder?: string\n}\n\nexport type LineItemType =\n | 'gift_cards'\n | 'paymentMethods'\n | 'promotions'\n | 'shipments'\n | 'skus'\n\nexport type GiftCardInputName =\n | 'balanceCents'\n | 'balanceMaxCents'\n | 'singleUse'\n | 'rechargeable'\n | 'imageUrl'\n | 'expiresAt'\n | 'referenceOrigin'\n | 'email'\n | 'firstName'\n | 'lastName'\n | 'reference'\n\nexport type AddressInputName =\n | 'billing_address_city'\n | 'billing_address_company'\n | 'billing_address_first_name'\n | 'billing_address_email'\n | 'billing_address_last_name'\n | 'billing_address_line_1'\n | 'billing_address_line_2'\n | 'billing_address_phone'\n | 'billing_address_state_code'\n | 'billing_address_zip_code'\n | 'billing_address_billing_info'\n | 'billing_address_save_to_customer_book'\n | 'shipping_address_city'\n | 'shipping_address_company'\n | 'shipping_address_email'\n | 'shipping_address_first_name'\n | 'shipping_address_last_name'\n | 'shipping_address_line_1'\n | 'shipping_address_line_2'\n | 'shipping_address_phone'\n | 'shipping_address_state_code'\n | 'shipping_address_zip_code'\n | 'shipping_address_save_to_customer_book'\n\nexport type AddressCountrySelectName =\n | 'billing_address_country_code'\n | 'shipping_address_country_code'\n\nexport type BaseInputType =\n | 'checkbox'\n | 'date'\n | 'email'\n | 'number'\n | 'tel'\n | 'text'\n | 'textarea'\n\nexport type LoaderType = string | ReactNode\n\nexport const BMObject = PropTypes.objectOf(PropTypes.string)\nexport type BaseMetadataObject = {\n [key: string]: string | undefined | null\n}\n\nexport type TimeFormat = 'days' | 'hours'\n\nexport type BaseComponent = InferProps<typeof BC>\n\nexport interface BaseAction<A = string> {\n type: A\n payload: Record<string, any>\n}\n\nexport interface BaseState {\n [key: string]: any\n errors?: BaseError[]\n}\n\nexport type BaseActionType<T = string> = T[]\n\nexport interface BFSetStateContainer<T> {\n <P extends T>(param: P): void\n}\n\nexport interface BaseReducer {\n <S extends BaseState, A extends BaseAction, T extends BaseActionType>(\n state: S,\n action: A,\n type: T\n ): S\n}\n\nexport interface BaseUnsetState<A> {\n (dispatch: Dispatch<A>): void\n}\n\nexport interface BaseMetadata {\n [key: string]: string | undefined | null\n}\n\nexport type BaseFormatPrice = 'formatted' | 'cents' | 'float'\n\nexport const baseOrderPricePropTypes = {\n base: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n children: PropTypes.func,\n format: PropTypes.oneOf<BaseFormatPrice>(['formatted', 'cents', 'float']),\n ...BC,\n}\n\nexport const baseOrderComponentPricePropTypes = {\n children: baseOrderPricePropTypes['children'],\n format: baseOrderPricePropTypes['format'],\n ...BC,\n}\n\nexport type BasePriceType = 'total' | 'option' | 'unit'\nexport type BaseSelectorType = 'select' | 'radio'\n\nexport type BaseAmountComponentChildren = Omit<BaseAmountComponent, 'children'>\n\nexport type BaseAmountComponent = {\n children?: (props: BaseAmountComponentChildren) => ReactNode\n format?: BaseFormatPrice\n price?: string\n priceCents?: number\n labelFree?: string\n} & JSX.IntrinsicElements['span']\n\nexport interface FunctionChildren<P = Record<string, any>> {\n (props: P): ReactNode\n}\n\nexport type Jwt = {\n organization: {\n id: string\n slug: string\n }\n application: {\n id: string\n kind: string\n public: boolean\n }\n test: boolean\n owner?: {\n id: string\n type: string\n }\n exp: number\n market: {\n id: string[]\n price_list_id: string\n stock_location_ids: string[]\n geocoder_id: null\n allows_external_prices: boolean\n }\n rand: number\n}\n","import PropTypes from 'prop-types'\nimport { FunctionChildren } from './index'\n\nexport type CodeErrorType =\n | 'EMPTY_ERROR'\n | 'FILTER_NOT_ALLOWED'\n | 'FORBIDDEN'\n | 'INTERNAL_SERVER_ERROR'\n | 'INVALID_DATA_FORMAT'\n | 'INVALID_FIELD'\n | 'INVALID_FIELD_FORMAT'\n | 'INVALID_FIELD_VALUE'\n | 'INVALID_FILTERS_SYNTAX'\n | 'INVALID_FILTER_VALUE'\n | 'INVALID_INCLUDE'\n | 'INVALID_LINKS_OBJECT'\n | 'INVALID_PAGE_OBJECT'\n | 'INVALID_PAGE_VALUE'\n | 'INVALID_RESOURCE'\n | 'INVALID_RESOURCE_ID'\n | 'INVALID_SORT_CRITERIA'\n | 'INVALID_TOKEN'\n | 'KEY_NOT_INCLUDED_IN_URL'\n | 'KEY_ORDER_MISMATCH'\n | 'LOCKED'\n | 'NOT_ACCEPTABLE'\n | 'PARAM_MISSING'\n | 'PARAM_NOT_ALLOWED'\n | 'PAYMENT_NOT_APPROVED_FOR_EXECUTION'\n | 'PAYMENT_INTENT_AUTHENTICATION_FAILURE'\n | 'RECORD_NOT_FOUND'\n | 'RECORD_NOT_FOUND'\n | 'RELATION_EXISTS'\n | 'SAVE_FAILED'\n | 'TYPE_MISMATCH'\n | 'UNAUTHORIZED'\n | 'UNSUPPORTED_MEDIA_TYPE'\n | 'VALIDATION_ERROR'\n\nexport type ResourceErrorType =\n | 'address'\n | 'billingAddress'\n | 'giftCard'\n | 'giftCardOrCouponCode'\n | 'lineItem'\n | 'order'\n | 'paymentMethod'\n | 'price'\n | 'shippingAddress'\n | 'skuOption'\n | 'variant'\n\nconst CEType: CodeErrorType[] = [\n 'EMPTY_ERROR',\n 'FILTER_NOT_ALLOWED',\n 'FORBIDDEN',\n 'INTERNAL_SERVER_ERROR',\n 'INVALID_DATA_FORMAT',\n 'INVALID_FIELD',\n 'INVALID_FIELD_FORMAT',\n 'INVALID_FIELD_VALUE',\n 'INVALID_FILTERS_SYNTAX',\n 'INVALID_FILTER_VALUE',\n 'INVALID_INCLUDE',\n 'INVALID_LINKS_OBJECT',\n 'INVALID_PAGE_OBJECT',\n 'INVALID_PAGE_VALUE',\n 'INVALID_RESOURCE',\n 'INVALID_RESOURCE_ID',\n 'INVALID_SORT_CRITERIA',\n 'INVALID_TOKEN',\n 'KEY_NOT_INCLUDED_IN_URL',\n 'KEY_ORDER_MISMATCH',\n 'LOCKED',\n 'NOT_ACCEPTABLE',\n 'PARAM_MISSING',\n 'PARAM_NOT_ALLOWED',\n 'RECORD_NOT_FOUND',\n 'RECORD_NOT_FOUND',\n 'RELATION_EXISTS',\n 'SAVE_FAILED',\n 'TYPE_MISMATCH',\n 'UNAUTHORIZED',\n 'UNSUPPORTED_MEDIA_TYPE',\n 'VALIDATION_ERROR',\n]\n\nexport interface BaseError {\n code: CodeErrorType\n message: string\n resource?: ResourceErrorType | null\n field?: string\n id?: string\n}\n\nexport const REType: ResourceErrorType[] = [\n 'giftCard',\n 'lineItem',\n 'order',\n 'price',\n 'skuOption',\n 'variant',\n]\n\nexport const BaseErrorObject = PropTypes.shape({\n code: PropTypes.oneOf(CEType).isRequired,\n message: PropTypes.string.isRequired,\n resource: PropTypes.oneOf(REType),\n field: PropTypes.string,\n id: PropTypes.string,\n})\n\nexport const ErrorPropTypes = {\n resource: PropTypes.oneOf<ResourceErrorType>([\n 'billingAddress',\n 'giftCard',\n 'lineItem',\n 'order',\n 'paymentMethod',\n 'price',\n 'shippingAddress',\n 'skuOption',\n 'variant',\n ]).isRequired,\n children: PropTypes.func,\n field: PropTypes.string,\n // messages: PropTypes.arrayOf(BaseErrorObject.isRequired),\n}\n\ntype ErrorChildrenComponentProps = FunctionChildren<\n Omit<ErrorComponentProps, 'children'> & { errors: string[] }\n>\n\nexport interface ErrorComponentProps {\n resource: ResourceErrorType\n children?: ErrorChildrenComponentProps\n field?: string\n messages?: {\n code: CodeErrorType\n message: string\n resource?: ResourceErrorType\n field?: string\n id?: string\n }[]\n}\n","import PropTypes from 'prop-types'\nimport childrenTypes from '#utils/childrenTypes'\nimport {\n TimeFormat,\n BaseInputType,\n GiftCardInputName,\n baseOrderComponentPricePropTypes,\n LineItemType,\n BasePriceType,\n BaseFormatPrice,\n PTLoader,\n BMObject,\n BaseSelectorType,\n AddressInputName,\n AddressCountrySelectName,\n} from '#typings'\nimport { ErrorPropTypes } from '#typings/errors'\nimport { BaseInputComponentPropTypes } from '#typings/index'\nimport { DeliveryLeadTimeField } from '../components/DeliveryLeadTime'\nimport { StockTransferFieldType } from '#components/StockTransferField'\nimport { PaymentSourceDetailType } from '#components/PaymentSourceDetail'\nimport { CodeType } from '#reducers/OrderReducer'\nimport { ShipmentAttribute } from '#components/ShipmentField'\n\nconst components = {\n Address: {\n permittedChildren: ['AddressField', 'ReactNode'],\n displayName: 'Address',\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n AddressCountrySelector: {\n displayName: 'AddressCountrySelector',\n propTypes: {\n children: PropTypes.func,\n placeholder: PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n .isRequired,\n }),\n value: PropTypes.string,\n name: PropTypes.oneOf<AddressCountrySelectName>([\n 'billing_address_country_code',\n 'shipping_address_country_code',\n ]).isRequired,\n required: PropTypes.bool,\n },\n defaultProps: {\n required: true,\n },\n },\n AddressField: {\n displayName: 'AddressField',\n propTypes: {\n children: PropTypes.func,\n },\n },\n AddressInput: {\n displayName: 'AddressInput',\n propTypes: {\n children: PropTypes.func,\n name: PropTypes.oneOf<AddressInputName>([\n 'billing_address_city',\n 'billing_address_company',\n 'billing_address_email',\n 'billing_address_first_name',\n 'billing_address_last_name',\n 'billing_address_line_1',\n 'billing_address_line_2',\n 'billing_address_phone',\n 'billing_address_state_code',\n 'billing_address_zip_code',\n 'billing_address_billing_info',\n 'billing_address_save_to_customer_book',\n 'shipping_address_city',\n 'shipping_address_company',\n 'shipping_address_email',\n 'shipping_address_first_name',\n 'shipping_address_last_name',\n 'shipping_address_line_1',\n 'shipping_address_line_2',\n 'shipping_address_phone',\n 'shipping_address_state_code',\n 'shipping_address_zip_code',\n 'shipping_address_save_to_customer_book',\n ]).isRequired,\n type: PropTypes.oneOf<BaseInputType>([\n 'checkbox',\n 'date',\n 'email',\n 'number',\n 'tel',\n 'text',\n 'textarea',\n ]).isRequired,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n },\n defaultProps: {\n required: true,\n },\n },\n AddToCartButton: {\n displayName: 'AddToCartButton',\n propTypes: {\n children: PropTypes.func,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n skuCode: PropTypes.string,\n disabled: PropTypes.bool,\n lineItem: PropTypes.shape({\n name: PropTypes.string.isRequired,\n imageUrl: PropTypes.string,\n }),\n },\n defaultProps: {\n label: 'Add to cart',\n },\n },\n AddressesContainer: {\n displayName: 'AddressesContainer',\n permittedChildren: [\n 'BillingAddressForm',\n 'BillingAddressContainer',\n 'ShippingAddressForm',\n 'ShippingAddressContainer',\n 'SaveAddressesButton',\n 'ReactNode',\n ],\n propTypes: {\n children: childrenTypes.isRequired,\n shipToDifferentAddress: PropTypes.bool,\n },\n },\n AvailabilityContainer: {\n displayName: 'AvailabilityContainer',\n permittedChildren: ['AvailabilityTemplate', 'ReactNode'],\n propTypes: {\n children: childrenTypes.isRequired,\n skuCode: PropTypes.string,\n },\n },\n AvailabilityTemplate: {\n displayName: 'AvailabilityTemplate',\n propTypes: {\n timeFormat: PropTypes.oneOf<TimeFormat>(['days', 'hours']),\n showShippingMethodName: PropTypes.bool,\n children: PropTypes.func,\n },\n defaultProps: {\n timeFormat: 'days',\n showShippingMethodName: false,\n },\n },\n BillingAddressContainer: {\n permittedChildren: ['Address', 'ReactNode'],\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n BillingAddressForm: {\n permittedChildren: ['AddressInput', 'ReactNode'],\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n CheckoutLink: {\n displayName: 'CheckoutLink',\n propTypes: {\n children: PropTypes.func,\n label: PropTypes.string,\n },\n defaultProps: {\n label: 'Checkout',\n },\n },\n CommerceLayer: {\n permittedChildren: [\n 'OrderContainer',\n 'OrderStorage',\n 'PricesContainer',\n 'GiftCardContainer',\n 'CustomerContainer',\n 'ReactNode',\n ],\n propTypes: {\n children: childrenTypes.isRequired,\n accessToken: PropTypes.string.isRequired,\n endpoint: PropTypes.string.isRequired,\n },\n },\n CustomerContainer: {\n displayName: 'CustomerContainer',\n permittedChildren: [\n 'CustomerInput',\n 'SaveCustomerButton',\n 'AddressesContainer',\n 'PaymentMethodsContainer',\n 'OrderList',\n 'ReactNode',\n 'CustomerField',\n ],\n propTypes: {\n children: childrenTypes.isRequired,\n isGuest: PropTypes.bool,\n },\n },\n CustomerField: {\n displayName: 'CustomerField',\n propTypes: {\n children: PropTypes.func,\n name: PropTypes.oneOf<'email'>(['email']).isRequired,\n },\n },\n CustomerInput: {\n displayName: 'CustomerInput',\n propTypes: {\n children: PropTypes.func,\n name: PropTypes.oneOf(['customerEmail']),\n type: PropTypes.oneOf(['email']),\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n saveOnBlur: PropTypes.bool,\n },\n defaultProps: {\n required: true,\n },\n },\n DeliveryLeadTime: {\n displayName: 'DeliveryLeadTime',\n propTypes: {\n type: PropTypes.oneOf<DeliveryLeadTimeField>([\n 'maxDays',\n 'maxHours',\n 'minDays',\n 'minHours',\n ]).isRequired,\n children: PropTypes.func,\n },\n },\n DiscountAmount: {\n displayName: 'DiscountAmount',\n propTypes: baseOrderComponentPricePropTypes,\n defaultProps: {\n format: 'formatted' as BaseFormatPrice,\n },\n },\n Errors: {\n displayName: 'Errors',\n propTypes: ErrorPropTypes,\n defaultProps: {\n messages: [],\n field: 'base',\n },\n },\n ExternalFunction: {\n displayName: 'ExternalFunction',\n permittedChildren: ['AddToCartButton', 'ReactNode'],\n propTypes: {\n children: childrenTypes.isRequired,\n url: PropTypes.string.isRequired,\n },\n },\n GiftCard: {\n permittedChildren: [\n 'GiftCardCurrencySelector',\n 'GiftCardInput',\n 'Errors',\n 'MetadataInput',\n 'SubmitButton',\n 'ReactNode',\n ],\n displayName: 'GiftCard',\n propTypes: {\n children: childrenTypes.isRequired,\n onSubmit: PropTypes.func,\n },\n defaultProps: {\n onSubmit: undefined,\n },\n },\n GiftCardAmount: {\n displayName: 'GiftCardAmount',\n propTypes: baseOrderComponentPricePropTypes,\n },\n GiftCardContainer: {\n permittedChildren: ['GiftCard', 'Errors', 'ReactNode'],\n displayName: 'GiftCardContainer',\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n GiftCardCurrencySelector: {\n displayName: 'GiftCardCurrencySelector',\n propTypes: {\n children: PropTypes.func,\n placeholder: PropTypes.shape({\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n .isRequired,\n label: PropTypes.string.isRequired,\n }),\n value: PropTypes.string,\n required: PropTypes.bool,\n },\n defaultProps: {\n required: true,\n },\n },\n GiftCardInput: {\n displayName: 'GiftCardInput',\n propTypes: {\n type: PropTypes.oneOf<BaseInputType>([\n 'text',\n 'email',\n 'number',\n 'date',\n 'checkbox',\n ]).isRequired,\n name: PropTypes.oneOf<GiftCardInputName>([\n 'balanceCents',\n 'balanceMaxCents',\n 'singleUse',\n 'rechargeable',\n 'imageUrl',\n 'expiresAt',\n 'referenceOrigin',\n 'email',\n 'firstName',\n 'lastName',\n 'reference',\n ]).isRequired,\n children: PropTypes.func,\n placeholder: PropTypes.string,\n },\n },\n GiftCardOrCouponForm: {\n permittedChildren: [\n 'GiftCardOrCouponInput',\n 'GiftCardOrCouponSubmit',\n 'ReactNode',\n ],\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n GiftCardOrCouponInput: {\n displayName: 'GiftCardOrCouponInput',\n propTypes: {\n children: PropTypes.func,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n required: PropTypes.bool,\n },\n },\n GiftCardOrCouponSubmit: {\n displayName: 'GiftCardOrCouponSubmit',\n propTypes: {\n children: PropTypes.func,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n },\n },\n GiftCardOrCouponCode: {\n displayName: 'GiftCardOrCouponCode',\n propTypes: {\n children: PropTypes.func,\n type: PropTypes.oneOf<CodeType>(['coupon', 'giftCard']),\n },\n },\n GiftCardOrCouponRemoveButton: {\n displayName: 'GiftCardOrCouponRemoveButton',\n propTypes: {\n children: PropTypes.func,\n type: PropTypes.oneOf<CodeType>(['coupon', 'giftCard']),\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n },\n },\n ItemContainer: {\n permittedChildren: [\n 'PricesContainer',\n 'VariantsContainer',\n 'SkuOptionContainer',\n 'QuantitySelector',\n 'AddToCartButton',\n 'AvailabilityContainer',\n 'SkuListsContainer',\n 'ReactNode',\n ],\n displayName: 'ItemContainer',\n propTypes: {\n children: childrenTypes.isRequired,\n skuCode: PropTypes.string,\n lineItem: PropTypes.shape({\n name: PropTypes.string.isRequired,\n imageUrl: PropTypes.string,\n }),\n },\n },\n LineItem: {\n permittedChildren: [\n 'AvailabilityContainer',\n 'LineItemImage',\n 'LineItemName',\n 'LineItemOptions',\n 'LineItemQuantity',\n 'LineItemAmount',\n 'LineItemRemoveLink',\n 'StockTransfer',\n 'Errors',\n 'ReactNode',\n ],\n displayName: 'LineItem',\n propTypes: {\n children: childrenTypes.isRequired,\n type: PropTypes.oneOf<LineItemType>([\n 'skus',\n 'gift_cards',\n 'shipments',\n 'paymentMethods',\n 'promotions',\n ]),\n },\n defaultProps: {\n type: 'skus',\n },\n },\n LineItemAmount: {\n displayName: 'LineItemAmount',\n propTypes: {\n ...baseOrderComponentPricePropTypes,\n type: PropTypes.oneOf<BasePriceType>(['total', 'unit', 'option']),\n },\n defaultProps: {\n format: 'formatted',\n type: 'total',\n },\n },\n LineItemImage: {\n displayName: 'LineItemImage',\n propTypes: {\n width: PropTypes.number,\n children: PropTypes.func,\n },\n },\n LineItemName: {\n displayName: 'LineItemName',\n propTypes: {\n children: PropTypes.func,\n },\n },\n LineItemSkuCode: {\n displayName: 'LineItemSkuCode',\n propTypes: {\n children: PropTypes.func,\n },\n },\n LineItemOption: {\n displayName: 'LineItemOption',\n propTypes: {\n name: PropTypes.string,\n children: PropTypes.func,\n valueClassName: PropTypes.string,\n className: PropTypes.string,\n id: PropTypes.string,\n style: PropTypes.object,\n },\n },\n LineItemOptions: {\n permittedChildren: ['LineItemOption', 'ReactNode'],\n displayName: 'LineItemOptions',\n propTypes: {\n children: childrenTypes.isRequired,\n title: PropTypes.string,\n showName: PropTypes.bool,\n skuOptionId: PropTypes.string,\n },\n },\n LineItemQuantity: {\n displayName: 'LineItemQuantity',\n propTypes: {\n children: PropTypes.func,\n max: PropTypes.number,\n disabled: PropTypes.bool,\n readonly: PropTypes.bool,\n },\n defaultProps: {\n max: 50,\n },\n },\n LineItemRemoveLink: {\n displayName: 'LineItemRemoveLink',\n propTypes: {\n children: PropTypes.func,\n label: PropTypes.string,\n },\n defaultProps: {\n label: 'Remove',\n },\n },\n LineItemsContainer: {\n permittedChildren: ['LineItemsCount', 'LineItem', 'ReactNode'],\n displayName: 'LineItemsContainer',\n propTypes: {\n children: childrenTypes.isRequired,\n filters: PropTypes.object,\n loader: PTLoader,\n },\n defaultProps: {\n filters: {},\n loader: 'Loading...',\n },\n },\n LineItemsCount: {\n displayName: 'LineItemsCount',\n propTypes: {\n children: PropTypes.func,\n id: PropTypes.string,\n className: PropTypes.string,\n name: PropTypes.string,\n style: PropTypes.object,\n },\n },\n MetadataInput: {\n displayName: 'MetadataInput',\n propTypes: BaseInputComponentPropTypes,\n },\n OrderContainer: {\n permittedChildren: [\n 'AddressesContainer',\n 'CustomerContainer',\n 'ItemContainer',\n 'LineItemsContainer',\n 'SubTotalAmount',\n 'DiscountAmount',\n 'ShippingAmount',\n 'TaxesAmount',\n 'GiftCardAmount',\n 'TotalAmount',\n 'CheckoutLink',\n 'GiftCardContainer',\n 'ShipmentsContainer',\n 'PaymentMethodsContainer',\n 'PaymentMethodAmount',\n 'GiftCardOrCouponForm',\n 'GiftCardOrCouponCode',\n 'GiftCardOrCouponRemoveButton',\n 'Errors',\n 'OrderNumber',\n 'ReactNode',\n ],\n displayName: 'OrderContainer',\n propTypes: {\n children: childrenTypes.isRequired,\n orderId: PropTypes.string,\n metadata: BMObject,\n attributes: PropTypes.object,\n },\n defaultProps: {\n metadata: {},\n },\n },\n OrderList: {\n permittedChildren: [\n 'OrderListHeader',\n 'OrderListRow',\n 'OrderListRowActions',\n 'ReactNode',\n ],\n displayName: 'OrderList',\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n OrderNumber: {\n displayName: 'OrderNumber',\n propTypes: {\n className: PropTypes.string,\n },\n defaultProps: {\n format: 'formatted' as BaseFormatPrice,\n },\n },\n OrderStorage: {\n permittedChildren: ['OrderContainer', 'ReactNode'],\n displayName: 'OrderStorage',\n propTypes: {\n children: childrenTypes.isRequired,\n clearWhenPlaced: PropTypes.bool,\n persistKey: PropTypes.string.isRequired,\n },\n },\n PaymentMethod: {\n permittedChildren: [\n 'PaymentMethodName',\n 'PaymentMethodRadioButton',\n 'PaymentMethodPrice',\n 'PaymentSource',\n 'ReactNode',\n 'Errors',\n ],\n displayName: 'PaymentMethod',\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n PaymentMethodAmount: {\n displayName: 'PaymentMethodAmount',\n propTypes: baseOrderComponentPricePropTypes,\n defaultProps: {\n format: 'formatted' as BaseFormatPrice,\n },\n },\n PaymentMethodName: {\n displayName: 'PaymentMethodName',\n propTypes: {\n children: PropTypes.func,\n },\n },\n PaymentMethodPrice: {\n displayName: 'PaymentMethodPrice',\n propTypes: {\n ...baseOrderComponentPricePropTypes,\n type: PropTypes.oneOf<'amount'>(['amount']),\n },\n },\n PaymentMethodRadioButton: {\n displayName: 'PaymentMethodRadioButton',\n propTypes: {\n children: PropTypes.func,\n },\n },\n PaymentMethodsContainer: {\n displayName: 'PaymentMethodsContainer',\n permittedChildren: [\n 'PaymentMethod',\n 'PaymentSource',\n 'ReactNode',\n 'PlaceOrderContainer',\n ],\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n PaymentSource: {\n displayName: 'PaymentSource',\n permittedChildren: [\n 'PaymentSourceBrandIcon',\n 'PaymentSourceBrandName',\n 'PaymentSourceEditButton',\n 'PaymentSourceDetail',\n 'ReactNode',\n ],\n propTypes: {\n children: childrenTypes,\n readonly: PropTypes.bool,\n },\n },\n PaymentSourceBrandIcon: {\n displayName: 'PaymentSourceBrandIcon',\n propTypes: {\n children: PropTypes.func,\n width: PropTypes.number,\n height: PropTypes.number,\n src: PropTypes.string,\n className: PropTypes.string,\n },\n },\n PaymentSourceBrandName: {\n displayName: 'PaymentSourceBrandName',\n propTypes: {\n children: PropTypes.func,\n label: PropTypes.string,\n },\n },\n PaymentSourceEditButton: {\n displayName: 'PaymentSourceEditButton',\n propTypes: {\n children: PropTypes.func,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n },\n },\n PaymentSourceDetail: {\n displayName: 'PaymentSourceDetail',\n propTypes: {\n type: PropTypes.oneOf<PaymentSourceDetailType>([\n 'last4',\n 'expYear',\n 'expMonth',\n ]).isRequired,\n },\n },\n PlaceOrderButton: {\n displayName: 'PlaceOrderButton',\n propTypes: {\n children: PropTypes.func,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n },\n defaultProps: {\n label: 'Place order',\n },\n },\n PlaceOrderContainer: {\n displayName: 'PlaceOrderContainer',\n permittedChildren: [\n 'PlaceOrderButton',\n 'PrivacyAndTermsCheckbox',\n 'ReactNode',\n ],\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n Price: {\n displayName: 'Price',\n propTypes: {\n children: PropTypes.func,\n compareClassName: PropTypes.string,\n skuCode: PropTypes.string,\n showCompare: PropTypes.bool,\n },\n defaultProps: {\n skuCode: '',\n },\n },\n PricesContainer: {\n permittedChildren: ['Price', 'ReactNode'],\n displayName: 'PricesContainer',\n propTypes: {\n children: childrenTypes.isRequired,\n skuCode: PropTypes.string,\n loader: PTLoader,\n perPage: PropTypes.number,\n filters: PropTypes.object,\n },\n defaultProps: {\n perPage: 10,\n filters: {},\n loader: 'Loading...',\n skuCode: '',\n },\n },\n PrivacyAndTermsCheckbox: {\n displayName: 'PrivacyAndTermsCheckbox',\n propTypes: {\n children: PropTypes.func,\n },\n },\n QuantitySelector: {\n displayName: 'QuantitySelector',\n propTypes: {\n children: PropTypes.func,\n min: PropTypes.number,\n max: PropTypes.number,\n value: PropTypes.string,\n skuCode: PropTypes.string,\n disabled: PropTypes.bool,\n },\n defaultProps: {\n min: 1,\n },\n },\n SaveAddressesButton: {\n displayName: 'SaveAddressesButton',\n propTypes: {\n children: PropTypes.func,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n onClick: PropTypes.func,\n disabled: PropTypes.bool,\n },\n defaultProps: {\n label: 'Continue to delivery',\n },\n },\n Shipment: {\n permittedChildren: [\n 'LineItemsContainer',\n 'LineItem',\n 'ShippingMethod',\n 'ReactNode',\n ],\n displayName: 'Shipment',\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n ShipmentField: {\n displayName: 'ShipmentField',\n propTypes: {\n children: PropTypes.func,\n name: PropTypes.oneOf<ShipmentAttribute>([\n 'costAmountCents',\n 'costAmountFloat',\n 'currencyCode',\n 'formattedCostAmount',\n 'number',\n 'status',\n 'keyNumber',\n ]).isRequired,\n },\n },\n ShipmentsContainer: {\n displayName: 'ShipmentsContainer',\n permittedChildren: ['Shipment', 'ReactNode'],\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n ShippingAddressContainer: {\n permittedChildren: ['Address', 'ReactNode'],\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n SaveCustomerButton: {\n displayName: 'SaveCustomerButton',\n propTypes: {\n children: PropTypes.func,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n onClick: PropTypes.func,\n },\n defaultProps: {\n label: 'Save',\n },\n },\n ShippingAddressForm: {\n permittedChildren: ['AddressInput', 'ReactNode'],\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n ShippingAmount: {\n displayName: 'ShippingAmount',\n propTypes: baseOrderComponentPricePropTypes,\n },\n ShippingMethod: {\n permittedChildren: [\n 'ShippingMethodName',\n 'ShippingMethodPrice',\n 'ShippingMethodRadioButton',\n 'DeliveryLeadTime',\n 'ReactNode',\n ],\n displayName: 'ShippingMethod',\n propTypes: {\n children: childrenTypes.isRequired,\n readonly: PropTypes.bool,\n },\n },\n ShippingMethodName: {\n displayName: 'ShippingMethodName',\n propTypes: {\n children: PropTypes.func,\n },\n },\n ShippingMethodRadioButton: {\n displayName: 'ShippingMethodRadioButton',\n propTypes: {\n children: PropTypes.func,\n },\n },\n ShippingMethodPrice: {\n displayName: 'ShippingMethodPrice',\n propTypes: {\n ...baseOrderComponentPricePropTypes,\n type: PropTypes.oneOf<'amount'>(['amount']),\n },\n defaultProps: {\n format: 'formatted',\n type: 'amount',\n },\n },\n SkuList: {\n permittedChildren: ['AddToCartButton', 'QuantitySelector', 'ReactNode'],\n displayName: 'SkuList',\n propTypes: {\n children: childrenTypes.isRequired,\n id: PropTypes.string.isRequired,\n },\n },\n SkuListsContainer: {\n permittedChildren: ['SkuList', 'ReactNode'],\n displayName: 'SkuListsContainer',\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n SkuOption: {\n permittedChildren: ['SkuOptionInput', 'ReactNode'],\n displayName: 'SkuOption',\n propTypes: {\n children: childrenTypes.isRequired,\n id: PropTypes.string.isRequired,\n },\n },\n SkuOptionInput: {\n displayName: 'SkuOptionInput',\n propTypes: BaseInputComponentPropTypes,\n },\n SkuOptionsContainer: {\n permittedChildren: ['SkuOption', 'ReactNode'],\n displayName: 'SkuOptionsContainer',\n propTypes: {\n children: childrenTypes.isRequired,\n skuCode: PropTypes.string,\n },\n },\n StockTransfer: {\n permittedChildren: ['StockTransferField', 'ReactNode'],\n displayName: 'StockTransfer',\n propTypes: {\n children: childrenTypes.isRequired,\n },\n },\n StockTransferField: {\n displayName: 'StockTransferField',\n propTypes: {\n children: PropTypes.func,\n type: PropTypes.oneOf<StockTransferFieldType>(['quantity', 'skuCode'])\n .isRequired,\n },\n },\n SubmitButton: {\n displayName: 'SubmitButton',\n propTypes: {\n children: PropTypes.func,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n },\n defaultProps: {\n label: 'Submit',\n },\n },\n SubTotalAmount: {\n displayName: 'SubTotalAmount',\n propTypes: baseOrderComponentPricePropTypes,\n defaultProps: {\n format: 'formatted' as BaseFormatPrice,\n },\n },\n TaxesAmount: {\n displayName: 'TaxesAmount',\n propTypes: baseOrderComponentPricePropTypes,\n defaultProps: {\n format: 'formatted' as BaseFormatPrice,\n },\n },\n TotalAmount: {\n displayName: 'TotalAmount',\n propTypes: baseOrderComponentPricePropTypes,\n defaultProps: {\n format: 'formatted' as BaseFormatPrice,\n },\n },\n VariantsContainer: {\n permittedChildren: ['VariantSelector', 'ReactNode'],\n displayName: 'VariantsContainer',\n propTypes: {\n children: childrenTypes.isRequired,\n skuCode: PropTypes.string,\n filters: PropTypes.object,\n },\n defaultProps: {\n skuCode: '',\n filters: {},\n },\n },\n VariantSelector: {\n displayName: 'VariantSelector',\n propTypes: {\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n code: PropTypes.string.isRequired,\n lineItem: PropTypes.shape({\n name: PropTypes.string.isRequired,\n imageUrl: PropTypes.string,\n }),\n }).isRequired\n ).isRequired,\n name: PropTypes.string,\n children: PropTypes.func,\n type: PropTypes.oneOf<BaseSelectorType>(['select', 'radio']),\n loader: PropTypes.element,\n placeholder: PropTypes.string,\n skuCode: PropTypes.string,\n },\n defaultProps: {\n placeholder: 'Select a variant',\n type: 'select' as BaseSelectorType,\n },\n },\n}\n\nexport default components\n","import baseReducer from '#utils/baseReducer'\nimport { Dispatch } from 'react'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { SkuList } from '@commercelayer/js-sdk'\n\ntype SkuListsActionType = 'getSkuList' | 'setSkuList'\n\nconst actionType: SkuListsActionType[] = ['getSkuList', 'setSkuList']\n\nexport interface SkuListsState {\n listIds: string[]\n skuLists: SkuList\n}\n\nexport const skuListsInitialState: SkuListsState = {\n listIds: [],\n skuLists: {},\n}\n\nexport interface SkuListsAction {\n payload: Partial<SkuListsState>\n type: SkuListsActionType\n}\n\nexport type GetSkuList = (params: {\n config: CommerceLayerConfig\n dispatch: Dispatch<SkuListsAction>\n listIds: string[]\n state: SkuListsState\n}) => Promise<void>\n\nexport type SkuList = Record<string, string[]>\n\nexport const getSkuList: GetSkuList = async ({\n listIds,\n config,\n dispatch,\n // state,\n}) => {\n const skuLists: Record<string, any> = {}\n try {\n listIds.map(async (id) => {\n const skuList = await SkuList.withCredentials(config)\n .includes('skus')\n .select({ skus: ['code'] })\n .find(id)\n const skuCodes = skuList\n .skus()\n ?.toArray()\n .map((sku) => sku.code)\n skuLists[id] = skuCodes\n })\n dispatch({\n payload: {\n skuLists,\n },\n type: 'getSkuList',\n })\n } catch (error) {\n console.error(error)\n return error\n }\n}\n\nconst skuListsReducer = (\n state: SkuListsState,\n reducer: SkuListsAction\n): SkuListsState =>\n baseReducer<SkuListsState, SkuListsAction, SkuListsActionType[]>(\n state,\n reducer,\n actionType\n )\n\nexport default skuListsReducer\n","import { createContext } from 'react'\nimport { skuListsInitialState } from '#reducers/SkuListsReducer'\n\nexport const SkuListsContext = createContext(skuListsInitialState)\n\nexport default SkuListsContext\n","import { createContext } from 'react'\nimport axios from 'axios'\n\ntype Context = {\n url: string | null\n callExternalFunction: CallExternalFunction\n}\n\ntype CallExternalFunction = (params: {\n url: string\n data: Record<string, any>\n}) => Promise<Record<string, any>>\n\nexport const callExternalFunction: CallExternalFunction = async ({\n url,\n data,\n}) => axios.post(url, data)\n\nconst ExternalFunctionContext = createContext<Context>({\n url: null,\n callExternalFunction,\n})\n\nexport default ExternalFunctionContext\n","import React, {\n FunctionComponent,\n useContext,\n PropsWithoutRef,\n ReactNode,\n} from 'react'\nimport Parent from './utils/Parent'\nimport OrderContext from '#context/OrderContext'\nimport { isEmpty, has } from 'lodash'\nimport ItemContext from '#context/ItemContext'\nimport getCurrentItemKey from '#utils/getCurrentItemKey'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings/index'\nimport { AddToCartReturn } from '#reducers/OrderReducer'\nimport SkuListsContext from '#context/SkuListsContext'\nimport ExternalFunctionContext from '#context/ExternalFunctionContext'\nimport { VariantOptions } from '#components/VariantSelector'\nimport isFunction from 'lodash/isFunction'\n\nconst propTypes = components.AddToCartButton.propTypes\nconst defaultProps = components.AddToCartButton.defaultProps\nconst displayName = components.AddToCartButton.displayName\n\ntype AddToCartButtonChildrenProps = FunctionChildren<\n {\n handleClick: () => AddToCartReturn\n } & Omit<AddToCartButtonProps, 'children'> &\n PropsWithoutRef<JSX.IntrinsicElements['button']>\n>\n\ntype AddToCartButtonProps = {\n children?: AddToCartButtonChildrenProps\n label?: string | ReactNode\n skuCode?: string\n disabled?: boolean\n skuListId?: string\n lineItem?: VariantOptions['lineItem']\n} & PropsWithoutRef<JSX.IntrinsicElements['button']>\n\nconst AddToCartButton: FunctionComponent<AddToCartButtonProps> = (props) => {\n const {\n label = 'Add to cart',\n children,\n skuCode,\n disabled,\n skuListId,\n lineItem,\n ...p\n } = props\n const { addToCart, orderId, getOrder, setOrderErrors } = useContext(\n OrderContext\n )\n const { url, callExternalFunction } = useContext(ExternalFunctionContext)\n const {\n item,\n items,\n quantity,\n option,\n prices,\n lineItems,\n lineItem: lineItemContext,\n skuCode: itemSkuCode,\n } = useContext(ItemContext)\n const { skuLists } = useContext(SkuListsContext)\n const sCode =\n !isEmpty(items) && skuCode\n ? items[skuCode]?.code\n : skuCode || getCurrentItemKey(item) || (itemSkuCode as string)\n const handleClick = () => {\n const qty = quantity[sCode]\n const opt = option[sCode]\n const customLineItem = !isEmpty(lineItem || lineItemContext)\n ? lineItem || lineItemContext\n : lineItems[sCode]\n if (!isEmpty(skuLists) && skuListId && url) {\n const slQty = quantity[skuListId] || 1\n if (has(skuLists, skuListId)) {\n const lineItems = skuLists[skuListId].map((skuCode) => {\n return {\n skuCode,\n quantity: slQty,\n _update_quantity: 1,\n }\n })\n return callExternalFunction({\n url,\n data: {\n resourceType: 'orders',\n inputs: [\n {\n id: orderId,\n lineItems,\n },\n ],\n },\n })\n .then((res) => {\n getOrder && orderId && getOrder(orderId)\n return res\n })\n .catch(({ response }) => {\n setOrderErrors && setOrderErrors(response['data'])\n return response\n })\n }\n }\n return !url\n ? addToCart &&\n addToCart({\n skuCode: sCode,\n skuId: item[sCode]?.id,\n quantity: qty,\n option: opt,\n lineItem: customLineItem,\n })\n : callExternalFunction({\n url,\n data: {\n skuCode: sCode,\n skuId: item[sCode]?.id,\n quantity: qty,\n option: opt,\n lineItem: customLineItem,\n },\n })\n .then((res) => {\n getOrder && orderId && getOrder(orderId)\n return res\n })\n .catch(({ response }) => {\n setOrderErrors && setOrderErrors(response['data'])\n return response\n })\n }\n const autoDisabled =\n !isEmpty(skuLists) || skuListId\n ? false\n : disabled || !prices[sCode] || !sCode\n const parentProps = {\n handleClick,\n disabled: disabled || autoDisabled,\n label,\n ...props,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <button disabled={autoDisabled} onClick={handleClick} {...p}>\n {isFunction(label) ? label() : label}\n </button>\n )\n}\n\nAddToCartButton.propTypes = propTypes\nAddToCartButton.defaultProps = defaultProps\nAddToCartButton.displayName = displayName\n\nexport default AddToCartButton\n","import { createContext } from 'react'\nimport { AddressCollection } from '@commercelayer/js-sdk'\n\nexport interface InitialAddressContext {\n address: AddressCollection | Record<string, any>\n}\n\nconst initial: InitialAddressContext = {\n address: {},\n}\n\nconst AddressChildrenContext = createContext<InitialAddressContext>(initial)\n\nexport default AddressChildrenContext\n","import baseReducer from '#utils/baseReducer'\nimport { Dispatch } from 'react'\nimport { BaseError } from '#typings/errors'\nimport {\n AddressCollection,\n Customer,\n CustomerAddress,\n CustomerPaymentSourceCollection,\n Order,\n OrderCollection,\n} from '@commercelayer/js-sdk'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { getOrderContext } from './OrderReducer'\nimport getErrorsByCollection from '#utils/getErrorsByCollection'\nimport { isEmpty } from 'lodash'\nimport jwtDecode from 'jwt-decode'\nimport { Jwt } from '#typings'\nimport OrderAttributes from '#typings/order'\n\nexport type CustomerActionType =\n | 'setErrors'\n | 'setCustomerEmail'\n | 'setAddresses'\n | 'setPayments'\n | 'setOrders'\n\nexport interface CustomerActionPayload {\n addresses: AddressCollection[]\n payments: CustomerPaymentSourceCollection[]\n customerEmail: string\n errors: BaseError[]\n orders: OrderAttributes[]\n isGuest: boolean\n attributes: {\n email: string\n }\n}\n\nexport type CustomerState = Partial<CustomerActionPayload>\n\nexport interface CustomerAction {\n type: CustomerActionType\n payload: Partial<CustomerActionPayload>\n}\n\nexport type SetSaveOnBlur = (args: {\n saveOnBlur: boolean\n dispatch: Dispatch<CustomerAction>\n}) => void\n\nexport type SaveCustomerUser = (args: {\n config: CommerceLayerConfig\n customerEmail: string\n dispatch: Dispatch<CustomerAction>\n order?: OrderCollection\n getOrder: getOrderContext\n}) => Promise<void>\n\nexport const saveCustomerUser: SaveCustomerUser = async ({\n config,\n customerEmail,\n dispatch,\n order,\n getOrder,\n}) => {\n try {\n if (order) {\n const o = await Order.build({ id: order.id })\n await o.withCredentials(config).update({ customerEmail })\n getOrder(order.id)\n dispatch({\n type: 'setCustomerEmail',\n payload: { customerEmail },\n })\n }\n } catch (error) {\n console.error(error)\n }\n}\n\nexport interface SetCustomerErrors {\n <V extends BaseError[]>(errors: V, dispatch?: Dispatch<CustomerAction>): void\n}\n\nexport const setCustomerErrors: SetCustomerErrors = (errors, dispatch) => {\n dispatch &&\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n}\n\nexport type SetCustomerEmail = (\n customerEmail: string,\n dispatch?: Dispatch<CustomerAction>\n) => void\n\nexport const setCustomerEmail: SetCustomerEmail = (customerEmail, dispatch) => {\n dispatch &&\n dispatch({\n type: 'setCustomerEmail',\n payload: {\n customerEmail,\n },\n })\n}\n\nexport type GetCustomerAddresses = (params: {\n config: CommerceLayerConfig\n dispatch: Dispatch<CustomerAction>\n}) => Promise<void>\n\nexport const getCustomerAddresses: GetCustomerAddresses = async ({\n config,\n dispatch,\n}) => {\n try {\n const customerAddresses = await CustomerAddress.withCredentials(config)\n .includes('address')\n .all()\n const addresses: any = customerAddresses\n .toArray()\n .map((customerAddress) => customerAddress.address())\n dispatch({\n type: 'setAddresses',\n payload: { addresses },\n })\n } catch (col) {\n const errors = getErrorsByCollection(col, 'address')\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n }\n}\n\nexport type GetCustomerPaymentSources = (params: {\n config: CommerceLayerConfig\n dispatch: Dispatch<CustomerAction>\n order?: OrderCollection\n}) => Promise<void>\n\nexport const getCustomerPaymentSources: GetCustomerPaymentSources = async ({\n config,\n dispatch,\n order,\n}) => {\n try {\n if (config && order) {\n const payments: CustomerPaymentSourceCollection[] | undefined = (\n await order\n .availableCustomerPaymentSources()\n ?.includes('paymentSource')\n ?.load()\n )?.toArray()\n if (!isEmpty(payments) && payments) {\n dispatch({\n type: 'setPayments',\n payload: { payments },\n })\n }\n }\n } catch (col) {\n const errors = getErrorsByCollection(col, 'address')\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n }\n}\n\nexport type GetCustomerOrders = (params: {\n config: CommerceLayerConfig\n dispatch: Dispatch<CustomerAction>\n}) => Promise<void>\n\nexport const getCustomerOrders: GetCustomerOrders = async ({\n config,\n dispatch,\n}) => {\n const { owner } = jwtDecode<Jwt>(config.accessToken)\n if (owner?.id) {\n // TODO: Change with customers/customer_id/orders with new SDK and filter them directly.\n const getOrders = await Customer.withCredentials(config)\n .includes('orders')\n .find(owner?.id, { rawResponse: true })\n const attributes = { email: getOrders.data.attributes.email }\n const orders = getOrders?.included\n ?.filter(\n (order) => !['pending', 'draft'].includes(order.attributes.status)\n )\n .map((order) => {\n return {\n id: order.id,\n ...order.attributes,\n } as OrderAttributes\n })\n dispatch({\n type: 'setOrders',\n payload: { orders, attributes },\n })\n }\n}\n\nexport const customerInitialState: CustomerState = {\n errors: [],\n addresses: [],\n payments: [],\n orders: [],\n}\n\nconst type: CustomerActionType[] = [\n 'setErrors',\n 'setCustomerEmail',\n 'setAddresses',\n 'setPayments',\n 'setOrders',\n]\n\nconst customerReducer = (\n state: CustomerState,\n reducer: CustomerAction\n): CustomerState =>\n baseReducer<CustomerState, CustomerAction, CustomerActionType[]>(\n state,\n reducer,\n type\n )\n\nexport default customerReducer\n","import {\n SetCustomerEmail,\n setCustomerErrors,\n SetCustomerErrors,\n setCustomerEmail,\n CustomerState,\n} from '#reducers/CustomerReducer'\nimport { createContext } from 'react'\n\ntype DefaultContext = {\n saveCustomerUser: (customerEmail: string) => Promise<void>\n setCustomerErrors: SetCustomerErrors\n setCustomerEmail: SetCustomerEmail\n} & Partial<CustomerState>\n\nexport const defaultCustomerContext = {\n saveCustomerUser: async (): Promise<void> => {\n return\n },\n setCustomerErrors,\n setCustomerEmail,\n}\n\nconst CustomerContext = createContext<DefaultContext>(defaultCustomerContext)\n\nexport default CustomerContext\n","import { createContext } from 'react'\nimport { BillingAddressState } from '#reducers/BillingAddressReducer'\n\ntype DefaultContext = {\n setBillingAddress?: (\n id: string,\n options?: {\n customerAddressId: string\n }\n ) => void\n} & BillingAddressState\n\nexport const defaultBillingAddressContext = {\n setBillingAddress: (): void => {\n return\n },\n}\n\nconst BillingAddressContext = createContext<DefaultContext>(\n defaultBillingAddressContext\n)\n\nexport default BillingAddressContext\n","import { createContext } from 'react'\nimport { ShippingAddressState } from '#reducers/ShippingAddressReducer'\n\ntype DefaultContext = {\n setShippingAddress?: (\n id: string,\n options?: {\n customerAddressId: string\n }\n ) => void\n} & ShippingAddressState\n\nexport const defaultShippingAddressContext = {}\n\nconst ShippingAddressContext = createContext<DefaultContext>(\n defaultShippingAddressContext\n)\n\nexport default ShippingAddressContext\n","import baseReducer from '#utils/baseReducer'\nimport { Dispatch } from 'react'\nimport { BaseError } from '#typings/errors'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { Address, Order, OrderCollection } from '@commercelayer/js-sdk'\nimport { isEmpty } from 'lodash'\n\nexport type AddressActionType =\n | 'setErrors'\n | 'setAddress'\n | 'setShipToDifferentAddress'\n | 'setCloneAddress'\n | 'cleanup'\n\nexport type AddressField =\n | 'city'\n | 'company'\n | 'country_code'\n | 'first_name'\n | 'last_name'\n | 'line_1'\n | 'line_2'\n | 'phone'\n | 'state_code'\n | 'zip_code'\n | 'billing_info'\n\nexport type AddressFieldView = AddressField | 'full_address' | 'full_name'\n\nexport const addressFields: AddressField[] = [\n 'city',\n 'company',\n 'country_code',\n 'first_name',\n 'last_name',\n 'line_1',\n 'line_2',\n 'phone',\n 'state_code',\n 'zip_code',\n]\n\nexport type AddressResource = 'billingAddress' | 'shippingAddress'\n\nexport type AddressSchema = Record<AddressField | string, string>\n\nexport interface AddressActionPayload {\n errors: BaseError[]\n billingAddress: AddressSchema\n shippingAddress: AddressSchema\n shipToDifferentAddress: boolean\n billingAddressId: string\n shippingAddressId: string\n}\n\nexport type AddressState = Partial<AddressActionPayload>\n\nexport interface AddressAction {\n type: AddressActionType\n payload: Partial<AddressActionPayload>\n}\n\nexport const addressInitialState: AddressState = {\n errors: [],\n}\n\nexport interface SetAddressErrors {\n <V extends BaseError[]>(errors: V, dispatch?: Dispatch<AddressAction>): void\n}\n\nexport type SetAddressParams<V extends AddressSchema> = {\n values: V\n resource: AddressResource\n dispatch?: Dispatch<AddressAction>\n}\n\nexport interface SetAddress {\n <V extends AddressSchema>(params: SetAddressParams<V>): void\n}\n\nexport interface SaveAddresses {\n (params: {\n orderId?: string\n order?: OrderCollection | null\n getOrder?: (orderId: string) => void\n config: CommerceLayerConfig\n state: AddressState\n dispatch: Dispatch<AddressAction>\n }): Promise<void>\n}\n\nexport const setAddressErrors: SetAddressErrors = (errors, dispatch) => {\n dispatch &&\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n}\n\nexport const setAddress: SetAddress = ({ values, resource, dispatch }) => {\n dispatch &&\n dispatch({\n type: 'setAddress',\n payload: {\n [`${resource}`]: values,\n },\n })\n}\n\ntype SetCloneAddress = (\n id: string,\n resource: 'billingAddress' | 'shippingAddress',\n dispatch: Dispatch<AddressAction>\n) => void\n\nexport const setCloneAddress: SetCloneAddress = (id, resource, dispatch) => {\n dispatch({\n type: 'setCloneAddress',\n payload: {\n [`${resource}Id`]: id,\n },\n })\n}\n\nexport const saveAddresses: SaveAddresses = async ({\n config,\n getOrder,\n order,\n state,\n}) => {\n const {\n shipToDifferentAddress,\n billingAddress,\n shippingAddress,\n billingAddressId,\n shippingAddressId,\n } = state\n try {\n const currentBillingAddressRef = order?.billingAddress()?.reference\n const orderAttributes: Partial<Record<string, any>> = {\n _billingAddressCloneId: billingAddressId,\n _shippingAddressCloneId: billingAddressId,\n }\n if (currentBillingAddressRef === billingAddressId) {\n orderAttributes._billingAddressCloneId = order?.billingAddress()?.id\n orderAttributes._shippingAddressCloneId = order?.billingAddress()?.id\n }\n if (!isEmpty(billingAddress) && billingAddress) {\n delete orderAttributes._billingAddressCloneId\n delete orderAttributes._shippingAddressCloneId\n orderAttributes._shippingAddressSameAsBilling = true\n orderAttributes.billingAddress = await Address.withCredentials(\n config\n ).create(billingAddress)\n }\n if (shipToDifferentAddress) {\n delete orderAttributes._shippingAddressSameAsBilling\n if (shippingAddressId)\n orderAttributes._shippingAddressCloneId = shippingAddressId\n if (!isEmpty(shippingAddress) && shippingAddress) {\n delete orderAttributes._shippingAddressCloneId\n orderAttributes.shippingAddress = await Address.withCredentials(\n config\n ).create(shippingAddress)\n }\n }\n if (order && getOrder && !isEmpty(orderAttributes)) {\n const o = await Order.build({ id: order.id })\n await o.withCredentials(config).update(orderAttributes)\n await getOrder(order.id)\n }\n } catch (error) {\n console.error(error)\n }\n}\n\nconst type: AddressActionType[] = [\n 'setErrors',\n 'setAddress',\n 'setShipToDifferentAddress',\n 'setCloneAddress',\n 'cleanup',\n]\n\nconst addressReducer = (\n state: AddressState,\n reducer: AddressAction\n): AddressState =>\n baseReducer<AddressState, AddressAction, AddressActionType[]>(\n state,\n reducer,\n type\n )\n\nexport default addressReducer\n","import { createContext } from 'react'\nimport {\n AddressState,\n SetAddress,\n SetAddressErrors,\n setAddress,\n setAddressErrors,\n} from '#reducers/AddressReducer'\n\ntype DefaultContext = {\n saveAddresses: () => void\n setCloneAddress: (\n id: string,\n resource: 'billingAddress' | 'shippingAddress'\n ) => void\n setAddress: SetAddress\n setAddressErrors: SetAddressErrors\n} & AddressState\n\nexport const defaultAddressContext = {\n saveAddresses: (): void => {\n return\n },\n setCloneAddress: (): void => {\n return\n },\n setAddress,\n setAddressErrors,\n}\n\nconst AddressesContext = createContext<DefaultContext>(defaultAddressContext)\n\nexport default AddressesContext\n","import React, {\n FunctionComponent,\n Fragment,\n useContext,\n ReactNode,\n useState,\n useEffect,\n} from 'react'\nimport AddressChildrenContext from '#context/AddressChildrenContext'\nimport components from '#config/components'\nimport CustomerContext from '#context/CustomerContext'\nimport BillingAddressContext from '#context/BillingAddressContext'\nimport ShippingAddressContext from '#context/ShippingAddressContext'\nimport { AddressCollection } from '@commercelayer/js-sdk'\nimport isEmpty from 'lodash/isEmpty'\nimport AddressContext from '#context/AddressContext'\nimport OrderContext from '#context/OrderContext'\n\nconst propTypes = components.Address.propTypes\n\ntype Props = {\n children: ReactNode\n selectedClassName?: string\n disabledClassName?: string\n onSelect?: () => void\n addresses?: AddressCollection[]\n deselect?: boolean\n} & JSX.IntrinsicElements['div']\n\nconst Address: FunctionComponent<Props> = (props) => {\n const {\n children,\n className,\n selectedClassName = '',\n disabledClassName = '',\n onSelect,\n addresses = [],\n deselect = false,\n ...p\n } = props\n const { addresses: addressesContext } = useContext(CustomerContext)\n const { setBillingAddress, billingCustomerAddressId } = useContext(\n BillingAddressContext\n )\n const { setShippingAddress, shippingCustomerAddressId } = useContext(\n ShippingAddressContext\n )\n const { shipToDifferentAddress, billingAddressId, shippingAddressId } =\n useContext(AddressContext)\n const { order } = useContext(OrderContext)\n const [selected, setSelected] = useState<null | number | undefined>(null)\n const items = !isEmpty(addresses)\n ? addresses\n : (addressesContext && addressesContext) || []\n useEffect(() => {\n if (items && !deselect) {\n items.map((address, k) => {\n if (billingCustomerAddressId) {\n const preselected = address.reference === billingCustomerAddressId\n if (preselected && selected === null) {\n setSelected(k)\n }\n }\n if (!billingAddressId && k === selected) {\n setBillingAddress &&\n setBillingAddress(address.id, {\n customerAddressId: address.customerAddressId as string,\n })\n }\n if (shippingCustomerAddressId) {\n const preselected = address.reference === shippingCustomerAddressId\n preselected && selected === null && setSelected(k)\n }\n if (!shippingAddressId && k === selected) {\n setShippingAddress &&\n setShippingAddress(address.id, {\n customerAddressId: address.customerAddressId as string,\n })\n }\n })\n }\n if (deselect) {\n const disabledSaveButton = async () => {\n setBillingAddress && (await setBillingAddress(''))\n setShippingAddress && (await setShippingAddress(''))\n }\n disabledSaveButton()\n }\n }, [\n deselect,\n billingCustomerAddressId,\n shippingCustomerAddressId,\n addressesContext,\n shipToDifferentAddress,\n ])\n const handleSelect = async (\n k: number,\n addressId: string,\n customerAddressId: string,\n disabled: boolean\n ) => {\n !disabled && setSelected(k)\n setBillingAddress &&\n (await setBillingAddress(addressId, { customerAddressId }))\n !disabled &&\n setShippingAddress &&\n (await setShippingAddress(addressId, { customerAddressId }))\n onSelect && onSelect()\n }\n const components = items.map((address, k) => {\n const addressProps = {\n address,\n }\n const countryLock = order?.shippingCountryCodeLock\n const disabled =\n (setShippingAddress &&\n countryLock &&\n countryLock !== address.countryCode) ||\n false\n const selectedClass = deselect ? '' : selectedClassName\n const addressSelectedClass =\n selected === k ? `${className} ${selectedClass}` : className\n const customerAddressId: string = address?.customerAddressId || ''\n const finalClassName = disabled\n ? `${className} ${disabledClassName}`\n : addressSelectedClass\n return (\n <AddressChildrenContext.Provider key={k} value={addressProps}>\n <div\n className={finalClassName}\n onClick={() =>\n handleSelect(k, address.id, customerAddressId, disabled)\n }\n data-disabled={disabled}\n {...p}\n >\n {children}\n </div>\n </AddressChildrenContext.Provider>\n )\n })\n return <Fragment>{components}</Fragment>\n}\n\nAddress.propTypes = propTypes\n\nexport default Address\n","import React, { ForwardRefRenderFunction } from 'react'\nimport Parent from './Parent'\nimport { BaseSelectComponentProps } from '#typings'\nimport { findIndex } from 'lodash'\n\nexport type BaseSelectProps = BaseSelectComponentProps\n\nconst BaseSelect: ForwardRefRenderFunction<any, BaseSelectProps> = (\n props,\n ref\n) => {\n const {\n options = [],\n children,\n placeholder = { label: 'Select an option', value: '' },\n value = '',\n ...p\n } = props\n if (findIndex(options, placeholder) === -1) {\n options.unshift(placeholder)\n } else {\n options[0] = placeholder\n }\n const Options = options.map((o, k) => {\n const { label, ...option } = o\n return (\n <option key={k} {...option}>\n {label}\n </option>\n )\n })\n const parentProps = {\n options,\n ref,\n ...p,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <select ref={ref} defaultValue={value} {...p}>\n {Options}\n </select>\n )\n}\n\nexport default React.forwardRef(BaseSelect)\n","import { createContext, RefObject } from 'react'\nimport { AddressCountrySelectName, AddressInputName } from '#typings'\nimport { AddressField } from '#reducers/AddressReducer'\n\nexport type DefaultContextAddress = {\n validation?: () => RefObject<any>\n setValue?: (\n name: AddressField | AddressInputName | AddressCountrySelectName,\n value: any\n ) => void\n errors?: Record<string, { code: string; message: string; error: boolean }>[]\n errorClassName?: string\n requiresBillingInfo?: boolean\n}\n\nconst BillingAddressFormContext = createContext<DefaultContextAddress>({})\n\nexport default BillingAddressFormContext\n","import { createContext } from 'react'\nimport { DefaultContextAddress } from './BillingAddressFormContext'\n\nconst ShippingAddressFormContext = createContext<DefaultContextAddress>({})\n\nexport default ShippingAddressFormContext\n","import React, {\n FunctionComponent,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport BaseSelect from './utils/BaseSelect'\nimport countriesOptions from '#config/countries.json'\nimport components from '#config/components'\nimport { AddressCountrySelectName, BaseSelectComponentProps } from '#typings'\nimport BillingAddressFormContext from '#context/BillingAddressFormContext'\nimport ShippingAddressFormContext from '#context/ShippingAddressFormContext'\nimport isEmpty from 'lodash/isEmpty'\n\nconst propTypes = components.AddressCountrySelector.propTypes\nconst defaultProps = components.AddressCountrySelector.defaultProps\nconst displayName = components.AddressCountrySelector.displayName\n\ntype AddressCountrySelectorProps = Omit<\n BaseSelectComponentProps,\n 'options' | 'name'\n> & {\n name: AddressCountrySelectName\n required?: boolean\n disabled?: boolean\n} & Pick<JSX.IntrinsicElements['select'], 'className' | 'id' | 'style'>\n\nconst AddressCountrySelector: FunctionComponent<AddressCountrySelectorProps> = (\n props\n) => {\n const { required = true, value, name, className, ...p } = props\n const billingAddress = useContext(BillingAddressFormContext)\n const shippingAddress = useContext(ShippingAddressFormContext)\n const [hasError, setHasError] = useState(false)\n useEffect(() => {\n if (value && billingAddress?.setValue) {\n billingAddress.setValue(name, value)\n }\n if (value && shippingAddress?.setValue) {\n shippingAddress.setValue(name, value)\n }\n if (\n !isEmpty(billingAddress.errors) &&\n billingAddress?.errors?.[name as any]?.error\n ) {\n setHasError(true)\n }\n if (isEmpty(billingAddress?.errors?.[name as any]) && hasError)\n setHasError(false)\n\n if (\n !isEmpty(shippingAddress.errors) &&\n shippingAddress?.errors?.[name as any]?.error\n ) {\n setHasError(true)\n }\n if (isEmpty(shippingAddress?.errors?.[name as any]) && hasError)\n setHasError(false)\n\n return () => {\n setHasError(false)\n }\n }, [value, billingAddress?.errors, shippingAddress?.errors])\n const errorClassName =\n billingAddress?.errorClassName || shippingAddress?.errorClassName\n const classNameComputed = `${className} ${hasError ? errorClassName : ''}`\n return (\n <BaseSelect\n className={classNameComputed}\n ref={billingAddress?.validation || shippingAddress?.validation}\n required={required}\n options={countriesOptions}\n name={name}\n value={value}\n {...p}\n />\n )\n}\n\nAddressCountrySelector.propTypes = propTypes\nAddressCountrySelector.defaultProps = defaultProps\nAddressCountrySelector.displayName = displayName\n\nexport default AddressCountrySelector\n","import React, { useContext, FunctionComponent, ReactNode } from 'react'\nimport AddressChildrenContext from '#context/AddressChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { AddressFieldView } from '#reducers/AddressReducer'\nimport { camelCase, get } from 'lodash'\nimport { AddressCollection } from '@commercelayer/js-sdk'\n\nconst propTypes = components.AddressField.propTypes\nconst displayName = components.AddressField.displayName\n\ntype AddressFieldChildrenProps = Omit<\n AddressFieldProps,\n 'children' | 'name'\n> & {\n address: AddressCollection\n}\n\ntype AddressFieldProps = (\n | {\n children?: (props: AddressFieldChildrenProps) => ReactNode\n name: AddressFieldView\n }\n | {\n children: (props: AddressFieldChildrenProps) => ReactNode\n name?: AddressFieldView\n }\n) &\n JSX.IntrinsicElements['p']\n\nconst AddressField: FunctionComponent<AddressFieldProps> = (props) => {\n const { name } = props\n const { address } = useContext(AddressChildrenContext)\n const key = camelCase(name)\n const text = get(address, key)\n const parentProps = {\n address,\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <p {...props}>{text}</p>\n )\n}\n\nAddressField.propTypes = propTypes\nAddressField.displayName = displayName\n\nexport default AddressField\n","import React, { ForwardRefRenderFunction } from 'react'\nimport { BaseInputComponentProps } from '#typings/index'\nimport Parent from './Parent'\n\nexport type BaseInputProps = BaseInputComponentProps &\n JSX.IntrinsicElements['input'] &\n JSX.IntrinsicElements['textarea']\n\nconst BaseInput: ForwardRefRenderFunction<any, BaseInputProps> = (\n props,\n ref\n) => {\n const { children, ...p } = props\n const input =\n props.type === 'textarea' ? (\n <textarea ref={ref} {...p} />\n ) : (\n <input ref={ref} {...p} />\n )\n return children ? <Parent {...p}>{children}</Parent> : input\n}\n\nexport default React.forwardRef(BaseInput)\n","import React, {\n FunctionComponent,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport BaseInput from './utils/BaseInput'\nimport components from '#config/components'\nimport { BaseInputComponentProps, AddressInputName } from '#typings'\nimport BillingAddressFormContext from '#context/BillingAddressFormContext'\nimport ShippingAddressFormContext from '#context/ShippingAddressFormContext'\nimport isEmpty from 'lodash/isEmpty'\n\nconst propTypes = components.AddressInput.propTypes\nconst displayName = components.AddressInput.displayName\n\nexport type AddressInputProps = {\n name: AddressInputName\n} & Omit<BaseInputComponentProps, 'name'> &\n JSX.IntrinsicElements['input'] &\n JSX.IntrinsicElements['textarea']\n\nconst AddressInput: FunctionComponent<AddressInputProps> = (props) => {\n const { placeholder = '', required, value, className, ...p } = props\n const billingAddress = useContext(BillingAddressFormContext)\n const shippingAddress = useContext(ShippingAddressFormContext)\n const [hasError, setHasError] = useState(false)\n useEffect(() => {\n if (value && billingAddress?.setValue) {\n billingAddress.setValue(p.name, value)\n }\n if (value && shippingAddress?.setValue) {\n shippingAddress.setValue(p.name, value)\n }\n if (\n !isEmpty(billingAddress.errors) &&\n billingAddress?.errors?.[p.name as any]?.error\n ) {\n setHasError(true)\n }\n if (isEmpty(billingAddress?.errors?.[p.name as any]) && hasError)\n setHasError(false)\n\n if (\n !isEmpty(shippingAddress.errors) &&\n shippingAddress?.errors?.[p.name as any]?.error\n ) {\n setHasError(true)\n }\n if (isEmpty(shippingAddress?.errors?.[p.name as any]) && hasError)\n setHasError(false)\n\n return () => {\n setHasError(false)\n }\n }, [value, billingAddress?.errors, shippingAddress?.errors])\n const errorClassName =\n billingAddress?.errorClassName || shippingAddress?.errorClassName\n const classNameComputed = `${className} ${hasError ? errorClassName : ''}`\n if (\n p.name === 'billing_address_billing_info' &&\n !billingAddress.requiresBillingInfo\n )\n return null\n return (\n <BaseInput\n ref={billingAddress?.validation || shippingAddress?.validation}\n className={classNameComputed}\n required={required !== undefined ? required : true}\n placeholder={placeholder}\n defaultValue={value}\n {...p}\n />\n )\n}\n\nAddressInput.propTypes = propTypes\nAddressInput.displayName = displayName\n\nexport default AddressInput\n","import { createContext } from 'react'\n\nexport interface CommerceLayerConfig {\n accessToken: string\n endpoint: string\n cache: boolean\n}\n\nconst initial: CommerceLayerConfig = {\n accessToken: '',\n endpoint: '',\n cache: false,\n}\n\nconst CommerceLayerContext = createContext(initial)\n\nexport default CommerceLayerContext\n","import AddressesContext, {\n defaultAddressContext,\n} from '#context/AddressContext'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useReducer,\n} from 'react'\nimport addressReducer, {\n addressInitialState,\n AddressSchema,\n SetAddressParams,\n setCloneAddress,\n} from '#reducers/AddressReducer'\nimport { BaseError } from '#typings/errors'\nimport OrderContext from '#context/OrderContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport { saveAddresses } from '#reducers/AddressReducer'\nimport components from '#config/components'\n\nconst propTypes = components.AddressesContainer.propTypes\nconst displayName = components.AddressesContainer.displayName\n\nexport type AddressesContainerProps = {\n children: ReactNode\n shipToDifferentAddress?: boolean\n}\nconst AddressesContainer: FunctionComponent<AddressesContainerProps> = (\n props\n) => {\n const { children, shipToDifferentAddress = false } = props\n const [state, dispatch] = useReducer(addressReducer, addressInitialState)\n const { order, orderId, getOrder } = useContext(OrderContext)\n const config = useContext(CommerceLayerContext)\n useEffect(() => {\n dispatch({\n type: 'setShipToDifferentAddress',\n payload: {\n shipToDifferentAddress,\n },\n })\n return () => {\n dispatch({\n type: 'cleanup',\n payload: {},\n })\n }\n }, [shipToDifferentAddress])\n const contextValue = {\n ...state,\n setAddressErrors: (errors: BaseError[]) =>\n defaultAddressContext['setAddressErrors'](errors, dispatch),\n setAddress: (params: SetAddressParams<AddressSchema>) =>\n defaultAddressContext['setAddress']({ ...params, dispatch }),\n saveAddresses: async (): Promise<void> =>\n await saveAddresses({\n config,\n dispatch,\n getOrder,\n order,\n orderId,\n state,\n }),\n setCloneAddress: (\n id: string,\n resource: 'billingAddress' | 'shippingAddress'\n ): void => setCloneAddress(id, resource, dispatch),\n }\n return (\n <AddressesContext.Provider value={contextValue}>\n {children}\n </AddressesContext.Provider>\n )\n}\n\nAddressesContainer.propTypes = propTypes\nAddressesContainer.displayName = displayName\n\nexport default AddressesContainer\n","import baseReducer from '#utils/baseReducer'\nimport { BaseError } from '#typings/errors'\nimport { Sku } from '@commercelayer/js-sdk'\nimport { first } from 'lodash'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { Dispatch } from 'react'\n\nexport interface LeadTimes {\n hours: number\n days: number\n}\n\nexport interface ShippingMethod {\n name: string\n reference: null | string\n priceAmountCents: number\n freeOverAmountCents: null | number\n formattedPriceAmount: string\n formattedFreeOverAmount: null | string\n}\n\nexport interface AvailabilityPayload {\n quantity?: number | null\n shippingMethod?: ShippingMethod\n errors?: BaseError[]\n}\n\nexport interface AvailabilityState extends AvailabilityPayload {\n min: LeadTimes\n max: LeadTimes\n}\n\nexport interface AvailabilityAction {\n type: AvailabilityActionType\n payload: AvailabilityPayload\n}\n\nexport const availabilityInitialState: AvailabilityState = {\n quantity: null,\n min: {\n days: 0,\n hours: 0,\n },\n max: {\n days: 0,\n hours: 0,\n },\n errors: [],\n}\n\ninterface GetAvailability {\n (args: {\n skuCode: string\n dispatch: Dispatch<AvailabilityAction>\n config: CommerceLayerConfig\n }): void\n}\n\nexport const getAvailability: GetAvailability = async ({\n skuCode,\n dispatch,\n config,\n}) => {\n const sku = await Sku.withCredentials(config)\n .select('id')\n .where({ codeIn: skuCode })\n .first()\n const inventorySku = await Sku.withCredentials(config)\n .select('inventory')\n .find(sku.id as string)\n const firstLevel = first(inventorySku?.inventory?.levels)\n const firstDelivery = first(firstLevel?.deliveryLeadTimes)\n dispatch({\n type: 'setAvailability',\n payload: { ...firstDelivery, quantity: firstLevel?.quantity },\n })\n}\n\nexport type AvailabilityActionType = 'setAvailability' | 'setErrors'\n\nconst typeAction: AvailabilityActionType[] = ['setAvailability', 'setErrors']\n\nconst availabilityReducer = (\n state: AvailabilityState,\n reducer: AvailabilityAction\n): AvailabilityState =>\n baseReducer<AvailabilityState, AvailabilityAction, AvailabilityActionType[]>(\n state,\n reducer,\n typeAction\n )\n\nexport default availabilityReducer\n","import { createContext } from 'react'\nimport { availabilityInitialState } from '#reducers/AvailabilityReducer'\n\nconst AvailabilityContext = createContext(availabilityInitialState)\n\nexport default AvailabilityContext\n","import { createContext } from 'react'\nimport { LineItemCollection } from '@commercelayer/js-sdk'\n\nexport interface InitialLineItemContext {\n lineItem: LineItemCollection | Record<string, any>\n}\n\nconst initial: InitialLineItemContext = {\n lineItem: {},\n}\n\nconst LineItemChildrenContext = createContext<InitialLineItemContext>(initial)\n\nexport default LineItemChildrenContext\n","import React, {\n useContext,\n useReducer,\n FunctionComponent,\n useEffect,\n ReactNode,\n} from 'react'\nimport availabilityReducer, {\n availabilityInitialState,\n getAvailability,\n} from '#reducers/AvailabilityReducer'\nimport AvailabilityContext from '#context/AvailabilityContext'\nimport { isEmpty, first } from 'lodash'\nimport ItemContext from '#context/ItemContext'\nimport getCurrentItemKey from '#utils/getCurrentItemKey'\nimport components from '#config/components'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\n\nconst propTypes = components.AvailabilityContainer.propTypes\nconst displayName = components.AvailabilityContainer.displayName\n\ntype AvailabilityContainerProps = {\n children: ReactNode\n skuCode?: string\n}\n\nconst AvailabilityContainer: FunctionComponent<AvailabilityContainerProps> = (\n props\n) => {\n const { children, skuCode } = props\n const { item, skuCode: itemSkuCode } = useContext(ItemContext)\n const { lineItem } = useContext(LineItemChildrenContext)\n const config = useContext(CommerceLayerContext)\n const [state, dispatch] = useReducer(\n availabilityReducer,\n availabilityInitialState\n )\n useEffect(() => {\n const sCode =\n skuCode || getCurrentItemKey(item) || itemSkuCode || lineItem?.skuCode\n if (sCode) {\n const firstLevel = first(item[sCode]?.inventory?.levels) || {\n quantity: null,\n deliveryLeadTimes: [],\n }\n if (!isEmpty(firstLevel) && firstLevel.deliveryLeadTimes.length > 0) {\n const firstDelivery = first(firstLevel.deliveryLeadTimes)\n dispatch({\n type: 'setAvailability',\n payload: { ...firstDelivery, quantity: firstLevel?.quantity },\n })\n } else if (config.accessToken) {\n getAvailability({ skuCode: sCode, config, dispatch })\n }\n }\n return (): void => {\n dispatch({\n type: 'setAvailability',\n payload: {},\n })\n }\n }, [config.accessToken, item, itemSkuCode])\n return (\n <AvailabilityContext.Provider value={{ ...state }}>\n {children}\n </AvailabilityContext.Provider>\n )\n}\n\nAvailabilityContainer.propTypes = propTypes\nAvailabilityContainer.displayName = displayName\n\nexport default AvailabilityContainer\n","import React, { useContext, FunctionComponent } from 'react'\nimport AvailabilityContext from '#context/AvailabilityContext'\nimport Parent from './utils/Parent'\nimport { isEmpty } from 'lodash'\nimport components from '#config/components'\nimport { TimeFormat, FunctionChildren } from '#typings/index'\nimport { LeadTimes, ShippingMethod } from '#reducers/AvailabilityReducer'\n\nconst propTypes = components.AvailabilityTemplate.propTypes\nconst defaultProps = components.AvailabilityTemplate\n .defaultProps as AvailabilityTemplateProps\nconst displayName = components.AvailabilityTemplate.displayName\n\ntype AvailabilityTemplateChildrenProps = FunctionChildren<\n Omit<AvailabilityTemplateProps, 'children'> & {\n min: LeadTimes\n max: LeadTimes\n shippingMethod: ShippingMethod\n quanity: number\n }\n>\n\ntype AvailabilityTemplateProps = {\n children?: AvailabilityTemplateChildrenProps\n timeFormat?: TimeFormat\n showShippingMethodName?: boolean\n} & JSX.IntrinsicElements['p']\n\nconst AvailabilityTemplate: FunctionComponent<AvailabilityTemplateProps> = (\n props\n) => {\n const { timeFormat, showShippingMethodName, children, ...p } = props\n const { min, max, shippingMethod, quantity } = useContext(AvailabilityContext)\n const mn = !isEmpty(min) && timeFormat ? min[timeFormat] : ''\n const mx = !isEmpty(max) && timeFormat ? max[timeFormat] : ''\n const text: string[] = []\n const name =\n showShippingMethodName && shippingMethod\n ? `with ${shippingMethod.name}`\n : ''\n if (quantity && quantity > 0) {\n text.push('Available')\n if (mn && mx) {\n text.push(`in ${mn} - ${mx} ${timeFormat} ${name}`)\n }\n } else if (quantity === 0) {\n text.push('Out of stock')\n }\n const parentProps = {\n min,\n max,\n shippingMethod,\n quantity,\n ...props,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <p {...p}>{text.join(' ')}</p>\n )\n}\n\nAvailabilityTemplate.propTypes = propTypes\nAvailabilityTemplate.defaultProps = defaultProps\nAvailabilityTemplate.displayName = displayName\n\nexport default AvailabilityTemplate\n","import baseReducer from '#utils/baseReducer'\nimport { Dispatch } from 'react'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { Address, OrderCollection } from '@commercelayer/js-sdk'\nimport { getOrderContext } from '#reducers/OrderReducer'\n\nexport type BillingAddressActionType =\n | 'setBillingAddress'\n | 'setBillingCustomerAddressId'\n | 'cleanup'\n\nexport interface BillingAddressActionPayload {\n _billingAddressCloneId: string\n billingCustomerAddressId: string\n}\n\nexport type BillingAddressState = Partial<BillingAddressActionPayload>\n\nexport interface BillingAddressAction {\n type: BillingAddressActionType\n payload: Partial<BillingAddressActionPayload>\n}\n\nexport const billingAddressInitialState: BillingAddressState = {\n _billingAddressCloneId: '',\n}\n\nexport type SetBillingAddress = (\n id: string,\n options?: {\n config: CommerceLayerConfig\n dispatch: Dispatch<BillingAddressAction>\n order?: OrderCollection\n getOrder?: getOrderContext\n shipToDifferentAddress?: boolean\n customerAddressId?: string\n }\n) => Promise<void>\n\nexport const setBillingAddress: SetBillingAddress = async (id, options) => {\n try {\n if (options?.order) {\n if (options.customerAddressId) {\n const address = await Address.withCredentials(options.config).find(id)\n if (address.reference !== options.customerAddressId) {\n await address.withCredentials(options.config).update({\n reference: options.customerAddressId,\n })\n }\n }\n options.dispatch({\n type: 'setBillingAddress',\n payload: {\n _billingAddressCloneId: id,\n },\n })\n }\n } catch (error) {\n console.error(error)\n }\n}\n\ntype SetBillingCustomerAddressId = (args: {\n dispatch: Dispatch<BillingAddressAction>\n order: OrderCollection\n setCloneAddress: (\n id: string,\n resource: 'billingAddress' | 'shippingAddress'\n ) => void\n}) => void\n\nexport const setBillingCustomerAddressId: SetBillingCustomerAddressId = async ({\n dispatch,\n order,\n setCloneAddress,\n}) => {\n let customerAddressId = order?.billingAddress()?.customerAddressId\n try {\n if (!customerAddressId) {\n // @ts-ignore\n const address = await order.loadBillingAddress()\n customerAddressId = address?.reference\n }\n if (customerAddressId) {\n dispatch({\n type: 'setBillingCustomerAddressId',\n payload: { billingCustomerAddressId: customerAddressId },\n })\n setCloneAddress(customerAddressId, 'billingAddress')\n }\n } catch (error) {\n console.error('error', error)\n }\n}\n\nconst type: BillingAddressActionType[] = [\n 'setBillingAddress',\n 'setBillingCustomerAddressId',\n 'cleanup',\n]\n\nconst billingAddressReducer = (\n state: BillingAddressState,\n reducer: BillingAddressAction\n): BillingAddressState =>\n baseReducer<\n BillingAddressState,\n BillingAddressAction,\n BillingAddressActionType[]\n >(state, reducer, type)\n\nexport default billingAddressReducer\n","import BillingAddressContext from '#context/BillingAddressContext'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useReducer,\n} from 'react'\nimport billingAddressReducer, {\n billingAddressInitialState,\n setBillingAddress,\n setBillingCustomerAddressId,\n} from '#reducers/BillingAddressReducer'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport components from '#config/components'\nimport OrderContext from '#context/OrderContext'\nimport AddressContext from '#context/AddressContext'\n\nconst propTypes = components.BillingAddressContainer.propTypes\n\ntype Props = {\n children: ReactNode\n}\nconst BillingAddressContainer: FunctionComponent<Props> = (props) => {\n const { children } = props\n const [state, dispatch] = useReducer(\n billingAddressReducer,\n billingAddressInitialState\n )\n const config = useContext(CommerceLayerContext)\n const { order, getOrder } = useContext(OrderContext)\n const { shipToDifferentAddress, setCloneAddress } = useContext(AddressContext)\n useEffect(() => {\n if (order && config) {\n setBillingCustomerAddressId({\n dispatch,\n order,\n setCloneAddress,\n })\n }\n return () => {\n dispatch({\n type: 'cleanup',\n payload: {},\n })\n }\n }, [order])\n const contextValue = {\n ...state,\n setBillingAddress: async (\n id: string,\n options?: { customerAddressId: string }\n ) => {\n await setBillingAddress(id, {\n config,\n dispatch,\n order,\n getOrder,\n shipToDifferentAddress,\n customerAddressId: options?.customerAddressId,\n })\n setCloneAddress(id, 'billingAddress')\n },\n }\n return (\n <BillingAddressContext.Provider value={contextValue}>\n {children}\n </BillingAddressContext.Provider>\n )\n}\n\nBillingAddressContainer.propTypes = propTypes\n\nexport default BillingAddressContainer\n","export interface GetLocalOrder {\n (key: string): string | null\n}\n\nexport const getLocalOrder: GetLocalOrder = (key) => {\n return localStorage.getItem(key)\n}\n\nexport interface SetLocalOrder {\n (key: string, value: string): void\n}\n\nexport const setLocalOrder: SetLocalOrder = (key, value) => {\n localStorage.setItem(key, value)\n}\n\nexport interface DeleteLocalOrder {\n (key: string): void\n}\n\nexport const deleteLocalOrder: DeleteLocalOrder = (key) => {\n localStorage.removeItem(key)\n}\n","import { createContext } from 'react'\nimport {\n getLocalOrder,\n setLocalOrder,\n deleteLocalOrder,\n} from '#utils/localStorage'\n\nexport interface OrderStorageConfig {\n persistKey: string\n clearWhenPlaced: boolean\n getLocalOrder: typeof getLocalOrder\n setLocalOrder: typeof setLocalOrder\n deleteLocalOrder: typeof deleteLocalOrder\n}\n\nconst initial: OrderStorageConfig = {\n persistKey: '',\n clearWhenPlaced: true,\n getLocalOrder,\n setLocalOrder,\n deleteLocalOrder,\n}\n\nconst OrderStorageContext = createContext<OrderStorageConfig>(initial)\n\nexport default OrderStorageContext\n","import AddressesContext from '#context/AddressContext'\nimport useRapidForm from 'rapid-form'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n} from 'react'\nimport BillingAddressFormContext from '#context/BillingAddressFormContext'\nimport { isEmpty } from 'lodash'\nimport { BaseError, CodeErrorType } from '#typings/errors'\nimport { AddressField } from '#reducers/AddressReducer'\nimport { AddressCountrySelectName, AddressInputName } from '#typings'\nimport components from '#config/components'\nimport OrderContext from '#context/OrderContext'\nimport OrderStorageContext from '#context/OrderStorageContext'\n\nconst propTypes = components.BillingAddressForm.propTypes\n\ntype BillingAddressFormProps = {\n children: ReactNode\n reset?: boolean\n errorClassName?: string\n} & Omit<JSX.IntrinsicElements['form'], 'onSubmit'>\n\nconst BillingAddressForm: FunctionComponent<BillingAddressFormProps> = (\n props\n) => {\n const {\n children,\n errorClassName,\n autoComplete = 'on',\n reset = false,\n ...p\n } = props\n const { validation, values, errors, reset: resetForm } = useRapidForm()\n const { setAddressErrors, setAddress } = useContext(AddressesContext)\n const { saveAddressToCustomerAddressBook, order } = useContext(OrderContext)\n const { setLocalOrder } = useContext(OrderStorageContext)\n const ref = useRef<HTMLFormElement>(null)\n useEffect(() => {\n if (!isEmpty(errors)) {\n const formErrors: BaseError[] = []\n for (const fieldName in errors) {\n const { code, message } = errors[fieldName]\n formErrors.push({\n code: code as CodeErrorType,\n message,\n resource: 'billingAddress',\n field: fieldName,\n })\n }\n !isEmpty(formErrors) && setAddressErrors(formErrors)\n } else if (!isEmpty(values)) {\n setAddressErrors([])\n for (const name in values) {\n const field = values[name]\n if (field?.value) {\n values[name.replace('billing_address_', '')] = field.value\n delete values[name]\n }\n if (field?.type === 'checkbox') {\n delete values[name]\n saveAddressToCustomerAddressBook('BillingAddress', field.checked)\n setLocalOrder(\n 'saveBillingAddressToCustomerAddressBook',\n field.checked\n )\n }\n }\n setAddress({ values, resource: 'billingAddress' })\n }\n if (reset && (!isEmpty(values) || !isEmpty(errors))) {\n saveAddressToCustomerAddressBook &&\n saveAddressToCustomerAddressBook('BillingAddress', false)\n if (ref) {\n ref.current?.reset()\n resetForm({ target: ref.current } as any)\n setAddressErrors([])\n setAddress({ values: {}, resource: 'billingAddress' })\n }\n }\n }, [errors, values, reset])\n const setValue = (\n name: AddressField | AddressInputName | AddressCountrySelectName,\n value: any\n ) => {\n const field: any = {\n [name.replace('billing_address_', '')]: value,\n }\n setAddress({ values: { ...values, ...field }, resource: 'billingAddress' })\n }\n const providerValues = {\n validation,\n setValue,\n errorClassName,\n // @ts-ignore\n requiresBillingInfo: order?.requiresBillingInfo || false,\n errors: errors as any,\n }\n return (\n <BillingAddressFormContext.Provider value={providerValues}>\n <form ref={ref} autoComplete={autoComplete} {...p}>\n {children}\n </form>\n </BillingAddressFormContext.Provider>\n )\n}\n\nBillingAddressForm.propTypes = propTypes\n\nexport default BillingAddressForm\n","import React, { FunctionComponent, useContext } from 'react'\nimport OrderContext from '#context/OrderContext'\nimport components from '#config/components'\nimport Parent from './utils/Parent'\nimport { FunctionChildren } from '#typings/index'\n\nconst propTypes = components.CheckoutLink.propTypes\nconst defaultProps = components.CheckoutLink.defaultProps\nconst displayName = components.CheckoutLink.displayName\n\ntype CheckoutLinkChildrenProps = FunctionChildren<\n Omit<CheckoutLinkProps, 'children'> & {\n checkoutUrl: string\n }\n>\n\ntype CheckoutLinkProps = {\n children?: CheckoutLinkChildrenProps\n label?: string\n} & JSX.IntrinsicElements['a']\n\nconst CheckoutLink: FunctionComponent<CheckoutLinkProps> = (props) => {\n const { label, children, ...p } = props\n const { order } = useContext(OrderContext)\n const parentProps = {\n checkoutUrl: order?.checkoutUrl,\n label,\n ...p,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <a href={order?.checkoutUrl} {...p}>\n {label}\n </a>\n )\n}\n\nCheckoutLink.propTypes = propTypes\nCheckoutLink.defaultProps = defaultProps\nCheckoutLink.displayName = displayName\n\nexport default CheckoutLink\n","import React, { FunctionComponent, ReactNode } from 'react'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport components from '#config/components'\n\nconst propTypes = components.CommerceLayer.propTypes\n\ntype CommerceLayerProps = {\n children: ReactNode\n accessToken: string\n endpoint: string\n cache?: boolean\n}\n\nconst CommerceLayer: FunctionComponent<CommerceLayerProps> = (props) => {\n const { children, cache = false, ...p } = props\n return (\n <CommerceLayerContext.Provider value={{ ...p, cache }}>\n {children}\n </CommerceLayerContext.Provider>\n )\n}\n\nCommerceLayer.propTypes = propTypes\nCommerceLayer.defaultProps = {\n cache: false,\n}\n\nexport default CommerceLayer\n","import React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useReducer,\n useMemo,\n} from 'react'\nimport customerReducer, {\n customerInitialState,\n getCustomerAddresses,\n getCustomerOrders,\n getCustomerPaymentSources,\n} from '#reducers/CustomerReducer'\nimport OrderContext from '#context/OrderContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport components from '#config/components'\nimport { saveCustomerUser } from '#reducers/CustomerReducer'\nimport { getOrderContext } from '#reducers/OrderReducer'\nimport CustomerContext from '#context/CustomerContext'\nimport { defaultCustomerContext } from '#context/CustomerContext'\nimport { BaseError } from '#typings/errors'\nimport { isEmpty } from 'lodash'\n\nconst propTypes = components.CustomerContainer.propTypes\nconst displayName = components.CustomerContainer.displayName\n\nexport type CustomerContainer = {\n children: ReactNode\n isGuest?: boolean\n}\nconst CustomerContainer: FunctionComponent<CustomerContainer> = (props) => {\n const { children, isGuest = false } = props\n const [state, dispatch] = useReducer(customerReducer, customerInitialState)\n const { order, getOrder } = useContext(OrderContext)\n const config = useContext(CommerceLayerContext)\n useEffect(() => {\n if (config.accessToken) {\n if (isEmpty(state.addresses) && !isGuest) {\n getCustomerAddresses({ config, dispatch })\n }\n if (order && isEmpty(state.payments) && !isGuest) {\n getCustomerPaymentSources({ config, dispatch, order })\n }\n if (isEmpty(order) && isEmpty(state.orders)) {\n getCustomerOrders({ config, dispatch })\n }\n }\n\n return () => {\n dispatch({ type: 'setCustomerEmail', payload: {} })\n }\n }, [config.accessToken, order, isGuest])\n const contextValue = useMemo(\n () => ({\n isGuest,\n ...state,\n saveCustomerUser: async (customerEmail: string) => {\n await saveCustomerUser({\n config,\n customerEmail,\n dispatch,\n getOrder: getOrder as getOrderContext,\n order,\n })\n },\n setCustomerErrors: (errors: BaseError[]) =>\n defaultCustomerContext['setCustomerErrors'](errors, dispatch),\n setCustomerEmail: (customerEmail: string) =>\n defaultCustomerContext['setCustomerEmail'](customerEmail, dispatch),\n }),\n [state]\n )\n return (\n <CustomerContext.Provider value={contextValue}>\n {children}\n </CustomerContext.Provider>\n )\n}\n\nCustomerContainer.propTypes = propTypes\nCustomerContainer.displayName = displayName\n\nexport default CustomerContainer\n","import React, { useContext, FunctionComponent, ReactNode } from 'react'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport get from 'lodash/get'\nimport CustomerContext from '#context/CustomerContext'\n\nconst propTypes = components.CustomerField.propTypes\nconst displayName = components.CustomerField.displayName\n\ntype CustomerFieldChildrenProps = Omit<\n CustomerFieldProps,\n 'children' | 'name'\n> & {\n text: string\n}\n\ntype CustomerFieldProps = {\n children?: (props: CustomerFieldChildrenProps) => ReactNode\n name: 'email'\n} & JSX.IntrinsicElements['p']\n\nconst CustomerField: FunctionComponent<CustomerFieldProps> = (props) => {\n const { name } = props\n const { attributes } = useContext(CustomerContext)\n const text = get(attributes, name)\n const parentProps = {\n text,\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <span {...props}>{text}</span>\n )\n}\n\nCustomerField.propTypes = propTypes\nCustomerField.displayName = displayName\n\nexport default CustomerField\n","import React, {\n FunctionComponent,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport BaseInput from './utils/BaseInput'\nimport components from '#config/components'\nimport { BaseInputComponentProps } from '#typings'\nimport useRapidForm from 'rapid-form'\nimport CustomerContext from '#context/CustomerContext'\nimport isEmpty from 'lodash/isEmpty'\nimport { BaseError, CodeErrorType } from '#typings/errors'\n\nconst propTypes = components.CustomerInput.propTypes\nconst displayName = components.CustomerInput.displayName\n\ntype CustomerInputProps = {\n name?: 'customer_email' | string\n type?: 'email' | string\n saveOnBlur?: boolean\n onBlur?: () => void\n errorClassName?: string\n} & Omit<BaseInputComponentProps, 'name' | 'type' | 'onBlur'> &\n JSX.IntrinsicElements['input'] &\n JSX.IntrinsicElements['textarea']\n\nconst CustomerInput: FunctionComponent<CustomerInputProps> = (props) => {\n const {\n name = 'customer_email',\n placeholder = '',\n required = true,\n saveOnBlur = false,\n type = 'email',\n value,\n onBlur,\n className,\n errorClassName,\n ...p\n } = props\n const { validation, values, errors } = useRapidForm()\n const { saveCustomerUser, setCustomerErrors, setCustomerEmail } = useContext(\n CustomerContext\n )\n const [hasError, setHasError] = useState(false)\n const handleOnBlur = async () => {\n if (saveOnBlur && isEmpty(errors) && !isEmpty(values)) {\n await saveCustomerUser(values[name].value)\n onBlur && onBlur()\n }\n }\n useEffect(() => {\n if (!isEmpty(errors)) {\n const formErrors: BaseError[] = []\n for (const fieldName in errors) {\n const { code, message } = errors[fieldName]\n formErrors.push({\n code: code as CodeErrorType,\n message,\n resource: 'order',\n field: fieldName,\n })\n }\n if (!isEmpty(formErrors)) {\n setHasError(true)\n setCustomerErrors(formErrors)\n }\n } else if (!isEmpty(values)) {\n setCustomerErrors([])\n setCustomerEmail(values[name].value)\n setHasError(false)\n }\n return () => {\n setHasError(false)\n }\n }, [errors])\n const classNameComputed = `${className} ${hasError ? errorClassName : ''}`\n return (\n <BaseInput\n name={name}\n type={type}\n ref={validation}\n required={required}\n placeholder={placeholder}\n defaultValue={value}\n onBlur={handleOnBlur}\n className={classNameComputed}\n {...p}\n />\n )\n}\n\nCustomerInput.propTypes = propTypes\nCustomerInput.displayName = displayName\n\nexport default CustomerInput\n","import { createContext } from 'react'\nimport {\n DeliveryLeadTimeCollection,\n ShippingMethodCollection,\n} from '@commercelayer/js-sdk'\n\nexport interface InitialShippingMethodContext {\n shippingMethod: ShippingMethodCollection | Record<string, string>\n deliveryLeadTimeForShipment?:\n | DeliveryLeadTimeCollection\n | Record<string, string>\n | null\n currentShippingMethodId?: string\n}\n\nconst initial: InitialShippingMethodContext = {\n shippingMethod: {},\n deliveryLeadTimeForShipment: {},\n}\n\nconst ShippingMethodChildrenContext = createContext<InitialShippingMethodContext>(\n initial\n)\n\nexport default ShippingMethodChildrenContext\n","import React, {\n FunctionComponent,\n useContext,\n ReactNode,\n useState,\n useEffect,\n} from 'react'\nimport ShippingMethodChildrenContext from '#context/ShippingMethodChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\n\nconst propTypes = components.DeliveryLeadTime.propTypes\nconst displayName = components.DeliveryLeadTime.displayName\n\nexport type DeliveryLeadTimeField =\n | 'minHours'\n | 'maxHours'\n | 'minDays'\n | 'maxDays'\n\nexport type DeliveryLeadTimeComponentChildren = Omit<\n ShippingMethodPriceProps,\n 'children'\n>\n\nexport interface ShippingMethodPriceProps\n extends Partial<JSX.IntrinsicElements['span']> {\n children?: (props: DeliveryLeadTimeComponentChildren) => ReactNode\n type: DeliveryLeadTimeField\n text?: string\n}\n\nconst DeliveryLeadTime: FunctionComponent<ShippingMethodPriceProps> = (\n props\n) => {\n const { type, ...p } = props\n const [text, setText] = useState<string | number>()\n const { deliveryLeadTimeForShipment } = useContext(\n ShippingMethodChildrenContext\n )\n useEffect(() => {\n if (deliveryLeadTimeForShipment && deliveryLeadTimeForShipment[type])\n setText(deliveryLeadTimeForShipment[type])\n return () => {\n setText('')\n }\n }, [deliveryLeadTimeForShipment])\n const parentProps = {\n text,\n ...p,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <span {...p}>{text}</span>\n )\n}\n\nDeliveryLeadTime.propTypes = propTypes\nDeliveryLeadTime.displayName = displayName\n\nexport default DeliveryLeadTime\n","import { keys } from 'lodash'\n\nexport interface GetAmountInterface<T = any> {\n (\n base: string,\n type: string,\n format: string,\n obj: Record<string, any>\n ): T extends number ? number : string\n}\n\nexport default function getAmount<T = string>(args: {\n base: string\n type: string\n format: string\n obj: Record<string, any>\n}): T extends number ? number : string {\n const { format, type, obj, base } = args\n let v: any\n keys(obj).map((k) => {\n const key = k.toLowerCase()\n const typeOne = `${format}${type}${base}`.toLowerCase()\n const typeTwo = `${type}${base}${format}`.toLowerCase()\n const typeThree = `${format}${base}${type}`.toLowerCase()\n const typeFourth = `${base}${type}${format}`.toLowerCase()\n if (key === typeOne) {\n v = obj[k]\n }\n if (key === typeTwo) {\n v = obj[k]\n }\n if (key === typeThree) {\n v = obj[k]\n }\n if (key === typeFourth) {\n v = obj[k]\n }\n })\n return v\n}\n","import OrderContext from '#context/OrderContext'\nimport getAmount from '#utils/getAmount'\nimport Parent from './Parent'\nimport React, {\n FunctionComponent,\n useState,\n useEffect,\n useContext,\n} from 'react'\nimport { PropsType } from '#utils/PropsType'\nimport { baseOrderPricePropTypes } from '#typings'\nimport { isEmpty } from 'lodash'\n\nexport type BaseOrderPriceProps = PropsType<typeof baseOrderPricePropTypes> &\n JSX.IntrinsicElements['span']\n\nconst BaseOrderPrice: FunctionComponent<BaseOrderPriceProps> = (props) => {\n const { format = 'formatted', base, type, children, ...p } = props\n const { order } = useContext(OrderContext)\n const [price, setPrice] = useState('')\n const [cents, setCents] = useState(0)\n useEffect(() => {\n const p = getAmount({\n base,\n type,\n format: format as string,\n obj: order || {},\n })\n const c = getAmount<number>({\n base,\n type,\n format: 'cents',\n obj: order || {},\n })\n setPrice(p)\n setCents(c)\n return (): void => {\n if (isEmpty(order)) {\n setPrice('')\n }\n }\n }, [order])\n const parentProps = {\n priceCents: cents,\n price,\n ...p,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <span {...p}>{price}</span>\n )\n}\n\nBaseOrderPrice.propTypes = baseOrderPricePropTypes\n\nexport default BaseOrderPrice\n","import React, { FunctionComponent } from 'react'\nimport BaseOrderPrice from './utils/BaseOrderPrice'\nimport components from '#config/components'\nimport { BaseAmountComponent } from '#typings'\n\nconst propTypes = components.DiscountAmount.propTypes\nconst defaultProps = components.DiscountAmount.defaultProps\nconst displayName = components.DiscountAmount.displayName\n\nconst DiscountAmount: FunctionComponent<BaseAmountComponent> = (props) => {\n return <BaseOrderPrice base=\"amount\" type=\"discount\" {...props} />\n}\n\nDiscountAmount.propTypes = propTypes\nDiscountAmount.defaultProps = defaultProps\nDiscountAmount.displayName = displayName\n\nexport default DiscountAmount\n","import baseReducer from '#utils/baseReducer'\nimport { CustomerCollection } from '@commercelayer/js-sdk'\nimport { BaseMetadata } from '#typings'\nimport CLayer, {\n MarketCollection,\n GiftCardRecipientCollection,\n} from '@commercelayer/js-sdk'\nimport { Dispatch } from 'react'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { isEmpty } from 'lodash'\nimport getErrorsByCollection from '#utils/getErrorsByCollection'\nimport { BaseError } from '#typings/errors'\n\nexport type GiftCardActionType =\n | 'setAvailability'\n | 'setGiftCardRecipient'\n | 'setGiftCardErrors'\n | 'setGiftCardLoading'\n\nexport interface GiftCardRecipientI {\n email: string\n firstName?: string\n lastName?: string\n referenceOrigin?: string\n reference?: string\n metadata?: BaseMetadata\n customer?: CustomerCollection\n}\n\nexport interface GiftCardI {\n currencyCode?: string\n balanceCent?: number\n balanceMaxCents?: number\n singleUse?: boolean\n rechargeable?: boolean\n imageUrl?: string\n expiresAt?: null | Date\n firstName?: string\n lastName?: string\n email?: string\n referenceOrigin?: string\n recipientEmail?: string\n reference?: string\n metadata?: BaseMetadata\n orderId?: string\n}\n\nexport interface GiftCardActionPayload extends GiftCardI {\n market?: MarketCollection\n giftCardRecipient?: GiftCardRecipientCollection\n errors?: BaseError[]\n loading?: boolean\n}\n\nexport interface GiftCardState extends GiftCardActionPayload {\n currencyCode: string\n balanceCent: number\n addGiftCardRecipient?: (\n values: GiftCardRecipientI & Record<string, any>\n ) => void\n addGiftCard?: (values: GiftCardI & Record<string, any>) => void\n addGiftCardError?: (errors: BaseError[]) => void\n addGiftCardLoading?: (loading: boolean) => void\n}\n\nexport interface GiftCardAction {\n type: GiftCardActionType\n payload: GiftCardActionPayload\n}\n\nexport const giftCardInitialState: GiftCardState = {\n currencyCode: '',\n balanceCent: 0,\n singleUse: false,\n rechargeable: true,\n loading: false,\n expiresAt: null,\n errors: [],\n}\n\nexport interface AddGiftCardRecipient {\n <V extends GiftCardRecipientI>(\n values: V,\n config: CommerceLayerConfig,\n dispatch: Dispatch<GiftCardAction>\n ): void\n}\n\nexport interface AddGiftCard {\n <V extends GiftCardI>(\n values: V,\n configParameters: {\n getOrder?: (id: string) => void\n createOrder?: () => Promise<string>\n config: CommerceLayerConfig\n dispatch: Dispatch<GiftCardAction>\n }\n ): void\n}\n\nexport interface AddGiftCardError {\n <V extends BaseError[]>(errors: V, dispatch: Dispatch<GiftCardAction>): void\n}\n\nexport interface AddGiftCardLoading {\n <V extends boolean>(loading: V, dispatch: Dispatch<GiftCardAction>): void\n}\n\nexport const addGiftCardRecipient: AddGiftCardRecipient = async (\n values,\n config,\n dispatch\n) => {\n try {\n const recipient = await CLayer.GiftCardRecipient.withCredentials(\n config\n ).create(values)\n dispatch({\n type: 'setGiftCardRecipient',\n payload: {\n giftCardRecipient: recipient,\n },\n })\n } catch (error) {\n console.error(error)\n }\n}\n\nexport const addGiftCardLoading: AddGiftCardLoading = (loading, dispatch) => {\n dispatch({\n type: 'setGiftCardLoading',\n payload: {\n loading,\n },\n })\n}\n\nexport const addGiftCard: AddGiftCard = async (\n values,\n { config, dispatch, getOrder, createOrder }\n) => {\n try {\n addGiftCardLoading(true, dispatch)\n const { firstName, lastName, email, orderId, ...val } = values\n const giftCardValue = {\n recipientEmail: email,\n ...val,\n } as GiftCardI\n const recipientValues: any = {}\n const giftCard = await CLayer.GiftCard.withCredentials(config).create(\n giftCardValue\n )\n if (firstName) recipientValues['firstName'] = firstName\n if (lastName) recipientValues['lastName'] = lastName\n if (!isEmpty(recipientValues)) {\n await (\n await giftCard.withCredentials(config).giftCardRecipient()\n )?.update(recipientValues)\n }\n if (createOrder && getOrder) {\n const id = orderId || (await createOrder())\n if (id) {\n const order = CLayer.Order.build({ id })\n const item = CLayer.GiftCard.build({ id: giftCard.id })\n await CLayer.LineItem.withCredentials(config).create({\n quantity: 1,\n order,\n item,\n })\n getOrder && getOrder(id)\n }\n }\n dispatch({\n type: 'setGiftCardRecipient',\n payload: {\n ...giftCardValue,\n },\n })\n addGiftCardLoading(false, dispatch)\n } catch (r) {\n const errors = getErrorsByCollection(r, 'giftCard')\n dispatch({\n type: 'setGiftCardErrors',\n payload: {\n errors,\n },\n })\n addGiftCardLoading(false, dispatch)\n }\n}\n\nexport const addGiftCardError: AddGiftCardError = (errors, dispatch) => {\n dispatch({\n type: 'setGiftCardErrors',\n payload: {\n errors,\n },\n })\n}\n\nconst type: GiftCardActionType[] = [\n 'setAvailability',\n 'setGiftCardRecipient',\n 'setGiftCardErrors',\n 'setGiftCardLoading',\n]\n\nconst giftCardReducer = (\n state: GiftCardState,\n reducer: GiftCardAction\n): GiftCardState =>\n baseReducer<GiftCardState, GiftCardAction, GiftCardActionType[]>(\n state,\n reducer,\n type\n )\n\nexport default giftCardReducer\n","import { createContext } from 'react'\nimport {\n giftCardInitialState,\n GiftCardState,\n GiftCardRecipientI,\n GiftCardI,\n} from '#reducers/GiftCardReducer'\nimport { BaseError } from '#typings/errors'\n\nexport interface GCContext extends GiftCardState {\n addGiftCardRecipient: (values: GiftCardRecipientI & object) => void\n addGiftCard: (values: GiftCardI & object) => void\n addGiftCardError: (errors: BaseError[]) => void\n addGiftCardLoading: (loading: boolean) => void\n}\n\nconst GiftCardContext = createContext(giftCardInitialState as GCContext)\n\nexport default GiftCardContext\n","import findIndex from 'lodash/findIndex'\nimport pick from 'lodash/pick'\nimport { BaseError } from '#typings/errors'\n\nexport interface CustomMessages {\n (messages: BaseError[], v: BaseError): { message?: string } | null\n}\n\nconst customMessages: CustomMessages = (messages = [], v) => {\n const i = findIndex(messages, pick(v, ['field', 'code', 'resource']))\n return i !== -1 ? messages[i] : null\n}\n\nexport default customMessages\n","import React, { ReactNode } from 'react'\nimport customMessages from '#utils/customMessages'\nimport { LineItemCollection } from '@commercelayer/js-sdk'\nimport { BaseError, ResourceErrorType } from '#typings/errors'\n\nexport type AllErrorsParams = {\n allErrors: BaseError[]\n messages: BaseError[]\n field?: string\n props: JSX.IntrinsicElements['span']\n lineItem?: LineItemCollection | Record<string, any>\n resource?: ResourceErrorType\n returnHtml?: boolean\n}\n\nexport interface GetAllErrors {\n <P extends AllErrorsParams>(params: P): ReactNode\n}\n\nconst getAllErrors: GetAllErrors = (params) => {\n const {\n allErrors,\n messages,\n field,\n props,\n lineItem,\n resource,\n returnHtml = true,\n } = params\n return allErrors.map((v, k): ReactNode | void => {\n const objMsg = customMessages(messages, v)\n const text = objMsg?.message || v.message\n if (field) {\n if (v.resource === 'lineItem') {\n if (lineItem && v.id === lineItem['id']) {\n return returnHtml ? (\n <span key={k} {...props}>\n {text}\n </span>\n ) : (\n text\n )\n }\n }\n if (field === v.field && resource === v.resource) {\n return returnHtml ? (\n <span key={k} {...props}>\n {text}\n </span>\n ) : (\n text\n )\n }\n }\n if (resource === v.resource && !field) {\n return returnHtml ? (\n <span key={k} {...props}>\n {text}\n </span>\n ) : (\n text\n )\n }\n })\n}\n\nexport default getAllErrors\n","import { createContext } from 'react'\nimport { LineItemState } from '#reducers/LineItemReducer'\nimport { LineItemCollection } from '@commercelayer/js-sdk'\n\nexport interface LineItemContextValue extends LineItemState {\n lineItems: LineItemCollection[] | undefined\n}\n\nconst initial: LineItemContextValue = {\n lineItems: [],\n}\n\nconst LineItemContext = createContext<LineItemContextValue>(initial)\n\nexport default LineItemContext\n","import {\n PaymentResource,\n SDKPaymentResource,\n} from '#reducers/PaymentMethodReducer'\nimport CLayer from '@commercelayer/js-sdk'\nimport last from 'lodash/last'\nimport startCase from 'lodash/startCase'\n\ntype DynamicNaming = (\n resource: PaymentResource,\n _type?: 'payments'\n) => typeof CLayer[SDKPaymentResource]\n\nconst dynamicNaming: DynamicNaming = (resource, _type = 'payments') => {\n let resourceKey = startCase(resource).split(' ')\n const lastIndex = resourceKey.length - 1\n const lastItem = last(resourceKey)\n if (lastItem?.toLowerCase() === 'payments')\n resourceKey[lastIndex] = lastItem.replace('Payments', 'Payment')\n if (lastItem?.toLowerCase() === 'transfers')\n resourceKey[lastIndex] = lastItem.replace('Transfers', 'Transfer')\n return CLayer[resourceKey.join('') as SDKPaymentResource]\n}\n\nexport default dynamicNaming\n","import { BraintreeConfig } from '#components/BraintreePayment'\nimport { PaypalConfig } from '#components/PaypalPayment'\nimport { StripeConfig } from '#components/StripePayment'\nimport { WireTransferConfig } from '#components/WireTransferPayment'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { getOrderContext } from '#reducers/OrderReducer'\nimport { BaseError } from '#typings/errors'\nimport baseReducer from '#utils/baseReducer'\nimport dynamicNaming from '#utils/dynamicNaming'\nimport getErrorsByCollection from '#utils/getErrorsByCollection'\nimport {\n Order,\n OrderCollection,\n PaymentMethod,\n PaymentMethodCollection,\n StripePaymentCollection,\n WireTransferCollection,\n} from '@commercelayer/js-sdk'\nimport camelCase from 'lodash/camelCase'\nimport has from 'lodash/has'\nimport isEmpty from 'lodash/isEmpty'\nimport { Dispatch, MutableRefObject } from 'react'\n\nexport type PaymentMethodActionType =\n | 'setErrors'\n | 'setPaymentMethods'\n | 'setPaymentMethodConfig'\n | 'setPaymentSource'\n | 'setPaymentRef'\n | 'setLoading'\n\nexport type PaymentRef = MutableRefObject<null | HTMLFormElement>\n\nexport interface PaymentMethodActionPayload {\n errors: BaseError[]\n paymentMethods: PaymentMethodCollection[]\n currentPaymentMethodType: PaymentResource\n currentPaymentMethodId: string\n currentPaymentMethodRef: PaymentRef\n config: PaymentMethodConfig\n paymentSource: PaymentSourceTypes\n loading: boolean\n}\n\nexport function setLoading({\n loading,\n dispatch,\n}: {\n loading: boolean\n dispatch?: Dispatch<PaymentMethodAction>\n}) {\n dispatch &&\n dispatch({\n type: 'setLoading',\n payload: { loading },\n })\n}\n\nexport type SetPaymentRef = (args: {\n ref: PaymentRef\n dispatch?: Dispatch<PaymentMethodAction>\n}) => void\n\nexport const setPaymentRef: SetPaymentRef = ({ ref, dispatch }) => {\n if (ref && dispatch) {\n dispatch({\n type: 'setPaymentRef',\n payload: {\n currentPaymentMethodRef: ref,\n },\n })\n }\n}\n\nexport type PaymentMethodState = Partial<PaymentMethodActionPayload>\n\nexport interface PaymentMethodAction {\n type: PaymentMethodActionType\n payload: Partial<PaymentMethodActionPayload>\n}\n\nexport const paymentMethodInitialState: PaymentMethodState = {\n errors: [],\n}\n\nexport interface SetPaymentMethodErrors {\n <V extends BaseError[]>(\n errors: V,\n dispatch?: Dispatch<PaymentMethodAction>\n ): void\n}\n\nexport const setPaymentMethodErrors: SetPaymentMethodErrors = (\n errors,\n dispatch\n) => {\n dispatch &&\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n}\n\ntype GetPaymentMethods = (args: {\n order: OrderCollection\n dispatch: Dispatch<PaymentMethodAction>\n config: CommerceLayerConfig\n state: PaymentMethodState\n}) => Promise<void>\n\nexport const getPaymentMethods: GetPaymentMethods = async ({\n order,\n dispatch,\n config,\n state,\n}) => {\n try {\n const payload: PaymentMethodState = {}\n if (isEmpty(state.paymentMethods)) {\n const paymentMethods = await order\n .withCredentials(config)\n .loadAvailablePaymentMethods()\n payload.paymentMethods = paymentMethods?.toArray()\n }\n const paymentMethod = await order\n ?.withCredentials(config)\n .loadPaymentMethod()\n const paymentSource: any = (\n await Order.withCredentials(config)\n .includes('paymentSource')\n .find(order.id)\n ).paymentSource()\n dispatch({\n type: 'setPaymentMethods',\n payload: {\n ...payload,\n currentPaymentMethodId: paymentMethod?.id,\n currentPaymentMethodType:\n paymentMethod?.paymentSourceType as PaymentResource,\n paymentSource,\n },\n })\n } catch (error) {\n console.error(error)\n const errors = getErrorsByCollection(error, 'paymentMethod')\n setPaymentMethodErrors(errors, dispatch)\n }\n}\n\nexport type PaymentResource =\n | 'adyen_payments'\n | 'braintree_payments'\n | 'external_payments'\n | 'paypal_payments'\n | 'stripe_payments'\n | 'wire_transfers'\n\nexport type PaymentResourceKey =\n | 'braintreePayment'\n | 'stripePayment'\n | 'wireTransfer'\n | 'paypalPayment'\n// | 'adyenPayment'\n// | 'externalPayment'\n// | 'checkoutPayment'\n\nexport type SDKPaymentResource =\n | 'AdyenPayment'\n | 'BraintreePayment'\n | 'ExternalPayment'\n | 'PaypalPayment'\n | 'StripePayment'\n | 'WireTransfer'\n\nexport type SetPaymentMethod = (args: {\n config?: CommerceLayerConfig\n dispatch?: Dispatch<PaymentMethodAction>\n getOrder?: getOrderContext\n setOrderErrors?: (collection: any) => { success: boolean }\n order?: OrderCollection\n paymentMethodId: string\n paymentResource?: PaymentResource\n}) => Promise<void>\n\nexport const setPaymentMethod: SetPaymentMethod = async ({\n config,\n dispatch,\n order,\n paymentMethodId,\n getOrder,\n setOrderErrors,\n paymentResource,\n}) => {\n try {\n if (config && order && dispatch) {\n localStorage.removeItem('savePaymentSourceToCustomerWallet')\n const paymentMethod = PaymentMethod.build({ id: paymentMethodId })\n const patchOrder = Order.build({\n id: order.id,\n paymentMethod,\n })\n // @ts-ignore\n await patchOrder.withCredentials(config).save()\n getOrder && (await getOrder(order.id))\n dispatch({\n type: 'setPaymentMethods',\n payload: {\n currentPaymentMethodId: paymentMethodId,\n currentPaymentMethodType: paymentResource,\n errors: [],\n },\n })\n setOrderErrors && setOrderErrors([])\n }\n } catch (error) {\n const errors = getErrorsByCollection(error, 'paymentMethod')\n console.error('Set payment method', errors)\n setPaymentMethodErrors(errors, dispatch)\n }\n}\n\ntype PaymentSourceTypes =\n | (StripePaymentCollection & WireTransferCollection)\n | (StripePaymentCollection | WireTransferCollection)\n\nexport type SetPaymentSourceResponse = {\n order: OrderCollection\n paymentSource: PaymentSourceTypes\n} | null\n\nexport type SetPaymentSource = (\n args: {\n config?: CommerceLayerConfig\n dispatch?: Dispatch<PaymentMethodAction>\n getOrder?: getOrderContext\n attributes?: Record<\n string,\n | string\n | Record<string, string | number | undefined | Record<string, string>>\n >\n order?: OrderCollection\n paymentResource: PaymentResource\n paymentSourceId?: string\n customerPaymentSourceId?: string\n } & PaymentMethodState\n) => Promise<SetPaymentSourceResponse>\n\nexport const setPaymentSource: SetPaymentSource = async ({\n config,\n dispatch,\n getOrder,\n attributes = {},\n order,\n paymentResource,\n customerPaymentSourceId,\n paymentSourceId,\n currentPaymentMethodId,\n currentPaymentMethodType,\n}) => {\n try {\n if (config && order) {\n let paymentSource: any\n const resourceSdk = dynamicNaming(paymentResource)\n const o = Order.build({ id: order.id })\n if (!customerPaymentSourceId) {\n if (!paymentSourceId) {\n paymentSource = await resourceSdk.withCredentials(config).create({\n ...attributes,\n order: o,\n })\n } else {\n paymentSource = await resourceSdk\n .build({ id: paymentSourceId })\n .withCredentials(config)\n .update({ ...attributes })\n }\n } else {\n paymentSource = (\n await Order.includes('paymentSource')\n .build({ id: order.id })\n .withCredentials(config)\n .update({\n _customerPaymentSourceId: customerPaymentSourceId,\n })\n ).paymentSource()\n }\n if (order?.billingAddress() === null)\n await order.withCredentials(config).loadBillingAddress()\n if (order?.paymentSource() === null)\n await order.withCredentials(config).loadPaymentSource()\n dispatch &&\n dispatch({\n type: 'setPaymentSource',\n payload: { paymentSource, errors: [] },\n })\n if (getOrder) order = (await getOrder(order?.id)) as OrderCollection\n return {\n order,\n paymentSource,\n }\n }\n } catch (error) {\n const errors = getErrorsByCollection(error, 'paymentMethod', {\n id: currentPaymentMethodId,\n field: currentPaymentMethodType,\n })\n console.error('Set payment source:', errors)\n setPaymentMethodErrors(errors, dispatch)\n }\n return null\n}\n\nexport type DestroyPaymentSource = (args: {\n paymentSourceId: string\n paymentResource: PaymentResource\n dispatch?: Dispatch<PaymentMethodAction>\n}) => Promise<void>\n\nexport const destroyPaymentSource: DestroyPaymentSource = async ({\n paymentSourceId,\n paymentResource,\n dispatch,\n}) => {\n if (paymentSourceId && paymentResource) {\n try {\n dispatch &&\n dispatch({\n type: 'setPaymentSource',\n payload: { paymentSource: undefined },\n })\n } catch (error) {\n const errors = getErrorsByCollection(error, 'paymentMethod')\n setPaymentMethodErrors(errors, dispatch)\n }\n }\n}\n\nexport type PaymentMethodConfig = {\n stripePayment?: StripeConfig\n braintreePayment?: BraintreeConfig\n wireTransfer?: Partial<WireTransferConfig>\n paypalPayment?: PaypalConfig\n}\n\ntype SetPaymentMethodConfig = (\n config: PaymentMethodConfig,\n dispatch: Dispatch<PaymentMethodAction>\n) => void\n\nexport const setPaymentMethodConfig: SetPaymentMethodConfig = (\n config,\n dispatch\n) => {\n dispatch({\n type: 'setPaymentMethodConfig',\n payload: { config },\n })\n}\n\nexport function getPaymentConfig<K extends PaymentResourceKey>(\n paymentResource: PaymentResource,\n config: PaymentMethodConfig\n): PaymentMethodConfig[K] {\n const resource = camelCase(paymentResource)\n .replace('Payments', 'Payment')\n .replace('Transfers', 'Transfer') as K\n return !isEmpty(config) && has(config, resource)\n ? config[resource]\n : undefined\n}\n\nconst type: PaymentMethodActionType[] = [\n 'setErrors',\n 'setPaymentMethodConfig',\n 'setPaymentMethods',\n 'setPaymentSource',\n 'setPaymentRef',\n 'setLoading',\n]\n\nconst paymentMethodReducer = (\n state: PaymentMethodState,\n reducer: PaymentMethodAction\n): PaymentMethodState =>\n baseReducer<\n PaymentMethodState,\n PaymentMethodAction,\n PaymentMethodActionType[]\n >(state, reducer, type)\n\nexport default paymentMethodReducer\n","import { createContext } from 'react'\nimport {\n PaymentMethodState,\n SetPaymentMethodErrors,\n setPaymentMethodErrors,\n SetPaymentSource,\n setPaymentSource,\n SetPaymentMethod,\n setPaymentMethod,\n destroyPaymentSource,\n DestroyPaymentSource,\n SetPaymentRef,\n setPaymentRef,\n setLoading,\n} from '#reducers/PaymentMethodReducer'\n\ntype DefaultContext = {\n setPaymentMethodErrors: SetPaymentMethodErrors\n setPaymentMethod: SetPaymentMethod\n setPaymentSource: SetPaymentSource\n setPaymentRef: SetPaymentRef\n destroyPaymentSource: DestroyPaymentSource\n setLoading: typeof setLoading\n} & PaymentMethodState\n\nexport const defaultPaymentMethodContext = {\n setPaymentMethodErrors,\n setPaymentMethod,\n setPaymentSource,\n setPaymentRef,\n destroyPaymentSource,\n setLoading,\n}\n\nconst PaymentMethodContext = createContext<DefaultContext>(\n defaultPaymentMethodContext\n)\n\nexport default PaymentMethodContext\n","import { createContext } from 'react'\nimport { PaymentMethodCollection } from '@commercelayer/js-sdk'\n\nexport interface InitialPaymentMethodChildrenContext {\n payment?: PaymentMethodCollection\n clickableContainer?: boolean\n paymentSelected?: string\n setPaymentSelected?: (paymentId: string) => void\n}\n\nconst initial: InitialPaymentMethodChildrenContext = {}\n\nconst PaymentMethodChildrenContext =\n createContext<InitialPaymentMethodChildrenContext>(initial)\n\nexport default PaymentMethodChildrenContext\n","import React, { FunctionComponent, useContext, Fragment, useMemo } from 'react'\nimport Parent from './utils/Parent'\nimport GiftCardContext from '#context/GiftCardContext'\nimport OrderContext from '#context/OrderContext'\nimport AddressContext from '#context/AddressContext'\nimport getAllErrors from './utils/getAllErrors'\nimport LineItemContext from '#context/LineItemContext'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport { ErrorComponentProps } from '#typings/errors'\nimport components from '#config/components'\nimport CustomerContext from '#context/CustomerContext'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\n\nconst propTypes = components.Errors.propTypes\nconst displayName = components.Errors.displayName\n\nexport type ErrorsProps = ErrorComponentProps & JSX.IntrinsicElements['span']\n\nconst Errors: FunctionComponent<ErrorsProps> = (props) => {\n const { children, messages = [], resource, field, ...p } = props\n const { payment } = useContext(PaymentMethodChildrenContext)\n const { errors: orderErrors } = useContext(OrderContext)\n const { errors: giftCardErrors } = useContext(GiftCardContext)\n const { errors: lineItemErrors } = useContext(LineItemContext)\n const { errors: addressErrors } = useContext(AddressContext)\n const { errors: customerErrors } = useContext(CustomerContext)\n const {\n errors: paymentMethodErrors,\n currentPaymentMethodType,\n currentPaymentMethodId,\n } = useContext(PaymentMethodContext)\n const { lineItem } = useContext(LineItemChildrenContext)\n const allErrors = useMemo(\n () => [\n ...(giftCardErrors || []),\n ...(orderErrors || []),\n ...(lineItemErrors || []),\n ...(addressErrors || []),\n ...(customerErrors || []),\n ...(paymentMethodErrors?.filter(\n (v) =>\n v.field === currentPaymentMethodType &&\n payment?.id === currentPaymentMethodId\n ) || []),\n ],\n [\n giftCardErrors,\n orderErrors,\n lineItemErrors,\n addressErrors,\n customerErrors,\n paymentMethodErrors,\n ]\n )\n const msgErrors = getAllErrors({\n allErrors,\n field,\n messages,\n props: p,\n lineItem,\n resource,\n returnHtml: !children,\n })\n const parentProps = { messages, resource, field, errors: msgErrors, ...p }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <Fragment>{msgErrors}</Fragment>\n )\n}\n\nErrors.propTypes = propTypes\nErrors.displayName = displayName\n\nexport default Errors\n","import ExternalFunctionContext, {\n callExternalFunction,\n} from '#context/ExternalFunctionContext'\nimport React, { FunctionComponent, ReactNode } from 'react'\nimport components from '#config/components'\n\nconst propTypes = components.ExternalFunction.propTypes\nconst displayName = components.ExternalFunction.displayName\n\ntype Props = {\n children: ReactNode\n url: string\n}\n\nconst ExternalFunction: FunctionComponent<Props> = ({ children, url }) => {\n return (\n <ExternalFunctionContext.Provider value={{ url, callExternalFunction }}>\n {children}\n </ExternalFunctionContext.Provider>\n )\n}\n\nExternalFunction.propTypes = propTypes\nExternalFunction.displayName = displayName\n\nexport default ExternalFunction\n","import isEmpty from 'lodash/isEmpty'\nimport isString from 'lodash/isString'\nimport without from 'lodash/without'\nimport keys from 'lodash/keys'\nimport map from 'lodash/map'\nimport get from 'lodash/get'\nimport { BaseState } from '#typings/index'\nimport { ResourceErrorType, BaseError } from '#typings/errors'\nimport {\n AddressField,\n addressFields,\n AddressSchema,\n} from '#reducers/AddressReducer'\n\nconst EMAIL_PATTERN = /[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,3}$/\n\ntype FormField = HTMLInputElement | HTMLSelectElement\n\nexport interface ValidateFormFields {\n <R extends string[]>(\n fields: HTMLFormControlsCollection,\n required: R,\n resourceType: ResourceErrorType\n ): {\n errors: BaseError[]\n values: BaseState\n }\n}\n\nexport interface ValidateValue {\n <\n V extends string | boolean,\n N extends string,\n T extends string,\n B extends ResourceErrorType\n >(\n val: V,\n name: N,\n type: T,\n resourceType: B\n ): BaseError | Record<string, any>\n}\n\nexport const validateValue: ValidateValue = (val, name, type, resourceType) => {\n if (!val) {\n return {\n field: name,\n code: 'VALIDATION_ERROR',\n message: `${name} - is required`,\n resourceType,\n }\n }\n if (type === 'email' && isString(val) && !val.match(EMAIL_PATTERN)) {\n return {\n field: name,\n code: 'VALIDATION_ERROR',\n message: `${name} - is not valid`,\n resourceType,\n }\n }\n return {}\n}\n\nconst validateFormFields: ValidateFormFields = (\n fields,\n required,\n resourceType\n) => {\n const errors: BaseError[] = []\n let values = { metadata: {} }\n map(fields, (v: FormField) => {\n const isTick = !!get(v, 'checked')\n const val = isTick ? isTick : v.value === 'on' ? false : v.value\n const attrName = v.getAttribute('name')\n if ((attrName && required.indexOf(attrName) !== -1) || v.required) {\n const error = validateValue(val, v.name, v.type, resourceType)\n if (!isEmpty(error)) {\n errors.push(error as BaseError)\n }\n values = { ...values, [`${v.name}`]: val }\n }\n if (v.getAttribute('name')) {\n const isMetadata = !!v.getAttribute('data-metadata')\n values = isMetadata\n ? {\n ...values,\n metadata: { ...values.metadata, [`${v.name}`]: val },\n }\n : { ...values, [`${v.name}`]: val }\n }\n })\n return { errors, values }\n}\n\nexport interface FieldsExist {\n (values: AddressSchema, schema?: AddressField[]): boolean\n}\n\nexport const fieldsExist: FieldsExist = (values, schema = addressFields) => {\n if (!values['business']) {\n const required = without(schema, 'line_2', 'company')\n return required.length > keys(values).length\n } else {\n const required = without(schema, 'first_name', 'last_name')\n return required.length > keys(values).length\n }\n}\n\nexport default validateFormFields\n","import React, {\n FunctionComponent,\n Fragment,\n useRef,\n useContext,\n RefObject,\n ReactNode,\n} from 'react'\nimport validateFormFields from '#utils/validateFormFields'\nimport { isEmpty } from 'lodash'\nimport GiftCardContext from '#context/GiftCardContext'\nimport { GiftCardI } from '#reducers/GiftCardReducer'\nimport components from '#config/components'\nimport { BaseState } from '#typings/index'\n\ntype RequiredFields = 'currencyCode' | 'balanceCents'\n\nconst propTypes = components.GiftCard.propTypes\nconst defaultProps = components.GiftCard.defaultProps\nconst displayName = components.GiftCard.displayName\n\ntype GiftCardProps = {\n children: ReactNode\n onSubmit?: (values: BaseState) => void\n} & JSX.IntrinsicElements['form']\n\nconst GiftCard: FunctionComponent<GiftCardProps> = (props) => {\n const { children, onSubmit } = props\n const name = 'giftCardForm'\n const ref: RefObject<HTMLFormElement> = useRef<HTMLFormElement>(null)\n const { addGiftCard, addGiftCardError } = useContext(GiftCardContext)\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>): void => {\n e.preventDefault()\n const currentForm = ref.current\n const elements = currentForm?.elements as HTMLFormControlsCollection\n const { errors, values } = validateFormFields<RequiredFields[]>(\n elements,\n ['currencyCode', 'balanceCents'],\n 'giftCard'\n )\n if (isEmpty(errors)) {\n addGiftCard(values as GiftCardI)\n currentForm?.reset()\n if (onSubmit) {\n onSubmit(values)\n }\n } else {\n addGiftCardError(errors)\n }\n }\n return (\n <Fragment>\n <form key={name} name={name} ref={ref} onSubmit={handleSubmit}>\n {children}\n </form>\n </Fragment>\n )\n}\n\nGiftCard.propTypes = propTypes\nGiftCard.defaultProps = defaultProps\nGiftCard.displayName = displayName\n\nexport default GiftCard\n","import React, { FunctionComponent } from 'react'\nimport BaseOrderPrice from './utils/BaseOrderPrice'\nimport components from '#config/components'\nimport { BaseAmountComponent } from '#typings'\n\nconst propTypes = components.GiftCardAmount.propTypes\nconst displayName = components.GiftCardAmount.displayName\n\nconst GiftCardAmount: FunctionComponent<BaseAmountComponent> = (props) => {\n return <BaseOrderPrice base=\"amount\" type=\"giftcard\" {...props} />\n}\n\nGiftCardAmount.propTypes = propTypes\nGiftCardAmount.displayName = displayName\n\nexport default GiftCardAmount\n","import React, {\n FunctionComponent,\n useReducer,\n useContext,\n ReactNode,\n} from 'react'\nimport GiftCardContext from '#context/GiftCardContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport giftCardReducer, {\n giftCardInitialState,\n addGiftCardRecipient,\n addGiftCard,\n addGiftCardError,\n addGiftCardLoading,\n} from '#reducers/GiftCardReducer'\nimport OrderContext from '#context/OrderContext'\nimport components from '#config/components'\n\nconst propTypes = components.GiftCardContainer.propTypes\nconst displayName = components.GiftCardContainer.displayName\n\nexport type GiftCardContainer = {\n children: ReactNode\n}\n\nconst GiftCardContainer: FunctionComponent<GiftCardContainer> = (props) => {\n const { children } = props\n const [state, dispatch] = useReducer(giftCardReducer, giftCardInitialState)\n const config = useContext(CommerceLayerContext)\n const { orderId, getOrder, createOrder } = useContext(OrderContext)\n const giftCardValue = {\n ...state,\n addGiftCardRecipient: (values: any): void =>\n addGiftCardRecipient(values, config, dispatch),\n addGiftCard: (values: any): void =>\n addGiftCard(\n { ...values, orderId },\n { config, dispatch, getOrder, createOrder }\n ),\n addGiftCardError: (errors: any): void => addGiftCardError(errors, dispatch),\n addGiftCardLoading: (loading: boolean): void =>\n addGiftCardLoading(loading, dispatch),\n }\n return (\n <GiftCardContext.Provider value={giftCardValue}>\n {children}\n </GiftCardContext.Provider>\n )\n}\n\nGiftCardContainer.propTypes = propTypes\nGiftCardContainer.displayName = displayName\n\nexport default GiftCardContainer\n","import React, { FunctionComponent } from 'react'\nimport BaseSelect from './utils/BaseSelect'\nimport currencyOptions from '#config/currency.json'\nimport components from '#config/components'\nimport { BaseSelectComponentProps } from '#typings'\n\nconst propTypes = components.GiftCardCurrencySelector.propTypes\nconst defaultProps = components.GiftCardCurrencySelector.defaultProps\nconst displayName = components.GiftCardCurrencySelector.displayName\n\ntype GiftCardCurrencySelectorProps = Omit<\n BaseSelectComponentProps,\n 'options' | 'name'\n> & {\n required?: boolean\n} & Pick<JSX.IntrinsicElements['select'], 'className' | 'id' | 'style'>\n\nconst GiftCardCurrencySelector: FunctionComponent<GiftCardCurrencySelectorProps> = (\n props\n) => {\n return <BaseSelect options={currencyOptions} name=\"currencyCode\" {...props} />\n}\n\nGiftCardCurrencySelector.propTypes = propTypes\nGiftCardCurrencySelector.defaultProps = defaultProps\nGiftCardCurrencySelector.displayName = displayName\n\nexport default GiftCardCurrencySelector\n","import React, { FunctionComponent } from 'react'\nimport BaseInput from './utils/BaseInput'\nimport components from '#config/components'\nimport { BaseInputComponentProps, GiftCardInputName } from '#typings'\n\nconst propTypes = components.GiftCardInput.propTypes\nconst displayName = components.GiftCardInput.displayName\n\nexport type GiftCardInputProps = {\n name: GiftCardInputName\n} & Omit<BaseInputComponentProps, 'name'> &\n JSX.IntrinsicElements['input'] &\n JSX.IntrinsicElements['textarea']\n\nconst GiftCardInput: FunctionComponent<GiftCardInputProps> = (props) => {\n const { placeholder = '', ...p } = props\n return <BaseInput placeholder={placeholder} {...p} />\n}\n\nGiftCardInput.propTypes = propTypes\nGiftCardInput.displayName = displayName\n\nexport default GiftCardInput\n","import React, { FunctionComponent, useContext } from 'react'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings'\nimport Parent from './utils/Parent'\nimport OrderContext from '#context/OrderContext'\nimport { CodeType, OrderCodeType } from '#reducers/OrderReducer'\nimport { has, isEmpty } from 'lodash'\n\nconst propTypes = components.GiftCardOrCouponCode.propTypes\nconst displayName = components.GiftCardOrCouponCode.displayName\n\ntype GiftCardOrCouponCodeChildrenProps = FunctionChildren<\n Omit<GiftCardOrCouponCodeProps, 'children'> & {\n code?: string\n hide?: boolean\n }\n>\n\ntype GiftCardOrCouponCodeProps = {\n type?: CodeType\n children?: GiftCardOrCouponCodeChildrenProps\n} & JSX.IntrinsicElements['span']\n\nconst GiftCardOrCouponCode: FunctionComponent<GiftCardOrCouponCodeProps> = ({\n children,\n type,\n ...props\n}) => {\n const { order } = useContext(OrderContext)\n let codeType = type && (`${type}Code` as OrderCodeType)\n if (!type && order && has(order, 'couponCode') && !isEmpty(order.couponCode))\n codeType = 'couponCode'\n else if (!type) codeType = 'giftCardCode'\n const code = order && codeType ? order[codeType] : ''\n const hide = order && code ? false : true\n const parentProps = {\n ...props,\n code,\n hide,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : hide ? null : (\n <span {...props}>{code}</span>\n )\n}\n\nGiftCardOrCouponCode.propTypes = propTypes\nGiftCardOrCouponCode.displayName = displayName\n\nexport default GiftCardOrCouponCode\n","import { createContext, RefObject } from 'react'\n\ntype DefaultContext = {\n validation?: () => RefObject<any>\n setValue?: (name: string, value: string) => void\n}\n\nconst CouponAndGiftCardFormContext = createContext<DefaultContext>({})\n\nexport default CouponAndGiftCardFormContext\n","import useRapidForm from 'rapid-form'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n} from 'react'\nimport CouponAndGiftCardFormContext from '#context/CouponAndGiftCardFormContext'\nimport OrderContext from '#context/OrderContext'\nimport isEmpty from 'lodash/isEmpty'\nimport components from '#config/components'\nimport camelCase from 'lodash/camelCase'\nimport dropWhile from 'lodash/dropWhile'\nimport has from 'lodash/has'\nimport { findIndex } from 'lodash'\n\nconst propTypes = components.GiftCardOrCouponForm.propTypes\n\ntype GiftCardOrCouponFormProps = {\n children: ReactNode\n reset?: boolean\n onSubmit?: (response: { success: boolean }) => void\n} & Omit<JSX.IntrinsicElements['form'], 'onSubmit'>\n\nconst GiftCardOrCouponForm: FunctionComponent<GiftCardOrCouponFormProps> = (\n props\n) => {\n const { children, autoComplete = 'on', reset = false, onSubmit, ...p } = props\n const { validation, values } = useRapidForm()\n const { setGiftCardOrCouponCode, order, errors, setOrderErrors } = useContext(\n OrderContext\n )\n const ref = useRef<HTMLFormElement>(null)\n const inputName = 'gift_card_or_coupon_code'\n useEffect(() => {\n if (\n values[inputName]?.value === '' &&\n findIndex(errors, { field: camelCase(inputName) }) !== -1\n ) {\n const err = dropWhile(errors, (i) => i.field === camelCase(inputName))\n setOrderErrors(err)\n onSubmit && onSubmit({ success: true })\n }\n }, [values])\n const handleSubmit = async (e: React.ChangeEvent<HTMLFormElement>) => {\n e.preventDefault()\n const code = has(values, inputName) ? values[inputName].value : undefined\n if (code) {\n const { success } = await setGiftCardOrCouponCode({ code })\n onSubmit && onSubmit({ success })\n success && e.target.reset()\n }\n }\n return order?.giftCardOrCouponCode || isEmpty(order) ? null : (\n <CouponAndGiftCardFormContext.Provider value={{ validation }}>\n <form\n ref={ref}\n autoComplete={autoComplete}\n onSubmit={handleSubmit}\n {...p}\n >\n {children}\n </form>\n </CouponAndGiftCardFormContext.Provider>\n )\n}\n\nGiftCardOrCouponForm.propTypes = propTypes\n\nexport default GiftCardOrCouponForm\n","import React, { FunctionComponent, useContext } from 'react'\nimport components from '#config/components'\nimport BaseInput from './utils/BaseInput'\nimport CouponAndGiftCardFormContext from '#context/CouponAndGiftCardFormContext'\nimport { BaseInputComponentProps } from '#typings'\n\nconst propTypes = components.GiftCardOrCouponInput.propTypes\nconst displayName = components.GiftCardOrCouponInput.displayName\n\nexport type GiftCardOrCouponInputProps = {\n name?: 'gift_card_or_coupon_code'\n type?: 'text'\n} & Omit<BaseInputComponentProps, 'name' | 'type'> &\n JSX.IntrinsicElements['input'] &\n JSX.IntrinsicElements['textarea']\n\nconst GiftCardOrCouponInput: FunctionComponent<GiftCardOrCouponInputProps> = (\n props\n) => {\n const { placeholder = '', required, value, ...p } = props\n const { validation } = useContext(CouponAndGiftCardFormContext)\n return (\n <BaseInput\n type=\"text\"\n name=\"gift_card_or_coupon_code\"\n ref={validation}\n required={required !== undefined ? required : true}\n placeholder={placeholder}\n defaultValue={value}\n {...p}\n />\n )\n}\n\nGiftCardOrCouponInput.propTypes = propTypes\nGiftCardOrCouponInput.displayName = displayName\n\nexport default GiftCardOrCouponInput\n","import React, { FunctionComponent, ReactNode, useContext } from 'react'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings/index'\nimport OrderContext from '#context/OrderContext'\nimport { CodeType, OrderCodeType } from '#reducers/OrderReducer'\nimport { has, isEmpty } from 'lodash'\n\nconst propTypes = components.GiftCardOrCouponRemoveButton.propTypes\nconst displayName = components.GiftCardOrCouponRemoveButton.displayName\n\ntype GiftCardOrCouponRemoveButtonChildrenProps = FunctionChildren<\n Omit<GiftCardOrCouponRemoveButtonProps, 'children'> & {\n codeType?: OrderCodeType\n hide?: boolean\n handleClick?: () => void\n }\n>\n\ntype GiftCardOrCouponRemoveButtonProps = {\n type?: CodeType\n children?: GiftCardOrCouponRemoveButtonChildrenProps\n label?: string | ReactNode\n onClick?: () => void\n} & Omit<JSX.IntrinsicElements['button'], 'type'>\n\nconst GiftCardOrCouponRemoveButton: FunctionComponent<GiftCardOrCouponRemoveButtonProps> = (\n props\n) => {\n const { children, label = 'Remove', onClick, type, ...p } = props\n const { order, removeGiftCardOrCouponCode } = useContext(OrderContext)\n let codeType = `${type}Code` as OrderCodeType\n if (!type && order && has(order, 'couponCode') && !isEmpty(order.couponCode))\n codeType = 'couponCode'\n else if (!type) codeType = 'giftCardCode'\n const code = order && codeType ? order[codeType] : ''\n const hide = order && code ? false : true\n const handleClick = () => {\n removeGiftCardOrCouponCode && removeGiftCardOrCouponCode({ codeType })\n onClick && onClick()\n }\n const parentProps = {\n ...p,\n label,\n handleClick,\n codeType,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : hide ? null : (\n <button type=\"button\" onClick={handleClick} {...p}>\n {label}\n </button>\n )\n}\n\nGiftCardOrCouponRemoveButton.propTypes = propTypes\nGiftCardOrCouponRemoveButton.displayName = displayName\n\nexport default GiftCardOrCouponRemoveButton\n","import React, { FunctionComponent, ReactNode } from 'react'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings/index'\n\nconst propTypes = components.GiftCardOrCouponSubmit.propTypes\nconst displayName = components.GiftCardOrCouponSubmit.displayName\n\ntype GiftCardOrCouponSubmitChildrenProps = FunctionChildren<\n Omit<GiftCardOrCouponSubmitProps, 'children'>\n>\n\ntype GiftCardOrCouponSubmitProps = {\n children?: GiftCardOrCouponSubmitChildrenProps\n label?: string | ReactNode\n} & JSX.IntrinsicElements['button']\n\nconst GiftCardOrCouponSubmit: FunctionComponent<GiftCardOrCouponSubmitProps> = (\n props\n) => {\n const { children, label = 'Submit', ...p } = props\n const parentProps = {\n ...p,\n label,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <button type=\"submit\" {...p}>\n {label}\n </button>\n )\n}\n\nGiftCardOrCouponSubmit.propTypes = propTypes\nGiftCardOrCouponSubmit.displayName = displayName\n\nexport default GiftCardOrCouponSubmit\n","import { BaseUnsetState } from '#typings/index'\nimport { SkuCollection, PriceCollection } from '@commercelayer/js-sdk'\nimport { Dispatch } from 'react'\nimport baseReducer from '#utils/baseReducer'\n\nexport interface Items {\n [skuCode: string]: SkuCollection\n}\n\nexport interface ItemPrices {\n [skuCode: string]: PriceCollection\n}\n\nexport interface ItemQuantity {\n [skuCode: string]: number\n}\n\nexport interface ItemOption {\n [key: string]: {\n skuOptionId: string\n options: {\n [key: string]: string\n }\n }\n}\n\nexport interface ItemOptions {\n [skuCode: string]: ItemOption\n}\n\nexport type CustomLineItem = {\n name?: string\n imageUrl?: string | null\n}\n\nexport interface CustomLineItems {\n [skuCode: string]: CustomLineItem\n}\n\ntype ItemParams = {\n type: ItemActionType\n key:\n | 'items'\n | 'item'\n | 'quantity'\n | 'option'\n | 'prices'\n | 'lineItem'\n | 'lineItems'\n | 'skuCode'\n}\n\ntype DataType =\n | Items\n | ItemQuantity\n | ItemOptions\n | ItemPrices\n | CustomLineItems\n | CustomLineItem\n | string\n\nexport interface SetItemState {\n (data: DataType, params: ItemParams, dispatch: Dispatch<ItemAction>): void\n}\n\n// TODO: Set to other reducer files\nexport const setItemState: SetItemState = (data, params, dispatch) => {\n dispatch({\n type: params.type,\n payload: {\n [`${params.key}`]: data,\n },\n })\n}\n\nexport const unsetItemState: BaseUnsetState<ItemAction> = (dispatch) => {\n dispatch({\n type: 'setItem',\n payload: {\n item: {},\n },\n })\n dispatch({\n type: 'setItems',\n payload: {\n items: {},\n },\n })\n dispatch({\n type: 'setQuantity',\n payload: {\n quantity: {},\n },\n })\n dispatch({\n type: 'setOption',\n payload: {\n option: {},\n },\n })\n dispatch({\n type: 'setCustomLineItems',\n payload: {\n lineItems: {},\n },\n })\n dispatch({\n type: 'setCustomLineItem',\n payload: {\n lineItem: {},\n },\n })\n}\n\nexport type SetCustomLineItems = (lineItems: CustomLineItems) => void\nexport type SetCustomLineItem = (lineItem: CustomLineItem) => void\n\nexport interface ItemState {\n skuCode?: string\n items?: Items\n item?: Items\n lineItems?: CustomLineItems\n lineItem?: CustomLineItem\n quantity?: ItemQuantity\n option?: ItemOptions\n prices?: ItemPrices\n setItems?: (items: Items) => void\n setItem?: (item: Items) => void\n setQuantity?: (quantity: ItemQuantity) => void\n setOption?: (option: ItemOptions) => void\n setPrices?: (prices: ItemPrices) => void\n setSkuCode?: (skuCode: string) => void\n setCustomLineItems: SetCustomLineItems\n setCustomLineItem?: SetCustomLineItem\n}\n\ntype ItemActionType =\n | 'setItem'\n | 'setItems'\n | 'setQuantity'\n | 'setOption'\n | 'setPrices'\n | 'setCustomLineItems'\n | 'setCustomLineItem'\n | 'setSkuCode'\n\nconst actionType: ItemActionType[] = [\n 'setItem',\n 'setItems',\n 'setQuantity',\n 'setOption',\n 'setPrices',\n 'setCustomLineItems',\n 'setCustomLineItem',\n 'setSkuCode',\n]\n\nexport interface ItemAction {\n type: ItemActionType\n payload: Partial<ItemState>\n}\n\nexport const itemInitialState: Partial<ItemState> = {\n items: {},\n item: {},\n quantity: {},\n option: {},\n prices: {},\n lineItems: {},\n lineItem: {},\n skuCode: '',\n}\n\nconst itemReducer = (\n state: Partial<ItemState>,\n reducer: ItemAction\n): Partial<ItemState> =>\n baseReducer<Partial<ItemState>, ItemAction, ItemActionType[]>(\n state,\n reducer,\n actionType\n )\n\nexport default itemReducer\n","import React, {\n FunctionComponent,\n useReducer,\n useEffect,\n ReactNode,\n} from 'react'\nimport ItemContext, {\n initialItemContext,\n InitItemContext,\n} from '#context/ItemContext'\nimport itemReducer, {\n itemInitialState,\n setItemState,\n Items,\n ItemQuantity,\n ItemOptions,\n CustomLineItems,\n CustomLineItem,\n} from '#reducers/ItemReducer'\nimport { ItemPrices } from '#reducers/ItemReducer'\nimport components from '#config/components'\nimport { BFSetStateContainer } from '#typings'\n\nconst propTypes = components.ItemContainer.propTypes\nconst displayName = components.ItemContainer.displayName\n\ntype ItemContainerProps = {\n children: ReactNode\n skuCode?: string | null\n lineItem?: {\n name: string\n imageUrl?: string | null\n } | null\n}\n\nconst ItemContainer: FunctionComponent<ItemContainerProps> = (props) => {\n const { children, skuCode, lineItem } = props\n const [state, dispatch] = useReducer(itemReducer, itemInitialState)\n useEffect(() => {\n if (skuCode) {\n setItemState(skuCode, { type: 'setSkuCode', key: 'skuCode' }, dispatch)\n }\n if (lineItem) {\n setItemState(\n lineItem as CustomLineItem,\n { type: 'setCustomLineItem', key: 'lineItem' },\n dispatch\n )\n }\n }, [])\n const setItems: BFSetStateContainer<Items> = (items) =>\n setItemState(items, { type: 'setItems', key: 'items' }, dispatch)\n const setItem: BFSetStateContainer<Items> = (item) =>\n setItemState(item, { type: 'setItem', key: 'item' }, dispatch)\n const setQuantity: BFSetStateContainer<ItemQuantity> = (item) =>\n setItemState(item, { type: 'setQuantity', key: 'quantity' }, dispatch)\n const setOption: BFSetStateContainer<ItemOptions> = (item) =>\n setItemState(item, { type: 'setOption', key: 'option' }, dispatch)\n const setPrices: BFSetStateContainer<ItemPrices> = (item) =>\n setItemState(item, { type: 'setPrices', key: 'prices' }, dispatch)\n const setCustomLineItems: BFSetStateContainer<CustomLineItems> = (item) =>\n setItemState(\n item,\n { type: 'setCustomLineItems', key: 'lineItems' },\n dispatch\n )\n const itemValue = {\n ...initialItemContext,\n ...state,\n setItems,\n setItem,\n setQuantity,\n setOption,\n setPrices,\n setCustomLineItems,\n } as InitItemContext\n return (\n <ItemContext.Provider value={itemValue}>{children}</ItemContext.Provider>\n )\n}\n\nItemContainer.propTypes = propTypes\nItemContainer.displayName = displayName\n\nexport default ItemContainer\n","import { createContext } from 'react'\nimport {\n DeliveryLeadTimeCollection,\n LineItemCollection,\n ShipmentCollection,\n ShippingMethodCollection,\n StockTransferCollection,\n} from '@commercelayer/js-sdk'\n\nexport interface InitialShipmentContext {\n lineItems?: LineItemCollection[]\n shippingMethods?: ShippingMethodCollection[]\n currentShippingMethodId?: string\n stockTransfers?: StockTransferCollection[]\n deliveryLeadTimes?: DeliveryLeadTimeCollection[] | null\n shipment?: ShipmentCollection\n keyNumber: number\n}\n\nconst initial: InitialShipmentContext = {\n lineItems: [],\n shippingMethods: [],\n stockTransfers: [],\n keyNumber: 0,\n}\n\nconst ShipmentChildrenContext = createContext<InitialShipmentContext>(initial)\n\nexport default ShipmentChildrenContext\n","import React, {\n FunctionComponent,\n Fragment,\n useContext,\n ReactNode,\n} from 'react'\nimport LineItemContext from '#context/LineItemContext'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport components from '#config/components'\nimport { LineItemType } from '#typings'\nimport ShipmentChildrenContext from '#context/ShipmentChildrenContext'\nimport { isEmpty } from 'lodash'\nimport { LineItemCollection } from '@commercelayer/js-sdk'\n\nconst propTypes = components.LineItem.propTypes\nconst displayName = components.LineItem.displayName\n\ntype LineItemProps = {\n children: ReactNode\n type?: LineItemType\n}\n\nconst LineItem: FunctionComponent<LineItemProps> = (props) => {\n const { type = 'skus', children } = props\n const { lineItems } = useContext(LineItemContext)\n const { lineItems: shipmentLineItems } = useContext(ShipmentChildrenContext)\n const items = isEmpty(shipmentLineItems)\n ? (lineItems as LineItemCollection[])\n : (shipmentLineItems as LineItemCollection[])\n const components =\n items &&\n items\n .filter((l) => l.itemType === type)\n .map((lineItem, k) => {\n const lineProps = {\n lineItem,\n }\n return (\n <LineItemChildrenContext.Provider key={k} value={lineProps}>\n {children}\n </LineItemChildrenContext.Provider>\n )\n })\n return <Fragment>{components}</Fragment>\n}\n\nLineItem.propTypes = propTypes\nLineItem.displayName = displayName\nLineItem.defaultProps = {\n type: 'skus',\n}\n\nexport default LineItem\n","import React, {\n FunctionComponent,\n useState,\n useEffect,\n useContext,\n} from 'react'\nimport getAmount from '#utils/getAmount'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { BaseAmountComponent, BasePriceType } from '#typings/index'\n\nconst propTypes = components.LineItemAmount.propTypes\nconst defaultProps = components.LineItemAmount\n .defaultProps as LineItemAmountProps\nconst displayName = components.LineItemAmount.displayName\n\nexport type LineItemAmountProps = BaseAmountComponent & {\n type?: BasePriceType\n}\n\nconst LineItemAmount: FunctionComponent<LineItemAmountProps> = (props) => {\n const { format = 'formatted', type = 'total', ...p } = props\n const { lineItem } = useContext(LineItemChildrenContext)\n const [price, setPrice] = useState('')\n useEffect(() => {\n const p = getAmount({\n base: 'amount',\n type,\n format,\n obj: lineItem as Record<string, string>,\n })\n setPrice(p)\n return (): void => {\n setPrice('')\n }\n }, [lineItem])\n const parentProps = {\n price,\n ...p,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <span {...p}>{price}</span>\n )\n}\n\nLineItemAmount.propTypes = propTypes\nLineItemAmount.defaultProps = defaultProps\nLineItemAmount.displayName = displayName\n\nexport default LineItemAmount\n","import React, { FunctionComponent, useContext, ReactNode } from 'react'\nimport Parent from './utils/Parent'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport components from '#config/components'\n\nconst propTypes = components.LineItemImage.propTypes\nconst displayName = components.LineItemImage.displayName\n\ntype LineItemChildrenProps = Omit<LineItemImageProps, 'children'> & {\n src: string\n}\n\ntype LineItemImageProps = {\n children?: (props: LineItemChildrenProps) => ReactNode\n width?: number\n} & Omit<JSX.IntrinsicElements['img'], 'src' | 'srcSet'>\n\nconst LineItemImage: FunctionComponent<LineItemImageProps> = (props) => {\n const { lineItem } = useContext(LineItemChildrenContext)\n const src = lineItem['imageUrl']\n const parenProps = {\n src,\n ...props,\n }\n return props.children ? (\n <Parent {...parenProps}>{props.children}</Parent>\n ) : (\n <img src={src} {...props} />\n )\n}\n\nLineItemImage.propTypes = propTypes\nLineItemImage.displayName = displayName\n\nexport default LineItemImage\n","import React, { useContext, FunctionComponent, ReactNode } from 'react'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\n\nconst propTypes = components.LineItemName.propTypes\nconst displayName = components.LineItemName.displayName\n\ntype LineItemNameChildrenProps = Omit<LineItemNameProps, 'children'>\n\ntype LineItemNameProps = {\n children?: (props: LineItemNameChildrenProps) => ReactNode\n} & JSX.IntrinsicElements['p']\n\nconst LineItemName: FunctionComponent<LineItemNameProps> = (props) => {\n const { lineItem } = useContext(LineItemChildrenContext)\n const labelName = lineItem['name']\n const parentProps = {\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <p {...props}>{labelName}</p>\n )\n}\n\nLineItemName.propTypes = propTypes\nLineItemName.displayName = displayName\n\nexport default LineItemName\n","import { createContext } from 'react'\nimport { LineItemOptionCollection } from '@commercelayer/js-sdk'\n\nexport interface InitialLineItemContext {\n lineItemOption: Partial<LineItemOptionCollection>\n showAll?: boolean\n}\n\nconst initial: InitialLineItemContext = {\n lineItemOption: {},\n}\n\nconst LineItemOptionChildrenContext =\n createContext<InitialLineItemContext>(initial)\n\nexport default LineItemOptionChildrenContext\n","export default function isJSON(str: string): boolean {\n try {\n JSON.parse(str)\n } catch (e) {\n return false\n }\n return true\n}\n","import React, { FunctionComponent, useContext, CSSProperties } from 'react'\nimport LineItemOptionChildrenContext from '#context/LineItemOptionChildrenContext'\nimport get from 'lodash/get'\nimport has from 'lodash/has'\nimport map from 'lodash/map'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { LineItemOptionCollection } from '@commercelayer/js-sdk'\nimport { FunctionChildren } from '#typings/index'\nimport isJSON from '#utils/isJSON'\n\nconst propTypes = components.LineItemOption.propTypes\nconst displayName = components.LineItemOption.displayName\n\ntype LineItemOptionChildrenProps = FunctionChildren<\n Omit<LineItemOptionProps, 'children'> & {\n lineItemOption: LineItemOptionCollection\n }\n>\n\ntype LineItemOptionProps = {\n id?: string\n className?: string\n key?: string\n style?: CSSProperties\n children?: LineItemOptionChildrenProps\n name?: string\n valueClassName?: string\n tagElement?: keyof JSX.IntrinsicElements\n tagContainer?: keyof JSX.IntrinsicElements\n}\n\nconst LineItemOption: FunctionComponent<LineItemOptionProps> = (props) => {\n const {\n name,\n children,\n valueClassName,\n id,\n key,\n tagElement = 'li',\n tagContainer = 'ul',\n ...p\n } = props\n const { lineItemOption, showAll } = useContext(LineItemOptionChildrenContext)\n const parentProps = {\n ...props,\n lineItemOption,\n }\n const TagElement = tagElement as any\n const TagContainer = tagContainer\n const components =\n showAll && isJSON(JSON.stringify(lineItemOption?.options)) ? (\n map(lineItemOption?.options, (value, key) => {\n return (\n <TagElement id={key} {...p}>\n {`${key}:`}\n <span id={id} className={valueClassName}>\n {`${value}`}\n </span>\n </TagElement>\n )\n })\n ) : has(lineItemOption, `options.${name}`) ? (\n <TagElement id={key} {...p}>\n {`${name}:`}\n <span id={id} className={valueClassName} {...p}>\n {`${get(lineItemOption, `options.${name}`)}`}\n </span>\n </TagElement>\n ) : null\n return children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <TagContainer>{components}</TagContainer>\n )\n}\n\nLineItemOption.propTypes = propTypes\nLineItemOption.displayName = displayName\n\nexport default LineItemOption\n","import React, {\n useContext,\n FunctionComponent,\n Fragment,\n ReactNode,\n} from 'react'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport LineItemOptionChildrenContext from '#context/LineItemOptionChildrenContext'\nimport { isEmpty } from 'lodash'\nimport components from '#config/components'\nimport { LineItemOptionCollection } from '@commercelayer/js-sdk'\n\nconst displayName = components.LineItemOptions.displayName\n\nexport type LineItemOptionsProps = JSX.IntrinsicElements['span'] & {\n children: ReactNode\n title?: string\n showName?: boolean\n} & (\n | {\n skuOptionId: string\n showAll?: never\n }\n | {\n skuOptionId?: never\n showAll: true\n }\n )\n\nconst LineItemOptions: FunctionComponent<LineItemOptionsProps> = (props) => {\n const { skuOptionId, title, children, showName = true, showAll, ...p } = props\n const { lineItem } = useContext(LineItemChildrenContext)\n const lineItemOptions: LineItemOptionCollection[] = !isEmpty(lineItem)\n ? lineItem['lineItemOptions']().toArray()\n : []\n const options = lineItemOptions\n .filter((o) => {\n if (showAll) return true\n // @ts-ignore\n return o.skuOption().id === skuOptionId\n })\n .map((o, k) => {\n const showTitle = showName ? <span {...p}>{title || o.name}</span> : null\n const valueProps = {\n lineItemOption: o,\n showAll,\n }\n return (\n <Fragment key={k}>\n {showTitle}\n <LineItemOptionChildrenContext.Provider value={valueProps}>\n {children}\n </LineItemOptionChildrenContext.Provider>\n </Fragment>\n )\n })\n return <Fragment>{options}</Fragment>\n}\n\nLineItemOptions.displayName = displayName\n\nexport default LineItemOptions\n","import React, { FunctionComponent, useContext, ReactNode } from 'react'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport LineItemContext from '#context/LineItemContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings'\n\nconst propTypes = components.LineItemQuantity.propTypes\nconst defaultProps = components.LineItemQuantity.defaultProps\nconst displayName = components.LineItemQuantity.displayName\n\ntype LineItemQuantityChildrenProps = FunctionChildren<\n Omit<LineItemQuantityProps, 'children'> & {\n quantity: number\n handleChange: (event: React.MouseEvent<HTMLSelectElement>) => void\n }\n>\n\ntype LineItemQuantityProps = {\n children?: LineItemQuantityChildrenProps\n max?: number\n disabled?: boolean\n readonly?: boolean\n} & (JSX.IntrinsicElements['select'] & JSX.IntrinsicElements['span'])\n\nconst LineItemQuantity: FunctionComponent<LineItemQuantityProps> = (props) => {\n const { max = 50, readonly = false, ...p } = props\n const { lineItem } = useContext(LineItemChildrenContext)\n const { updateLineItem } = useContext(LineItemContext)\n const options: ReactNode[] = []\n for (let i = 1; i <= max; i++) {\n options.push(\n <option key={i} value={`${i}`}>\n {i}\n </option>\n )\n }\n const handleChange = (e: React.ChangeEvent<HTMLSelectElement>): void => {\n const quantity = Number(e.target.value)\n updateLineItem && updateLineItem(lineItem['id'], quantity)\n }\n const quantity = lineItem['quantity']\n const parentProps = {\n handleChange,\n quantity,\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : readonly ? (\n <span {...p}>{quantity}</span>\n ) : (\n <select value={quantity} onChange={handleChange} {...p}>\n {options}\n </select>\n )\n}\n\nLineItemQuantity.propTypes = propTypes\nLineItemQuantity.defaultProps = defaultProps\nLineItemQuantity.displayName = displayName\n\nexport default LineItemQuantity\n","import React, { FunctionComponent, useContext, PropsWithoutRef } from 'react'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport LineItemContext from '#context/LineItemContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings/index'\n\nconst propTypes = components.LineItemRemoveLink.propTypes\nconst defaultProps = components.LineItemRemoveLink.defaultProps\nconst displayName = components.LineItemRemoveLink.displayName\n\ntype ChildrenLineItemRemoveLinkProps = FunctionChildren<{\n handleRemove: (event: React.MouseEvent<HTMLAnchorElement>) => void\n label?: string\n}>\n\ntype LineItemRemoveLinkProps = {\n children?: ChildrenLineItemRemoveLinkProps\n label?: string\n} & PropsWithoutRef<JSX.IntrinsicElements['a']>\n\nconst LineItemRemoveLink: FunctionComponent<LineItemRemoveLinkProps> = (\n props\n) => {\n const { label = 'Remove' } = props\n const { lineItem } = useContext(LineItemChildrenContext)\n const { deleteLineItem } = useContext(LineItemContext)\n const handleRemove = (e: React.MouseEvent<HTMLAnchorElement>): void => {\n e.preventDefault()\n deleteLineItem && deleteLineItem(lineItem['id'])\n }\n const parentProps = {\n handleRemove,\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <a {...props} href=\"#\" onClick={handleRemove}>\n {label}\n </a>\n )\n}\n\nLineItemRemoveLink.propTypes = propTypes\nLineItemRemoveLink.defaultProps = defaultProps\nLineItemRemoveLink.displayName = displayName\n\nexport default LineItemRemoveLink\n","import React, { useContext, FunctionComponent, ReactNode } from 'react'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\n\nconst propTypes = components.LineItemSkuCode.propTypes\nconst displayName = components.LineItemSkuCode.displayName\n\ntype LineItemNameChildrenProps = Omit<LineItemNameProps, 'children'>\n\ntype LineItemNameProps = {\n children?: (props: LineItemNameChildrenProps) => ReactNode\n} & JSX.IntrinsicElements['p']\n\nconst LineItemSkuCode: FunctionComponent<LineItemNameProps> = (props) => {\n const { lineItem } = useContext(LineItemChildrenContext)\n const labelName = lineItem['skuCode']\n const parentProps = {\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <p {...props}>{labelName}</p>\n )\n}\n\nLineItemSkuCode.propTypes = propTypes\nLineItemSkuCode.displayName = displayName\n\nexport default LineItemSkuCode\n","import CLayer, {\n LineItemCollection,\n OrderCollection,\n} from '@commercelayer/js-sdk'\nimport baseReducer from '#utils/baseReducer'\nimport { Dispatch } from 'react'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { getOrderContext } from './OrderReducer'\nimport getErrorsByCollection from '#utils/getErrorsByCollection'\nimport { isEmpty } from 'lodash'\nimport { LoaderType } from '#typings'\nimport { BaseError } from '#typings/errors'\n\nexport type UpdateLineItemParams = {\n lineItemId: string\n quantity?: number\n dispatch: Dispatch<LineItemAction>\n config: CommerceLayerConfig\n getOrder: getOrderContext | undefined\n orderId: string\n errors: BaseError[] | undefined\n}\n\nexport interface UpdateLineItem {\n (params: UpdateLineItemParams): void\n}\n\nexport type DeleteLineItemParam = Record<string, any> & UpdateLineItemParams\n\nexport interface DeleteLineItem {\n (params: DeleteLineItemParam): void\n}\n\nexport type GetLineItemsParams = {\n dispatch: Dispatch<LineItemAction>\n config: CommerceLayerConfig\n order: OrderCollection | null\n filters: Record<string, any>\n}\n\nexport interface GetLineItems {\n (params: GetLineItemsParams): void\n}\n\nexport interface LineItemPayload {\n loading?: boolean\n loader?: LoaderType\n lineItems?: LineItemCollection[]\n errors?: BaseError[]\n}\n\nexport interface LineItemState extends LineItemPayload {\n updateLineItem?: (lineItemId: string, quantity?: number) => void\n deleteLineItem?: (lineItemId: string) => void\n}\n\nexport interface LineItemAction {\n type: LineItemActionType\n payload: LineItemPayload\n}\n\nexport const getLineItems: GetLineItems = (params) => {\n const { order, dispatch, config, filters } = params\n let allLineItems: LineItemCollection[] = []\n order &&\n // @ts-ignore\n order\n .withCredentials(config)\n .lineItems()\n .where(filters)\n .includes('lineItemOptions.skuOption')\n .all()\n .then(async (res) => {\n dispatch({\n type: 'setLoading',\n payload: {\n loading: false,\n },\n })\n const items = res.toArray()\n allLineItems = [...allLineItems, ...items]\n dispatch({\n type: 'setLineItems',\n payload: {\n lineItems: allLineItems,\n },\n })\n let colResp: any = res\n const pageCount = res.pageCount()\n if (colResp.hasNextPage() && pageCount) {\n for (let index = 1; index < pageCount; index++) {\n colResp = await colResp.withCredentials(config).nextPage()\n const nextItems = colResp.toArray()\n allLineItems = [...allLineItems, ...nextItems]\n dispatch({\n type: 'setLineItems',\n payload: {\n lineItems: allLineItems,\n },\n })\n }\n }\n })\n .catch((c: any) => {\n const errors = getErrorsByCollection(c, 'lineItem')\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n })\n}\n\nexport const updateLineItem: UpdateLineItem = async (params) => {\n const {\n config,\n lineItemId,\n quantity,\n getOrder,\n orderId,\n dispatch,\n errors,\n } = params\n try {\n const lineItem = await CLayer.LineItem.build({\n id: lineItemId,\n })\n const update = await lineItem.withCredentials(config).update({ quantity })\n if (!update.errors().empty()) {\n throw update\n }\n getOrder && (await getOrder(orderId))\n if (!isEmpty(errors)) {\n dispatch({\n type: 'setErrors',\n payload: {\n errors: [],\n },\n })\n }\n } catch (c) {\n const errors = getErrorsByCollection<LineItemCollection>(c, 'lineItem')\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n }\n}\n\nexport const deleteLineItem: DeleteLineItem = async (params) => {\n const { config, lineItemId, getOrder, orderId, dispatch, errors } = params\n try {\n const lineItem = await CLayer.LineItem.withCredentials(config).find(\n lineItemId\n )\n const destroyLineItem = await lineItem.withCredentials(config).destroy()\n if (!destroyLineItem.errors().empty()) {\n throw destroyLineItem\n }\n getOrder && (await getOrder(orderId))\n if (!isEmpty(errors)) {\n dispatch({\n type: 'setErrors',\n payload: {\n errors: [],\n },\n })\n }\n } catch (c) {\n const errors = getErrorsByCollection(c, 'lineItem')\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n }\n}\n\nexport const lineItemInitialState: LineItemState = {\n loading: false,\n lineItems: [],\n errors: [],\n}\n\nexport type LineItemActionType = 'setLineItems' | 'setErrors' | 'setLoading'\n\nconst actionType: LineItemActionType[] = [\n 'setLineItems',\n 'setErrors',\n 'setLoading',\n]\n\nconst lineItemReducer = (\n state: LineItemState,\n reducer: LineItemAction\n): LineItemState =>\n baseReducer<LineItemState, LineItemAction, LineItemActionType[]>(\n state,\n reducer,\n actionType\n )\n\nexport default lineItemReducer\n","import React, {\n useEffect,\n FunctionComponent,\n useReducer,\n useContext,\n ReactNode,\n} from 'react'\nimport lineItemReducer, {\n lineItemInitialState,\n updateLineItem,\n deleteLineItem,\n getLineItems,\n} from '#reducers/LineItemReducer'\nimport OrderContext from '#context/OrderContext'\nimport LineItemContext, { LineItemContextValue } from '#context/LineItemContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport { isEmpty } from 'lodash'\nimport components from '#config/components'\n\nconst propTypes = components.LineItemsContainer.propTypes\nconst defaultProps = components.LineItemsContainer.defaultProps\nconst displayName = components.LineItemsContainer.displayName\n\ntype LineItemsContainer = {\n children: ReactNode\n filters?: Record<string, any>\n loader?: ReactNode\n}\n\nconst LineItemsContainer: FunctionComponent<LineItemsContainer> = (props) => {\n const { children, filters = {}, loader = 'Loading...' } = props\n const { order, getOrder, orderId } = useContext(OrderContext)\n const config = useContext(CommerceLayerContext)\n const [state, dispatch] = useReducer(lineItemReducer, lineItemInitialState)\n useEffect(() => {\n if (!isEmpty(order)) {\n order &&\n getLineItems({\n order,\n dispatch,\n config,\n filters,\n })\n }\n return (): void => {\n if (isEmpty(order)) {\n dispatch({\n type: 'setLineItems',\n payload: { lineItems: [] },\n })\n }\n }\n }, [order])\n const lineItemValue = {\n ...state,\n loader,\n updateLineItem: (lineItemId, quantity = 1) =>\n updateLineItem({\n lineItemId,\n quantity,\n dispatch,\n config,\n getOrder,\n orderId,\n errors: state.errors,\n }),\n deleteLineItem: (lineItemId) =>\n deleteLineItem({\n lineItemId,\n dispatch,\n config,\n getOrder,\n orderId,\n errors: state.errors,\n }),\n } as LineItemContextValue\n return (\n <LineItemContext.Provider value={lineItemValue}>\n {state.loading ? loader : children}\n </LineItemContext.Provider>\n )\n}\n\nLineItemsContainer.propTypes = propTypes\nLineItemsContainer.defaultProps = defaultProps\nLineItemsContainer.displayName = displayName\n\nexport default LineItemsContainer\n","import { LineItemCollection } from '@commercelayer/js-sdk'\n\nexport interface GetLineItemsCountInterface {\n (lineItems: LineItemCollection[], quantity?: number): number\n}\n\nconst getLineItemsCount: GetLineItemsCountInterface = (\n lineItems,\n quantity = 0\n) => {\n const typeAccept = ['skus', 'gift_cards']\n lineItems\n .filter((l) => typeAccept.includes(l.itemType))\n .map((l) => {\n quantity += l.quantity\n })\n return quantity\n}\n\nexport default getLineItemsCount\n","import React, {\n FunctionComponent,\n useContext,\n useState,\n useEffect,\n} from 'react'\nimport Parent from './utils/Parent'\nimport getLineItemsCount from '#utils/getLineItemsCount'\nimport { isEmpty } from 'lodash'\nimport LineItemContext from '#context/LineItemContext'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings/index'\n\nconst propTypes = components.LineItemsCount.propTypes\nconst displayName = components.LineItemsCount.displayName\n\ntype LineItemsCountChildrenProps = FunctionChildren<\n Omit<LineItemsCountProps, 'children'> & {\n quantity: number\n }\n>\n\ntype LineItemsCountProps = {\n children?: LineItemsCountChildrenProps\n} & JSX.IntrinsicElements['span']\n\nconst LineItemsCount: FunctionComponent<LineItemsCountProps> = (props) => {\n const { children, ...p } = props\n const { lineItems } = useContext(LineItemContext)\n const [quantity, setQuantity] = useState(0)\n useEffect(() => {\n if (!isEmpty(lineItems)) {\n const qty = getLineItemsCount(lineItems || [])\n setQuantity(qty)\n }\n return (): void => {\n setQuantity(0)\n }\n }, [lineItems])\n const parentProps = {\n quantity,\n ...p,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <span {...p}>{quantity}</span>\n )\n}\n\nLineItemsCount.propTypes = propTypes\nLineItemsCount.displayName = displayName\n\nexport default LineItemsCount\n","import React, { FunctionComponent } from 'react'\nimport BaseInput from './utils/BaseInput'\nimport components from '#config/components'\nimport { BaseInputComponentProps } from '#typings'\n\nconst propTypes = components.MetadataInput.propTypes\nconst displayName = components.MetadataInput.displayName\n\nexport type MetadataInputProps = BaseInputComponentProps &\n JSX.IntrinsicElements['input'] &\n JSX.IntrinsicElements['textarea']\n\nconst MetadataInput: FunctionComponent<MetadataInputProps> = (props) => {\n return <BaseInput data-metadata {...props} />\n}\n\nMetadataInput.propTypes = propTypes\nMetadataInput.displayName = displayName\n\nexport default MetadataInput\n","import React, {\n useEffect,\n FunctionComponent,\n useReducer,\n useContext,\n ReactNode,\n} from 'react'\nimport orderReducer, {\n orderInitialState,\n AddToCartValues,\n createOrder,\n removeGiftCardOrCouponCode,\n} from '#reducers/OrderReducer'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport OrderContext from '#context/OrderContext'\nimport {\n getApiOrder,\n addToCart,\n OrderState,\n setOrderErrors,\n saveAddressToCustomerAddressBook,\n setOrder,\n} from '#reducers/OrderReducer'\nimport { unsetOrderState } from '#reducers/OrderReducer'\nimport components from '#config/components'\nimport { BaseMetadataObject } from '#typings'\nimport OrderStorageContext from '#context/OrderStorageContext'\nimport { OrderCollection } from '@commercelayer/js-sdk'\nimport {\n setGiftCardOrCouponCode,\n OrderCodeType,\n} from '../reducers/OrderReducer'\n\nconst propTypes = components.OrderContainer.propTypes\nconst defaultProps = components.OrderContainer.defaultProps\nconst displayName = components.OrderContainer.displayName\n\ntype OrderContainerProps = {\n children: ReactNode\n metadata?: BaseMetadataObject\n attributes?: Record<string, any>\n orderId?: string\n}\n\nconst OrderContainer: FunctionComponent<OrderContainerProps> = (props) => {\n const { orderId, children, metadata, attributes } = props\n const [state, dispatch] = useReducer(orderReducer, orderInitialState)\n const config = useContext(CommerceLayerContext)\n const {\n persistKey,\n clearWhenPlaced,\n getLocalOrder,\n setLocalOrder,\n deleteLocalOrder,\n } = useContext(OrderStorageContext)\n useEffect(() => {\n if (config.accessToken) {\n const localOrder = persistKey ? getLocalOrder(persistKey) : orderId\n if (localOrder) {\n dispatch({\n type: 'setOrderId',\n payload: {\n orderId: localOrder,\n },\n })\n if (!state.order) {\n getApiOrder({\n id: localOrder,\n dispatch,\n config,\n persistKey,\n clearWhenPlaced,\n deleteLocalOrder,\n })\n }\n }\n }\n return (): void => unsetOrderState(dispatch)\n }, [config.accessToken])\n const orderValue = {\n ...state,\n setOrder: (order: OrderCollection) => setOrder(order, dispatch),\n getOrder: (id: string): Promise<void | OrderCollection> =>\n getApiOrder({ id, dispatch, config }),\n setOrderErrors: (collection: any) =>\n setOrderErrors({ dispatch, collection }),\n createOrder: async (): Promise<string> =>\n await createOrder({\n persistKey,\n dispatch,\n config,\n state,\n orderMetadata: metadata,\n orderAttributes: attributes,\n }),\n addToCart: (values: AddToCartValues): Promise<{ success: boolean }> =>\n addToCart({\n ...values,\n persistKey,\n dispatch,\n state,\n config,\n errors: state.errors,\n orderMetadata: metadata || {},\n orderAttributes: attributes,\n setLocalOrder,\n }),\n saveAddressToCustomerAddressBook: (\n type: 'BillingAddress' | 'ShippingAddress',\n value: boolean\n ) => saveAddressToCustomerAddressBook({ type, value, dispatch }),\n setGiftCardOrCouponCode: ({ code }: { code: string }) =>\n setGiftCardOrCouponCode({ code, dispatch, order: state.order, config }),\n removeGiftCardOrCouponCode: ({ codeType }: { codeType: OrderCodeType }) =>\n removeGiftCardOrCouponCode({\n codeType,\n dispatch,\n order: state.order,\n config,\n }),\n }\n return (\n <OrderContext.Provider value={orderValue as OrderState}>\n {children}\n </OrderContext.Provider>\n )\n}\n\nOrderContainer.propTypes = propTypes\nOrderContainer.defaultProps = defaultProps\nOrderContainer.displayName = displayName\n\nexport default OrderContainer\n","import OrderAttributes from '#typings/order'\nimport { createContext, ReactNode } from 'react'\nimport { Row } from 'react-table'\n\nexport interface InitialOrderListContext {\n order: OrderAttributes | null\n row: Row<OrderAttributes>\n showActions: boolean\n actionsComponent?: (props: { order: OrderAttributes }) => ReactNode\n actionsContainerClassName?: string\n}\n\nconst initial: InitialOrderListContext = {\n order: null,\n row: {} as any,\n showActions: false,\n}\n\nconst OrderListChildrenContext = createContext<InitialOrderListContext>(initial)\n\nexport default OrderListChildrenContext\n","export default function scrollbarWidth() {\n if (typeof document === 'undefined') return 0\n const scrollDiv = document.createElement('div')\n scrollDiv.setAttribute(\n 'style',\n 'width: 100px; height: 100px; overflow: scroll; position:absolute; top:-9999px;'\n )\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n}\n","import React from 'react'\n\nexport const sortDescIcon = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={20}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M3 4h13M3 8h9m-9 4h9m5-4v12m0 0l-4-4m4 4l4-4\"\n />\n </svg>\n)\n\nexport const sortAscIcon = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={20}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12\"\n />\n </svg>\n)\n","import React, {\n FunctionComponent,\n useContext,\n ReactNode,\n useMemo,\n useState,\n useEffect,\n ReactElement,\n useCallback,\n} from 'react'\nimport components from '#config/components'\nimport CustomerContext from '#context/CustomerContext'\nimport OrderListChildrenContext, {\n InitialOrderListContext,\n} from '#context/OrderListChildrenContext'\nimport {\n Column,\n HeaderGroup,\n useTable,\n useSortBy,\n UseSortByColumnProps,\n useBlockLayout,\n} from 'react-table'\nimport OrderAttributes from '#typings/order'\nimport { FixedSizeList } from 'react-window'\nimport scrollbarWidth from '#utils/scrollbarWidth'\nimport { sortDescIcon, sortAscIcon } from '#utils/icons'\n\nconst propTypes = components.OrderList.propTypes\nconst displayName = components.OrderList.displayName\n\ntype OrderListProps = {\n children: ReactNode\n columns: (Column & { className?: string })[]\n loadingElement?: ReactElement\n actionsComponent?: InitialOrderListContext['actionsComponent']\n actionsContainerClassName?: string\n showActions?: boolean\n} & JSX.IntrinsicElements['table'] &\n (\n | {\n infiniteScroll: true\n windowOptions?: {\n height?: number\n itemSize?: number\n width?: number\n column?: number\n }\n }\n | {\n infiniteScroll?: false\n windowOptions?: never\n }\n )\n\ninterface HeaderColumn\n extends HeaderGroup<OrderAttributes>,\n Partial<UseSortByColumnProps<OrderAttributes>> {\n className?: string\n titleClassName?: string\n}\n\nconst OrderList: FunctionComponent<OrderListProps> = ({\n children,\n columns,\n loadingElement,\n showActions = false,\n actionsComponent,\n actionsContainerClassName,\n infiniteScroll,\n windowOptions,\n ...p\n}) => {\n const [loading, setLoading] = useState(true)\n const { orders } = useContext(CustomerContext)\n const data = useMemo<OrderAttributes[]>(\n () => orders as OrderAttributes[],\n [orders]\n )\n const cols = useMemo(() => columns, [columns]) as Column<OrderAttributes>[]\n const tablePlugins: any[] = [useSortBy]\n if (infiniteScroll) tablePlugins.push(useBlockLayout)\n const defaultColumn = React.useMemo(\n () => ({\n width: windowOptions?.column || 150,\n }),\n [windowOptions?.column]\n )\n const table = useTable<OrderAttributes>(\n { data, columns: cols, ...(infiniteScroll && { defaultColumn }) },\n ...tablePlugins\n )\n const TableHtmlElement = !infiniteScroll ? 'table' : 'div'\n const TheadHtmlElement = !infiniteScroll ? 'thead' : 'div'\n const TbodyHtmlElement = !infiniteScroll ? 'tbody' : 'div'\n const ThHtmlElement = !infiniteScroll ? 'th' : 'div'\n const TrHtmlElement = !infiniteScroll ? 'tr' : 'div'\n\n useEffect(() => {\n orders && orders.length > 0 && setLoading(false)\n return () => {\n setLoading(true)\n }\n }, [orders])\n const scrollBarSize = infiniteScroll ? useMemo(() => scrollbarWidth(), []) : 0\n const LoadingComponent = loadingElement || <div>Loading...</div>\n const headerComponent = table.headerGroups.map((headerGroup) => {\n const columns = headerGroup.headers.map((column: HeaderColumn) => {\n return (\n <ThHtmlElement\n className={column?.className}\n {...column.getHeaderProps(\n column?.getSortByToggleProps && column?.getSortByToggleProps()\n )}\n >\n <span className={column?.titleClassName}>\n {column.render('Header')}\n {column.isSorted\n ? column.isSortedDesc\n ? sortDescIcon\n : sortAscIcon\n : ''}\n </span>\n </ThHtmlElement>\n )\n })\n return (\n <TrHtmlElement {...headerGroup.getHeaderGroupProps()}>\n {columns}\n </TrHtmlElement>\n )\n })\n const components = !infiniteScroll\n ? table.rows.map((row, i) => {\n table.prepareRow(row)\n const childProps = {\n order: orders?.[i] as OrderAttributes,\n row,\n showActions,\n actionsComponent,\n actionsContainerClassName,\n }\n return (\n <TrHtmlElement {...row.getRowProps()}>\n <OrderListChildrenContext.Provider value={childProps}>\n {children}\n </OrderListChildrenContext.Provider>\n </TrHtmlElement>\n )\n })\n : useCallback(\n ({ index, style }) => {\n const row = table.rows[index]\n table.prepareRow(row)\n const childProps = {\n order: orders?.[index] as OrderAttributes,\n row,\n showActions,\n actionsComponent,\n actionsContainerClassName,\n }\n return (\n <TrHtmlElement {...row.getRowProps({ style })}>\n <OrderListChildrenContext.Provider value={childProps}>\n {children}\n </OrderListChildrenContext.Provider>\n </TrHtmlElement>\n )\n },\n [table.prepareRow, table.rows]\n )\n return loading ? (\n LoadingComponent\n ) : (\n <TableHtmlElement {...p} {...table.getTableProps()}>\n <TheadHtmlElement>{headerComponent}</TheadHtmlElement>\n <TbodyHtmlElement {...table.getTableBodyProps()}>\n {!infiniteScroll ? (\n components\n ) : (\n <FixedSizeList\n height={windowOptions?.height || 400}\n itemCount={table.rows.length}\n itemSize={windowOptions?.itemSize || 100}\n width={\n windowOptions?.width || table.totalColumnsWidth + scrollBarSize\n }\n >\n {components as () => JSX.Element}\n </FixedSizeList>\n )}\n </TbodyHtmlElement>\n </TableHtmlElement>\n )\n}\n\nOrderList.propTypes = propTypes\nOrderList.displayName = displayName\n\nexport default OrderList\n","export default function isDate(value: string): boolean {\n return !isNaN(Date.parse(value))\n}\n","import React, {\n useContext,\n FunctionComponent,\n ReactNode,\n Fragment,\n} from 'react'\nimport Parent from './utils/Parent'\n// import components from '#config/components'\nimport OrderListChildrenContext from '#context/OrderListChildrenContext'\nimport { Cell, Row } from 'react-table'\nimport isDate from '#utils/isDate'\nimport last from 'lodash/last'\nimport OrderAttributes from '#typings/order'\n\n// const propTypes = components.OrderListRow.propTypes\n// const displayName = components.OrderListRow.displayName\n\ntype OrderListHeaderChildrenProps = Omit<OrderListHeaderProps, 'children'> & {\n order: Record<string, any>\n row: Row\n cell: Cell[]\n}\n\ntype OrderListHeaderProps = {\n children?: (props: OrderListHeaderChildrenProps) => ReactNode\n field: keyof OrderAttributes\n} & JSX.IntrinsicElements['td']\n\nconst OrderListRow: FunctionComponent<OrderListHeaderProps> = ({\n field,\n children,\n ...p\n}) => {\n const {\n order,\n row,\n showActions,\n actionsComponent,\n actionsContainerClassName,\n } = useContext(OrderListChildrenContext)\n const cell = row.cells.filter((cell) => cell.column.id === field)\n const isLastRow = last(row.cells)?.column.id === field\n const ActionRow = () => {\n return (\n (showActions && isLastRow && actionsComponent && (\n <td {...p} className={actionsContainerClassName}>\n <Parent {...parentProps}>{actionsComponent}</Parent>\n </td>\n )) ||\n null\n )\n }\n const parentProps = {\n ...p,\n field,\n order,\n row,\n cell,\n }\n return children ? (\n <Fragment>\n <Parent {...parentProps}>{children}</Parent>\n <ActionRow />\n </Fragment>\n ) : (\n <Fragment>\n {cell.map((cell) => {\n const cellValue = cell.value\n const value = isDate(cellValue)\n ? new Date(Date.parse(cellValue)).toLocaleString()\n : cell.render('Cell')\n return (\n <td {...p} {...cell.getCellProps()}>\n {value}\n </td>\n )\n })}\n <ActionRow />\n </Fragment>\n )\n}\n\n// OrderListRow.propTypes = propTypes\n// OrderListRow.displayName = displayName\n\nexport default OrderListRow\n","import OrderContext from '#context/OrderContext'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport Parent from './Parent'\n\ntype BaseFieldChildren = Omit<BaseFieldProps, 'children'>\n\nexport type BaseFieldProps = {\n attribute: 'number' | 'id'\n children?: (props: BaseFieldChildren) => ReactNode\n} & JSX.IntrinsicElements['span']\n\nconst BaseField: FunctionComponent<BaseFieldProps> = ({\n children,\n attribute,\n ...p\n}) => {\n const { order } = useContext(OrderContext)\n const [field, setField] = useState('')\n useEffect(() => {\n if (order && attribute in order) setField(order[attribute] as string)\n return () => {\n setField('')\n }\n }, [order])\n const parentProps = { attribute: field, ...p }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <span {...p}>{field}</span>\n )\n}\n\nexport default BaseField\n","import React, { FunctionComponent } from 'react'\nimport components from '#config/components'\nimport BaseField, { BaseFieldProps } from './utils/BaseField'\n\nconst propTypes = components.OrderNumber.propTypes\nconst displayName = components.OrderNumber.displayName\n\nexport type OrderNumberProps = Omit<BaseFieldProps, 'attribute'>\n\nconst OrderNumber: FunctionComponent<OrderNumberProps> = (props) => {\n return <BaseField attribute=\"number\" {...props} />\n}\n\nOrderNumber.propTypes = propTypes\nOrderNumber.displayName = displayName\n\nexport default OrderNumber\n","import React, { FunctionComponent, ReactNode } from 'react'\nimport OrderStorageContext from '#context/OrderStorageContext'\nimport components from '#config/components'\nimport {\n getLocalOrder,\n setLocalOrder,\n deleteLocalOrder,\n} from '#utils/localStorage'\n\nconst propTypes = components.OrderStorage.propTypes\nconst displayName = components.OrderStorage.displayName\n\ntype OrderStorageProps = {\n children: ReactNode\n persistKey: string\n clearWhenPlaced?: boolean\n}\n\nconst OrderStorage: FunctionComponent<OrderStorageProps> = (props) => {\n const { children, clearWhenPlaced = true, ...p } = props\n return (\n <OrderStorageContext.Provider\n value={{\n ...p,\n setLocalOrder,\n getLocalOrder,\n deleteLocalOrder,\n clearWhenPlaced,\n }}\n >\n {children}\n </OrderStorageContext.Provider>\n )\n}\n\nOrderStorage.propTypes = propTypes\nOrderStorage.displayName = displayName\n\nexport default OrderStorage\n","import { LoaderType } from '#typings'\nimport React from 'react'\n\nexport default function getLoaderComponent(Loader: LoaderType) {\n return typeof Loader === 'function' ? <Loader /> : <>{Loader}</>\n}\n","import React, {\n FunctionComponent,\n Fragment,\n useContext,\n ReactNode,\n useState,\n useEffect,\n} from 'react'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport components from '#config/components'\nimport { LoaderType } from '#typings'\nimport getLoaderComponent from '../utils/getLoaderComponent'\nimport { PaymentMethodCollection } from '@commercelayer/js-sdk'\nimport { PaymentResource } from '#reducers/PaymentMethodReducer'\n\nconst propTypes = components.PaymentMethod.propTypes\nconst displayName = components.PaymentMethod.displayName\n\ntype PaymentMethodProps = {\n children: ReactNode\n activeClass?: string\n loader?: LoaderType\n} & Omit<JSX.IntrinsicElements['div'], 'onClick'> &\n (\n | {\n clickableContainer: true\n onClick?: (\n payment?: PaymentMethodCollection | Record<string, any>\n ) => void\n }\n | {\n clickableContainer?: never\n onClick?: never\n }\n )\n\nconst PaymentMethod: FunctionComponent<PaymentMethodProps> = ({\n children,\n className,\n activeClass,\n loader = 'Loading...',\n clickableContainer,\n onClick,\n ...p\n}) => {\n const [loading, setLoading] = useState(true)\n const [paymentSelected, setPaymentSelected] = useState('')\n const {\n paymentMethods,\n currentPaymentMethodId,\n setPaymentMethod,\n setLoading: setLoadingPlaceOrder,\n } = useContext(PaymentMethodContext)\n useEffect(() => {\n if (paymentMethods) setLoading(false)\n if (currentPaymentMethodId) setPaymentSelected(currentPaymentMethodId)\n return () => {\n setLoading(true)\n }\n }, [paymentMethods, currentPaymentMethodId])\n const components =\n paymentMethods &&\n paymentMethods.map((payment, k) => {\n const isActive = currentPaymentMethodId === payment?.id\n const paymentMethodProps = {\n payment,\n clickableContainer,\n paymentSelected,\n setPaymentSelected,\n }\n const onClickable = !clickableContainer\n ? undefined\n : async () => {\n setLoadingPlaceOrder({ loading: true })\n setPaymentSelected(payment.id)\n const paymentResource =\n payment?.paymentSourceType as PaymentResource\n const paymentMethodId = payment?.id as string\n await setPaymentMethod({ paymentResource, paymentMethodId })\n onClick && onClick(payment)\n setLoadingPlaceOrder({ loading: false })\n }\n return (\n <div\n key={k}\n className={`${className} ${isActive ? activeClass : ''}`}\n onClick={onClickable}\n {...p}\n >\n <PaymentMethodChildrenContext.Provider value={paymentMethodProps}>\n {children}\n </PaymentMethodChildrenContext.Provider>\n </div>\n )\n })\n return !loading ? (\n <Fragment>{components}</Fragment>\n ) : (\n getLoaderComponent(loader)\n )\n}\n\nPaymentMethod.propTypes = propTypes\nPaymentMethod.displayName = displayName\n\nexport default PaymentMethod\n","import React, { FunctionComponent } from 'react'\nimport BaseOrderPrice from './utils/BaseOrderPrice'\nimport components from '#config/components'\nimport { BaseAmountComponent } from '#typings'\n\nconst propTypes = components.PaymentMethodAmount.propTypes\nconst defaultProps = components.PaymentMethodAmount.defaultProps\nconst displayName = components.PaymentMethodAmount.displayName\n\nconst PaymentMethodAmount: FunctionComponent<BaseAmountComponent> = (props) => {\n return <BaseOrderPrice base=\"amount\" type=\"paymentMethod\" {...props} />\n}\n\nPaymentMethodAmount.propTypes = propTypes\nPaymentMethodAmount.defaultProps = defaultProps\nPaymentMethodAmount.displayName = displayName\n\nexport default PaymentMethodAmount\n","import React, { useContext, FunctionComponent, ReactNode } from 'react'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\n\nconst propTypes = components.PaymentMethodName.propTypes\nconst displayName = components.PaymentMethodName.displayName\n\ntype PaymentMethodNameChildrenProps = Omit<\n PaymentMethodNameProps,\n 'children'\n> & { labelName: string }\n\ntype PaymentMethodNameProps = {\n children?: (props: PaymentMethodNameChildrenProps) => ReactNode\n} & JSX.IntrinsicElements['label']\n\nconst PaymentMethodName: FunctionComponent<PaymentMethodNameProps> = (\n props\n) => {\n const { payment } = useContext(PaymentMethodChildrenContext)\n const labelName = payment?.['name']\n const htmlFor = payment?.paymentSourceType\n const parentProps = {\n htmlFor,\n labelName,\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <label htmlFor={htmlFor} {...props}>\n {labelName}\n </label>\n )\n}\n\nPaymentMethodName.propTypes = propTypes\nPaymentMethodName.displayName = displayName\n\nexport default PaymentMethodName\n","import React, {\n FunctionComponent,\n useState,\n useEffect,\n useContext,\n} from 'react'\nimport getAmount from '#utils/getAmount'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { BaseAmountComponent } from '#typings/index'\n\nconst propTypes = components.PaymentMethodPrice.propTypes\nconst displayName = components.PaymentMethodPrice.displayName\n\ntype Props = {\n type?: 'amount'\n labelFree?: string\n}\n\nexport type PaymentMethodPriceProps = BaseAmountComponent & Props\n\nconst PaymentMethodPrice: FunctionComponent<PaymentMethodPriceProps> = (\n props\n) => {\n const {\n format = 'formatted',\n type = 'amount',\n labelFree = 'Free',\n ...p\n } = props\n const { payment } = useContext(PaymentMethodChildrenContext)\n const [price, setPrice] = useState('')\n const [priceCents, setPriceCents] = useState(0)\n useEffect(() => {\n if (payment) {\n const p = getAmount({ base: 'price', type, format, obj: payment })\n setPrice(p)\n const c = getAmount<number>({\n base: 'price',\n type,\n format: 'cents',\n obj: payment,\n })\n setPriceCents(c)\n }\n return (): void => {\n setPrice('')\n setPriceCents(0)\n }\n }, [payment])\n const parentProps = {\n labelFree,\n price,\n priceCents,\n ...p,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <span {...p}>{priceCents === 0 ? labelFree : price}</span>\n )\n}\n\nPaymentMethodPrice.propTypes = propTypes\nPaymentMethodPrice.displayName = displayName\n\nexport default PaymentMethodPrice\n","import React, { useContext, FunctionComponent, ReactNode } from 'react'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport { PaymentMethodCollection } from '@commercelayer/js-sdk'\nimport { PaymentResource } from '../reducers/PaymentMethodReducer'\nimport OrderContext from '#context/OrderContext'\n\nconst propTypes = components.PaymentMethodRadioButton.propTypes\nconst displayName = components.PaymentMethodRadioButton.displayName\n\ntype ShippingMethodRadioButtonChildrenProps = Omit<\n ShippingMethodRadioButtonProps,\n 'children'\n> & { checked: boolean }\n\ntype ShippingMethodRadioButtonProps = {\n children?: (props: ShippingMethodRadioButtonChildrenProps) => ReactNode\n onChange?: (payment?: PaymentMethodCollection | Record<string, any>) => void\n} & JSX.IntrinsicElements['input']\n\nconst PaymentMethodRadioButton: FunctionComponent<ShippingMethodRadioButtonProps> =\n (props) => {\n const { onChange, ...p } = props\n const { payment, paymentSelected, setPaymentSelected } = useContext(\n PaymentMethodChildrenContext\n )\n const { order } = useContext(OrderContext)\n const { setPaymentMethod, setLoading } = useContext(PaymentMethodContext)\n const orderId = order?.id || ''\n const paymentResource = payment?.paymentSourceType as PaymentResource\n const paymentMethodId = payment?.id as string\n const name = `payment-${orderId}`\n const checked = paymentSelected === payment?.id\n const handleOnChange = async () => {\n setPaymentSelected && setPaymentSelected(paymentMethodId)\n setLoading({ loading: true })\n await setPaymentMethod({ paymentResource, paymentMethodId })\n onChange && onChange(payment)\n setLoading({ loading: false })\n }\n const id = payment?.paymentSourceType\n const parentProps = {\n handleOnChange,\n checked,\n id,\n name,\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <input\n type=\"radio\"\n id={id}\n onChange={handleOnChange}\n checked={checked}\n {...p}\n />\n )\n }\n\nPaymentMethodRadioButton.propTypes = propTypes\nPaymentMethodRadioButton.displayName = displayName\n\nexport default PaymentMethodRadioButton\n","import PaymentMethodContext, {\n defaultPaymentMethodContext,\n} from '#context/PaymentMethodContext'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useReducer,\n} from 'react'\nimport paymentMethodReducer, {\n paymentMethodInitialState,\n getPaymentMethods,\n PaymentMethodConfig,\n setPaymentMethodConfig,\n PaymentRef,\n} from '#reducers/PaymentMethodReducer'\nimport OrderContext from '#context/OrderContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport components from '#config/components'\nimport { BaseError } from '#typings/errors'\nimport { isEmpty } from 'lodash'\nimport { setPaymentRef } from '../reducers/PaymentMethodReducer'\n\nconst propTypes = components.PaymentMethodsContainer.propTypes\nconst displayName = components.PaymentMethodsContainer.displayName\n\ntype PaymentMethodsContainerProps = {\n children: ReactNode\n config?: PaymentMethodConfig\n}\nconst PaymentMethodsContainer: FunctionComponent<PaymentMethodsContainerProps> =\n (props) => {\n const { children, config } = props\n const [state, dispatch] = useReducer(\n paymentMethodReducer,\n paymentMethodInitialState\n )\n const { order, getOrder, setOrderErrors } = useContext(OrderContext)\n const credentials = useContext(CommerceLayerContext)\n useEffect(() => {\n if (config && isEmpty(state.config))\n setPaymentMethodConfig(config, dispatch)\n if (credentials && order) {\n getPaymentMethods({ order, dispatch, config: credentials, state })\n }\n }, [order, credentials])\n const contextValue = {\n ...state,\n setLoading: ({ loading }: { loading: boolean }) =>\n defaultPaymentMethodContext['setLoading']({ loading, dispatch }),\n setPaymentRef: ({ ref }: { ref: PaymentRef }) =>\n setPaymentRef({ ref, dispatch }),\n setPaymentMethodErrors: (errors: BaseError[]) =>\n defaultPaymentMethodContext['setPaymentMethodErrors'](errors, dispatch),\n setPaymentMethod: async (args: any) =>\n await defaultPaymentMethodContext['setPaymentMethod']({\n ...args,\n config: credentials,\n getOrder,\n order,\n dispatch,\n setOrderErrors,\n }),\n setPaymentSource: async (args: any) =>\n defaultPaymentMethodContext['setPaymentSource']({\n ...state,\n ...args,\n config: credentials,\n dispatch,\n getOrder,\n order,\n }),\n destroyPaymentSource: async (args: any) =>\n defaultPaymentMethodContext['destroyPaymentSource']({\n ...args,\n dispatch,\n config: credentials,\n }),\n }\n return (\n <PaymentMethodContext.Provider value={contextValue}>\n {children}\n </PaymentMethodContext.Provider>\n )\n }\n\nPaymentMethodsContainer.propTypes = propTypes\nPaymentMethodsContainer.displayName = displayName\n\nexport default PaymentMethodsContainer\n","import { createContext } from 'react'\n\nexport type iconBrand =\n | 'visa'\n | 'credit-card'\n | 'amex'\n | 'mastercard'\n | 'jcb'\n | 'wire-transfer'\n | 'maestro'\n | 'cirrus'\n | 'paypal'\n\ntype DefaultContext = {\n brand?: iconBrand\n expMonth?: number\n expYear?: number\n last4?: string\n showCard?: boolean\n readonly?: boolean\n handleEditClick?: () => void\n}\n\nexport const defaultPaymentSourceContext = {}\n\nconst PaymentSourceContext = createContext<DefaultContext>(\n defaultPaymentSourceContext\n)\n\nexport default PaymentSourceContext\n","import { PaypalConfig } from '#components/PaypalPayment'\nimport {\n PaymentResource,\n PaymentMethodConfig,\n getPaymentConfig,\n} from '#reducers/PaymentMethodReducer'\nimport pick from 'lodash/pick'\n\nexport default function getPaypalConfig(\n paymentResource: PaymentResource,\n config: PaymentMethodConfig\n): Pick<PaypalConfig, 'returnUrl' | 'cancelUrl'> | undefined {\n const attributes = getPaymentConfig<'paypalPayment'>(paymentResource, config)\n return attributes && pick(attributes, ['returnUrl', 'cancelUrl'])\n}\n","import PaymentMethodContext from '#context/PaymentMethodContext'\nimport isFunction from 'lodash/isFunction'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n} from 'react'\n\nexport type PaypalConfig = {\n returnUrl: string\n cancelUrl: string\n infoMessage?: {\n text?: string | ReactNode\n className?: string\n }\n}\n\nconst defaultMessage =\n 'by placing the order, you will be redirected to the PayPal website to sign in and authorize the payment'\n\ntype Props = Omit<PaypalConfig, 'returnUrl' | 'cancelUrl'> &\n JSX.IntrinsicElements['div']\nconst PaypalPayment: FunctionComponent<Props> = ({ infoMessage, ...p }) => {\n const ref = useRef<null | HTMLFormElement>(null)\n const {\n setPaymentSource,\n paymentSource,\n currentPaymentMethodType,\n setPaymentRef,\n } = useContext(PaymentMethodContext)\n useEffect(() => {\n if (\n ref.current &&\n paymentSource &&\n currentPaymentMethodType &&\n // @ts-ignore\n paymentSource?.approvalUrl\n ) {\n ref.current.onsubmit = () => handleClick()\n setPaymentRef({ ref })\n }\n return () => {\n setPaymentRef({ ref: { current: null } })\n }\n }, [ref, paymentSource, currentPaymentMethodType])\n const handleClick = async () => {\n if (paymentSource && currentPaymentMethodType) {\n try {\n await setPaymentSource({\n paymentSourceId: paymentSource.id,\n paymentResource: currentPaymentMethodType,\n attributes: {\n metadata: {\n card: {\n id: paymentSource.id,\n brand: 'paypal',\n last4: '',\n },\n },\n },\n })\n return true\n } catch (e) {\n return false\n }\n }\n return false\n }\n return (\n <form ref={ref}>\n <div {...p}>\n <span className={infoMessage?.className}>\n {isFunction(infoMessage?.text)\n ? infoMessage?.text()\n : infoMessage?.text || defaultMessage}\n </span>\n </div>\n </form>\n )\n}\n\nexport default PaypalPayment\n","import React, {\n FunctionComponent,\n SyntheticEvent,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport {\n CardElement,\n Elements,\n useElements,\n useStripe,\n} from '@stripe/react-stripe-js'\nimport {\n Stripe,\n StripeCardElementOptions,\n StripeElementLocale,\n} from '@stripe/stripe-js'\nimport { PaymentMethodConfig } from '#reducers/PaymentMethodReducer'\nimport { PaymentSourceProps } from './PaymentSource'\nimport Parent from './utils/Parent'\nimport OrderStorageContext from '#context/OrderStorageContext'\nimport OrderContext from '#context/OrderContext'\n\nexport type StripeConfig = {\n containerClassName?: string\n hintLabel?: string\n name?: string\n options?: StripeCardElementOptions\n [key: string]: any\n}\n\ntype StripePaymentFormProps = {\n options?: StripeCardElementOptions\n templateCustomerSaveToWallet?: PaymentSourceProps['templateCustomerSaveToWallet']\n}\n\nconst defaultOptions = {\n style: {\n base: {\n fontSize: '16px',\n color: '#424770',\n '::placeholder': {\n color: '#aab7c4',\n },\n },\n invalid: {\n color: '#9e2146',\n },\n },\n hidePostalCode: true,\n}\n\nconst StripePaymentForm: FunctionComponent<StripePaymentFormProps> = ({\n options = defaultOptions,\n templateCustomerSaveToWallet,\n}) => {\n const ref = useRef<null | HTMLFormElement>(null)\n const {\n setPaymentSource,\n paymentSource,\n currentPaymentMethodType,\n setPaymentMethodErrors,\n setPaymentRef,\n } = useContext(PaymentMethodContext)\n const { setLocalOrder } = useContext(OrderStorageContext)\n const { order } = useContext(OrderContext)\n const stripe = useStripe()\n const elements = useElements()\n useEffect(() => {\n if (ref.current && stripe && elements) {\n ref.current.onsubmit = () =>\n onSubmit(ref.current as any, stripe, elements)\n setPaymentRef({ ref })\n }\n return () => {\n setPaymentRef({ ref: { current: null } })\n }\n }, [ref, stripe, elements])\n const onSubmit = async (\n event: SyntheticEvent<HTMLFormElement>,\n stripe: any,\n elements: any\n ): Promise<boolean> => {\n if (!stripe) return false\n\n const savePaymentSourceToCustomerWallet =\n // @ts-ignore\n event?.elements?.['save_payment_source_to_customer_wallet']?.checked\n if (savePaymentSourceToCustomerWallet)\n setLocalOrder(\n 'savePaymentSourceToCustomerWallet',\n savePaymentSourceToCustomerWallet\n )\n\n const cardElement = elements && elements.getElement(CardElement)\n if (cardElement) {\n const billingInfo = order?.billingAddress()\n const email = order?.customerEmail\n const billing_details = {\n name: billingInfo?.fullName,\n email,\n phone: billingInfo?.phone,\n address: {\n city: billingInfo?.city,\n country: billingInfo?.countryCode,\n line1: billingInfo?.line1,\n postal_code: billingInfo?.zipCode,\n state: billingInfo?.stateCode,\n },\n }\n const { paymentMethod } = await stripe.createPaymentMethod({\n type: 'card',\n card: cardElement,\n billing_details,\n })\n // @ts-ignore\n if (paymentSource?.clientSecret) {\n const { error, paymentIntent } = await stripe.confirmCardPayment(\n // @ts-ignore\n paymentSource.clientSecret,\n {\n payment_method: {\n card: cardElement,\n billing_details,\n },\n }\n )\n if (error) {\n console.error(error)\n setPaymentMethodErrors([\n {\n code: 'PAYMENT_INTENT_AUTHENTICATION_FAILURE',\n resource: 'paymentMethod',\n field: currentPaymentMethodType,\n message: error.message as string,\n },\n ])\n } else {\n if (\n paymentIntent &&\n paymentMethod &&\n paymentSource &&\n currentPaymentMethodType\n ) {\n try {\n await setPaymentSource({\n paymentSourceId: paymentSource.id,\n paymentResource: currentPaymentMethodType,\n attributes: {\n options: {\n ...(paymentMethod as Record<string, any>),\n setup_future_usage: 'off_session',\n },\n },\n })\n return true\n } catch (e) {\n return false\n }\n }\n }\n }\n }\n return false\n }\n\n return (\n <form ref={ref} onSubmit={(e) => onSubmit(e, stripe, elements)}>\n <CardElement options={{ ...defaultOptions, ...options }} />\n {templateCustomerSaveToWallet && (\n <Parent {...{ name: 'save_payment_source_to_customer_wallet' }}>\n {templateCustomerSaveToWallet}\n </Parent>\n )}\n </form>\n )\n}\n\ntype StripePaymentProps = PaymentMethodConfig['stripePayment'] &\n JSX.IntrinsicElements['div'] &\n Partial<PaymentSourceProps['templateCustomerSaveToWallet']> & {\n show?: boolean\n publishableKey: string\n locale?: StripeElementLocale\n }\n\nlet stripe: Promise<Stripe | null>\n\nconst StripePayment: FunctionComponent<StripePaymentProps> = ({\n publishableKey,\n show,\n options,\n locale = 'auto',\n ...p\n}) => {\n const [isLoaded, setIsLoaded] = useState(false)\n const {\n containerClassName,\n templateCustomerSaveToWallet,\n fonts = [],\n ...divProps\n } = p\n useEffect(() => {\n if (show && publishableKey) {\n const { loadStripe } = require('@stripe/stripe-js')\n setIsLoaded(true)\n stripe = loadStripe(publishableKey, {\n locale,\n })\n }\n return () => {\n setIsLoaded(false)\n }\n }, [show, publishableKey])\n return isLoaded && stripe ? (\n <div className={containerClassName} {...divProps}>\n <Elements stripe={stripe} options={{ fonts }}>\n <StripePaymentForm\n options={options}\n templateCustomerSaveToWallet={templateCustomerSaveToWallet}\n />\n </Elements>\n </div>\n ) : null\n}\n\nexport default StripePayment\n","import PaymentMethodContext from '#context/PaymentMethodContext'\nimport isFunction from 'lodash/isFunction'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n} from 'react'\n\nexport type WireTransferConfig = {\n infoMessage?: {\n text?: string | ReactNode\n className?: string\n }\n}\n\nconst defaultMessage =\n 'after placing the order, you will need to manually complete the payment with your bank'\n\ntype Props = WireTransferConfig & JSX.IntrinsicElements['div']\nconst WireTransferPayment: FunctionComponent<Props> = ({\n infoMessage,\n ...p\n}) => {\n const ref = useRef<null | HTMLFormElement>(null)\n const {\n setPaymentSource,\n paymentSource,\n currentPaymentMethodType,\n setPaymentRef,\n } = useContext(PaymentMethodContext)\n useEffect(() => {\n if (ref.current && paymentSource && currentPaymentMethodType) {\n ref.current.onsubmit = () => handleClick()\n setPaymentRef({ ref })\n }\n return () => {\n setPaymentRef({ ref: { current: null } })\n }\n }, [ref, paymentSource, currentPaymentMethodType])\n const handleClick = async () => {\n if (paymentSource && currentPaymentMethodType) {\n try {\n await setPaymentSource({\n paymentSourceId: paymentSource.id,\n paymentResource: currentPaymentMethodType,\n attributes: {\n metadata: {\n card: {\n id: paymentSource.id,\n brand: 'wire-transfer',\n last4: '',\n },\n },\n },\n })\n return true\n } catch (error) {\n return false\n }\n }\n return false\n }\n return (\n <form ref={ref}>\n <div {...p}>\n <span className={infoMessage?.className}>\n {isFunction(infoMessage?.text)\n ? infoMessage?.text()\n : infoMessage?.text || defaultMessage}\n </span>\n </div>\n </form>\n )\n}\n\nexport default WireTransferPayment\n","import CustomerContext from '#context/CustomerContext'\nimport OrderContext from '#context/OrderContext'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport PaymentSourceContext from '#context/PaymentSourceContext'\nimport {\n getPaymentConfig,\n PaymentResource,\n} from '#reducers/PaymentMethodReducer'\nimport { LoaderType } from '#typings'\nimport getPaypalConfig from '#utils/paypalPayment'\nimport { StripeElementLocale } from '@stripe/stripe-js'\nimport isEmpty from 'lodash/isEmpty'\nimport React, {\n Fragment,\n FunctionComponent,\n useContext,\n useEffect,\n useState,\n} from 'react'\n// import BraintreePayment from './BraintreePayment'\nimport { PaymentSourceProps } from './PaymentSource'\nimport PaypalPayment from './PaypalPayment'\nimport StripePayment from './StripePayment'\nimport Parent from './utils/Parent'\nimport WireTransferPayment from './WireTransferPayment'\nimport getLoaderComponent from '#utils/getLoaderComponent'\n\ntype PaymentGatewayProps = PaymentSourceProps & {\n showCard: boolean\n handleEditClick: () => void\n show: boolean\n loader?: LoaderType\n}\n\nconst PaymentGateway: FunctionComponent<PaymentGatewayProps> = ({\n readonly,\n showCard,\n handleEditClick,\n children,\n templateCustomerCards,\n templateCustomerSaveToWallet,\n onClickCustomerCards,\n show,\n loader = 'Loading...',\n ...p\n}) => {\n const loaderComponent = getLoaderComponent(loader)\n const [loading, setLoading] = useState(true)\n const { payment } = useContext(PaymentMethodChildrenContext)\n const { payments, isGuest } = useContext(CustomerContext)\n const { order } = useContext(OrderContext)\n const {\n currentPaymentMethodId,\n config,\n paymentSource,\n currentPaymentMethodType,\n setPaymentSource,\n } = useContext(PaymentMethodContext)\n const paymentResource = readonly\n ? currentPaymentMethodType\n : (payment?.paymentSourceType as PaymentResource)\n useEffect(() => {\n if (\n paymentResource &&\n !paymentSource &&\n payment?.id === currentPaymentMethodId &&\n order\n ) {\n const attributes =\n config && paymentResource === 'paypal_payments'\n ? getPaypalConfig(paymentResource, config)\n : {}\n setPaymentSource({\n paymentResource,\n order,\n attributes,\n })\n }\n if (paymentSource) setLoading(false)\n return () => {\n setLoading(true)\n }\n }, [paymentSource, payment, show])\n switch (paymentResource) {\n case 'stripe_payments':\n if (!readonly && payment?.id !== currentPaymentMethodId) return null\n const locale = order?.languageCode as StripeElementLocale\n // @ts-ignore\n const publishableKey = paymentSource?.publishableKey\n const stripeConfig = config\n ? getPaymentConfig<'stripePayment'>(paymentResource, config)\n : {}\n const customerPayments =\n !isEmpty(payments) && payments\n ? payments.filter((customerPayment) => {\n return customerPayment.paymentSourceType === 'StripePayment'\n })\n : []\n if (readonly || showCard) {\n // @ts-ignore\n const card = paymentSource?.options?.card as Record<string, any>\n const value = { ...card, showCard, handleEditClick, readonly }\n return isEmpty(card) ? null : (\n <PaymentSourceContext.Provider value={value}>\n {children}\n </PaymentSourceContext.Provider>\n )\n }\n if (!isGuest && templateCustomerCards) {\n const customerPaymentsCards = customerPayments.map(\n (customerPayment, i) => {\n // @ts-ignore\n const card = customerPayment?.paymentSource()?.options\n ?.card as Record<string, any>\n const handleClick = async () => {\n await setPaymentSource({\n paymentResource,\n customerPaymentSourceId: customerPayment.id,\n })\n onClickCustomerCards && onClickCustomerCards()\n }\n const value = {\n ...card,\n showCard,\n handleEditClick,\n readonly,\n handleClick,\n }\n return (\n <PaymentSourceContext.Provider key={i} value={value}>\n <Parent {...value}>{templateCustomerCards}</Parent>\n </PaymentSourceContext.Provider>\n )\n }\n )\n return (\n <Fragment>\n {isEmpty(customerPaymentsCards) ? null : (\n <div className={p.className}>{customerPaymentsCards}</div>\n )}\n <StripePayment\n show={show}\n templateCustomerSaveToWallet={templateCustomerSaveToWallet}\n publishableKey={publishableKey}\n locale={locale}\n {...stripeConfig}\n />\n </Fragment>\n )\n }\n return publishableKey && !loading ? (\n <StripePayment\n show={show}\n publishableKey={publishableKey}\n locale={locale}\n {...stripeConfig}\n />\n ) : (\n loaderComponent\n )\n case 'braintree_payments':\n if (!readonly && payment?.id !== currentPaymentMethodId) return null\n // @ts-ignore\n // const authorization = paymentSource?.clientToken\n // const braintreeCustomerPayments =\n // !isEmpty(payments) && payments\n // ? payments.filter((customerPayment) => {\n // return customerPayment.paymentSourceType === 'BraintreePayment'\n // })\n // : []\n // console.table([braintreeCustomerPayments, showCard])\n // if (readonly || showCard) {\n // // @ts-ignore\n // const card = paymentSource?.options?.card as Record<string, any>\n // const value = { ...card, showCard, handleEditClick, readonly }\n // return isEmpty(card) ? null : (\n // <PaymentSourceContext.Provider value={value}>\n // {children}\n // </PaymentSourceContext.Provider>\n // )\n // }\n // if (!isGuest && templateCustomerCards) {\n // const customerPaymentsCards = braintreeCustomerPayments.map(\n // (customerPayment, i) => {\n // // @ts-ignore\n // const card = customerPayment?.paymentSource()?.options\n // ?.card as Record<string, any>\n // const handleClick = async () => {\n // await setPaymentSource({\n // paymentResource,\n // customerPaymentSourceId: customerPayment.id,\n // })\n // onClickCustomerCards && onClickCustomerCards\n // }\n // const value = {\n // ...card,\n // showCard,\n // handleEditClick,\n // readonly,\n // handleClick,\n // }\n // return (\n // <PaymentSourceContext.Provider key={i} value={value}>\n // <Parent {...value}>{templateCustomerCards}</Parent>\n // </PaymentSourceContext.Provider>\n // )\n // }\n // )\n // return !authorization ? null : (\n // <Fragment>\n // {isEmpty(customerPaymentsCards) ? null : (\n // <div className={p.className}>{customerPaymentsCards}</div>\n // )}\n // <BraintreePayment\n // // show={show}\n // // templateCustomerSaveToWallet={templateCustomerSaveToWallet}\n // authorization={authorization}\n // // locale={locale}\n // />\n // </Fragment>\n // )\n // }\n // return !authorization ? null : (\n // <BraintreePayment authorization={authorization} />\n // )\n return null\n case 'wire_transfers':\n if (!readonly && payment?.id !== currentPaymentMethodId) return null\n if (readonly || showCard) {\n const card =\n // @ts-ignore\n paymentSource?.options?.card ||\n // @ts-ignore\n (paymentSource?.metadata?.card as Record<string, any>)\n const value = { ...card, showCard, handleEditClick, readonly }\n return isEmpty(card) ? null : (\n <PaymentSourceContext.Provider value={value}>\n {children}\n </PaymentSourceContext.Provider>\n )\n }\n const wireTransferConfig =\n config && paymentResource\n ? getPaymentConfig<'wireTransfer'>(paymentResource, config)\n : {}\n return <WireTransferPayment {...p} {...wireTransferConfig} />\n case 'paypal_payments':\n if (!readonly && payment?.id !== currentPaymentMethodId) return null\n if (readonly || showCard) {\n const card =\n // @ts-ignore\n paymentSource?.options?.card ||\n // @ts-ignore\n (paymentSource?.metadata?.card as Record<string, any>)\n const value = { ...card, showCard, handleEditClick, readonly }\n return isEmpty(card) ? null : (\n <PaymentSourceContext.Provider value={value}>\n {children}\n </PaymentSourceContext.Provider>\n )\n }\n const paypalConfig =\n config && getPaymentConfig<'paypalPayment'>(paymentResource, config)\n return <PaypalPayment {...p} infoMessage={paypalConfig?.infoMessage} />\n default:\n return null\n }\n}\n\nexport default PaymentGateway\n","import React, {\n useContext,\n FunctionComponent,\n ReactNode,\n useState,\n useEffect,\n} from 'react'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport components from '#config/components'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport { isEmpty } from 'lodash'\nimport CustomerContext from '#context/CustomerContext'\nimport PaymentGateway from './PaymentGateway'\nimport { PaymentResource } from '#reducers/PaymentMethodReducer'\nimport { LoaderType } from '#typings/index'\n\nconst propTypes = components.PaymentSource.propTypes\nconst displayName = components.PaymentSource.displayName\n\nexport type CustomerCardsProps = {\n handleClick: () => void\n}\n\nexport type CustomerSaveToWalletProps = {\n name: 'save_payment_source_to_customer_wallet'\n}\n\nexport type PaymentSourceProps = {\n children?: ReactNode\n readonly?: boolean\n templateCustomerCards?: (props: CustomerCardsProps) => ReactNode\n onClickCustomerCards?: () => void\n templateCustomerSaveToWallet?: (props: CustomerSaveToWalletProps) => ReactNode\n loader?: LoaderType\n} & JSX.IntrinsicElements['div']\n\nconst PaymentSource: FunctionComponent<PaymentSourceProps> = (props) => {\n const { readonly } = props\n const { payment } = useContext(PaymentMethodChildrenContext)\n const { payments } = useContext(CustomerContext)\n const { currentPaymentMethodId, paymentSource, destroyPaymentSource } =\n useContext(PaymentMethodContext)\n const [show, setShow] = useState(false)\n const [showCard, setShowCard] = useState(false)\n\n useEffect(() => {\n if (readonly) {\n setShow(true)\n setShowCard(true)\n } else if (payment?.id === currentPaymentMethodId) {\n setShow(true)\n // NOTE: Remove metadata in the future\n // @ts-ignore\n const card = paymentSource?.options?.card || paymentSource?.metadata?.card\n if (!isEmpty(card)) setShowCard(true)\n } else setShow(false)\n return () => {\n setShow(false)\n setShowCard(false)\n }\n }, [currentPaymentMethodId, paymentSource, payments, payment, readonly])\n const handleEditClick = () => {\n paymentSource &&\n destroyPaymentSource({\n paymentSourceId: paymentSource?.id,\n paymentResource: payment?.paymentSourceType as PaymentResource,\n })\n setShowCard(!showCard)\n setShow(true)\n }\n const gatewayProps = { ...props, show, showCard, handleEditClick, readonly }\n return <PaymentGateway {...gatewayProps} />\n}\n\nPaymentSource.propTypes = propTypes\nPaymentSource.displayName = displayName\n\nexport default PaymentSource\n","import PaymentSourceContext, { iconBrand } from '#context/PaymentSourceContext'\nimport React, { FunctionComponent, useContext, useRef } from 'react'\nimport Parent from './utils/Parent'\nimport { FunctionChildren } from '#typings'\nimport components from '#config/components'\n\nconst propTypes = components.PaymentSourceBrandIcon.propTypes\nconst displayName = components.PaymentSourceBrandIcon.displayName\n\ntype CustomComponent = FunctionChildren<\n Omit<\n Props & { brand: iconBrand; defaultSrc: string; url: string },\n 'children'\n >\n>\n\ntype Props = {\n children?: CustomComponent\n width?: number\n height?: number\n} & JSX.IntrinsicElements['img']\nconst PaymentSourceBrandIcon: FunctionComponent<Props> = ({\n src,\n width = 32,\n children,\n ...p\n}) => {\n const { brand } = useContext(PaymentSourceContext)\n const ref = useRef<HTMLImageElement>(null)\n const defaultSrc =\n '//data.commercelayer.app/assets/images/icons/credit-cards/color/credit-card.svg'\n const url = src\n ? src\n : `//data.commercelayer.app/assets/images/icons/credit-cards/color/${brand}.svg`\n const handleError = () => {\n if (ref.current) ref.current.src = defaultSrc\n }\n const parentProps = {\n brand,\n defaultSrc,\n url,\n width,\n ...p,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <img ref={ref} src={url} onError={handleError} width={width} {...p} />\n )\n}\n\nPaymentSourceBrandIcon.propTypes = propTypes\nPaymentSourceBrandIcon.displayName = displayName\n\nexport default PaymentSourceBrandIcon\n","import PaymentSourceContext, { iconBrand } from '#context/PaymentSourceContext'\nimport { capitalize } from 'lodash'\nimport React, { FunctionComponent, useContext } from 'react'\nimport Parent from './utils/Parent'\nimport { FunctionChildren } from '#typings'\nimport components from '#config/components'\n\nconst propTypes = components.PaymentSourceBrandName.propTypes\nconst displayName = components.PaymentSourceBrandName.displayName\n\ntype CustomComponent = FunctionChildren<\n Omit<Props & { brand: iconBrand }, 'children'>\n>\n\ntype Props = {\n children?: CustomComponent\n label?: string\n} & JSX.IntrinsicElements['span']\nconst PaymentSourceBrandName: FunctionComponent<Props> = ({\n children,\n label,\n ...props\n}) => {\n const { brand } = useContext(PaymentSourceContext)\n const brandName = brand && capitalize(brand.replace('-', ' '))\n const parentProps = {\n brand: brandName,\n label,\n ...props,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <span {...props}>{label || capitalize(brandName)}</span>\n )\n}\n\nPaymentSourceBrandName.propTypes = propTypes\nPaymentSourceBrandName.displayName = displayName\n\nexport default PaymentSourceBrandName\n","import components from '#config/components'\nimport PaymentSourceContext from '#context/PaymentSourceContext'\nimport { has } from 'lodash'\nimport React, { FunctionComponent, useContext } from 'react'\nimport Parent from './utils/Parent'\nimport { FunctionChildren } from '#typings'\nconst propTypes = components.PaymentSourceDetail.propTypes\nconst displayName = components.PaymentSourceDetail.displayName\n\nexport type PaymentSourceDetailType = 'last4' | 'expYear' | 'expMonth'\n\ntype CustomComponent = FunctionChildren<\n Omit<Props & { text: string }, 'children'>\n>\n\ntype Props = {\n children?: CustomComponent\n type: PaymentSourceDetailType\n} & JSX.IntrinsicElements['span']\nconst PaymentSourceDetail: FunctionComponent<Props> = ({\n type,\n children,\n ...p\n}) => {\n const card = useContext(PaymentSourceContext)\n const text = has(card, type) ? card[type] || '****' : ''\n const parentProps = {\n type,\n text,\n ...p,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <span {...p}>{text}</span>\n )\n}\n\nPaymentSourceDetail.propTypes = propTypes\nPaymentSourceDetail.displayName = displayName\n\nexport default PaymentSourceDetail\n","import PaymentSourceContext from '#context/PaymentSourceContext'\nimport React, { FunctionComponent, ReactNode, useContext } from 'react'\nimport Parent from './utils/Parent'\nimport { FunctionChildren } from '#typings'\nimport components from '#config/components'\n\nconst displayName = components.PaymentSourceEditButton.displayName\nconst propTypes = components.PaymentSourceEditButton.propTypes\n\ntype CustomComponent = FunctionChildren<Omit<Props, 'children'>>\n\ntype Props = {\n children?: CustomComponent\n label?: string | ReactNode\n} & Omit<JSX.IntrinsicElements['button'], 'onClick'>\nconst PaymentSourceEditButton: FunctionComponent<Props> = ({\n children,\n label = 'Edit',\n ...props\n}) => {\n const { showCard, handleEditClick, readonly } = useContext(\n PaymentSourceContext\n )\n const parentProps = {\n showCard,\n label,\n handleEditClick,\n ...props,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : !readonly ? (\n <button {...props} onClick={handleEditClick}>\n {label}\n </button>\n ) : null\n}\n\nPaymentSourceEditButton.propTypes = propTypes\nPaymentSourceEditButton.displayName = displayName\n\nexport default PaymentSourceEditButton\n","import { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { Shipment, ShipmentCollection } from '@commercelayer/js-sdk'\nimport { compact, isEmpty } from 'lodash'\n\ntype ShipmentsFilled = (\n shipments: ShipmentCollection[],\n credentials: CommerceLayerConfig\n) => Promise<boolean>\n\nexport const shipmentsFilled: ShipmentsFilled = async (\n shipments,\n credentials\n) => {\n const checking = await Promise.all(\n shipments.map(async (shipment) => {\n return await Shipment.withCredentials(credentials)\n .select('id')\n .includes('shippingMethod')\n .find(shipment.id)\n })\n )\n const filled = compact(\n checking.filter((shipment) => {\n return shipment && !!shipment.shippingMethod()\n })\n )\n return !isEmpty(filled)\n}\n","import baseReducer from '#utils/baseReducer'\nimport { Dispatch } from 'react'\nimport { BaseError } from '#typings/errors'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { Order, OrderCollection, PaypalPayment } from '@commercelayer/js-sdk'\nimport { isEmpty, isFunction } from 'lodash'\nimport { shipmentsFilled } from '#utils/shipments'\nimport { PaymentResource } from './PaymentMethodReducer'\nimport { getLocalOrder } from '#utils/localStorage'\nimport getErrorsByCollection from '#utils/getErrorsByCollection'\n\nexport type PlaceOrderActionType = 'setErrors' | 'setPlaceOrderPermitted'\n\nexport type PlaceOrderOptions = {\n saveBillingAddressToCustomerAddressBook?: boolean\n saveShippingAddressToCustomerAddressBook?: boolean\n savePaymentSourceToCustomerWallet?: boolean\n paypalPayerId?: string\n}\n\nexport interface PlaceOrderActionPayload {\n errors: BaseError[]\n isPermitted: boolean\n paymentType: PaymentResource\n paymentSecret: string\n paymentId: string\n paymentSource: Record<string, string>\n options?: PlaceOrderOptions\n}\n\nexport type PlaceOrderState = Partial<PlaceOrderActionPayload>\n\nexport interface PlaceOrderAction {\n type: PlaceOrderActionType\n payload: Partial<PlaceOrderActionPayload>\n}\n\nexport const placeOrderInitialState: PlaceOrderState = {\n errors: [],\n isPermitted: false,\n}\n\nexport interface SetPlaceOrderErrors {\n <V extends BaseError[]>(\n errors: V,\n dispatch?: Dispatch<PlaceOrderAction>\n ): void\n}\n\nexport const setPlaceOrderErrors: SetPlaceOrderErrors = (errors, dispatch) => {\n dispatch &&\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n}\n\ntype PlaceOrderPermitted = (args: {\n config?: CommerceLayerConfig\n dispatch: Dispatch<PlaceOrderAction>\n order?: OrderCollection\n // TODO: Remove it soon\n options?: PlaceOrderOptions\n}) => void\n\nexport const placeOrderPermitted: PlaceOrderPermitted = async ({\n config,\n order,\n dispatch,\n options,\n}) => {\n if (order && config) {\n let isPermitted = true\n if (order.privacyUrl && order.termsUrl) {\n isPermitted = localStorage.getItem('privacy-terms') === 'true'\n }\n const billingAddress =\n order.billingAddress() ||\n (await order.withCredentials(config).loadBillingAddress())\n if (isEmpty(billingAddress)) isPermitted = false\n const shippingAddress =\n order.shippingAddress() ||\n (await order.withCredentials(config).loadShippingAddress())\n if (isEmpty(shippingAddress)) isPermitted = false\n const shipments = (\n await order.withCredentials(config).loadShipments()\n )?.toArray()\n const shipment = shipments && (await shipmentsFilled(shipments, config))\n if (!isEmpty(shipments) && !shipment) isPermitted = false\n const paymentMethod =\n order.paymentMethod() ||\n (await order.withCredentials(config).paymentMethod())\n const paymentSource: any = (\n await Order.withCredentials(config)\n .select('id')\n .includes('paymentSource')\n .find(order.id)\n ).paymentSource()\n if (order.totalAmountWithTaxesCents !== 0 && isEmpty(paymentMethod?.id))\n isPermitted = false\n dispatch({\n type: 'setPlaceOrderPermitted',\n payload: {\n isPermitted,\n paymentType: paymentMethod?.paymentSourceType as PaymentResource,\n paymentSecret: paymentSource?.clientSecret,\n paymentId: paymentSource?.options?.id,\n paymentSource: paymentSource?.attributes(),\n options,\n },\n })\n }\n}\n\nexport type SetPlaceOrder = (args: {\n config?: CommerceLayerConfig\n order?: OrderCollection\n state?: PlaceOrderState\n setOrderErrors?: (collection: any) => void\n paymentSource?: Record<string, string>\n}) => Promise<{\n placed: boolean\n}>\n\nexport const setPlaceOrder: SetPlaceOrder = async ({\n state,\n order,\n config,\n setOrderErrors,\n paymentSource,\n}) => {\n const response = {\n placed: false,\n }\n try {\n if (state && order && config) {\n const { options, paymentType } = state\n if (paymentType === 'paypal_payments') {\n if (!options?.paypalPayerId && paymentSource?.approvalUrl) {\n window.location.href = paymentSource?.approvalUrl as string\n return response\n }\n const paypalPayment = PaypalPayment.build({ id: paymentSource?.id })\n await paypalPayment\n .withCredentials(config)\n .update({ paypalPayerId: options?.paypalPayerId })\n }\n const updateAttributes: Record<string, any> = {\n _place: true,\n }\n if (\n options?.saveBillingAddressToCustomerAddressBook ||\n getLocalOrder('saveBillingAddressToCustomerAddressBook') === 'true'\n )\n updateAttributes._saveBillingAddressToCustomerAddressBook =\n options?.saveBillingAddressToCustomerAddressBook ||\n getLocalOrder('saveBillingAddressToCustomerAddressBook') === 'true'\n if (\n options?.saveShippingAddressToCustomerAddressBook ||\n getLocalOrder('saveShippingAddressToCustomerAddressBook') === 'true'\n )\n updateAttributes._saveShippingAddressToCustomerAddressBook =\n options?.saveShippingAddressToCustomerAddressBook ||\n getLocalOrder('saveShippingAddressToCustomerAddressBook') === 'true'\n if (\n options?.savePaymentSourceToCustomerWallet ||\n getLocalOrder('savePaymentSourceToCustomerWallet') === 'true'\n ) {\n const _savePaymentSourceToCustomerWallet =\n options?.savePaymentSourceToCustomerWallet ||\n getLocalOrder('savePaymentSourceToCustomerWallet') === 'true'\n if (_savePaymentSourceToCustomerWallet)\n updateAttributes._savePaymentSourceToCustomerWallet =\n !!_savePaymentSourceToCustomerWallet\n }\n switch (paymentType) {\n default:\n const o = await Order.withCredentials(config).find(order.id)\n const u = await o.withCredentials(config).update(updateAttributes)\n if (isFunction(u?.errors) && !u?.errors()?.empty()) throw u\n setOrderErrors && setOrderErrors([])\n return {\n placed: true,\n }\n }\n }\n return response\n } catch (error) {\n setOrderErrors && setOrderErrors(error)\n const errors = getErrorsByCollection(error, 'order')\n return {\n ...response,\n errors,\n }\n }\n}\n\nconst type: PlaceOrderActionType[] = ['setErrors', 'setPlaceOrderPermitted']\n\nconst placeOrderReducer = (\n state: PlaceOrderState,\n reducer: PlaceOrderAction\n): PlaceOrderState =>\n baseReducer<PlaceOrderState, PlaceOrderAction, PlaceOrderActionType[]>(\n state,\n reducer,\n type\n )\n\nexport default placeOrderReducer\n","import { createContext } from 'react'\nimport {\n PlaceOrderState,\n SetPlaceOrderErrors,\n setPlaceOrderErrors,\n} from '#reducers/PlaceOrderReducer'\n\ntype DefaultContext = {\n setPlaceOrderErrors?: SetPlaceOrderErrors\n setPlaceOrder?: ({\n paymentSource,\n }: {\n paymentSource: Record<string, string>\n }) => Promise<{ placed: boolean }>\n placeOrderPermitted?: () => void\n} & PlaceOrderState\n\nexport const defaultPlaceOrderContext = {\n setPlaceOrderErrors,\n}\n\nconst PlaceOrderContext = createContext<DefaultContext>(\n defaultPlaceOrderContext\n)\n\nexport default PlaceOrderContext\n","import React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings/index'\nimport PlaceOrderContext from '#context/PlaceOrderContext'\nimport isFunction from 'lodash/isFunction'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport OrderContext from '#context/OrderContext'\n\nconst propTypes = components.PlaceOrderButton.propTypes\nconst defaultProps = components.PlaceOrderButton.defaultProps\nconst displayName = components.PlaceOrderButton.displayName\n\ntype PlaceOrderButtonChildrenProps = FunctionChildren<\n Omit<PlaceOrderButtonProps, 'children'>\n>\n\ntype PlaceOrderButtonProps = {\n children?: PlaceOrderButtonChildrenProps\n label?: string | ReactNode\n onClick?: (response: { placed: boolean }) => void\n} & JSX.IntrinsicElements['button']\n\nconst PlaceOrderButton: FunctionComponent<PlaceOrderButtonProps> = (props) => {\n const { children, label = 'Place order', disabled, onClick, ...p } = props\n const { isPermitted, setPlaceOrder, options, paymentType } =\n useContext(PlaceOrderContext)\n const [notPermitted, setNotPermitted] = useState(true)\n const [forceDisable, setForceDisable] = useState(disabled)\n const {\n currentPaymentMethodRef,\n paymentSource,\n loading,\n currentPaymentMethodType,\n } = useContext(PaymentMethodContext)\n const { order } = useContext(OrderContext)\n useEffect(() => {\n if (loading) setNotPermitted(loading)\n else {\n if (paymentType === currentPaymentMethodType) {\n if (\n (order?.totalAmountWithTaxesCents === 0 ||\n currentPaymentMethodRef?.current?.onsubmit ||\n // @ts-ignore\n paymentSource?.metadata?.card?.id ||\n // @ts-ignore\n paymentSource?.options?.id) &&\n isPermitted\n ) {\n setNotPermitted(false)\n }\n } else {\n setNotPermitted(true)\n }\n }\n if (paymentType === 'paypal_payments' && options?.paypalPayerId) {\n handleClick()\n }\n return () => {\n setNotPermitted(true)\n }\n }, [\n isPermitted,\n options?.paypalPayerId,\n paymentType,\n currentPaymentMethodRef?.current?.onsubmit,\n paymentSource,\n loading,\n currentPaymentMethodType,\n order,\n ])\n const handleClick = async () => {\n let isValid = true\n setForceDisable(true)\n if (currentPaymentMethodRef?.current?.onsubmit && !options?.paypalPayerId) {\n // @ts-ignore\n isValid = (await currentPaymentMethodRef.current?.onsubmit()) as any\n // @ts-ignore\n } else if (paymentSource?.options?.id) {\n isValid = true\n }\n const placed =\n isValid &&\n setPlaceOrder &&\n (await setPlaceOrder({ paymentSource: paymentSource as any }))\n setForceDisable(false)\n onClick && placed && onClick(placed)\n }\n const disabledButton = disabled !== undefined ? disabled : notPermitted\n const parentProps = {\n ...p,\n label,\n disabled: disabledButton,\n handleClick,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <button\n type=\"button\"\n disabled={disabledButton || forceDisable}\n onClick={handleClick}\n {...p}\n >\n {isFunction(label) ? label() : label}\n </button>\n )\n}\n\nPlaceOrderButton.propTypes = propTypes\nPlaceOrderButton.defaultProps = defaultProps\nPlaceOrderButton.displayName = displayName\n\nexport default PlaceOrderButton\n","import PlaceOrderContext from '#context/PlaceOrderContext'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useReducer,\n} from 'react'\nimport placeOrderReducer, {\n placeOrderInitialState,\n PlaceOrderOptions,\n placeOrderPermitted,\n} from '#reducers/PlaceOrderReducer'\nimport OrderContext from '#context/OrderContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport components from '#config/components'\nimport { setPlaceOrder } from '../reducers/PlaceOrderReducer'\n\nconst propTypes = components.PlaceOrderContainer.propTypes\nconst displayName = components.PlaceOrderContainer.displayName\n\ntype PlaceOrderContainerProps = {\n children: ReactNode\n options?: PlaceOrderOptions\n}\nconst PlaceOrderContainer: FunctionComponent<PlaceOrderContainerProps> = (\n props\n) => {\n const { children, options } = props\n const [state, dispatch] = useReducer(\n placeOrderReducer,\n placeOrderInitialState\n )\n const {\n order,\n saveBillingAddressToCustomerAddressBook,\n saveShippingAddressToCustomerAddressBook,\n setOrderErrors,\n } = useContext(OrderContext)\n const config = useContext(CommerceLayerContext)\n useEffect(() => {\n if (order) {\n placeOrderPermitted({\n config,\n dispatch,\n order,\n options: {\n saveBillingAddressToCustomerAddressBook,\n saveShippingAddressToCustomerAddressBook,\n ...options,\n },\n })\n }\n }, [order])\n const contextValue = {\n ...state,\n setPlaceOrder: ({\n paymentSource,\n }: {\n paymentSource: Record<string, string>\n }) =>\n setPlaceOrder({ config, order, state, setOrderErrors, paymentSource }),\n placeOrderPermitted: () =>\n placeOrderPermitted({\n config,\n dispatch,\n order,\n options: {\n saveBillingAddressToCustomerAddressBook,\n saveShippingAddressToCustomerAddressBook,\n ...options,\n },\n }),\n }\n return (\n <PlaceOrderContext.Provider value={contextValue}>\n {children}\n </PlaceOrderContext.Provider>\n )\n}\n\nPlaceOrderContainer.propTypes = propTypes\nPlaceOrderContainer.displayName = displayName\n\nexport default PlaceOrderContainer\n","import React, { Fragment, FunctionComponent } from 'react'\nimport { PriceProps } from '#components/Price'\nimport PropTypes from 'prop-types'\n\nconst propTypes = {\n formattedAmount: PropTypes.string,\n formattedCompare: PropTypes.string,\n}\nconst defaultProps = {\n formattedAmount: '',\n formattedCompare: '',\n}\n\nexport type PTemplateProps = {\n formattedAmount?: string\n formattedCompare?: string\n} & Omit<PriceProps, 'children'>\n\nconst PriceTemplate: FunctionComponent<PTemplateProps> = (props) => {\n return (\n <Fragment>\n <span className={props.className}>{props.formattedAmount}</span>\n {props.showCompare && (\n <span className={props.compareClassName || ''}>\n {props.formattedCompare}\n </span>\n )}\n </Fragment>\n )\n}\n\nPriceTemplate.propTypes = propTypes\nPriceTemplate.defaultProps = defaultProps\n\nexport default PriceTemplate\n","import { isEmpty, first, isArray, has, forEach } from 'lodash'\nimport { PriceCollection } from '@commercelayer/js-sdk'\nimport { Prices, SkuPrices } from '#reducers/PriceReducer'\nimport { Items } from '#reducers/ItemReducer'\nimport React, { ReactNode } from 'react'\nimport PriceTemplate, { PTemplateProps } from '#components/utils/PriceTemplate'\n\nexport interface GetPriceByCode {\n (skuPrices: SkuPrices, code: string): PriceCollection | undefined\n}\n\nexport const getPriceByCode: GetPriceByCode = (skuPrices, code = '') => {\n return code\n ? first(skuPrices.filter((p) => p.currencyCode === code))\n : first(skuPrices)\n}\n\nexport interface GetPricesComponent {\n (skuPrices: PriceCollection[], props: PTemplateProps): ReactNode\n}\n\nexport const getPricesComponent: GetPricesComponent = (skuPrices, props) => {\n if (isEmpty(skuPrices)) {\n return <PriceTemplate {...props} />\n }\n return skuPrices.map((p, k) => {\n const showCompare =\n (typeof props.showCompare === 'undefined' &&\n p.compareAtAmountCents > p.amountCents) ||\n props.showCompare\n return (\n <PriceTemplate\n key={k}\n {...props}\n showCompare={showCompare}\n formattedAmount={p.formattedAmount}\n formattedCompare={p.formattedCompareAtAmount}\n />\n )\n })\n}\n\nexport interface GetPrices {\n (prices: PriceCollection[] | Items): Prices\n}\n\nconst getPrices: GetPrices = (prices) => {\n const obj: Record<string, any> = {}\n if (isArray(prices)) {\n prices.map((p) => {\n if (has(obj, p.skuCode)) {\n obj[p.skuCode].push(p)\n } else {\n obj[p.skuCode] = [p]\n }\n })\n } else {\n forEach(prices, (item) => {\n const prices = item.prices()?.toArray()\n obj[item.code] = prices\n })\n }\n return obj\n}\n\nexport default getPrices\n","import { BaseAction, LoaderType } from '#typings'\nimport CLayer, { PriceCollection } from '@commercelayer/js-sdk'\nimport getPrices from '#utils/getPrices'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { Dispatch } from 'react'\nimport { ItemPrices } from './ItemReducer'\nimport baseReducer from '#utils/baseReducer'\nimport getErrorsByCollection from '#utils/getErrorsByCollection'\nimport { BaseError } from '#typings/errors'\n\nexport type SkuPrices = PriceCollection[]\n\nexport interface Prices {\n [key: string]: SkuPrices\n}\n\ntype SkuCodesPrice = string[]\n\nexport interface SetSkuCodesPrice {\n (skuCodes: SkuCodesPrice): void\n}\n\nexport interface PriceState {\n loading: boolean\n prices: Prices\n skuCodes: SkuCodesPrice\n errors?: BaseError[]\n skuCode?: string\n setSkuCodes?: SetSkuCodesPrice\n loader?: LoaderType\n}\n\nexport interface PriceAction extends BaseAction {\n type: PriceActionType\n}\n\nexport const priceInitialState: PriceState = {\n loading: true,\n prices: {},\n skuCodes: [],\n errors: [],\n}\n\nexport interface GetSkusPrice {\n (\n skuCodes: SkuCodesPrice,\n options: {\n config: CommerceLayerConfig\n dispatch: Dispatch<PriceAction>\n setPrices: ((item: ItemPrices) => void) | undefined\n prices: ItemPrices\n perPage: number\n filters: Record<string, any>\n }\n ): void\n}\n\nexport const getSkusPrice: GetSkusPrice = (\n skuCodes,\n { config, dispatch, setPrices, prices, perPage, filters }\n) => {\n let allPrices = {}\n CLayer.Price.withCredentials(config)\n .where({ skuCodeIn: skuCodes.join(','), ...filters })\n .perPage(perPage)\n .all()\n .then(async (r) => {\n const pricesObj = getPrices(r.toArray())\n allPrices = { ...allPrices, ...prices, ...pricesObj }\n if (setPrices) {\n setPrices(allPrices)\n }\n dispatch({\n type: 'setPrices',\n payload: { prices: allPrices },\n })\n dispatch({\n type: 'setLoading',\n payload: { loading: false },\n })\n const meta = r.getMetaInfo()\n let col: any = r\n if (col.hasNextPage() && meta.pageCount) {\n for (let key = 1; key < meta.pageCount; key++) {\n col = await col.withCredentials(config).nextPage()\n const pricesObj = getPrices(col.toArray())\n allPrices = { ...allPrices, ...pricesObj }\n if (setPrices) {\n setPrices(allPrices)\n }\n dispatch({\n type: 'setPrices',\n payload: { prices: allPrices },\n })\n }\n }\n })\n .catch((c) => {\n const errors = getErrorsByCollection(c, 'price')\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n })\n}\n\nexport interface UnsetPriceState {\n (dispatch: Dispatch<PriceAction>): void\n}\n\nexport const unsetPriceState: UnsetPriceState = (dispatch) => {\n dispatch({\n type: 'setPrices',\n payload: {\n prices: {},\n },\n })\n dispatch({\n type: 'setLoading',\n payload: { loading: false },\n })\n}\n\nexport type PriceActionType =\n | 'setLoading'\n | 'setPrices'\n | 'setSkuCodes'\n | 'setErrors'\n\nconst typeAction: PriceActionType[] = [\n 'setLoading',\n 'setPrices',\n 'setSkuCodes',\n 'setErrors',\n]\n\nconst priceReducer = (state: PriceState, reducer: PriceAction): PriceState =>\n baseReducer<PriceState, PriceAction, PriceActionType[]>(\n state,\n reducer,\n typeAction\n )\n\nexport default priceReducer\n","import { createContext } from 'react'\nimport { priceInitialState, PriceState } from '#reducers/PriceReducer'\n\nexport interface PricesContextValue extends PriceState {\n skuCode: PriceState['skuCode']\n}\n\nconst PricesContext = createContext(priceInitialState)\n\nexport default PricesContext\n","import React, {\n Fragment,\n useState,\n useEffect,\n useContext,\n FunctionComponent,\n} from 'react'\nimport { isEmpty, has, indexOf } from 'lodash'\nimport Parent from './utils/Parent'\nimport PricesContext from '#context/PricesContext'\nimport { getPricesComponent } from '#utils/getPrices'\nimport { PriceCollection } from '@commercelayer/js-sdk'\nimport components from '#config/components'\nimport { FunctionChildren, LoaderType } from '#typings/index'\n\nconst propTypes = components.Price.propTypes\nconst defaultProps = components.Price.defaultProps\nconst displayName = components.Price.displayName\n\ntype PriceChildrenProps = FunctionChildren<\n {\n loading: boolean\n loader: LoaderType\n } & Omit<PriceProps, 'children'>\n>\n\nexport interface PriceProps extends Partial<JSX.IntrinsicElements['span']> {\n children?: PriceChildrenProps\n compareClassName?: string\n showCompare?: boolean\n skuCode?: string\n}\n\nconst Price: FunctionComponent<PriceProps> = (props) => {\n const { children, skuCode = '' } = props\n const {\n prices,\n skuCode: pricesSkuCode,\n loading,\n skuCodes,\n setSkuCodes,\n loader,\n } = useContext(PricesContext)\n const [skuPrices, setSkuPrices] = useState<PriceCollection[]>([])\n const sCode = pricesSkuCode || skuCode\n useEffect(() => {\n if (!isEmpty(prices) && has(prices, `${sCode}`)) {\n setSkuPrices(prices[sCode])\n } else {\n if (sCode && indexOf(skuCodes, sCode) === -1) {\n skuCodes.push(sCode)\n setSkuCodes && setSkuCodes(skuCodes)\n }\n }\n return (): void => {\n setSkuPrices([])\n }\n }, [prices, sCode])\n const parentProps = {\n loading,\n loader,\n ...props,\n }\n const pricesComponent =\n isEmpty(prices) || isEmpty(skuPrices)\n ? null\n : getPricesComponent(skuPrices, props)\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <Fragment>\n {loading || isEmpty(pricesComponent) ? loader : pricesComponent}\n </Fragment>\n )\n}\n\nPrice.propTypes = propTypes\nPrice.defaultProps = defaultProps\nPrice.displayName = displayName\n\nexport default Price\n","import React, {\n useEffect,\n FunctionComponent,\n useContext,\n useReducer,\n ReactNode,\n} from 'react'\nimport getPrices from '#utils/getPrices'\nimport { isEmpty, indexOf, has } from 'lodash'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport priceReducer, {\n SetSkuCodesPrice,\n unsetPriceState,\n} from '#reducers/PriceReducer'\nimport { priceInitialState, getSkusPrice } from '#reducers/PriceReducer'\nimport PricesContext, { PricesContextValue } from '#context/PricesContext'\nimport getCurrentItemKey from '#utils/getCurrentItemKey'\nimport ItemContext from '#context/ItemContext'\nimport components from '#config/components'\nimport { LoaderType } from '#typings'\n\nconst propTypes = components.PricesContainer.propTypes\nconst defaultProps = components.PricesContainer.defaultProps\nconst displayName = components.PricesContainer.displayName\n\ntype PricesContainerProps = {\n children: ReactNode\n filters?: object\n loader?: LoaderType\n perPage?: number\n skuCode?: string\n}\n\nconst PricesContainer: FunctionComponent<PricesContainerProps> = (props) => {\n const {\n children,\n skuCode = '',\n loader = 'Loading...',\n perPage = 10,\n filters = {},\n } = props\n const [state, dispatch] = useReducer(priceReducer, priceInitialState)\n const config = useContext(CommerceLayerContext)\n const {\n setPrices,\n prices,\n items,\n item: currentItem,\n skuCode: itemSkuCode,\n } = useContext(ItemContext)\n if (indexOf(state.skuCodes, skuCode) === -1 && skuCode)\n state.skuCodes.push(skuCode)\n const sCode = getCurrentItemKey(currentItem) || skuCode || itemSkuCode || ''\n const setSkuCodes: SetSkuCodesPrice = (skuCodes) => {\n dispatch({\n type: 'setSkuCodes',\n payload: { skuCodes },\n })\n }\n useEffect(() => {\n if (currentItem && has(prices, sCode)) {\n dispatch({\n type: 'setPrices',\n payload: { prices: prices },\n })\n }\n if (!isEmpty(items) && isEmpty(currentItem)) {\n const p = getPrices(items)\n dispatch({\n type: 'setPrices',\n payload: { prices: p },\n })\n }\n if (\n (config.accessToken && isEmpty(currentItem)) ||\n (config.accessToken && !has(prices, sCode))\n ) {\n if (state.skuCodes.length > 0 || skuCode) {\n getSkusPrice((sCode && [sCode]) || state.skuCodes, {\n config,\n dispatch,\n setPrices,\n prices,\n perPage,\n filters,\n })\n }\n }\n return (): void => {\n if (isEmpty(currentItem)) {\n unsetPriceState(dispatch)\n }\n }\n }, [config.accessToken, currentItem, sCode])\n const priceValue: PricesContextValue = {\n ...state,\n skuCode: sCode,\n loader,\n setSkuCodes,\n }\n return (\n <PricesContext.Provider value={priceValue}>\n {children}\n </PricesContext.Provider>\n )\n}\n\nPricesContainer.propTypes = propTypes\nPricesContainer.defaultProps = defaultProps\nPricesContainer.displayName = displayName\n\nexport default PricesContainer\n","import components from '#config/components'\nimport OrderContext from '#context/OrderContext'\nimport PlaceOrderContext from '#context/PlaceOrderContext'\nimport React, {\n FunctionComponent,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport BaseInput, { BaseInputProps } from './utils/BaseInput'\n\nconst propTypes = components.PrivacyAndTermsCheckbox.propTypes\nconst displayName = components.PrivacyAndTermsCheckbox.displayName\n\nconst PrivacyAndTermsCheckbox: FunctionComponent<Partial<BaseInputProps>> = (\n props\n) => {\n const { order } = useContext(OrderContext)\n const { placeOrderPermitted } = useContext(PlaceOrderContext)\n const [forceDisabled, setForceDisabled] = useState(true)\n const [checked, setChecked] = useState(false)\n const fieldName = 'privacy-terms'\n const handleChange: any = (e: React.ChangeEvent<HTMLInputElement>): void => {\n const v = e.target?.checked\n setChecked(v)\n localStorage.setItem(fieldName, `${v}`)\n placeOrderPermitted && placeOrderPermitted()\n }\n useEffect(() => {\n if (order?.privacyUrl && order?.termsUrl) setForceDisabled(false)\n if (!checked) localStorage.setItem(fieldName, `${checked}`)\n return () => {\n setForceDisabled(true)\n localStorage.removeItem(fieldName)\n }\n }, [order?.privacyUrl, order?.termsUrl])\n return (\n <BaseInput\n type=\"checkbox\"\n name={fieldName}\n disabled={forceDisabled}\n onChange={handleChange}\n checked={checked}\n {...props}\n />\n )\n}\n\nPrivacyAndTermsCheckbox.propTypes = propTypes\nPrivacyAndTermsCheckbox.displayName = displayName\n\nexport default PrivacyAndTermsCheckbox\n","import React, {\n FunctionComponent,\n useContext,\n useState,\n useEffect,\n} from 'react'\nimport Parent from './utils/Parent'\nimport { isEmpty, has } from 'lodash'\nimport getCurrentItemKey from '#utils/getCurrentItemKey'\nimport ItemContext from '#context/ItemContext'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings/index'\nimport SkuListsContext from '#context/SkuListsContext'\n\nconst propTypes = components.QuantitySelector.propTypes\nconst defaultProps = components.QuantitySelector.defaultProps\nconst displayName = components.QuantitySelector.displayName\n\ntype QuantitySelectorChildrenProps = FunctionChildren<\n Omit<QuantitySelectorProps, 'children'> & {\n handleChange: (event: React.MouseEvent<HTMLInputElement>) => void\n handleBlur: (event: React.MouseEvent<HTMLInputElement>) => void\n }\n>\n\ntype QuantitySelectorProps = {\n children?: QuantitySelectorChildrenProps\n disabled?: boolean\n min?: number\n max?: number\n value?: string\n skuCode?: string\n skuListId?: string\n} & JSX.IntrinsicElements['input']\n\nconst QuantitySelector: FunctionComponent<QuantitySelectorProps> = (props) => {\n const { skuCode, skuListId, children, min = 1, max, ...p } = props\n const {\n item,\n setQuantity,\n items,\n quantity,\n prices,\n skuCode: itemSkuCode,\n } = useContext(ItemContext)\n const { skuLists, listIds } = useContext(SkuListsContext)\n const [value, setValue] = useState(min)\n const [disabled, setDisabled] = useState(!!p.disabled)\n const sCode =\n !isEmpty(items) && skuCode\n ? items[skuCode]?.code\n : skuCode || getCurrentItemKey(item) || (itemSkuCode as string)\n\n const inventory = isEmpty(item) ? 50 : item[sCode]?.inventory?.quantity\n const maxInv = max || inventory\n useEffect(() => {\n setValue(min)\n if (!prices[sCode] || !sCode) {\n setDisabled(true)\n }\n skuListId && setDisabled(false)\n if (sCode) {\n const qty = Number(min)\n setQuantity && setQuantity({ ...quantity, [`${sCode}`]: qty })\n if (!isEmpty(prices) && has(prices, sCode)) setDisabled(false)\n }\n return (): void => {\n setValue(min)\n }\n }, [item, listIds, prices])\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n const qty = Number(e.target.value)\n const valid = Number(qty) >= Number(min) && Number(qty) <= Number(maxInv)\n setValue(qty)\n if (!isEmpty(skuLists) && skuListId && valid) {\n setQuantity && setQuantity({ ...quantity, [`${skuListId}`]: Number(qty) })\n } else if (sCode && valid) {\n setQuantity && setQuantity({ ...quantity, [`${sCode}`]: Number(qty) })\n }\n }\n const handleBlur = (e: React.ChangeEvent<HTMLInputElement>): void => {\n const qty = e.target.value\n const valid = Number(qty) >= Number(min) && Number(qty) <= Number(maxInv)\n if (!valid) {\n const resetVal = Number(qty) < Number(min) ? min : maxInv\n setValue(resetVal)\n if (!isEmpty(skuLists) && skuListId) {\n setQuantity &&\n setQuantity({ ...quantity, [`${skuListId}`]: Number(resetVal) })\n } else {\n setQuantity &&\n setQuantity({ ...quantity, [`${sCode}`]: Number(resetVal) })\n }\n }\n }\n const parentProps = {\n min,\n max: maxInv,\n disabled,\n handleChange,\n handleBlur,\n value,\n ...props,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <input\n type=\"number\"\n max={maxInv}\n min={min}\n value={value || ''}\n disabled={disabled}\n onChange={handleChange}\n onBlur={handleBlur}\n {...p}\n />\n )\n}\n\nQuantitySelector.propTypes = propTypes\nQuantitySelector.defaultProps = defaultProps\nQuantitySelector.displayName = displayName\n\nexport default QuantitySelector\n","import { isEmpty } from 'lodash'\nimport { fieldsExist } from '#utils/validateFormFields'\nimport { BaseError } from '#typings/errors'\nimport { addressFields } from '#reducers/AddressReducer'\n\ntype BillingAddressController = (params: {\n billingAddress?: Record<string, any>\n billingAddressId?: string\n errors?: BaseError[]\n requiresBillingInfo?: boolean\n}) => boolean\n\nexport const billingAddressController: BillingAddressController = ({\n billingAddress,\n billingAddressId,\n errors,\n requiresBillingInfo,\n}) => {\n let billingDisable = !isEmpty(errors) || isEmpty(billingAddress)\n if (isEmpty(errors) && !isEmpty(billingAddress)) {\n let billingInfo = [...addressFields]\n if (requiresBillingInfo) billingInfo = [...billingInfo, 'billing_info']\n billingDisable = !!(\n billingAddress && fieldsExist(billingAddress, billingInfo)\n )\n }\n if (billingDisable && !isEmpty(billingAddressId) && isEmpty(billingAddress)) {\n billingDisable = false\n }\n return billingDisable\n}\n\ntype ShippingAddressController = (params: {\n billingDisable: boolean\n errors?: BaseError[]\n shipToDifferentAddress?: boolean\n shippingAddress?: Record<string, any>\n shippingAddressId?: string\n}) => boolean\n\nexport const shippingAddressController: ShippingAddressController = ({\n billingDisable,\n errors,\n shipToDifferentAddress,\n shippingAddress,\n shippingAddressId,\n}) => {\n let shippingDisable = !!(!billingDisable && shipToDifferentAddress)\n if (shippingDisable && isEmpty(errors) && !isEmpty(shippingAddress)) {\n shippingDisable = !!(shippingAddress && fieldsExist(shippingAddress))\n }\n if (\n shippingDisable &&\n !isEmpty(shippingAddressId) &&\n isEmpty(shippingAddress)\n ) {\n shippingDisable = false\n }\n return shippingDisable\n}\n\ntype CountryLockController = (params: {\n addresses?: Record<string, any>[]\n billingAddress?: Record<string, any>\n billingAddressId?: string\n countryCodeLock?: string\n shipToDifferentAddress?: boolean\n shippingAddress?: Record<string, any>\n shippingAddressId?: string\n}) => boolean\n\nexport const countryLockController: CountryLockController = ({\n addresses,\n billingAddress,\n billingAddressId,\n countryCodeLock,\n shipToDifferentAddress,\n shippingAddress,\n shippingAddressId,\n}) => {\n if (\n countryCodeLock &&\n !isEmpty(addresses) &&\n billingAddressId &&\n !shipToDifferentAddress\n ) {\n const addressLocked = addresses?.find(\n (a) =>\n (a.id === billingAddressId || a.reference === billingAddressId) &&\n a.countryCode !== countryCodeLock\n )\n if (!isEmpty(addressLocked)) return true\n }\n if (countryCodeLock && !isEmpty(billingAddress) && !shipToDifferentAddress) {\n return billingAddress?.['country_code'] !== countryCodeLock\n }\n if (countryCodeLock && !isEmpty(shippingAddress) && shipToDifferentAddress) {\n return shippingAddress?.['country_code'] !== countryCodeLock\n }\n if (\n countryCodeLock &&\n !isEmpty(addresses) &&\n shippingAddressId &&\n shipToDifferentAddress\n ) {\n const addressLocked = addresses?.find(\n (a) =>\n (a.id === shippingAddressId || a.reference === shippingAddressId) &&\n a.countryCode !== countryCodeLock\n )\n if (!isEmpty(addressLocked)) return true\n }\n return false\n}\n","import React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useState,\n} from 'react'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings/index'\nimport AddressContext from '#context/AddressContext'\nimport { isEmpty } from 'lodash'\nimport {\n billingAddressController,\n shippingAddressController,\n countryLockController,\n} from '#utils/addressesManager'\nimport OrderContext from '#context/OrderContext'\nimport CustomerContext from '#context/CustomerContext'\nimport isFunction from 'lodash/isFunction'\n\nconst propTypes = components.SaveAddressesButton.propTypes\nconst defaultProps = components.SaveAddressesButton.defaultProps\nconst displayName = components.SaveAddressesButton.displayName\n\ntype SaveAddressesButtonChildrenProps = FunctionChildren<\n Omit<SaveAddressesButtonProps, 'children'>\n>\n\ntype SaveAddressesButtonProps = {\n children?: SaveAddressesButtonChildrenProps\n label?: string | ReactNode\n onClick?: () => void\n} & JSX.IntrinsicElements['button']\n\nconst SaveAddressesButton: FunctionComponent<SaveAddressesButtonProps> = (\n props\n) => {\n const {\n children,\n label = 'Continue to delivery',\n resource,\n disabled = false,\n onClick,\n ...p\n } = props\n const {\n errors,\n billingAddress,\n shipToDifferentAddress,\n shippingAddress,\n saveAddresses,\n billingAddressId,\n shippingAddressId,\n } = useContext(AddressContext)\n const { order } = useContext(OrderContext)\n const { addresses } = useContext(CustomerContext)\n const [forceDisable, setForceDisable] = useState(disabled)\n const billingDisable = billingAddressController({\n billingAddress,\n errors,\n billingAddressId,\n // @ts-ignore\n requiresBillingInfo: order?.requiresBillingInfo,\n })\n const shippingDisable = shippingAddressController({\n billingDisable,\n errors,\n shipToDifferentAddress,\n shippingAddress,\n shippingAddressId,\n })\n const countryLockDisable = countryLockController({\n countryCodeLock: order?.shippingCountryCodeLock,\n addresses,\n shipToDifferentAddress,\n billingAddressId,\n billingAddress,\n shippingAddress,\n shippingAddressId,\n })\n const disable =\n disabled || billingDisable || shippingDisable || countryLockDisable\n const handleClick = async () => {\n if (isEmpty(errors) && !disable) {\n setForceDisable(true)\n await saveAddresses()\n setForceDisable(false)\n onClick && onClick()\n }\n }\n const parentProps = {\n ...p,\n label,\n resource,\n handleClick,\n disabled: disable,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <button\n type=\"button\"\n disabled={disable || forceDisable}\n onClick={handleClick}\n {...p}\n >\n {isFunction(label) ? label() : label}\n </button>\n )\n}\n\nSaveAddressesButton.propTypes = propTypes\nSaveAddressesButton.defaultProps = defaultProps\nSaveAddressesButton.displayName = displayName\n\nexport default SaveAddressesButton\n","import React, { FunctionComponent, ReactNode, useContext } from 'react'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings/index'\nimport { isEmpty } from 'lodash'\nimport CustomerContext from '#context/CustomerContext'\n\nconst propTypes = components.SaveCustomerButton.propTypes\nconst defaultProps = components.SaveCustomerButton.defaultProps\nconst displayName = components.SaveCustomerButton.displayName\n\ntype ParentProps = {\n handleClick: () => any\n}\n\ntype SaveAddressesButtonChildrenProps = FunctionChildren<\n Omit<SaveCustomerButtonProps & ParentProps, 'children'>\n>\n\ntype SaveCustomerButtonProps = {\n children?: SaveAddressesButtonChildrenProps\n label?: string | ReactNode\n onClick?: () => void\n} & JSX.IntrinsicElements['button']\n\nconst SaveCustomerButton: FunctionComponent<SaveCustomerButtonProps> = (\n props\n) => {\n const { children, label = 'Save', resource, disabled, onClick, ...p } = props\n const { errors, saveCustomerUser, customerEmail } = useContext(\n CustomerContext\n )\n const disable = disabled || !isEmpty(errors) || isEmpty(customerEmail)\n const handleClick = async () => {\n if (isEmpty(errors) && !disable) {\n await saveCustomerUser(customerEmail as string)\n onClick && onClick()\n }\n }\n const parentProps = {\n ...p,\n label,\n resource,\n handleClick,\n disabled: disable,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <button type=\"button\" disabled={disable} onClick={handleClick} {...p}>\n {label}\n </button>\n )\n}\n\nSaveCustomerButton.propTypes = propTypes\nSaveCustomerButton.defaultProps = defaultProps\nSaveCustomerButton.displayName = displayName\n\nexport default SaveCustomerButton\n","import baseReducer from '#utils/baseReducer'\nimport { Dispatch } from 'react'\nimport { BaseError } from '#typings/errors'\nimport {\n DeliveryLeadTime,\n DeliveryLeadTimeCollection,\n OrderCollection,\n Shipment,\n ShipmentCollection,\n ShippingMethod,\n} from '@commercelayer/js-sdk'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { getOrderContext } from './OrderReducer'\n\nexport type ShipmentActionType =\n | 'setErrors'\n | 'setShipments'\n | 'setShippingMethod'\n\nexport interface ShipmentActionPayload {\n errors: BaseError[]\n shipments: ShipmentCollection[]\n deliveryLeadTimes: DeliveryLeadTimeCollection[]\n}\n\nexport type ShipmentState = Partial<ShipmentActionPayload>\n\nexport interface ShipmentAction {\n type: ShipmentActionType\n payload: Partial<ShipmentActionPayload>\n}\n\nexport const shipmentInitialState: ShipmentState = {\n errors: [],\n}\n\nexport interface SetShipmentErrors {\n <V extends BaseError[]>(errors: V, dispatch?: Dispatch<ShipmentAction>): void\n}\n\nexport const setShipmentErrors: SetShipmentErrors = (errors, dispatch) => {\n dispatch &&\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n}\n\ntype GetShipments = (args: {\n order: OrderCollection\n dispatch: Dispatch<ShipmentAction>\n config: CommerceLayerConfig\n}) => Promise<void>\n\nexport const getShipments: GetShipments = async ({\n order,\n dispatch,\n config,\n}) => {\n try {\n const shipments = (\n await order\n .withCredentials(config)\n .shipments()\n ?.includes(\n 'availableShippingMethods',\n 'shipmentLineItems',\n 'shipmentLineItems.lineItem',\n 'stockTransfers',\n 'shippingMethod',\n 'stockLocation'\n )\n .load()\n )?.toArray()\n const deliveryLeadTimes = (\n await DeliveryLeadTime.withCredentials(config)\n .includes('shippingMethod', 'stockLocation')\n .all()\n ).toArray()\n dispatch({\n type: 'setShipments',\n payload: { shipments, deliveryLeadTimes },\n })\n } catch (error) {\n console.error(error)\n }\n}\n\ntype SetShippingMethod = (args: {\n config: CommerceLayerConfig\n shipmentId: string\n shippingMethodId: string\n order?: OrderCollection\n getOrder?: getOrderContext\n}) => Promise<void>\n\nexport const setShippingMethod: SetShippingMethod = async ({\n config,\n shipmentId,\n shippingMethodId,\n getOrder,\n order,\n}) => {\n try {\n if (shippingMethodId) {\n const shipment = await Shipment.withCredentials(config)\n .includes(\n 'availableShippingMethods',\n 'availableShippingMethods',\n 'shipmentLineItems',\n 'shipmentLineItems.lineItem',\n 'stockTransfers',\n 'shippingMethod',\n 'deliveryLeadTime'\n )\n .find(shipmentId)\n const shippingMethod = ShippingMethod.build({ id: shippingMethodId })\n await shipment.withCredentials(config).update({ shippingMethod })\n getOrder && order && getOrder(order.id)\n }\n } catch (error) {\n console.error(error)\n }\n}\n\nconst type: ShipmentActionType[] = [\n 'setErrors',\n 'setShipments',\n 'setShippingMethod',\n]\n\nconst shipmentReducer = (\n state: ShipmentState,\n reducer: ShipmentAction\n): ShipmentState =>\n baseReducer<ShipmentState, ShipmentAction, ShipmentActionType[]>(\n state,\n reducer,\n type\n )\n\nexport default shipmentReducer\n","import { createContext } from 'react'\nimport {\n ShipmentState,\n SetShipmentErrors,\n setShipmentErrors,\n} from '#reducers/ShipmentReducer'\n\ntype DefaultContext = {\n setShipmentErrors: SetShipmentErrors\n setShippingMethod: (\n shipmentId: string,\n shippingMethodId: string\n ) => Promise<void>\n} & ShipmentState\n\nexport const defaultShipmentContext = {\n setShipmentErrors,\n setShippingMethod: async (): Promise<void> => {\n return\n },\n}\n\nconst ShipmentContext = createContext<DefaultContext>(defaultShipmentContext)\n\nexport default ShipmentContext\n","import React, {\n FunctionComponent,\n Fragment,\n useContext,\n ReactNode,\n useState,\n useEffect,\n} from 'react'\nimport ShipmentContext from '#context/ShipmentContext'\nimport ShipmentChildrenContext from '#context/ShipmentChildrenContext'\nimport components from '#config/components'\nimport { LineItemCollection } from '@commercelayer/js-sdk'\nimport { LoaderType } from '#typings'\nimport getLoaderComponent from '#utils/getLoaderComponent'\n\nconst propTypes = components.Shipment.propTypes\nconst displayName = components.Shipment.displayName\n\ntype ShipmentProps = {\n children: ReactNode\n loader?: LoaderType\n}\n\nconst Shipment: FunctionComponent<ShipmentProps> = ({\n children,\n loader = 'Loading...',\n}) => {\n const [loading, setLoading] = useState(true)\n const { shipments, deliveryLeadTimes } = useContext(ShipmentContext)\n useEffect(() => {\n if (shipments) setLoading(false)\n return () => {\n setLoading(true)\n }\n }, [shipments])\n const components =\n shipments &&\n shipments.map((shipment, k) => {\n const shipmentLineItems = shipment.shipmentLineItems()?.toArray()\n const lineItems = shipmentLineItems?.map((shipmentLineItem) => {\n const l = shipmentLineItem.lineItem() as LineItemCollection\n if (l) l.quantity = shipmentLineItem.quantity\n return l\n })\n const shippingMethods = shipment.availableShippingMethods()?.toArray()\n const currentShippingMethodId = shipment.shippingMethod()?.id\n const stockTransfers = shipment.stockTransfers()?.toArray()\n const times = deliveryLeadTimes?.filter(\n (time) => time.stockLocation()?.id === shipment.stockLocation()?.id\n )\n const shipmentProps = {\n lineItems,\n shippingMethods,\n currentShippingMethodId,\n stockTransfers,\n deliveryLeadTimes: times,\n shipment,\n keyNumber: k + 1,\n }\n return (\n <ShipmentChildrenContext.Provider key={k} value={shipmentProps}>\n {children}\n </ShipmentChildrenContext.Provider>\n )\n })\n return !loading ? (\n <Fragment>{components}</Fragment>\n ) : (\n getLoaderComponent(loader)\n )\n}\n\nShipment.propTypes = propTypes\nShipment.displayName = displayName\n\nexport default Shipment\n","import React, { useContext, FunctionComponent, ReactNode } from 'react'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { camelCase, get } from 'lodash'\nimport { ShipmentCollection } from '@commercelayer/js-sdk'\nimport ShipmentChildrenContext from '#context/ShipmentChildrenContext'\n\nconst propTypes = components.ShipmentField.propTypes\nconst displayName = components.ShipmentField.displayName\n\ntype ShipmentFieldChildrenProps = Omit<ShipmentFieldProps, 'children'> & {\n shipment: ShipmentCollection\n}\n\nexport type ShipmentAttribute =\n | 'number'\n | 'currencyCode'\n | 'status'\n | 'costAmountCents'\n | 'costAmountFloat'\n | 'formattedCostAmount'\n | 'keyNumber'\n\ntype ShipmentFieldProps = {\n children?: (props: ShipmentFieldChildrenProps) => ReactNode\n name: ShipmentAttribute\n} & JSX.IntrinsicElements['span']\n\nconst ShipmentField: FunctionComponent<ShipmentFieldProps> = (props) => {\n const { name } = props\n const { shipment, keyNumber } = useContext(ShipmentChildrenContext)\n const key = camelCase(name)\n const text = key !== 'keyNumber' ? get(shipment, key) : keyNumber\n const parentProps = {\n shipment,\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <span {...props}>{text}</span>\n )\n}\n\nShipmentField.propTypes = propTypes\nShipmentField.displayName = displayName\n\nexport default ShipmentField\n","import ShipmentContext, {\n defaultShipmentContext,\n} from '#context/ShipmentContext'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useReducer,\n} from 'react'\nimport shipmentReducer, {\n shipmentInitialState,\n getShipments,\n setShippingMethod,\n} from '#reducers/ShipmentReducer'\nimport OrderContext from '#context/OrderContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport components from '#config/components'\nimport { BaseError } from '#typings/errors'\nimport { isEmpty } from 'lodash'\n\nconst propTypes = components.ShipmentsContainer.propTypes\nconst displayName = components.ShipmentsContainer.displayName\n\ntype ShipmentsContainerProps = {\n children: ReactNode\n}\nconst ShipmentsContainer: FunctionComponent<ShipmentsContainerProps> = (\n props\n) => {\n const { children } = props\n const [state, dispatch] = useReducer(shipmentReducer, shipmentInitialState)\n const { order, getOrder } = useContext(OrderContext)\n const config = useContext(CommerceLayerContext)\n useEffect(() => {\n // TODO: Get shipments\n if (order && !isEmpty(config)) {\n getShipments({ order, dispatch, config })\n }\n }, [order])\n const contextValue = {\n ...state,\n setShipmentErrors: (errors: BaseError[]) =>\n defaultShipmentContext['setShipmentErrors'](errors, dispatch),\n setShippingMethod: async (shipmentId: string, shippingMethodId: string) =>\n await setShippingMethod({\n shippingMethodId,\n shipmentId,\n config,\n getOrder,\n order,\n }),\n }\n return (\n <ShipmentContext.Provider value={contextValue}>\n {children}\n </ShipmentContext.Provider>\n )\n}\n\nShipmentsContainer.propTypes = propTypes\nShipmentsContainer.displayName = displayName\n\nexport default ShipmentsContainer\n","import baseReducer from '#utils/baseReducer'\nimport { Dispatch } from 'react'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { Address, OrderCollection } from '@commercelayer/js-sdk'\nimport { getOrderContext } from '#reducers/OrderReducer'\n\nexport type ShippingAddressActionType =\n | 'setShippingAddress'\n | 'setShippingCustomerAddressId'\n | 'cleanup'\n\nexport interface ShippingAddressActionPayload {\n _shippingAddressCloneId: string\n shippingCustomerAddressId: string\n}\n\nexport type ShippingAddressState = Partial<ShippingAddressActionPayload>\n\nexport interface ShippingAddressAction {\n type: ShippingAddressActionType\n payload: Partial<ShippingAddressActionPayload>\n}\n\nexport const shippingAddressInitialState: ShippingAddressState = {\n _shippingAddressCloneId: '',\n}\n\nexport type SetShippingAddress = (\n id: string,\n options?: {\n config: CommerceLayerConfig\n dispatch: Dispatch<ShippingAddressAction>\n order?: OrderCollection | null\n getOrder?: getOrderContext\n customerAddressId?: string\n }\n) => Promise<void>\n\nexport const setShippingAddress: SetShippingAddress = async (id, options) => {\n try {\n if (options?.order) {\n if (options.customerAddressId) {\n const address = await Address.withCredentials(options.config).find(id)\n if (address.reference !== options.customerAddressId) {\n await address.withCredentials(options.config).update({\n reference: options.customerAddressId,\n })\n }\n }\n options.dispatch({\n type: 'setShippingAddress',\n payload: {\n _shippingAddressCloneId: id,\n },\n })\n }\n } catch (error) {\n console.error(error)\n }\n}\n\ntype SetShippingCustomerAddressId = (args: {\n dispatch: Dispatch<ShippingAddressAction>\n order: OrderCollection\n setCloneAddress: (\n id: string,\n resource: 'billingAddress' | 'shippingAddress'\n ) => void\n}) => void\n\nexport const setShippingCustomerAddressId: SetShippingCustomerAddressId = async ({\n dispatch,\n order,\n setCloneAddress,\n}) => {\n let customerAddressId = order?.shippingAddress()?.customerAddressId\n try {\n if (!customerAddressId) {\n const address = await order.loadShippingAddress()\n customerAddressId = address?.reference\n }\n if (customerAddressId) {\n dispatch({\n type: 'setShippingCustomerAddressId',\n payload: { shippingCustomerAddressId: customerAddressId },\n })\n setCloneAddress(customerAddressId, 'shippingAddress')\n }\n } catch (error) {\n console.error('error', error)\n }\n}\n\nconst type: ShippingAddressActionType[] = [\n 'setShippingAddress',\n 'setShippingCustomerAddressId',\n 'cleanup',\n]\n\nconst shippingAddressReducer = (\n state: ShippingAddressState,\n reducer: ShippingAddressAction\n): ShippingAddressState =>\n baseReducer<\n ShippingAddressState,\n ShippingAddressAction,\n ShippingAddressActionType[]\n >(state, reducer, type)\n\nexport default shippingAddressReducer\n","import ShippingAddressContext from '#context/ShippingAddressContext'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useReducer,\n} from 'react'\nimport shippingAddressReducer, {\n setShippingAddress,\n shippingAddressInitialState,\n setShippingCustomerAddressId,\n} from '#reducers/ShippingAddressReducer'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport components from '#config/components'\nimport OrderContext from '#context/OrderContext'\nimport AddressContext from '#context/AddressContext'\n\nconst propTypes = components.ShippingAddressContainer.propTypes\n\ntype Props = {\n children: ReactNode\n}\nconst ShippingAddressContainer: FunctionComponent<Props> = (props) => {\n const { children } = props\n const [state, dispatch] = useReducer(\n shippingAddressReducer,\n shippingAddressInitialState\n )\n const config = useContext(CommerceLayerContext)\n const { order, getOrder } = useContext(OrderContext)\n const { setCloneAddress } = useContext(AddressContext)\n useEffect(() => {\n if (order && config) {\n setShippingCustomerAddressId({\n dispatch,\n order,\n setCloneAddress,\n })\n }\n return () => {\n dispatch({\n type: 'cleanup',\n payload: {},\n })\n }\n }, [config, order])\n const contextValue = {\n ...state,\n setShippingAddress: async (\n id: string,\n options?: { customerAddressId: string }\n ) => {\n await setShippingAddress(id, {\n config,\n dispatch,\n order,\n getOrder,\n customerAddressId: options?.customerAddressId,\n })\n setCloneAddress(id, 'shippingAddress')\n },\n }\n return (\n <ShippingAddressContext.Provider value={contextValue}>\n {children}\n </ShippingAddressContext.Provider>\n )\n}\n\nShippingAddressContainer.propTypes = propTypes\n\nexport default ShippingAddressContainer\n","import AddressesContext from '#context/AddressContext'\nimport useRapidForm from 'rapid-form'\nimport React, {\n FunctionComponent,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n} from 'react'\nimport ShippingAddressFormContext from '#context/ShippingAddressFormContext'\nimport { isEmpty } from 'lodash'\nimport { BaseError, CodeErrorType } from '#typings/errors'\nimport { AddressField } from '#reducers/AddressReducer'\nimport { AddressCountrySelectName, AddressInputName } from '#typings'\nimport components from '#config/components'\nimport OrderContext from '#context/OrderContext'\nimport OrderStorageContext from '#context/OrderStorageContext'\n\nconst propTypes = components.ShippingAddressForm.propTypes\n\ntype ShippingAddressFormProps = {\n children: ReactNode\n reset?: boolean\n errorClassName?: string\n} & Omit<JSX.IntrinsicElements['form'], 'onSubmit'>\n\nconst ShippingAddressForm: FunctionComponent<ShippingAddressFormProps> = (\n props\n) => {\n const {\n children,\n errorClassName,\n autoComplete = 'on',\n reset = false,\n ...p\n } = props\n const { validation, values, errors, reset: resetForm } = useRapidForm()\n const { setAddressErrors, setAddress, shipToDifferentAddress } =\n useContext(AddressesContext)\n const { saveAddressToCustomerAddressBook } = useContext(OrderContext)\n const { setLocalOrder } = useContext(OrderStorageContext)\n const ref = useRef<HTMLFormElement>(null)\n useEffect(() => {\n if (!isEmpty(errors)) {\n const formErrors: BaseError[] = []\n for (const fieldName in errors) {\n const { code, message } = errors[fieldName]\n formErrors.push({\n code: code as CodeErrorType,\n message,\n resource: 'shippingAddress',\n field: fieldName,\n })\n }\n !isEmpty(formErrors) &&\n shipToDifferentAddress &&\n setAddressErrors(formErrors)\n } else if (!isEmpty(values) && shipToDifferentAddress) {\n setAddressErrors([])\n for (const name in values) {\n const field = values[name]\n if (field?.value) {\n values[name.replace('shipping_address_', '')] = field.value\n delete values[name]\n }\n if (field?.type === 'checkbox') {\n delete values[name]\n saveAddressToCustomerAddressBook('ShippingAddress', field.checked)\n setLocalOrder(\n 'saveShippingAddressToCustomerAddressBook',\n field.checked\n )\n }\n }\n setAddress({ values, resource: 'shippingAddress' })\n }\n if (reset && (!isEmpty(values) || !isEmpty(errors))) {\n saveAddressToCustomerAddressBook &&\n saveAddressToCustomerAddressBook('ShippingAddress', false)\n if (ref) {\n ref.current?.reset()\n resetForm({ target: ref.current } as any)\n setAddressErrors([])\n setAddress({ values: {}, resource: 'shippingAddress' })\n }\n }\n }, [values, errors, shipToDifferentAddress, reset])\n const setValue = (\n name: AddressField | AddressInputName | AddressCountrySelectName,\n value: any\n ) => {\n const field: any = {\n [name.replace('shipping_address_', '')]: value,\n }\n setAddress({ values: { ...values, ...field }, resource: 'shippingAddress' })\n }\n const providerValues = {\n validation,\n setValue,\n errorClassName,\n errors: errors as any,\n }\n return (\n <ShippingAddressFormContext.Provider value={providerValues}>\n <form ref={ref} autoComplete={autoComplete} {...p}>\n {children}\n </form>\n </ShippingAddressFormContext.Provider>\n )\n}\n\nShippingAddressForm.propTypes = propTypes\n\nexport default ShippingAddressForm\n","import React, { FunctionComponent } from 'react'\nimport BaseOrderPrice from './utils/BaseOrderPrice'\nimport components from '#config/components'\nimport { BaseAmountComponent } from '#typings'\n\nconst propTypes = components.ShippingAmount.propTypes\nconst displayName = components.ShippingAmount.displayName\n\nconst ShippingAmount: FunctionComponent<BaseAmountComponent> = (props) => {\n return <BaseOrderPrice base=\"amount\" type=\"shipping\" {...props} />\n}\n\nShippingAmount.propTypes = propTypes\nShippingAmount.displayName = displayName\n\nexport default ShippingAmount\n","import React, {\n FunctionComponent,\n Fragment,\n useContext,\n ReactNode,\n useEffect,\n useState,\n} from 'react'\nimport ShippingMethodChildrenContext from '#context/ShippingMethodChildrenContext'\nimport components from '#config/components'\nimport ShipmentChildrenContext from '#context/ShipmentChildrenContext'\nimport { first, isEmpty } from 'lodash'\n\nconst propTypes = components.ShippingMethod.propTypes\nconst displayName = components.ShippingMethod.displayName\n\ntype ShippingMethodProps = {\n children: ReactNode\n readonly?: boolean\n emptyText?: string\n}\n\nconst ShippingMethod: FunctionComponent<ShippingMethodProps> = (props) => {\n const {\n children,\n readonly,\n emptyText = `There are not any shipping method available`,\n } = props\n const {\n shippingMethods,\n currentShippingMethodId,\n deliveryLeadTimes,\n } = useContext(ShipmentChildrenContext)\n const [items, setItems] = useState<JSX.Element[]>([])\n useEffect(() => {\n const methods =\n shippingMethods &&\n shippingMethods\n .filter((s) => {\n if (readonly) return s.id === currentShippingMethodId\n return true\n })\n .map((shippingMethod, k) => {\n const deliveryLeadTimeForShipment =\n deliveryLeadTimes &&\n first(\n deliveryLeadTimes.filter((delivery) => {\n const deliveryShippingMethodId = delivery.shippingMethod()?.id\n return shippingMethod.id === deliveryShippingMethodId\n })\n )\n const shippingProps = {\n shippingMethod,\n currentShippingMethodId,\n deliveryLeadTimeForShipment,\n }\n return (\n <ShippingMethodChildrenContext.Provider\n key={k}\n value={shippingProps}\n >\n {children}\n </ShippingMethodChildrenContext.Provider>\n )\n })\n if (methods) setItems(methods)\n }, [currentShippingMethodId, deliveryLeadTimes, shippingMethods])\n const components = (!isEmpty(items) && items) || emptyText\n return <Fragment>{components}</Fragment>\n}\n\nShippingMethod.propTypes = propTypes\nShippingMethod.displayName = displayName\n\nexport default ShippingMethod\n","import React, { useContext, FunctionComponent, ReactNode } from 'react'\nimport ShippingMethodChildrenContext from '#context/ShippingMethodChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\n\nconst propTypes = components.ShippingMethodName.propTypes\nconst displayName = components.ShippingMethodName.displayName\n\ntype LineItemNameChildrenProps = Omit<LineItemNameProps, 'children'>\n\ntype LineItemNameProps = {\n children?: (props: LineItemNameChildrenProps) => ReactNode\n} & JSX.IntrinsicElements['label']\n\nconst ShippingMethodName: FunctionComponent<LineItemNameProps> = (props) => {\n const { shippingMethod } = useContext(ShippingMethodChildrenContext)\n const htmlFor =\n `shipment-${shippingMethod.shipmentId}-${shippingMethod.id}` || ''\n const labelName = shippingMethod['name']\n const parentProps = {\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <label htmlFor={htmlFor} {...props}>\n {labelName}\n </label>\n )\n}\n\nShippingMethodName.propTypes = propTypes\nShippingMethodName.displayName = displayName\n\nexport default ShippingMethodName\n","import React, {\n FunctionComponent,\n useState,\n useEffect,\n useContext,\n} from 'react'\nimport getAmount from '#utils/getAmount'\nimport ShippingMethodChildrenContext from '#context/ShippingMethodChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { BaseAmountComponent } from '#typings/index'\nimport OrderContext from '#context/OrderContext'\nimport { isNumber } from 'lodash'\n\nconst propTypes = components.ShippingMethodPrice.propTypes\nconst displayName = components.ShippingMethodPrice.displayName\n\nexport type ShippingMethodPriceProps = BaseAmountComponent & {\n labelFreeOver?: string\n} & (\n | {\n type?: 'amount'\n base?: 'freeOver'\n }\n | {\n type?: 'amount' | 'amountForShipment'\n base?: 'price'\n }\n )\n\nconst ShippingMethodPrice: FunctionComponent<ShippingMethodPriceProps> = (\n props\n) => {\n const {\n format = 'formatted',\n type = 'amount',\n base = 'price',\n labelFreeOver = 'Free',\n ...p\n } = props\n const { shippingMethod } = useContext(ShippingMethodChildrenContext)\n const { order } = useContext(OrderContext)\n const [price, setPrice] = useState('')\n const [freeOverAmountCents, setFreeOverAmountCents] = useState(0)\n useEffect(() => {\n if (shippingMethod) {\n const p = getAmount({\n base,\n type,\n format,\n obj: shippingMethod as Record<string, string>,\n })\n setPrice(p)\n const c = getAmount<number>({\n base: 'freeOver',\n type,\n format: 'cents',\n obj: shippingMethod as Record<string, string>,\n })\n setFreeOverAmountCents(c)\n }\n return (): void => {\n setPrice('')\n setFreeOverAmountCents(0)\n }\n }, [shippingMethod])\n const parentProps = {\n price,\n ...p,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <span {...p}>\n {order &&\n isNumber(freeOverAmountCents) &&\n freeOverAmountCents < order?.totalAmountCents\n ? labelFreeOver\n : price}\n </span>\n )\n}\n\nShippingMethodPrice.propTypes = propTypes\nShippingMethodPrice.displayName = displayName\n\nexport default ShippingMethodPrice\n","import React, { useContext, FunctionComponent, ReactNode } from 'react'\nimport ShippingMethodChildrenContext from '#context/ShippingMethodChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport ShipmentContext from '#context/ShipmentContext'\nimport { ShippingMethodCollection } from '@commercelayer/js-sdk'\n\nconst propTypes = components.ShippingMethodRadioButton.propTypes\nconst displayName = components.ShippingMethodRadioButton.displayName\n\ntype ShippingMethodRadioButtonChildrenProps = Omit<\n ShippingMethodRadioButtonProps,\n 'children'\n>\n\ntype ShippingMethodRadioButtonProps = {\n children?: (props: ShippingMethodRadioButtonChildrenProps) => ReactNode\n onChange?: (\n shippingMethod: ShippingMethodCollection | Record<string, any>\n ) => void\n} & JSX.IntrinsicElements['input']\n\nconst ShippingMethodRadioButton: FunctionComponent<ShippingMethodRadioButtonProps> = (\n props\n) => {\n const { onChange, ...p } = props\n const { shippingMethod, currentShippingMethodId } = useContext(\n ShippingMethodChildrenContext\n )\n const { setShippingMethod } = useContext(ShipmentContext)\n const shipmentId = shippingMethod.shipmentId || ''\n const shippingMethodId = shippingMethod.id\n const name = `shipment-${shipmentId}`\n const id = `${name}-${shippingMethodId}`\n const checked = shippingMethod.id === currentShippingMethodId\n const handleOnChange = async () => {\n await setShippingMethod(shipmentId, shippingMethodId)\n onChange && onChange(shippingMethod)\n }\n const parentProps = {\n handleOnChange,\n name,\n id,\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <input\n type=\"radio\"\n name={name}\n id={id}\n onChange={handleOnChange}\n defaultChecked={checked}\n {...p}\n />\n )\n}\n\nShippingMethodRadioButton.propTypes = propTypes\nShippingMethodRadioButton.displayName = displayName\n\nexport default ShippingMethodRadioButton\n","import React, {\n FunctionComponent,\n useContext,\n useEffect,\n Fragment,\n ReactNode,\n} from 'react'\nimport SkuListsContext from '#context/SkuListsContext'\nimport components from '#config/components'\n\nconst propTypes = components.SkuList.propTypes\nconst displayName = components.SkuList.displayName\n\ntype SkuListProp = {\n children: ReactNode\n id: string\n}\n\nconst SkuList: FunctionComponent<SkuListProp> = (props) => {\n const { id, children } = props\n const { listIds } = useContext(SkuListsContext)\n useEffect(() => {\n if (!listIds.includes(id)) {\n listIds.push(id)\n }\n }, [])\n return <Fragment>{children}</Fragment>\n}\n\nSkuList.propTypes = propTypes\nSkuList.displayName = displayName\n\nexport default SkuList\n","import React, {\n FunctionComponent,\n useReducer,\n useContext,\n ReactNode,\n useEffect,\n} from 'react'\nimport SkuListsContext from '#context/SkuListsContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport skuListsReducer, {\n skuListsInitialState,\n getSkuList,\n} from '#reducers/SkuListsReducer'\n\nimport components from '#config/components'\n\nconst propTypes = components.SkuListsContainer.propTypes\nconst displayName = components.SkuListsContainer.displayName\n\ntype SkuListsContainerProp = {\n children: ReactNode\n}\n\nconst SkuListsContainer: FunctionComponent<SkuListsContainerProp> = (props) => {\n const { children } = props\n const [state, dispatch] = useReducer(skuListsReducer, skuListsInitialState)\n const config = useContext(CommerceLayerContext)\n useEffect(() => {\n if (state.listIds.length > 0 && config.accessToken) {\n getSkuList({ listIds: state.listIds, dispatch, config, state })\n }\n }, [config.accessToken])\n return (\n <SkuListsContext.Provider value={state}>\n {children}\n </SkuListsContext.Provider>\n )\n}\n\nSkuListsContainer.propTypes = propTypes\nSkuListsContainer.displayName = displayName\n\nexport default SkuListsContainer\n","import { createContext } from 'react'\nimport { SkuOptionCollection } from '@commercelayer/js-sdk'\n\nexport interface SkuOptionChildrenInitalState {\n skuOption?: SkuOptionCollection | null\n skuCode: string\n}\n\nconst initial: SkuOptionChildrenInitalState = {\n skuCode: '',\n}\n\nconst SkuOptionChildrenContext = createContext<SkuOptionChildrenInitalState>(\n initial\n)\n\nexport default SkuOptionChildrenContext\n","import { Dispatch } from 'react'\nimport baseReducer from '#utils/baseReducer'\nimport { SkuOptionCollection } from '@commercelayer/js-sdk'\nimport { BaseUnsetState } from '#typings/index'\nimport { BaseError } from '#typings/errors'\n\nexport interface SkuOptionsState {\n skuCode?: string\n skuOptions?: SkuOptionCollection[]\n errors?: BaseError[]\n}\n\ninterface GetSkuOptionsParams {\n dispatch: Dispatch<SkuOptionsAction>\n skuOptions?: SkuOptionCollection[]\n}\n\nexport interface GetSkuOptions {\n (params: GetSkuOptionsParams): void\n}\n\nexport const getSkuOptions: GetSkuOptions = async (params) => {\n const { skuOptions, dispatch } = params\n dispatch({\n type: 'setSkuOptions',\n payload: {\n skuOptions,\n },\n })\n}\n\nexport const unsetSkuOptionsState: BaseUnsetState<SkuOptionsAction> = (\n dispatch\n) => {\n dispatch({\n type: 'setSkuOptions',\n payload: {\n skuOptions: [],\n },\n })\n dispatch({\n type: 'setErrors',\n payload: {\n errors: [],\n },\n })\n}\n\nexport type SkuOptionsActionType = 'setSkuOptions' | 'setErrors'\n\nconst actionType: SkuOptionsActionType[] = ['setSkuOptions', 'setErrors']\n\nexport interface SkuOptionsAction {\n type: SkuOptionsActionType\n payload: SkuOptionsState\n}\n\nexport const skuOptionsInitialState: SkuOptionsState = {\n skuCode: '',\n skuOptions: [],\n}\n\nconst skuOptionsReducer = (\n state: SkuOptionsState,\n reducer: SkuOptionsAction\n): SkuOptionsState =>\n baseReducer<SkuOptionsState, SkuOptionsAction, SkuOptionsActionType[]>(\n state,\n reducer,\n actionType\n )\n\nexport default skuOptionsReducer\n","import { createContext } from 'react'\nimport { skuOptionsInitialState } from '#reducers/SkuOptionsReducer'\n\nconst SkuOptionsContext = createContext(skuOptionsInitialState)\n\nexport default SkuOptionsContext\n","import React, {\n FunctionComponent,\n Fragment,\n useContext,\n ReactNode,\n} from 'react'\nimport SkuOptionChildrenContext from '#context/SkuOptionChildrenContext'\nimport SkuOptionsContext from '#context/SkuOptionsContext'\nimport components from '#config/components'\n\nconst propTypes = components.SkuOption.propTypes\nconst displayName = components.SkuOption.displayName\n\nexport type SkuOptionProps = {\n children: ReactNode\n id: string\n}\n\nconst SkuOption: FunctionComponent<SkuOptionProps> = (props) => {\n const { id } = props\n const { skuOptions, skuCode } = useContext(SkuOptionsContext)\n const items =\n skuOptions &&\n skuOptions\n .filter((l) => l.id === id)\n .map((skuOption, k) => {\n return (\n <SkuOptionChildrenContext.Provider\n key={k}\n value={{ skuOption, skuCode: skuCode as string }}\n >\n {props.children}\n </SkuOptionChildrenContext.Provider>\n )\n })\n return <Fragment>{items}</Fragment>\n}\n\nSkuOption.propTypes = propTypes\nSkuOption.displayName = displayName\n\nexport default SkuOption\n","import React, { FunctionComponent, useContext } from 'react'\nimport BaseInput from './utils/BaseInput'\nimport ItemContext from '#context/ItemContext'\nimport SkuOptionChildrenContext from '#context/SkuOptionChildrenContext'\nimport { has } from 'lodash'\nimport { ItemOptions } from '#reducers/ItemReducer'\nimport components from '#config/components'\nimport { BaseInputComponentProps } from '#typings'\n\nconst propTypes = components.SkuOptionInput.propTypes\nconst displayName = components.SkuOptionInput.displayName\n\ntype SkuOptionInputProps = BaseInputComponentProps &\n JSX.IntrinsicElements['input'] &\n JSX.IntrinsicElements['textarea']\n\nconst SkuOptionInput: FunctionComponent<SkuOptionInputProps> = (props) => {\n const { name } = props\n const { option, setOption } = useContext(ItemContext)\n const { skuOption, skuCode } = useContext(SkuOptionChildrenContext)\n const handleChange: BaseInputComponentProps['onChange'] = (event) => {\n const val = event.target.value\n const options = has(option, `${skuCode}.${skuOption?.id}`)\n ? option[skuCode][`${skuOption?.id}`]['options']\n : {}\n const o = {\n [skuCode]: {\n ...option[skuCode],\n [`${skuOption?.id}`]: {\n skuOptionId: skuOption?.id,\n options: {\n ...options,\n [name]: val,\n },\n },\n },\n } as ItemOptions\n setOption && setOption(o)\n }\n return <BaseInput onChange={handleChange} {...props} />\n}\n\nSkuOptionInput.propTypes = propTypes\nSkuOptionInput.displayName = displayName\n\nexport default SkuOptionInput\n","import React, {\n FunctionComponent,\n useReducer,\n useContext,\n useEffect,\n ReactNode,\n} from 'react'\nimport SkuOptionsContext from '#context/SkuOptionsContext'\nimport skuOptionsReducer, {\n skuOptionsInitialState,\n} from '#reducers/SkuOptionsReducer'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport { isEmpty } from 'lodash'\nimport getCurrentItemKey from '#utils/getCurrentItemKey'\nimport ItemContext from '#context/ItemContext'\nimport { getSkuOptions } from '#reducers/SkuOptionsReducer'\nimport components from '#config/components'\n\nconst propTypes = components.SkuOptionsContainer.propTypes\nconst displayName = components.SkuOptionsContainer.displayName\n\ntype SkuOptionsContainerProp = {\n children: ReactNode\n skuCode?: string\n}\n\nconst SkuOptionsContainer: FunctionComponent<SkuOptionsContainerProp> = (\n props\n) => {\n const { skuCode, children } = props\n const [state, dispatch] = useReducer(\n skuOptionsReducer,\n skuOptionsInitialState\n )\n const config = useContext(CommerceLayerContext)\n const { item, items } = useContext(ItemContext)\n const sCode =\n !isEmpty(items) && skuCode\n ? items[skuCode]?.code\n : skuCode || getCurrentItemKey(item)\n const skuOptionsValue = { ...state, skuCode: sCode }\n useEffect(() => {\n if (sCode && item[sCode].skuOptions) {\n getSkuOptions({\n skuOptions: item[sCode].skuOptions()?.toArray(),\n dispatch,\n })\n }\n return (): void => {\n if (isEmpty(sCode)) {\n dispatch({\n type: 'setSkuOptions',\n payload: {\n skuOptions: [],\n },\n })\n }\n }\n }, [config, sCode])\n return (\n <SkuOptionsContext.Provider value={skuOptionsValue}>\n {children}\n </SkuOptionsContext.Provider>\n )\n}\n\nSkuOptionsContainer.propTypes = propTypes\nSkuOptionsContainer.displayName = displayName\n\nexport default SkuOptionsContainer\n","import { createContext } from 'react'\nimport { StockTransferCollection } from '@commercelayer/js-sdk'\n\nexport interface InitialStockTransferContext {\n stockTransfer: StockTransferCollection | Record<string, string>\n}\n\nconst initial: InitialStockTransferContext = {\n stockTransfer: {},\n}\n\nconst StockTransferChildrenContext = createContext<InitialStockTransferContext>(\n initial\n)\n\nexport default StockTransferChildrenContext\n","import React, {\n useContext,\n FunctionComponent,\n ReactNode,\n Fragment,\n} from 'react'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport components from '#config/components'\nimport ShipmentChildrenContext from '#context/ShipmentChildrenContext'\nimport StockTransferChildrenContext from '#context/StockTransferChildrenContext'\n\nconst propTypes = components.StockTransfer.propTypes\nconst displayName = components.StockTransfer.displayName\n\ntype StockTransferProps = {\n children: ReactNode\n} & JSX.IntrinsicElements['p']\n\nconst StockTransfer: FunctionComponent<StockTransferProps> = (props) => {\n const { children } = props\n const { lineItem } = useContext(LineItemChildrenContext)\n const { stockTransfers } = useContext(ShipmentChildrenContext)\n const components = stockTransfers\n ?.filter((stock) => stock.skuCode === lineItem.skuCode)\n .map((stockTransfer, k) => {\n const stockTransferProps = {\n stockTransfer,\n }\n return (\n <StockTransferChildrenContext.Provider\n key={k}\n value={stockTransferProps}\n >\n {children}\n </StockTransferChildrenContext.Provider>\n )\n })\n return <Fragment>{components}</Fragment>\n}\n\nStockTransfer.propTypes = propTypes\nStockTransfer.displayName = displayName\n\nexport default StockTransfer\n","import React, { useContext, FunctionComponent, ReactNode } from 'react'\nimport StockTransferChildrenContext from '#context/StockTransferChildrenContext'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\n\nconst propTypes = components.StockTransferField.propTypes\nconst displayName = components.StockTransferField.displayName\n\ntype StockTransferFieldChildrenProps = Omit<StockTransferFieldProps, 'children'>\n\nexport type StockTransferFieldType = 'quantity' | 'skuCode'\n\ntype StockTransferFieldProps = {\n children?: (props: StockTransferFieldChildrenProps) => ReactNode\n type: StockTransferFieldType\n} & JSX.IntrinsicElements['p']\n\nconst StockTransferField: FunctionComponent<StockTransferFieldProps> = (\n props\n) => {\n const { type } = props\n const { stockTransfer } = useContext(StockTransferChildrenContext)\n const text = stockTransfer ? stockTransfer[type] : ''\n const parentProps = {\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <p {...props}>{text}</p>\n )\n}\n\nStockTransferField.propTypes = propTypes\nStockTransferField.displayName = displayName\n\nexport default StockTransferField\n","import React, { FunctionComponent } from 'react'\nimport BaseOrderPrice from './utils/BaseOrderPrice'\nimport components from '#config/components'\nimport { BaseAmountComponent } from '#typings'\n\nconst propTypes = components.SubTotalAmount.propTypes\nconst defaultProps = components.SubTotalAmount.defaultProps\nconst displayName = components.SubTotalAmount.displayName\n\nconst SubTotalAmount: FunctionComponent<BaseAmountComponent> = (props) => {\n return <BaseOrderPrice base=\"amount\" type=\"subtotal\" {...props} />\n}\n\nSubTotalAmount.propTypes = propTypes\nSubTotalAmount.defaultProps = defaultProps\nSubTotalAmount.displayName = displayName\n\nexport default SubTotalAmount\n","import React, { FunctionComponent, ReactNode } from 'react'\nimport Parent from './utils/Parent'\nimport components from '#config/components'\nimport { FunctionChildren } from '#typings/index'\nimport isFunction from 'lodash/isFunction'\n\nconst propTypes = components.SubmitButton.propTypes\nconst defaultProps = components.SubmitButton.defaultProps\nconst displayName = components.SubmitButton.displayName\n\ntype SubmitButtonChildrenProps = FunctionChildren<\n Omit<SubmitButtonProps, 'children'>\n>\n\ntype SubmitButtonProps = {\n children?: SubmitButtonChildrenProps\n label?: string | ReactNode\n} & JSX.IntrinsicElements['button']\n\nconst SubmitButton: FunctionComponent<SubmitButtonProps> = (props) => {\n const { children, label = 'Submit', ...p } = props\n const parentProps = {\n ...p,\n label,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <button type=\"submit\" {...p}>\n {isFunction(label) ? label() : label}\n </button>\n )\n}\n\nSubmitButton.propTypes = propTypes\nSubmitButton.defaultProps = defaultProps\nSubmitButton.displayName = displayName\n\nexport default SubmitButton\n","import React, { FunctionComponent } from 'react'\nimport BaseOrderPrice from './utils/BaseOrderPrice'\nimport components from '#config/components'\nimport { BaseAmountComponent } from '#typings'\n\nconst propTypes = components.TaxesAmount.propTypes\nconst defaultProps = components.TaxesAmount.defaultProps\nconst displayName = components.TaxesAmount.displayName\n\nconst TaxesAmount: FunctionComponent<BaseAmountComponent> = (props) => {\n return <BaseOrderPrice base=\"amount\" type=\"totalTax\" {...props} />\n}\n\nTaxesAmount.propTypes = propTypes\nTaxesAmount.defaultProps = defaultProps\nTaxesAmount.displayName = displayName\n\nexport default TaxesAmount\n","import React, { FunctionComponent } from 'react'\nimport BaseOrderPrice from './utils/BaseOrderPrice'\nimport components from '#config/components'\nimport { BaseAmountComponent } from '#typings'\n\nconst propTypes = components.TotalAmount.propTypes\nconst defaultProps = components.TotalAmount.defaultProps\nconst displayName = components.TotalAmount.displayName\n\nconst TotalAmount: FunctionComponent<BaseAmountComponent> = (props) => {\n return <BaseOrderPrice base=\"totalAmount\" type=\"withTaxes\" {...props} />\n}\n\nTotalAmount.propTypes = propTypes\nTotalAmount.defaultProps = defaultProps\nTotalAmount.displayName = displayName\n\nexport default TotalAmount\n","import React, { Fragment, FunctionComponent, ReactNode } from 'react'\nimport { keys } from 'lodash'\n\nimport PropTypes from 'prop-types'\nimport { BaseSelectorType } from '#typings'\nimport { VariantsObject, SetSkuCode } from '#reducers/VariantReducer'\nimport { VariantOptions } from '#components/VariantSelector'\n\nexport const propTypes = {\n variants: PropTypes.any.isRequired,\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n code: PropTypes.string.isRequired,\n lineItem: PropTypes.shape({\n name: PropTypes.string.isRequired,\n imageUrl: PropTypes.string,\n }),\n }).isRequired\n ).isRequired,\n name: PropTypes.string,\n children: PropTypes.func,\n type: PropTypes.oneOf<BaseSelectorType>(['select', 'radio']),\n loader: PropTypes.element,\n placeholder: PropTypes.string,\n skuCode: PropTypes.string,\n}\n\nexport type VariantTemplateProps = {\n variants: VariantsObject | Record<string, any>\n handleChange?: SetSkuCode\n options: VariantOptions[]\n type?: BaseSelectorType\n loader?: ReactNode\n placeholder?: string\n skuCode?: string\n} & JSX.IntrinsicElements['input'] &\n JSX.IntrinsicElements['select']\n\nconst VariantTemplate: FunctionComponent<VariantTemplateProps> = (props) => {\n const {\n id,\n variants,\n type,\n placeholder,\n options,\n skuCode,\n handleChange,\n ...prs\n } = props\n const vars = keys(variants).map((v, k) => {\n const checked = skuCode === v\n return type === 'select' ? (\n <option\n key={variants[v].id}\n data-sku-id={variants[v].id}\n value={variants[v].code}\n >\n {options.length > 0 ? options[k].label : variants[v].name}\n </option>\n ) : (\n <Fragment key={variants[v].id}>\n <input\n id={id && `${id}-${k}`}\n defaultChecked={checked}\n type=\"radio\"\n value={variants[v].code}\n onChange={(e): void =>\n handleChange && handleChange(e.target.value, variants[v].id)\n }\n {...prs}\n />\n {options.length > 0 ? options[k].label : variants[v].name}\n </Fragment>\n )\n })\n if (type === 'select') {\n return (\n <select\n id={id}\n onChange={(e): void => {\n const v = e.target.value\n const i = e.target.selectedIndex\n const id = e.target[i].dataset.skuId as string\n handleChange && handleChange(v, id)\n }}\n value={skuCode || ''}\n {...prs}\n >\n <option disabled={!!skuCode}>{placeholder}</option>\n {vars}\n </select>\n )\n }\n return <Fragment>{vars}</Fragment>\n}\n\nVariantTemplate.propTypes = propTypes\n\nexport default VariantTemplate\n","import { SkuCollection } from '@commercelayer/js-sdk'\n\nconst getSkus = (prices: SkuCollection[]): Record<string, any> => {\n const obj: Record<string, any> = {}\n prices.map((sku) => {\n obj[sku.code] = sku\n })\n return obj\n}\n\nexport default getSkus\n","import CLayer, { SkuCollection } from '@commercelayer/js-sdk'\nimport { VariantOptions } from '#components/VariantSelector'\nimport { Dispatch } from 'react'\nimport baseReducer from '#utils/baseReducer'\nimport getErrorsByCollection from '#utils/getErrorsByCollection'\nimport getSkus from '#utils/getSkus'\nimport { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport { Items, CustomLineItem, SetCustomLineItems } from './ItemReducer'\nimport { BaseError } from '#typings/errors'\nimport { isEmpty, has } from 'lodash'\n\ntype SetSkuCodeVariantParams = {\n code: string\n id: string\n config: CommerceLayerConfig\n dispatch: Dispatch<VariantAction>\n setItem: ((item: Items) => void) | undefined\n}\n\nexport interface SetSkuCodeVariant {\n (params: SetSkuCodeVariantParams): void\n}\n\ntype SetVariantSkuCodesParams = {\n skuCodes: VariantOptions[]\n dispatch: Dispatch<VariantAction>\n setCustomLineItems?: SetCustomLineItems\n}\n\nexport interface SetVariantSkuCodes {\n (params: SetVariantSkuCodesParams): void\n}\n\nexport interface VariantsObject {\n [key: string]: SkuCollection\n}\n\nexport type SetSkuCode = (\n code: string,\n id: string,\n lineItem?: CustomLineItem\n) => void\n\nexport interface VariantPayload {\n loading?: boolean\n variants?: VariantsObject | Record<string, any>\n skuCodes?: string[]\n skuCode?: string\n errors?: BaseError[]\n currentSkuId?: string\n currentSkuInventory?: any\n currentQuantity?: number\n currentPrices?: SkuCollection[]\n setSkuCode?: SetSkuCode\n setSkuCodes?: (skuCodes: VariantOptions[]) => void\n}\n\nexport interface VariantState extends VariantPayload {\n skuCodes: string[]\n variants: VariantsObject | Record<string, any>\n}\n\nexport interface VariantAction {\n type: VariantActionType\n payload: VariantPayload\n}\n\nexport const setVariantSkuCodes: SetVariantSkuCodes = ({\n skuCodes,\n dispatch,\n setCustomLineItems,\n}) => {\n const lineItems: any = {}\n const sCodes = skuCodes.map((s) => {\n if (has(s, 'lineItem')) {\n lineItems[s.code] = s.lineItem\n }\n return s.code\n })\n if (!isEmpty(lineItems)) {\n setCustomLineItems && setCustomLineItems(lineItems)\n }\n dispatch({\n type: 'setSkuCodes',\n payload: { skuCodes: sCodes },\n })\n}\n\nexport interface UnsetVariantState {\n (dispatch: Dispatch<VariantAction>): void\n}\n\nexport const setSkuCode: SetSkuCodeVariant = (params) => {\n const { id, code, config, setItem, dispatch } = params\n if (id) {\n CLayer.Sku.withCredentials(config)\n .includes('skuOptions')\n .find(id)\n .then((s) => {\n setItem &&\n setItem({\n [`${code}`]: s,\n })\n })\n .catch((c) => {\n const errors = getErrorsByCollection(c, 'variant')\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n })\n }\n}\n\ntype GetVariantsParams = {\n config: CommerceLayerConfig\n state: VariantState\n skuCode: string\n dispatch: Dispatch<VariantAction>\n filters: Record<string, any>\n setItem: ((item: Items) => void) | undefined\n}\n\nexport interface GetVariants {\n (params: GetVariantsParams): void\n}\n\nexport const getVariants: GetVariants = (params) => {\n const { config, state, skuCode, dispatch, setItem, filters } = params\n CLayer.Sku.withCredentials(config)\n .where({ codeIn: state.skuCodes.join(','), ...filters })\n .all()\n .then((r) => {\n const skusObj = getSkus(r.toArray())\n if (skuCode) {\n setSkuCode({\n code: skusObj[skuCode].code,\n id: skusObj[skuCode].id,\n config,\n dispatch,\n setItem,\n })\n }\n dispatch({\n type: 'setVariants',\n payload: {\n variants: skusObj,\n },\n })\n dispatch({\n type: 'setLoading',\n payload: {\n loading: false,\n },\n })\n })\n .catch((c) => {\n const errors = getErrorsByCollection(c, 'variant')\n dispatch({\n type: 'setErrors',\n payload: {\n errors,\n },\n })\n })\n}\n\nexport const unsetVariantState: UnsetVariantState = (dispatch) => {\n dispatch({\n type: 'setSkuCode',\n payload: { skuCode: '' },\n })\n dispatch({\n type: 'setVariants',\n payload: { variants: {} },\n })\n dispatch({\n type: 'setLoading',\n payload: { loading: false },\n })\n}\n\nexport const variantInitialState: VariantState = {\n loading: false,\n variants: {},\n skuCodes: [],\n skuCode: '',\n errors: [],\n currentSkuId: '',\n currentSkuInventory: {\n available: false,\n quantity: 0,\n levels: [],\n },\n currentQuantity: 1,\n currentPrices: [],\n}\n\nexport type VariantActionType =\n | 'setLoading'\n | 'setVariants'\n | 'setSkuCodes'\n | 'setSkuCode'\n | 'setCurrentSkuId'\n | 'setCurrentSkuInventory'\n | 'setCurrentPrices'\n | 'setErrors'\n\nconst actionType: VariantActionType[] = [\n 'setLoading',\n 'setVariants',\n 'setSkuCodes',\n 'setSkuCode',\n 'setCurrentSkuId',\n 'setCurrentSkuInventory',\n 'setCurrentPrices',\n 'setErrors',\n]\n\nconst variantReducer = (\n state: VariantState,\n reducer: VariantAction\n): VariantState =>\n baseReducer<VariantState, VariantAction, VariantActionType[]>(\n state,\n reducer,\n actionType\n )\n\nexport default variantReducer\n","import { createContext } from 'react'\nimport { variantInitialState } from '#reducers/VariantReducer'\n\nconst VariantsContext = createContext(variantInitialState)\n\nexport default VariantsContext\n","import React, {\n Fragment,\n FunctionComponent,\n useContext,\n useEffect,\n ReactElement,\n ReactNode,\n} from 'react'\nimport VariantTemplate from './utils/VariantTemplate'\nimport Parent from './utils/Parent'\nimport VariantsContext from '#context/VariantsContext'\nimport components from '#config/components'\nimport { BaseSelectorType } from '#typings'\nimport { FunctionChildren } from '#typings/index'\nimport { VariantsObject, SetSkuCode } from '#reducers/VariantReducer'\n\nconst propTypes = components.VariantSelector.propTypes\nconst defaultProps = components.VariantSelector.defaultProps\nconst displayName = components.VariantSelector.displayName\n\nexport interface VariantOptions {\n label: string\n code: string\n lineItem?: {\n name: string\n imageUrl?: string | null\n } | null\n}\n\ntype VariantSelectorChildrenProps = FunctionChildren<\n Omit<VariantSelectorProps, 'children'> & {\n variants: VariantsObject\n handleSelect: SetSkuCode\n loading: boolean\n }\n>\n\ntype VariantSelectorProps = {\n children?: VariantSelectorChildrenProps\n options: VariantOptions[]\n type?: BaseSelectorType\n loader?: ReactNode\n placeholder?: string\n skuCode?: string\n} & JSX.IntrinsicElements['input'] &\n JSX.IntrinsicElements['select']\n\nconst VariantSelector: FunctionComponent<VariantSelectorProps> = (props) => {\n const { children, type, placeholder, skuCode, name, options, ...prs } = props\n const {\n setSkuCode,\n skuCode: variantSkuCode,\n loading,\n variants,\n setSkuCodes,\n } = useContext(VariantsContext)\n useEffect(() => {\n setSkuCodes && setSkuCodes(options)\n return (): void => {\n setSkuCodes && setSkuCodes([])\n }\n }, [options])\n const sCode = variantSkuCode || skuCode || ''\n const DefaultTemplate = (): ReactElement =>\n loading ? (\n <Fragment>{props.loader || 'Loading...'}</Fragment>\n ) : (\n <VariantTemplate\n variants={variants}\n type={type}\n placeholder={placeholder as string}\n skuCode={sCode}\n options={options}\n handleChange={setSkuCode}\n name={name as string}\n {...prs}\n />\n )\n const parentProps = {\n variants,\n loading: !!loading,\n handleSelect: setSkuCode,\n skuCode: sCode,\n ...props,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <Fragment>\n <DefaultTemplate />\n </Fragment>\n )\n}\n\nVariantSelector.propTypes = propTypes\nVariantSelector.defaultProps = defaultProps\nVariantSelector.displayName = displayName\n\nexport default VariantSelector\n","import React, {\n useEffect,\n FunctionComponent,\n useReducer,\n useContext,\n ReactNode,\n} from 'react'\nimport variantReducer, {\n variantInitialState,\n unsetVariantState,\n setSkuCode,\n getVariants,\n} from '#reducers/VariantReducer'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport VariantsContext from '#context/VariantsContext'\nimport { VariantState } from '#reducers/VariantReducer'\nimport { setVariantSkuCodes } from '#reducers/VariantReducer'\nimport { isEmpty, isEqual } from 'lodash'\n\nimport getCurrentItemKey from '#utils/getCurrentItemKey'\nimport ItemContext from '#context/ItemContext'\nimport components from '#config/components'\n\nconst propTypes = components.VariantsContainer.propTypes\nconst defaultProps = components.VariantsContainer.defaultProps\nconst displayName = components.VariantsContainer.displayName\n\ntype VariantsContainerProps = {\n children: ReactNode\n filters?: Record<string, any>\n skuCode?: string\n}\n\nconst VariantsContainer: FunctionComponent<VariantsContainerProps> = (\n props\n) => {\n const { children, skuCode = '', filters = {} } = props\n const config = useContext(CommerceLayerContext)\n const {\n setItem,\n setItems,\n items,\n item: currentItem,\n setCustomLineItems,\n skuCode: itemSkuCode,\n } = useContext(ItemContext)\n const [state, dispatch] = useReducer(variantReducer, variantInitialState)\n const sCode =\n getCurrentItemKey(currentItem) ||\n skuCode ||\n state.skuCode ||\n itemSkuCode ||\n ''\n useEffect(() => {\n if (!isEmpty(items) && !isEmpty(state.variants)) {\n if (!isEqual(items, state.variants)) {\n const mergeItems = { ...items, ...state.variants }\n setItems && setItems(mergeItems)\n }\n }\n if (state.skuCodes.length >= 1 && config.accessToken) {\n dispatch({\n type: 'setLoading',\n payload: { loading: true },\n })\n getVariants({\n config,\n state,\n dispatch,\n setItem,\n skuCode: sCode,\n filters,\n })\n }\n return (): void => unsetVariantState(dispatch)\n }, [config])\n const variantValue: VariantState = {\n ...state,\n skuCode: sCode,\n setSkuCode: (code, id, lineItem = {}) => {\n if (!isEmpty(lineItem)) {\n setCustomLineItems && setCustomLineItems({ [code]: lineItem })\n }\n setSkuCode({\n code,\n id,\n config,\n setItem,\n dispatch,\n })\n },\n setSkuCodes: (skuCodes) =>\n setVariantSkuCodes({ skuCodes, dispatch, setCustomLineItems }),\n }\n return (\n <VariantsContext.Provider value={variantValue}>\n {children}\n </VariantsContext.Provider>\n )\n}\n\nVariantsContainer.propTypes = propTypes\nVariantsContainer.defaultProps = defaultProps\nVariantsContainer.displayName = displayName\n\nexport default VariantsContainer\n"],"names":["PProps","children","PropTypes","func","Parent","props","Child","React","propTypes","undefined","baseReducer","state","action","actionTypes","actions","indexOf","type","data","payload","ERROR_CODES","transformCode","code","newCode","map","c","checkCode","words","split","w","rgx","RegExp","m","match","length","push","getErrorCodeByString","text","codes","search","getErrorsByCollection","collection","resourceType","options","errors","isFunction","empty","toArray","error","e","id","get","field","resource","message","isArray","actionType","createOrder","params","persistKey","dispatch","config","metadata","orderMetadata","orderAttributes","setLocalOrder","orderId","CLayer","Order","withCredentials","create","o","order","getApiOrder","clearWhenPlaced","deleteLocalOrder","find","status","setOrder","addToCart","skuCode","skuId","quantity","option","lineItem","build","name","imageUrl","attrs","_updateQuantity","Sku","LineItem","lineItemResource","isEmpty","opt","skuOptionId","skuOption","SkuOption","LineItemOption","size","success","unsetOrderState","setOrderErrors","saveAddressToCustomerAddressBook","value","setGiftCardOrCouponCode","update","giftCardOrCouponCode","removeGiftCardOrCouponCode","codeType","orderInitialState","loading","orderReducer","reducer","OrderContext","createContext","initialItemContext","item","items","prices","lineItems","ItemContext","getCurrentItemKey","first","keys","checkChildrenTypes","propName","componentName","cpName","replace","Error","Children","itemTypes","components","errorMsg","join","has","displayName","childComponentName","includes","isValidElement","childrenTypes","location","propFullName","isRequired","BC","string","className","style","object","PTLoader","oneOfType","element","BaseSelectComponentPropTypes","arrayOf","shape","label","number","selected","bool","placeholder","BaseInputComponentPropTypes","oneOf","onChange","BMObject","objectOf","baseOrderPricePropTypes","base","format","baseOrderComponentPricePropTypes","CEType","REType","BaseErrorObject","ErrorPropTypes","Address","permittedChildren","AddressCountrySelector","required","defaultProps","AddressField","AddressInput","disabled","AddToCartButton","AddressesContainer","shipToDifferentAddress","AvailabilityContainer","AvailabilityTemplate","timeFormat","showShippingMethodName","BillingAddressContainer","BillingAddressForm","CheckoutLink","CommerceLayer","accessToken","endpoint","CustomerContainer","isGuest","CustomerField","CustomerInput","saveOnBlur","DeliveryLeadTime","DiscountAmount","Errors","messages","ExternalFunction","url","GiftCard","onSubmit","GiftCardAmount","GiftCardContainer","GiftCardCurrencySelector","GiftCardInput","GiftCardOrCouponForm","GiftCardOrCouponInput","GiftCardOrCouponSubmit","GiftCardOrCouponCode","GiftCardOrCouponRemoveButton","ItemContainer","LineItemAmount","LineItemImage","width","LineItemName","LineItemSkuCode","valueClassName","LineItemOptions","title","showName","LineItemQuantity","max","readonly","LineItemRemoveLink","LineItemsContainer","filters","loader","LineItemsCount","MetadataInput","OrderContainer","attributes","OrderList","OrderNumber","OrderStorage","PaymentMethod","PaymentMethodAmount","PaymentMethodName","PaymentMethodPrice","PaymentMethodRadioButton","PaymentMethodsContainer","PaymentSource","PaymentSourceBrandIcon","height","src","PaymentSourceBrandName","PaymentSourceEditButton","PaymentSourceDetail","PlaceOrderButton","PlaceOrderContainer","Price","compareClassName","showCompare","PricesContainer","perPage","PrivacyAndTermsCheckbox","QuantitySelector","min","SaveAddressesButton","onClick","Shipment","ShipmentField","ShipmentsContainer","ShippingAddressContainer","SaveCustomerButton","ShippingAddressForm","ShippingAmount","ShippingMethod","ShippingMethodName","ShippingMethodRadioButton","ShippingMethodPrice","SkuList","SkuListsContainer","SkuOptionInput","SkuOptionsContainer","StockTransfer","StockTransferField","SubmitButton","SubTotalAmount","TaxesAmount","TotalAmount","VariantsContainer","VariantSelector","skuListsInitialState","listIds","skuLists","getSkuList","select","skus","skuList","skuCodes","sku","console","skuListsReducer","SkuListsContext","callExternalFunction","axios","post","ExternalFunctionContext","skuListId","p","useContext","getOrder","lineItemContext","itemSkuCode","sCode","handleClick","qty","customLineItem","slQty","_update_quantity","inputs","then","res","response","autoDisabled","parentProps","initial","address","AddressChildrenContext","saveCustomerUser","customerEmail","setCustomerErrors","setCustomerEmail","getCustomerAddresses","CustomerAddress","all","customerAddresses","addresses","customerAddress","getCustomerPaymentSources","availableCustomerPaymentSources","load","payments","getCustomerOrders","jwtDecode","owner","Customer","rawResponse","getOrders","email","orders","included","filter","customerInitialState","customerReducer","defaultCustomerContext","CustomerContext","defaultBillingAddressContext","setBillingAddress","BillingAddressContext","defaultShippingAddressContext","ShippingAddressContext","addressFields","addressInitialState","setAddressErrors","setAddress","values","setCloneAddress","saveAddresses","billingAddress","shippingAddress","billingAddressId","shippingAddressId","currentBillingAddressRef","reference","_billingAddressCloneId","_shippingAddressCloneId","_shippingAddressSameAsBilling","addressReducer","defaultAddressContext","AddressesContext","selectedClassName","disabledClassName","onSelect","deselect","addressesContext","billingCustomerAddressId","setShippingAddress","shippingCustomerAddressId","AddressContext","useState","setSelected","useEffect","k","preselected","customerAddressId","disabledSaveButton","handleSelect","addressId","addressProps","countryLock","shippingCountryCodeLock","countryCode","selectedClass","addressSelectedClass","finalClassName","Fragment","BaseSelect","ref","findIndex","unshift","Options","forwardRef","BillingAddressFormContext","ShippingAddressFormContext","hasError","setHasError","setValue","errorClassName","classNameComputed","validation","countriesOptions","key","camelCase","BaseInput","input","requiresBillingInfo","cache","CommerceLayerContext","useReducer","contextValue","availabilityInitialState","days","hours","getAvailability","where","codeIn","inventorySku","firstLevel","inventory","levels","firstDelivery","deliveryLeadTimes","typeAction","availabilityReducer","AvailabilityContext","LineItemChildrenContext","shippingMethod","mn","mx","billingAddressInitialState","setBillingCustomerAddressId","loadBillingAddress","billingAddressReducer","getLocalOrder","localStorage","getItem","setItem","removeItem","OrderStorageContext","autoComplete","reset","useRapidForm","resetForm","useRef","formErrors","fieldName","checked","current","target","providerValues","checkoutUrl","useMemo","onBlur","handleOnBlur","deliveryLeadTimeForShipment","ShippingMethodChildrenContext","setText","getAmount","args","obj","v","toLowerCase","typeOne","typeTwo","typeThree","typeFourth","BaseOrderPrice","price","setPrice","cents","setCents","priceCents","giftCardInitialState","currencyCode","balanceCent","singleUse","rechargeable","expiresAt","addGiftCardRecipient","GiftCardRecipient","recipient","giftCardRecipient","addGiftCardLoading","addGiftCard","firstName","lastName","val","giftCardValue","recipientEmail","recipientValues","giftCard","addGiftCardError","giftCardReducer","GiftCardContext","customMessages","i","pick","getAllErrors","allErrors","returnHtml","objMsg","LineItemContext","dynamicNaming","_type","resourceKey","startCase","lastIndex","lastItem","last","setLoading","setPaymentRef","currentPaymentMethodRef","paymentMethodInitialState","setPaymentMethodErrors","getPaymentMethods","paymentMethods","loadAvailablePaymentMethods","loadPaymentMethod","paymentMethod","paymentSource","currentPaymentMethodId","currentPaymentMethodType","paymentSourceType","setPaymentMethod","paymentMethodId","paymentResource","patchOrder","save","setPaymentSource","customerPaymentSourceId","paymentSourceId","resourceSdk","_customerPaymentSourceId","loadPaymentSource","destroyPaymentSource","setPaymentMethodConfig","getPaymentConfig","paymentMethodReducer","defaultPaymentMethodContext","PaymentMethodContext","PaymentMethodChildrenContext","payment","orderErrors","giftCardErrors","lineItemErrors","addressErrors","customerErrors","paymentMethodErrors","msgErrors","EMAIL_PATTERN","validateValue","isString","validateFormFields","fields","isTick","attrName","getAttribute","isMetadata","fieldsExist","schema","without","handleSubmit","preventDefault","currentForm","elements","currencyOptions","couponCode","hide","CouponAndGiftCardFormContext","inputName","err","dropWhile","setItemState","itemInitialState","itemReducer","setItems","setQuantity","setOption","setPrices","setCustomLineItems","itemValue","shippingMethods","stockTransfers","keyNumber","ShipmentChildrenContext","shipmentLineItems","l","itemType","lineProps","parenProps","labelName","lineItemOption","LineItemOptionChildrenContext","isJSON","str","JSON","parse","tagElement","tagContainer","showAll","TagElement","TagContainer","stringify","lineItemOptions","showTitle","valueProps","updateLineItem","handleChange","Number","deleteLineItem","handleRemove","getLineItems","allLineItems","colResp","pageCount","hasNextPage","index","nextPage","nextItems","lineItemId","destroy","destroyLineItem","lineItemInitialState","lineItemReducer","lineItemValue","getLineItemsCount","typeAccept","localOrder","orderValue","row","showActions","OrderListChildrenContext","scrollbarWidth","document","scrollDiv","createElement","setAttribute","body","appendChild","offsetWidth","clientWidth","removeChild","sortDescIcon","sortAscIcon","columns","loadingElement","actionsComponent","actionsContainerClassName","infiniteScroll","windowOptions","cols","tablePlugins","useSortBy","useBlockLayout","defaultColumn","column","table","useTable","TableHtmlElement","TheadHtmlElement","TbodyHtmlElement","ThHtmlElement","TrHtmlElement","scrollBarSize","LoadingComponent","headerComponent","headerGroups","headerGroup","headers","getHeaderProps","getSortByToggleProps","titleClassName","render","isSorted","isSortedDesc","getHeaderGroupProps","rows","prepareRow","childProps","getRowProps","useCallback","getTableProps","getTableBodyProps","FixedSizeList","itemSize","totalColumnsWidth","isDate","isNaN","Date","OrderListRow","cell","cells","isLastRow","ActionRow","cellValue","toLocaleString","getCellProps","BaseField","attribute","setField","getLoaderComponent","Loader","activeClass","clickableContainer","paymentSelected","setPaymentSelected","setLoadingPlaceOrder","isActive","paymentMethodProps","onClickable","htmlFor","labelFree","setPriceCents","handleOnChange","credentials","defaultPaymentSourceContext","PaymentSourceContext","getPaypalConfig","defaultMessage","PaypalPayment","infoMessage","approvalUrl","onsubmit","card","brand","last4","defaultOptions","fontSize","color","invalid","hidePostalCode","StripePaymentForm","templateCustomerSaveToWallet","stripe","useStripe","useElements","event","savePaymentSourceToCustomerWallet","cardElement","getElement","CardElement","billingInfo","billing_details","fullName","phone","city","country","line1","postal_code","zipCode","stateCode","createPaymentMethod","clientSecret","confirmCardPayment","payment_method","paymentIntent","setup_future_usage","StripePayment","publishableKey","show","locale","isLoaded","setIsLoaded","containerClassName","fonts","divProps","require","loadStripe","Elements","WireTransferPayment","PaymentGateway","showCard","handleEditClick","templateCustomerCards","onClickCustomerCards","loaderComponent","languageCode","stripeConfig","customerPayments","customerPayment","customerPaymentsCards","wireTransferConfig","paypalConfig","setShow","setShowCard","gatewayProps","defaultSrc","handleError","brandName","capitalize","shipmentsFilled","shipments","Promise","shipment","checking","filled","compact","placeOrderInitialState","isPermitted","setPlaceOrderErrors","placeOrderPermitted","privacyUrl","termsUrl","loadShippingAddress","loadShipments","totalAmountWithTaxesCents","paymentType","paymentSecret","paymentId","setPlaceOrder","placed","paypalPayerId","window","href","paypalPayment","updateAttributes","_place","saveBillingAddressToCustomerAddressBook","_saveBillingAddressToCustomerAddressBook","saveShippingAddressToCustomerAddressBook","_saveShippingAddressToCustomerAddressBook","_savePaymentSourceToCustomerWallet","u","placeOrderReducer","defaultPlaceOrderContext","PlaceOrderContext","notPermitted","setNotPermitted","forceDisable","setForceDisable","isValid","disabledButton","formattedAmount","formattedCompare","PriceTemplate","getPricesComponent","skuPrices","compareAtAmountCents","amountCents","formattedCompareAtAmount","getPrices","forEach","priceInitialState","getSkusPrice","allPrices","skuCodeIn","r","pricesObj","meta","getMetaInfo","col","unsetPriceState","priceReducer","PricesContext","pricesSkuCode","setSkuCodes","setSkuPrices","pricesComponent","currentItem","priceValue","forceDisabled","setForceDisabled","setChecked","setDisabled","maxInv","valid","handleBlur","resetVal","billingAddressController","billingDisable","shippingAddressController","shippingDisable","countryLockController","countryCodeLock","addressLocked","a","countryLockDisable","disable","shipmentInitialState","setShipmentErrors","getShipments","setShippingMethod","shipmentId","shippingMethodId","shipmentReducer","defaultShipmentContext","ShipmentContext","shipmentLineItem","availableShippingMethods","currentShippingMethodId","times","time","stockLocation","shipmentProps","shippingAddressInitialState","setShippingCustomerAddressId","shippingAddressReducer","emptyText","methods","s","delivery","deliveryShippingMethodId","shippingProps","labelFreeOver","freeOverAmountCents","setFreeOverAmountCents","isNumber","totalAmountCents","SkuOptionChildrenContext","getSkuOptions","skuOptions","skuOptionsInitialState","skuOptionsReducer","SkuOptionsContext","skuOptionsValue","stockTransfer","StockTransferChildrenContext","stock","stockTransferProps","variants","any","VariantTemplate","prs","vars","selectedIndex","dataset","getSkus","setVariantSkuCodes","sCodes","setSkuCode","getVariants","skusObj","unsetVariantState","variantInitialState","currentSkuId","currentSkuInventory","available","currentQuantity","currentPrices","variantReducer","VariantsContext","variantSkuCode","DefaultTemplate","isEqual","mergeItems","variantValue"],"mappings":"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"}