@shopgate/engage 7.27.3-alpha.17 → 7.27.3-alpha.19

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 (1300) hide show
  1. package/a11y/action-creators/index.js +9 -0
  2. package/a11y/components/FocusTrap/index.js +1 -0
  3. package/a11y/components/LiveMessage/index.js +1 -1
  4. package/a11y/components/LiveMessenger/helpers.js +1 -1
  5. package/a11y/components/LiveMessenger/index.js +2 -2
  6. package/a11y/components/ModalStateTracker/index.js +14 -0
  7. package/a11y/components/Navigation/index.js +1 -1
  8. package/a11y/components/Section/index.js +3 -3
  9. package/a11y/components/VisuallyHidden/index.js +1 -1
  10. package/a11y/components/index.js +1 -1
  11. package/a11y/constants/index.js +1 -0
  12. package/a11y/helpers/index.js +1 -0
  13. package/a11y/hooks/index.js +37 -0
  14. package/a11y/index.js +1 -4
  15. package/a11y/reducers/index.js +6 -0
  16. package/a11y/selectors/index.js +8 -0
  17. package/a11y/styles.js +2 -0
  18. package/account/actions/addContacts.js +4 -0
  19. package/account/actions/deleteContact.js +5 -0
  20. package/account/actions/deleteCustomer.js +4 -0
  21. package/account/actions/fetchContacts.js +4 -0
  22. package/account/actions/fetchCustomer.js +4 -0
  23. package/account/actions/updateContact.js +4 -0
  24. package/account/actions/updateCustomer.js +4 -0
  25. package/account/components/Account/Account.connector.js +5 -0
  26. package/account/components/Account/Account.js +4 -0
  27. package/account/components/Account/Account.style.js +1 -0
  28. package/account/components/Account/index.js +1 -0
  29. package/account/components/Profile/Profile.config.js +11 -0
  30. package/account/components/Profile/Profile.constraints.js +1 -0
  31. package/account/components/Profile/Profile.js +1 -0
  32. package/account/components/Profile/Profile.provider.js +22 -0
  33. package/account/components/Profile/ProfileAddressBook.js +6 -0
  34. package/account/components/Profile/ProfileAddressCard.js +3 -0
  35. package/account/components/Profile/ProfileForm.js +3 -0
  36. package/account/components/Profile/ProfileHeader.js +3 -0
  37. package/account/components/Profile/index.js +1 -0
  38. package/account/components/ProfileContact/ProfileContact.config.js +11 -0
  39. package/account/components/ProfileContact/ProfileContact.constraints.js +5 -0
  40. package/account/components/ProfileContact/ProfileContact.js +13 -0
  41. package/account/components/ProfileContact/index.js +1 -0
  42. package/account/components/index.js +1 -0
  43. package/account/constants/actions.js +1 -0
  44. package/account/constants/index.js +1 -1
  45. package/account/constants/pipelines.js +1 -0
  46. package/account/helper/form.js +61 -0
  47. package/account/index.js +1 -1
  48. package/account/reducers/index.js +6 -0
  49. package/account/selectors/contacts.js +7 -0
  50. package/account/selectors/customer.js +7 -0
  51. package/app-rating/actions/showModal.js +3 -3
  52. package/app-rating/helpers/index.js +1 -1
  53. package/app-rating/subscriptions/index.js +11 -6
  54. package/back-in-stock/actions/index.js +1 -1
  55. package/back-in-stock/components/BackInStockButton/index.js +3 -3
  56. package/back-in-stock/components/CharacteristicsButton/index.js +1 -1
  57. package/back-in-stock/components/ProductInfoBackInStockButton/index.js +1 -1
  58. package/back-in-stock/components/Subscriptions/components/List/index.js +2 -2
  59. package/back-in-stock/components/Subscriptions/components/Subscription/index.js +2 -2
  60. package/back-in-stock/components/Subscriptions/index.js +1 -1
  61. package/back-in-stock/providers/BackInStockSubscriptionsProvider.context.js +1 -1
  62. package/back-in-stock/providers/BackInStockSubscriptionsProvider.js +1 -1
  63. package/back-in-stock/selectors/index.js +5 -3
  64. package/back-in-stock/streams/index.js +1 -1
  65. package/back-in-stock/subscriptions/index.js +2 -2
  66. package/cart/cart.constants.js +1 -0
  67. package/cart/cart.context.js +1 -0
  68. package/cart/cart.helpers.js +15 -0
  69. package/cart/cart.hooks.js +4 -0
  70. package/cart/cart.selectors.js +34 -0
  71. package/cart/cart.types.js +1 -0
  72. package/cart/components/CartHeaderWide/CartHeaderWide.js +3 -0
  73. package/cart/components/CartHeaderWide/CartHeaderWide.style.js +1 -0
  74. package/cart/components/CartHeaderWide/index.js +1 -0
  75. package/cart/components/CartItem/CartItem.hooks.js +7 -0
  76. package/cart/components/CartItem/CartItem.js +7 -0
  77. package/cart/components/CartItem/CartItem.style.js +1 -0
  78. package/cart/components/CartItem/CartItemCoupon.connector.js +7 -0
  79. package/cart/components/CartItem/CartItemCoupon.js +20 -0
  80. package/cart/components/CartItem/CartItemCoupon.style.js +5 -0
  81. package/cart/components/CartItem/CartItemCoupon.types.js +0 -0
  82. package/cart/components/CartItem/CartItemCouponCode.js +5 -0
  83. package/cart/components/CartItem/CartItemCouponDelete.js +5 -0
  84. package/cart/components/CartItem/CartItemCouponDelete.style.js +1 -0
  85. package/cart/components/CartItem/CartItemCouponFreeShipping.js +5 -0
  86. package/cart/components/CartItem/CartItemCouponIcon.js +4 -0
  87. package/cart/components/CartItem/CartItemCouponLayout.js +6 -0
  88. package/cart/components/CartItem/CartItemCouponLayout.style.js +5 -0
  89. package/cart/components/CartItem/CartItemCouponPrice.js +5 -0
  90. package/cart/components/CartItem/CartItemCouponPrice.style.js +1 -0
  91. package/cart/components/CartItem/CartItemCouponTitle.js +5 -0
  92. package/cart/components/CartItem/CartItemCouponTitle.style.js +1 -0
  93. package/cart/components/CartItem/CartItemProduct.js +5 -0
  94. package/cart/components/CartItem/CartItemProduct.style.js +1 -0
  95. package/cart/components/CartItem/CartItemProductLayout.js +6 -0
  96. package/cart/components/CartItem/CartItemProductLayout.style.js +1 -0
  97. package/cart/components/CartItem/CartItemProductLayoutWide.js +4 -0
  98. package/cart/components/CartItem/CartItemProductLayoutWide.style.js +1 -0
  99. package/cart/components/CartItem/CartItemProductLayoutWideFulfillmentLabel.js +4 -0
  100. package/cart/components/CartItem/CartItemProductLayoutWideFulfillmentLabel.style.js +1 -0
  101. package/cart/components/CartItem/CartItemProductLayoutWideOrderDetails.js +3 -0
  102. package/cart/components/CartItem/CartItemProductLayoutWideRemoveItem.js +4 -0
  103. package/cart/components/CartItem/CartItemProductLayoutWideRemoveItem.style.js +1 -0
  104. package/cart/components/CartItem/CartItemProductOrderDetails.js +3 -0
  105. package/cart/components/CartItem/CartItemProductOrderDetails.style.js +1 -0
  106. package/cart/components/CartItem/CartItemProductPriceCaption.js +4 -0
  107. package/cart/components/CartItem/CartItemProductPriceCaption.style.js +1 -0
  108. package/cart/components/CartItem/CartItemProductPriceList.js +5 -0
  109. package/cart/components/CartItem/CartItemProductPriceListPromotion.js +10 -0
  110. package/cart/components/CartItem/CartItemProductProvider.connector.js +9 -0
  111. package/cart/components/CartItem/CartItemProductProvider.context.js +1 -0
  112. package/cart/components/CartItem/CartItemProductProvider.js +12 -0
  113. package/cart/components/CartItem/CartItemProductProvider.types.js +1 -0
  114. package/cart/components/CartItem/CartItemProductProviderLegacy.js +22 -0
  115. package/cart/components/CartItem/CartItemProductTitle.js +7 -0
  116. package/cart/components/CartItem/CartItemProductTitle.style.js +1 -0
  117. package/cart/components/CartItem/CartItemProvider.connector.js +3 -0
  118. package/cart/components/CartItem/CartItemProvider.context.js +1 -0
  119. package/cart/components/CartItem/CartItemProvider.js +5 -0
  120. package/cart/components/CartItem/CartItemQuantityPicker.js +38 -0
  121. package/cart/components/CartItem/CartItemQuantityPicker.style.js +1 -0
  122. package/cart/components/CartItem/CartItemSubstitution.connector.js +5 -0
  123. package/cart/components/CartItem/CartItemSubstitution.js +5 -0
  124. package/cart/components/CartItem/CartItemSubstitution.style.js +1 -0
  125. package/cart/components/CartItem/index.js +1 -0
  126. package/cart/components/CartItems/CartItem.connector.js +4 -0
  127. package/cart/components/CartItems/CartItemCard.js +5 -0
  128. package/cart/components/CartItems/CartItemCard.style.js +1 -0
  129. package/cart/components/CartItems/CartItemCardReservation.js +5 -0
  130. package/cart/components/CartItems/CartItemCardReservationAccordion.js +4 -0
  131. package/cart/components/CartItems/CartItemCardReservationLabel.js +5 -0
  132. package/cart/components/CartItems/CartItemCardReservationLabelChangeStore.js +3 -0
  133. package/cart/components/CartItems/CartItemCardReservationLabelChangeStore.style.js +1 -0
  134. package/cart/components/CartItems/CartItemGroup.js +5 -0
  135. package/cart/components/CartItems/CartItemGroup.style.js +1 -0
  136. package/cart/components/CartItems/CartItemGroupReservation.js +5 -0
  137. package/cart/components/CartItems/CartItemGroupReservationLabel.js +5 -0
  138. package/cart/components/CartItems/CartItemGroupShipping.js +4 -0
  139. package/cart/components/CartItems/CartItems.js +5 -0
  140. package/cart/components/CartItems/CartItems.style.js +1 -0
  141. package/cart/components/CartItems/CartItemsHeaderWide.connector.js +3 -0
  142. package/cart/components/CartItems/CartItemsHeaderWide.js +3 -0
  143. package/cart/components/CartItems/CartItemsHeaderWide.style.js +1 -0
  144. package/cart/components/CartItems/CartItemsSubscription.connector.js +5 -0
  145. package/cart/components/CartItems/CartItemsSubstitution.js +5 -0
  146. package/cart/components/CartItems/index.js +1 -0
  147. package/cart/components/CartSummaryWide/CartSummaryWide.connector.js +4 -0
  148. package/cart/components/CartSummaryWide/CartSummaryWide.js +4 -0
  149. package/cart/components/CartSummaryWide/CartSummaryWide.style.js +1 -0
  150. package/cart/components/CartSummaryWide/CartSummaryWideCheckoutButton.connector.js +5 -0
  151. package/cart/components/CartSummaryWide/CartSummaryWideCheckoutButton.js +4 -0
  152. package/cart/components/CartSummaryWide/CartSummaryWideCheckoutButton.style.js +1 -0
  153. package/cart/components/CartSummaryWide/CartSummaryWideFooter.js +3 -0
  154. package/cart/components/CartSummaryWide/index.js +1 -0
  155. package/cart/components/PaymentBar/PaymentBar.js +5 -0
  156. package/cart/components/PaymentBar/PaymentBarAppliedPromotions.connector.js +5 -0
  157. package/cart/components/PaymentBar/PaymentBarAppliedPromotions.js +3 -0
  158. package/cart/components/PaymentBar/PaymentBarCheckoutButton.connector.js +5 -0
  159. package/cart/components/PaymentBar/PaymentBarCheckoutButton.js +5 -0
  160. package/cart/components/PaymentBar/PaymentBarCheckoutButton.style.js +1 -0
  161. package/cart/components/PaymentBar/PaymentBarContent.js +4 -0
  162. package/cart/components/PaymentBar/PaymentBarContent.style.js +1 -0
  163. package/cart/components/PaymentBar/PaymentBarDiscounts.connector.js +5 -0
  164. package/cart/components/PaymentBar/PaymentBarDiscounts.js +4 -0
  165. package/cart/components/PaymentBar/PaymentBarGrandTotal.connector.js +5 -0
  166. package/cart/components/PaymentBar/PaymentBarGrandTotal.js +4 -0
  167. package/cart/components/PaymentBar/PaymentBarPromotionCouponMessages.js +4 -0
  168. package/cart/components/PaymentBar/PaymentBarPromotionCoupons.connector.js +8 -0
  169. package/cart/components/PaymentBar/PaymentBarPromotionCoupons.js +3 -0
  170. package/cart/components/PaymentBar/PaymentBarPromotionalText.js +4 -0
  171. package/cart/components/PaymentBar/PaymentBarReserveButton.connector.js +1 -0
  172. package/cart/components/PaymentBar/PaymentBarReserveButton.js +7 -0
  173. package/cart/components/PaymentBar/PaymentBarShippingCost.connector.js +5 -0
  174. package/cart/components/PaymentBar/PaymentBarShippingCost.js +3 -0
  175. package/cart/components/PaymentBar/PaymentBarSubTotal.connector.js +5 -0
  176. package/cart/components/PaymentBar/PaymentBarSubTotal.js +3 -0
  177. package/cart/components/PaymentBar/PaymentBarTax.connector.js +5 -0
  178. package/cart/components/PaymentBar/PaymentBarTax.js +4 -0
  179. package/cart/components/PaymentBar/index.js +1 -0
  180. package/cart/components/Substitution/connector.js +5 -0
  181. package/cart/components/Substitution/index.js +9 -0
  182. package/cart/components/Substitution/style.js +1 -0
  183. package/cart/components/SupplementalContent/SupplementalContent.connector.js +4 -0
  184. package/cart/components/SupplementalContent/SupplementalContent.js +5 -0
  185. package/cart/components/SupplementalContent/SupplementalContent.styles.js +1 -0
  186. package/cart/components/SupplementalContent/index.js +1 -0
  187. package/cart/index.js +10 -5
  188. package/cart/streams/index.js +1 -0
  189. package/category/actions/index.js +1 -0
  190. package/category/components/CategoryImage/connector.js +5 -0
  191. package/category/components/CategoryImage/index.js +5 -0
  192. package/category/components/CategoryList/index.js +2 -2
  193. package/category/components/CategoryList/style.js +1 -1
  194. package/category/components/index.js +1 -0
  195. package/category/constants/index.js +1 -0
  196. package/category/helpers/index.js +1 -0
  197. package/category/index.js +1 -7
  198. package/category/selectors/index.js +2 -0
  199. package/category/streams/index.js +1 -0
  200. package/checkout/action-creators/addCheckoutCampaign.js +5 -0
  201. package/checkout/action-creators/clearCheckoutCampaign.js +5 -0
  202. package/checkout/action-creators/clearCheckoutOrder.js +4 -0
  203. package/checkout/action-creators/index.js +1 -0
  204. package/checkout/action-creators/validationErrorsCheckout.js +5 -0
  205. package/checkout/actions/errorCheckout.js +17 -0
  206. package/checkout/actions/fetchCheckoutOrder.js +4 -0
  207. package/checkout/actions/fetchPaymentMethods.js +4 -0
  208. package/checkout/actions/index.js +1 -0
  209. package/checkout/actions/initializeCheckout.js +4 -0
  210. package/checkout/actions/prepareCheckout.js +8 -0
  211. package/checkout/actions/submitCheckoutOrder.js +5 -0
  212. package/checkout/actions/updateCheckoutOrder.js +5 -0
  213. package/checkout/components/AddressBook/AddressBook.js +5 -0
  214. package/checkout/components/AddressBook/AddressList.js +9 -0
  215. package/checkout/components/AddressBook/index.js +1 -0
  216. package/checkout/components/AddressBookContact/AddressBookContact.js +5 -0
  217. package/checkout/components/AddressBookContact/index.js +1 -0
  218. package/checkout/components/Checkout/Checkout.js +4 -0
  219. package/checkout/components/Checkout/CheckoutActions.js +4 -0
  220. package/checkout/components/Checkout/CheckoutAddress.js +6 -0
  221. package/checkout/components/Checkout/CheckoutHeader.js +4 -0
  222. package/checkout/components/Checkout/CheckoutPickupContactForm.config.js +8 -0
  223. package/checkout/components/Checkout/CheckoutPickupContactForm.js +4 -0
  224. package/checkout/components/Checkout/CheckoutSection.js +4 -0
  225. package/checkout/components/Checkout/CheckoutSectionInfo.js +4 -0
  226. package/checkout/components/Checkout/CheckoutSectionMessages.js +4 -0
  227. package/checkout/components/Checkout/CheckoutSummary.js +4 -0
  228. package/checkout/components/CheckoutConfirmation/CheckoutConfirmation.connector.js +3 -0
  229. package/checkout/components/CheckoutConfirmation/CheckoutConfirmation.js +7 -0
  230. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationBilledTo.js +4 -0
  231. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationOrderContact.js +4 -0
  232. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationOrderSummary.js +4 -0
  233. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationPickUpContact.js +4 -0
  234. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationPickupNotes.js +4 -0
  235. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationSection.js +4 -0
  236. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationShippedTo.js +4 -0
  237. package/checkout/components/CheckoutConfirmation/index.js +1 -0
  238. package/checkout/components/GuestCheckout/GuestCheckout.js +4 -0
  239. package/checkout/components/GuestCheckout/GuestCheckoutOptIn.config.js +4 -0
  240. package/checkout/components/GuestCheckout/GuestCheckoutOptIn.js +3 -0
  241. package/checkout/components/GuestCheckout/GuestCheckoutPickup.js +4 -0
  242. package/checkout/components/GuestCheckout/GuestCheckoutPickupNotes.config.js +4 -0
  243. package/checkout/components/GuestCheckout/GuestCheckoutPickupNotes.js +4 -0
  244. package/checkout/components/PaymentMethodButton/PaymentMethodButton.js +5 -0
  245. package/checkout/components/PaymentMethodButton/index.js +1 -0
  246. package/checkout/components/ResponsiveBackButton/ResponsiveBackButton.js +4 -0
  247. package/checkout/components/ResponsiveBackButton/ResponsiveBackButton.style.js +1 -0
  248. package/checkout/components/ResponsiveBackButton/index.js +1 -0
  249. package/checkout/components/ShippingMethods/ShippingMethod.js +5 -0
  250. package/checkout/components/ShippingMethods/ShippingMethods.js +23 -0
  251. package/checkout/components/ShippingMethods/connector.js +7 -0
  252. package/checkout/components/ShippingMethods/index.js +1 -0
  253. package/checkout/components/SupplementalContent/SupplementalContent.connector.js +4 -0
  254. package/checkout/components/SupplementalContent/SupplementalContent.js +5 -0
  255. package/checkout/components/SupplementalContent/SupplementalContent.styles.js +1 -0
  256. package/checkout/components/SupplementalContent/index.js +1 -0
  257. package/checkout/components/index.js +1 -0
  258. package/checkout/constants/actionTypes.js +1 -0
  259. package/checkout/constants/errorCodes.js +1 -0
  260. package/checkout/constants/index.js +1 -0
  261. package/checkout/constants/routes.js +1 -0
  262. package/checkout/helpers/index.js +34 -0
  263. package/checkout/hooks/common.js +7 -0
  264. package/checkout/index.js +6 -5
  265. package/checkout/paymentMethods/context.js +1 -0
  266. package/checkout/paymentMethods/index.js +28 -0
  267. package/checkout/paymentMethods/paypal/PaypalButton.js +5 -0
  268. package/checkout/paymentMethods/paypal/PaypalButtonApp.js +4 -0
  269. package/checkout/paymentMethods/paypal/PaypalButtonWeb.js +8 -0
  270. package/checkout/paymentMethods/paypal/PaypalPayButton.js +12 -0
  271. package/checkout/paymentMethods/paypal/PaypalProvider.js +6 -0
  272. package/checkout/paymentMethods/paypal/index.js +1 -0
  273. package/checkout/paymentMethods/paypal/paypal_logo.png +0 -0
  274. package/checkout/paymentMethods/paypal/sdk.js +9 -0
  275. package/checkout/paymentMethods/stripe/StripeButton.connector.js +6 -0
  276. package/checkout/paymentMethods/stripe/StripeButton.js +5 -0
  277. package/checkout/paymentMethods/stripe/StripeCreditCard.js +10 -0
  278. package/checkout/paymentMethods/stripe/StripePayButton.js +6 -0
  279. package/checkout/paymentMethods/stripe/StripeProvider.connector.js +6 -0
  280. package/checkout/paymentMethods/stripe/StripeProvider.context.js +1 -0
  281. package/checkout/paymentMethods/stripe/StripeProvider.js +33 -0
  282. package/checkout/paymentMethods/stripe/applepay.svg +84 -0
  283. package/checkout/paymentMethods/stripe/googlepay.png +0 -0
  284. package/checkout/paymentMethods/stripe/index.js +1 -0
  285. package/checkout/paymentMethods/stripe/sdk.js +9 -0
  286. package/checkout/providers/AddressBookProvider.context.js +1 -0
  287. package/checkout/providers/AddressBookProvider.js +11 -0
  288. package/checkout/providers/CheckoutProvider.connector.js +7 -0
  289. package/checkout/providers/CheckoutProvider.constraints.js +1 -0
  290. package/checkout/providers/CheckoutProvider.context.js +1 -0
  291. package/checkout/providers/CheckoutProvider.js +28 -0
  292. package/checkout/reducers/index.js +6 -0
  293. package/checkout/selectors/campaign.js +5 -0
  294. package/checkout/selectors/guestCheckout.js +5 -0
  295. package/checkout/selectors/order.js +59 -0
  296. package/checkout/selectors/payment.js +17 -0
  297. package/checkout/selectors/route.js +4 -0
  298. package/checkout/streams/index.js +1 -0
  299. package/checkout/subscriptions/index.js +3 -0
  300. package/components/BrandingColorBanner/BrandingColorBanner.js +5 -0
  301. package/components/BrandingColorBanner/index.js +1 -0
  302. package/components/ChipLayout/index.js +7 -7
  303. package/components/ChipLayout/spec.js +1 -1
  304. package/components/ChipLayout/style.js +2 -2
  305. package/components/ConditionalWrapper/ConditionalWrapper.js +10 -0
  306. package/components/ConditionalWrapper/index.js +1 -5
  307. package/components/ConnectedReactPortal/index.js +13 -0
  308. package/components/Footer/Footer.js +4 -23
  309. package/components/Footer/Footer.style.js +1 -7
  310. package/components/Footer/constants.js +1 -0
  311. package/components/Footer/helpers.js +75 -0
  312. package/components/Form/Builder/Builder.constants.js +1 -1
  313. package/components/Form/Builder/Builder.js +53 -37
  314. package/components/Form/Builder/ElementCheckbox.js +2 -2
  315. package/components/Form/Builder/ElementMultiSelect.js +6 -0
  316. package/components/Form/Builder/ElementPhoneNumber.js +20 -0
  317. package/components/Form/Builder/ElementRadio.js +2 -2
  318. package/components/Form/Builder/ElementSelect.js +3 -3
  319. package/components/Form/Builder/ElementText.js +4 -4
  320. package/components/Form/Builder/FormHelper.js +5 -0
  321. package/components/Form/Builder/classes/ActionListener.constants.js +2 -2
  322. package/components/Form/Builder/classes/ActionListener.js +72 -15
  323. package/components/Form/Builder/helpers/buildCountryList.js +3 -3
  324. package/components/Form/Builder/helpers/buildFormDefaults.js +1 -1
  325. package/components/Form/Builder/helpers/buildProvinceList.js +1 -1
  326. package/components/Form/Builder/helpers/common.js +6 -0
  327. package/components/Form/Builder/stylePresets.js +1 -0
  328. package/components/Form/Form.js +11 -8
  329. package/components/Form/index.js +1 -1
  330. package/components/IntersectionVisibility/index.js +13 -6
  331. package/components/Logo/connector.js +4 -0
  332. package/components/Logo/index.js +2 -2
  333. package/components/Logo/spec.js +1 -1
  334. package/components/Logo/style.js +1 -1
  335. package/components/Menu/components/Item/index.js +8 -0
  336. package/components/Menu/components/Item/style.js +4 -0
  337. package/components/Menu/components/Position/index.js +16 -0
  338. package/components/Menu/components/Position/style.js +1 -0
  339. package/components/Menu/index.js +12 -0
  340. package/components/Menu/style.js +1 -0
  341. package/components/MessageBar/MessageBar.js +9 -0
  342. package/components/MessageBar/MessageBar.style.js +11 -0
  343. package/components/MessageBar/index.js +1 -7
  344. package/components/NavigationHandler/connector.js +1 -1
  345. package/components/NavigationHandler/index.js +6 -6
  346. package/components/NavigationHandler/spec.js +1 -1
  347. package/components/Picker/components/Button/index.js +1 -1
  348. package/components/Picker/components/List/index.js +2 -2
  349. package/components/Picker/components/Modal/index.js +7 -7
  350. package/components/Picker/index.js +19 -10
  351. package/components/Picker/spec.js +2 -2
  352. package/components/PickerUtilize/components/Button/index.js +1 -1
  353. package/components/PickerUtilize/index.js +8 -6
  354. package/components/PickerUtilize/spec.js +2 -1
  355. package/components/QuantityInput/QuantityInput.js +5 -4
  356. package/components/QuantityLabel/QuantityLabel.js +4 -0
  357. package/components/QuantityLabel/index.js +1 -0
  358. package/components/Radio/Radio.js +5 -0
  359. package/components/Radio/index.js +1 -0
  360. package/components/RadioCard/RadioCard.js +9 -0
  361. package/components/RadioCard/index.js +1 -0
  362. package/components/RadioGroup/RadioGroup.context.js +1 -0
  363. package/components/RadioGroup/RadioGroup.js +4 -0
  364. package/components/RadioGroup/index.js +1 -0
  365. package/components/RadioGroup/useRadioGroup.js +4 -0
  366. package/components/RangeSlider/components/Handle/index.js +2 -2
  367. package/components/RangeSlider/components/Handle/style.js +1 -1
  368. package/components/RangeSlider/helper.js +3 -3
  369. package/components/RangeSlider/index.js +35 -23
  370. package/components/RangeSlider/spec.js +4 -4
  371. package/components/ResponsiveContainer/ResponsiveContainer.js +6 -0
  372. package/components/ResponsiveContainer/breakpoints.js +14 -0
  373. package/components/ResponsiveContainer/condition.js +6 -0
  374. package/components/ResponsiveContainer/hooks.js +20 -0
  375. package/components/ResponsiveContainer/index.js +1 -0
  376. package/components/ResponsiveContainer/listener.js +10 -0
  377. package/components/ResponsiveContainer/mediaQuery.js +8 -0
  378. package/components/ScrollHeader/index.js +22 -5
  379. package/components/ScrollHeader/style.js +1 -1
  380. package/components/SheetDrawer/index.js +4 -3
  381. package/components/SheetList/components/Item/index.js +5 -5
  382. package/components/SheetList/components/Item/spec.js +2 -2
  383. package/components/SheetList/components/Item/style.js +1 -1
  384. package/components/SheetList/index.js +4 -4
  385. package/components/SheetList/spec.js +1 -1
  386. package/components/SheetList/style.js +1 -1
  387. package/components/SideNavigation/SideNavigation.hooks.js +4 -0
  388. package/components/SideNavigation/SideNavigation.js +4 -0
  389. package/components/SideNavigation/SideNavigationCategories.connector.js +8 -0
  390. package/components/SideNavigation/SideNavigationCategories.js +4 -0
  391. package/components/SideNavigation/SideNavigationCategories.style.js +1 -0
  392. package/components/SideNavigation/SideNavigationCategoriesItem.connector.js +8 -0
  393. package/components/SideNavigation/SideNavigationCategoriesItem.js +5 -0
  394. package/components/SideNavigation/SideNavigationCategoriesItem.style.js +2 -0
  395. package/components/SideNavigation/SideNavigationCategoriesItemChildren.js +5 -0
  396. package/components/SideNavigation/SideNavigationContent.js +3 -0
  397. package/components/SideNavigation/SideNavigationContent.style.js +4 -0
  398. package/components/SideNavigation/SideNavigationItem.js +4 -0
  399. package/components/SideNavigation/SideNavigationItem.style.js +4 -0
  400. package/components/SideNavigation/SideNavigationLinks.js +4 -0
  401. package/components/SideNavigation/SideNavigationLinksLegal.connector.js +4 -0
  402. package/components/SideNavigation/SideNavigationLinksLegal.js +5 -0
  403. package/components/SideNavigation/SideNavigationLinksQuicklinks.connector.js +4 -0
  404. package/components/SideNavigation/SideNavigationLinksQuicklinks.js +5 -0
  405. package/components/SideNavigation/SideNavigationNestedItem.js +4 -0
  406. package/components/SideNavigation/SideNavigationProvider.connector.js +8 -0
  407. package/components/SideNavigation/SideNavigationProvider.context.js +1 -0
  408. package/components/SideNavigation/SideNavigationProvider.js +4 -0
  409. package/components/SideNavigation/index.js +1 -0
  410. package/components/SideNavigation/selectors.js +17 -0
  411. package/components/SnackBarContainer/index.js +1 -1
  412. package/components/Switch/index.js +1 -1
  413. package/components/Tabs/TabContext.js +7 -0
  414. package/components/Tabs/components/Tab.js +11 -0
  415. package/components/Tabs/components/Tab.style.js +1 -0
  416. package/components/Tabs/components/TabIndicator.js +5 -0
  417. package/components/Tabs/components/TabIndicator.style.js +1 -0
  418. package/components/Tabs/components/TabPanel.js +5 -0
  419. package/components/Tabs/components/Tabs.js +11 -0
  420. package/components/Tabs/components/Tabs.style.js +2 -0
  421. package/components/Tabs/debounce.js +11 -0
  422. package/components/Tabs/index.js +1 -0
  423. package/components/Tabs/ownerDocument.js +4 -0
  424. package/components/Tabs/ownerWindow.js +4 -0
  425. package/components/Tabs/useEventCallback.js +6 -0
  426. package/components/TextLink/TextLink.js +5 -0
  427. package/components/TextLink/TextLink.style.js +1 -0
  428. package/components/TimeBoundary/index.js +10 -8
  429. package/components/TimeBoundary/spec.js +3 -3
  430. package/components/Toggle/index.js +5 -0
  431. package/components/Toggle/style.js +1 -0
  432. package/components/VideoPlayer/index.js +9 -6
  433. package/components/View/components/Above/index.js +1 -1
  434. package/components/View/components/Below/index.js +1 -1
  435. package/components/View/components/Content/index.js +13 -13
  436. package/components/View/components/Content/style.js +1 -1
  437. package/components/View/context.js +1 -1
  438. package/components/View/index.js +5 -5
  439. package/components/View/provider.js +24 -7
  440. package/components/View/style.js +1 -6
  441. package/components/index.js +4 -4
  442. package/core/action-creators/appPermissions.js +1 -1
  443. package/core/action-creators/index.js +1 -1
  444. package/core/action-creators/merchantSettings.js +5 -0
  445. package/core/action-creators/optIns.js +37 -0
  446. package/core/action-creators/shopSettings.js +9 -0
  447. package/core/actions/getGeolocation.js +2 -2
  448. package/core/actions/grantAppTrackingTransparencyPermission.js +3 -1
  449. package/core/actions/grantGeolocationPermissions.js +6 -2
  450. package/core/actions/grantPermissions.js +16 -4
  451. package/core/actions/grantPushPermissions.js +4 -3
  452. package/core/actions/index.js +2 -2
  453. package/core/actions/requestAppPermission.js +7 -2
  454. package/core/actions/requestAppPermissionStatus.js +7 -2
  455. package/core/actions/updateStatusBarBackground.js +3 -3
  456. package/core/classes/GeolocationRequest.js +8 -4
  457. package/core/classes/GeolocationRequestApp.js +16 -0
  458. package/core/classes/GeolocationRequestBrowser.js +8 -0
  459. package/core/collections/AppInitialization.js +4 -6
  460. package/core/config/ThemeConfigResolver.js +3 -3
  461. package/core/config/config.action-creators.js +12 -0
  462. package/core/config/config.actions.js +3 -0
  463. package/core/config/config.constants.js +1 -0
  464. package/core/config/config.reducers.js +6 -0
  465. package/core/config/config.selectors.js +39 -0
  466. package/core/config/config.streams.js +1 -0
  467. package/core/config/config.subscriptions.js +4 -0
  468. package/core/config/config.types.js +0 -0
  469. package/core/config/index.js +1 -0
  470. package/core/constants/appFeatures.js +1 -1
  471. package/core/constants/deviceTypes.js +1 -0
  472. package/core/constants/geolocationRequest.js +1 -1
  473. package/core/constants/index.js +9 -3
  474. package/core/constants/merchantSettings.js +1 -0
  475. package/core/constants/optIns.js +1 -0
  476. package/core/constants/pipelines.js +1 -0
  477. package/core/constants/shopSettings.js +2 -0
  478. package/core/contexts/AppContext.js +1 -1
  479. package/core/contexts/ThemeResourcesContext.d.ts +69 -0
  480. package/core/contexts/ThemeResourcesContext.js +3 -0
  481. package/core/contexts/index.js +1 -0
  482. package/core/events/index.js +1 -0
  483. package/core/helpers/androidNavigationBar.js +12 -0
  484. package/core/helpers/appFeatures.js +21 -9
  485. package/core/helpers/appPermissions.js +58 -0
  486. package/core/helpers/baseUrl.js +1 -1
  487. package/core/helpers/bridge.js +4 -0
  488. package/core/helpers/deviceType.js +5 -0
  489. package/core/helpers/environment.js +4 -0
  490. package/core/helpers/errorBehavior.js +32 -0
  491. package/core/helpers/featureFlag.js +11 -0
  492. package/core/helpers/getFullImageSource.js +21 -2
  493. package/core/helpers/googleMaps.js +8 -0
  494. package/core/helpers/i18n.js +10 -5
  495. package/core/helpers/index.js +3 -3
  496. package/core/helpers/isIOSTheme.js +4 -0
  497. package/core/helpers/isTouchDevice.js +4 -0
  498. package/core/helpers/nl2br.js +1 -0
  499. package/core/helpers/scrollContainer.js +4 -0
  500. package/core/helpers/string.js +9 -0
  501. package/core/helpers/svgToDataUrl.js +9 -0
  502. package/core/helpers/updateLegacyNavigationBar.js +5 -2
  503. package/core/hocs/index.js +1 -0
  504. package/core/hocs/withApp.js +1 -1
  505. package/core/hocs/withCurrentProduct.js +3 -3
  506. package/core/hocs/withForwardedRef.js +1 -1
  507. package/core/hocs/withNavigation.js +1 -1
  508. package/core/hocs/withRoute.js +1 -1
  509. package/core/hocs/withTheme.js +42 -3
  510. package/core/hocs/withThemeResources.js +19 -0
  511. package/core/hocs/withWidgetSettings.js +1 -1
  512. package/core/hocs/withWidgetStyles.js +1 -1
  513. package/core/hooks/events/index.js +1 -0
  514. package/core/hooks/events/useLongPress.d.ts +68 -0
  515. package/core/hooks/events/useLongPress.js +13 -0
  516. package/core/hooks/events/usePressHandler.js +38 -0
  517. package/core/hooks/events/useScrollDirectionChange.d.ts +74 -0
  518. package/core/hooks/events/useScrollDirectionChange.js +18 -0
  519. package/core/hooks/html/useLoadImage.js +1 -1
  520. package/core/hooks/index.js +1 -0
  521. package/core/hooks/layout/index.js +1 -0
  522. package/core/hooks/layout/useElementSize.d.ts +46 -0
  523. package/core/hooks/layout/useElementSize.js +18 -0
  524. package/core/hooks/useAsyncMemo.js +12 -0
  525. package/core/hooks/useFormState.js +27 -0
  526. package/core/hooks/usePrevious.js +2 -0
  527. package/core/hooks/useScrollTo.js +5 -0
  528. package/core/hooks/useTheme.js +38 -2
  529. package/core/hooks/useThemeResources.js +22 -0
  530. package/core/hooks/useWidgetStyles.js +1 -1
  531. package/core/index.js +5 -11
  532. package/core/initialization/index.js +19 -4
  533. package/core/providers/AppProvider.js +9 -9
  534. package/core/providers/ThemeResourcesProvider.js +19 -0
  535. package/core/providers/index.js +1 -0
  536. package/core/reducers/index.js +1 -1
  537. package/core/reducers/merchantSettings.js +6 -0
  538. package/core/reducers/shopSettings.js +6 -0
  539. package/core/selectors/index.js +1 -1
  540. package/core/selectors/merchantSettings.js +10 -0
  541. package/core/selectors/shopSettings.js +25 -0
  542. package/core/streams/app.js +1 -1
  543. package/core/streams/index.js +1 -1
  544. package/core/streams/optIns.js +13 -0
  545. package/core/subscriptions/app.js +4 -3
  546. package/core/validation/index.js +1 -0
  547. package/core/validation/validation.hooks.js +4 -0
  548. package/core/validation/validation.js +12 -0
  549. package/development/action-creators/index.js +1 -0
  550. package/development/action-creators/settings.js +9 -0
  551. package/development/action-creators/storage.js +6 -0
  552. package/development/components/DevelopmentTools/DevelopmentTools.js +6 -0
  553. package/development/components/DevelopmentTools/Shortcuts.js +4 -0
  554. package/development/components/DevelopmentTools/hooks.js +8 -0
  555. package/development/components/DevelopmentTools/index.js +1 -0
  556. package/development/components/SimulatedInsets/SimulatedInsetBottom.js +7 -0
  557. package/development/components/SimulatedInsets/SimulatedInsetTop.js +12 -0
  558. package/development/components/SimulatedInsets/SimulatedInsets.js +6 -0
  559. package/development/components/SimulatedInsets/index.js +1 -0
  560. package/development/components/index.js +1 -0
  561. package/development/constants/actionTypes.js +1 -0
  562. package/development/constants/index.js +1 -0
  563. package/development/reducers/index.js +1 -0
  564. package/development/reducers/settings.js +10 -0
  565. package/development/reducers/storage.js +9 -0
  566. package/development/selectors/index.js +1 -0
  567. package/development/selectors/settings.js +21 -0
  568. package/development/selectors/storage.js +16 -0
  569. package/development/streams/index.js +1 -0
  570. package/development/streams/insets.js +4 -0
  571. package/development/subscriptions/index.js +6 -0
  572. package/favorites/components/CommentDialog/CommentDialog.js +12 -0
  573. package/favorites/components/CommentDialog/index.js +1 -0
  574. package/favorites/components/FavoriteButtonWide/FavoriteButtonWide.js +8 -0
  575. package/favorites/components/FavoriteButtonWide/index.js +1 -0
  576. package/favorites/components/Item/Item.js +13 -9
  577. package/favorites/components/Item/ItemCharacteristics.js +2 -2
  578. package/favorites/components/Item/ItemNotes.js +7 -0
  579. package/favorites/components/Item/ItemQuantity.js +7 -0
  580. package/favorites/components/ItemFulfillmentMethod/ItemFulfillmentMethod.js +4 -0
  581. package/favorites/components/ItemFulfillmentMethod/index.js +1 -0
  582. package/favorites/components/List/List.js +19 -15
  583. package/favorites/components/List/ListAccordionHeader.js +8 -0
  584. package/favorites/components/List/ListAccordionLabel.js +5 -0
  585. package/favorites/components/List/ListContent.js +8 -0
  586. package/favorites/components/List/ListItemWrapper.js +6 -0
  587. package/favorites/components/List/styles.js +1 -0
  588. package/favorites/components/ListChooser/ListChooser.js +2 -2
  589. package/favorites/components/ListChooser/ListChooserItem.js +4 -5
  590. package/favorites/components/Lists/Lists.js +17 -13
  591. package/favorites/components/Lists/ListsModal.js +3 -4
  592. package/favorites/components/RemoveButton/RemoveButton.js +2 -2
  593. package/favorites/constants/Portals.js +1 -2
  594. package/favorites/constants/index.js +1 -0
  595. package/favorites/index.js +2 -2
  596. package/filter/actions/index.js +1 -0
  597. package/filter/components/FilterItem/index.js +2 -2
  598. package/filter/components/FilterItem/spec.js +1 -1
  599. package/filter/components/FilterPageContent/components/ApplyButton/index.js +7 -0
  600. package/filter/components/FilterPageContent/components/ApplyButton/spec.js +1 -0
  601. package/filter/components/FilterPageContent/components/ApplyButton/style.js +1 -0
  602. package/filter/components/FilterPageContent/components/ResetButton/index.js +7 -0
  603. package/filter/components/FilterPageContent/components/ResetButton/spec.js +1 -0
  604. package/filter/components/FilterPageContent/components/ResetButton/style.js +1 -0
  605. package/filter/components/FilterPageContent/components/Selector/components/Selected/index.js +7 -0
  606. package/filter/components/FilterPageContent/components/Selector/components/Selected/spec.js +1 -0
  607. package/filter/components/FilterPageContent/components/Selector/components/Selected/style.js +1 -0
  608. package/filter/components/FilterPageContent/components/Selector/components/Toggle/index.js +7 -0
  609. package/filter/components/FilterPageContent/components/Selector/components/Toggle/spec.js +1 -0
  610. package/filter/components/FilterPageContent/components/Selector/components/Toggle/style.js +1 -0
  611. package/filter/components/FilterPageContent/components/Selector/components/ValueButton/index.js +7 -0
  612. package/filter/components/FilterPageContent/components/Selector/components/ValueButton/spec.js +1 -0
  613. package/filter/components/FilterPageContent/components/Selector/components/ValueButton/style.js +1 -0
  614. package/filter/components/FilterPageContent/components/Selector/index.js +19 -0
  615. package/filter/components/FilterPageContent/components/Selector/spec.js +1 -0
  616. package/filter/components/FilterPageContent/components/Selector/style.js +1 -0
  617. package/filter/components/FilterPageContent/index.js +6 -0
  618. package/filter/components/FilterPageContentWithProvider/index.js +16 -0
  619. package/filter/components/PriceSlider/components/Label/index.js +3 -3
  620. package/filter/components/PriceSlider/components/Label/spec.js +1 -1
  621. package/filter/components/PriceSlider/index.js +8 -8
  622. package/filter/components/PriceSlider/spec.js +1 -1
  623. package/filter/components/PriceSlider/style.js +1 -1
  624. package/filter/components/index.js +1 -0
  625. package/filter/constants/index.js +1 -0
  626. package/filter/constants/sort.js +11 -0
  627. package/filter/helpers/buildFilterParamsForFetchFiltersRequest.js +2 -2
  628. package/filter/helpers/buildInitialFilters.js +2 -2
  629. package/filter/helpers/buildUpdatedFilters.js +2 -2
  630. package/filter/helpers/index.js +1 -0
  631. package/filter/helpers/translateFilterLabel.js +3 -3
  632. package/filter/hocs/index.js +1 -0
  633. package/filter/hocs/withSort.js +16 -0
  634. package/filter/hooks/filterPage.js +5 -0
  635. package/filter/hooks/index.js +4 -0
  636. package/filter/index.js +2 -7
  637. package/filter/providers/FilterPageProvider.context.js +54 -0
  638. package/filter/providers/FilterPageProvider.js +98 -0
  639. package/filter/providers/SortProvider.connector.js +3 -0
  640. package/filter/providers/SortProvider.context.js +1 -0
  641. package/filter/providers/SortProvider.helpers.js +8 -0
  642. package/filter/providers/SortProvider.js +6 -0
  643. package/filter/providers/index.js +1 -0
  644. package/filter/selectors/index.js +17 -0
  645. package/filter/streams/index.js +1 -0
  646. package/i18n/countries.helpers.js +6 -0
  647. package/i18n/countries.hooks.js +6 -0
  648. package/i18n/index.js +1 -0
  649. package/i18n/locale/cs-cz/countries.json +255 -0
  650. package/i18n/locale/de-de/countries.json +255 -0
  651. package/i18n/locale/el-gr/countries.json +255 -0
  652. package/i18n/locale/en-us/countries.json +255 -0
  653. package/i18n/locale/es-es/countries.json +255 -0
  654. package/i18n/locale/fi-fi/countries.json +255 -0
  655. package/i18n/locale/fr-fr/countries.json +255 -0
  656. package/i18n/locale/hu-hu/countries.json +255 -0
  657. package/i18n/locale/it-it/countries.json +255 -0
  658. package/i18n/locale/nl-nl/countries.json +255 -0
  659. package/i18n/locale/pl-pl/countries.json +255 -0
  660. package/i18n/locale/pt-pt/countries.json +255 -0
  661. package/i18n/locale/ro-ro/countries.json +255 -0
  662. package/i18n/locale/sv-se/countries.json +255 -0
  663. package/locations/action-creators/errorInventories.js +7 -0
  664. package/locations/action-creators/errorLocations.js +6 -0
  665. package/locations/action-creators/errorProductInventories.js +7 -0
  666. package/locations/action-creators/errorProductLocations.js +6 -0
  667. package/locations/action-creators/index.js +1 -0
  668. package/locations/action-creators/provideProductAlternativeLocation.js +5 -0
  669. package/locations/action-creators/receiveInventories.js +5 -0
  670. package/locations/action-creators/receiveLocations.js +6 -0
  671. package/locations/action-creators/receiveProductInventories.js +7 -0
  672. package/locations/action-creators/receiveProductLocations.js +7 -0
  673. package/locations/action-creators/requestInventories.js +6 -0
  674. package/locations/action-creators/requestLocations.js +5 -0
  675. package/locations/action-creators/requestProductInventories.js +6 -0
  676. package/locations/action-creators/requestProductLocations.js +5 -0
  677. package/locations/action-creators/selectGlobalLocation.js +5 -0
  678. package/locations/action-creators/selectLocation.js +6 -0
  679. package/locations/action-creators/setStoreFinderSearchRadius.js +5 -0
  680. package/locations/action-creators/setUserGeolocation.js +5 -0
  681. package/locations/action-creators/setUserSearchCountryCode.js +7 -0
  682. package/locations/action-creators/setUserSearchGeolocation.js +8 -0
  683. package/locations/action-creators/setUserSearchPostalCode.js +7 -0
  684. package/locations/action-creators/storeFormInput.js +5 -0
  685. package/locations/action-creators/storeFulfillmentMethod.js +5 -0
  686. package/locations/action-creators/submitReservationError.js +5 -0
  687. package/locations/action-creators/submitReservationRequest.js +5 -0
  688. package/locations/action-creators/submitReservationSuccess.js +5 -0
  689. package/locations/actions/fetchDefaultLocation.js +4 -0
  690. package/locations/actions/fetchFulfillmentSlots.js +6 -0
  691. package/locations/actions/fetchInventories.js +6 -0
  692. package/locations/actions/fetchLocations.js +19 -0
  693. package/locations/actions/fetchProductInventories.js +7 -0
  694. package/locations/actions/fetchProductLocations.js +12 -0
  695. package/locations/actions/index.js +5 -0
  696. package/locations/actions/sendDefaultLocationCode.js +6 -0
  697. package/locations/actions/setUserGeolocation.js +1 -0
  698. package/locations/actions/setUserSearchGeolocation.js +1 -0
  699. package/locations/actions/submitReservation.js +5 -0
  700. package/locations/assets/leaflet.css +765 -0
  701. package/locations/components/Cart/CartChangeFulfillmentMethod.connector.js +4 -0
  702. package/locations/components/Cart/CartChangeFulfillmentMethod.js +8 -0
  703. package/locations/components/Cart/CartChangeFulfillmentMethod.types.js +0 -0
  704. package/locations/components/Cart/CartContextMenuChangeFulfillment.js +6 -0
  705. package/locations/components/Cart/CartContextMenuChangeFulfillmentContent.js +5 -0
  706. package/locations/components/Cart/CartContextMenuChangeFulfillmentContent.style.js +1 -0
  707. package/locations/components/Cart/CartContextMenuItemChangeFulfillment.connector.js +4 -0
  708. package/locations/components/Cart/CartContextMenuItemChangeFulfillment.js +6 -0
  709. package/locations/components/Cart/CartContextMenuItemChangeLocation.js +7 -0
  710. package/locations/components/Cart/CartItemProductChangeLocation.connector.js +5 -0
  711. package/locations/components/Cart/CartItemProductChangeLocation.js +11 -0
  712. package/locations/components/Cart/CartItemProductChangeLocation.types.js +0 -0
  713. package/locations/components/Cart/index.js +1 -0
  714. package/locations/components/ChangeLocationButton/ChangeLocationButton.js +4 -0
  715. package/locations/components/ChangeLocationButton/ChangeLocationButton.style.js +2 -0
  716. package/locations/components/ChangeLocationButton/index.js +1 -0
  717. package/locations/components/FulfillmentPath/FulfillmentPath.js +4 -0
  718. package/locations/components/FulfillmentPath/FulfillmentPath.style.js +2 -0
  719. package/locations/components/FulfillmentPath/FulfillmentPathItem.js +6 -0
  720. package/locations/components/FulfillmentPath/index.js +1 -0
  721. package/locations/components/FulfillmentPathSelector/FulfillmentPathSelector.js +14 -0
  722. package/locations/components/FulfillmentPathSelector/FulfillmentPathSelector.style.js +1 -0
  723. package/locations/components/FulfillmentPathSelector/index.js +1 -0
  724. package/locations/components/FulfillmentSelector/FulfillmentSelector.connector.js +9 -0
  725. package/locations/components/FulfillmentSelector/FulfillmentSelector.context.js +1 -0
  726. package/locations/components/FulfillmentSelector/FulfillmentSelector.hooks.js +3 -0
  727. package/locations/components/FulfillmentSelector/FulfillmentSelector.js +20 -0
  728. package/locations/components/FulfillmentSelector/FulfillmentSelector.style.js +1 -0
  729. package/locations/components/FulfillmentSelector/FulfillmentSelector.types.js +1 -0
  730. package/locations/components/FulfillmentSelector/FulfillmentSelectorAddToCart.js +10 -0
  731. package/locations/components/FulfillmentSelector/FulfillmentSelectorAlternativeLocation.js +8 -0
  732. package/locations/components/FulfillmentSelector/FulfillmentSelectorBOPIS.js +4 -0
  733. package/locations/components/FulfillmentSelector/FulfillmentSelectorDirectShip.js +5 -0
  734. package/locations/components/FulfillmentSelector/FulfillmentSelectorHeader.js +4 -0
  735. package/locations/components/FulfillmentSelector/FulfillmentSelectorHeader.style.js +1 -0
  736. package/locations/components/FulfillmentSelector/FulfillmentSelectorImpossibleError.js +4 -0
  737. package/locations/components/FulfillmentSelector/FulfillmentSelectorImpossibleError.style.js +1 -0
  738. package/locations/components/FulfillmentSelector/FulfillmentSelectorItem.js +8 -0
  739. package/locations/components/FulfillmentSelector/FulfillmentSelectorItem.style.js +1 -0
  740. package/locations/components/FulfillmentSelector/FulfillmentSelectorLocation.js +4 -0
  741. package/locations/components/FulfillmentSelector/FulfillmentSelectorLocation.style.js +1 -0
  742. package/locations/components/FulfillmentSelector/FulfillmentSelectorLocationMethodNotAvailable.js +3 -0
  743. package/locations/components/FulfillmentSelector/FulfillmentSelectorROPIS.js +4 -0
  744. package/locations/components/FulfillmentSelector/index.js +1 -0
  745. package/locations/components/FulfillmentSheet/FulfillmentSheet.js +6 -0
  746. package/locations/components/FulfillmentSheet/FulfillmentSheet.style.js +1 -0
  747. package/locations/components/FulfillmentSheet/FulfillmentSheetContent.js +6 -0
  748. package/locations/components/FulfillmentSheet/index.js +1 -0
  749. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotDialog.js +28 -0
  750. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotProvider.connector.js +8 -0
  751. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotProvider.context.js +1 -0
  752. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotProvider.js +9 -0
  753. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.connector.js +4 -0
  754. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.js +4 -0
  755. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherBar.js +3 -0
  756. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherBar.style.js +1 -0
  757. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherDefault.js +3 -0
  758. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherDefault.style.js +1 -0
  759. package/locations/components/FulfillmentSlotSwitcher/index.js +1 -0
  760. package/locations/components/FulfillmentSlotSwitcher/time.js +5 -0
  761. package/locations/components/GlobalLocationSelector/GlobalLocationSelector.js +16 -0
  762. package/locations/components/GlobalLocationSelector/index.js +1 -0
  763. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcher.connector.js +8 -0
  764. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcher.js +3 -0
  765. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherBar.js +3 -0
  766. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherBar.style.js +1 -0
  767. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherDefault.js +3 -0
  768. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherDefault.style.js +1 -0
  769. package/locations/components/GlobalLocationSwitcher/index.js +1 -0
  770. package/locations/components/ReservationResponses/ReservationError.js +4 -0
  771. package/locations/components/ReservationResponses/ReservationResponse.style.js +1 -0
  772. package/locations/components/ReservationResponses/ReservationSuccess.js +4 -0
  773. package/locations/components/ReservationResponses/index.js +1 -0
  774. package/locations/components/ReserveForm/ReserveForm.constraints.js +1 -0
  775. package/locations/components/ReserveForm/ReserveForm.js +10 -0
  776. package/locations/components/ReserveForm/ReserveForm.style.js +1 -0
  777. package/locations/components/ReserveForm/ReserveFormPhone.connector.js +3 -0
  778. package/locations/components/ReserveForm/ReserveFormPhone.js +5 -0
  779. package/locations/components/ReserveForm/ReserveFormPhone.types.js +0 -0
  780. package/locations/components/ReserveForm/index.js +1 -0
  781. package/locations/components/StockInfo/StockInfo.defaultSettings.js +1 -0
  782. package/locations/components/StockInfo/StockInfo.js +8 -0
  783. package/locations/components/StockInfo/StockInfoInventory.js +9 -0
  784. package/locations/components/StockInfo/index.js +1 -0
  785. package/locations/components/StockInfoLists/index.js +9 -0
  786. package/locations/components/StoreDetails/components/FindMoreStores.js +4 -0
  787. package/locations/components/StoreDetails/components/GetDirectionsButton.js +7 -0
  788. package/locations/components/StoreDetails/components/StoreDetails.js +5 -0
  789. package/locations/components/StoreDetails/components/StoreFinderMap.js +20 -0
  790. package/locations/components/StoreDetails/components/StoreFinderMap.style.js +1 -0
  791. package/locations/components/StoreDetails/components/StoreLocationMap.js +4 -0
  792. package/locations/components/StoreDetails/components/StoresNearby.js +4 -0
  793. package/locations/components/StoreDetails/components/StoresNearbyListItem.js +9 -0
  794. package/locations/components/StoreDetails/index.js +4 -0
  795. package/locations/components/StoreFinder/Store.context.js +1 -0
  796. package/locations/components/StoreFinder/StoreFinder.js +3 -0
  797. package/locations/components/StoreFinder/StoreFinder.style.js +1 -0
  798. package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.connector.js +4 -0
  799. package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.js +4 -0
  800. package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.style.js +1 -0
  801. package/locations/components/StoreFinder/StoreFinderLocation.js +3 -0
  802. package/locations/components/StoreFinder/StoreFinderLocation.style.js +1 -0
  803. package/locations/components/StoreFinder/StoreFinderLocationDetails.js +3 -0
  804. package/locations/components/StoreFinder/StoreFinderLocationDetails.style.js +1 -0
  805. package/locations/components/StoreFinder/StoreFinderLocationHeader.js +3 -0
  806. package/locations/components/StoreFinder/StoreFinderLocationHeader.style.js +1 -0
  807. package/locations/components/StoreFinder/StoreFinderLocationHeaderPhoneNumber.js +4 -0
  808. package/locations/components/StoreFinder/StoreFinderLocations.js +5 -0
  809. package/locations/components/StoreFinder/StoreFinderLocations.style.js +1 -0
  810. package/locations/components/StoreFinder/StoreFinderSearch.js +3 -0
  811. package/locations/components/StoreFinder/StoreFinderSearch.style.js +1 -0
  812. package/locations/components/StoreFinder/StoreFinderSelectLocationButton.js +5 -0
  813. package/locations/components/StoreFinder/StoreFinderStoreInfoButton.js +8 -0
  814. package/locations/components/StoreFinder/index.js +1 -0
  815. package/locations/components/StoreList/Store.context.js +1 -0
  816. package/locations/components/StoreList/Store.style.js +1 -0
  817. package/locations/components/StoreList/StoreAddress.js +7 -0
  818. package/locations/components/StoreList/StoreAddressShort.js +7 -0
  819. package/locations/components/StoreList/StoreCard.js +4 -0
  820. package/locations/components/StoreList/StoreDetails.js +4 -0
  821. package/locations/components/StoreList/StoreDetailsLine.js +8 -0
  822. package/locations/components/StoreList/StoreDistance.js +7 -0
  823. package/locations/components/StoreList/StoreHeader.js +4 -0
  824. package/locations/components/StoreList/StoreHoursToday.js +7 -0
  825. package/locations/components/StoreList/StoreList.js +4 -0
  826. package/locations/components/StoreList/StoreListLocations.js +4 -0
  827. package/locations/components/StoreList/StoreListProduct.js +4 -0
  828. package/locations/components/StoreList/StoreListProduct.style.js +1 -0
  829. package/locations/components/StoreList/StoreListProductInfo.js +4 -0
  830. package/locations/components/StoreList/StoreListProductName.js +4 -0
  831. package/locations/components/StoreList/StoreListSearch.connector.js +7 -0
  832. package/locations/components/StoreList/StoreListSearch.js +23 -0
  833. package/locations/components/StoreList/StoreListSearch.style.js +1 -0
  834. package/locations/components/StoreList/StoreListSearchRadius.connector.js +7 -0
  835. package/locations/components/StoreList/StoreListSearchRadius.js +4 -0
  836. package/locations/components/StoreList/StoreListSearchRadius.style.js +1 -0
  837. package/locations/components/StoreList/StoreOpeningHours.js +7 -0
  838. package/locations/components/StoreList/StoreOpeningHoursLine.js +7 -0
  839. package/locations/components/StoreList/StorePhoneNumber.js +6 -0
  840. package/locations/components/StoreList/StoreSelectLocationButton.js +4 -0
  841. package/locations/components/StoreList/index.js +1 -0
  842. package/locations/components/index.js +1 -0
  843. package/locations/constants/ActionTypes.js +10 -0
  844. package/locations/constants/Pipelines.js +1 -0
  845. package/locations/constants/Portals.js +2 -0
  846. package/locations/constants/Stages.js +1 -0
  847. package/locations/constants/index.js +7 -0
  848. package/locations/constants/routes.js +1 -0
  849. package/locations/helpers/createOrder.js +28 -0
  850. package/locations/helpers/formatDistance.js +9 -0
  851. package/locations/helpers/getAvailabilitySettings.js +12 -0
  852. package/locations/helpers/index.js +1 -0
  853. package/locations/helpers/productInventory.js +7 -0
  854. package/locations/helpers/showInventoryInLists.js +7 -0
  855. package/locations/index.js +9 -0
  856. package/locations/locations.context.js +1 -0
  857. package/locations/locations.hooks.js +4 -0
  858. package/locations/locations.streams.js +1 -0
  859. package/locations/locations.types.js +1 -0
  860. package/locations/providers/FulfillmentProvider.connector.js +10 -0
  861. package/locations/providers/FulfillmentProvider.js +49 -0
  862. package/locations/providers/FulfillmentProvider.types.js +1 -0
  863. package/locations/providers/StoreDetailsContext.js +1 -0
  864. package/locations/providers/StoreDetailsProvider.js +4 -0
  865. package/locations/providers/StoreFinder.connector.js +3 -0
  866. package/locations/providers/StoreFinderProvider.js +7 -0
  867. package/locations/providers/index.js +1 -0
  868. package/locations/reducers/index.js +1 -0
  869. package/locations/reducers/storage.js +24 -0
  870. package/locations/reducers/storeFinderSearch.js +6 -0
  871. package/locations/reducers/user.js +5 -0
  872. package/locations/reducers/userFormInput.js +8 -0
  873. package/locations/reducers/userSearch.js +6 -0
  874. package/locations/selectors/index.js +145 -0
  875. package/locations/subscriptions.js +27 -0
  876. package/login/action-creators/index.js +1 -0
  877. package/login/action-creators/resetPassword.js +14 -0
  878. package/login/actions/index.js +1 -0
  879. package/login/actions/resetPassword.js +5 -0
  880. package/login/components/ForgotPassword/ForgotPassword.connector.js +5 -0
  881. package/login/components/ForgotPassword/ForgotPassword.js +5 -0
  882. package/login/components/ForgotPassword/ForgotPassword.style.js +1 -0
  883. package/login/components/ForgotPassword/index.js +1 -0
  884. package/login/constants/actions.js +1 -0
  885. package/login/constants/index.js +1 -0
  886. package/login/constants/pipelines.js +1 -0
  887. package/login/constants/routes.js +1 -0
  888. package/login/index.js +1 -0
  889. package/orders/action-creators/index.js +1 -0
  890. package/orders/action-creators/orderDetails.js +22 -0
  891. package/orders/action-creators/orders.js +21 -0
  892. package/orders/actions/cancelOrder.js +8 -0
  893. package/orders/actions/fetchOrderDetails.js +10 -0
  894. package/orders/actions/fetchOrderHistory.js +7 -0
  895. package/orders/actions/index.js +1 -0
  896. package/orders/components/OrderDetails/OrderDetails.js +4 -0
  897. package/orders/components/OrderDetails/OrderDetailsAuthenticate.js +3 -0
  898. package/orders/components/OrderDetails/OrderDetailsAuthenticate.style.js +1 -0
  899. package/orders/components/OrderDetails/OrderDetailsAuthenticateForm.config.js +8 -0
  900. package/orders/components/OrderDetails/OrderDetailsContent.js +3 -0
  901. package/orders/components/OrderDetails/OrderDetailsContent.style.js +1 -0
  902. package/orders/components/OrderDetails/OrderDetailsOrder.js +4 -0
  903. package/orders/components/OrderDetails/OrderDetailsOrder.style.js +1 -0
  904. package/orders/components/OrderDetails/OrderDetailsOrderHeader.js +4 -0
  905. package/orders/components/OrderDetails/OrderDetailsOrderHeader.style.js +1 -0
  906. package/orders/components/OrderDetails/OrderDetailsOrderPickupLocation.connector.js +3 -0
  907. package/orders/components/OrderDetails/OrderDetailsOrderPickupLocation.js +4 -0
  908. package/orders/components/OrderDetails/OrderDetailsOrderPickupLocation.style.js +1 -0
  909. package/orders/components/OrderDetails/index.js +1 -0
  910. package/orders/components/OrderHistory/OrderHistory.js +4 -0
  911. package/orders/components/OrderHistory/OrderHistory.style.js +1 -0
  912. package/orders/components/OrderHistory/OrderHistoryList.js +9 -0
  913. package/orders/components/OrderHistory/OrderHistoryList.style.js +1 -0
  914. package/orders/components/OrderHistory/OrderHistoryLoader.js +4 -0
  915. package/orders/components/OrderHistory/OrderHistoryTable.js +9 -0
  916. package/orders/components/OrderHistory/OrderHistoryTable.style.js +1 -0
  917. package/orders/components/OrderHistory/index.js +1 -0
  918. package/orders/components/index.js +1 -0
  919. package/orders/constants/actionTypes.js +1 -0
  920. package/orders/constants/index.js +1 -0
  921. package/orders/constants/pipelines.js +1 -0
  922. package/orders/constants/routes.js +1 -0
  923. package/orders/constants/status.js +12 -0
  924. package/orders/helpers/index.js +1 -0
  925. package/orders/helpers/orderDetails.js +5 -0
  926. package/orders/helpers/orderStatus.js +15 -0
  927. package/orders/hooks/index.js +7 -0
  928. package/orders/index.js +1 -1
  929. package/orders/providers/OrderDetailsPrivateProvider.connector.js +11 -0
  930. package/orders/providers/OrderDetailsPrivateProvider.js +5 -0
  931. package/orders/providers/OrderDetailsProvider.connector.js +11 -0
  932. package/orders/providers/OrderDetailsProvider.constraints.js +1 -0
  933. package/orders/providers/OrderDetailsProvider.context.js +1 -0
  934. package/orders/providers/OrderDetailsProvider.js +11 -0
  935. package/orders/providers/OrderHistoryProvider.connector.js +9 -0
  936. package/orders/providers/OrderHistoryProvider.context.js +1 -0
  937. package/orders/providers/OrderHistoryProvider.js +4 -0
  938. package/orders/reducers/index.js +1 -0
  939. package/orders/reducers/orders.js +7 -0
  940. package/orders/reducers/ordersById.js +7 -0
  941. package/orders/reducers/ordersByNumber.js +7 -0
  942. package/orders/selectors/index.js +27 -0
  943. package/orders/subscriptions/index.js +4 -0
  944. package/package.json +28 -18
  945. package/page/action-creators/index.js +22 -0
  946. package/page/actions/index.js +1 -0
  947. package/page/components/NotFound.js +3 -0
  948. package/page/components/Widgets/Overlay.js +51 -0
  949. package/page/components/Widgets/Tooltip.js +22 -0
  950. package/page/components/Widgets/Widget.js +15 -0
  951. package/page/components/Widgets/WidgetContext.d.ts +42 -0
  952. package/page/components/Widgets/WidgetContext.js +9 -0
  953. package/page/components/Widgets/WidgetProvider.js +8 -0
  954. package/page/components/Widgets/Widgets.js +11 -0
  955. package/page/components/Widgets/WidgetsPreviewContext.js +9 -0
  956. package/page/components/Widgets/WidgetsPreviewProvider.js +8 -0
  957. package/page/components/Widgets/constants.js +4 -0
  958. package/page/components/Widgets/events.js +23 -0
  959. package/page/components/Widgets/helpers.js +23 -0
  960. package/page/components/Widgets/hooks.js +69 -0
  961. package/page/components/Widgets/index.js +1 -0
  962. package/page/components/Widgets/types.d.ts +127 -0
  963. package/page/components/index.js +1 -0
  964. package/page/constants/actionTypes.js +1 -0
  965. package/page/constants/index.js +5 -1
  966. package/page/hooks/index.d.ts +60 -0
  967. package/page/hooks/index.js +25 -0
  968. package/page/index.js +1 -4
  969. package/page/reducers/index.js +6 -0
  970. package/page/selectors/index.js +53 -0
  971. package/page/subscriptions/index.js +4 -0
  972. package/page/widgets/HTML/HTML.js +5 -0
  973. package/page/widgets/HTML/hooks.js +12 -0
  974. package/page/widgets/HTML/index.js +1 -0
  975. package/page/widgets/Placeholder/Placeholder.js +5 -0
  976. package/page/widgets/Placeholder/hooks.js +12 -0
  977. package/page/widgets/Placeholder/index.js +1 -0
  978. package/page/widgets/ProductList/ProductList.js +5 -0
  979. package/page/widgets/ProductList/hooks.js +25 -0
  980. package/page/widgets/ProductList/index.js +1 -0
  981. package/page/widgets/ProductSlider/ProductSlider.js +4 -0
  982. package/page/widgets/ProductSlider/hooks.js +27 -0
  983. package/page/widgets/ProductSlider/index.js +1 -0
  984. package/page/widgets/index.js +1 -0
  985. package/page/widgets/widgets.json +14 -0
  986. package/product/collections/index.js +1 -0
  987. package/product/components/Availability/Availability.connector.js +5 -0
  988. package/product/components/Availability/Availability.js +6 -0
  989. package/product/components/Availability/Availability.style.js +1 -0
  990. package/product/components/Availability/index.js +1 -0
  991. package/product/components/Characteristics/Characteristic/components/Sheet/index.js +16 -4
  992. package/product/components/Characteristics/Characteristic/components/SheetItem/index.js +8 -3
  993. package/product/components/Characteristics/Characteristic/components/SheetItem/style.js +1 -1
  994. package/product/components/Characteristics/Characteristic/index.js +15 -6
  995. package/product/components/Characteristics/Characteristic/style.js +1 -1
  996. package/product/components/Characteristics/Swatch/index.js +8 -6
  997. package/product/components/Characteristics/index.js +10 -3
  998. package/product/components/Characteristics/transition.js +1 -1
  999. package/product/components/Description/index.js +5 -6
  1000. package/product/components/Description/style.js +1 -1
  1001. package/product/components/EffectivityDates/helpers.js +5 -5
  1002. package/product/components/EffectivityDates/index.js +2 -2
  1003. package/product/components/EffectivityDates/style.js +1 -1
  1004. package/product/components/Header/PriceStriked/index.js +2 -5
  1005. package/product/components/Header/PriceStriked/style.js +1 -1
  1006. package/product/components/Header/Shipping/components/Label/index.js +3 -3
  1007. package/product/components/Header/Shipping/components/Label/style.js +1 -1
  1008. package/product/components/Header/Shipping/index.js +1 -1
  1009. package/product/components/Header/Shipping/spec.js +1 -1
  1010. package/product/components/Header/Tiers/components/Tier/index.js +2 -2
  1011. package/product/components/Header/Tiers/components/Tier/spec.js +1 -1
  1012. package/product/components/Header/Tiers/index.js +1 -1
  1013. package/product/components/Header/Tiers/spec.js +1 -1
  1014. package/product/components/Header/index.js +1 -0
  1015. package/product/components/MapPriceHint/index.js +1 -1
  1016. package/product/components/Media/FeaturedMedia.js +2 -2
  1017. package/product/components/Media/MediaImage.js +3 -3
  1018. package/product/components/Media/MediaPlaceholder.js +1 -1
  1019. package/product/components/MediaSlider/components/MediaImage/index.js +1 -1
  1020. package/product/components/MediaSlider/components/MediaVideo/index.js +1 -1
  1021. package/product/components/MediaSlider/index.js +4 -4
  1022. package/product/components/Options/components/Content/index.js +8 -8
  1023. package/product/components/Options/components/Content/spec.js +2 -2
  1024. package/product/components/Options/components/Option/index.js +2 -2
  1025. package/product/components/Options/components/TextOption/components/OptionInfo/index.js +3 -3
  1026. package/product/components/Options/components/TextOption/components/OptionInfo/spec.js +1 -1
  1027. package/product/components/Options/components/TextOption/components/OptionInfo/style.js +1 -1
  1028. package/product/components/Options/components/TextOption/index.js +19 -7
  1029. package/product/components/Options/components/TextOption/style.js +1 -1
  1030. package/product/components/Options/index.js +2 -2
  1031. package/product/components/OrderQuantityHint/index.js +3 -2
  1032. package/product/components/OrderQuantityHint/style.js +1 -1
  1033. package/product/components/PriceDifference/index.js +1 -1
  1034. package/product/components/PriceDifference/style.js +1 -1
  1035. package/product/components/PriceInfo/PriceInfo.connector.js +4 -0
  1036. package/product/components/PriceInfo/PriceInfo.js +4 -0
  1037. package/product/components/PriceInfo/index.js +1 -0
  1038. package/product/components/ProductBadges/index.js +2 -2
  1039. package/product/components/ProductCard/index.js +12 -3
  1040. package/product/components/ProductCard/style.js +1 -1
  1041. package/product/components/ProductCharacteristics/context.js +1 -1
  1042. package/product/components/ProductCharacteristics/helpers/index.js +1 -1
  1043. package/product/components/ProductCharacteristics/index.js +30 -16
  1044. package/product/components/ProductDiscountBadge/index.js +2 -2
  1045. package/product/components/ProductDiscountBadge/spec.js +2 -2
  1046. package/product/components/ProductDiscountBadge/style.js +1 -1
  1047. package/product/components/ProductGrid/components/Item/components/ItemDetails/index.js +8 -0
  1048. package/product/components/ProductGrid/components/Item/components/ItemDetails/spec.js +1 -0
  1049. package/product/components/ProductGrid/components/Item/components/ItemDiscount/index.js +5 -0
  1050. package/product/components/ProductGrid/components/Item/components/ItemFavoritesButton/index.js +5 -0
  1051. package/product/components/ProductGrid/components/Item/components/ItemFavoritesButton/spec.js +1 -0
  1052. package/product/components/ProductGrid/components/Item/components/ItemImage/index.js +5 -0
  1053. package/product/components/ProductGrid/components/Item/components/ItemImage/spec.js +1 -0
  1054. package/product/components/ProductGrid/components/Item/components/ItemName/index.js +5 -0
  1055. package/product/components/ProductGrid/components/Item/components/ItemName/spec.js +1 -0
  1056. package/product/components/ProductGrid/components/Item/components/ItemPrice/index.js +5 -0
  1057. package/product/components/ProductGrid/components/Item/components/ItemPrice/spec.js +1 -0
  1058. package/product/components/ProductGrid/components/Item/index.js +7 -0
  1059. package/product/components/ProductGrid/components/Iterator/index.js +5 -0
  1060. package/product/components/ProductGrid/components/Layout/index.js +5 -0
  1061. package/product/components/ProductGrid/index.js +22 -0
  1062. package/product/components/ProductGrid/spec.js +1 -0
  1063. package/product/components/ProductGridPrice/index.js +4 -4
  1064. package/product/components/ProductGridPrice/style.js +1 -1
  1065. package/product/components/ProductImage/ProductImagePlaceholder.js +5 -0
  1066. package/product/components/ProductImage/connector.js +5 -0
  1067. package/product/components/ProductImage/index.js +17 -13
  1068. package/product/components/ProductImage/spec.js +1 -1
  1069. package/product/components/ProductList/components/Item/index.js +2 -2
  1070. package/product/components/ProductList/components/Iterator/index.js +1 -1
  1071. package/product/components/ProductList/components/Layout/index.js +1 -1
  1072. package/product/components/ProductList/index.js +2 -2
  1073. package/product/components/ProductName/ProductName.js +4 -0
  1074. package/product/components/ProductName/ProductNameContent.js +4 -0
  1075. package/product/components/ProductName/index.js +1 -0
  1076. package/product/components/ProductProperties/Content.js +4 -4
  1077. package/product/components/ProductProperties/Group.js +1 -1
  1078. package/product/components/ProductProperties/GroupedProperties.js +2 -2
  1079. package/product/components/ProductProperties/Lists.js +1 -1
  1080. package/product/components/ProductProperties/ListsHTML.js +5 -0
  1081. package/product/components/ProductProperties/ProductProperties.js +2 -2
  1082. package/product/components/ProductProperties/Row.js +1 -1
  1083. package/product/components/ProductProperties/RowHTML.js +5 -0
  1084. package/product/components/ProductProperties/Rows.js +2 -2
  1085. package/product/components/ProductProperties/Wrapper.js +1 -1
  1086. package/product/components/ProductProperties/helpers/getGroupsFromProperties.js +7 -2
  1087. package/product/components/ProductProperties/style.js +1 -1
  1088. package/product/components/ProductSlider/index.js +4 -3
  1089. package/product/components/ProductSlider/spec.js +1 -1
  1090. package/product/components/ProductVariants/VariantAvailability.connector.js +5 -0
  1091. package/product/components/ProductVariants/VariantAvailability.js +5 -0
  1092. package/product/components/ProductVariants/index.js +1 -0
  1093. package/product/components/QuantityPicker/hooks.js +5 -0
  1094. package/product/components/QuantityPicker/index.js +4 -3
  1095. package/product/components/Rating/index.js +3 -3
  1096. package/product/components/Rating/spec.js +2 -2
  1097. package/product/components/RelationsSlider/RelationsSheet.js +2 -2
  1098. package/product/components/RelationsSlider/RelationsSlider.js +1 -1
  1099. package/product/components/RelationsSlider/RelationsSliderContent.js +1 -1
  1100. package/product/components/RelationsSlider/style.js +1 -1
  1101. package/product/components/Swatch/Swatch.js +1 -1
  1102. package/product/components/Swatch/SwatchContent.js +1 -1
  1103. package/product/components/Swatch/VariantSwatch.js +1 -1
  1104. package/product/components/Swatch/style.js +1 -1
  1105. package/product/components/Swatches/Swatches.js +1 -1
  1106. package/product/components/UnitQuantityPicker/CartUnitQuantityPicker.js +4 -0
  1107. package/product/components/UnitQuantityPicker/ProductUnitQuantityPicker.js +3 -6
  1108. package/product/components/UnitQuantityPicker/UnitQuantityPicker.js +11 -13
  1109. package/product/components/UnitQuantityPicker/UnitQuantityPickerWithSection.js +5 -2
  1110. package/product/components/UnitQuantityPicker/index.js +1 -1
  1111. package/product/components/UnitQuantityPicker/styles.js +1 -0
  1112. package/product/components/context.js +1 -1
  1113. package/product/components/index.js +1 -0
  1114. package/product/constants/index.js +2 -1
  1115. package/product/contexts/index.js +1 -0
  1116. package/product/helpers/index.js +2 -2
  1117. package/product/helpers/redirects.js +2 -2
  1118. package/product/hocs/index.js +1 -0
  1119. package/product/hocs/withMapPricing.js +4 -4
  1120. package/product/hocs/withPriceCalculation.js +2 -2
  1121. package/product/hocs/withProduct.js +6 -0
  1122. package/product/hocs/withProductListEntry.js +1 -1
  1123. package/product/hocs/withProductListEntryProduct.js +12 -0
  1124. package/product/hocs/withProductListType.js +1 -1
  1125. package/product/hooks/index.js +1 -0
  1126. package/product/hooks/useLoadProductImage.js +1 -1
  1127. package/product/index.js +4 -11
  1128. package/product/product.types.js +0 -0
  1129. package/product/{components/ProductProvider → providers/Product}/index.js +1 -1
  1130. package/product/providers/ProductListEntry/context.js +1 -1
  1131. package/product/providers/ProductListEntry/index.js +1 -1
  1132. package/product/providers/ProductListType/context.js +2 -1
  1133. package/product/providers/ProductListType/index.js +2 -1
  1134. package/product/providers/index.js +1 -0
  1135. package/product/selectors/product.js +75 -6
  1136. package/product/selectors/variants.js +4 -1
  1137. package/product/streams/index.js +1 -0
  1138. package/push-opt-in/action-creators/pushOptIn.js +2 -1
  1139. package/push-opt-in/actions/pushOptInModal.js +3 -3
  1140. package/push-opt-in/components/PushOptInModal/index.js +3 -6
  1141. package/push-opt-in/components/PushOptInModal/push-opt-in.svg +58 -58
  1142. package/push-opt-in/reducers/optInModal.js +2 -2
  1143. package/push-opt-in/reducers/optInTrigger.js +2 -2
  1144. package/push-opt-in/selectors/optInModal.js +5 -2
  1145. package/push-opt-in/selectors/optInTrigger.js +4 -2
  1146. package/push-opt-in/subscriptions/index.js +1 -1
  1147. package/push-opt-in/subscriptions/optInTracking.js +4 -0
  1148. package/push-opt-in/subscriptions/optInTrigger.js +6 -6
  1149. package/registration/action-creators/index.js +18 -0
  1150. package/registration/actions/index.js +1 -0
  1151. package/registration/actions/submitRegistration.js +4 -0
  1152. package/registration/components/GuestRegistration/GuestRegistration.js +4 -0
  1153. package/registration/components/GuestRegistration/GuestRegistrationContent.js +4 -0
  1154. package/registration/components/GuestRegistration/GuestRegistrationFormPickup.config.js +8 -0
  1155. package/registration/components/GuestRegistration/GuestRegistrationFormPickup.js +4 -0
  1156. package/registration/components/Registration/Registration.js +4 -0
  1157. package/registration/components/Registration/RegistrationContent.js +4 -0
  1158. package/registration/components/Registration/RegistrationContent.style.js +2 -0
  1159. package/registration/components/Registration/RegistrationFormActions.js +5 -0
  1160. package/registration/components/Registration/RegistrationFormBase.config.js +4 -0
  1161. package/registration/components/Registration/RegistrationFormBase.js +4 -0
  1162. package/registration/components/Registration/RegistrationFormBilling.config.js +5 -0
  1163. package/registration/components/Registration/RegistrationFormBilling.js +5 -0
  1164. package/registration/components/Registration/RegistrationFormExtra.config.js +5 -0
  1165. package/registration/components/Registration/RegistrationFormExtra.js +5 -0
  1166. package/registration/components/Registration/RegistrationFormShipping.config.js +5 -0
  1167. package/registration/components/Registration/RegistrationFormShipping.js +5 -0
  1168. package/registration/components/Registration/RegistrationFormToggle.js +4 -0
  1169. package/registration/components/index.js +1 -0
  1170. package/registration/constants/actionTypes.js +1 -0
  1171. package/registration/constants/index.js +1 -0
  1172. package/registration/constants/pipelines.js +1 -0
  1173. package/registration/hooks/index.js +5 -0
  1174. package/registration/index.js +2 -0
  1175. package/registration/providers/GuestRegistrationProvider.actions.js +4 -0
  1176. package/registration/providers/GuestRegistrationProvider.connector.js +7 -0
  1177. package/registration/providers/GuestRegistrationProvider.constraints.js +18 -0
  1178. package/registration/providers/GuestRegistrationProvider.context.js +1 -0
  1179. package/registration/providers/GuestRegistrationProvider.js +22 -0
  1180. package/registration/providers/RegistrationProvider.actions.js +8 -0
  1181. package/registration/providers/RegistrationProvider.connector.js +6 -0
  1182. package/registration/providers/RegistrationProvider.constraints.js +27 -0
  1183. package/registration/providers/RegistrationProvider.context.js +1 -0
  1184. package/registration/providers/RegistrationProvider.js +17 -0
  1185. package/registration/streams/index.js +4 -0
  1186. package/registration/subscriptions/index.js +5 -0
  1187. package/reviews/actions/index.js +1 -0
  1188. package/reviews/components/Reviews/components/AllReviewsLink/index.js +1 -1
  1189. package/reviews/components/Reviews/components/Header/components/AverageRating/index.js +8 -6
  1190. package/reviews/components/Reviews/components/Header/components/NoReviews/index.js +3 -3
  1191. package/reviews/components/Reviews/components/Header/components/ReviewsExcerpt/index.js +3 -3
  1192. package/reviews/components/Reviews/components/Header/components/ReviewsExcerpt/style.js +1 -1
  1193. package/reviews/components/Reviews/components/Header/components/WriteReviewLink/index.js +3 -3
  1194. package/reviews/components/Reviews/components/Header/components/WriteReviewLink/spec.js +2 -2
  1195. package/reviews/components/Reviews/components/Header/index.js +6 -4
  1196. package/reviews/components/Reviews/components/Header/spec.js +2 -2
  1197. package/reviews/components/Reviews/components/List/components/Info/components/Author/index.js +1 -1
  1198. package/reviews/components/Reviews/components/List/components/Info/components/ReviewDate/index.js +1 -1
  1199. package/reviews/components/Reviews/components/List/components/Info/index.js +2 -2
  1200. package/reviews/components/Reviews/components/List/components/Info/style.js +1 -1
  1201. package/reviews/components/Reviews/components/List/components/Rating/index.js +1 -1
  1202. package/reviews/components/Reviews/components/List/components/Review/index.js +1 -1
  1203. package/reviews/components/Reviews/components/List/components/Text/index.js +1 -1
  1204. package/reviews/components/Reviews/components/List/components/Title/index.js +1 -1
  1205. package/reviews/components/Reviews/components/List/index.js +3 -3
  1206. package/reviews/components/Reviews/components/List/spec.js +1 -1
  1207. package/reviews/components/Reviews/components/RatingCount/index.js +1 -1
  1208. package/reviews/components/Reviews/components/RatingCount/spec.js +1 -1
  1209. package/reviews/components/Reviews/components/RatingCount/style.js +1 -1
  1210. package/reviews/components/Reviews/components/ReviewsInfo/index.js +3 -4
  1211. package/reviews/components/Reviews/connector.js +2 -6
  1212. package/reviews/components/Reviews/index.js +1 -1
  1213. package/reviews/components/Reviews/mock.js +2 -6
  1214. package/reviews/components/Reviews/spec.js +4 -3
  1215. package/reviews/components/index.js +1 -0
  1216. package/reviews/constants/index.js +1 -0
  1217. package/reviews/index.js +3 -6
  1218. package/reviews/selectors/index.js +1 -0
  1219. package/reviews/streams/index.js +1 -0
  1220. package/scanner/action-creators/index.js +1 -0
  1221. package/scanner/actions/index.js +1 -0
  1222. package/scanner/classes/index.js +1 -0
  1223. package/scanner/constants/index.js +1 -0
  1224. package/scanner/helpers/index.js +1 -0
  1225. package/scanner/index.js +1 -6
  1226. package/scanner/streams/index.js +1 -0
  1227. package/search/actions/index.js +1 -0
  1228. package/search/constants/index.js +1 -0
  1229. package/search/helpers/index.js +1 -0
  1230. package/search/index.js +1 -6
  1231. package/search/selectors/index.js +1 -0
  1232. package/search/streams/index.js +1 -0
  1233. package/styles/helpers/color.js +23 -0
  1234. package/styles/helpers/cssCustomProperties.js +16 -0
  1235. package/styles/helpers/index.js +1 -0
  1236. package/styles/helpers/initCSSCustomProperties.js +10 -0
  1237. package/styles/helpers/loadCustomStyles.js +6 -0
  1238. package/styles/helpers/setPageBackgroundColor.js +5 -0
  1239. package/styles/helpers/setPageContentWidth.js +5 -0
  1240. package/styles/helpers/setViewportHeight.js +3 -0
  1241. package/styles/helpers/toggleBodyScroll.js +5 -0
  1242. package/styles/helpers/updatePageInsets.js +15 -0
  1243. package/styles/index.d.ts +17 -0
  1244. package/styles/index.js +1 -0
  1245. package/styles/reset/form.js +8 -0
  1246. package/styles/reset/index.js +1 -0
  1247. package/styles/reset/media.js +1 -0
  1248. package/styles/reset/root.js +3 -0
  1249. package/styles/reset/table.js +1 -0
  1250. package/styles/reset/typography.js +1 -0
  1251. package/styles/theme/createTheme/createBreakpoints.d.ts +114 -0
  1252. package/styles/theme/createTheme/createBreakpoints.js +41 -0
  1253. package/styles/theme/createTheme/createSpacing.d.ts +23 -0
  1254. package/styles/theme/createTheme/createSpacing.js +14 -0
  1255. package/styles/theme/createTheme/index.d.ts +19 -0
  1256. package/styles/theme/createTheme/index.js +5 -0
  1257. package/styles/theme/createTheme/transitions.d.ts +100 -0
  1258. package/styles/theme/createTheme/transitions.js +26 -0
  1259. package/styles/theme/createTheme/zIndex.d.ts +12 -0
  1260. package/styles/theme/createTheme/zIndex.js +3 -0
  1261. package/styles/theme/hooks/index.d.ts +4 -0
  1262. package/styles/theme/hooks/index.js +1 -0
  1263. package/styles/theme/hooks/useActiveBreakpoint.d.ts +18 -0
  1264. package/styles/theme/hooks/useActiveBreakpoint.js +4 -0
  1265. package/styles/theme/hooks/useMediaQuery.d.ts +33 -0
  1266. package/styles/theme/hooks/useMediaQuery.js +20 -0
  1267. package/styles/theme/hooks/useResponsiveValue.d.ts +27 -0
  1268. package/styles/theme/hooks/useResponsiveValue.js +4 -0
  1269. package/styles/theme/hooks/useTheme.d.ts +8 -0
  1270. package/styles/theme/hooks/useTheme.js +4 -0
  1271. package/styles/theme/index.d.ts +8 -0
  1272. package/styles/theme/index.js +1 -0
  1273. package/styles/theme/providers/ActiveBreakpointProvider.d.ts +21 -0
  1274. package/styles/theme/providers/ActiveBreakpointProvider.js +13 -0
  1275. package/styles/theme/providers/ThemeProvider.d.ts +18 -0
  1276. package/styles/theme/providers/ThemeProvider.js +7 -0
  1277. package/styles/tss/index.js +3 -0
  1278. package/tracking/action-creators/cookieConsent.js +2 -2
  1279. package/tracking/actions/cookieConsent.js +17 -5
  1280. package/tracking/components/CookieConsentModal/connector.js +3 -5
  1281. package/tracking/components/CookieConsentModal/index.js +3 -6
  1282. package/tracking/components/CookieConsentModal/tracking-opt-in.svg +14 -14
  1283. package/tracking/components/PrivacySettings/connector.js +3 -5
  1284. package/tracking/components/PrivacySettings/index.js +2 -2
  1285. package/tracking/helpers/index.js +1 -0
  1286. package/tracking/selectors/cookieConsent.js +11 -6
  1287. package/tracking/streams/cookieConsent.js +10 -3
  1288. package/tracking/subscriptions/analytics.js +5 -4
  1289. package/tracking/subscriptions/cookieConsent.js +6 -10
  1290. package/types.js +0 -0
  1291. package/user/index.js +2 -2
  1292. package/user/selectors/data.js +10 -0
  1293. package/components/MessageBar/spec.js +0 -1
  1294. package/components/MessageBar/style.js +0 -2
  1295. package/favorites/constants/constants.js +0 -1
  1296. package/product/components/Characteristics/Characteristic/components/VariantAvailability/connector.js +0 -9
  1297. package/product/components/Characteristics/Characteristic/components/VariantAvailability/index.js +0 -5
  1298. package/product/components/QuantityPicker/helpers.js +0 -5
  1299. /package/product/components/{Characteristics/Characteristic/components/VariantAvailability/style.js → ProductVariants/VariantAvailability.style.js} +0 -0
  1300. /package/product/{components/ProductProvider → providers/Product}/connector.js +0 -0
