@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,12 @@
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 _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);}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,{useLayoutEffect,useEffect,useRef,useState,Fragment}from'react';import PropTypes from'prop-types';import{css}from'glamor';import{getThemeSettings,showModal,MODAL_PIPELINE_ERROR}from'@shopgate/engage/core';import{connect}from'react-redux';import{i18n}from"../../../core/helpers/i18n";import{useCheckoutContext}from"../../hooks/common";import{usePaypal}from"./sdk";var styles={headline:css({fontSize:'1.25rem',fontWeight:'normal',margin:'12px 0 12px 0',color:'var(--color-text-high-emphasis)',textTransform:'none'}).toString()};/**
2
+ * Paypal Pay button
3
+ * @returns {JSX}
4
+ */var PaypalPayButton=function PaypalPayButton(_ref){var disabled=_ref.disabled,onSubmit=_ref.onSubmit,onValidate=_ref.onValidate,showModal=_ref.showModal;var _useCheckoutContext=useCheckoutContext(),paymentData=_useCheckoutContext.paymentData,paymentTransactions=_useCheckoutContext.paymentTransactions;var _useState=useState(null),_useState2=_slicedToArray(_useState,2),paypalActions=_useState2[0],setPaypalActions=_useState2[1];var paypal=usePaypal();var paypalButton=useRef(null);var button=useRef(null);var fundingSource=paymentData===null||paymentData===void 0?void 0:paymentData.meta;// Store form actions inside ref as they would trigger
5
+ // rerenders everytime the form changes, but here we
6
+ // only need them once validating.
7
+ // paypal unfortunately doesn't allow updating button props.
8
+ var formActions=useRef({});useEffect(function(){formActions.current={onSubmit:onSubmit,onValidate:onValidate};},[onSubmit,onValidate]);// Trigger rendering the paypal button whenever a property changes.
9
+ useLayoutEffect(function(){if(!paypal)return;if(_typeof(fundingSource)==='object')return;if(paypalButton.current){paypalButton.current.close();}var customSettings=getThemeSettings('PayPal')||{};paypalButton.current=paypal.Buttons({fundingSource:fundingSource||paypal.FUNDING.PAYPAL,createOrder:function createOrder(){var _paymentTransactions$;var externalCode=(_paymentTransactions$=paymentTransactions[0])===null||_paymentTransactions$===void 0?void 0:_paymentTransactions$.externalCode;return externalCode;},onInit:function onInit(_,actions){// Here again thanks paypal, there is no way access the actions outside these handlers.
10
+ setPaypalActions(actions);},onClick:function onClick(_,actions){// Trigger manual form validation to comply to paypal standards.
11
+ var isValid=formActions.current.onValidate();if(isValid&&!disabled){return actions.resolve();}return actions.reject();},onApprove:function(){var _onApprove=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_,actions){var redirect;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.next=2;return formActions.current.onSubmit();case 2:redirect=_context.sent;if(redirect){showModal({type:MODAL_PIPELINE_ERROR,title:null,confirm:null,dismiss:'modal.ok',message:'checkout.errors.paypalFunding'});actions.restart();}case 4:case"end":return _context.stop();}},_callee);}));function onApprove(_x,_x2){return _onApprove.apply(this,arguments);}return onApprove;}(),style:_extends({label:'pay',color:'white'},customSettings)});paypalButton.current.render(button.current);},[disabled,fundingSource,paymentTransactions,paypal,showModal]);// Sync our internal disabled state with paypals disabled state.
12
+ useEffect(function(){if(!paypalActions)return;if(disabled){paypalActions.disable();return;}paypalActions.enable();},[disabled,paypalActions]);if(_typeof(fundingSource)==='object')return null;if(!paypal){return null;}return React.createElement(Fragment,null,React.createElement("h3",{className:styles.headline},i18n.text('checkout.finalizePayment')),React.createElement("div",{ref:button}));};var mapDispatchToProps={showModal:showModal};export default connect(null,mapDispatchToProps)(PaypalPayButton);
@@ -0,0 +1,6 @@
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{useEffect,useContext}from'react';import PropTypes from'prop-types';import{isAvailable,PayPalRiskCheck}from'@shopgate/native-modules';import PaymentContext from"../context";/**
2
+ * Paypal provider
3
+ * @return {JSX}
4
+ */var PaypalProvider=function PaypalProvider(_ref){var activeFundingSource=_ref.activePaymentMeta;var _useContext=useContext(PaymentContext),registerPaymentMethod=_useContext.registerPaymentMethod;useEffect(function(){// Register payment method.
5
+ registerPaymentMethod({// Paypal doesn't need to fulfill any transactions.
6
+ fulfillTransaction:function(){var _fulfillTransaction=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref2){var paymentTransactions,_paymentTransactions$,id;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:paymentTransactions=_ref2.paymentTransactions;if(!isAvailable()){_context.next=10;break;}id=paymentTransactions===null||paymentTransactions===void 0?void 0:(_paymentTransactions$=paymentTransactions[0])===null||_paymentTransactions$===void 0?void 0:_paymentTransactions$.id;_context.prev=3;_context.next=6;return PayPalRiskCheck.submit(id);case 6:_context.next=10;break;case 8:_context.prev=8;_context.t0=_context["catch"](3);case 10:return _context.abrupt("return",[]);case 11:case"end":return _context.stop();}},_callee,null,[[3,8]]);}));function fulfillTransaction(_x){return _fulfillTransaction.apply(this,arguments);}return fulfillTransaction;}()});},[activeFundingSource,registerPaymentMethod]);return null;};PaypalProvider.propTypes={activePaymentMeta:PropTypes.string};PaypalProvider.defaultProps={activePaymentMeta:null};export default PaypalProvider;
@@ -0,0 +1 @@
1
+ import{isAvailable}from'@shopgate/native-modules';import Provider from"./PaypalProvider";import Button from"./PaypalButton";import PayButton from"./PaypalPayButton";import{hasWebBridge}from"../../../core";export default{code:'paypal',provider:Provider,button:Button,content:function content(){return null;},payButton:!isAvailable()?PayButton:null,getSupportsRedirect:function getSupportsRedirect(){return!hasWebBridge();}};
@@ -0,0 +1,9 @@
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;}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{useEffect,useState}from'react';var SDK_ID='sg-paypal-sdk';var renderQueue=[];/**
2
+ * Asynchronously loads the javascript paypal sdk
3
+ * @param {Object} settings Payment method settings
4
+ * @param {Object} order The active order
5
+ * @returns {Promise}
6
+ * */export var loadWebSdk=function loadWebSdk(settings,order){return new Promise(function(resolve,reject){if(document.querySelector("#".concat(SDK_ID))){resolve();return;}var script=document.createElement('script');script.id=SDK_ID;script.setAttribute('data-partner-attribution-id','ShopgateGmbH_Cart_PPCP');script.onload=function(){resolve();renderQueue.forEach(function(cb){return cb();});renderQueue=[];};script.onerror=reject;var parameters=_extends({'client-id':settings.clientId,'merchant-id':settings.merchantIdInPayPal,'disable-funding':'credit,card','integration-date':'2020-12-07',commit:'true',currency:order.currencyCode,intent:'authorize',components:'buttons,funding-eligibility,marks'},settings.env==='sandbox'?{debug:'true'}:{});var parametersString=Object.entries(parameters).map(function(_ref){var _ref2=_slicedToArray(_ref,2),key=_ref2[0],value=_ref2[1];return"".concat(key,"=").concat(value);}).join('&');script.src="https://www.paypal.com/sdk/js?".concat(parametersString);document.head.appendChild(script);});};/**
7
+ * Hook that ensures that component will be supplied with the sdk once loaded.
8
+ * @returns {Object}
9
+ */export var usePaypal=function usePaypal(){var _useState=useState(window.paypal||null),_useState2=_slicedToArray(_useState,2),paypal=_useState2[0],setPaypal=_useState2[1];useEffect(function(){if(paypal){return;}renderQueue.push(function(){return setPaypal(window.paypal);});},[paypal]);return paypal;};
@@ -0,0 +1,6 @@
1
+ import{connect}from'react-redux';import{getStripePublishableKey}from'@shopgate/engage/checkout/selectors/payment';/**
2
+ * @returns {Function}
3
+ */function makeMapStateToProps(){/**
4
+ * @param {Object} state The application state.
5
+ * @returns {Object}
6
+ */return function(state){return{publishableKey:getStripePublishableKey(state)};};}export default connect(makeMapStateToProps);
@@ -0,0 +1,5 @@
1
+ import _regeneratorRuntime from"@babel/runtime/regenerator";var _excluded=["publishableKey","onChange","active","activePaymentMeta"];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;}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;}import React,{useEffect,useState,Fragment}from'react';import PropTypes from'prop-types';import{css}from'glamor';import Button from"../../components/PaymentMethodButton";import{i18n}from"../../../core/helpers/i18n";import{loadSdk}from"./sdk";import{useCheckoutContext}from"../../hooks/common";import connect from"./StripeButton.connector";import googlePayLogo from"./googlepay.png";import applePayLogo from"./applepay.svg";var styles={mark:css({height:32}).toString()};/**
2
+ * Stripe
3
+ * @param {Object} props Props
4
+ * @returns {JSX}
5
+ */var StripeButton=function StripeButton(_ref){var publishableKey=_ref.publishableKey,_onChange=_ref.onChange,active=_ref.active,subMethod=_ref.activePaymentMeta,props=_objectWithoutProperties(_ref,_excluded);var _useState=useState(null),_useState2=_slicedToArray(_useState,2),stripeRequest=_useState2[0],setStripeRequest=_useState2[1];var _useState3=useState(null),_useState4=_slicedToArray(_useState3,2),stripeRequestType=_useState4[0],setStripeRequestType=_useState4[1];var _useCheckoutContext=useCheckoutContext(),order=_useCheckoutContext.order;useEffect(function(){if(!publishableKey){return;}/** */var fn=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var _order$addressSequenc,_order$addressSequenc2;var stripe,req,availability;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:if(order){_context.next=2;break;}return _context.abrupt("return");case 2:_context.next=4;return loadSdk(publishableKey);case 4:stripe=_context.sent;req=stripe.paymentRequest({country:(_order$addressSequenc=order.addressSequences)===null||_order$addressSequenc===void 0?void 0:(_order$addressSequenc2=_order$addressSequenc[0])===null||_order$addressSequenc2===void 0?void 0:_order$addressSequenc2.country,currency:order.currencyCode.toLowerCase(),total:{label:'Checkout',amount:Math.round(order.total*100)}});_context.next=8;return req.canMakePayment();case 8:availability=_context.sent;if(availability){_context.next=11;break;}return _context.abrupt("return");case 11:setStripeRequest(req);setStripeRequestType(availability);case 13:case"end":return _context.stop();}},_callee);}));return function fn(){return _ref2.apply(this,arguments);};}();fn();},[order,publishableKey]);return React.createElement(Fragment,null,React.createElement(Button,_extends({},props,{onChange:function onChange(){return _onChange(null);},active:active&&!subMethod}),i18n.text('checkout.payment.buttons.stripe')),stripeRequest&&(stripeRequestType===null||stripeRequestType===void 0?void 0:stripeRequestType.applePay)?React.createElement(Button,_extends({},props,{active:!!(active&&subMethod),onChange:function onChange(){return _onChange({stripeRequest:stripeRequest,stripeRequestType:stripeRequestType});}}),React.createElement("img",{className:styles.mark,alt:"ApplePay",src:applePayLogo})):null,stripeRequest&&!(stripeRequestType===null||stripeRequestType===void 0?void 0:stripeRequestType.applePay)?React.createElement(Button,_extends({},props,{active:!!(active&&subMethod),onChange:function onChange(){return _onChange({stripeRequest:stripeRequest,stripeRequestType:stripeRequestType});}}),React.createElement("img",{className:styles.mark,alt:"GooglePay",src:googlePayLogo})):null);};StripeButton.defaultProps={publishableKey:null,activePaymentMeta:null};export default connect(StripeButton);
@@ -0,0 +1,10 @@
1
+ function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(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);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}function _callSuper(_this,derived,args){function isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{return!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(e){return false;}}derived=_getPrototypeOf(derived);return _possibleConstructorReturn(_this,isNativeReflectConstruct()?Reflect.construct(derived,args||[],_getPrototypeOf(_this).constructor):derived.apply(_this,args));}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}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,{useContext}from'react';import{css}from'glamor';import{themeConfig}from'@shopgate/engage';import{i18n}from'@shopgate/engage/core';import{TextField}from'@shopgate/engage/components';import{getCSSCustomProp}from'@shopgate/engage/styles';import{CardNumberElement,CardCvcElement,CardExpiryElement}from'@stripe/react-stripe-js';import Section from"../../components/Checkout/CheckoutSection";import{useCheckoutContext}from"../../hooks/common";import StripeContext from"./StripeProvider.context";var colors=themeConfig.colors;var styles={root:css({padding:'0 16px',display:'flex',flexDirection:'column',flex:'0 0 auto',' .formElement':{background:"var(--color-background-accent, ".concat(colors.shade8,")"),padding:0,marginBottom:38,borderTopLeftRadius:4,borderTopRightRadius:4,borderBottom:"1px solid ".concat(colors.shade12)},' .formElement label':{color:'var(--color-text-low-emphasis)',paddingLeft:24},' .underline':{marginBottom:0,borderBottom:'none'},' .errorText':{bottom:-20,left:18},' .StripeElement':{paddingLeft:16}}).toString(),secondRow:css({display:'flex',flexDirection:'row'}).toString(),cvc:css({flex:1.5,marginRight:16}).toString(),expiry:css({flex:1}).toString()};/* eslint-disable react/prop-types */ /**
2
+ * Wrapper
3
+ * @param {Object} Element element
4
+ * @returns {Object}
5
+ */var wrapStripeElement=function wrapStripeElement(Element){return(/*#__PURE__*/function(_React$Component){function _class(){var _this2;_classCallCheck(this,_class);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this2=_callSuper(this,_class,[].concat(args));_defineProperty(_this2,"onChange",function(){_this2.props.onChange({target:{value:' '}});});return _this2;}_inherits(_class,_React$Component);return _createClass(_class,[{key:"render",value:/** Render
6
+ * @returns {JSX} */function render(){return React.createElement(Element,_extends({},this.props,{onChange:this.onChange}));}}]);}(React.Component));};/* eslint-enable react/prop-types */var StripeCardNumberElement=wrapStripeElement(CardNumberElement);var StripeCardCvcElement=wrapStripeElement(CardCvcElement);var StripeCardExpiryElement=wrapStripeElement(CardExpiryElement);/**
7
+ * PickupContactForm
8
+ * @returns {JSX}
9
+ */var StripeCreditCard=function StripeCreditCard(){var _paymentData$meta;var cardRef=React.useRef();var _useContext=useContext(StripeContext),error=_useContext.error,setError=_useContext.setError;var _useCheckoutContext=useCheckoutContext(),needsPayment=_useCheckoutContext.needsPayment,paymentData=_useCheckoutContext.paymentData;// Scrolls to stripe config when error is set.
10
+ React.useEffect(function(){if(!error)return;cardRef.current.scrollIntoView({behavior:'smooth'});},[error]);if(!needsPayment){return null;}if(!!(paymentData===null||paymentData===void 0?void 0:(_paymentData$meta=paymentData.meta)===null||_paymentData$meta===void 0?void 0:_paymentData$meta.stripeRequest)||!!(paymentData===null||paymentData===void 0?void 0:paymentData.meta)){return null;}var textFieldStyles={style:{base:{color:getCSSCustomProp('--color-text-high-emphasis'),'::placeholder':{color:getCSSCustomProp('--color-text-low-emphasis')}}}};return React.createElement("div",{ref:cardRef,className:styles.root},React.createElement(Section,{title:"checkout.creditCard.headline",hasForm:true},React.createElement(TextField,{label:i18n.text('checkout.creditCard.card'),name:"creditCard",inputComponent:StripeCardNumberElement,isControlled:false,value:" ",errorText:error||undefined,onChange:function onChange(){return error&&setError(null);},variables:true,attributes:{options:_extends({showIcon:true},textFieldStyles)}}),React.createElement("div",{className:styles.secondRow},React.createElement(TextField,{className:styles.cvc,label:i18n.text('checkout.creditCard.cvc'),name:"creditCard",inputComponent:StripeCardCvcElement,isControlled:false,onChange:function onChange(){return error&&setError(null);},value:" ",attributes:{options:_extends({},textFieldStyles)}}),React.createElement(TextField,{className:styles.expiry,label:i18n.text('checkout.creditCard.expiry'),name:"creditCard",inputComponent:StripeCardExpiryElement,isControlled:false,onChange:function onChange(){return error&&setError(null);},value:" ",attributes:{options:_extends({},textFieldStyles)}}))));};export default StripeCreditCard;
@@ -0,0 +1,6 @@
1
+ import React from'react';import PropTypes from'prop-types';import{i18n}from"../../../core/helpers/i18n";import{useCheckoutContext}from"../../hooks/common";import{prepareStripeRequestCheckout}from"./StripeProvider";import{getSdk}from"./sdk";/**
2
+ * Paypal Pay button
3
+ * @returns {JSX}
4
+ */var StripePayButton=function StripePayButton(_ref){var children=_ref.children,disabled=_ref.disabled,onSubmit=_ref.onSubmit,onValidate=_ref.onValidate;var _useCheckoutContext=useCheckoutContext(),order=_useCheckoutContext.order,paymentData=_useCheckoutContext.paymentData,setLocked=_useCheckoutContext.setLocked;var _ref2=(paymentData===null||paymentData===void 0?void 0:paymentData.meta)||{},stripeRequest=_ref2.stripeRequest,stripeRequestType=_ref2.stripeRequestType;if(!stripeRequestType||!(stripeRequestType===null||stripeRequestType===void 0?void 0:stripeRequestType.applePay)){return children;}/* eslint-disable react/button-has-type */return React.createElement("button",{disabled:disabled,lang:i18n.getLang(),onClick:function onClick(){// Make sure button can't be triggered when loading
5
+ if(!onValidate()||disabled){return;}// Trigger stripe on client.
6
+ setLocked(true);prepareStripeRequestCheckout(getSdk(),stripeRequest,order).then(function(event){stripeRequest.preparedEvent=event;onSubmit();})["catch"](function(){setLocked(false);});},style:{WebkitAppearance:'-apple-pay-button',ApplePayButtonType:'buy',height:40}},' ');/* eslint-enable react/button-has-type */};export default StripePayButton;
@@ -0,0 +1,6 @@
1
+ import{connect}from'react-redux';import{getStripePublishableKey}from'@shopgate/engage/checkout/selectors/payment';/**
2
+ * @returns {Function}
3
+ */function makeMapStateToProps(){/**
4
+ * @param {Object} state The application state.
5
+ * @returns {Object}
6
+ */return function(state){return{publishableKey:getStripePublishableKey(state)};};}export default connect(makeMapStateToProps);
@@ -0,0 +1 @@
1
+ import React from'react';var initialState={};export default React.createContext(initialState);
@@ -0,0 +1,33 @@
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,{useEffect,useContext}from'react';import{i18n}from'@shopgate/engage/core';import{Elements,CardNumberElement,useStripe,useElements}from'@stripe/react-stripe-js';import Context from"./StripeProvider.context";import connect from"./StripeProvider.connector";import{promise as stripePromise,loadSdk}from"./sdk";import{useCheckoutContext}from"../../hooks/common";import PaymentContext from"../context";/**
2
+ * Prepares checkout with stripe request and creates event data.
3
+ * @param {Stripe} stripe Stripe
4
+ * @param {Object} req Stripe request.
5
+ * @param {Order} order Order
6
+ * @return {Promise}
7
+ */export var prepareStripeRequestCheckout=function prepareStripeRequestCheckout(stripe,req,order){return new Promise(/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(resolve,reject){var availability;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:// Update totals if they updated due to promotions etc.
8
+ req.update({total:{amount:Math.round(order.total*100),label:'Checkout'}});// Recheck availability again.
9
+ _context2.next=3;return req.canMakePayment();case 3:availability=_context2.sent;if(availability){_context2.next=7;break;}reject(availability);return _context2.abrupt("return");case 7:// Handle success
10
+ req.on('paymentmethod',/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(event){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:resolve(event);case 1:case"end":return _context.stop();}},_callee);}));return function(_x3){return _ref2.apply(this,arguments);};}());// Handle cancellation
11
+ req.on('cancel',function(err){reject(err);});// Show to user
12
+ req.show();case 10:case"end":return _context2.stop();}},_callee2);}));return function(_x,_x2){return _ref.apply(this,arguments);};}());};/**
13
+ * Triggers the payment using stripe payment request api.
14
+ * @param {Object} stripe Stripe
15
+ * @param {Object} req Stripe Request
16
+ * @param {Object} order Order
17
+ * @param {Object} activeTransaction Active request
18
+ * @returns {Promise}
19
+ */var triggerStripeRequest=/*#__PURE__*/function(){var _ref3=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(stripe,req,order,activeTransaction){var _activeTransaction$ch;var event,intent,result,step;return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:// Create checkout event on stripe.
20
+ // For apple pay the event is already created beforehands
21
+ // This is due to safaris limitation that the `show` needs
22
+ // to happen directly inside a gesture handler (click, ..)
23
+ event=req.preparedEvent;if(event){_context3.next=5;break;}_context3.next=4;return prepareStripeRequestCheckout(stripe,req,order);case 4:event=_context3.sent;case 5:// Send over to stripe and let it validate.
24
+ intent=activeTransaction===null||activeTransaction===void 0?void 0:(_activeTransaction$ch=activeTransaction.checkoutParams)===null||_activeTransaction$ch===void 0?void 0:_activeTransaction$ch.paymentIntent;/* eslint-disable camelcase */_context3.next=8;return stripe.confirmCardPayment(intent,{payment_method:event.paymentMethod.id},{handleActions:false});case 8:result=_context3.sent;if(!result.error){_context3.next=12;break;}event.complete('fail');throw result.error;case 12:event.complete('success');if(!(result.paymentIntent.status==='requires_action')){_context3.next=20;break;}_context3.next=16;return stripe.confirmCardPayment(intent);case 16:step=_context3.sent;if(!step.error){_context3.next=19;break;}throw step.error;case 19:return _context3.abrupt("return",step);case 20:return _context3.abrupt("return",result);case 21:case"end":return _context3.stop();}},_callee3);}));return function triggerStripeRequest(_x4,_x5,_x6,_x7){return _ref3.apply(this,arguments);};}();/**
25
+ * A Provider that is needed for all stripe based
26
+ * @param {Object} props The components props.
27
+ * @returns {JSX}
28
+ */var StripeProvider=function StripeProvider(_ref4){var children=_ref4.children;var _React$useState=React.useState(null),_React$useState2=_slicedToArray(_React$useState,2),error=_React$useState2[0],setError=_React$useState2[1];var _useCheckoutContext=useCheckoutContext(),order=_useCheckoutContext.order,paymentData=_useCheckoutContext.paymentData;var stripe=useStripe();var elements=useElements();var contextApi=React.useMemo(function(){return{error:error,setError:setError,fulfillTransaction:function(){var _fulfillTransaction=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_ref5){var _activeTransaction$ch2;var paymentTransactions,activeTransaction,_ref7,_paymentIntent,_ref8,incomingError,paymentIntent;return _regeneratorRuntime.wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:paymentTransactions=_ref5.paymentTransactions;// Make sure api responded with a new payment transaction.
29
+ activeTransaction=paymentTransactions[0];if(activeTransaction===null||activeTransaction===void 0?void 0:(_activeTransaction$ch2=activeTransaction.checkoutParams)===null||_activeTransaction$ch2===void 0?void 0:_activeTransaction$ch2.paymentIntent){_context4.next=5;break;}setError(i18n.text('checkout.errors.noPaymentTransaction'));return _context4.abrupt("return",false);case 5:if(!((paymentData===null||paymentData===void 0?void 0:paymentData.meta)&&(paymentData===null||paymentData===void 0?void 0:paymentData.meta.stripeRequest))){_context4.next=17;break;}_context4.prev=6;_context4.next=9;return triggerStripeRequest(stripe,paymentData.meta.stripeRequest,order,activeTransaction);case 9:_ref7=_context4.sent;_paymentIntent=_ref7.paymentIntent;return _context4.abrupt("return",[{id:activeTransaction.id,checkoutParams:{paymentIntentId:_paymentIntent.id}}]);case 14:_context4.prev=14;_context4.t0=_context4["catch"](6);return _context4.abrupt("return",false);case 17:_context4.next=19;return stripe.confirmCardPayment(activeTransaction.checkoutParams.paymentIntent,{/* eslint-disable-next-line camelcase */payment_method:{card:elements.getElement(CardNumberElement)}});case 19:_ref8=_context4.sent;incomingError=_ref8.error;paymentIntent=_ref8.paymentIntent;if(!incomingError){_context4.next=26;break;}console.error(incomingError,activeTransaction.checkoutParams.paymentIntent);setError(incomingError.message);return _context4.abrupt("return",false);case 26:return _context4.abrupt("return",[{id:activeTransaction.id,checkoutParams:{paymentIntentId:paymentIntent.id}}]);case 27:case"end":return _context4.stop();}},_callee4,null,[[6,14]]);}));function fulfillTransaction(_x8){return _fulfillTransaction.apply(this,arguments);}return fulfillTransaction;}()};},[elements,error,order,paymentData,stripe]);var _useContext=useContext(PaymentContext),registerPaymentMethod=_useContext.registerPaymentMethod;useEffect(function(){registerPaymentMethod(contextApi);},[contextApi,registerPaymentMethod]);return React.createElement(Context.Provider,{value:contextApi},children);};/**
30
+ * A Provider that is needed for all stripe based
31
+ * @param {Object} props The components props.
32
+ * @returns {JSX}
33
+ */var StripeProviderWrapper=function StripeProviderWrapper(_ref9){var publishableKey=_ref9.publishableKey,children=_ref9.children;React.useEffect(function(){if(!publishableKey){return;}loadSdk(publishableKey);},[publishableKey]);return React.createElement(Elements,{stripe:stripePromise},React.createElement(StripeProvider,null,children));};StripeProviderWrapper.defaultProps={publishableKey:null};export default connect(StripeProviderWrapper);
@@ -0,0 +1,84 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Artwork" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ width="165.52107px" height="105.9651px" viewBox="0 0 165.52107 105.9651" enable-background="new 0 0 165.52107 105.9651"
5
+ xml:space="preserve">
6
+ <g>
7
+ <path id="XMLID_4_" d="M150.69807,0H14.82318c-0.5659,0-1.1328,0-1.69769,0.0033c-0.47751,0.0034-0.95391,0.0087-1.43031,0.0217
8
+ c-1.039,0.0281-2.0869,0.0894-3.1129,0.2738c-1.0424,0.1876-2.0124,0.4936-2.9587,0.9754
9
+ c-0.9303,0.4731-1.782,1.0919-2.52009,1.8303c-0.73841,0.7384-1.35721,1.5887-1.83021,2.52
10
+ c-0.4819,0.9463-0.7881,1.9166-0.9744,2.9598c-0.18539,1.0263-0.2471,2.074-0.2751,3.1119
11
+ c-0.0128,0.4764-0.01829,0.9528-0.0214,1.4291c-0.0033,0.5661-0.0022,1.1318-0.0022,1.6989V91.142
12
+ c0,0.5671-0.0011,1.13181,0.0022,1.69901c0.00311,0.4763,0.0086,0.9527,0.0214,1.4291
13
+ c0.028,1.03699,0.08971,2.08469,0.2751,3.11069c0.1863,1.0436,0.4925,2.0135,0.9744,2.9599
14
+ c0.473,0.9313,1.0918,1.7827,1.83021,2.52c0.73809,0.7396,1.58979,1.3583,2.52009,1.8302
15
+ c0.9463,0.4831,1.9163,0.7892,2.9587,0.9767c1.026,0.1832,2.0739,0.2456,3.1129,0.2737c0.4764,0.0108,0.9528,0.0172,1.43031,0.0194
16
+ c0.56489,0.0044,1.13179,0.0044,1.69769,0.0044h135.87489c0.5649,0,1.13181,0,1.69659-0.0044
17
+ c0.47641-0.0022,0.95282-0.0086,1.4314-0.0194c1.0368-0.0281,2.0845-0.0905,3.11301-0.2737
18
+ c1.041-0.1875,2.0112-0.4936,2.9576-0.9767c0.9313-0.4719,1.7805-1.0906,2.52011-1.8302c0.7372-0.7373,1.35599-1.5887,1.8302-2.52
19
+ c0.48299-0.9464,0.78889-1.9163,0.97429-2.9599c0.1855-1.026,0.2457-2.0737,0.2738-3.11069
20
+ c0.013-0.4764,0.01941-0.9528,0.02161-1.4291c0.00439-0.5672,0.00439-1.1319,0.00439-1.69901V14.8242
21
+ c0-0.5671,0-1.1328-0.00439-1.6989c-0.0022-0.4763-0.00861-0.9527-0.02161-1.4291c-0.02811-1.0379-0.0883-2.0856-0.2738-3.1119
22
+ c-0.18539-1.0432-0.4913-2.0135-0.97429-2.9598c-0.47421-0.9313-1.093-1.7816-1.8302-2.52
23
+ c-0.73961-0.7384-1.58881-1.3572-2.52011-1.8303c-0.9464-0.4818-1.9166-0.7878-2.9576-0.9754
24
+ c-1.0285-0.1844-2.0762-0.2457-3.11301-0.2738c-0.47858-0.013-0.95499-0.0183-1.4314-0.0217C151.82988,0,151.26297,0,150.69807,0
25
+ L150.69807,0z"/>
26
+ <path id="XMLID_3_" fill="#FFFFFF" d="M150.69807,3.532l1.67149,0.0032c0.4528,0.0032,0.90561,0.0081,1.36092,0.0205
27
+ c0.79201,0.0214,1.71849,0.0643,2.58209,0.2191c0.7507,0.1352,1.38029,0.3408,1.9845,0.6484
28
+ c0.5965,0.3031,1.14301,0.7003,1.62019,1.1768c0.479,0.4797,0.87671,1.0271,1.18381,1.6302
29
+ c0.30589,0.5995,0.51019,1.2261,0.64459,1.9823c0.1544,0.8542,0.1971,1.7832,0.21881,2.5801
30
+ c0.01219,0.4498,0.01819,0.8996,0.0204,1.3601c0.00429,0.5569,0.0042,1.1135,0.0042,1.6715V91.142
31
+ c0,0.558,0.00009,1.1136-0.0043,1.6824c-0.00211,0.4497-0.0081,0.8995-0.0204,1.3501c-0.02161,0.7957-0.0643,1.7242-0.2206,2.5885
32
+ c-0.13251,0.7458-0.3367,1.3725-0.64429,1.975c-0.30621,0.6016-0.70331,1.1484-1.18022,1.6251
33
+ c-0.47989,0.48-1.0246,0.876-1.62819,1.1819c-0.5997,0.3061-1.22821,0.51151-1.97151,0.6453
34
+ c-0.88109,0.157-1.84639,0.2002-2.57339,0.2199c-0.4574,0.0103-0.9126,0.01649-1.37889,0.0187
35
+ c-0.55571,0.0043-1.1134,0.0042-1.6692,0.0042H14.82318c-0.0074,0-0.0146,0-0.0221,0c-0.5494,0-1.0999,0-1.6593-0.0043
36
+ c-0.4561-0.00211-0.9112-0.0082-1.3512-0.0182c-0.7436-0.0201-1.7095-0.0632-2.5834-0.2193
37
+ c-0.74969-0.1348-1.3782-0.3402-1.9858-0.6503c-0.59789-0.3032-1.1422-0.6988-1.6223-1.1797
38
+ c-0.4764-0.4756-0.8723-1.0207-1.1784-1.6232c-0.3064-0.6019-0.5114-1.2305-0.64619-1.9852
39
+ c-0.15581-0.8626-0.19861-1.7874-0.22-2.5777c-0.01221-0.4525-0.01731-0.9049-0.02021-1.3547l-0.0022-1.3279l0.0001-0.3506V14.8242
40
+ l-0.0001-0.3506l0.0021-1.3251c0.003-0.4525,0.0081-0.9049,0.02031-1.357c0.02139-0.7911,0.06419-1.7163,0.22129-2.5861
41
+ c0.1336-0.7479,0.3385-1.3765,0.6465-1.9814c0.3037-0.5979,0.7003-1.1437,1.17921-1.6225
42
+ c0.477-0.4772,1.02309-0.8739,1.62479-1.1799c0.6011-0.3061,1.2308-0.5116,1.9805-0.6465c0.8638-0.1552,1.7909-0.198,2.5849-0.2195
43
+ c0.4526-0.0123,0.9052-0.0172,1.3544-0.0203l1.6771-0.0033H150.69807"/>
44
+ <g>
45
+ <g>
46
+ <path d="M45.1862,35.64053c1.41724-1.77266,2.37897-4.15282,2.12532-6.58506c-2.07464,0.10316-4.60634,1.36871-6.07207,3.14276
47
+ c-1.31607,1.5192-2.4809,3.99902-2.17723,6.3293C41.39111,38.72954,43.71785,37.36345,45.1862,35.64053"/>
48
+ <path d="M47.28506,38.98252c-3.38211-0.20146-6.25773,1.91951-7.87286,1.91951c-1.61602,0-4.08931-1.81799-6.76438-1.76899
49
+ c-3.48177,0.05114-6.71245,2.01976-8.4793,5.15079c-3.63411,6.2636-0.95904,15.55471,2.57494,20.65606
50
+ c1.71618,2.5238,3.78447,5.30269,6.50976,5.20287c2.57494-0.10104,3.58421-1.66732,6.71416-1.66732
51
+ c3.12765,0,4.03679,1.66732,6.76252,1.61681c2.82665-0.05054,4.59381-2.52506,6.30997-5.05132
52
+ c1.96878-2.877,2.77473-5.65498,2.82542-5.80748c-0.0507-0.05051-5.45058-2.12204-5.50065-8.33358
53
+ c-0.05098-5.20101,4.23951-7.6749,4.44144-7.82832C52.3832,39.4881,48.5975,39.08404,47.28506,38.98252"/>
54
+ </g>
55
+ <g>
56
+ <path d="M76.73385,31.94381c7.35096,0,12.4697,5.06708,12.4697,12.44437c0,7.40363-5.22407,12.49704-12.65403,12.49704h-8.13892
57
+ v12.94318h-5.88037v-37.8846H76.73385z M68.41059,51.9493h6.74732c5.11975,0,8.0336-2.75636,8.0336-7.53479
58
+ c0-4.77792-2.91385-7.50845-8.00727-7.50845h-6.77365V51.9493z"/>
59
+ <path d="M90.73997,61.97864c0-4.8311,3.70182-7.79761,10.26583-8.16526l7.56061-0.44614v-2.12639
60
+ c0-3.07185-2.07423-4.90959-5.53905-4.90959c-3.28251,0-5.33041,1.57492-5.82871,4.04313h-5.35574
61
+ c0.31499-4.98859,4.56777-8.66407,11.3941-8.66407c6.69466,0,10.97377,3.54432,10.97377,9.08388v19.03421h-5.43472v-4.54194
62
+ h-0.13065c-1.60125,3.07185-5.09341,5.01441-8.71623,5.01441C94.52078,70.30088,90.73997,66.94038,90.73997,61.97864z
63
+ M108.56641,59.4846v-2.17905l-6.8,0.41981c-3.38683,0.23649-5.30306,1.73291-5.30306,4.09579
64
+ c0,2.41504,1.99523,3.99046,5.04075,3.99046C105.46823,65.81161,108.56641,63.08108,108.56641,59.4846z"/>
65
+ <path d="M119.34167,79.9889v-4.5946c0.4193,0.10483,1.36425,0.10483,1.83723,0.10483c2.6252,0,4.04313-1.10245,4.90908-3.9378
66
+ c0-0.05267,0.49931-1.68025,0.49931-1.70658l-9.97616-27.64562h6.14268l6.98432,22.47371h0.10432l6.98433-22.47371h5.9857
67
+ l-10.34483,29.06304c-2.36186,6.69517-5.0924,8.84789-10.81577,8.84789C121.17891,80.12006,119.76098,80.06739,119.34167,79.9889
68
+ z"/>
69
+ </g>
70
+ </g>
71
+ </g>
72
+ <g>
73
+ </g>
74
+ <g>
75
+ </g>
76
+ <g>
77
+ </g>
78
+ <g>
79
+ </g>
80
+ <g>
81
+ </g>
82
+ <g>
83
+ </g>
84
+ </svg>
@@ -0,0 +1 @@
1
+ import Provider from"./StripeProvider";import StripeCreditCard from"./StripeCreditCard";import PayButton from"./StripePayButton";import Button from"./StripeButton";export default{code:'stripe',provider:Provider,content:StripeCreditCard,button:Button,payButton:PayButton};
@@ -0,0 +1,9 @@
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{loadStripe}from'@stripe/stripe-js';import{logger}from'@shopgate/engage/core/helpers';// Write a log when sdk module loads - should not happen before entering native checkout
2
+ logger.warn('Stripe SDK loaded');var resolve;var reject;var stripe;export var promise=new Promise(function(res,rej){resolve=res;reject=rej;});var loaded=false;/**
3
+ * Loads the stripe sdk
4
+ * @param {string} publishableKey The publishable stripe key.
5
+ * @returns {Stripe}
6
+ */export var loadSdk=function loadSdk(publishableKey){if(loaded||!publishableKey){return promise;}loaded=true;/** */var fn=/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var stripeObject;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.prev=0;_context.next=3;return loadStripe(publishableKey);case 3:stripeObject=_context.sent;stripe=stripeObject;resolve(stripeObject);return _context.abrupt("return",stripeObject);case 9:_context.prev=9;_context.t0=_context["catch"](0);reject(_context.t0);throw _context.t0;case 13:case"end":return _context.stop();}},_callee,null,[[0,9]]);}));return function fn(){return _ref.apply(this,arguments);};}();return fn();};/**
7
+ * Returns the sdk
8
+ * @returns {Object}
9
+ * */export var getSdk=function getSdk(){return stripe;};
@@ -0,0 +1 @@
1
+ import React from'react';var initialContext={};export default React.createContext(initialContext);
@@ -0,0 +1,11 @@
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,{useCallback,useMemo,useState,useEffect}from'react';import PropTypes from'prop-types';import{connect}from'react-redux';import{LoadingProvider,historyPopToRoute as historyPopToRouteAction,useRoute}from'@shopgate/engage/core';import{getCheckoutOrder,getCheckoutBillingAddress,getCheckoutShippingAddress,getIsPickupContactSelectionEnabled}from'@shopgate/engage/checkout/selectors/order';import{updateCheckoutOrder as updateOrder,fetchCheckoutOrder as fetchOrder}from'@shopgate/engage/checkout/actions';import Context from"./AddressBookProvider.context";import{ADDRESS_TYPE_BILLING,ADDRESS_TYPE_SHIPPING,CHECKOUT_PATTERN}from"../constants";/**
2
+ * @param {Object} state The application state.
3
+ * @returns {Object}
4
+ */var makeMapStateToProp=function makeMapStateToProp(){return function(state){return{order:getCheckoutOrder(state),billingAddress:getCheckoutBillingAddress(state),shippingAddress:getCheckoutShippingAddress(state),isPickupContactEnabled:getIsPickupContactSelectionEnabled(state)};};};var mapDispatchToProps={updateCheckoutOrder:updateOrder,fetchCheckoutOrder:fetchOrder,historyPopToRoute:historyPopToRouteAction};/**
5
+ * AddressBookProvider
6
+ * @param {Object} props The component props
7
+ * @returns {JSX}
8
+ */var AddressBookProvider=function AddressBookProvider(_ref){var children=_ref.children,order=_ref.order,billingAddress=_ref.billingAddress,shippingAddress=_ref.shippingAddress,updateCheckoutOrder=_ref.updateCheckoutOrder,fetchCheckoutOrder=_ref.fetchCheckoutOrder,historyPopToRoute=_ref.historyPopToRoute,isPickupContactEnabled=_ref.isPickupContactEnabled;var _useState=useState(false),_useState2=_slicedToArray(_useState,2),isLoading=_useState2[0],setLoading=_useState2[1];var _useRoute=useRoute(),pathname=_useRoute.pathname,routeId=_useRoute.id,_useRoute$params$type=_useRoute.params.type,type=_useRoute$params$type===void 0?ADDRESS_TYPE_BILLING:_useRoute$params$type;var popToCheckout=useCallback(function(){historyPopToRoute({pattern:CHECKOUT_PATTERN,routeId:routeId});},[historyPopToRoute,routeId]);/**
9
+ * @param {Array} addressSequences Address sequences
10
+ * @returns {Array}
11
+ */var createAddressSequenceIndexes=function createAddressSequenceIndexes(addressSequences){var primaryBillToAddressSequenceIndex=addressSequences.findIndex(function(address){return address.type==='billing';});var primaryShipToAddressSequenceIndex=addressSequences.findIndex(function(address){return address.type==='shipping'||address.type==='pickup';});primaryBillToAddressSequenceIndex=primaryBillToAddressSequenceIndex!==-1?primaryBillToAddressSequenceIndex:undefined;primaryShipToAddressSequenceIndex=primaryShipToAddressSequenceIndex!==-1?primaryShipToAddressSequenceIndex:undefined;return{primaryBillToAddressSequenceIndex:primaryBillToAddressSequenceIndex,primaryShipToAddressSequenceIndex:primaryShipToAddressSequenceIndex};};var updateOrderWithContact=useCallback(/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(contactId){var gotoCheckout,addressSequences,billingFromSequence,_args=arguments;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:gotoCheckout=_args.length>1&&_args[1]!==undefined?_args[1]:true;setLoading(true);_context.prev=2;addressSequences=[];if(type===ADDRESS_TYPE_BILLING){addressSequences.push({customerContactId:contactId,type:'billing'});}else if(billingAddress){addressSequences.push({customerContactId:billingAddress.customerContactId,type:'billing'});}if(type===ADDRESS_TYPE_SHIPPING){addressSequences.push({customerContactId:contactId,type:'shipping'});}else if(shippingAddress){addressSequences.push({customerContactId:shippingAddress.customerContactId,type:'shipping'});}billingFromSequence=addressSequences.find(function(address){return address.type==='billing';});if(billingFromSequence&&isPickupContactEnabled){addressSequences.push({customerContactId:billingFromSequence.customerContactId,type:'pickup'});}_context.next=10;return updateCheckoutOrder(_extends({addressSequences:addressSequences},createAddressSequenceIndexes(addressSequences)));case 10:if(gotoCheckout){popToCheckout();}_context.next=15;break;case 13:_context.prev=13;_context.t0=_context["catch"](2);case 15:setLoading(false);case 16:case"end":return _context.stop();}},_callee,null,[[2,13]]);}));return function(_x){return _ref2.apply(this,arguments);};}(),[billingAddress,isPickupContactEnabled,popToCheckout,shippingAddress,type,updateCheckoutOrder]);var deleteContactFromOrder=useCallback(/*#__PURE__*/function(){var _ref3=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(contactId){var addressSequences;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:if(Array.isArray(order===null||order===void 0?void 0:order.addressSequences)){_context2.next=2;break;}return _context2.abrupt("return");case 2:addressSequences=order.addressSequences.reduce(function(acc,_ref4){var customerContactId=_ref4.customerContactId,addressType=_ref4.type;if(customerContactId!==contactId){acc.push({type:addressType,customerContactId:customerContactId});}return acc;},[]);_context2.prev=3;_context2.next=6;return updateCheckoutOrder(_extends({addressSequences:addressSequences},createAddressSequenceIndexes(addressSequences)));case 6:_context2.next=10;break;case 8:_context2.prev=8;_context2.t0=_context2["catch"](3);case 10:case"end":return _context2.stop();}},_callee2,null,[[3,8]]);}));return function(_x2){return _ref3.apply(this,arguments);};}(),[order,updateCheckoutOrder]);useEffect(function(){if(isLoading){LoadingProvider.setLoading(pathname);}else{LoadingProvider.resetLoading(pathname);}return function(){LoadingProvider.resetLoading(pathname);};},[isLoading,pathname]);useEffect(function(){if(!order){fetchCheckoutOrder();}},[fetchCheckoutOrder,order]);var value=useMemo(function(){return{isCheckout:true,updateOrderWithContact:updateOrderWithContact,deleteContactFromOrder:deleteContactFromOrder,popToCheckout:popToCheckout,type:type};},[updateOrderWithContact,deleteContactFromOrder,popToCheckout,type]);return React.createElement(Context.Provider,{value:value},children);};AddressBookProvider.defaultProps={children:null,order:null,billingAddress:null,shippingAddress:null};export default connect(makeMapStateToProp,mapDispatchToProps)(AddressBookProvider);
@@ -0,0 +1,7 @@
1
+ import{connect}from'react-redux';import{getShopSettings,getConfigFetching}from'@shopgate/engage/core/config';import{getPreferredLocationAddress}from'@shopgate/engage/locations/selectors';import{getCheckoutOrder,getCheckoutBillingAddress,getCheckoutShippingAddress,getCheckoutPickupAddress,getCheckoutTaxLines,getCheckoutPaymentTransactions,getIsReserveOnly,getIsShippingAddressSelectionEnabled,getIsPickupContactSelectionEnabled,getCheckoutFulfillmentSlot}from'@shopgate/engage/checkout/selectors/order';import{getNeedsPaymentForOrder}from'@shopgate/engage/checkout/selectors/payment';import{getCampaignAttribution}from'@shopgate/engage/checkout/selectors/campaign';import{fetchCart}from'@shopgate/pwa-common-commerce/cart';import{prepareCheckout,fetchCheckoutOrder,updateCheckoutOrder,submitCheckoutOrder}from'@shopgate/engage/checkout/actions';import{clearCheckoutCampaign}from'@shopgate/engage/checkout/action-creators';import{historyReplace,showModal,makeIsLastStackEntry}from'@shopgate/engage/core';/**
2
+ * @returns {Function}
3
+ */function makeMapStateToProps(){var isLastStackEntry=makeIsLastStackEntry();/**
4
+ * @param {Object} state The application state.
5
+ * @param {Object} props The component props
6
+ * @returns {Object}
7
+ */return function(state,props){return{isDataReady:!getConfigFetching(state)&&!!getCheckoutOrder(state),needsPayment:getNeedsPaymentForOrder(state)||false,paymentTransactions:getCheckoutPaymentTransactions(state),fulfillmentSlot:getCheckoutFulfillmentSlot(state),shopSettings:getShopSettings(state),userLocation:getPreferredLocationAddress(state),billingAddress:getCheckoutBillingAddress(state),shippingAddress:getCheckoutShippingAddress(state),pickupAddress:getCheckoutPickupAddress(state),taxLines:getCheckoutTaxLines(state),orderReserveOnly:getIsReserveOnly(state),isShippingAddressSelectionEnabled:getIsShippingAddressSelectionEnabled(state),isPickupContactSelectionEnabled:getIsPickupContactSelectionEnabled(state),campaignAttribution:getCampaignAttribution(state),order:getCheckoutOrder(state),isLastStackEntry:isLastStackEntry(state,props)};};}var mapDispatchToProps={historyReplace:historyReplace,fetchCart:fetchCart,prepareCheckout:prepareCheckout,fetchCheckoutOrder:fetchCheckoutOrder,updateCheckoutOrder:updateCheckoutOrder,submitCheckoutOrder:submitCheckoutOrder,clearCheckoutCampaign:clearCheckoutCampaign,showModal:showModal};export default connect(makeMapStateToProps,mapDispatchToProps);
@@ -0,0 +1 @@
1
+ export var pickupConstraints={firstName:{presence:{message:'validation.required',allowEmpty:false}},lastName:{presence:{message:'validation.required',allowEmpty:false}},emailAddress:{presence:{message:'validation.required',allowEmpty:false},email:{message:'validation.email'}},mobile:{presence:{message:'validation.required',allowEmpty:false},format:{pattern:'^[+0-9]+',message:'validation.mobileNumber'}}};export var selfPickupConstraints={};
@@ -0,0 +1 @@
1
+ import React from'react';var initialContext={};export default React.createContext(initialContext);
@@ -0,0 +1,28 @@
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 _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 _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;}/* eslint-disable no-unused-expressions */import React,{useCallback}from'react';import{isAvailable,InAppBrowser,Linking}from'@shopgate/native-modules';import{useFormState}from'@shopgate/engage/core/hooks/useFormState';import{i18n,useAsyncMemo,getUserAgent,LoadingProvider}from'@shopgate/engage/core';import{MARKETING_OPT_IN_DEFAULT}from'@shopgate/engage/registration/constants';import Context from"./CheckoutProvider.context";import connect from"./CheckoutProvider.connector";import{pickupConstraints,selfPickupConstraints}from"./CheckoutProvider.constraints";import{CHECKOUT_CONFIRMATION_PATTERN}from"../constants/routes";var defaultPickupPersonState={pickupPerson:'me',firstName:'',lastName:'',mobile:'',email:'',firstName2:'',lastName2:'',mobile2:'',email2:''};/**
2
+ * Converts validation errors into errors for form builder.
3
+ * @param {Object} validationErrors The validation errors.
4
+ * @returns {Array}
5
+ */var convertValidationErrors=function convertValidationErrors(validationErrors){return Object.keys(validationErrors).map(function(key){return{path:key,message:i18n.text(validationErrors[key])};});};var initialOptInFormState={marketingOptIn:MARKETING_OPT_IN_DEFAULT};/**
6
+ * Checkout Provider
7
+ * @returns {JSX}
8
+ */var CheckoutProvider=function CheckoutProvider(_ref){var pathPattern=_ref.pathPattern,orderInitialized=_ref.orderInitialized,orderReadOnly=_ref.orderReadOnly,historyReplace=_ref.historyReplace,prepareCheckout=_ref.prepareCheckout,fetchCheckoutOrder=_ref.fetchCheckoutOrder,updateCheckoutOrder=_ref.updateCheckoutOrder,submitCheckoutOrder=_ref.submitCheckoutOrder,showModal=_ref.showModal,children=_ref.children,shopSettings=_ref.shopSettings,billingAddress=_ref.billingAddress,shippingAddress=_ref.shippingAddress,pickupAddress=_ref.pickupAddress,paymentTransactions=_ref.paymentTransactions,fetchCart=_ref.fetchCart,taxLines=_ref.taxLines,userLocation=_ref.userLocation,isDataReady=_ref.isDataReady,fulfillmentSlot=_ref.fulfillmentSlot,orderReserveOnly=_ref.orderReserveOnly,isShippingAddressSelectionEnabled=_ref.isShippingAddressSelectionEnabled,isPickupContactSelectionEnabled=_ref.isPickupContactSelectionEnabled,isGuestCheckout=_ref.isGuestCheckout,campaignAttribution=_ref.campaignAttribution,clearCheckoutCampaign=_ref.clearCheckoutCampaign,checkoutOrder=_ref.order;var _React$useState=React.useState(null),_React$useState2=_slicedToArray(_React$useState,2),paymentButton=_React$useState2[0],setPaymentButton=_React$useState2[1];var paymentHandlerRef=React.useRef(null);var _React$useState3=React.useState(null),_React$useState4=_slicedToArray(_React$useState3,2),paymentData=_React$useState4[0],setPaymentData=_React$useState4[1];var _React$useState5=React.useState(true),_React$useState6=_slicedToArray(_React$useState5,2),isLocked=_React$useState6[0],setLocked=_React$useState6[1];var _React$useState7=React.useState(true),_React$useState8=_slicedToArray(_React$useState7,2),isButtonLocked=_React$useState8[0],setButtonLocked=_React$useState8[1];var _React$useState9=React.useState(true),_React$useState10=_slicedToArray(_React$useState9,2),isLoading=_React$useState10[0],setLoading=_React$useState10[1];var _React$useState11=React.useState(selfPickupConstraints),_React$useState12=_slicedToArray(_React$useState11,2),validationRules=_React$useState12[0],setValidationRules=_React$useState12[1];var _React$useState13=React.useState(false),_React$useState14=_slicedToArray(_React$useState13,2),updateOptIns=_React$useState14[0],_setUpdateOptIns=_React$useState14[1];var defaultOptInFormState=_extends({},initialOptInFormState);var optInFormState=useFormState(defaultOptInFormState,function(){});// Initialize checkout process.
9
+ var _useAsyncMemo=useAsyncMemo(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var _ref4,needsPaymentCheckout,success;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.prev=0;_context.next=3;return prepareCheckout({initializeOrder:!orderInitialized});case 3:_ref4=_context.sent;needsPaymentCheckout=_ref4.needsPayment;success=_ref4.success;setLocked(false);return _context.abrupt("return",{isCheckoutInitialized:success,needsPayment:needsPaymentCheckout});case 10:_context.prev=10;_context.t0=_context["catch"](0);return _context.abrupt("return",{isCheckoutInitialized:false,needsPayment:false});case 13:case"end":return _context.stop();}},_callee,null,[[0,10]]);})),[],false),_useAsyncMemo2=_slicedToArray(_useAsyncMemo,1),_useAsyncMemo2$=_useAsyncMemo2[0],isCheckoutInitialized=_useAsyncMemo2$.isCheckoutInitialized,needsPayment=_useAsyncMemo2$.needsPayment;// Handle passed errors from external checkout gateway.
10
+ React.useEffect(function(){var urlParams=new URLSearchParams(window.location.search);var errorCode=urlParams.get('errorCode');if(!errorCode){return;}showModal({title:null,confirm:null,dismiss:'modal.ok',message:'checkout.errors.payment.genericExternal'});},[showModal]);var submitPromise=React.useRef(null);// Handles submit of the checkout form.
11
+ var handleSubmitOrder=React.useCallback(/*#__PURE__*/function(){var _ref5=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(values){var _submitPromise$curren,_submitPromise$curren2,_submitPromise$curren3,_submitPromise$curren4,fulfilledPaymentTransactions,_submitPromise$curren5,_submitPromise$curren6,marketingOptIn,_ref7,paymentTransactionResults,redirectNeeded,_paymentHandlerRef$cu,_submitPromise$curren9,_submitPromise$curren10,_paymentTransactionRe3,_paymentTransactionRe4,url,_submitPromise$curren7,_submitPromise$curren8,redirectWanted,_paymentHandlerRef$cu2,_submitPromise$curren11,_submitPromise$curren12,_ref8,_ref9,order;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:setLocked(true);// Update order to set pickup contact.
12
+ if(orderReadOnly){_context2.next=14;break;}_context2.prev=2;_context2.next=5;return updateCheckoutOrder({notes:values.instructions,addressSequences:[_extends({},billingAddress,{customerContactId:billingAddress.customerContactId||undefined})].concat(isShippingAddressSelectionEnabled?_extends({},shippingAddress,{customerContactId:shippingAddress.customerContactId||undefined}):[],isPickupContactSelectionEnabled?_extends({},values.pickupPerson==='me'?_extends({},billingAddress,{customerContactId:billingAddress.customerContactId||undefined,type:'pickup'}):{type:'pickup',firstName:values.firstName,lastName:values.lastName,mobile:values.mobile,emailAddress:values.emailAddress}):[]),primaryBillToAddressSequenceIndex:0,primaryShipToAddressSequenceIndex:1});case 5:_context2.next=12;break;case 7:_context2.prev=7;_context2.t0=_context2["catch"](2);setLocked(false);submitPromise===null||submitPromise===void 0?void 0:(_submitPromise$curren=submitPromise.current)===null||_submitPromise$curren===void 0?void 0:(_submitPromise$curren2=_submitPromise$curren.resolve)===null||_submitPromise$curren2===void 0?void 0:_submitPromise$curren2.call(_submitPromise$curren);return _context2.abrupt("return");case 12:_context2.next=25;break;case 14:if(!(isGuestCheckout&&isPickupContactSelectionEnabled&&values.instructions)){_context2.next=25;break;}_context2.prev=15;_context2.next=18;return updateCheckoutOrder({notes:values.instructions});case 18:_context2.next=25;break;case 20:_context2.prev=20;_context2.t1=_context2["catch"](15);setLocked(false);submitPromise===null||submitPromise===void 0?void 0:(_submitPromise$curren3=submitPromise.current)===null||_submitPromise$curren3===void 0?void 0:(_submitPromise$curren4=_submitPromise$curren3.resolve)===null||_submitPromise$curren4===void 0?void 0:_submitPromise$curren4.call(_submitPromise$curren3);return _context2.abrupt("return");case 25:// Fulfill using selected payment method.
13
+ fulfilledPaymentTransactions=[];if(!needsPayment){_context2.next=34;break;}_context2.next=29;return paymentHandlerRef.current.fulfillTransaction({paymentTransactions:paymentTransactions});case 29:fulfilledPaymentTransactions=_context2.sent;if(fulfilledPaymentTransactions){_context2.next=34;break;}setLocked(false);submitPromise===null||submitPromise===void 0?void 0:(_submitPromise$curren5=submitPromise.current)===null||_submitPromise$curren5===void 0?void 0:(_submitPromise$curren6=_submitPromise$curren5.resolve)===null||_submitPromise$curren6===void 0?void 0:_submitPromise$curren6.call(_submitPromise$curren5);return _context2.abrupt("return");case 34:_context2.prev=34;if(updateOptIns){marketingOptIn=optInFormState.values.marketingOptIn;}_context2.next=38;return submitCheckoutOrder(_extends({paymentTransactions:fulfilledPaymentTransactions,userAgent:getUserAgent(),platform:'engage',marketingOptIn:marketingOptIn},campaignAttribution?{campaignAttribution:campaignAttribution}:{}));case 38:_ref7=_context2.sent;paymentTransactionResults=_ref7.paymentTransactionResults;redirectNeeded=_ref7.redirectNeeded;if(!(redirectNeeded&&paymentTransactionResults.length)){_context2.next=54;break;}_paymentTransactionRe3=paymentTransactionResults[0].redirectParams,_paymentTransactionRe4=_paymentTransactionRe3===void 0?{}:_paymentTransactionRe3,url=_paymentTransactionRe4.url;if(!isAvailable()){_context2.next=49;break;}_context2.next=46;return InAppBrowser.openLink({url:url,options:{enableDefaultShare:false}});case 46:// On Close we simply unlock the checkout
14
+ setLocked(false);submitPromise===null||submitPromise===void 0?void 0:(_submitPromise$curren7=submitPromise.current)===null||_submitPromise$curren7===void 0?void 0:(_submitPromise$curren8=_submitPromise$curren7.resolve)===null||_submitPromise$curren8===void 0?void 0:_submitPromise$curren8.call(_submitPromise$curren7);return _context2.abrupt("return");case 49:// Implemented specifically for paypal:
15
+ // https://developer.paypal.com/docs/checkout/integration-features/funding-failure/
16
+ // In the website we don't want to redirect and instead use to paypal sdk to
17
+ // control the "mini browser" / popup.
18
+ redirectWanted=true;if(paymentHandlerRef===null||paymentHandlerRef===void 0?void 0:(_paymentHandlerRef$cu=paymentHandlerRef.current)===null||_paymentHandlerRef$cu===void 0?void 0:_paymentHandlerRef$cu.getSupportsRedirect){redirectWanted=paymentHandlerRef===null||paymentHandlerRef===void 0?void 0:(_paymentHandlerRef$cu2=paymentHandlerRef.current)===null||_paymentHandlerRef$cu2===void 0?void 0:_paymentHandlerRef$cu2.getSupportsRedirect();}if(redirectWanted){window.location.href=url;}else{setLocked(false);}submitPromise===null||submitPromise===void 0?void 0:(_submitPromise$curren9=submitPromise.current)===null||_submitPromise$curren9===void 0?void 0:(_submitPromise$curren10=_submitPromise$curren9.resolve)===null||_submitPromise$curren10===void 0?void 0:_submitPromise$curren10.call(_submitPromise$curren9,true);return _context2.abrupt("return");case 54:_context2.next=61;break;case 56:_context2.prev=56;_context2.t2=_context2["catch"](34);setLocked(false);submitPromise===null||submitPromise===void 0?void 0:(_submitPromise$curren11=submitPromise.current)===null||_submitPromise$curren11===void 0?void 0:(_submitPromise$curren12=_submitPromise$curren11.resolve)===null||_submitPromise$curren12===void 0?void 0:_submitPromise$curren12.call(_submitPromise$curren11);return _context2.abrupt("return");case 61:_context2.next=63;return Promise.all([fetchCheckoutOrder(),fetchCart()]);case 63:_ref8=_context2.sent;_ref9=_slicedToArray(_ref8,1);order=_ref9[0];clearCheckoutCampaign();historyReplace({pathname:CHECKOUT_CONFIRMATION_PATTERN,state:{order:order}});// We don't set locked to false to avoid unnecessary UI changes right before
19
+ // going to confirmation page.
20
+ case 68:case"end":return _context2.stop();}},_callee2,null,[[2,7],[15,20],[34,56]]);}));return function(_x){return _ref5.apply(this,arguments);};}(),[orderReadOnly,isGuestCheckout,isPickupContactSelectionEnabled,needsPayment,fetchCheckoutOrder,fetchCart,clearCheckoutCampaign,historyReplace,updateCheckoutOrder,billingAddress,isShippingAddressSelectionEnabled,shippingAddress,paymentTransactions,updateOptIns,submitCheckoutOrder,campaignAttribution,optInFormState.values]);var handleUpdateShippingMethod=useCallback(/*#__PURE__*/function(){var _ref10=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(selectedShippingMethod){return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:setLocked(true);_context3.prev=1;_context3.next=4;return updateCheckoutOrder({addressSequences:[_extends({},billingAddress),_extends({},shippingAddress,{orderSegment:{selectedShippingMethod:selectedShippingMethod}})].concat(isGuestCheckout&&pickupAddress?[_extends({},pickupAddress)]:[]),primaryBillToAddressSequenceIndex:0,primaryShipToAddressSequenceIndex:1});case 4:_context3.next=8;break;case 6:_context3.prev=6;_context3.t0=_context3["catch"](1);case 8:_context3.prev=8;_context3.next=11;return fetchCheckoutOrder();case 11:_context3.next=15;break;case 13:_context3.prev=13;_context3.t1=_context3["catch"](8);case 15:setLocked(false);case 16:case"end":return _context3.stop();}},_callee3,null,[[1,6],[8,13]]);}));return function(_x2){return _ref10.apply(this,arguments);};}(),[billingAddress,pickupAddress,shippingAddress,fetchCheckoutOrder,isGuestCheckout,updateCheckoutOrder]);// Whenever the order is locked we also want to show to loading bar.
21
+ React.useEffect(function(){if(isLocked){setLoading(true);return;}setLoading(false);},[isLocked]);React.useEffect(function(){if(isLoading){LoadingProvider.setLoading(pathPattern);return;}LoadingProvider.resetLoading(pathPattern);},[isLoading,pathPattern]);// Hold form states.
22
+ var formState=useFormState(defaultPickupPersonState,handleSubmitOrder,validationRules);// When "someone-else" is picked for pickup the validation rules need to change.
23
+ React.useEffect(function(){setValidationRules(formState.values.pickupPerson==='me'||isGuestCheckout?selfPickupConstraints:pickupConstraints);},[formState.values.pickupPerson,isGuestCheckout]);var isOrderable=React.useMemo(function(){return typeof(checkoutOrder===null||checkoutOrder===void 0?void 0:checkoutOrder.isOrderable)!=='undefined'?checkoutOrder.isOrderable:true;},[checkoutOrder]);// Create memoized context value.
24
+ var value=React.useMemo(function(){return{setPaymentHandler:function setPaymentHandler(handler){setPaymentButton(function(){return handler.getCustomPayButton();});paymentHandlerRef.current=handler;},paymentButton:paymentButton,paymentData:paymentData,setPaymentData:setPaymentData,paymentTransactions:paymentTransactions,isLocked:isLocked,isButtonLocked:(isLocked||isButtonLocked)&&needsPayment||!isOrderable,isLoading:isLoading,supportedCountries:shopSettings.supportedCountries,countrySortOrder:shopSettings.countrySortOrder,formValidationErrors:convertValidationErrors(formState.validationErrors||{}),formSetValues:formState.setValues,handleSubmitOrder:function handleSubmitOrder(){var promise=new Promise(function(resolve,reject){submitPromise.current={resolve:resolve,reject:reject};});formState.handleSubmit.apply(formState,arguments);return promise;},handleValidation:function handleValidation(){return formState.validate(formState.values);},updateShippingMethod:handleUpdateShippingMethod,defaultPickupPersonState:defaultPickupPersonState,userLocation:userLocation,billingAddress:billingAddress,shippingAddress:shippingAddress,pickupAddress:pickupAddress,taxLines:taxLines,order:checkoutOrder,currencyCode:checkoutOrder===null||checkoutOrder===void 0?void 0:checkoutOrder.currencyCode,needsPayment:needsPayment,orderReserveOnly:orderReserveOnly,isShippingAddressSelectionEnabled:isShippingAddressSelectionEnabled,isPickupContactSelectionEnabled:isPickupContactSelectionEnabled,isGuestCheckout:isGuestCheckout,fulfillmentSlot:fulfillmentSlot,optInFormSetValues:optInFormState.setValues,defaultOptInFormState:defaultOptInFormState,setUpdateOptIns:function setUpdateOptIns(){var val=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;_setUpdateOptIns(val);},setButtonLocked:setButtonLocked,setLoading:setLoading,setLocked:setLocked};},[paymentButton,paymentData,paymentTransactions,isLocked,isButtonLocked,needsPayment,isOrderable,isLoading,shopSettings.supportedCountries,shopSettings.countrySortOrder,formState,handleUpdateShippingMethod,userLocation,billingAddress,shippingAddress,pickupAddress,taxLines,checkoutOrder,orderReserveOnly,isShippingAddressSelectionEnabled,isPickupContactSelectionEnabled,isGuestCheckout,fulfillmentSlot,optInFormState.setValues,defaultOptInFormState]);// Handle deeplinks from external payment site.
25
+ React.useEffect(function(){if(!isAvailable())return undefined;/**
26
+ * @param {Object} event Event
27
+ */var listener=/*#__PURE__*/function(){var _ref11=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(event){var _ref12,_ref12$link,link,_link$match,_link$match2,_,_scheme,path,_ref15,_ref16,order;return _regeneratorRuntime.wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:_ref12=(event===null||event===void 0?void 0:event.detail)||{},_ref12$link=_ref12.link,link=_ref12$link===void 0?'':_ref12$link;/* eslint-disable-next-line no-unused-vars */_link$match=link.match(/(.*):\/\/([a-zA-Z0-9-/]*)(.*)/),_link$match2=_slicedToArray(_link$match,3),_=_link$match2[0],_scheme=_link$match2[1],path=_link$match2[2];// Order is done, fetch again to retrieve infos for success page
28
+ if(!(path==='payment/success')){_context4.next=11;break;}_context4.next=5;return Promise.all([fetchCheckoutOrder(),fetchCart()]);case 5:_ref15=_context4.sent;_ref16=_slicedToArray(_ref15,1);order=_ref16[0];historyReplace({pathname:CHECKOUT_CONFIRMATION_PATTERN,state:{order:order}});_context4.next=12;break;case 11:if(path==='payment/error'){showModal({title:null,confirm:null,dismiss:'modal.ok',message:'checkout.errors.payment.genericExternal'});}case 12:case"end":return _context4.stop();}},_callee4);}));return function listener(_x3){return _ref11.apply(this,arguments);};}();Linking.addEventListener('deepLinkOpened',listener);return function(){Linking.removeEventListener('deepLinkOpened',listener);};},[fetchCart,fetchCheckoutOrder,historyReplace,showModal]);if(!isDataReady||!isCheckoutInitialized){return null;}return React.createElement(Context.Provider,{value:value},children);};CheckoutProvider.defaultProps={orderInitialized:false,orderReadOnly:false,orderReserveOnly:false,isShippingAddressSelectionEnabled:false,isPickupContactSelectionEnabled:false,isGuestCheckout:false};export default connect(CheckoutProvider);/* eslint-enable no-unused-expressions */
@@ -0,0 +1,6 @@
1
+ import{produce}from'immer';import{FETCH_CHECKOUT_ORDER,FETCH_CHECKOUT_ORDER_SUCCESS,FETCH_CHECKOUT_ORDER_ERROR,CLEAR_CHECKOUT_ORDER,FETCH_PAYMENT_METHODS,FETCH_PAYMENT_METHODS_SUCCESS,FETCH_PAYMENT_METHODS_ERROR,ADD_CHECKOUT_CAMPAIGN,CLEAR_CHECKOUT_CAMPAIGN}from"../constants/actionTypes";var initialState={paymentMethods:{isFetching:false,data:[]},checkoutOrder:{isFetching:false,data:null,errors:[]},checkoutSubmit:{errors:[]},checkoutCampaign:{code:null,sentTime:null,receivedTime:null,notificationId:null,locale:null,distributionIndex:null}};/**
2
+ * The reducer for all checkout related state.
3
+ * @param {Object} state The application state.
4
+ * @param {Object} action The redux action.
5
+ * @returns {Object}
6
+ */export default function checkoutReducer(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:initialState;var action=arguments.length>1?arguments[1]:undefined;/* eslint-disable no-param-reassign */var producer=produce(function(draft){switch(action.type){case FETCH_CHECKOUT_ORDER:{draft.checkoutOrder.isFetching=true;break;}case FETCH_CHECKOUT_ORDER_SUCCESS:{draft.checkoutOrder.isFetching=false;draft.checkoutOrder.errors=[];draft.checkoutOrder.data=action.order;break;}case FETCH_CHECKOUT_ORDER_ERROR:{draft.checkoutOrder.isFetching=false;draft.checkoutOrder.errors=action.errors;break;}case CLEAR_CHECKOUT_ORDER:{draft.checkoutOrder.isFetching=false;draft.checkoutOrder.errors=[];draft.checkoutOrder.data=null;break;}case FETCH_PAYMENT_METHODS:{draft.paymentMethods.isFetching=true;break;}case FETCH_PAYMENT_METHODS_SUCCESS:{draft.paymentMethods.isFetching=false;draft.paymentMethods.data=action.paymentMethods;break;}case FETCH_PAYMENT_METHODS_ERROR:{draft.paymentMethods.isFetching=false;break;}case ADD_CHECKOUT_CAMPAIGN:{draft.checkoutCampaign=action.data;break;}case CLEAR_CHECKOUT_CAMPAIGN:{draft.checkoutCampaign=initialState.checkoutCampaign;break;}default:break;}});/* eslint-enable no-param-reassign */return producer(state);}
@@ -0,0 +1,5 @@
1
+ import{createSelector}from'reselect';/**
2
+ * Returns all checkout campaign data
3
+ * @param {Object} state The application state.
4
+ * @returns {Array}
5
+ */export var getCheckoutCampaign=function getCheckoutCampaign(state){return state.checkout.checkoutCampaign;};export var getCampaignAttribution=createSelector(getCheckoutCampaign,function(campaign){var campaignCode=campaign.campaignCode,channel=campaign.channel,distributionIndex=campaign.distributionIndex;if(!campaignCode){return null;}return{campaignCode:campaignCode,channel:channel,distributionIndex:distributionIndex};});
@@ -0,0 +1,5 @@
1
+ import{createSelector}from'reselect';import{isUserLoggedIn}from'@shopgate/engage/user';import{getCheckoutOrder,getIsReserveOnly}from"./order";/**
2
+ * Returns whether a guest checkout session is currently active.
3
+ */export var isGuestCheckoutActive=createSelector(isUserLoggedIn,getCheckoutOrder,function(userLoggedIn,checkoutOrder){return!userLoggedIn&&!!checkoutOrder;});/**
4
+ * Returns all required fields for current guest checkout session.
5
+ */export var getRequiredGuestCheckoutFields=createSelector(getIsReserveOnly,function(isReserveOnly){return['firstName','lastName','emailAddress','mobile'].concat(!isReserveOnly?['address1','postalCode','city','country']:[]);});
@@ -0,0 +1,59 @@
1
+ import{createSelector}from'reselect';import{isUserLoggedIn}from'@shopgate/pwa-common/selectors/user';import{DIRECT_SHIP,ROPIS,BOPIS}from'@shopgate/engage/locations';import{convertLineItemsToCartItems,getCheckoutTaxLinesFromOrder,isReserveOnlyOrder}from"../helpers";/**
2
+ * Returns the current order created in the checkout process.
3
+ * @param {Object} state The application state.
4
+ * @returns {Object}
5
+ */export var getCheckoutOrder=function getCheckoutOrder(state){return state.checkout.checkoutOrder.data||null;};/**
6
+ * Returns the checkout totals
7
+ * @param {Object} state The application state.
8
+ * @return {number}
9
+ */export var getCheckoutOrderTotal=function getCheckoutOrderTotal(state){var _getCheckoutOrder;return(_getCheckoutOrder=getCheckoutOrder(state))===null||_getCheckoutOrder===void 0?void 0:_getCheckoutOrder.total;};/**
10
+ * Returns the current attached customer of the active order.
11
+ * @param {Object} state The application state.
12
+ * @returns {Object}
13
+ */export var getCheckoutOrderCustomer=function getCheckoutOrderCustomer(state){var _state$checkout$check,_state$checkout$check2;return((_state$checkout$check=state.checkout.checkoutOrder)===null||_state$checkout$check===void 0?void 0:(_state$checkout$check2=_state$checkout$check.data)===null||_state$checkout$check2===void 0?void 0:_state$checkout$check2.customer)||null;};/**
14
+ * Returns the current orders payment transaction created in the checkout process.
15
+ * @param {Object} state The application state.
16
+ * @returns {Object}
17
+ */export var getCheckoutPaymentTransactions=function getCheckoutPaymentTransactions(state){var _getCheckoutOrder2;return((_getCheckoutOrder2=getCheckoutOrder(state))===null||_getCheckoutOrder2===void 0?void 0:_getCheckoutOrder2.paymentTransactions)||[];};export var getCheckoutFulfillmentSlot=createSelector(getCheckoutOrder,function(order){var _order$lineItems,_order$lineItems$;return(order===null||order===void 0?void 0:(_order$lineItems=order.lineItems)===null||_order$lineItems===void 0?void 0:(_order$lineItems$=_order$lineItems[0])===null||_order$lineItems$===void 0?void 0:_order$lineItems$.fulfillmentSlot)||null;});/**
18
+ * Returns the billing address of the order.
19
+ * @param {Object} state The application state.
20
+ * @returns {Object}
21
+ */export var getCheckoutBillingAddress=createSelector(getCheckoutOrder,function(order){if(!order)return null;var addresses=order.addressSequences||[];return addresses.find(function(_ref){var type=_ref.type;return type==='billing';});});/**
22
+ * Returns the shipping address of the order.
23
+ * @param {Object} state The application state.
24
+ * @returns {Object}
25
+ */export var getCheckoutShippingAddress=createSelector(getCheckoutOrder,function(order){if(!order)return null;var addresses=order.addressSequences||[];return addresses.find(function(_ref2){var type=_ref2.type;return type==='shipping';});});/**
26
+ * Returns the pickup address of the order.
27
+ * @param {Object} state The application state.
28
+ * @returns {Object}
29
+ */export var getCheckoutPickupAddress=createSelector(getCheckoutOrder,function(order){if(!order)return null;var addresses=order.addressSequences||[];return addresses.find(function(_ref3){var type=_ref3.type;return type==='pickup';});});/**
30
+ * Returns whether the billing and pickup address are the same.
31
+ * @param {Object} state The application state.
32
+ * @returns {Object}
33
+ */export var isPickupAndBillingEquals=createSelector(getCheckoutBillingAddress,getCheckoutPickupAddress,function(billing,pickup){if(!billing||!pickup)return true;if(billing.mobile!==pickup.mobile)return false;if(billing.emailAddress!==pickup.emailAddress)return false;if(billing.firstName!==pickup.firstName)return false;if(billing.lastName!==pickup.lastName)return false;return true;});/**
34
+ * Returns whether the billing and shipping address are the same.
35
+ * @param {Object} state The application state.
36
+ * @returns {Object}
37
+ */export var isShippingBillingEquals=createSelector(getCheckoutBillingAddress,getCheckoutShippingAddress,function(billing,shipping){if(!billing||!shipping)return true;var positiveList=['index','type','customerContactId'];return Object.keys(billing).every(function(key){if(positiveList.includes(key))return true;return billing[key]===shipping[key];});});/**
38
+ * Returns the number of the order.
39
+ * @param {Object} state The application state.
40
+ * @returns {Object}
41
+ */export var getCheckoutOrderNumber=createSelector(getCheckoutOrder,function(order){if(!order){return null;}return order.orderNumber;});/**
42
+ * Returns the line items of the order.
43
+ * @param {Object} state The application state.
44
+ * @returns {Object}
45
+ */export var getCheckoutOrderLineItems=createSelector(getCheckoutOrder,function(order){if(!order){return null;}return order.lineItems;});/**
46
+ * Returns the line items of the order converted to the data structure of cart items
47
+ * @param {Object} state The application state.
48
+ * @returns {Object}
49
+ */export var getCheckoutOrderLineItemsAsCartItems=createSelector(getCheckoutOrderLineItems,function(lineItems){if(!lineItems){return null;}return convertLineItemsToCartItems(lineItems);});/**
50
+ * Returns whether the active order is a pure reservation.
51
+ */export var getIsReserveOnly=createSelector(getCheckoutOrder,function(order){if(!order)return null;return isReserveOnlyOrder(order);});/**
52
+ * Returns whether the current order just consists out of directShip items
53
+ */export var getIsDirectShipOnly=createSelector(getCheckoutOrderLineItems,function(lineItems){if(!Array.isArray(lineItems)||lineItems.length===0){return false;}return lineItems.every(function(_ref4){var fulfillmentMethod=_ref4.fulfillmentMethod;return fulfillmentMethod===DIRECT_SHIP;});});export var getHasDirectShipItems=createSelector(getCheckoutOrderLineItems,function(lineItems){if(!Array.isArray(lineItems)||lineItems.length===0){return false;}return lineItems.some(function(_ref5){var fulfillmentMethod=_ref5.fulfillmentMethod;return fulfillmentMethod===DIRECT_SHIP;});});export var getHasROPEItems=createSelector(getCheckoutOrderLineItems,function(lineItems){if(!Array.isArray(lineItems)||lineItems.length===0){return false;}return lineItems.some(function(_ref6){var fulfillmentMethod=_ref6.fulfillmentMethod;return[ROPIS,BOPIS].includes(fulfillmentMethod);});});/**
54
+ * Returns whether the shipping address selection is enabled
55
+ */export var getIsShippingAddressSelectionEnabled=createSelector(getHasDirectShipItems,isUserLoggedIn,function(hasDirectShipItems){return hasDirectShipItems;});export var getIsPickupContactSelectionEnabled=getHasROPEItems;/**
56
+ * Returns a list of tax lines for the order summary.
57
+ * @param {Object} state The application state.
58
+ * @returns {Object}
59
+ */export var getCheckoutTaxLines=createSelector(getCheckoutOrder,function(order){if(!order)return[];return getCheckoutTaxLinesFromOrder(order);});
@@ -0,0 +1,17 @@
1
+ import{createSelector}from'reselect';import{getIsReserveOnly}from"./order";/**
2
+ * Returns all available payment methods.
3
+ * @param {Object} state The application state.
4
+ * @returns {Array}
5
+ */export var getPaymentMethods=function getPaymentMethods(state){return state.checkout.paymentMethods.data;};/**
6
+ * Creates a selector that will return the first payment method found that
7
+ * implements the given by provider code.
8
+ * @param {Object} getProviderCode Function to select provider code.
9
+ * @returns {Object}
10
+ */export var makeGetPaymentMethodByProviderCode=function makeGetPaymentMethodByProviderCode(getProviderCode){return createSelector(getPaymentMethods,getProviderCode,function(paymentMethods,providerCode){return paymentMethods.find(function(methods){var _methods$paymentProvi;return((_methods$paymentProvi=methods.paymentProvider)===null||_methods$paymentProvi===void 0?void 0:_methods$paymentProvi.code)===providerCode;});});};/**
11
+ * Selects the default payment method
12
+ * @param {Object} state App state
13
+ * @returns {Object}
14
+ */export var getDefaultPaymentMethod=function getDefaultPaymentMethod(state){return getPaymentMethods(state)[0];};var getPaymentMethodForStripe=makeGetPaymentMethodByProviderCode(function(){return'stripe';});export var getStripePublishableKey=createSelector(getPaymentMethodForStripe,function(paymentMethod){var _paymentMethod$settin;if(!paymentMethod)return null;return(_paymentMethod$settin=paymentMethod.settings)===null||_paymentMethod$settin===void 0?void 0:_paymentMethod$settin.publishableKey;});/**
15
+ * @param {Object} state App state
16
+ * @returns {boolean}
17
+ */export var getNeedsPaymentForOrder=function getNeedsPaymentForOrder(state){return!getIsReserveOnly(state);};
@@ -0,0 +1,4 @@
1
+ import{createSelector}from'reselect';import pathMatch from'path-match';import{getCurrentPathname}from'@shopgate/pwa-common/selectors/router';import{checkoutRoutes}from'@shopgate/engage/checkout/constants';var matcher=pathMatch({sensitive:false,strict:false,end:true});/**
2
+ * Creates a selector that determines if a route belongs to the checkout process
3
+ * @returns {Function}
4
+ */export var makeIsCheckoutRoute=function makeIsCheckoutRoute(){return createSelector(getCurrentPathname,function(pathname){return checkoutRoutes.some(function(route){return matcher(route)(pathname);});});};
@@ -0,0 +1 @@
1
+ import{main$}from'@shopgate/pwa-common/streams';import{routeDidLeave$}from'@shopgate/engage/core';import{CHECKOUT_CONFIRMATION_PATTERN}from"../constants";import{SUBMIT_CHECKOUT_ORDER_SUCCESS,FETCH_CHECKOUT_ORDER_SUCCESS}from"../constants/actionTypes";export var checkoutConfirmationDidLeave$=routeDidLeave$.filter(function(_ref){var action=_ref.action;return action.route.pattern===CHECKOUT_CONFIRMATION_PATTERN;});export var checkoutOrderFetched$=main$.filter(function(_ref2){var action=_ref2.action;return action.type===FETCH_CHECKOUT_ORDER_SUCCESS;});export var checkoutSuccess$=main$.filter(function(_ref3){var action=_ref3.action;return action.type===SUBMIT_CHECKOUT_ORDER_SUCCESS;}).switchMap(function(){return checkoutOrderFetched$.first();});
@@ -0,0 +1,3 @@
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{main$}from'@shopgate/pwa-common/streams';import{OPEN_PUSH_NOTIFICATION}from'@shopgate/pwa-common/constants/ActionTypes';import{userDidLogout$}from'@shopgate/engage/user';import{addCheckoutCampaign}from"../action-creators";import{checkoutConfirmationDidLeave$}from"../streams";import{clearCheckoutOrder}from"../index";/**
2
+ * @param {Function} subscribe Subscribes to an observable.
3
+ */export default function checkout(subscribe){var pushOpened$=main$.filter(function(_ref){var action=_ref.action;return action.type===OPEN_PUSH_NOTIFICATION;});subscribe(checkoutConfirmationDidLeave$,function(_ref2){var dispatch=_ref2.dispatch;dispatch(clearCheckoutOrder());});subscribe(userDidLogout$,function(_ref3){var dispatch=_ref3.dispatch;dispatch(clearCheckoutOrder());});subscribe(pushOpened$,function(_ref4){var dispatch=_ref4.dispatch,action=_ref4.action;var originalNotificationId=action.notificationId;if(!originalNotificationId){return;}var segments=originalNotificationId.split(';');if(segments.length===1){return;}var _segments=_slicedToArray(segments,5),campaignCode=_segments[0],sentTime=_segments[1],notificationId=_segments[2],locale=_segments[3],distributionIndex=_segments[4];var data={channel:'push',sentTime:Number.parseInt(sentTime,10)||undefined,openedTime:Math.round(Date.now()/1000),distributionIndex:null,campaignCode:campaignCode,notificationId:notificationId,locale:locale};if(typeof distributionIndex==='string'){data.distributionIndex=parseInt(distributionIndex,10);}dispatch(addCheckoutCampaign(data));});}
@@ -0,0 +1,5 @@
1
+ import React from'react';import ResponsiveContainer from'@shopgate/engage/components/ResponsiveContainer';import{css}from'glamor';var brandingColorBanner=css({position:'fixed',backgroundColor:'var(--color-background-gutter-header, var(--color-primary))',left:0,right:0,height:288});/**
2
+ * The Viewport component.
3
+ * @param {Object} props The component props.
4
+ * @returns {JSX}
5
+ */var BrandingColorBanner=function BrandingColorBanner(){return React.createElement(ResponsiveContainer,{breakpoint:">xs",webOnly:true},React.createElement("div",{className:brandingColorBanner}));};export default BrandingColorBanner;
@@ -0,0 +1 @@
1
+ export{default}from"./BrandingColorBanner";