@@ -0,0 +1,6 @@
1
+ import{hot}from'react-hot-loader/root';import React,{Fragment,useMemo}from'react';import PropTypes from'prop-types';import{css}from'glamor';import{i18n}from'@shopgate/engage/core';import{themeConfig}from'@shopgate/engage';import{Link}from'@shopgate/engage/components';import{useProfileContext}from"../../../account/components/Profile/Profile.provider";import Section from"./CheckoutSection";import{useCheckoutContext}from"../../hooks/common";import{GUEST_CHECKOUT_PATTERN,CHECKOUT_ADDRESS_BOOK_PATH,CHECKOUT_ADDRESS_BOOK_CONTACT_PATTERN}from"../../constants/routes";import{ADDRESS_TYPE_BILLING,ADDRESS_TYPE_SHIPPING}from"../../constants";import iso3166 from"../../../components/Form/Builder/helpers/iso-3166-2";var variables=themeConfig.variables;export var styles={root:css({padding:"0 ".concat(variables.gap.big,"px ").concat(variables.gap.big,"px"),display:'flex',flexDirection:'column',flex:'0 0 auto'}).toString(),card:css({display:'flex',flexDirection:'column',fontSize:15,margin:'8px 0'}).toString(),link:css({fontSize:'0.875rem',color:'var(--color-primary)',textTransform:'uppercase',textAlign:'center'}).toString()};/**
2
+ * CheckoutAddress
3
+ * @param {Object} props The component props
4
+ * @returns {JSX}
5
+ */var CheckoutAddress=function CheckoutAddress(_ref){var _address$middleName,_address$address,_address$address2,_address$address3,_iso3166$address$coun,_iso3166$address$coun2;var type=_ref.type;var _useCheckoutContext=useCheckoutContext(),billingAddress=_useCheckoutContext.billingAddress,shippingAddress=_useCheckoutContext.shippingAddress,orderReserveOnly=_useCheckoutContext.orderReserveOnly,isShippingAddressSelectionEnabled=_useCheckoutContext.isShippingAddressSelectionEnabled,isGuestCheckout=_useCheckoutContext.isGuestCheckout;var _ref2=useProfileContext()||{},_ref2$contacts=_ref2.contacts,contacts=_ref2$contacts===void 0?[]:_ref2$contacts;var address=useMemo(function(){return type===ADDRESS_TYPE_BILLING?billingAddress:shippingAddress;},[billingAddress,shippingAddress,type]);var headline=useMemo(function(){if(type===ADDRESS_TYPE_BILLING&&isGuestCheckout&&orderReserveOnly){return'checkout.billing.headline_reserve';}return"checkout.".concat(type,".headline");},[isGuestCheckout,orderReserveOnly,type]);var editLink=useMemo(function(){if(!address){return null;}if(isGuestCheckout){return"".concat(GUEST_CHECKOUT_PATTERN,"?edit=").concat(type);}return"".concat(CHECKOUT_ADDRESS_BOOK_PATH,"/").concat(type);},[address,isGuestCheckout,type]);var editLabel=useMemo(function(){if(isGuestCheckout){return undefined;}return"checkout.".concat(type,".change");},[isGuestCheckout,type]);var selectAddressLink=useMemo(function(){if(!address&&(!Array.isArray(contacts)||contacts.length===0)){return"".concat(CHECKOUT_ADDRESS_BOOK_CONTACT_PATTERN).replace(':type',type);}return"".concat(CHECKOUT_ADDRESS_BOOK_PATH,"/").concat(type);},[address,contacts,type]);if(isGuestCheckout&&!address){return null;}// Do not try to render the shipping address when it's not a directShip order
6
+ if(type===ADDRESS_TYPE_SHIPPING&&!isShippingAddressSelectionEnabled){return null;}return React.createElement("div",{className:styles.root},React.createElement(Section,{className:styles.card,title:headline,editLink:editLink,editLabel:editLabel},address?React.createElement(Fragment,null,React.createElement("span",null,((_address$middleName=address.middleName)===null||_address$middleName===void 0?void 0:_address$middleName.length)?"".concat(address.firstName," ").concat(address.middleName," ").concat(address.lastName):"".concat(address.firstName," ").concat(address.lastName)),type===ADDRESS_TYPE_BILLING&&isGuestCheckout&&orderReserveOnly&&React.createElement(Fragment,null,React.createElement("span",null,address.emailAddress),React.createElement("span",null,address.mobile)),React.createElement("span",null,address.address1),((_address$address=address.address2)===null||_address$address===void 0?void 0:_address$address.length)?React.createElement("span",null,address.address2):null,((_address$address2=address.address3)===null||_address$address2===void 0?void 0:_address$address2.length)?React.createElement("span",null,address.address3):null,((_address$address3=address.address4)===null||_address$address3===void 0?void 0:_address$address3.length)?React.createElement("span",null,address.address4):null,address.postalCode||address.region||address.city||address.country?React.createElement("span",null,i18n.text("checkout.".concat(type,".address"),{postalCode:address.postalCode||'',region:(iso3166===null||iso3166===void 0?void 0:(_iso3166$address$coun=iso3166[address.country])===null||_iso3166$address$coun===void 0?void 0:(_iso3166$address$coun2=_iso3166$address$coun.divisions)===null||_iso3166$address$coun2===void 0?void 0:_iso3166$address$coun2[address.region])||address.region||'',city:address.city||'',country:address.country||''})):null):React.createElement(Link,{href:selectAddressLink,className:styles.link},i18n.text("checkout.".concat(type,".select_address")))));};CheckoutAddress.defaultProps={type:ADDRESS_TYPE_BILLING};export default hot(CheckoutAddress);
@@ -0,0 +1,4 @@
1
+ import React from'react';import{css}from'glamor';import PropTypes from'prop-types';import{ResponsiveContainer}from'@shopgate/engage/components';import{i18n}from"../../../core/helpers/i18n";import{ResponsiveBackButton}from"../ResponsiveBackButton";var styles={title:css({padding:16,display:'flex',flexDirection:'row',alignItems:'flex-end'}),headline:css({fontSize:'2.125rem',fontWeight:'normal',margin:0,lineHeight:'2.25rem'}),step:css({fontSize:'1rem',lineHeight:1,color:'var(--color-secondary)',paddingLeft:16,margin:0,fontWeight:'400',paddingBottom:2})};/**
2
+ * CheckoutSection component
3
+ * @returns {JSX}
4
+ */var CheckoutTitle=function CheckoutTitle(_ref){var stepFrom=_ref.stepFrom,stepTo=_ref.stepTo,headline=_ref.headline;return React.createElement(ResponsiveContainer,{webOnly:true,breakpoint:">xs"},React.createElement(ResponsiveBackButton,null),React.createElement("div",{className:styles.title},React.createElement("h1",{className:styles.headline},i18n.text(headline)),stepFrom!==null?React.createElement("h2",{className:styles.step},i18n.text('checkout.steps',{from:stepFrom,to:stepTo})):null));};CheckoutTitle.defaultProps={stepFrom:null,stepTo:null,headline:'titles.checkout'};export default CheckoutTitle;
@@ -0,0 +1,8 @@
1
+ import{i18n}from'@shopgate/engage/core/helpers';var pickupFieldActions=[{type:'setVisibility',rules:[{context:'pickupPerson',type:'oneOf',data:['someoneElse']}]}];/**
2
+ * Generates form configuration.
3
+ * @param {Object} options Options for the helper
4
+ * @param {Array} options.supportedCountries A list of supported countries.
5
+ * @param {Array} options.countrySortOrder Sort order for supported countries.
6
+ * @param {Object} options.userLocation User location for better phone picker defaults.
7
+ * @returns {Object}
8
+ */var generateFormConfig=function generateFormConfig(_ref){var supportedCountries=_ref.supportedCountries,countrySortOrder=_ref.countrySortOrder,userLocation=_ref.userLocation;return{fields:{instructions:{type:'text',label:i18n.text('checkout.pickup_contact.form.instructions')},pickupPerson:{type:'radio',label:i18n.text('checkout.pickup_contact.form.who_will_pickup'),options:{me:i18n.text('checkout.pickup_contact.form.me'),someoneElse:i18n.text('checkout.pickup_contact.form.someone_else')}},firstName:{type:'text',actions:pickupFieldActions,label:"".concat(i18n.text('checkout.pickup_contact.form.firstName')," *"),required:true},lastName:{type:'text',actions:pickupFieldActions,label:"".concat(i18n.text('checkout.pickup_contact.form.lastName')," *"),required:true},emailAddress:{type:'email',actions:pickupFieldActions,label:"".concat(i18n.text('checkout.pickup_contact.form.emailAddress')," *"),required:true},mobile:{type:'phone_picker',label:"".concat(i18n.text('checkout.pickup_contact.form.mobile')," *"),required:true,actions:pickupFieldActions,config:{supportedCountries:supportedCountries,countrySortOrder:countrySortOrder,userLocation:userLocation}}}};};export default generateFormConfig;
@@ -0,0 +1,4 @@
1
+ function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import React from'react';import{css}from'glamor';import{themeConfig}from'@shopgate/engage';import{FormBuilder,SurroundPortals}from'@shopgate/engage/components';import{StylePresets}from'@shopgate/engage/components/Form';import generateFormConfig from"./CheckoutPickupContactForm.config";import Section from"./CheckoutSection";import{useCheckoutContext}from"../../hooks/common";import{CHECKOUT_PICKUP_CONTACT_FORM}from"../../constants";var variables=themeConfig.variables;var styles={root:css({padding:16,paddingTop:0,display:'flex',flex:'0 0 auto',flexDirection:'column'}).toString(),h1:css({fontSize:24,marginBottom:4,color:'var(--color-text-high-emphasis)'}).toString(),h2:css({fontSize:16}).toString(),form:css(_extends({' .pickupFormPickupPerson':{marginTop:variables.gap.small},' .pickupFormPickupPerson .me':{marginRight:variables.gap.big},' .pickupFormPickupPerson .label span':{color:'var(--color-text-high-emphasis)',fontWeight:'bold'},' .pickupFormPickupPerson .radioGroup':{marginTop:variables.gap.small,flexDirection:'row',' .uncheckedIcon':{color:'var(--color-text-medium-emphasis)'}}},StylePresets.OUTLINED_FORM_FIELDS)).toString()};/**
2
+ * PickupContactForm
3
+ * @returns {JSX}
4
+ */var PickupContactForm=function PickupContactForm(){var _useCheckoutContext=useCheckoutContext(),supportedCountries=_useCheckoutContext.supportedCountries,countrySortOrder=_useCheckoutContext.countrySortOrder,userLocation=_useCheckoutContext.userLocation,defaultPickupPersonState=_useCheckoutContext.defaultPickupPersonState,formValidationErrors=_useCheckoutContext.formValidationErrors,formSetValues=_useCheckoutContext.formSetValues,isPickupContactSelectionEnabled=_useCheckoutContext.isPickupContactSelectionEnabled;var formConfig=React.useMemo(function(){return generateFormConfig({supportedCountries:supportedCountries,countrySortOrder:countrySortOrder,userLocation:userLocation});},[countrySortOrder,supportedCountries,userLocation]);var handleUpdate=React.useCallback(function(values){formSetValues(values);},[formSetValues]);if(!isPickupContactSelectionEnabled){return null;}return React.createElement(SurroundPortals,{portalName:CHECKOUT_PICKUP_CONTACT_FORM},React.createElement("div",{className:styles.root},React.createElement(Section,{title:"checkout.pickup_contact.headline",hasForm:true},React.createElement(FormBuilder,{className:styles.form,name:"PickupForm",config:formConfig,defaults:defaultPickupPersonState,validationErrors:formValidationErrors,handleUpdate:handleUpdate}))));};export default PickupContactForm;
@@ -0,0 +1,4 @@
1
+ function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React,{Fragment}from'react';import{css}from'glamor';import classNames from'classnames';import PropTypes from'prop-types';import{Card,Link}from'@shopgate/engage/components';import{themeConfig}from'@shopgate/pwa-common/helpers/config';import CheckoutSectionInfo from"./CheckoutSectionInfo";import CheckoutSectionMessages from"./CheckoutSectionMessages";import{i18n}from"../../../core/helpers/i18n";var variables=themeConfig.variables;var styles={headline:css({fontSize:'1.25rem',fontWeight:'normal',margin:"0 0 ".concat(variables.gap.small,"px 0"),color:'var(--color-text-high-emphasis)',textTransform:'none'}),card:css({display:'flex',flexDirection:'row',fontSize:15,width:'100%',overflow:'inherit !important',marginBottom:variables.gap.big,boxShadow:'none',background:'var(--color-background-accent)',padding:"".concat(variables.gap.small,"px ").concat(variables.gap.big,"px"),margin:0}),cardWithForm:css({background:'inherit !important',boxShadow:'none !important',padding:'0px !important'}).toString(),table:css({' td':{padding:"".concat(variables.gap.xsmall,"px 0")},' td:last-child':{textAlign:'right',whiteSpace:'pre-wrap',paddingLeft:variables.gap.xsmall},' tr:nth-last-child(2) td':{paddingBottom:8},' tr:last-child td':{paddingTop:8,borderTop:'1px solid #979797',fontWeight:'600'}}),actionsContainer:css({flex:1,display:'table',width:'100%'}).toString(),link:css({fontSize:'0.875rem',color:'var(--color-primary)',textTransform:'uppercase'}).toString(),actions:css({paddingTop:8}).toString(),labelWithInfoIcon:css({paddingRight:variables.gap.small}).toString()};/**
2
+ * CheckoutSection component
3
+ * @returns {JSX}
4
+ */var CheckoutSection=function CheckoutSection(_ref){var title=_ref.title,className=_ref.className,content=_ref.content,children=_ref.children,hasForm=_ref.hasForm,editLink=_ref.editLink,editLabel=_ref.editLabel,id=_ref.id;return React.createElement(Fragment,null,title&&React.createElement("h3",{className:styles.headline,id:id},i18n.text(title)),React.createElement(Card,{className:classNames(styles.card.toString(),_defineProperty({},styles.cardWithForm.toString(),hasForm)),id:!title?id:null},React.createElement("div",{className:"".concat(styles.actionsContainer," ").concat(className)},children||null,content&&React.createElement("table",{className:styles.table},React.createElement("tbody",null,content.map(function(_ref2){var label=_ref2.label,text=_ref2.text,info=_ref2.info,messages=_ref2.messages;var hasMessages=Array.isArray(messages)&&messages.length>0;var hasError=false;if(hasMessages){hasError=!!messages.find(function(_ref3){var type=_ref3.type;return type==='error';});}return React.createElement(Fragment,{key:label},React.createElement("tr",null,React.createElement("td",null,React.createElement(Fragment,null,React.createElement("span",{className:classNames(_defineProperty({},styles.labelWithInfoIcon,!!info))},label),!hasError&&React.createElement(CheckoutSectionInfo,{text:info}))),React.createElement("td",null,text)),hasMessages&&React.createElement("tr",null,React.createElement("td",{colSpan:"2",style:{textAlign:'left',paddingLeft:0}},React.createElement(CheckoutSectionMessages,{messages:messages}),hasError&&React.createElement(CheckoutSectionInfo,{text:info,renderIcon:false}))));})))),editLink?React.createElement("div",{className:styles.actions},React.createElement(Link,{tag:"a",className:styles.link,href:editLink},i18n.text(editLabel))):null));};CheckoutSection.defaultProps={title:null,className:'',children:null,content:null,hasForm:false,editLink:null,editLabel:'checkout.billing.edit',id:null};export default CheckoutSection;
@@ -0,0 +1,4 @@
1
+ function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React,{useCallback}from'react';import{css}from'glamor';import PropTypes from'prop-types';import{connect}from'react-redux';import{InfoIcon}from'@shopgate/engage/components';import{nl2br,showModal as showModalAction}from'@shopgate/engage/core';import{responsiveMediaQuery}from'@shopgate/engage/styles';import{themeConfig}from'@shopgate/pwa-common/helpers/config';var mapDispatchToProps={showModal:showModalAction};var variables=themeConfig.variables;var styles={textWrapper:css({paddingTop:variables.gap.xsmall,fontSize:'0.75rem',color:'var(--color-state-alert)'}).toString(),iconWrapper:css(_defineProperty({cursor:'pointer',color:'var(--color-primary)',fontSize:'1.5rem',display:'inline-flex',verticalAlign:'bottom'},responsiveMediaQuery('<=xs',{appAlways:true}),{fontSize:'1.375rem'})).toString()};/**
2
+ * @param {Object} props The components props
3
+ * @returns {JSX}
4
+ */var CheckoutSectionInfo=function CheckoutSectionInfo(_ref){var text=_ref.text,showModal=_ref.showModal,renderIcon=_ref.renderIcon;var showPopup=useCallback(function(){showModal({message:text,title:null,confirm:null,dismiss:'modal.ok'});},[showModal,text]);if(!text){return null;}if(!renderIcon){return React.createElement("div",{className:styles.textWrapper,dangerouslySetInnerHTML:{__html:nl2br(text)}});}return React.createElement("span",{onClick:showPopup,onKeyDown:showPopup,className:styles.iconWrapper,role:"button",tabIndex:0},React.createElement(InfoIcon,null));};CheckoutSectionInfo.defaultProps={text:null,renderIcon:true};export default connect(null,mapDispatchToProps)(CheckoutSectionInfo);
@@ -0,0 +1,4 @@
1
+ function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React from'react';import PropTypes from'prop-types';import classNames from'classnames';import{css}from'glamor';import{errorBehavior}from'@shopgate/engage/core';import{themeConfig}from'@shopgate/pwa-common/helpers/config';var variables=themeConfig.variables;var styles={wrapper:css({paddingTop:variables.gap.xsmall}).toString(),message:css({fontSize:' 0.75rem'}).toString(),error:css({color:'var(--color-state-alert)'}).toString(),warning:css({color:'var(--color-state-warning)'}).toString(),info:css({color:'var(--color-state-ok)'}).toString()};/**
2
+ * @param {Object} props The component props
3
+ * @returns {JSX}
4
+ */var CheckoutSectionMessages=function CheckoutSectionMessages(_ref){var messages=_ref.messages;if(!Array.isArray(messages)||messages.length===0){return null;}return React.createElement("ul",{className:styles.wrapper},messages.map(function(_ref2){var message=_ref2.message,additionalParams=_ref2.additionalParams,type=_ref2.type;return React.createElement("li",{key:message,className:classNames(styles.message,_defineProperty(_defineProperty(_defineProperty({},styles.error,type==='error'),styles.warning,type==='warning'),styles.info,type==='info'))},errorBehavior.getErrorMessage(message,additionalParams));}));};CheckoutSectionMessages.defaultProps={messages:null};export default CheckoutSectionMessages;
@@ -0,0 +1,4 @@
1
+ import React,{useMemo}from'react';import{css}from'glamor';import{i18n}from'@shopgate/engage/core';import TimeIcon from'@shopgate/pwa-ui-shared/icons/TimeIcon';import moment from'moment';import Section from"./CheckoutSection";import{useCheckoutContext}from"../../hooks/common";var styles={root:css({padding:16,paddingTop:0,display:'flex',flexDirection:'column',flex:'0 0 auto'}).toString(),card:css({marginTop:8}).toString(),time:css({marginBottom:4,display:'flex',flexDirection:'row',alignItems:'center'}).toString(),timeText:css({marginLeft:8})};/**
2
+ * Billing
3
+ * @returns {JSX}
4
+ */var Billing=function Billing(){var _useCheckoutContext=useCheckoutContext(),taxLines=_useCheckoutContext.taxLines,fulfillmentSlot=_useCheckoutContext.fulfillmentSlot;var content=useMemo(function(){return taxLines.filter(function(t){return t.visible;}).map(function(t){var text=null;if(t.value!==null){if(t.type==='shippingTotal'&&t.value===0){text=i18n.text('shipping.free_short');}else{text=i18n.price(t.value,t.currencyCode,2);}}return{label:t.label===null?i18n.text("checkout.summary.".concat(t.type)):t.label,text:text,info:t.info||null,messages:t.messages||null};});},[taxLines]);return React.createElement("div",{className:styles.root},React.createElement(Section,{className:styles.card,title:"checkout.summary.headline",content:content},fulfillmentSlot?React.createElement("div",{className:styles.time},React.createElement(TimeIcon,{size:20}),React.createElement("span",{className:styles.timeText},moment(fulfillmentSlot===null||fulfillmentSlot===void 0?void 0:fulfillmentSlot.date,'YYYY-MM-DD').format('ll'),' ',moment(fulfillmentSlot===null||fulfillmentSlot===void 0?void 0:fulfillmentSlot.from,'HH:mm').format('LT'),' - ',moment(fulfillmentSlot===null||fulfillmentSlot===void 0?void 0:fulfillmentSlot.to,'HH:mm').format('LT'))):null));};export default Billing;
@@ -0,0 +1,3 @@
1
+ import{connect}from'react-redux';import{isUserLoggedIn}from'@shopgate/pwa-common/selectors/user';import{fetchCheckoutOrder}from"../../actions/fetchCheckoutOrder";/**
2
+ * @return {Function}
3
+ */var makeMapStateToProps=function makeMapStateToProps(){return function(state){return{isUserLoggedIn:isUserLoggedIn(state)};};};var mapDispatchToProps={fetchCheckoutOrder:fetchCheckoutOrder};export default connect(makeMapStateToProps,mapDispatchToProps);
@@ -0,0 +1,7 @@
1
+ import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance");}function _iterableToArrayLimit(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React,{useMemo,useEffect,useState}from'react';import{hot}from'react-hot-loader/root';import PropTypes from'prop-types';import{css}from'glamor';import{ResponsiveContainer,RippleButton}from'@shopgate/engage/components';import{responsiveMediaQuery}from'@shopgate/engage/styles';import{CartItems}from'@shopgate/engage/cart';import{themeConfig}from'@shopgate/pwa-common/helpers/config';import{useRoute}from'@shopgate/engage/core';import{i18n}from"../../../core/helpers/i18n";import{convertLineItemsToCartItems,isReserveOnlyOrder,isDirectShipOnlyOrder}from"../../helpers";import{ResponsiveBackButton}from"../ResponsiveBackButton";import CheckoutConfirmationPickUpContact from"./CheckoutConfirmationPickUpContact";import CheckoutConfirmationOrderContact from"./CheckoutConfirmationOrderContact";import CheckoutConfirmationPickupNotes from"./CheckoutConfirmationPickupNotes";import CheckoutConfirmationBilledTo from"./CheckoutConfirmationBilledTo";import CheckoutConfirmationShippedTo from"./CheckoutConfirmationShippedTo";import CheckoutConfirmationOrderSummary from"./CheckoutConfirmationOrderSummary";import{SupplementalContent}from"../SupplementalContent";import connect from"./CheckoutConfirmation.connector";var variables=themeConfig.variables;var style={root:css({display:'flex',flexDirection:'row'}),main:css(_defineProperty({flex:1},responsiveMediaQuery('>=md',{webOnly:true}),{paddingRight:16})),side:css(_defineProperty({},responsiveMediaQuery('>=md',{webOnly:true}),{marginTop:134,marginLeft:variables.gap.big*-1,flex:0.45})),cartItems:css({marginBottom:32}),container:css(_defineProperty({padding:"".concat(variables.gap.big,"px ").concat(variables.gap.small*1.5,"px 0 ").concat(variables.gap.xbig,"px")},responsiveMediaQuery('<sm'),{paddingLeft:variables.gap.big})),backButtonContainer:css(_defineProperty({paddingLeft:variables.gap.big,display:'none'},responsiveMediaQuery('>=sm',{webOnly:true}),{display:'block'})),heading:css({fontSize:'2.125rem',fontWeight:'normal',margin:0,lineHeight:'2.25rem',paddingBottom:variables.gap.xbig}),yourItemsHeading:css({fontSize:'1.25rem',fontWeight:'bold',margin:"".concat(variables.gap.bigger,"px 0 0")}),instructions:css({marginBottom:variables.gap.xbig}),body:css({border:0,fontSize:'0.875rem',lineHeight:'1.25rem'}),orderNum:css({padding:0,fontSize:'1.25rem',fontWeight:500,lineHeight:'1.5rem',margin:"0 0 ".concat(variables.gap.big,"px"),border:0}),button:css(_defineProperty({flex:'0 0 auto !important',borderRadius:'2px !important',minWidth:'50% !important'},responsiveMediaQuery('<md'),{width:'100%'})),buttonWrapper:css({padding:variables.gap.big}),supplementalWrapper:css({padding:"".concat(variables.gap.xbig,"px ").concat(variables.gap.big,"px")}).toString()};/**
2
+ * CheckoutConfirmation component
3
+ * @returns {JSX}
4
+ */var CheckoutConfirmation=function CheckoutConfirmation(_ref){var onContinueShopping=_ref.onContinueShopping,isUserLoggedIn=_ref.isUserLoggedIn,fetchCheckoutOrder=_ref.fetchCheckoutOrder;var _useRoute=useRoute(),order=_useRoute.state.order,query=_useRoute.query;var _useState=useState(null),_useState2=_slicedToArray(_useState,2),orderData=_useState2[0],setOrderData=_useState2[1];// Finding the source of order data.
5
+ // Either from the route state or from a pipeline request.
6
+ useEffect(function(){/** */var handleFetch=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var data;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.next=2;return fetchCheckoutOrder();case 2:data=_context.sent;setOrderData(data);case 4:case"end":return _context.stop();}},_callee);}));return function handleFetch(){return _ref2.apply(this,arguments);};}();if(!order){handleFetch();return;}setOrderData(order);},[fetchCheckoutOrder,order,query]);// Map order data to more UI friendly format.
7
+ var _useMemo=useMemo(function(){if(!orderData){return{};}return{orderNumber:orderData.orderNumber,date:orderData.date,cartItems:convertLineItemsToCartItems(orderData.lineItems),isReserveOnly:isReserveOnlyOrder(orderData),isDirectShipOnly:isDirectShipOnlyOrder(orderData),currencyOverride:orderData.currencyCode};},[orderData]),orderNumber=_useMemo.orderNumber,date=_useMemo.date,cartItems=_useMemo.cartItems,isReserveOnly=_useMemo.isReserveOnly,isDirectShipOnly=_useMemo.isDirectShipOnly,currencyOverride=_useMemo.currencyOverride;if(!orderData||!cartItems){return null;}return React.createElement("div",{className:style.root},React.createElement("div",{className:style.main},React.createElement("div",{className:style.backButtonContainer},React.createElement(ResponsiveBackButton,{label:"checkout.success.continue",onClick:onContinueShopping})),React.createElement("div",{className:style.container},React.createElement("h2",{className:style.heading},i18n.text('checkout.success.title')),React.createElement("p",{className:style.orderNum},i18n.text('checkout.success.order_date',{date:i18n.date(new Date(date).getTime(),'short')}),' | ',i18n.text('checkout.success.order_number',{orderNumber:orderNumber})),React.createElement("div",{className:style.instructions},React.createElement("p",{className:style.body},i18n.text('checkout.success.instructions_1')),React.createElement("p",{className:style.body},i18n.text('checkout.success.instructions_2')))),React.createElement("div",{className:style.cartItems},React.createElement(CartItems,{cartItems:cartItems,onFocus:function onFocus(){},multiLineReservation:true,editable:false,isCheckoutConfirmation:true,isDirectShipOnly:isDirectShipOnly,currencyOverride:currencyOverride})),React.createElement(ResponsiveContainer,{breakpoint:"<md",appAlways:true},React.createElement(CheckoutConfirmationPickUpContact,{order:orderData}),React.createElement(CheckoutConfirmationPickupNotes,{order:orderData}),React.createElement(CheckoutConfirmationShippedTo,{order:orderData}),!isUserLoggedIn&&isReserveOnly?React.createElement(CheckoutConfirmationOrderContact,{order:orderData}):React.createElement(CheckoutConfirmationBilledTo,{order:orderData}),React.createElement(CheckoutConfirmationOrderSummary,{order:orderData}),React.createElement(SupplementalContent,{className:style.supplementalWrapper})),React.createElement("div",{className:style.buttonWrapper},React.createElement(RippleButton,{type:"secondary",disabled:false,className:style.button.toString(),onClick:onContinueShopping},i18n.text('checkout.success.continue')))),React.createElement("div",{className:style.side},React.createElement(ResponsiveContainer,{breakpoint:">=md",webOnly:true},React.createElement(CheckoutConfirmationPickUpContact,{order:orderData}),React.createElement(CheckoutConfirmationPickupNotes,{order:orderData}),React.createElement(CheckoutConfirmationShippedTo,{order:orderData}),!isUserLoggedIn&&isReserveOnly?React.createElement(CheckoutConfirmationOrderContact,{order:orderData}):React.createElement(CheckoutConfirmationBilledTo,{order:orderData}),React.createElement(CheckoutConfirmationOrderSummary,{order:orderData}),React.createElement(SupplementalContent,{className:style.supplementalWrapper}))));};export default hot(connect(CheckoutConfirmation));
@@ -0,0 +1,4 @@
1
+ function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance");}function _iterableToArrayLimit(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}import React,{useMemo}from'react';import PropTypes from'prop-types';import startCase from'lodash/startCase';import{i18n}from"../../../core/helpers/i18n";import CheckoutConfirmationSection from"./CheckoutConfirmationSection";/**
2
+ * CheckoutConfirmationBilledTo component
3
+ * @returns {JSX}
4
+ */var CheckoutConfirmationBilledTo=function CheckoutConfirmationBilledTo(_ref){var order=_ref.order,className=_ref.className;var content=useMemo(function(){var billing=order.addressSequences.find(function(address){return address.type==='billing';});var firstName=billing.firstName,lastName=billing.lastName,address1=billing.address1,city=billing.city,region=billing.region,postalCode=billing.postalCode;var _ref2=order.paymentTransactions||[{}],_ref3=_slicedToArray(_ref2,1),_ref3$=_ref3[0],payment=_ref3$===void 0?{}:_ref3$;var _payment$paymentInfo=payment.paymentInfo,_payment$paymentInfo2=_payment$paymentInfo===void 0?{}:_payment$paymentInfo,_payment$paymentInfo3=_payment$paymentInfo2.card,_payment$paymentInfo4=_payment$paymentInfo3===void 0?{}:_payment$paymentInfo3,type=_payment$paymentInfo4.type,last4=_payment$paymentInfo4.last4,paymentType=_payment$paymentInfo2.type;var hasPayment=order.paymentTransactions&&order.paymentTransactions[0];var address=["".concat(firstName," ").concat(lastName),"".concat(address1||''),"".concat(city?"".concat(city,","):''," ").concat(city&&region?region:''," ").concat(postalCode||'')].filter(Boolean).join('\n');return[].concat(hasPayment&&paymentType==='cc'?[{label:i18n.text('checkout.success.card_holder'),text:address}]:[{label:i18n.text('checkout.success.address'),text:address}],hasPayment&&paymentType==='cc'?[{label:i18n.text('checkout.success.payment_method'),text:"".concat(startCase(type)," **** **** ").concat(last4)}]:[],hasPayment&&paymentType==='paypal'?[{label:i18n.text('checkout.success.payment_method'),text:'PayPal'}]:[]);},[order]);return React.createElement(CheckoutConfirmationSection,{title:"checkout.success.billed_to",content:content,className:className});};CheckoutConfirmationBilledTo.defaultProps={className:null};export default CheckoutConfirmationBilledTo;
@@ -0,0 +1,4 @@
1
+ import React,{useMemo}from'react';import PropTypes from'prop-types';import{i18n}from"../../../core/helpers/i18n";import CheckoutConfirmationSection from"./CheckoutConfirmationSection";/**
2
+ * CheckoutConfirmationOrderContact component
3
+ * @returns {JSX}
4
+ */var CheckoutConfirmationOrderContact=function CheckoutConfirmationOrderContact(_ref){var order=_ref.order,className=_ref.className;var content=useMemo(function(){var pickup=order.addressSequences.find(function(address){return address.type==='billing';});var firstName=pickup.firstName,lastName=pickup.lastName,phone=pickup.phone,mobile=pickup.mobile,emailAddress=pickup.emailAddress;var entries=[{label:i18n.text('checkout.success.name'),text:"".concat(firstName," ").concat(lastName)}];if(emailAddress){entries.push({label:i18n.text('checkout.success.email_address'),text:emailAddress});}if(mobile){entries.push({label:i18n.text('checkout.success.phone_number'),text:mobile});}else if(phone){entries.push({label:i18n.text('checkout.success.phone_number'),text:phone});}return entries;},[order]);return React.createElement(CheckoutConfirmationSection,{title:"checkout.success.order_contact",content:content,className:className});};CheckoutConfirmationOrderContact.defaultProps={className:null};export default CheckoutConfirmationOrderContact;
@@ -0,0 +1,4 @@
1
+ import React,{useMemo}from'react';import PropTypes from'prop-types';import{css}from'glamor';import TimeIcon from'@shopgate/pwa-ui-shared/icons/TimeIcon';import moment from'moment';import{i18n}from"../../../core/helpers/i18n";import CheckoutConfirmationSection from"./CheckoutConfirmationSection";import{getCheckoutTaxLinesFromOrder}from"../../helpers";var styles={time:css({marginBottom:4,display:'flex',flexDirection:'row',alignItems:'center'}).toString(),timeText:css({marginLeft:8})};/**
2
+ * CheckoutConfirmationOrderSummary component
3
+ * @returns {JSX}
4
+ */var CheckoutConfirmationOrderSummary=function CheckoutConfirmationOrderSummary(_ref){var _order$lineItems$;var order=_ref.order,className=_ref.className;var content=useMemo(function(){return getCheckoutTaxLinesFromOrder(order).filter(function(t){return t.visible;}).map(function(t){var text=null;if(t.value!==null){if(t.type==='shippingTotal'&&t.value===0){text=i18n.text('shipping.free_short');}else{text=i18n.price(t.value,t.currencyCode,2);}}return{label:t.label===null?i18n.text("checkout.summary.".concat(t.type)):t.label,text:text};});},[order]);var fulfillmentSlot=order===null||order===void 0?void 0:(_order$lineItems$=order.lineItems[0])===null||_order$lineItems$===void 0?void 0:_order$lineItems$.fulfillmentSlot;return React.createElement(CheckoutConfirmationSection,{title:"checkout.success.order_summary",content:content,isSummary:true,className:className},fulfillmentSlot?React.createElement("div",{className:styles.time},React.createElement(TimeIcon,{size:20}),React.createElement("span",{className:styles.timeText},moment(fulfillmentSlot===null||fulfillmentSlot===void 0?void 0:fulfillmentSlot.date,'YYYY-MM-DD').format('ll'),' ',moment(fulfillmentSlot===null||fulfillmentSlot===void 0?void 0:fulfillmentSlot.from,'HH:mm').format('LT'),' - ',moment(fulfillmentSlot===null||fulfillmentSlot===void 0?void 0:fulfillmentSlot.to,'HH:mm').format('LT'))):null);};CheckoutConfirmationOrderSummary.defaultProps={className:null};export default CheckoutConfirmationOrderSummary;
@@ -0,0 +1,4 @@
1
+ import React,{useMemo}from'react';import PropTypes from'prop-types';import{i18n}from"../../../core/helpers/i18n";import CheckoutConfirmationSection from"./CheckoutConfirmationSection";/**
2
+ * CheckoutConfirmationPickUpContact component
3
+ * @returns {JSX}
4
+ */var CheckoutConfirmationPickUpContact=function CheckoutConfirmationPickUpContact(_ref){var order=_ref.order,className=_ref.className;var content=useMemo(function(){var pickup=order.addressSequences.find(function(address){return address.type==='pickup';});if(!pickup){return null;}var firstName=pickup.firstName,lastName=pickup.lastName,phone=pickup.phone,mobile=pickup.mobile,emailAddress=pickup.emailAddress;var entries=[{label:i18n.text('checkout.success.name'),text:"".concat(firstName," ").concat(lastName)}];if(emailAddress){entries.push({label:i18n.text('checkout.success.email_address'),text:emailAddress});}if(mobile){entries.push({label:i18n.text('checkout.success.phone_number'),text:mobile});}else if(phone){entries.push({label:i18n.text('checkout.success.phone_number'),text:phone});}return entries;},[order]);if(!content){return null;}return React.createElement(CheckoutConfirmationSection,{title:"checkout.success.pick_up_contact",content:content,className:className});};CheckoutConfirmationPickUpContact.defaultProps={className:null};export default CheckoutConfirmationPickUpContact;
@@ -0,0 +1,4 @@
1
+ import React from'react';import PropTypes from'prop-types';import CheckoutConfirmationSection from"./CheckoutConfirmationSection";/**
2
+ * CheckoutConfirmationPickupNotes component
3
+ * @returns {JSX}
4
+ */var CheckoutConfirmationPickupNotes=function CheckoutConfirmationPickupNotes(_ref){var order=_ref.order,className=_ref.className;if(!order.notes){return null;}return React.createElement(CheckoutConfirmationSection,{title:"checkout.success.pickup_notes",content:order.notes,className:className});};CheckoutConfirmationPickupNotes.defaultProps={className:null};export default CheckoutConfirmationPickupNotes;
@@ -0,0 +1,4 @@
1
+ function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import React,{Fragment}from'react';import{css}from'glamor';import classNames from'classnames';import PropTypes from'prop-types';import{Card,TextLink}from'@shopgate/engage/components';import{themeConfig}from'@shopgate/pwa-common/helpers/config';import{isIOSTheme}from'@shopgate/engage/core';import{i18n}from"../../../core/helpers/i18n";var colors=themeConfig.colors,variables=themeConfig.variables;var styles={wrapper:css({padding:"".concat(variables.gap.bigger,"px ").concat(variables.gap.big,"px 0 ").concat(variables.gap.big,"px")}).toString(),headline:css(_extends({color:colors.shade3,fontSize:'1rem',fontWeight:'normal',textTransform:'uppercase',paddingBottom:variables.gap.small,margin:0},!isIOSTheme()?{fontSize:'1.25rem',lineHeight:'1.5rem',fontWeight:500,color:'var(--color-text-high-emphasis)',textTransform:'none'}:{})),link:css({color:"var(--color-primary, ".concat(colors.primary,") !important")}).toString(),card:css(_extends({fontSize:'0.875rem',lineHeight:'1.25rem',margin:0,padding:variables.gap.big,color:'var(--color-text-medium-emphasis)',flex:'1 0 auto'},!isIOSTheme()?{background:'var(--color-background-accent)',boxShadow:'none'}:{})).toString(),cardWithForm:css(_extends({},!isIOSTheme()?{background:'inherit',boxShadow:'none',padding:0}:{})).toString(),list:css({margin:0}),listTitle:css({fontSize:'0.625rem',lineHeight:'1rem',fontWeight:'bold',letterSpacing:'1.5px',textTransform:'uppercase',color:'var(--color-text-high-emphasis)',':not(:first-child)':{paddingTop:variables.gap.xsmall*3}}),listEntry:css({fontSize:'0.875rem',lineHeight:'1.5rem',marginLeft:0,whiteSpace:'pre-line',wordBreak:'break-all',color:'var(--color-text-medium-emphasis)'}),table:css({color:'var(--color-text-high-emphasis)',' td':{padding:"".concat(variables.gap.xsmall,"px 0")},' td:last-child':{textAlign:'right',whiteSpace:'pre-wrap',paddingLeft:variables.gap.xsmall},' tr:nth-last-child(2) td':{paddingBottom:8},' tr:last-child td':{fontSize:'1rem',paddingTop:8,borderTop:'1px solid #979797',fontWeight:'bold'}})};/**
2
+ * CheckoutConfirmationSegment component
3
+ * @returns {JSX}
4
+ */var CheckoutConfirmationSegment=function CheckoutConfirmationSegment(_ref){var title=_ref.title,content=_ref.content,children=_ref.children,hasForm=_ref.hasForm,isSummary=_ref.isSummary,className=_ref.className;if(!content){return null;}var isString=typeof content==='string';return React.createElement(Fragment,null,React.createElement("div",{className:classNames(styles.wrapper,className)},React.createElement("h3",{className:styles.headline},i18n.text(title)),React.createElement(Card,{className:classNames(styles.card,_defineProperty({},styles.cardWithForm,hasForm))},isString&&React.createElement("span",null,content),!isString&&!isSummary&&React.createElement("dl",{className:styles.list},content.map(function(_ref2){var label=_ref2.label,text=_ref2.text,link=_ref2.link;return React.createElement(Fragment,{key:label||text},label&&React.createElement("dt",{className:styles.listTitle},i18n.text(label)),link?React.createElement("dd",{className:styles.listEntry},React.createElement(TextLink,{href:link,className:styles.link},React.createElement("span",{dangerouslySetInnerHTML:{__html:text}}))):React.createElement("dd",{className:styles.listEntry,dangerouslySetInnerHTML:{__html:text}}));})),children,isSummary&&React.createElement("table",{className:styles.table},React.createElement("tbody",null,content.map(function(_ref3){var label=_ref3.label,text=_ref3.text;return React.createElement("tr",{key:label||text},label&&React.createElement("td",null,i18n.text(label)),React.createElement("td",{dangerouslySetInnerHTML:{__html:text}}));}))))));};CheckoutConfirmationSegment.defaultProps={children:null,content:null,hasForm:false,isSummary:false,className:null};export default CheckoutConfirmationSegment;
@@ -0,0 +1,4 @@
1
+ import React,{useMemo}from'react';import PropTypes from'prop-types';import{i18n}from"../../../core/helpers/i18n";import CheckoutConfirmationSection from"./CheckoutConfirmationSection";/**
2
+ * CheckoutConfirmationShippedTo component
3
+ * @returns {JSX}
4
+ */var CheckoutConfirmationShippedTo=function CheckoutConfirmationShippedTo(_ref){var order=_ref.order,className=_ref.className;var content=useMemo(function(){var _orderSegment$selecte,_orderSegment$selecte2;var shipping=order.addressSequences.find(function(address){return address.type==='shipping';});if(!shipping){return null;}var firstName=shipping.firstName,lastName=shipping.lastName,address1=shipping.address1,city=shipping.city,region=shipping.region,postalCode=shipping.postalCode,orderSegment=shipping.orderSegment;var shippingMethodServiceLevel=orderSegment===null||orderSegment===void 0?void 0:(_orderSegment$selecte=orderSegment.selectedShippingMethod)===null||_orderSegment$selecte===void 0?void 0:(_orderSegment$selecte2=_orderSegment$selecte.serviceLevel)===null||_orderSegment$selecte2===void 0?void 0:_orderSegment$selecte2.name;var address=["".concat(firstName," ").concat(lastName),"".concat(address1||''),"".concat(city?"".concat(city,","):''," ").concat(city&&region?region:''," ").concat(postalCode||'')].filter(Boolean).join('\n');return[{label:i18n.text('checkout.success.address'),text:address}].concat(shippingMethodServiceLevel?{label:i18n.text('checkout.success.shipping_method'),text:shippingMethodServiceLevel}:[]);},[order]);if(!content){return null;}return React.createElement(CheckoutConfirmationSection,{title:"checkout.success.shipped_to",content:content,className:className});};CheckoutConfirmationShippedTo.defaultProps={className:null};export default CheckoutConfirmationShippedTo;
@@ -0,0 +1 @@
1
+ export{default as CheckoutConfirmationPickUpContact}from"./CheckoutConfirmationPickUpContact";export{default as CheckoutConfirmationOrderContact}from"./CheckoutConfirmationOrderContact";export{default as CheckoutConfirmationBilledTo}from"./CheckoutConfirmationBilledTo";export{default as CheckoutConfirmationShippedTo}from"./CheckoutConfirmationShippedTo";export{default as CheckoutConfirmationOrderSummary}from"./CheckoutConfirmationOrderSummary";export{default as CheckoutConfirmationSection}from"./CheckoutConfirmationSection";
@@ -0,0 +1,4 @@
1
+ function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React from'react';import{css}from'glamor';import{ResponsiveContainer}from'@shopgate/engage/components';import{responsiveMediaQuery}from'@shopgate/engage/styles';import Header from"../Checkout/CheckoutHeader";import{GUEST_CHECKOUT_PAYMENT_PATTERN}from"../../constants/routes";import CheckoutProvider from"../../providers/CheckoutProvider";import PaymentProvider from"../../paymentMethods";import{ADDRESS_TYPE_BILLING,ADDRESS_TYPE_SHIPPING}from"../../constants";import Address from"../Checkout/CheckoutAddress";import Summary from"../Checkout/CheckoutSummary";import Actions from"../Checkout/CheckoutActions";import Pickup from"./GuestCheckoutPickup";import PickupNotes from"./GuestCheckoutPickupNotes";import GuestCheckoutOptIn from"./GuestCheckoutOptIn";import{ShippingMethods}from"../ShippingMethods";var styles={root:css({display:'flex',flexDirection:'row'}),main:css(_defineProperty({flex:1,paddingTop:16},responsiveMediaQuery('>=md',{webOnly:true}),{paddingRight:16,paddingTop:0})),side:css(_defineProperty({},responsiveMediaQuery('>=md',{webOnly:true}),{flex:0.6}))};/**
2
+ * The Cart component.
3
+ * @returns {JSX}
4
+ */var GuestCheckout=function GuestCheckout(){return React.createElement(CheckoutProvider,{pathPattern:GUEST_CHECKOUT_PAYMENT_PATTERN,orderInitialized:true,orderReadOnly:true,isGuestCheckout:true},React.createElement(Header,{stepFrom:2,stepTo:2}),React.createElement("div",{className:styles.root},React.createElement("div",{className:styles.main},React.createElement(Pickup,null),React.createElement(PickupNotes,null),React.createElement(Address,{type:ADDRESS_TYPE_BILLING}),React.createElement(Address,{type:ADDRESS_TYPE_SHIPPING}),React.createElement(GuestCheckoutOptIn,null),React.createElement(ShippingMethods,null),React.createElement(PaymentProvider,null),React.createElement(ResponsiveContainer,{breakpoint:"<md",appAlways:true},React.createElement(Summary,null)),React.createElement(Actions,null)),React.createElement("div",{className:styles.side},React.createElement(ResponsiveContainer,{breakpoint:">=md",webOnly:true},React.createElement(Summary,null)))));};export default GuestCheckout;
@@ -0,0 +1,4 @@
1
+ import{i18n}from'@shopgate/engage/core';/**
2
+ * Generates form configuration.
3
+ * @returns {Object}
4
+ */var generateFormConfig=function generateFormConfig(){return{fields:{marketingOptIn:{type:'checkbox',label:i18n.text('registration.marketing_opt_in_label')}}};};export default generateFormConfig;
@@ -0,0 +1,3 @@
1
+ function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import React,{useMemo,useCallback,useEffect}from'react';import{css}from'glamor';import{themeConfig}from'@shopgate/engage';import{FormBuilder,SurroundPortals}from'@shopgate/engage/components';import{isIOSTheme}from'@shopgate/engage/core';import{StylePresets}from'@shopgate/engage/components/Form';import Section from"../Checkout/CheckoutSection";import{useCheckoutContext}from"../../hooks/common";import generateFormConfig from"./GuestCheckoutOptIn.config";import{CHECKOUT_MARKETING_OPTIN}from"../../constants";var variables=themeConfig.variables;var styles={root:css(_extends({padding:"0 ".concat(variables.gap.big,"px")},!isIOSTheme()?{paddingBottom:variables.gap.xbig}:{})).toString(),form:css(_extends({' .guestCheckoutOptInMarketingOptIn .checkbox':{paddingBottom:0}},StylePresets.OUTLINED_FORM_FIELDS)).toString(),section:css({margin:variables.gap.big}).toString()};/**
2
+ * @returns {JSX}
3
+ */var GuestCheckoutOptIn=function GuestCheckoutOptIn(){var _useCheckoutContext=useCheckoutContext(),defaultOptInFormState=_useCheckoutContext.defaultOptInFormState,optInFormSetValues=_useCheckoutContext.optInFormSetValues,setUpdateOptIns=_useCheckoutContext.setUpdateOptIns;/* eslint-disable react-hooks/exhaustive-deps */useEffect(function(){setUpdateOptIns();},[]);/* eslint-enable react-hooks/exhaustive-deps */var formConfig=useMemo(function(){return generateFormConfig();},[]);var handleUpdate=useCallback(function(values){optInFormSetValues(values);},[optInFormSetValues]);return React.createElement(SurroundPortals,{portalName:CHECKOUT_MARKETING_OPTIN},React.createElement("div",{className:styles.root},React.createElement(Section,{hasForm:true},React.createElement(FormBuilder,{className:styles.form,name:"GuestCheckoutOptIn",config:formConfig,defaults:defaultOptInFormState,handleUpdate:handleUpdate}))));};export default GuestCheckoutOptIn;
@@ -0,0 +1,4 @@
1
+ import React,{useMemo}from'react';import{css}from'glamor';import{themeConfig}from'@shopgate/engage';import{GUEST_CHECKOUT_PATTERN}from"../../constants/routes";import Section from"../Checkout/CheckoutSection";import{useCheckoutContext}from"../../hooks/common";import{ADDRESS_TYPE_PICKUP}from"../../constants";var variables=themeConfig.variables;var styles={root:css({padding:"0 ".concat(variables.gap.big,"px ").concat(variables.gap.big,"px"),display:'flex',flexDirection:'column',flex:'0 0 auto'}).toString(),card:css({display:'flex',flexDirection:'column',fontSize:15,margin:'8px 0 12px 0'}).toString()};/**
2
+ * GuestCheckoutPickup
3
+ * @returns {JSX}
4
+ */var GuestCheckoutPickup=function GuestCheckoutPickup(){var _pickupAddress$middle;var _useCheckoutContext=useCheckoutContext(),pickupAddress=_useCheckoutContext.pickupAddress,orderReserveOnly=_useCheckoutContext.orderReserveOnly;var headline=useMemo(function(){return orderReserveOnly?'checkout.pickup_contact.headline_reserve':'checkout.pickup_contact.headline';},[orderReserveOnly]);if(!pickupAddress){return null;}return React.createElement("div",{className:styles.root},React.createElement(Section,{className:styles.card,title:headline,editLink:"".concat(GUEST_CHECKOUT_PATTERN,"?edit=").concat(ADDRESS_TYPE_PICKUP)},React.createElement("span",null,((_pickupAddress$middle=pickupAddress.middleName)===null||_pickupAddress$middle===void 0?void 0:_pickupAddress$middle.length)?"".concat(pickupAddress.firstName," ").concat(pickupAddress.middleName," ").concat(pickupAddress.lastName):"".concat(pickupAddress.firstName," ").concat(pickupAddress.lastName)),React.createElement("span",null,pickupAddress.emailAddress),React.createElement("span",null,pickupAddress.mobile)));};export default GuestCheckoutPickup;
@@ -0,0 +1,4 @@
1
+ import{i18n}from'@shopgate/engage/core';/**
2
+ * Generates form configuration.
3
+ * @returns {Object}
4
+ */var generateFormConfig=function generateFormConfig(){return{fields:{instructions:{type:'text',label:i18n.text('checkout.pickup_contact.form.instructions')}}};};export default generateFormConfig;
@@ -0,0 +1,4 @@
1
+ function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import React,{useMemo,useCallback}from'react';import{css}from'glamor';import{FormBuilder}from'@shopgate/engage/components';import{StylePresets}from'@shopgate/engage/components/Form';import generateFormConfig from"./GuestCheckoutPickupNotes.config";import Section from"../Checkout/CheckoutSection";import{useCheckoutContext}from"../../hooks/common";var styles={root:css({padding:'16px 16px 0',paddingTop:0,display:'flex',flex:'0 0 auto',flexDirection:'column'}).toString(),form:css(_extends({' .textField':{marginBottom:'16px !important'}},StylePresets.OUTLINED_FORM_FIELDS)).toString()};/**
2
+ * GuestCheckoutPickupNotes
3
+ * @returns {JSX}
4
+ */var GuestCheckoutPickupNotes=function GuestCheckoutPickupNotes(){var _useCheckoutContext=useCheckoutContext(),defaultPickupPersonState=_useCheckoutContext.defaultPickupPersonState,formValidationErrors=_useCheckoutContext.formValidationErrors,formSetValues=_useCheckoutContext.formSetValues,isPickupContactSelectionEnabled=_useCheckoutContext.isPickupContactSelectionEnabled;var formConfig=useMemo(function(){return generateFormConfig();},[]);var handleUpdate=useCallback(function(values){formSetValues(values);},[formSetValues]);if(!isPickupContactSelectionEnabled){return null;}return React.createElement("div",{className:styles.root},React.createElement(Section,{title:"",hasForm:true},React.createElement(FormBuilder,{className:styles.form,name:"PickupNotesForm",config:formConfig,defaults:defaultPickupPersonState,validationErrors:formValidationErrors,handleUpdate:handleUpdate})));};export default GuestCheckoutPickupNotes;
@@ -0,0 +1,5 @@
1
+ function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React from'react';import PropTypes from'prop-types';import{responsiveMediaQuery}from'@shopgate/engage/styles';import{css}from'glamor';import{useCheckoutContext}from"../../hooks/common";var styles={root:css(_defineProperty(_defineProperty(_defineProperty(_defineProperty({outline:'none',border:'1px solid rgba(0, 0, 0, 0.12)',borderRadius:4,background:'#fff',height:52,width:160,display:'flex',flexDirection:'row',justifyContent:'center',alignItems:'center'},responsiveMediaQuery('xs'),{width:'50%'}),'&:not(:last-child)',{borderTopRightRadius:0,borderBottomRightRadius:0}),'&:not(:first-child)',{borderLeft:'none',borderTopLeftRadius:0,borderBottomLeftRadius:0}),'&:hover',{background:'rgba(0, 0, 0, 0.05)'})).toString(),active:css({background:'rgba(0, 0, 0, 0.12)','&:hover':{background:'rgba(0, 0, 0, 0.12)'}}).toString()};/**
2
+ * Payment Button
3
+ * @param {Object} props Props
4
+ * @returns {JSX}
5
+ */var PaymentMethodButton=function PaymentMethodButton(_ref){var children=_ref.children,active=_ref.active,onChange=_ref.onChange;var _useCheckoutContext=useCheckoutContext(),isLocked=_useCheckoutContext.isLocked;return React.createElement("button",{type:"button",disabled:isLocked,className:"".concat(styles.root," ").concat(active&&styles.active),onClick:function onClick(){return onChange();}},children);};export default PaymentMethodButton;
@@ -0,0 +1 @@
1
+ export{default}from"./PaymentMethodButton";
@@ -0,0 +1,4 @@
1
+ import React,{useCallback}from'react';import PropTypes from'prop-types';import{RippleButton,I18n,ArrowIcon}from'@shopgate/engage/components';import{useNavigation}from'@shopgate/engage/core';import{container,button,buttonIcon}from"./ResponsiveBackButton.style";/**
2
+ * A back button for the desktop checkout pages.
3
+ * @returns {JSX}
4
+ */var ResponsiveBackButton=function ResponsiveBackButton(_ref){var label=_ref.label,onClick=_ref.onClick;var _useNavigation=useNavigation(),pop=_useNavigation.pop;var handleClick=useCallback(function(){if(onClick){onClick();return;}pop();},[onClick,pop]);return React.createElement("div",{className:container},React.createElement(RippleButton,{flat:true,className:button,type:"secondary",onClick:handleClick},React.createElement(ArrowIcon,{className:buttonIcon}),React.createElement(I18n.Text,{string:label})));};ResponsiveBackButton.defaultProps={label:'common.back',onClick:null};export default ResponsiveBackButton;
@@ -0,0 +1 @@
1
+ import{css}from'glamor';import{themeConfig}from'@shopgate/pwa-common/helpers/config';var variables=themeConfig.variables;export var container=css({display:'flex',padding:"".concat(variables.gap.xbig,"px ").concat(variables.gap.big,"px ").concat(variables.gap.big,"px ").concat(variables.gap.big,"px")}).toString();export var button=css({fontSize:'0.875rem !important',padding:'0 !important',' > div ':{padding:0,display:'flex'}}).toString();export var buttonIcon=css({display:'inline-block',fontSize:'1.375rem !important',alignSelf:'center',marginRight:variables.gap.xsmall,marginLeft:-3,marginTop:-2}).toString();
@@ -0,0 +1 @@
1
+ export{default as ResponsiveBackButton}from"./ResponsiveBackButton";
@@ -0,0 +1,5 @@
1
+ function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance");}function _iterableToArrayLimit(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}import React,{useState}from'react';import PropTypes from'prop-types';import{css}from'glamor';import classNames from'classnames';import{i18n}from'@shopgate/engage/core';import{Image}from'@shopgate/engage/components';import{useCheckoutContext}from'@shopgate/engage/checkout/hooks/common';import ShippingMethodIcon from'@shopgate/pwa-ui-shared/icons/ShippingMethodIcon';var styles={root:css({display:'flex',alignItems:'center',fontSize:15}).toString(),rootDisabled:css({opacity:0.5}).toString(),imageContainer:css({width:32,heigh:32,marginRight:8,flexShrink:0}).toString(),image:css({width:'100%',height:'100%'}).toString(),label:css({display:'flex',width:'100%',justifyContent:'space-between'}).toString(),name:css({marginRight:8}).toString()};/**
2
+ * The shipping methods component.
3
+ * @param {Object} props The component props.
4
+ * @returns {JSX}
5
+ */var ShippingMethod=function ShippingMethod(_ref){var shippingMethod=_ref.shippingMethod;var _useCheckoutContext=useCheckoutContext(),currencyCode=_useCheckoutContext.currencyCode;var serviceLevel=shippingMethod.serviceLevel;var _useState=useState(!!(serviceLevel===null||serviceLevel===void 0?void 0:serviceLevel.iconUrl)),_useState2=_slicedToArray(_useState,2),useImage=_useState2[0],setUseImage=_useState2[1];return React.createElement("div",{className:classNames(styles.root)},React.createElement("div",{className:styles.imageContainer},useImage?React.createElement(Image,{className:styles.image,src:serviceLevel===null||serviceLevel===void 0?void 0:serviceLevel.iconUrl,onError:function onError(){return setUseImage(false);}}):React.createElement(ShippingMethodIcon,{className:styles.image})),React.createElement("div",{className:styles.label},React.createElement("span",{className:styles.name},serviceLevel===null||serviceLevel===void 0?void 0:serviceLevel.name),React.createElement("span",null,(serviceLevel===null||serviceLevel===void 0?void 0:serviceLevel.cost)?i18n.price(serviceLevel===null||serviceLevel===void 0?void 0:serviceLevel.cost,currencyCode,2):i18n.text('shipping.free_short'))));};export default ShippingMethod;
@@ -0,0 +1,23 @@
1
+ import _regeneratorRuntime from"@babel/runtime/regenerator";var _excluded=["serviceLevels"];function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key];}}return target;}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key];}return target;}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance");}function _iterableToArrayLimit(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}import{hot}from'react-hot-loader/root';import React,{useCallback,useEffect,useMemo,useState}from'react';import PropTypes from'prop-types';import{css}from'glamor';import classNames from'classnames';import CryptoJs from'crypto-js';import sortBy from'lodash/sortBy';import uniqBy from'lodash/uniqBy';import{themeConfig}from'@shopgate/pwa-common/helpers/config';import{i18n}from'@shopgate/engage/core';import{RadioGroupV2 as RadioGroup,RadioCard,MessageBar}from'@shopgate/engage/components';import{useCheckoutContext}from'@shopgate/engage/checkout/hooks/common';import ShippingMethod from"./ShippingMethod";import connect from"./connector";var variables=themeConfig.variables;var styles={root:css({padding:"0 ".concat(variables.gap.big,"px ").concat(variables.gap.xbig,"px")}).toString(),headline:css({fontSize:'1.25rem',fontWeight:'normal',padding:"0 ".concat(variables.gap.small,"px 0 0"),margin:"0 0 ".concat(variables.gap.small,"px 0"),color:'var(--color-text-high-emphasis)',textTransform:'none'}).toString(),container:css({border:'1px solid #eaeaea',' li:nth-child(2n)':{background:'var(--color-background-accent)'}}).toString(),containerSingle:css({padding:variables.gap.small}).toString(),card:css({display:'flex',alignItems:'center'}).toString(),errorMessage:css({margin:0}).toString(),iOSCard:css({width:'100%',overflow:'hidden',marginBottom:variables.gap.big}).toString()};/**
2
+ * Hashes a shipping method
3
+ * @param {Object} method A shipping method
4
+ * @returns {string}
5
+ */var hashShippingMethod=function hashShippingMethod(method){if(!method){return null;}var code=method.code,_method$serviceLevel=method.serviceLevel,serviceLevelCode=_method$serviceLevel.code,carrierCode=_method$serviceLevel.carrier.code;return CryptoJs.MD5("".concat(code," ").concat(serviceLevelCode," ").concat(carrierCode)).toString();};/**
6
+ * Custom replacement for the wrapper component of the RadioCard
7
+ * @param {Object} props The component props
8
+ * @returns {JSX}
9
+ */var CardComponent=function CardComponent(_ref){var children=_ref.children;return React.createElement("li",{className:styles.card},children);};CardComponent.defaultProps={children:null};/**
10
+ * The shipping methods component.
11
+ * @returns {JSX}
12
+ */var ShippingMethods=function ShippingMethods(_ref2){var orderHasDirectShipItems=_ref2.orderHasDirectShipItems;var _useCheckoutContext=useCheckoutContext(),shippingAddress=_useCheckoutContext.shippingAddress,updateShippingMethod=_useCheckoutContext.updateShippingMethod,isLoading=_useCheckoutContext.isLoading,order=_useCheckoutContext.order;var _ref3=(shippingAddress===null||shippingAddress===void 0?void 0:shippingAddress.orderSegment)||{},_ref3$selectedShippin=_ref3.selectedShippingMethod,selectedShippingMethod=_ref3$selectedShippin===void 0?null:_ref3$selectedShippin,_ref3$availableShippi=_ref3.availableShippingMethods,availableShippingMethods=_ref3$availableShippi===void 0?[]:_ref3$availableShippi;var _useState=useState(hashShippingMethod(selectedShippingMethod)),_useState2=_slicedToArray(_useState,2),selectedHash=_useState2[0],setSelectedHash=_useState2[1];useEffect(function(){// Update the selected hash when the selected shipping method updates
13
+ setSelectedHash(hashShippingMethod(selectedShippingMethod));},[selectedShippingMethod]);/**
14
+ * The component actually doesn't render shipping methods, but service levels. To improve
15
+ * data handling, we transform the original data structure to the shape which is required for
16
+ * the update request.
17
+ */var shippingMethods=useMemo(function(){// Flat map all service levels of all shipping methods and aggregate with parent (method) data.
18
+ var unsortedLevels=availableShippingMethods.flatMap(function(method){var serviceLevels=method.serviceLevels,methodData=_objectWithoutProperties(method,_excluded);return serviceLevels.map(function(serviceLevel){var entry=_extends({},methodData,{serviceLevel:serviceLevel});var hash=hashShippingMethod(entry);return _extends({},entry,{hash:hash});});});// Remove duplicated shipping levels that originated from different shipping methods.
19
+ var dedupedLevels=uniqBy(unsortedLevels,function(_ref4){var _serviceLevel$carrier;var serviceLevel=_ref4.serviceLevel;return"".concat(serviceLevel.code,"#").concat((_serviceLevel$carrier=serviceLevel.carrier)===null||_serviceLevel$carrier===void 0?void 0:_serviceLevel$carrier.code);});// Show cheapest service level first followed by alphabetic name.
20
+ return sortBy(dedupedLevels,['serviceLevel.cost','serviceLevel.name']);},[availableShippingMethods]);var onChange=useCallback(/*#__PURE__*/function(){var _ref5=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(event,value){var _shippingMethod$servi,_shippingMethod$servi2,_shippingMethod$servi3;var shippingMethod;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:// Determine the selected shipping method by its hash
21
+ shippingMethod=shippingMethods.find(function(_ref6){var hash=_ref6.hash;return value===hash;});if(shippingMethod){_context.next=3;break;}return _context.abrupt("return");case 3:// Update the local state
22
+ setSelectedHash(shippingMethod===null||shippingMethod===void 0?void 0:shippingMethod.hash);// Perform the update request
23
+ _context.next=6;return updateShippingMethod({code:shippingMethod===null||shippingMethod===void 0?void 0:shippingMethod.code,serviceLevel:{code:shippingMethod===null||shippingMethod===void 0?void 0:(_shippingMethod$servi=shippingMethod.serviceLevel)===null||_shippingMethod$servi===void 0?void 0:_shippingMethod$servi.code,carrier:{code:shippingMethod===null||shippingMethod===void 0?void 0:(_shippingMethod$servi2=shippingMethod.serviceLevel)===null||_shippingMethod$servi2===void 0?void 0:(_shippingMethod$servi3=_shippingMethod$servi2.carrier)===null||_shippingMethod$servi3===void 0?void 0:_shippingMethod$servi3.code}}});case 6:case"end":return _context.stop();}},_callee);}));return function(_x,_x2){return _ref5.apply(this,arguments);};}(),[shippingMethods,updateShippingMethod]);if((order===null||order===void 0?void 0:order.status)!=='new'||!orderHasDirectShipItems){return null;}if(shippingMethods.length===0){return React.createElement("div",{className:styles.root},React.createElement("h3",{className:styles.headline},i18n.text('checkout.shippingMethod.title')),React.createElement(MessageBar,{messages:[{type:'error',message:i18n.text("checkout.shippingMethod.errors.".concat(!shippingAddress?'noShippingAddress':'invalidShippingAddress'))}],classNames:{container:styles.errorMessage},showIcons:true}));}return React.createElement("div",{className:styles.root},React.createElement("h3",{className:styles.headline},i18n.text('checkout.shippingMethod.title')),shippingMethods.length===1?React.createElement("div",{className:classNames(styles.container,styles.containerSingle)},React.createElement(ShippingMethod,{shippingMethod:shippingMethods[0]})):React.createElement(RadioGroup,{name:"shipping-methods",value:selectedHash,onChange:onChange,component:"ul",classes:{root:styles.container},disabled:isLoading},shippingMethods.map(function(shippingMethod){return React.createElement(RadioCard,{renderCard:CardComponent,value:shippingMethod.hash,key:shippingMethod.hash},React.createElement(ShippingMethod,{shippingMethod:shippingMethod}));})));};ShippingMethods.defaultProps={orderHasDirectShipItems:false};export default hot(connect(ShippingMethods));
@@ -0,0 +1,7 @@
1
+ import{connect}from'react-redux';import{getHasDirectShipItems}from'@shopgate/engage/checkout/selectors/order';/**
2
+ * @returns {Function}
3
+ */function makeMapStateToProps(){/**
4
+ * @param {Object} state The application state.
5
+ * @param {Object} props The component props
6
+ * @returns {Object}
7
+ */return function(state){return{orderHasDirectShipItems:getHasDirectShipItems(state)};};}export default connect(makeMapStateToProps);
@@ -0,0 +1 @@
1
+ export{default as ShippingMethods}from"./ShippingMethods";
@@ -0,0 +1,4 @@
1
+ import{connect}from'react-redux';import{makeGetShopSettingByKey,SHOP_SETTING_ORDER_SUPPLEMENTAL_CONTENT}from'@shopgate/engage/core';/**
2
+ * Creates the mapStateToProps connector function.
3
+ * @returns {Function}
4
+ */var makeMapStateToProps=function makeMapStateToProps(){var getShopSettingsByKey=makeGetShopSettingByKey(SHOP_SETTING_ORDER_SUPPLEMENTAL_CONTENT);return function(state,props){return{text:getShopSettingsByKey(state,props)};};};export default connect(makeMapStateToProps);
@@ -0,0 +1,5 @@
1
+ import React from'react';import classNames from'classnames';import PropTypes from'prop-types';import{wrapper}from"./SupplementalContent.styles";import connect from"./SupplementalContent.connector";/**
2
+ * The SupplementalContent component
3
+ * @param {Object} props The component props
4
+ * @returns {JSX}
5
+ */var SupplementalContent=function SupplementalContent(_ref){var text=_ref.text,className=_ref.className;if(!text){return null;}/* eslint-disable react/no-danger */return React.createElement("div",{className:classNames(wrapper,className),dangerouslySetInnerHTML:{__html:text}});/* eslint-enable react/no-danger */};SupplementalContent.defaultProps={text:null,className:null};export default connect(SupplementalContent);
@@ -0,0 +1 @@
1
+ import{css}from'glamor';import{themeConfig}from'@shopgate/pwa-common/helpers/config';var variables=themeConfig.variables;export var wrapper=css({display:'block',color:'var(--color-text-low-emphasis)',fontSize:12,lineHeight:'unset',padding:"".concat(variables.gap.big,"px 0"),'> *:first-child':{marginTop:0},' ol, ul':{margin:"".concat(variables.gap.small,"px 0"),paddingLeft:variables.gap.xbig},' ol':{listStyle:'decimal'},' ul':{listStyle:'disc'},' a':{textDecoration:'underline',color:'var(--color-primary)'}}).toString();
@@ -0,0 +1 @@
1
+ export{default as SupplementalContent}from"./SupplementalContent";
@@ -0,0 +1 @@
1
+ export{CheckoutConfirmationPickUpContact,CheckoutConfirmationOrderContact,CheckoutConfirmationBilledTo,CheckoutConfirmationShippedTo,CheckoutConfirmationOrderSummary,CheckoutConfirmationSection}from"./CheckoutConfirmation";export{SupplementalContent}from"./SupplementalContent";export{default as Checkout}from"./Checkout/Checkout";export{default as GuestCheckoutPayment}from"./GuestCheckout/GuestCheckout";export{default as CheckoutConfirmation}from"./CheckoutConfirmation/CheckoutConfirmation";export{default as AddressBook}from"./AddressBook";export{default as AddressBookContact}from"./AddressBookContact";
@@ -0,0 +1 @@
1
+ export var INITIALIZE_CHECKOUT='INITIALIZE_CHECKOUT';export var INITIALIZE_CHECKOUT_SUCCESS='INITIALIZE_CHECKOUT_SUCCESS';export var INITIALIZE_CHECKOUT_ERROR='INITIALIZE_CHECKOUT_ERROR';export var FETCH_CHECKOUT_ORDER='FETCH_CHECKOUT_ORDER';export var FETCH_CHECKOUT_ORDER_SUCCESS='FETCH_CHECKOUT_ORDER_SUCCESS';export var FETCH_CHECKOUT_ORDER_ERROR='FETCH_CHECKOUT_ORDER_ERROR';export var CLEAR_CHECKOUT_ORDER='CLEAR_CHECKOUT_ORDER';export var FETCH_PAYMENT_METHODS='FETCH_PAYMENT_METHODS';export var FETCH_PAYMENT_METHODS_SUCCESS='FETCH_PAYMENT_METHODS_SUCCESS';export var FETCH_PAYMENT_METHODS_ERROR='FETCH_PAYMENT_METHODS_ERROR';export var UPDATE_CHECKOUT_ORDER='UPDATE_CHECKOUT_ORDER';export var UPDATE_CHECKOUT_ORDER_SUCCESS='UPDATE_CHECKOUT_ORDER_SUCCESS';export var UPDATE_CHECKOUT_ORDER_ERROR='UPDATE_CHECKOUT_ORDER_ERROR';export var SUBMIT_CHECKOUT_ORDER='SUBMIT_CHECKOUT_ORDER';export var SUBMIT_CHECKOUT_ORDER_SUCCESS='SUBMIT_CHECKOUT_ORDER_SUCCESS';export var SUBMIT_CHECKOUT_ORDER_ERROR='SUBMIT_CHECKOUT_ORDER_ERROR';export var ADD_CHECKOUT_CAMPAIGN='ADD_CHECKOUT_CAMPAIGN';export var CLEAR_CHECKOUT_CAMPAIGN='CLEAR_CHECKOUT_CAMPAIGN';export var VALIDATION_ERRORS_CHECKOUT='VALIDATION_ERRORS_CHECKOUT';
@@ -0,0 +1 @@
1
+ export var ERROR_CODE_CHECKOUT_GENERIC='EUNKNOWN';
@@ -0,0 +1 @@
1
+ import{CHECKOUT_PATH}from'@shopgate/pwa-common/constants/RoutePaths';export*from'@shopgate/pwa-common-commerce/checkout/constants/index';export*from'@shopgate/pwa-common-commerce/checkout/constants/Pipelines';export{CHECKOUT_PATH};export{CHECKOUT_PATTERN,GUEST_CHECKOUT_PATTERN,CHECKOUT_CONFIRMATION_PATTERN,GUEST_CHECKOUT_PAYMENT_PATTERN,CHECKOUT_ADDRESS_BOOK_PATTERN,CHECKOUT_ADDRESS_BOOK_CONTACT_PATTERN,checkoutRoutes}from"./routes";export var CHECKOUT_ACTIONS='checkout.actions';export var CHECKOUT_PICKUP_CONTACT_FORM='checkout.pickup-contact';export var CHECKOUT_MARKETING_OPTIN='checkout.marketing-optin';export var ADDRESS_TYPE_BILLING='billing';export var ADDRESS_TYPE_SHIPPING='shipping';export var ADDRESS_TYPE_PICKUP='pickup';
@@ -0,0 +1 @@
1
+ export var CHECKOUT_PATTERN='/checkout';export var GUEST_CHECKOUT_PATTERN='/checkout/guest';export var GUEST_CHECKOUT_PAYMENT_PATTERN='/checkout/guest/payment';export var CHECKOUT_CONFIRMATION_PATTERN='/checkout/success';export var CHECKOUT_ADDRESS_BOOK_PATH='/checkout/addresses';export var CHECKOUT_ADDRESS_BOOK_PATTERN="".concat(CHECKOUT_ADDRESS_BOOK_PATH,"/:type");export var CHECKOUT_ADDRESS_BOOK_CONTACT_PATTERN="".concat(CHECKOUT_ADDRESS_BOOK_PATH,"/:type/contact");export var checkoutRoutes=[CHECKOUT_PATTERN,GUEST_CHECKOUT_PATTERN,GUEST_CHECKOUT_PAYMENT_PATTERN,CHECKOUT_CONFIRMATION_PATTERN,CHECKOUT_ADDRESS_BOOK_PATTERN,CHECKOUT_ADDRESS_BOOK_CONTACT_PATTERN];
@@ -0,0 +1,34 @@
1
+ function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import{i18n}from'@shopgate/engage/core';import{DIRECT_SHIP,ROPIS}from'@shopgate/engage/locations';/**
2
+ * Converts order line items to cart items
3
+ * @param {Array} lineItems The line items to be converted
4
+ * @return {Array}
5
+ */export var convertLineItemsToCartItems=function convertLineItemsToCartItems(){var lineItems=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];return lineItems.map(function(lineItem){var id=lineItem.code,quantity=lineItem.quantity,_lineItem$orderedQuan=lineItem.orderedQuantity,orderedQuantity=_lineItem$orderedQuan===void 0?null:_lineItem$orderedQuan,salePrice=lineItem.salePrice,lineItemPrice=lineItem.price,promoAmount=lineItem.promoAmount,extendedPrice=lineItem.extendedPrice,discountAmount=lineItem.discountAmount,unitDiscountAmount=lineItem.unitDiscountAmount,unitPromoAmount=lineItem.unitPromoAmount,product=lineItem.product,status=lineItem.status,subStatus=lineItem.subStatus,fulfillmentMethod=lineItem.fulfillmentMethod,fulfillmentLocationCode=lineItem.fulfillmentLocationCode,substitutionAllowed=lineItem.substitutionAllowed;var productCode=product.code,productPrice=product.price,productSalePrice=product.salePrice,productEffectivePrice=product.effectivePrice,name=product.name,image=product.image,unit=product.unit,_product$hasCatchWeig=product.hasCatchWeight,hasCatchWeight=_product$hasCatchWeig===void 0?false:_product$hasCatchWeig,options=product.options;var properties=[];var appliedDiscounts=[];var additionalInfo=[];var coupon=null;var messages=[];var fulfillmentMethods;var fulfillment;var featuredImageUrl=null;if(Array.isArray(options)){properties=options.map(function(option){var _option$value,_option$values,_option$values$;return{label:option.name,value:(option===null||option===void 0?void 0:(_option$value=option.value)===null||_option$value===void 0?void 0:_option$value.name)||(option===null||option===void 0?void 0:(_option$values=option.values)===null||_option$values===void 0?void 0:(_option$values$=_option$values[0])===null||_option$values$===void 0?void 0:_option$values$.name)};});}if(fulfillmentMethod!==DIRECT_SHIP){fulfillmentMethods=[fulfillmentMethod];fulfillment={method:fulfillmentMethod,location:{code:fulfillmentLocationCode}};}if(image){if(image.includes('?')){featuredImageUrl="".concat(image,"&width=440&height=440&format=jpeg&fill=fff");}else{featuredImageUrl="".concat(image,"?width=440&height=440&format=jpeg&fill=fff");}}return{id:id,quantity:quantity,orderedQuantity:orderedQuantity,coupon:coupon,messages:messages,type:'product',status:status,subStatus:subStatus,product:{id:productCode,featuredImageUrl:featuredImageUrl,name:name,properties:properties,appliedDiscounts:appliedDiscounts,additionalInfo:additionalInfo,unit:unit,hasCatchWeight:hasCatchWeight,price:{unit:productPrice,unitSpecial:productSalePrice,"default":lineItemPrice,special:salePrice||null,unitSale:productSalePrice,unitEffective:productEffectivePrice,info:''},fulfillmentMethods:fulfillmentMethods},unitPromoAmount:unitPromoAmount,unitDiscountAmount:unitDiscountAmount,price:lineItemPrice,extendedPrice:extendedPrice,promoAmount:promoAmount,discountAmount:discountAmount,fulfillment:fulfillment,fulfillmentLocationId:fulfillmentLocationCode,substitutionAllowed:substitutionAllowed};});};/**
6
+ * Extracts the promotions without coupon from the order.
7
+ * @param {Object} order An order object
8
+ * @returns {Array}
9
+ */var getPromotionsFromOrder=function getPromotionsFromOrder(){var order=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var _order$appliedPromoti=order.appliedPromotions,appliedPromotions=_order$appliedPromoti===void 0?[]:_order$appliedPromoti;return appliedPromotions.filter(function(_ref){var coupon=_ref.coupon;return!coupon;});};/**
10
+ * Extracts the coupons from the order.
11
+ * @param {Object} order An order object
12
+ * @returns {Array}
13
+ */var getCouponsFromOrder=function getCouponsFromOrder(){var order=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var _order$appliedPromoti2=order.appliedPromotions,appliedPromotions=_order$appliedPromoti2===void 0?[]:_order$appliedPromoti2,_order$coupons=order.coupons,coupons=_order$coupons===void 0?[]:_order$coupons,_order$lineItems=order.lineItems,lineItems=_order$lineItems===void 0?[]:_order$lineItems;return coupons.filter(function(coupon){// Filter coupons which are assigned to line items
14
+ var code=coupon===null||coupon===void 0?void 0:coupon.code;var lineItemCoupon=lineItems.find(function(cartItem){var lineItemPromotions=(cartItem===null||cartItem===void 0?void 0:cartItem.appliedPromotions)||[];var match=lineItemPromotions.find(function(promotion){var _promotion$coupon;var lineItemCouponCode=promotion===null||promotion===void 0?void 0:(_promotion$coupon=promotion.coupon)===null||_promotion$coupon===void 0?void 0:_promotion$coupon.code;return lineItemCouponCode===code;});return!!match;});return!lineItemCoupon;}).map(function(coupon){var _coupon$promotion;var code=coupon===null||coupon===void 0?void 0:(_coupon$promotion=coupon.promotion)===null||_coupon$promotion===void 0?void 0:_coupon$promotion.code;var promotion=appliedPromotions.find(function(promotionEntry){return promotionEntry.code===code;});return _extends({},coupon,{promotion:_extends({},(coupon===null||coupon===void 0?void 0:coupon.promotion)||{},{},promotion)});});};/**
15
+ * Generates the coupon lines from an order
16
+ * @param {Object} order An order object
17
+ * @returns {Array}
18
+ */export var getCouponLinesFromOrder=function getCouponLinesFromOrder(){var order=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return getCouponsFromOrder(order).map(function(coupon){var _coupon$promotion2,_coupon$promotion2$di,_coupon$promotion3;return{visible:true,type:'coupon',label:(coupon===null||coupon===void 0?void 0:coupon.code)?i18n.text('cart.coupon_label',{label:coupon.code}):'',value:(coupon===null||coupon===void 0?void 0:(_coupon$promotion2=coupon.promotion)===null||_coupon$promotion2===void 0?void 0:(_coupon$promotion2$di=_coupon$promotion2.discount)===null||_coupon$promotion2$di===void 0?void 0:_coupon$promotion2$di.absoluteAmount)||null,currencyCode:order.currencyCode,messages:(coupon===null||coupon===void 0?void 0:coupon.messages)||null,info:(coupon===null||coupon===void 0?void 0:(_coupon$promotion3=coupon.promotion)===null||_coupon$promotion3===void 0?void 0:_coupon$promotion3.promotionalText)||null};});};/**
19
+ * Generates the promotion lines from an order
20
+ * @param {Object} order An order object
21
+ * @returns {Array}
22
+ */export var getPromotionLinesFromOrder=function getPromotionLinesFromOrder(){var order=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return getPromotionsFromOrder(order).map(function(promotion){var _promotion$discount;return{visible:true,type:'promotion',label:promotion===null||promotion===void 0?void 0:promotion.name,value:(promotion===null||promotion===void 0?void 0:(_promotion$discount=promotion.discount)===null||_promotion$discount===void 0?void 0:_promotion$discount.absoluteAmount)||0,currencyCode:order.currencyCode,messages:null,info:(promotion===null||promotion===void 0?void 0:promotion.promotionalText)||null};});};/**
23
+ * Generates checkout tax lines from an order object.
24
+ * @param {Object} order An order object
25
+ * @returns {Array}
26
+ */export var getCheckoutTaxLinesFromOrder=function getCheckoutTaxLinesFromOrder(){var order=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var hasDirectShipItems=!!((order===null||order===void 0?void 0:order.lineItems)||[]).find(function(lineItem){return(lineItem===null||lineItem===void 0?void 0:lineItem.fulfillmentMethod)===DIRECT_SHIP;});var hasSelectedShippingMethod=!!((order===null||order===void 0?void 0:order.addressSequences)||[]).find(function(address){var _address$orderSegment;return(address===null||address===void 0?void 0:address.type)==='shipping'&&!!(address===null||address===void 0?void 0:(_address$orderSegment=address.orderSegment)===null||_address$orderSegment===void 0?void 0:_address$orderSegment.selectedShippingMethod);});return[{visible:true,type:'subTotal',label:null,value:order.subTotal||0,currencyCode:order.currencyCode}].concat(getPromotionLinesFromOrder(order),getCouponLinesFromOrder(order),[{visible:hasDirectShipItems&&hasSelectedShippingMethod,type:'shippingTotal',label:null,value:order.shippingTotal||0,currencyCode:order.currencyCode},{visible:order.taxAmount>0,type:'tax',label:null,value:order.taxAmount||0,currencyCode:order.currencyCode},{visible:true,type:'total',label:null,value:order.total||0,currencyCode:order.currencyCode}]);};/**
27
+ * Checks if an order is a reserve only order
28
+ * @param {Object} order An order object
29
+ * @returns {boolean}
30
+ */export var isReserveOnlyOrder=function isReserveOnlyOrder(){var order=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var nonReserveItem=order.lineItems.find(function(lineItem){return lineItem.fulfillmentMethod!==ROPIS;});return!nonReserveItem;};/**
31
+ * Checks if an order is a direct ship only order
32
+ * @param {Object} order An order object
33
+ * @returns {boolean}
34
+ */export var isDirectShipOnlyOrder=function isDirectShipOnlyOrder(){var order=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var nonDirectShipItem=order.lineItems.find(function(lineItem){return lineItem.fulfillmentMethod!==DIRECT_SHIP;});return!nonDirectShipItem;};
@@ -0,0 +1,7 @@
1
+ import React from'react';import CheckoutContext from"../providers/CheckoutProvider.context";import AddressBookContext from"../providers/AddressBookProvider.context";/**
2
+ * Returns the value of the checkout provider state.
3
+ * @returns {Object}
4
+ */export var useCheckoutContext=function useCheckoutContext(){return React.useContext(CheckoutContext);};/**
5
+ * Returns the value of address book provider state.
6
+ * @returns {Object}
7
+ */export var useAddressBook=function useAddressBook(){return React.useContext(AddressBookContext);};
package/checkout/index.js CHANGED
@@ -1,5 +1,6 @@
1
- /** @module checkout */import{CHECKOUT_PATH}from'@shopgate/pwa-common/constants/RoutePaths';// ACTIONS
2
- export{default as fetchCheckoutUrl}from'@shopgate/pwa-common-commerce/checkout/actions/fetchCheckoutUrl';// CONSTANTS
3
- export*from'@shopgate/pwa-common-commerce/checkout/constants/index';export*from'@shopgate/pwa-common-commerce/checkout/constants/Pipelines';export{CHECKOUT_PATH};// SELECTORS
4
- export*from'@shopgate/pwa-common-commerce/checkout/selectors';// STREAMS
5
- export*from'@shopgate/pwa-common-commerce/checkout/streams';
1
+ /** @module checkout */ // ACTIONS
2
+ export{default as fetchCheckoutUrl}from'@shopgate/pwa-common-commerce/checkout/actions/fetchCheckoutUrl';export{fetchCheckoutOrder}from'@shopgate/engage/checkout/actions/fetchCheckoutOrder';export{updateCheckoutOrder}from'@shopgate/engage/checkout/actions/updateCheckoutOrder';export{submitCheckoutOrder}from'@shopgate/engage/checkout/actions/submitCheckoutOrder';export{initializeCheckout}from'@shopgate/engage/checkout/actions/initializeCheckout';export{fetchPaymentMethods}from'@shopgate/engage/checkout/actions/fetchPaymentMethods';export{prepareCheckout}from'@shopgate/engage/checkout/actions/prepareCheckout';export{clearCheckoutOrder,clearCheckoutCampaign}from'@shopgate/engage/checkout/action-creators';// CONSTANTS
3
+ export*from"./constants";// SELECTORS
4
+ export*from'@shopgate/pwa-common-commerce/checkout/selectors';export*from"./selectors/guestCheckout";export*from"./selectors/order";export*from"./selectors/route";// STREAMS
5
+ export*from'@shopgate/pwa-common-commerce/checkout/streams';// HOOKS
6
+ export*from"./hooks/common";
@@ -0,0 +1 @@
1
+ import{createContext}from'react';export default createContext();
@@ -0,0 +1,28 @@
1
+ import _regeneratorRuntime from"@babel/runtime/regenerator";function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance");}function _iterableToArrayLimit(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}import React,{useContext,useCallback,useEffect,useMemo,useRef,useState}from'react';import{connect,useStore}from'react-redux';import PropTypes from'prop-types';import{css}from'glamor';import{themeConfig}from'@shopgate/pwa-common/helpers/config';import{getPaymentMethods}from"../selectors/payment";import{getCheckoutOrder}from"../selectors/order";import CheckoutContext from"../providers/CheckoutProvider.context";import{updateCheckoutOrder}from"../actions/updateCheckoutOrder";import{fetchCheckoutOrder}from"../actions/fetchCheckoutOrder";import{i18n}from"../../core/helpers/i18n";import Context from"./context";import paypal from"./paypal";import stripe from"./stripe";var AVAILABLE_PAYMENT_METHOD=[paypal,stripe];/**
2
+ * Maps state to props
3
+ * @param {Object} state State
4
+ * @returns {Object}
5
+ */var mapStateToProps=function mapStateToProps(state){return{order:getCheckoutOrder(state),paymentMethods:getPaymentMethods(state)};};/**
6
+ * Dispatch
7
+ * @param {Object} dispatch Dispatch
8
+ * @returns {Object}
9
+ */var mapDispatchToProps=function mapDispatchToProps(dispatch){return{updateOrder:function updateOrder(order){return dispatch(updateCheckoutOrder(order));},fetchOrder:function fetchOrder(){return dispatch(fetchCheckoutOrder());}};};var variables=themeConfig.variables;var styles={headline:css({fontSize:'1.25rem',fontWeight:'normal',margin:"0 0 ".concat(variables.gap.small,"px 0"),marginLeft:16,marginRight:8,color:'var(--color-text-high-emphasis)',textTransform:'none'}).toString(),section:css({marginBottom:0,marginTop:4}).toString(),buttons:css({marginLeft:16,marginRight:16,marginBottom:16,display:'flex',flexDirection:'row'}).toString()};/**
10
+ * PaymentMethodProvider
11
+ * @param {Object} props Props
12
+ * @returns {JSX}
13
+ */var PaymentMethodProvider=function PaymentMethodProvider(_ref){var order=_ref.order,paymentMethods=_ref.paymentMethods,fetchOrder=_ref.fetchOrder,updateOrder=_ref.updateOrder;var _useState=useState(null),_useState2=_slicedToArray(_useState,2),activePaymentMeta=_useState2[0],setActivePaymentMeta=_useState2[1];var _useContext=useContext(CheckoutContext),setPaymentHandler=_useContext.setPaymentHandler,setPaymentData=_useContext.setPaymentData,needsPayment=_useContext.needsPayment,setButtonLocked=_useContext.setButtonLocked,setLocked=_useContext.setLocked;var paymentMethodRef=useRef();// Set active payment method to the orders first transaction.
14
+ var paymentMethodCode=useMemo(function(){var _order$paymentTransac;var transaction=(_order$paymentTransac=order.paymentTransactions)===null||_order$paymentTransac===void 0?void 0:_order$paymentTransac[0];if(!transaction)return null;return transaction.paymentMethod.code;},[order]);var paymentData=useMemo(function(){return paymentMethods===null||paymentMethods===void 0?void 0:paymentMethods.find(function(p){return p.code===paymentMethodCode;});},[paymentMethodCode,paymentMethods]);var paymentImpl=useMemo(function(){return AVAILABLE_PAYMENT_METHOD.find(function(method){var _paymentData$paymentP;return method.code===(paymentData===null||paymentData===void 0?void 0:(_paymentData$paymentP=paymentData.paymentProvider)===null||_paymentData$paymentP===void 0?void 0:_paymentData$paymentP.code);});},[paymentData]);// Global transaction handler
15
+ // Currently simply redirect fulfill request to the active payment method.
16
+ useEffect(function(){setPaymentHandler({getSupportsRedirect:(paymentImpl===null||paymentImpl===void 0?void 0:paymentImpl.getSupportsRedirect)||function(){return true;},getCustomPayButton:function getCustomPayButton(){return paymentImpl===null||paymentImpl===void 0?void 0:paymentImpl.payButton;},fulfillTransaction:function(){var _fulfillTransaction=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref2){var paymentTransactions,resolved;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:paymentTransactions=_ref2.paymentTransactions;_context.next=3;return paymentMethodRef.current.fulfillTransaction({paymentTransactions:paymentTransactions});case 3:resolved=_context.sent;return _context.abrupt("return",resolved);case 5:case"end":return _context.stop();}},_callee);}));function fulfillTransaction(_x){return _fulfillTransaction.apply(this,arguments);}return fulfillTransaction;}()});},[paymentImpl,setButtonLocked,setPaymentHandler]);// Map configured payment methods
17
+ var availablePaymentMethods=useMemo(function(){return paymentMethods.map(function(method){return _extends({},AVAILABLE_PAYMENT_METHOD.find(function(m){return m.code===method.paymentProvider.code;}),{internalCode:method.code,settings:method.settings});});},[paymentMethods]);// Change payment method.
18
+ var handleChangePayment=useCallback(/*#__PURE__*/function(){var _ref3=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(code){var meta,_args2=arguments;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:meta=_args2.length>1&&_args2[1]!==undefined?_args2[1]:null;if(!(paymentMethodCode===code)){_context2.next=5;break;}setActivePaymentMeta(meta);setPaymentData({meta:meta});return _context2.abrupt("return");case 5:setLocked(true);_context2.next=8;return updateOrder({paymentTransactions:[{paymentMethod:{code:code}}]});case 8:_context2.next=10;return fetchOrder();case 10:setActivePaymentMeta(meta);setPaymentData({meta:meta});setLocked(false);case 13:case"end":return _context2.stop();}},_callee2);}));return function(_x2){return _ref3.apply(this,arguments);};}(),[setPaymentData,paymentMethodCode,setLocked,updateOrder,fetchOrder]);// API for the underlying payment methods.
19
+ var paymentMethodApi=useMemo(function(){return{registerPaymentMethod:function registerPaymentMethod(api){setButtonLocked(false);paymentMethodRef.current=api;}};},[setButtonLocked]);var store=useStore();// Ignore for ROPIS.
20
+ if(!needsPayment){return null;}// Render the respective payment method provider.
21
+ var _ref4=paymentImpl||{},Provider=_ref4.provider,Content=_ref4.content;return React.createElement(Context.Provider,{value:paymentMethodApi},React.createElement("div",{className:styles.section},React.createElement("h3",{className:styles.headline},i18n.text('checkout.payment.title')),React.createElement("div",{className:styles.buttons},availablePaymentMethods.map(function(method){return React.createElement(method.button,{key:method.internalCode,settings:method.settings,onChange:function onChange(meta){return handleChangePayment(method.internalCode,meta);},active:method.internalCode===paymentMethodCode,activePaymentMeta:activePaymentMeta});})),paymentImpl?React.createElement(Provider/**
22
+ * 2025-01-10: Not 100% sure why a context is being passed here. It seems to work
23
+ * without it, but since the payment component implementation has a high complexity,
24
+ * but isn't really used right now in production shops, i kept it for now.
25
+ * To enable compatibility with react-redux > 7, the "store" prop was added so that
26
+ * Redux connected child components can still access the store.
27
+ * Should be revisited when the "native checkout" gets relevance.
28
+ */,{context:Context,store:store,data:paymentData,activePaymentMeta:activePaymentMeta},React.createElement(Content,null)):null));};PaymentMethodProvider.defaultProps={order:null,paymentMethods:null};export default connect(mapStateToProps,mapDispatchToProps)(PaymentMethodProvider);
@@ -0,0 +1,5 @@
1
+ import React from'react';import{isAvailable}from'@shopgate/native-modules';import PaypalButtonWeb from"./PaypalButtonWeb";import PaypalButtonApp from"./PaypalButtonApp";/**
2
+ * Paypal
3
+ * @param {Object} props Props
4
+ * @returns {JSX}
5
+ */var PaypalButton=function PaypalButton(props){if(!isAvailable()){return React.createElement(PaypalButtonWeb,props);}return React.createElement(PaypalButtonApp,props);};export default PaypalButton;
@@ -0,0 +1,4 @@
1
+ import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}import React,{useEffect}from'react';import{css}from'glamor';import PropTypes from'prop-types';import{PayPalRiskCheck}from'@shopgate/native-modules';import{useCheckoutContext}from"../../hooks/common";import Button from"../../components/PaymentMethodButton";import paypalLogoUrl from"./paypal_logo.png";var styles={logo:css({width:'60%'}).toString()};/**
2
+ * @param {Object} props The component props
3
+ * @returns {JSX}
4
+ */var PaypalButtonApp=function PaypalButtonApp(props){var settings=props.settings;var _useCheckoutContext=useCheckoutContext(),setLocked=_useCheckoutContext.setLocked;useEffect(function(){if(!settings)return;/** Async handler */var handler=/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:if(!(PayPalRiskCheck===null||PayPalRiskCheck===void 0?void 0:PayPalRiskCheck.setup)){_context.next=10;break;}setLocked(true);_context.prev=2;_context.next=5;return PayPalRiskCheck.setup(settings.env==='sandbox');case 5:_context.next=9;break;case 7:_context.prev=7;_context.t0=_context["catch"](2);case 9:setLocked(false);case 10:case"end":return _context.stop();}},_callee,null,[[2,7]]);}));return function handler(){return _ref.apply(this,arguments);};}();handler();},[setLocked,settings]);return React.createElement(Button,props,React.createElement("img",{className:styles.logo,src:paypalLogoUrl,alt:"PayPal"}));};PaypalButtonApp.defaultProps={settings:null};export default PaypalButtonApp;
@@ -0,0 +1,8 @@
1
+ import _regeneratorRuntime from"@babel/runtime/regenerator";function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance");}function _iterableToArrayLimit(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}import React,{Fragment,useLayoutEffect,useEffect,useMemo}from'react';import PropTypes from'prop-types';import{css}from'glamor';import{useCheckoutContext}from"../../hooks/common";import Button from"../../components/PaymentMethodButton";import{loadWebSdk,usePaypal}from"./sdk";var styles={button:css({' .paypal-mark':{' img':{height:25,background:'transparent'},background:'transparent',border:'none',margin:0,padding:0}}).toString()};/**
2
+ * Paypal
3
+ * @param {Object} props Props
4
+ * @returns {JSX}
5
+ */var PaypalButton=function PaypalButton(_ref){var settings=_ref.settings,_onChange=_ref.onChange,activeFundingSource=_ref.activePaymentMeta,active=_ref.active;var _useCheckoutContext=useCheckoutContext(),setLocked=_useCheckoutContext.setLocked,order=_useCheckoutContext.order;var paypal=usePaypal();// Initialize paypal sdk.
6
+ useEffect(function(){if(!settings||!order)return;/** Async handler */var handler=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:setLocked(true);_context.prev=1;_context.next=4;return loadWebSdk(settings,order);case 4:_context.next=8;break;case 6:_context.prev=6;_context.t0=_context["catch"](1);case 8:setLocked(false);case 9:case"end":return _context.stop();}},_callee,null,[[1,6]]);}));return function handler(){return _ref2.apply(this,arguments);};}();handler();},[order,setLocked,settings]);// Create paypal markers (just logic-less logos for each payment method).
7
+ var marks=useMemo(function(){if(!paypal)return[];return paypal.getFundingSources().map(function(fundingSource){var mark=window.paypal.Marks({fundingSource:fundingSource});if(!mark.isEligible())return null;return[mark,fundingSource];}).filter(function(m){return!!m;});},[paypal]);// Render marks to dom once ready.
8
+ useLayoutEffect(function(){requestAnimationFrame(function(){marks.forEach(function(_ref3,index){var _ref4=_slicedToArray(_ref3,1),mark=_ref4[0];mark.render("#sg-paypal-button-".concat(index));});},[]);},[marks]);return React.createElement(Fragment,null,marks.map(function(_ref5,index){var _ref6=_slicedToArray(_ref5,2),fundingSource=_ref6[1];var isButtonActive=fundingSource===paypal.FUNDING.PAYPAL&&!activeFundingSource?active:active&&fundingSource===activeFundingSource;return React.createElement(Button,{key:fundingSource,onChange:function onChange(){return _onChange(fundingSource);},active:isButtonActive},React.createElement("div",{id:"sg-paypal-button-".concat(index),className:styles.button}));}));};PaypalButton.defaultProps={settings:null,activePaymentMeta:null};export default PaypalButton;