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

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 (1218) 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 +3 -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 +60 -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 +16 -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/useScrollDirectionChange.d.ts +74 -0
  517. package/core/hooks/events/useScrollDirectionChange.js +18 -0
  518. package/core/hooks/html/useLoadImage.js +1 -1
  519. package/core/hooks/index.js +1 -0
  520. package/core/hooks/layout/index.js +1 -0
  521. package/core/hooks/layout/useElementSize.d.ts +46 -0
  522. package/core/hooks/layout/useElementSize.js +18 -0
  523. package/core/hooks/useAsyncMemo.js +12 -0
  524. package/core/hooks/useFormState.js +27 -0
  525. package/core/hooks/usePrevious.js +2 -0
  526. package/core/hooks/useScrollTo.js +5 -0
  527. package/core/hooks/useTheme.js +38 -2
  528. package/core/hooks/useThemeResources.js +21 -0
  529. package/core/hooks/useWidgetStyles.js +1 -1
  530. package/core/index.js +5 -11
  531. package/core/initialization/index.js +19 -4
  532. package/core/providers/AppProvider.js +9 -9
  533. package/core/providers/ThemeResourcesProvider.js +15 -0
  534. package/core/providers/index.js +1 -0
  535. package/core/reducers/index.js +1 -1
  536. package/core/reducers/merchantSettings.js +6 -0
  537. package/core/reducers/shopSettings.js +6 -0
  538. package/core/selectors/index.js +1 -1
  539. package/core/selectors/merchantSettings.js +10 -0
  540. package/core/selectors/shopSettings.js +25 -0
  541. package/core/streams/app.js +1 -1
  542. package/core/streams/index.js +1 -1
  543. package/core/streams/optIns.js +13 -0
  544. package/core/subscriptions/app.js +4 -3
  545. package/core/validation/index.js +1 -0
  546. package/core/validation/validation.hooks.js +4 -0
  547. package/core/validation/validation.js +12 -0
  548. package/development/action-creators/index.js +1 -0
  549. package/development/action-creators/settings.js +9 -0
  550. package/development/action-creators/storage.js +6 -0
  551. package/development/components/DevelopmentTools/DevelopmentTools.js +6 -0
  552. package/development/components/DevelopmentTools/Shortcuts.js +4 -0
  553. package/development/components/DevelopmentTools/hooks.js +8 -0
  554. package/development/components/DevelopmentTools/index.js +1 -0
  555. package/development/components/SimulatedInsets/SimulatedInsetBottom.js +7 -0
  556. package/development/components/SimulatedInsets/SimulatedInsetTop.js +12 -0
  557. package/development/components/SimulatedInsets/SimulatedInsets.js +6 -0
  558. package/development/components/SimulatedInsets/index.js +1 -0
  559. package/development/components/index.js +1 -0
  560. package/development/constants/actionTypes.js +1 -0
  561. package/development/constants/index.js +1 -0
  562. package/development/reducers/index.js +1 -0
  563. package/development/reducers/settings.js +10 -0
  564. package/development/reducers/storage.js +9 -0
  565. package/development/selectors/index.js +1 -0
  566. package/development/selectors/settings.js +21 -0
  567. package/development/selectors/storage.js +16 -0
  568. package/development/streams/index.js +1 -0
  569. package/development/streams/insets.js +4 -0
  570. package/development/subscriptions/index.js +6 -0
  571. package/favorites/components/CommentDialog/CommentDialog.js +12 -0
  572. package/favorites/components/CommentDialog/index.js +1 -0
  573. package/favorites/components/FavoriteButtonWide/FavoriteButtonWide.js +8 -0
  574. package/favorites/components/FavoriteButtonWide/index.js +1 -0
  575. package/favorites/components/Item/Item.js +13 -9
  576. package/favorites/components/Item/ItemCharacteristics.js +2 -2
  577. package/favorites/components/Item/ItemNotes.js +7 -0
  578. package/favorites/components/Item/ItemQuantity.js +7 -0
  579. package/favorites/components/ItemFulfillmentMethod/ItemFulfillmentMethod.js +4 -0
  580. package/favorites/components/ItemFulfillmentMethod/index.js +1 -0
  581. package/favorites/components/List/List.js +19 -15
  582. package/favorites/components/List/ListAccordionHeader.js +8 -0
  583. package/favorites/components/List/ListAccordionLabel.js +5 -0
  584. package/favorites/components/List/ListContent.js +8 -0
  585. package/favorites/components/List/ListItemWrapper.js +6 -0
  586. package/favorites/components/List/styles.js +1 -0
  587. package/favorites/components/ListChooser/ListChooser.js +2 -2
  588. package/favorites/components/ListChooser/ListChooserItem.js +4 -5
  589. package/favorites/components/Lists/Lists.js +17 -13
  590. package/favorites/components/Lists/ListsModal.js +3 -4
  591. package/favorites/components/RemoveButton/RemoveButton.js +2 -2
  592. package/favorites/constants/Portals.js +1 -2
  593. package/favorites/constants/index.js +1 -0
  594. package/favorites/index.js +2 -2
  595. package/filter/actions/index.js +1 -0
  596. package/filter/components/FilterItem/index.js +2 -2
  597. package/filter/components/FilterItem/spec.js +1 -1
  598. package/filter/components/FilterPageContent/components/ApplyButton/index.js +7 -0
  599. package/filter/components/FilterPageContent/components/ApplyButton/spec.js +1 -0
  600. package/filter/components/FilterPageContent/components/ApplyButton/style.js +1 -0
  601. package/filter/components/FilterPageContent/components/ResetButton/index.js +7 -0
  602. package/filter/components/FilterPageContent/components/ResetButton/spec.js +1 -0
  603. package/filter/components/FilterPageContent/components/ResetButton/style.js +1 -0
  604. package/filter/components/FilterPageContent/components/Selector/components/Selected/index.js +7 -0
  605. package/filter/components/FilterPageContent/components/Selector/components/Selected/spec.js +1 -0
  606. package/filter/components/FilterPageContent/components/Selector/components/Selected/style.js +1 -0
  607. package/filter/components/FilterPageContent/components/Selector/components/Toggle/index.js +7 -0
  608. package/filter/components/FilterPageContent/components/Selector/components/Toggle/spec.js +1 -0
  609. package/filter/components/FilterPageContent/components/Selector/components/Toggle/style.js +1 -0
  610. package/filter/components/FilterPageContent/components/Selector/components/ValueButton/index.js +7 -0
  611. package/filter/components/FilterPageContent/components/Selector/components/ValueButton/spec.js +1 -0
  612. package/filter/components/FilterPageContent/components/Selector/components/ValueButton/style.js +1 -0
  613. package/filter/components/FilterPageContent/components/Selector/index.js +19 -0
  614. package/filter/components/FilterPageContent/components/Selector/spec.js +1 -0
  615. package/filter/components/FilterPageContent/components/Selector/style.js +1 -0
  616. package/filter/components/FilterPageContent/index.js +6 -0
  617. package/filter/components/FilterPageContentWithProvider/index.js +16 -0
  618. package/filter/components/PriceSlider/components/Label/index.js +3 -3
  619. package/filter/components/PriceSlider/components/Label/spec.js +1 -1
  620. package/filter/components/PriceSlider/index.js +8 -8
  621. package/filter/components/PriceSlider/spec.js +1 -1
  622. package/filter/components/PriceSlider/style.js +1 -1
  623. package/filter/components/index.js +1 -0
  624. package/filter/constants/index.js +1 -0
  625. package/filter/constants/sort.js +11 -0
  626. package/filter/helpers/buildFilterParamsForFetchFiltersRequest.js +2 -2
  627. package/filter/helpers/buildInitialFilters.js +2 -2
  628. package/filter/helpers/buildUpdatedFilters.js +2 -2
  629. package/filter/helpers/index.js +1 -0
  630. package/filter/helpers/translateFilterLabel.js +3 -3
  631. package/filter/hocs/index.js +1 -0
  632. package/filter/hocs/withSort.js +16 -0
  633. package/filter/hooks/filterPage.js +5 -0
  634. package/filter/hooks/index.js +4 -0
  635. package/filter/index.js +2 -7
  636. package/filter/providers/FilterPageProvider.context.js +54 -0
  637. package/filter/providers/FilterPageProvider.js +98 -0
  638. package/filter/providers/SortProvider.connector.js +3 -0
  639. package/filter/providers/SortProvider.context.js +1 -0
  640. package/filter/providers/SortProvider.helpers.js +8 -0
  641. package/filter/providers/SortProvider.js +6 -0
  642. package/filter/providers/index.js +1 -0
  643. package/filter/selectors/index.js +17 -0
  644. package/filter/streams/index.js +1 -0
  645. package/i18n/countries.helpers.js +6 -0
  646. package/i18n/countries.hooks.js +6 -0
  647. package/i18n/index.js +1 -0
  648. package/i18n/locale/cs-cz/countries.json +255 -0
  649. package/i18n/locale/de-de/countries.json +255 -0
  650. package/i18n/locale/el-gr/countries.json +255 -0
  651. package/i18n/locale/en-us/countries.json +255 -0
  652. package/i18n/locale/es-es/countries.json +255 -0
  653. package/i18n/locale/fi-fi/countries.json +255 -0
  654. package/i18n/locale/fr-fr/countries.json +255 -0
  655. package/i18n/locale/hu-hu/countries.json +255 -0
  656. package/i18n/locale/it-it/countries.json +255 -0
  657. package/i18n/locale/nl-nl/countries.json +255 -0
  658. package/i18n/locale/pl-pl/countries.json +255 -0
  659. package/i18n/locale/pt-pt/countries.json +255 -0
  660. package/i18n/locale/ro-ro/countries.json +255 -0
  661. package/i18n/locale/sv-se/countries.json +255 -0
  662. package/locations/action-creators/errorInventories.js +7 -0
  663. package/locations/action-creators/errorLocations.js +6 -0
  664. package/locations/action-creators/errorProductInventories.js +7 -0
  665. package/locations/action-creators/errorProductLocations.js +6 -0
  666. package/locations/action-creators/index.js +1 -0
  667. package/locations/action-creators/provideProductAlternativeLocation.js +5 -0
  668. package/locations/action-creators/receiveInventories.js +5 -0
  669. package/locations/action-creators/receiveLocations.js +6 -0
  670. package/locations/action-creators/receiveProductInventories.js +7 -0
  671. package/locations/action-creators/receiveProductLocations.js +7 -0
  672. package/locations/action-creators/requestInventories.js +6 -0
  673. package/locations/action-creators/requestLocations.js +5 -0
  674. package/locations/action-creators/requestProductInventories.js +6 -0
  675. package/locations/action-creators/requestProductLocations.js +5 -0
  676. package/locations/action-creators/selectGlobalLocation.js +5 -0
  677. package/locations/action-creators/selectLocation.js +6 -0
  678. package/locations/action-creators/setStoreFinderSearchRadius.js +5 -0
  679. package/locations/action-creators/setUserGeolocation.js +5 -0
  680. package/locations/action-creators/setUserSearchCountryCode.js +7 -0
  681. package/locations/action-creators/setUserSearchGeolocation.js +8 -0
  682. package/locations/action-creators/setUserSearchPostalCode.js +7 -0
  683. package/locations/action-creators/storeFormInput.js +5 -0
  684. package/locations/action-creators/storeFulfillmentMethod.js +5 -0
  685. package/locations/action-creators/submitReservationError.js +5 -0
  686. package/locations/action-creators/submitReservationRequest.js +5 -0
  687. package/locations/action-creators/submitReservationSuccess.js +5 -0
  688. package/locations/actions/fetchDefaultLocation.js +4 -0
  689. package/locations/actions/fetchFulfillmentSlots.js +6 -0
  690. package/locations/actions/fetchInventories.js +6 -0
  691. package/locations/actions/fetchLocations.js +19 -0
  692. package/locations/actions/fetchProductInventories.js +7 -0
  693. package/locations/actions/fetchProductLocations.js +12 -0
  694. package/locations/actions/index.js +5 -0
  695. package/locations/actions/sendDefaultLocationCode.js +6 -0
  696. package/locations/actions/setUserGeolocation.js +1 -0
  697. package/locations/actions/setUserSearchGeolocation.js +1 -0
  698. package/locations/actions/submitReservation.js +5 -0
  699. package/locations/assets/leaflet.css +765 -0
  700. package/locations/components/Cart/CartChangeFulfillmentMethod.connector.js +4 -0
  701. package/locations/components/Cart/CartChangeFulfillmentMethod.js +8 -0
  702. package/locations/components/Cart/CartChangeFulfillmentMethod.types.js +0 -0
  703. package/locations/components/Cart/CartContextMenuChangeFulfillment.js +6 -0
  704. package/locations/components/Cart/CartContextMenuChangeFulfillmentContent.js +5 -0
  705. package/locations/components/Cart/CartContextMenuChangeFulfillmentContent.style.js +1 -0
  706. package/locations/components/Cart/CartContextMenuItemChangeFulfillment.connector.js +4 -0
  707. package/locations/components/Cart/CartContextMenuItemChangeFulfillment.js +6 -0
  708. package/locations/components/Cart/CartContextMenuItemChangeLocation.js +7 -0
  709. package/locations/components/Cart/CartItemProductChangeLocation.connector.js +5 -0
  710. package/locations/components/Cart/CartItemProductChangeLocation.js +11 -0
  711. package/locations/components/Cart/CartItemProductChangeLocation.types.js +0 -0
  712. package/locations/components/Cart/index.js +1 -0
  713. package/locations/components/ChangeLocationButton/ChangeLocationButton.js +4 -0
  714. package/locations/components/ChangeLocationButton/ChangeLocationButton.style.js +2 -0
  715. package/locations/components/ChangeLocationButton/index.js +1 -0
  716. package/locations/components/FulfillmentPath/FulfillmentPath.js +4 -0
  717. package/locations/components/FulfillmentPath/FulfillmentPath.style.js +2 -0
  718. package/locations/components/FulfillmentPath/FulfillmentPathItem.js +6 -0
  719. package/locations/components/FulfillmentPath/index.js +1 -0
  720. package/locations/components/FulfillmentPathSelector/FulfillmentPathSelector.js +14 -0
  721. package/locations/components/FulfillmentPathSelector/FulfillmentPathSelector.style.js +1 -0
  722. package/locations/components/FulfillmentPathSelector/index.js +1 -0
  723. package/locations/components/FulfillmentSelector/FulfillmentSelector.connector.js +9 -0
  724. package/locations/components/FulfillmentSelector/FulfillmentSelector.context.js +1 -0
  725. package/locations/components/FulfillmentSelector/FulfillmentSelector.hooks.js +3 -0
  726. package/locations/components/FulfillmentSelector/FulfillmentSelector.js +20 -0
  727. package/locations/components/FulfillmentSelector/FulfillmentSelector.style.js +1 -0
  728. package/locations/components/FulfillmentSelector/FulfillmentSelector.types.js +1 -0
  729. package/locations/components/FulfillmentSelector/FulfillmentSelectorAddToCart.js +10 -0
  730. package/locations/components/FulfillmentSelector/FulfillmentSelectorAlternativeLocation.js +8 -0
  731. package/locations/components/FulfillmentSelector/FulfillmentSelectorBOPIS.js +4 -0
  732. package/locations/components/FulfillmentSelector/FulfillmentSelectorDirectShip.js +5 -0
  733. package/locations/components/FulfillmentSelector/FulfillmentSelectorHeader.js +4 -0
  734. package/locations/components/FulfillmentSelector/FulfillmentSelectorHeader.style.js +1 -0
  735. package/locations/components/FulfillmentSelector/FulfillmentSelectorImpossibleError.js +4 -0
  736. package/locations/components/FulfillmentSelector/FulfillmentSelectorImpossibleError.style.js +1 -0
  737. package/locations/components/FulfillmentSelector/FulfillmentSelectorItem.js +8 -0
  738. package/locations/components/FulfillmentSelector/FulfillmentSelectorItem.style.js +1 -0
  739. package/locations/components/FulfillmentSelector/FulfillmentSelectorLocation.js +4 -0
  740. package/locations/components/FulfillmentSelector/FulfillmentSelectorLocation.style.js +1 -0
  741. package/locations/components/FulfillmentSelector/FulfillmentSelectorLocationMethodNotAvailable.js +3 -0
  742. package/locations/components/FulfillmentSelector/FulfillmentSelectorROPIS.js +4 -0
  743. package/locations/components/FulfillmentSelector/index.js +1 -0
  744. package/locations/components/FulfillmentSheet/FulfillmentSheet.js +6 -0
  745. package/locations/components/FulfillmentSheet/FulfillmentSheet.style.js +1 -0
  746. package/locations/components/FulfillmentSheet/FulfillmentSheetContent.js +6 -0
  747. package/locations/components/FulfillmentSheet/index.js +1 -0
  748. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotDialog.js +28 -0
  749. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotProvider.connector.js +8 -0
  750. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotProvider.context.js +1 -0
  751. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotProvider.js +9 -0
  752. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.connector.js +4 -0
  753. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.js +4 -0
  754. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherBar.js +3 -0
  755. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherBar.style.js +1 -0
  756. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherDefault.js +3 -0
  757. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherDefault.style.js +1 -0
  758. package/locations/components/FulfillmentSlotSwitcher/index.js +1 -0
  759. package/locations/components/FulfillmentSlotSwitcher/time.js +5 -0
  760. package/locations/components/GlobalLocationSelector/GlobalLocationSelector.js +16 -0
  761. package/locations/components/GlobalLocationSelector/index.js +1 -0
  762. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcher.connector.js +8 -0
  763. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcher.js +3 -0
  764. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherBar.js +3 -0
  765. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherBar.style.js +1 -0
  766. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherDefault.js +3 -0
  767. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherDefault.style.js +1 -0
  768. package/locations/components/GlobalLocationSwitcher/index.js +1 -0
  769. package/locations/components/ReservationResponses/ReservationError.js +4 -0
  770. package/locations/components/ReservationResponses/ReservationResponse.style.js +1 -0
  771. package/locations/components/ReservationResponses/ReservationSuccess.js +4 -0
  772. package/locations/components/ReservationResponses/index.js +1 -0
  773. package/locations/components/ReserveForm/ReserveForm.constraints.js +1 -0
  774. package/locations/components/ReserveForm/ReserveForm.js +10 -0
  775. package/locations/components/ReserveForm/ReserveForm.style.js +1 -0
  776. package/locations/components/ReserveForm/ReserveFormPhone.connector.js +3 -0
  777. package/locations/components/ReserveForm/ReserveFormPhone.js +5 -0
  778. package/locations/components/ReserveForm/ReserveFormPhone.types.js +0 -0
  779. package/locations/components/ReserveForm/index.js +1 -0
  780. package/locations/components/StockInfo/StockInfo.defaultSettings.js +1 -0
  781. package/locations/components/StockInfo/StockInfo.js +8 -0
  782. package/locations/components/StockInfo/StockInfoInventory.js +9 -0
  783. package/locations/components/StockInfo/index.js +1 -0
  784. package/locations/components/StockInfoLists/index.js +9 -0
  785. package/locations/components/StoreDetails/components/FindMoreStores.js +4 -0
  786. package/locations/components/StoreDetails/components/GetDirectionsButton.js +7 -0
  787. package/locations/components/StoreDetails/components/StoreDetails.js +5 -0
  788. package/locations/components/StoreDetails/components/StoreFinderMap.js +20 -0
  789. package/locations/components/StoreDetails/components/StoreFinderMap.style.js +1 -0
  790. package/locations/components/StoreDetails/components/StoreLocationMap.js +4 -0
  791. package/locations/components/StoreDetails/components/StoresNearby.js +4 -0
  792. package/locations/components/StoreDetails/components/StoresNearbyListItem.js +9 -0
  793. package/locations/components/StoreDetails/index.js +4 -0
  794. package/locations/components/StoreFinder/Store.context.js +1 -0
  795. package/locations/components/StoreFinder/StoreFinder.js +3 -0
  796. package/locations/components/StoreFinder/StoreFinder.style.js +1 -0
  797. package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.connector.js +4 -0
  798. package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.js +4 -0
  799. package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.style.js +1 -0
  800. package/locations/components/StoreFinder/StoreFinderLocation.js +3 -0
  801. package/locations/components/StoreFinder/StoreFinderLocation.style.js +1 -0
  802. package/locations/components/StoreFinder/StoreFinderLocationDetails.js +3 -0
  803. package/locations/components/StoreFinder/StoreFinderLocationDetails.style.js +1 -0
  804. package/locations/components/StoreFinder/StoreFinderLocationHeader.js +3 -0
  805. package/locations/components/StoreFinder/StoreFinderLocationHeader.style.js +1 -0
  806. package/locations/components/StoreFinder/StoreFinderLocationHeaderPhoneNumber.js +4 -0
  807. package/locations/components/StoreFinder/StoreFinderLocations.js +5 -0
  808. package/locations/components/StoreFinder/StoreFinderLocations.style.js +1 -0
  809. package/locations/components/StoreFinder/StoreFinderSearch.js +3 -0
  810. package/locations/components/StoreFinder/StoreFinderSearch.style.js +1 -0
  811. package/locations/components/StoreFinder/StoreFinderSelectLocationButton.js +5 -0
  812. package/locations/components/StoreFinder/StoreFinderStoreInfoButton.js +8 -0
  813. package/locations/components/StoreFinder/index.js +1 -0
  814. package/locations/components/StoreList/Store.context.js +1 -0
  815. package/locations/components/StoreList/Store.style.js +1 -0
  816. package/locations/components/StoreList/StoreAddress.js +7 -0
  817. package/locations/components/StoreList/StoreAddressShort.js +7 -0
  818. package/locations/components/StoreList/StoreCard.js +4 -0
  819. package/locations/components/StoreList/StoreDetails.js +4 -0
  820. package/locations/components/StoreList/StoreDetailsLine.js +8 -0
  821. package/locations/components/StoreList/StoreDistance.js +7 -0
  822. package/locations/components/StoreList/StoreHeader.js +4 -0
  823. package/locations/components/StoreList/StoreHoursToday.js +7 -0
  824. package/locations/components/StoreList/StoreList.js +4 -0
  825. package/locations/components/StoreList/StoreListLocations.js +4 -0
  826. package/locations/components/StoreList/StoreListProduct.js +4 -0
  827. package/locations/components/StoreList/StoreListProduct.style.js +1 -0
  828. package/locations/components/StoreList/StoreListProductInfo.js +4 -0
  829. package/locations/components/StoreList/StoreListProductName.js +4 -0
  830. package/locations/components/StoreList/StoreListSearch.connector.js +7 -0
  831. package/locations/components/StoreList/StoreListSearch.js +23 -0
  832. package/locations/components/StoreList/StoreListSearch.style.js +1 -0
  833. package/locations/components/StoreList/StoreListSearchRadius.connector.js +7 -0
  834. package/locations/components/StoreList/StoreListSearchRadius.js +4 -0
  835. package/locations/components/StoreList/StoreListSearchRadius.style.js +1 -0
  836. package/locations/components/StoreList/StoreOpeningHours.js +7 -0
  837. package/locations/components/StoreList/StoreOpeningHoursLine.js +7 -0
  838. package/locations/components/StoreList/StorePhoneNumber.js +6 -0
  839. package/locations/components/StoreList/StoreSelectLocationButton.js +4 -0
  840. package/locations/components/StoreList/index.js +1 -0
  841. package/locations/components/index.js +1 -0
  842. package/locations/constants/ActionTypes.js +10 -0
  843. package/locations/constants/Pipelines.js +1 -0
  844. package/locations/constants/Portals.js +2 -0
  845. package/locations/constants/Stages.js +1 -0
  846. package/locations/constants/index.js +7 -0
  847. package/locations/constants/routes.js +1 -0
  848. package/locations/helpers/createOrder.js +28 -0
  849. package/locations/helpers/formatDistance.js +9 -0
  850. package/locations/helpers/getAvailabilitySettings.js +12 -0
  851. package/locations/helpers/index.js +1 -0
  852. package/locations/helpers/productInventory.js +7 -0
  853. package/locations/helpers/showInventoryInLists.js +7 -0
  854. package/locations/index.js +9 -0
  855. package/locations/locations.context.js +1 -0
  856. package/locations/locations.hooks.js +4 -0
  857. package/locations/locations.streams.js +1 -0
  858. package/locations/locations.types.js +1 -0
  859. package/locations/providers/FulfillmentProvider.connector.js +10 -0
  860. package/locations/providers/FulfillmentProvider.js +49 -0
  861. package/locations/providers/FulfillmentProvider.types.js +1 -0
  862. package/locations/providers/StoreDetailsContext.js +1 -0
  863. package/locations/providers/StoreDetailsProvider.js +4 -0
  864. package/locations/providers/StoreFinder.connector.js +3 -0
  865. package/locations/providers/StoreFinderProvider.js +7 -0
  866. package/locations/providers/index.js +1 -0
  867. package/locations/reducers/index.js +1 -0
  868. package/locations/reducers/storage.js +24 -0
  869. package/locations/reducers/storeFinderSearch.js +6 -0
  870. package/locations/reducers/user.js +5 -0
  871. package/locations/reducers/userFormInput.js +8 -0
  872. package/locations/reducers/userSearch.js +6 -0
  873. package/locations/selectors/index.js +145 -0
  874. package/locations/subscriptions.js +27 -0
  875. package/login/action-creators/index.js +1 -0
  876. package/login/action-creators/resetPassword.js +14 -0
  877. package/login/actions/index.js +1 -0
  878. package/login/actions/resetPassword.js +5 -0
  879. package/login/components/ForgotPassword/ForgotPassword.connector.js +5 -0
  880. package/login/components/ForgotPassword/ForgotPassword.js +5 -0
  881. package/login/components/ForgotPassword/ForgotPassword.style.js +1 -0
  882. package/login/components/ForgotPassword/index.js +1 -0
  883. package/login/constants/actions.js +1 -0
  884. package/login/constants/index.js +1 -0
  885. package/login/constants/pipelines.js +1 -0
  886. package/login/constants/routes.js +1 -0
  887. package/login/index.js +1 -0
  888. package/orders/action-creators/index.js +1 -0
  889. package/orders/action-creators/orderDetails.js +22 -0
  890. package/orders/action-creators/orders.js +21 -0
  891. package/orders/actions/cancelOrder.js +8 -0
  892. package/orders/actions/fetchOrderDetails.js +10 -0
  893. package/orders/actions/fetchOrderHistory.js +7 -0
  894. package/orders/actions/index.js +1 -0
  895. package/orders/components/OrderDetails/OrderDetails.js +4 -0
  896. package/orders/components/OrderDetails/OrderDetailsAuthenticate.js +3 -0
  897. package/orders/components/OrderDetails/OrderDetailsAuthenticate.style.js +1 -0
  898. package/orders/components/OrderDetails/OrderDetailsAuthenticateForm.config.js +8 -0
  899. package/orders/components/OrderDetails/OrderDetailsContent.js +3 -0
  900. package/orders/components/OrderDetails/OrderDetailsContent.style.js +1 -0
  901. package/orders/components/OrderDetails/OrderDetailsOrder.js +4 -0
  902. package/orders/components/OrderDetails/OrderDetailsOrder.style.js +1 -0
  903. package/orders/components/OrderDetails/OrderDetailsOrderHeader.js +4 -0
  904. package/orders/components/OrderDetails/OrderDetailsOrderHeader.style.js +1 -0
  905. package/orders/components/OrderDetails/OrderDetailsOrderPickupLocation.connector.js +3 -0
  906. package/orders/components/OrderDetails/OrderDetailsOrderPickupLocation.js +4 -0
  907. package/orders/components/OrderDetails/OrderDetailsOrderPickupLocation.style.js +1 -0
  908. package/orders/components/OrderDetails/index.js +1 -0
  909. package/orders/components/OrderHistory/OrderHistory.js +4 -0
  910. package/orders/components/OrderHistory/OrderHistory.style.js +1 -0
  911. package/orders/components/OrderHistory/OrderHistoryList.js +9 -0
  912. package/orders/components/OrderHistory/OrderHistoryList.style.js +1 -0
  913. package/orders/components/OrderHistory/OrderHistoryLoader.js +4 -0
  914. package/orders/components/OrderHistory/OrderHistoryTable.js +9 -0
  915. package/orders/components/OrderHistory/OrderHistoryTable.style.js +1 -0
  916. package/orders/components/OrderHistory/index.js +1 -0
  917. package/orders/components/index.js +1 -0
  918. package/orders/constants/actionTypes.js +1 -0
  919. package/orders/constants/index.js +1 -0
  920. package/orders/constants/pipelines.js +1 -0
  921. package/orders/constants/routes.js +1 -0
  922. package/orders/constants/status.js +12 -0
  923. package/orders/helpers/index.js +1 -0
  924. package/orders/helpers/orderDetails.js +5 -0
  925. package/orders/helpers/orderStatus.js +15 -0
  926. package/orders/hooks/index.js +7 -0
  927. package/orders/index.js +1 -1
  928. package/orders/providers/OrderDetailsPrivateProvider.connector.js +11 -0
  929. package/orders/providers/OrderDetailsPrivateProvider.js +5 -0
  930. package/orders/providers/OrderDetailsProvider.connector.js +11 -0
  931. package/orders/providers/OrderDetailsProvider.constraints.js +1 -0
  932. package/orders/providers/OrderDetailsProvider.context.js +1 -0
  933. package/orders/providers/OrderDetailsProvider.js +11 -0
  934. package/orders/providers/OrderHistoryProvider.connector.js +9 -0
  935. package/orders/providers/OrderHistoryProvider.context.js +1 -0
  936. package/orders/providers/OrderHistoryProvider.js +4 -0
  937. package/orders/reducers/index.js +1 -0
  938. package/orders/reducers/orders.js +7 -0
  939. package/orders/reducers/ordersById.js +7 -0
  940. package/orders/reducers/ordersByNumber.js +7 -0
  941. package/orders/selectors/index.js +27 -0
  942. package/orders/subscriptions/index.js +4 -0
  943. package/package.json +26 -18
  944. package/page/actions/index.js +1 -0
  945. package/page/components/NotFound.js +3 -0
  946. package/page/components/index.js +1 -0
  947. package/page/index.js +2 -4
  948. package/page/selectors/index.js +7 -0
  949. package/product/collections/index.js +1 -0
  950. package/product/components/Availability/Availability.connector.js +5 -0
  951. package/product/components/Availability/Availability.js +6 -0
  952. package/product/components/Availability/Availability.style.js +1 -0
  953. package/product/components/Availability/index.js +1 -0
  954. package/product/components/Characteristics/Characteristic/components/Sheet/index.js +16 -4
  955. package/product/components/Characteristics/Characteristic/components/SheetItem/index.js +8 -3
  956. package/product/components/Characteristics/Characteristic/components/SheetItem/style.js +1 -1
  957. package/product/components/Characteristics/Characteristic/index.js +15 -6
  958. package/product/components/Characteristics/Characteristic/style.js +1 -1
  959. package/product/components/Characteristics/Swatch/index.js +8 -6
  960. package/product/components/Characteristics/index.js +10 -3
  961. package/product/components/Characteristics/transition.js +1 -1
  962. package/product/components/Description/index.js +5 -6
  963. package/product/components/Description/style.js +1 -1
  964. package/product/components/EffectivityDates/helpers.js +5 -5
  965. package/product/components/EffectivityDates/index.js +2 -2
  966. package/product/components/EffectivityDates/style.js +1 -1
  967. package/product/components/Header/PriceStriked/index.js +2 -5
  968. package/product/components/Header/PriceStriked/style.js +1 -1
  969. package/product/components/Header/Shipping/components/Label/index.js +3 -3
  970. package/product/components/Header/Shipping/components/Label/style.js +1 -1
  971. package/product/components/Header/Shipping/index.js +1 -1
  972. package/product/components/Header/Shipping/spec.js +1 -1
  973. package/product/components/Header/Tiers/components/Tier/index.js +2 -2
  974. package/product/components/Header/Tiers/components/Tier/spec.js +1 -1
  975. package/product/components/Header/Tiers/index.js +1 -1
  976. package/product/components/Header/Tiers/spec.js +1 -1
  977. package/product/components/Header/index.js +1 -0
  978. package/product/components/MapPriceHint/index.js +1 -1
  979. package/product/components/Media/FeaturedMedia.js +2 -2
  980. package/product/components/Media/MediaImage.js +3 -3
  981. package/product/components/Media/MediaPlaceholder.js +1 -1
  982. package/product/components/MediaSlider/components/MediaImage/index.js +1 -1
  983. package/product/components/MediaSlider/components/MediaVideo/index.js +1 -1
  984. package/product/components/MediaSlider/index.js +4 -4
  985. package/product/components/Options/components/Content/index.js +8 -8
  986. package/product/components/Options/components/Content/spec.js +2 -2
  987. package/product/components/Options/components/Option/index.js +2 -2
  988. package/product/components/Options/components/TextOption/components/OptionInfo/index.js +3 -3
  989. package/product/components/Options/components/TextOption/components/OptionInfo/spec.js +1 -1
  990. package/product/components/Options/components/TextOption/components/OptionInfo/style.js +1 -1
  991. package/product/components/Options/components/TextOption/index.js +19 -7
  992. package/product/components/Options/components/TextOption/style.js +1 -1
  993. package/product/components/Options/index.js +2 -2
  994. package/product/components/OrderQuantityHint/index.js +3 -2
  995. package/product/components/OrderQuantityHint/style.js +1 -1
  996. package/product/components/PriceDifference/index.js +1 -1
  997. package/product/components/PriceDifference/style.js +1 -1
  998. package/product/components/PriceInfo/PriceInfo.connector.js +4 -0
  999. package/product/components/PriceInfo/PriceInfo.js +4 -0
  1000. package/product/components/PriceInfo/index.js +1 -0
  1001. package/product/components/ProductBadges/index.js +2 -2
  1002. package/product/components/ProductCard/index.js +12 -3
  1003. package/product/components/ProductCard/style.js +1 -1
  1004. package/product/components/ProductCharacteristics/context.js +1 -1
  1005. package/product/components/ProductCharacteristics/helpers/index.js +1 -1
  1006. package/product/components/ProductCharacteristics/index.js +30 -16
  1007. package/product/components/ProductDiscountBadge/index.js +2 -2
  1008. package/product/components/ProductDiscountBadge/spec.js +2 -2
  1009. package/product/components/ProductDiscountBadge/style.js +1 -1
  1010. package/product/components/ProductGridPrice/index.js +3 -3
  1011. package/product/components/ProductGridPrice/style.js +1 -1
  1012. package/product/components/ProductImage/ProductImagePlaceholder.js +5 -0
  1013. package/product/components/ProductImage/connector.js +5 -0
  1014. package/product/components/ProductImage/index.js +17 -13
  1015. package/product/components/ProductImage/spec.js +1 -1
  1016. package/product/components/ProductList/components/Item/index.js +2 -2
  1017. package/product/components/ProductList/components/Iterator/index.js +1 -1
  1018. package/product/components/ProductList/components/Layout/index.js +1 -1
  1019. package/product/components/ProductList/index.js +2 -2
  1020. package/product/components/ProductName/ProductName.js +4 -0
  1021. package/product/components/ProductName/ProductNameContent.js +4 -0
  1022. package/product/components/ProductName/index.js +1 -0
  1023. package/product/components/ProductProperties/Content.js +4 -4
  1024. package/product/components/ProductProperties/Group.js +1 -1
  1025. package/product/components/ProductProperties/GroupedProperties.js +2 -2
  1026. package/product/components/ProductProperties/Lists.js +1 -1
  1027. package/product/components/ProductProperties/ListsHTML.js +5 -0
  1028. package/product/components/ProductProperties/ProductProperties.js +2 -2
  1029. package/product/components/ProductProperties/Row.js +1 -1
  1030. package/product/components/ProductProperties/RowHTML.js +5 -0
  1031. package/product/components/ProductProperties/Rows.js +2 -2
  1032. package/product/components/ProductProperties/Wrapper.js +1 -1
  1033. package/product/components/ProductProperties/helpers/getGroupsFromProperties.js +7 -2
  1034. package/product/components/ProductProperties/style.js +1 -1
  1035. package/product/components/ProductSlider/index.js +3 -2
  1036. package/product/components/ProductSlider/spec.js +1 -1
  1037. package/product/components/ProductVariants/VariantAvailability.connector.js +5 -0
  1038. package/product/components/ProductVariants/VariantAvailability.js +5 -0
  1039. package/product/components/ProductVariants/index.js +1 -0
  1040. package/product/components/QuantityPicker/hooks.js +5 -0
  1041. package/product/components/QuantityPicker/index.js +4 -3
  1042. package/product/components/Rating/index.js +3 -3
  1043. package/product/components/Rating/spec.js +2 -2
  1044. package/product/components/RelationsSlider/RelationsSheet.js +2 -2
  1045. package/product/components/RelationsSlider/RelationsSlider.js +1 -1
  1046. package/product/components/RelationsSlider/RelationsSliderContent.js +1 -1
  1047. package/product/components/RelationsSlider/style.js +1 -1
  1048. package/product/components/Swatch/Swatch.js +1 -1
  1049. package/product/components/Swatch/SwatchContent.js +1 -1
  1050. package/product/components/Swatch/VariantSwatch.js +1 -1
  1051. package/product/components/Swatch/style.js +1 -1
  1052. package/product/components/Swatches/Swatches.js +1 -1
  1053. package/product/components/UnitQuantityPicker/CartUnitQuantityPicker.js +4 -0
  1054. package/product/components/UnitQuantityPicker/ProductUnitQuantityPicker.js +3 -6
  1055. package/product/components/UnitQuantityPicker/UnitQuantityPicker.js +11 -13
  1056. package/product/components/UnitQuantityPicker/UnitQuantityPickerWithSection.js +5 -2
  1057. package/product/components/UnitQuantityPicker/index.js +1 -1
  1058. package/product/components/UnitQuantityPicker/styles.js +1 -0
  1059. package/product/components/context.js +1 -1
  1060. package/product/components/index.js +1 -0
  1061. package/product/constants/index.js +2 -1
  1062. package/product/contexts/index.js +1 -0
  1063. package/product/helpers/index.js +2 -2
  1064. package/product/helpers/redirects.js +2 -2
  1065. package/product/hocs/index.js +1 -0
  1066. package/product/hocs/withMapPricing.js +4 -4
  1067. package/product/hocs/withPriceCalculation.js +2 -2
  1068. package/product/hocs/withProduct.js +6 -0
  1069. package/product/hocs/withProductListEntry.js +1 -1
  1070. package/product/hocs/withProductListEntryProduct.js +12 -0
  1071. package/product/hocs/withProductListType.js +1 -1
  1072. package/product/hooks/index.js +1 -0
  1073. package/product/hooks/useLoadProductImage.js +1 -1
  1074. package/product/index.js +4 -11
  1075. package/product/product.types.js +0 -0
  1076. package/product/{components/ProductProvider → providers/Product}/index.js +1 -1
  1077. package/product/providers/ProductListEntry/context.js +1 -1
  1078. package/product/providers/ProductListEntry/index.js +1 -1
  1079. package/product/providers/ProductListType/context.js +2 -1
  1080. package/product/providers/ProductListType/index.js +2 -1
  1081. package/product/providers/index.js +1 -0
  1082. package/product/selectors/product.js +75 -6
  1083. package/product/selectors/variants.js +4 -1
  1084. package/product/streams/index.js +1 -0
  1085. package/push-opt-in/action-creators/pushOptIn.js +2 -1
  1086. package/push-opt-in/actions/pushOptInModal.js +3 -3
  1087. package/push-opt-in/components/PushOptInModal/index.js +3 -6
  1088. package/push-opt-in/components/PushOptInModal/push-opt-in.svg +58 -58
  1089. package/push-opt-in/reducers/optInModal.js +2 -2
  1090. package/push-opt-in/reducers/optInTrigger.js +2 -2
  1091. package/push-opt-in/selectors/optInModal.js +5 -2
  1092. package/push-opt-in/selectors/optInTrigger.js +4 -2
  1093. package/push-opt-in/subscriptions/index.js +1 -1
  1094. package/push-opt-in/subscriptions/optInTracking.js +4 -0
  1095. package/push-opt-in/subscriptions/optInTrigger.js +6 -6
  1096. package/registration/action-creators/index.js +18 -0
  1097. package/registration/actions/index.js +1 -0
  1098. package/registration/actions/submitRegistration.js +4 -0
  1099. package/registration/components/GuestRegistration/GuestRegistration.js +4 -0
  1100. package/registration/components/GuestRegistration/GuestRegistrationContent.js +4 -0
  1101. package/registration/components/GuestRegistration/GuestRegistrationFormPickup.config.js +8 -0
  1102. package/registration/components/GuestRegistration/GuestRegistrationFormPickup.js +4 -0
  1103. package/registration/components/Registration/Registration.js +4 -0
  1104. package/registration/components/Registration/RegistrationContent.js +4 -0
  1105. package/registration/components/Registration/RegistrationContent.style.js +2 -0
  1106. package/registration/components/Registration/RegistrationFormActions.js +5 -0
  1107. package/registration/components/Registration/RegistrationFormBase.config.js +4 -0
  1108. package/registration/components/Registration/RegistrationFormBase.js +4 -0
  1109. package/registration/components/Registration/RegistrationFormBilling.config.js +5 -0
  1110. package/registration/components/Registration/RegistrationFormBilling.js +5 -0
  1111. package/registration/components/Registration/RegistrationFormExtra.config.js +5 -0
  1112. package/registration/components/Registration/RegistrationFormExtra.js +5 -0
  1113. package/registration/components/Registration/RegistrationFormShipping.config.js +5 -0
  1114. package/registration/components/Registration/RegistrationFormShipping.js +5 -0
  1115. package/registration/components/Registration/RegistrationFormToggle.js +4 -0
  1116. package/registration/components/index.js +1 -0
  1117. package/registration/constants/actionTypes.js +1 -0
  1118. package/registration/constants/index.js +1 -0
  1119. package/registration/constants/pipelines.js +1 -0
  1120. package/registration/hooks/index.js +5 -0
  1121. package/registration/index.js +2 -0
  1122. package/registration/providers/GuestRegistrationProvider.actions.js +4 -0
  1123. package/registration/providers/GuestRegistrationProvider.connector.js +7 -0
  1124. package/registration/providers/GuestRegistrationProvider.constraints.js +18 -0
  1125. package/registration/providers/GuestRegistrationProvider.context.js +1 -0
  1126. package/registration/providers/GuestRegistrationProvider.js +22 -0
  1127. package/registration/providers/RegistrationProvider.actions.js +8 -0
  1128. package/registration/providers/RegistrationProvider.connector.js +6 -0
  1129. package/registration/providers/RegistrationProvider.constraints.js +27 -0
  1130. package/registration/providers/RegistrationProvider.context.js +1 -0
  1131. package/registration/providers/RegistrationProvider.js +17 -0
  1132. package/registration/streams/index.js +4 -0
  1133. package/registration/subscriptions/index.js +5 -0
  1134. package/reviews/actions/index.js +1 -0
  1135. package/reviews/components/Reviews/components/AllReviewsLink/index.js +1 -1
  1136. package/reviews/components/Reviews/components/Header/components/AverageRating/index.js +8 -6
  1137. package/reviews/components/Reviews/components/Header/components/NoReviews/index.js +3 -3
  1138. package/reviews/components/Reviews/components/Header/components/ReviewsExcerpt/index.js +3 -3
  1139. package/reviews/components/Reviews/components/Header/components/ReviewsExcerpt/style.js +1 -1
  1140. package/reviews/components/Reviews/components/Header/components/WriteReviewLink/index.js +3 -3
  1141. package/reviews/components/Reviews/components/Header/components/WriteReviewLink/spec.js +2 -2
  1142. package/reviews/components/Reviews/components/Header/index.js +6 -4
  1143. package/reviews/components/Reviews/components/Header/spec.js +2 -2
  1144. package/reviews/components/Reviews/components/List/components/Info/components/Author/index.js +1 -1
  1145. package/reviews/components/Reviews/components/List/components/Info/components/ReviewDate/index.js +1 -1
  1146. package/reviews/components/Reviews/components/List/components/Info/index.js +2 -2
  1147. package/reviews/components/Reviews/components/List/components/Info/style.js +1 -1
  1148. package/reviews/components/Reviews/components/List/components/Rating/index.js +1 -1
  1149. package/reviews/components/Reviews/components/List/components/Review/index.js +1 -1
  1150. package/reviews/components/Reviews/components/List/components/Text/index.js +1 -1
  1151. package/reviews/components/Reviews/components/List/components/Title/index.js +1 -1
  1152. package/reviews/components/Reviews/components/List/index.js +3 -3
  1153. package/reviews/components/Reviews/components/List/spec.js +1 -1
  1154. package/reviews/components/Reviews/components/RatingCount/index.js +1 -1
  1155. package/reviews/components/Reviews/components/RatingCount/spec.js +1 -1
  1156. package/reviews/components/Reviews/components/RatingCount/style.js +1 -1
  1157. package/reviews/components/Reviews/components/ReviewsInfo/index.js +3 -4
  1158. package/reviews/components/Reviews/connector.js +2 -6
  1159. package/reviews/components/Reviews/index.js +1 -1
  1160. package/reviews/components/Reviews/mock.js +2 -6
  1161. package/reviews/components/Reviews/spec.js +4 -3
  1162. package/reviews/components/index.js +1 -0
  1163. package/reviews/constants/index.js +1 -0
  1164. package/reviews/index.js +3 -6
  1165. package/reviews/selectors/index.js +1 -0
  1166. package/reviews/streams/index.js +1 -0
  1167. package/scanner/action-creators/index.js +1 -0
  1168. package/scanner/actions/index.js +1 -0
  1169. package/scanner/classes/index.js +1 -0
  1170. package/scanner/constants/index.js +1 -0
  1171. package/scanner/helpers/index.js +1 -0
  1172. package/scanner/index.js +1 -6
  1173. package/scanner/streams/index.js +1 -0
  1174. package/search/actions/index.js +1 -0
  1175. package/search/constants/index.js +1 -0
  1176. package/search/helpers/index.js +1 -0
  1177. package/search/index.js +1 -6
  1178. package/search/selectors/index.js +1 -0
  1179. package/search/streams/index.js +1 -0
  1180. package/styles/helpers/cssCustomProperties.js +16 -0
  1181. package/styles/helpers/index.js +1 -0
  1182. package/styles/helpers/initCSSCustomProperties.js +10 -0
  1183. package/styles/helpers/loadCustomStyles.js +6 -0
  1184. package/styles/helpers/setPageBackgroundColor.js +5 -0
  1185. package/styles/helpers/setPageContentWidth.js +5 -0
  1186. package/styles/helpers/setViewportHeight.js +3 -0
  1187. package/styles/helpers/toggleBodyScroll.js +5 -0
  1188. package/styles/helpers/updatePageInsets.js +15 -0
  1189. package/styles/index.js +1 -0
  1190. package/styles/reset/form.js +8 -0
  1191. package/styles/reset/index.js +1 -0
  1192. package/styles/reset/media.js +1 -0
  1193. package/styles/reset/root.js +3 -0
  1194. package/styles/reset/table.js +1 -0
  1195. package/styles/reset/typography.js +1 -0
  1196. package/tracking/action-creators/cookieConsent.js +2 -2
  1197. package/tracking/actions/cookieConsent.js +17 -5
  1198. package/tracking/components/CookieConsentModal/connector.js +3 -5
  1199. package/tracking/components/CookieConsentModal/index.js +3 -6
  1200. package/tracking/components/CookieConsentModal/tracking-opt-in.svg +14 -14
  1201. package/tracking/components/PrivacySettings/connector.js +3 -5
  1202. package/tracking/components/PrivacySettings/index.js +2 -2
  1203. package/tracking/helpers/index.js +1 -0
  1204. package/tracking/selectors/cookieConsent.js +10 -5
  1205. package/tracking/streams/cookieConsent.js +10 -3
  1206. package/tracking/subscriptions/analytics.js +5 -4
  1207. package/tracking/subscriptions/cookieConsent.js +6 -10
  1208. package/types.js +0 -0
  1209. package/user/index.js +2 -2
  1210. package/user/selectors/data.js +10 -0
  1211. package/components/MessageBar/spec.js +0 -1
  1212. package/components/MessageBar/style.js +0 -2
  1213. package/favorites/constants/constants.js +0 -1
  1214. package/product/components/Characteristics/Characteristic/components/VariantAvailability/connector.js +0 -9
  1215. package/product/components/Characteristics/Characteristic/components/VariantAvailability/index.js +0 -5
  1216. package/product/components/QuantityPicker/helpers.js +0 -5
  1217. /package/product/components/{Characteristics/Characteristic/components/VariantAvailability/style.js → ProductVariants/VariantAvailability.style.js} +0 -0
  1218. /package/product/{components/ProductProvider → providers/Product}/connector.js +0 -0
@@ -0,0 +1,74 @@
1
+ export interface ViewScrollEvent {
2
+ /** The original scroll event object */
3
+ event: UIEvent;
4
+
5
+ /** Current vertical scroll position */
6
+ scrollTop: number;
7
+
8
+ /** Previous scrollTop value */
9
+ previousScrollTop: number;
10
+
11
+ /** True if scrolling down */
12
+ scrollDown: boolean;
13
+
14
+ /** True if scrolling up */
15
+ scrollUp: boolean;
16
+
17
+ /** Scroll direction: 'up', 'down', or null */
18
+ direction: 'up' | 'down' | null;
19
+
20
+ /** Optional internal/legacy props (not passed to callbacks) */
21
+ [key: string]: unknown;
22
+ }
23
+
24
+ /**
25
+ * @param event Scroll event
26
+ */
27
+ export type ScrollCallback = (event: ViewScrollEvent) => void;
28
+
29
+ export interface UseScrollDirectionChangeParams {
30
+ /** Whether the hook is active */
31
+ enabled: boolean;
32
+
33
+ /**
34
+ * ScrollTop threshold for down scroll triggers. When set,
35
+ * `onScrollDown` fires only when the scroll position is greater than this.
36
+ * @default 100
37
+ */
38
+ offset?: number;
39
+
40
+ /**
41
+ * If true, callbacks fire only once per direction change
42
+ * @default true
43
+ */
44
+ onlyFireOnDirectionChange?: boolean;
45
+
46
+ /**
47
+ * If true, onScrollUp fires only when scrollTop is below or equal to
48
+ * `onlyFireOnScrollUpAtTopOffset`.
49
+ * @default false
50
+ */
51
+ onlyFireOnScrollUpAtTop?: boolean;
52
+
53
+ /**
54
+ * Maximum scrollTop at which `onScrollUp` may fire when
55
+ * `onlyFireOnScrollUpAtTop` is true.
56
+ * @default 0
57
+ */
58
+ onlyFireOnScrollUpAtTopOffset?: number;
59
+
60
+ /** Callback triggered on scroll up */
61
+ onScrollUp?: ScrollCallback;
62
+
63
+ /** Callback triggered on scroll down past offset */
64
+ onScrollDown?: ScrollCallback;
65
+ }
66
+
67
+ /**
68
+ * A scroll hook that detects scroll direction changes (up/down) and
69
+ * triggers the appropriate callbacks. Commonly used to show/hide
70
+ * UI elements based on scroll behavior.
71
+ *
72
+ * @param {UseScrollDirectionChangeParams} params The hook parameters
73
+ */
74
+ export default function useScrollDirectionChange(params: UseScrollDirectionChangeParams): void;
@@ -0,0 +1,18 @@
1
+ var _excluded=["scrollIn","scrollOut","scrolled"],_excluded2=["scrollIn","scrollOut","scrolled"];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;}// @ts-check
2
+ import{useEffect,useRef,useCallback}from'react';import{viewScroll$}from'@shopgate/engage/core/streams';/** @typedef {import('./useScrollDirectionChange').ViewScrollEvent} ViewScrollEvent */ /** @typedef {import('./useScrollDirectionChange').ScrollCallback} ScrollCallback */ // eslint-disable-next-line max-len
3
+ /** @typedef {import('./useScrollDirectionChange').UseScrollDirectionChangeParams} UseScrollDirectionChangeParams */ /**
4
+ * A scroll hook that detects scroll direction changes (up/down) and
5
+ * triggers the appropriate callbacks. Commonly used to show/hide
6
+ * UI elements based on scroll behavior.
7
+ *
8
+ * @param {UseScrollDirectionChangeParams} params The hook parameters
9
+ */export default function useScrollDirectionChange(_ref){var enabled=_ref.enabled,_ref$offset=_ref.offset,offset=_ref$offset===void 0?100:_ref$offset,_ref$onlyFireOnDirect=_ref.onlyFireOnDirectionChange,onlyFireOnDirectionChange=_ref$onlyFireOnDirect===void 0?true:_ref$onlyFireOnDirect,_ref$onlyFireOnScroll=_ref.onlyFireOnScrollUpAtTop,onlyFireOnScrollUpAtTop=_ref$onlyFireOnScroll===void 0?false:_ref$onlyFireOnScroll,_ref$onlyFireOnScroll2=_ref.onlyFireOnScrollUpAtTopOffset,onlyFireOnScrollUpAtTopOffset=_ref$onlyFireOnScroll2===void 0?0:_ref$onlyFireOnScroll2,onScrollUp=_ref.onScrollUp,onScrollDown=_ref.onScrollDown;var lastDirectionRef=useRef(null);var downTriggeredRef=useRef(false);var upTriggeredRef=useRef(false);/**
10
+ * Scroll event handler.
11
+ * Uses `event.direction` and triggers callbacks accordingly.
12
+ */var handleScroll=useCallback(/** @param {ViewScrollEvent} event The event */function(event){if(!enabled||!event.scrolled||!event.direction)return;var scrollTop=event.scrollTop,direction=event.direction;var prevDirection=lastDirectionRef.current;var directionChanged=direction!==prevDirection;// Store current direction and reset flags if direction changed
13
+ if(directionChanged){// @ts-expect-error
14
+ lastDirectionRef.current=direction;if(direction==='down')downTriggeredRef.current=false;if(direction==='up')upTriggeredRef.current=false;}// 🔽 Handle downward scroll
15
+ if(direction==='down'){var shouldFire=(!onlyFireOnDirectionChange||directionChanged||!downTriggeredRef.current)&&scrollTop>=offset;if(shouldFire&&typeof onScrollDown==='function'){downTriggeredRef.current=true;// Strip internal/legacy properties
16
+ var scrollIn=event.scrollIn,scrollOut=event.scrollOut,scrolled=event.scrolled,publicEvent=_objectWithoutProperties(event,_excluded);onScrollDown(publicEvent);}}// 🔼 Handle upward scroll
17
+ if(direction==='up'){// if user wants “only fire at the very top” and we’re not at 0, skip
18
+ if(onlyFireOnScrollUpAtTop&&scrollTop>onlyFireOnScrollUpAtTopOffset){return;}var _shouldFire=!onlyFireOnDirectionChange||directionChanged||!upTriggeredRef.current;if(_shouldFire&&typeof onScrollUp==='function'){upTriggeredRef.current=true;var _scrollIn=event.scrollIn,_scrollOut=event.scrollOut,_scrolled=event.scrolled,_publicEvent=_objectWithoutProperties(event,_excluded2);onScrollUp(_publicEvent);}}},[enabled,onlyFireOnDirectionChange,offset,onScrollDown,onlyFireOnScrollUpAtTop,onlyFireOnScrollUpAtTopOffset,onScrollUp]);useEffect(function(){if(!enabled)return undefined;var subscription=viewScroll$.subscribe(handleScroll);return function(){return subscription.unsubscribe();};},[enabled,handleScroll]);}
@@ -1,4 +1,4 @@
1
- function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i];}return arr2;}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_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{useState,useEffect}from'react';import{loadImage}from'@shopgate/pwa-common/helpers/html/handleDOM';/**
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{useState,useEffect}from'react';import{loadImage}from'@shopgate/pwa-common/helpers/html/handleDOM';/**
2
2
  * Load image hook
3
3
  * @param {string} src .
4
4
  * @returns {boolean}
@@ -0,0 +1 @@
1
+ export*from"./layout";export*from"./events";export{useAsyncMemo}from"./useAsyncMemo";export{useRoute}from"./useRoute";export{useTheme}from"./useTheme";export{useApp}from"./useApp";export{useCurrentProduct}from"./useCurrentProduct";export{useNavigation}from"./useNavigation";export{usePageConfig}from"./usePageConfig";export{usePageSettings}from"./usePageSettings";export{useWidgetConfig}from"./useWidgetConfig";export{useWidgetSettings}from"./useWidgetSettings";export{useWidgetStyles}from"./useWidgetStyles";export{useThemeResources,useThemeComponents,useThemeWidgets}from"./useThemeResources";export*from"./html";export{usePrevious}from"./usePrevious";export{useResponsiveValue}from'@shopgate/engage/components/ResponsiveContainer/hooks';
@@ -0,0 +1 @@
1
+ export{default as useElementSize}from"./useElementSize";
@@ -0,0 +1,46 @@
1
+ import { RefObject } from 'react';
2
+
3
+ /**
4
+ * Represents the dimensions of a DOM element.
5
+ */
6
+ export interface ElementSize {
7
+ /**
8
+ * The element's height in pixels.
9
+ */
10
+ height: number;
11
+
12
+ /**
13
+ * The element's width in pixels (optional).
14
+ */
15
+ width?: number;
16
+ }
17
+
18
+ /**
19
+ * Options for configuring the useElementSize hook.
20
+ */
21
+ export interface UseElementSizeOptions {
22
+ /**
23
+ * Throttle delay in milliseconds.
24
+ * @default 100
25
+ */
26
+ throttleMs?: number;
27
+
28
+ /**
29
+ * Whether to measure the element's width.
30
+ * @default false
31
+ */
32
+ includeWidth?: boolean;
33
+ }
34
+
35
+ /**
36
+ * Tracks the height (and optionally width) of a DOM element using ResizeObserver.
37
+ * Falls back to window resize and MutationObserver in older browsers.
38
+ *
39
+ * @param ref A ref to the element being measured.
40
+ * @param options Optional settings.
41
+ * @returns The current height (and optionally width) of the element.
42
+ */
43
+ export default function useElementSize(
44
+ ref: RefObject<HTMLElement>,
45
+ options?: UseElementSizeOptions
46
+ ): ElementSize;
@@ -0,0 +1,18 @@
1
+ function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}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{useState,useEffect,useRef}from'react';import throttle from'lodash/throttle';/** @typedef {import('./useElementSize').ElementSize} ElementSize */ /** @typedef {import('./useElementSize').UseElementSizeOptions} UseElementSizeOptions */ /** @typedef {import('react').RefObject<HTMLElement>} HTMLElementRef */ /**
2
+ * Tracks the height (and optionally width) of a DOM element using ResizeObserver,
3
+ * with a fallback to window resize and MutationObserver in older browsers.
4
+ *
5
+ * @param {HTMLElementRef} ref - A ref to the element being measured.
6
+ * @param {UseElementSizeOptions} [options={}] - Optional settings.
7
+ * @returns {ElementSize} The current height (and optionally width) of the element.
8
+ */export default function useElementSize(ref){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var _options$throttleMs=options.throttleMs,throttleMs=_options$throttleMs===void 0?100:_options$throttleMs,_options$includeWidth=options.includeWidth,includeWidth=_options$includeWidth===void 0?false:_options$includeWidth;/**
9
+ * Holds the current element size in state.
10
+ */var _useState=useState(_extends({height:0},includeWidth&&{width:0})),_useState2=_slicedToArray(_useState,2),size=_useState2[0],setSize=_useState2[1];/**
11
+ * Tracks the most recent measured size to prevent unnecessary state updates.
12
+ */var sizeRef=useRef(size);useEffect(function(){var element=ref.current;if(!element)return undefined;/**
13
+ * Measures the current size of the element and updates state if it changed.
14
+ */var updateSize=function updateSize(){var newHeight=element.offsetHeight;var newWidth=includeWidth?element.offsetWidth:undefined;var hasChanged=newHeight!==sizeRef.current.height||includeWidth&&newWidth!==sizeRef.current.width;if(hasChanged){var newSize=_extends({height:newHeight},includeWidth?{width:newWidth}:{});sizeRef.current=newSize;setSize(newSize);}};/**
15
+ * Throttles the update function to limit how often measurements occur.
16
+ */var throttledUpdate=throttle(updateSize,throttleMs);/**
17
+ * Sets up ResizeObserver or fallback observers to trigger measurement.
18
+ */var cleanup=function cleanup(){};if('ResizeObserver'in window){var resizeObserver=new ResizeObserver(throttledUpdate);resizeObserver.observe(element);updateSize();cleanup=function cleanup(){resizeObserver.disconnect();throttledUpdate.cancel();};}else{window.addEventListener('resize',throttledUpdate);var mutationObserver=new MutationObserver(throttledUpdate);mutationObserver.observe(element,{childList:true,subtree:true,characterData:true});updateSize();cleanup=function cleanup(){window.removeEventListener('resize',throttledUpdate);mutationObserver.disconnect();throttledUpdate.cancel();};}return cleanup;},[ref,throttleMs,includeWidth]);return size;}
@@ -0,0 +1,12 @@
1
+ import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance");}function _iterableToArrayLimit(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}import React from'react';/**
2
+ * General purpose hook that allow a `React.useMemo` hook with
3
+ * extended async support. The output contains the output value
4
+ * from promise and a potential error object.
5
+ * @param {Function} asyncFunction The function that will be executed to generate memoized output.
6
+ * @param {Array} asyncFunctionDependencies
7
+ * A list of dependencies (same behavior as with `React.useMemo`)
8
+ * @param {Any} initialValue The initial value that is set before promise is fulfilled.
9
+ * @returns {Array}
10
+ */export function useAsyncMemo(asyncFunction){var asyncFunctionDependencies=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var initialValue=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;var _React$useState=React.useState(initialValue),_React$useState2=_slicedToArray(_React$useState,2),value=_React$useState2[0],setValue=_React$useState2[1];var _React$useState3=React.useState(false),_React$useState4=_slicedToArray(_React$useState3,2),error=_React$useState4[0],setError=_React$useState4[1];/* eslint-disable react-hooks/exhaustive-deps */React.useEffect(function(){/**
11
+ * Wraps the async function as React doesn't allow direct async usage.
12
+ */var fn=/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var output;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.prev=0;_context.next=3;return asyncFunction();case 3:output=_context.sent;setValue(output);_context.next=10;break;case 7:_context.prev=7;_context.t0=_context["catch"](0);setError(_context.t0);case 10:case"end":return _context.stop();}},_callee,null,[[0,7]]);}));return function fn(){return _ref.apply(this,arguments);};}();fn();},asyncFunctionDependencies);/* eslint-enable react-hooks/exhaustive-deps */return[value,error];}
@@ -0,0 +1,27 @@
1
+ import _regeneratorRuntime from"@babel/runtime/regenerator";import _debounce from"lodash/debounce";function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}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{useRef,useState,useEffect,useCallback}from'react';import{useScrollTo}from"./useScrollTo";import{i18n}from"../helpers/i18n";import{useValidation}from"../validation";/**
2
+ * Converts validation errors into errors for form builder.
3
+ * @param {Object} validationErrors The validation errors.
4
+ * @returns {Array}
5
+ */export var convertValidationErrors=function convertValidationErrors(validationErrors){return Object.keys(validationErrors).map(function(key){return{path:key,message:i18n.text(validationErrors[key])};});};/**
6
+ * @param {Object} initialState The initial form state.
7
+ * @param {Function} complete The completion callback.
8
+ * @param {Object} validationConstraints validationConstraints
9
+ * @param {Object} [formContainerRef=null] A ref to a container with forms
10
+ * @param {number} [validationErrorScrollOffset=10] When a form container ref is passed with the
11
+ * parameters, whenever validation errors occur, the page will scroll to the first error. Depending
12
+ * on the page, the scroll logic might not be accurate. So this offset parameter can be used
13
+ * to influence scroll behavior.
14
+ * @returns {{ handleChange, handleSubmit, values, valid, validationErrors: ?Object, isSubmitting }}
15
+ */export function useFormState(initialState,complete){var validationConstraints=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var formContainerRef=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;var validationErrorScrollOffset=arguments.length>4&&arguments[4]!==undefined?arguments[4]:10;var _useScrollTo=useScrollTo(formContainerRef,validationErrorScrollOffset),scrollTo=_useScrollTo.scrollTo;// Submit lock prevents the form from being submitted multiple times
16
+ var submitLock=useRef(false);var _useState=useState(initialState),_useState2=_slicedToArray(_useState,2),values=_useState2[0],setValues=_useState2[1];var _useState3=useState(false),_useState4=_slicedToArray(_useState3,2),isSubmitting=_useState4[0],setSubmitting=_useState4[1];var _useState5=useState(false),_useState6=_slicedToArray(_useState5,2),changed=_useState6[0],setChanged=_useState6[1];var _useState7=useState(false),_useState8=_slicedToArray(_useState7,2),ignoreErrors=_useState8[0],setIgnoreErrors=_useState8[1];var _useValidation=useValidation(validationConstraints),valid=_useValidation.valid,validationErrors=_useValidation.validationErrors,validate=_useValidation.validate,reset=_useValidation.reset;var scrollToError=useCallback(function(){var errorElement=document.querySelector('.validationError');if(errorElement){scrollTo('.validationError');var inputElement=errorElement.querySelector('input, select, textarea');if(inputElement){inputElement.focus();}}},[scrollTo]);// -- CHANGED ---------------
17
+ useEffect(function(){var isEqual=JSON.stringify(values)===JSON.stringify(initialState);if(!isEqual&&!changed){setChanged(true);}else if(isEqual&&changed){setChanged(false);}},[changed,initialState,values]);// -- IS_SUBMITTING ---------
18
+ /* eslint-disable react-hooks/exhaustive-deps */useEffect(function(){if(!isSubmitting){return;}var mounted=true;if((valid===true||ignoreErrors)&&!submitLock.current){submitLock.current=true;_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.next=2;return complete(values);case 2:if(mounted){setSubmitting(false);setChanged(false);submitLock.current=false;}case 3:case"end":return _context.stop();}},_callee);}))();}// eslint-disable-next-line consistent-return
19
+ return function(){mounted=false;};},[isSubmitting,valid,ignoreErrors]);/* eslint-enable react-hooks/exhaustive-deps */useEffect(function(){scrollToError();},[isSubmitting,scrollToError]);useEffect(function(){return function(){submitLock.current=false;};},[]);// -- VALIDATION ON SUBMIT ---------
20
+ useEffect(function(){if(ignoreErrors){return;}// Yest no validation on submit
21
+ if(changed&&valid!==null){validate(values);}if(isSubmitting&&valid===null){validate(values);}if(isSubmitting&&valid===false){setSubmitting(false);}},[changed,validate,values,isSubmitting,valid,ignoreErrors]);var handleSetIgnoreErrors=useCallback(function(value){setIgnoreErrors(value);if(ignoreErrors===true){reset();}},[ignoreErrors,reset]);/**
22
+ * @param {string} sanitized The sanitized field value.
23
+ * @param {Object} event The change event object.
24
+ */var handleChange=useCallback(function(sanitized,event){if(!event){return;}setValues(_extends({},values,_defineProperty({},event.target.name,sanitized)));},[values]);/**
25
+ * Debounced (dbl-click) submit handler
26
+ * @param {Object} event The submit event object.
27
+ */var handleSubmit=_debounce(function(event){if(event===null||event===void 0?void 0:event.preventDefault){event.preventDefault();}setSubmitting(true);},300,{leading:true,trailing:false});return{resetValidationErrors:reset,handleChange:handleChange,handleSubmit:handleSubmit,values:values,valid:!ignoreErrors?valid:true,validationErrors:!ignoreErrors?validationErrors:[],isSubmitting:isSubmitting,setValues:setValues,scrollToError:scrollToError,setIgnoreErrors:handleSetIgnoreErrors,validate:validate};}
@@ -0,0 +1,2 @@
1
+ import React from'react';// eslint-disable-next-line require-jsdoc
2
+ export function usePrevious(value){var ref=React.useRef(value);React.useEffect(function(){ref.current=value;},[value]);return ref.current;}
@@ -0,0 +1,5 @@
1
+ import{useCallback}from'react';import{getCSSCustomProp}from'@shopgate/engage/styles';import{hasWebBridge}from"../helpers/bridge";/**
2
+ * @param {Object} ref A ref to the scroll container
3
+ * @param {number} [offset=10] Optional offset for the scroll operation
4
+ * @returns {Object}
5
+ */export var useScrollTo=function useScrollTo(ref){var offset=arguments.length>1&&arguments[1]!==undefined?arguments[1]:10;var scrollTo=useCallback(function(selector){if(!(ref===null||ref===void 0?void 0:ref.current)){return;}var firstElement=ref.current.querySelector(selector);if(firstElement){if(hasWebBridge()){var scrollOffset=offset;var appBarHeight=getCSSCustomProp('--app-bar-height')||0;var _firstElement$getBoun2=firstElement.getBoundingClientRect(),top=_firstElement$getBoun2.top;var scrollTop=top+window.pageYOffset-parseInt(appBarHeight,10)-scrollOffset;window.scroll({top:scrollTop,behavior:'smooth'});}else{firstElement.scrollIntoView({behavior:'smooth'});}}},[offset,ref]);return{scrollTo:scrollTo};};
@@ -1,5 +1,41 @@
1
- var _excluded=["contexts"];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{useContext}from'react';import{ThemeContext}from'@shopgate/pwa-common/context';/**
1
+ var _excluded=["contexts"];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{useContext}from'react';import{ThemeContext}from'@shopgate/pwa-common/context';// eslint-disable-next-line valid-jsdoc
2
+ /**
2
3
  * Provides the theme API. This does not include the contexts.
3
- * @returns {Object}
4
+ * @deprecated
5
+ * Use `useThemeComponents()` instead.
6
+ *
7
+ * ```js
8
+ * import { useThemeComponents } from '@shopgate/engage/core/hooks';
9
+ * const { ProductCard } = useThemeComponents();
10
+ * ```
11
+ *
12
+ * This hook will NOT expose components that can be imported directly from the `@shopgate/engage`
13
+ * package (see list below).
14
+ *
15
+ * ---
16
+ * Use these updated imports instead of deprecated context values:
17
+ *
18
+ * ```js
19
+ * // Deprecated: Drawer → use SheetDrawer
20
+ * import { SheetDrawer } from '@shopgate/engage/components';
21
+ *
22
+ * // Deprecated: PriceDifference → use PriceDifference
23
+ * import { PriceDifference } from '@shopgate/engage/product/components';
24
+ *
25
+ * // Deprecated: ProductSlider → use ProductSlider
26
+ * import { ProductSlider } from '@shopgate/engage/product/components';
27
+ *
28
+ * // Deprecated: SelectOption → use SelectOption
29
+ * import { SelectOption } from '@shopgate/engage/product/components';
30
+ *
31
+ * // Deprecated: TextOption → use TextOption
32
+ * import { TextOption } from '@shopgate/engage/product/components';
33
+ *
34
+ * // Deprecated: View → use View
35
+ * import { View } from '@shopgate/engage/components'
36
+ *
37
+ * // Deprecated: { contexts: { ProductContext }} → use ProductContext
38
+ * import { ProductContext } from '@shopgate/engage/product/contexts';
39
+ * ```
4
40
  */export function useTheme(){// The contexts are left out in favor of other hooks.
5
41
  var _useContext=useContext(ThemeContext),contexts=_useContext.contexts,themeContext=_objectWithoutProperties(_useContext,_excluded);return themeContext;}
@@ -0,0 +1,21 @@
1
+ import{useContext}from'react';import ThemeResourcesContext from"../contexts/ThemeResourcesContext";/**
2
+ * @typedef {import('../contexts/ThemeResourcesContext').ThemeResourcesContextType
3
+ * ThemeResourcesContextType}
4
+ */ /**
5
+ * @typedef {ThemeResourcesContextType['components']} ThemeComponentsType
6
+ */ /**
7
+ * @typedef {ThemeResourcesContextType['widgets']} ThemeWidgetsType
8
+ */ /**
9
+ * Hook to access to the ThemeResourceContext. The context provides access to different groups
10
+ * of React components provided by the active theme.
11
+ * @returns {ThemeResourcesContextType} Value of the ThemeResourceContext
12
+ */export function useThemeResources(){return useContext(ThemeResourcesContext);}/**
13
+ * Hook to access the components provided by the ThemeResourceContext
14
+ * @returns {ThemeComponentsType} Mapping object that contains multiple components provided by the
15
+ * theme.
16
+ * Key is the component name, value is the component
17
+ */export function useThemeComponents(){var _useThemeResources=useThemeResources(),components=_useThemeResources.components;return components;}/**
18
+ * Hook to access the widgets provided by the ThemeResourceContext
19
+ * @returns {ThemeWidgetsType} Mapping object that contains all available widgets.
20
+ * Key is the widget code, value is the widget component.
21
+ */export function useThemeWidgets(){var _useThemeResources2=useThemeResources(),widgets=_useThemeResources2.widgets;return widgets;}
@@ -1,4 +1,4 @@
1
- import defaultsDeep from'lodash/defaultsDeep';import{useWidgetConfig}from"./useWidgetConfig";import{getThemeStyles}from"../config/getThemeStyles";/**
1
+ import defaultsDeep from'lodash/defaultsDeep';import{useWidgetConfig}from"./useWidgetConfig";import{getThemeStyles}from"../config";/**
2
2
  * Retrieves the styles for a specific widget by its id. Returns an empty object when no styles
3
3
  * exist.
4
4
  *
package/core/index.js CHANGED
@@ -1,11 +1,5 @@
1
- // --------------- CORE --------------- //
2
- // Emitters
3
- export{default as UIEvents}from'@shopgate/pwa-core/emitters/ui';// --------------- STORE --------------- //
4
- export*from'@shopgate/pwa-common/store';// --------------- CONTEXTS --------------- //
5
- export*from'@shopgate/pwa-common/context';export{default as AppContext}from"./contexts/AppContext";// --------------- PROVIDERS --------------- //
6
- export{default as LoadingProvider}from'@shopgate/pwa-common/providers/loading';export{default as LoadingContext}from'@shopgate/pwa-common/providers/loading/context';export{default as ToastProvider}from'@shopgate/pwa-common/providers/toast';export{default as ToastContext}from'@shopgate/pwa-common/providers/toast/context';export{default as AppProvider}from"./providers/AppProvider";// --------------- MODAL --------------- //
7
- // HOCs
8
- export{default as withShowModal}from'@shopgate/pwa-common/helpers/modal/withShowModal';// --------------- HOOKS --------------- //
9
- export{useRoute}from"./hooks/useRoute";export{useTheme}from"./hooks/useTheme";export{useCurrentProduct}from"./hooks/useCurrentProduct";export{useNavigation}from"./hooks/useNavigation";export{usePageConfig}from"./hooks/usePageConfig";export{usePageSettings}from"./hooks/usePageSettings";export{useWidgetConfig}from"./hooks/useWidgetConfig";export{useWidgetSettings}from"./hooks/useWidgetSettings";export{useWidgetStyles}from"./hooks/useWidgetStyles";export*from"./hooks/html";// --------------- HOCs --------------- //
10
- export{withTheme}from"./hocs/withTheme";export{withRoute}from"./hocs/withRoute";export{withCurrentProduct}from"./hocs/withCurrentProduct";export{withForwardedRef}from"./hocs/withForwardedRef";export{withNavigation}from"./hocs/withNavigation";export{withWidgetSettings}from"./hocs/withWidgetSettings";export{withWidgetStyles}from"./hocs/withWidgetStyles";export{withApp}from"./hocs/withApp";// --------------- CONFIG --------------- //
11
- export{ThemeConfigResolver}from"./config/ThemeConfigResolver";export{isBeta}from"./config/isBeta";export{getThemeConfig}from"./config/getThemeConfig";export{getThemeSettings}from"./config/getThemeSettings";export{getThemeColors}from"./config/getThemeColors";export{getThemeAssets}from"./config/getThemeAssets";export{getPageConfig}from"./config/getPageConfig";export{getPageSettings}from"./config/getPageSettings";export{getWidgetConfig}from"./config/getWidgetConfig";export{getWidgetSettings}from"./config/getWidgetSettings";export*from"./actions";export*from"./classes";export*from"./commands";export*from"./collections";export*from"./constants";export*from"./helpers";export*from"./initialization";export*from"./selectors";export*from"./streams";
1
+ /** @module core */ // --------------- STORE --------------- //
2
+ export*from'@shopgate/pwa-common/store';// --------------- CONFIG --------------- //
3
+ export{ThemeConfigResolver}from"./config/ThemeConfigResolver";export{getThemeConfig}from"./config/getThemeConfig";export{getThemeSettings}from"./config/getThemeSettings";export{getThemeColors}from"./config/getThemeColors";export{getThemeAssets}from"./config/getThemeAssets";export{getPageConfig}from"./config/getPageConfig";export{getPageSettings}from"./config/getPageSettings";export{getWidgetConfig}from"./config/getWidgetConfig";export{getWidgetSettings}from"./config/getWidgetSettings";export*from"./actions";export*from"./action-creators";export*from"./classes";export*from"./collections";export*from"./commands";export*from"./constants";export*from"./contexts";export*from"./events";export*from"./helpers";// Only export HOCs that existed before the hoc folder existed
4
+ export{withShowModal,withTheme,withRoute,withCurrentProduct,withForwardedRef,withNavigation,withWidgetSettings,withWidgetStyles,withApp}from"./hocs";// Only export hooks that existed before the hooks folder existed
5
+ export{useAsyncMemo,useRoute,useTheme,useApp,useCurrentProduct,useNavigation,usePageConfig,usePageSettings,useWidgetConfig,useWidgetSettings,useWidgetStyles,useLoadImage,usePrevious,useResponsiveValue}from"./hooks";export*from"./initialization";export*from"./providers";export*from"./selectors";export*from"./streams";export*from"./validation";
@@ -1,9 +1,24 @@
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{appWillInit,appWillStart}from'@shopgate/pwa-common/action-creators/app';import{appConfig}from'@shopgate/engage';import{i18n,configureStore,fetchClientInformation}from'@shopgate/engage/core';import{appInitialization,configuration}from'@shopgate/engage/core/collections';import{CONFIGURATION_COLLECTION_KEY_BASE_URL}from'@shopgate/engage/core/constants';import{getAppBaseUrl}from'@shopgate/engage/core/helpers';var _appConfig$locales=appConfig.locales;_appConfig$locales=_appConfig$locales===void 0?{}:_appConfig$locales;var _appConfig$locales$cu=_appConfig$locales.currency,currencyLocale=_appConfig$locales$cu===void 0?null:_appConfig$locales$cu;/**
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{withScope,captureMessage,Severity as SentrySeverity}from'@sentry/browser';import moment from'moment';import{configureStore}from'@shopgate/pwa-common/store';import{appWillInit,appWillStart}from'@shopgate/pwa-common/action-creators/app';import{i18n}from'@shopgate/engage/core';import fetchClientInformation from'@shopgate/pwa-common/actions/client/fetchClientInformation';import appConfig from'@shopgate/pwa-common/helpers/config';import{appInitialization,configuration}from'@shopgate/engage/core/collections';import{CONFIGURATION_COLLECTION_KEY_BASE_URL}from'@shopgate/engage/core/constants';import{getAppBaseUrl,isDev,hasSGJavaScriptBridge,hasWebBridge}from'@shopgate/engage/core/helpers';import{receiveShopSettings,receiveMerchantSettings,errorShopSettings}from"../action-creators";var _appConfig$locales=appConfig.locales,_appConfig$locales2=_appConfig$locales===void 0?{}:_appConfig$locales,_appConfig$locales2$c=_appConfig$locales2.currency,currencyLocale=_appConfig$locales2$c===void 0?null:_appConfig$locales2$c,settingsUrl=appConfig.settingsUrl,merchantSettingsUrl=appConfig.merchantSettingsUrl;var REQUEST_TIMEOUT=3000;/**
2
+ * Injects a script tag to fetch the shop settings JSONP.
3
+ * @param {string} id The script id
4
+ * @param {string} src The script url
5
+ * @param {Function} onError Callback for error situations.
6
+ */var injectScript=function injectScript(id,src,onError){var scriptTag=document.querySelector("#".concat(id));if(scriptTag){scriptTag.remove();}scriptTag=document.createElement('script');scriptTag.setAttribute('src',src);scriptTag.setAttribute('id',id);scriptTag.onerror=onError;document.querySelector('head').appendChild(scriptTag);};/**
7
+ * Fetches settings
8
+ * @param {Object} store Reference to the store
9
+ * @returns {Promise}
10
+ */var fetchSettings=function fetchSettings(store){return new Promise(function(resolve,reject){if(!settingsUrl){reject();return;}var timeout;var merchantReceived=null;var shopReceived=null;/**
11
+ * Evaluates if completed.
12
+ */var evaluateEnd=function evaluateEnd(){if(!merchantReceived&&merchantSettingsUrl||!shopReceived){return;}clearTimeout(timeout);timeout=null;resolve();};// Add the callbacks for the JSONP
13
+ window.setShopSettings=function(settings){store.dispatch(receiveShopSettings(settings));shopReceived=true;evaluateEnd();};window.setMerchantSettings=function(settings){store.dispatch(receiveMerchantSettings(settings));merchantReceived=true;evaluateEnd();};// Error handling
14
+ injectScript('shop-settings-jsonp',settingsUrl,function(error){withScope(function(scope){scope.setLevel(SentrySeverity.Error);scope.setExtra('settingsUrl',settingsUrl);captureMessage('Fetching shop settings failed');});clearTimeout(timeout);timeout=null;store.dispatch(errorShopSettings(error));reject();});if(merchantSettingsUrl){injectScript('merchant-settings-jsonp',merchantSettingsUrl,function(){withScope(function(scope){scope.setLevel(SentrySeverity.Error);scope.setExtra('settingsUrl',merchantSettingsUrl);captureMessage('Fetching merchant settings failed');});clearTimeout(timeout);timeout=null;reject();});}timeout=setTimeout(function(){withScope(function(scope){scope.setLevel(SentrySeverity.Warning);scope.setExtra('settingsUrl',settingsUrl);scope.setExtra('timeout',REQUEST_TIMEOUT);captureMessage('Fetching shop settings took too long');});},REQUEST_TIMEOUT);});};/**
2
15
  *
3
16
  * @param {Object} locales An object with locales.
4
17
  * @param {Function} reducers The reducers from the theme.
5
18
  * @param {Array} subscribers The subscribers to the streams middleware.
6
- */export var initialize=/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(locales,reducers,subscribers){var store;return _regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:i18n.init({locales:locales,lang:process.env.LOCALE,currencyLocale:currencyLocale});store=configureStore(reducers,subscribers);_context.prev=2;_context.next=5;return store.dispatch(fetchClientInformation());case 5:_context.next=9;break;case 7:_context.prev=7;_context.t0=_context["catch"](2);case 9:// Save the base url inside the configuration collection before any other code can apply
19
+ */export var initialize=/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(locales,reducers,subscribers){var store;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:moment.locale(process.env.LOCALE);if(isDev){// Inject an object to the window that can be used to check if the PWA is running in dev mode
20
+ window.SGConnectDev={// Indicates the the current dev app is running in a browser - not in the real app
21
+ isDevBrowser:!hasWebBridge()&&!hasSGJavaScriptBridge(),// Indicates that the PWA is running in a dev environment
22
+ isDev:isDev};}i18n.init({locales:locales,lang:process.env.LOCALE,currencyLocale:currencyLocale});store=configureStore(reducers,subscribers);_context.prev=4;_context.next=7;return store.dispatch(fetchClientInformation());case 7:_context.next=11;break;case 9:_context.prev=9;_context.t0=_context["catch"](4);case 11:// Save the base url inside the configuration collection before any other code can apply
7
23
  // url manipulations.
8
- configuration.set(CONFIGURATION_COLLECTION_KEY_BASE_URL,getAppBaseUrl());store.dispatch(appWillInit("".concat(window.location.pathname).concat(window.location.search)));// Execute all registered handlers from the AppInitialization collection
9
- _context.next=13;return appInitialization.initialize({dispatch:store.dispatch,getState:store.getState});case 13:store.dispatch(appWillStart("".concat(window.location.pathname).concat(window.location.search)));return _context.abrupt("return",{store:store});case 15:case"end":return _context.stop();}}},_callee,null,[[2,7]]);}));return function initialize(_x,_x2,_x3){return _ref.apply(this,arguments);};}();
24
+ configuration.set(CONFIGURATION_COLLECTION_KEY_BASE_URL,getAppBaseUrl());store.dispatch(appWillInit("".concat(window.location.pathname).concat(window.location.search)));_context.prev=13;_context.next=16;return fetchSettings(store);case 16:_context.next=20;break;case 18:_context.prev=18;_context.t1=_context["catch"](13);case 20:_context.next=22;return appInitialization.initialize({dispatch:store.dispatch,getState:store.getState});case 22:store.dispatch(appWillStart("".concat(window.location.pathname).concat(window.location.search)));return _context.abrupt("return",{store:store});case 24:case"end":return _context.stop();}},_callee,null,[[4,9],[13,18]]);}));return function initialize(_x,_x2,_x3){return _ref.apply(this,arguments);};}();
@@ -1,18 +1,18 @@
1
- function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj;}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;},_typeof(obj);}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);Object.defineProperty(Constructor,"prototype",{writable:false});return Constructor;}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}});Object.defineProperty(subClass,"prototype",{writable:false});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 _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget);}else{result=Super.apply(this,arguments);}return _possibleConstructorReturn(this,result);};}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}else if(call!==void 0){throw new TypeError("Derived constructors may only return object or undefined");}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 _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true;}catch(e){return false;}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}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,{Component}from'react';import PropTypes from'prop-types';import appConfig from'@shopgate/pwa-common/helpers/config';import{APP_EVENT_VIEW_WILL_APPEAR,APP_EVENT_VIEW_WILL_DISAPPEAR}from'@shopgate/pwa-core/constants/AppEvents';import event from'@shopgate/pwa-core/classes/Event';import AppContext from"../contexts/AppContext";/**
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 _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,{Component}from'react';import PropTypes from'prop-types';import appConfig from'@shopgate/pwa-common/helpers/config';import{APP_EVENT_VIEW_WILL_APPEAR,APP_EVENT_VIEW_WILL_DISAPPEAR}from'@shopgate/pwa-core/constants/AppEvents';import event from'@shopgate/pwa-core/classes/Event';import AppContext from"../contexts/AppContext";/**
2
2
  * The AppProvider component.
3
- */var AppProvider=/*#__PURE__*/function(_Component){_inherits(AppProvider,_Component);var _super=_createSuper(AppProvider);/**
4
- * @param {Object} props The component props.
5
- */function AppProvider(props){var _this;_classCallCheck(this,AppProvider);_this=_super.call(this,props);_defineProperty(_assertThisInitialized(_this),"setVisible",function(){_this.setIsVisible(true);});_defineProperty(_assertThisInitialized(_this),"setHidden",function(){_this.setIsVisible(false);});_this.state={isVisible:true};event.addCallback(APP_EVENT_VIEW_WILL_APPEAR,_this.setVisible);event.addCallback(APP_EVENT_VIEW_WILL_DISAPPEAR,_this.setHidden);return _this;}/**
3
+ */var AppProvider=/*#__PURE__*/function(_Component){function AppProvider(props){var _this2;_classCallCheck(this,AppProvider);_this2=_callSuper(this,AppProvider,[props]);/**
4
+ * Sets the isVisible state to TRUE.
5
+ */_defineProperty(_this2,"setVisible",function(){_this2.setIsVisible(true);});/**
6
+ * Sets the isVisible state to TRUE.
7
+ */_defineProperty(_this2,"setHidden",function(){_this2.setIsVisible(false);});_this2.state={isVisible:true};event.addCallback(APP_EVENT_VIEW_WILL_APPEAR,_this2.setVisible);event.addCallback(APP_EVENT_VIEW_WILL_DISAPPEAR,_this2.setHidden);return _this2;}/**
6
8
  * Removes the event listeners when the component unmounts.
7
- */_createClass(AppProvider,[{key:"componentWillUnmount",value:function componentWillUnmount(){event.removeCallback(APP_EVENT_VIEW_WILL_APPEAR,this.setVisible);event.removeCallback(APP_EVENT_VIEW_WILL_DISAPPEAR,this.setHidden);}/**
9
+ */_inherits(AppProvider,_Component);return _createClass(AppProvider,[{key:"componentWillUnmount",value:function componentWillUnmount(){event.removeCallback(APP_EVENT_VIEW_WILL_APPEAR,this.setVisible);event.removeCallback(APP_EVENT_VIEW_WILL_DISAPPEAR,this.setHidden);}/**
8
10
  * Returns the context value to be passed to consumers.
9
11
  * @returns {Object}
10
- */},{key:"provided",get:function get(){return{appConfig:appConfig,isVisible:this.state.isVisible,setIsVisible:this.setIsVisible};}/**
11
- * Sets the isVisible state to TRUE.
12
- */},{key:"setIsVisible",value:/**
12
+ */},{key:"provided",get:function get(){return{appConfig:appConfig,isVisible:this.state.isVisible,setIsVisible:this.setIsVisible};}},{key:"setIsVisible",value:/**
13
13
  * Sets the isVisible state. It indicates if Engage is visible,
14
14
  * or another WebView is presented to the user.
15
15
  * @param {boolean} value The new value
16
16
  */function setIsVisible(value){this.setState({isVisible:value});}/**
17
17
  * @returns {JSX}
18
- */},{key:"render",value:function render(){return/*#__PURE__*/React.createElement(AppContext.Provider,{value:this.provided},this.props.children);}}]);return AppProvider;}(Component);export default AppProvider;
18
+ */},{key:"render",value:function render(){return React.createElement(AppContext.Provider,{value:this.provided},this.props.children);}}]);}(Component);export default AppProvider;
@@ -0,0 +1,15 @@
1
+ import React,{useMemo}from'react';import PropTypes from'prop-types';import{ThemeContext as LegacyThemeContext}from'@shopgate/pwa-common/context';import{ThemeResourcesContext}from"../contexts";/**
2
+ * @typedef {Object<string, React.ComponentType<any>>} ComponentMap
3
+ */ /**
4
+ * ThemeResourcesProvider component.
5
+ * @param {Object} props The component props.
6
+ * @param {ComponentMap} props.widgets Mapping object with all available widget components for the
7
+ * theme. Key is the widget code, value is the widget component.
8
+ * @param {ComponentMap} props.components Object with shared theme components. Can be used by
9
+ * extensions the get unified visual presentation.
10
+ * @param {ComponentMap} [props.legacyThemeAPI] Object with shared theme components. Can be used by
11
+ * extensions the get unified visual presentation.
12
+ * Kept for backward compatibility with existing extensions which use the deprecated `ThemeContext`.
13
+ * @param {React.ReactNode} props.children The component children.
14
+ * @returns {JSX.Element}
15
+ */var ThemeResourcesProvider=function ThemeResourcesProvider(_ref){var widgets=_ref.widgets,components=_ref.components,legacyThemeAPI=_ref.legacyThemeAPI,children=_ref.children;var value=useMemo(function(){return{widgets:widgets,components:components};},[components,widgets]);return React.createElement(ThemeResourcesContext.Provider,{value:value},legacyThemeAPI?React.createElement(LegacyThemeContext.Provider,{value:legacyThemeAPI},children):children);};ThemeResourcesProvider.defaultProps={legacyThemeAPI:null};export default ThemeResourcesProvider;
@@ -0,0 +1 @@
1
+ export{default as LoadingProvider}from'@shopgate/pwa-common/providers/loading';export{default as LoadingContext}from'@shopgate/pwa-common/providers/loading/context';export{default as ToastProvider}from'@shopgate/pwa-common/providers/toast';export{default as ToastContext}from'@shopgate/pwa-common/providers/toast/context';export{default as AppProvider}from"./AppProvider";export{default as ThemeResourcesProvider}from"./ThemeResourcesProvider";
@@ -1 +1 @@
1
- export{default as app}from"./app";
1
+ import{combineReducers}from'redux';import config from"../config/config.reducers";import shopSettings from"./shopSettings";import merchantSettings from"./merchantSettings";export{default as app}from"./app";export var settings=combineReducers({config:config,shopSettings:shopSettings,merchantSettings:merchantSettings});
@@ -0,0 +1,6 @@
1
+ function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import{produce}from'immer';import appConfig from'@shopgate/pwa-common/helpers/config';import{RECEIVE_MERCHANT_SETTINGS,MERCHANT_SETTINGS_LOCATION_BASED_SHOPPING_ENABLED,MERCHANT_SETTINGS_SUBSTITUTION_PREFERENCES_ENABLED,MERCHANT_SETTINGS_RESTRICT_MULTI_LOCATION_ORDERS,MERCHANT_SETTINGS_DEFAULT_CURRENCY,MERCHANT_SETTINGS_ENABLE_WEB_INDEXING}from"../constants";var _appConfig$locales=appConfig.locales,_appConfig$locales2=_appConfig$locales===void 0?{}:_appConfig$locales,_appConfig$locales2$c=_appConfig$locales2.currency,currency=_appConfig$locales2$c===void 0?null:_appConfig$locales2$c;var defaultState=_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({},MERCHANT_SETTINGS_LOCATION_BASED_SHOPPING_ENABLED,false),MERCHANT_SETTINGS_SUBSTITUTION_PREFERENCES_ENABLED,false),MERCHANT_SETTINGS_RESTRICT_MULTI_LOCATION_ORDERS,false),MERCHANT_SETTINGS_DEFAULT_CURRENCY,currency),MERCHANT_SETTINGS_ENABLE_WEB_INDEXING,false);/**
2
+ * Stores the merchant settings.
3
+ * @param {Object} [state={}] The current state.
4
+ * @param {Object} action The action object.
5
+ * @returns {Object} The new state.
6
+ */export default function merchantSettings(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:defaultState;var action=arguments.length>1?arguments[1]:undefined;/* eslint-disable no-param-reassign */var producer=produce(function(draft){switch(action.type){case RECEIVE_MERCHANT_SETTINGS:{Object.keys(action.settings).forEach(function(key){draft[key]=action.settings[key];});break;}default:break;}});/* eslint-enable no-param-reassign */return producer(state);}
@@ -0,0 +1,6 @@
1
+ var _defaultState;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 _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{produce}from'immer';import{SORT_RELEVANCE}from'@shopgate/pwa-common/constants/DisplayOptions';import{RECEIVE_SHOP_SETTINGS,ERROR_SHOP_SETTINGS,SHOP_SETTING_GOOGLE_SITE_VERIFICATION_CODE,SHOP_SETTING_CART_SUPPLEMENTAL_CONTENT,SHOP_SETTING_ORDER_SUPPLEMENTAL_CONTENT,SHOP_SETTING_SHOW_SHOP_LOGO_IN_WEB,SHOP_SETTING_SHOW_SHOP_LOGO_IN_APP,SHOP_SETTING_PRODUCTS_SORT_ORDER,SHOP_SETTING_IMAGES,SHOP_SETTING_IMAGES_PRODUCT_PLACEHOLDER,SHOP_SETTING_IMAGES_CATEGORY_PLACEHOLDER,SHOP_SETTING_IMAGES_FAVICON,SHOP_SETTING_NUMBER_OF_ADDRESS_LINES,SHOP_SETTING_WISHLIST_ITEM_QUANTITY_ENABLED,SHOP_SETTING_WISHLIST_ITEM_NOTES_ENABLED,SHOP_SETTING_LOAD_WISHLIST_ON_APP_START_ENABLED,SHOP_SETTING_SHOW_WISHLIST_ITEMS_COUNT_BADGE}from"../constants";var defaultState=(_defaultState={},_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defaultState,SHOP_SETTING_GOOGLE_SITE_VERIFICATION_CODE,null),SHOP_SETTING_CART_SUPPLEMENTAL_CONTENT,null),SHOP_SETTING_ORDER_SUPPLEMENTAL_CONTENT,null),SHOP_SETTING_SHOW_SHOP_LOGO_IN_WEB,true),SHOP_SETTING_SHOW_SHOP_LOGO_IN_APP,true),SHOP_SETTING_PRODUCTS_SORT_ORDER,SORT_RELEVANCE),SHOP_SETTING_NUMBER_OF_ADDRESS_LINES,2),SHOP_SETTING_IMAGES,_defineProperty(_defineProperty(_defineProperty({},SHOP_SETTING_IMAGES_PRODUCT_PLACEHOLDER,null),SHOP_SETTING_IMAGES_CATEGORY_PLACEHOLDER,null),SHOP_SETTING_IMAGES_FAVICON,null)),SHOP_SETTING_WISHLIST_ITEM_QUANTITY_ENABLED,false),SHOP_SETTING_WISHLIST_ITEM_NOTES_ENABLED,false),_defineProperty(_defineProperty(_defaultState,SHOP_SETTING_LOAD_WISHLIST_ON_APP_START_ENABLED,true),SHOP_SETTING_SHOW_WISHLIST_ITEMS_COUNT_BADGE,true));/**
2
+ * Stores the product locations by the location code.
3
+ * @param {Object} [state={}] The current state.
4
+ * @param {Object} action The action object.
5
+ * @returns {Object} The new state.
6
+ */export default function shopSettings(){var state=arguments.length>0&&arguments[0]!==undefined?arguments[0]:defaultState;var action=arguments.length>1?arguments[1]:undefined;/* eslint-disable no-param-reassign */var producer=produce(function(draft){switch(action.type){case RECEIVE_SHOP_SETTINGS:{Object.keys(action.settings).forEach(function(key){draft[key]=action.settings[key];});break;}case ERROR_SHOP_SETTINGS:{draft=_extends({},defaultState,{},state);break;}default:break;}});/* eslint-enable no-param-reassign */return producer(state);}
@@ -1,4 +1,4 @@
1
- export*from"./app";// --------------- CLIENT --------------- //
1
+ export{getState as getShopSettingsState,makeGetShopSettingByKey,makeGetShopSettings,getProductImagePlaceholder,getCategoryImagePlaceholder,getFavicon,getNumberOfAddressLines,getGoogleSiteVerificationCode,getRegistrationMode,getWishlistItemQuantityEnabled,getWishlistItemNotesEnabled,getShowWishlistItemsCountBadge,getLoadWishlistOnAppStartEnabled}from"./shopSettings";export{getIsLocationBasedShopping,getFulfillmentSchedulingEnabled,getRestrictMultiLocationOrders,getDefaultCurrency,getEnableWebIndexing,getProductShowAlternativeLocation,getProductListShowInventory}from"./merchantSettings";export*from"../config/config.selectors";export*from"./app";// --------------- CLIENT --------------- //
2
2
  export*from'@shopgate/pwa-common/selectors/client';// --------------- ROUTER --------------- //
3
3
  export*from'@shopgate/pwa-common/selectors/router';export*from'@shopgate/pwa-common/selectors/history';// --------------- URL --------------- //
4
4
  export*from'@shopgate/pwa-common/selectors/url';// --------------- MENU --------------- //
@@ -0,0 +1,10 @@
1
+ import{createSelector}from'reselect';import{MERCHANT_SETTINGS_LOCATION_BASED_SHOPPING_ENABLED,MERCHANT_SETTINGS_SUBSTITUTION_PREFERENCES_ENABLED,MERCHANT_SETTINGS_CUSTOMER_ATTRIBUTES,MERCHANT_SETTINGS_FULFILLMENT_SCHEDULED_ENABLED,MERCHANT_SETTINGS_RESTRICT_MULTI_LOCATION_ORDERS,MERCHANT_SETTINGS_DEFAULT_CURRENCY,MERCHANT_SETTINGS_ENABLE_WEB_INDEXING,MERCHANT_SETTINGS_PRODUCT_SHOW_ALTERNATIVE_LOCATION,MERCHANT_SETTINGS_PRODUCTLIST_SHOW_INVENTORY}from"../constants";/**
2
+ * Retrieves the merchantSettings state from the store.
3
+ * @param {Object} state The current application state.
4
+ * @return {Object} The locations state.
5
+ */var getState=function getState(state){var _state$settings;return(state===null||state===void 0?void 0:(_state$settings=state.settings)===null||_state$settings===void 0?void 0:_state$settings.merchantSettings)||{};};/**
6
+ * Creates a selector to retrieve a single merchant setting.
7
+ * @param {string} key The key of the merchant setting
8
+ * @param {*} [fallback=null] The fallback value when no value can be determined.
9
+ * @returns {Function}
10
+ */var makeGetMerchantSettingByKey=function makeGetMerchantSettingByKey(key){var fallback=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;return createSelector(getState,function(state){return typeof(state===null||state===void 0?void 0:state[key])!=='undefined'?state===null||state===void 0?void 0:state[key]:fallback;});};export var getIsLocationBasedShopping=makeGetMerchantSettingByKey(MERCHANT_SETTINGS_LOCATION_BASED_SHOPPING_ENABLED,false);export var getSubstitutionPreferencesEnabled=makeGetMerchantSettingByKey(MERCHANT_SETTINGS_SUBSTITUTION_PREFERENCES_ENABLED,false);export var getMerchantCustomerAttributes=makeGetMerchantSettingByKey(MERCHANT_SETTINGS_CUSTOMER_ATTRIBUTES,[]);export var getFulfillmentSchedulingEnabled=makeGetMerchantSettingByKey(MERCHANT_SETTINGS_FULFILLMENT_SCHEDULED_ENABLED,false);export var getRestrictMultiLocationOrders=makeGetMerchantSettingByKey(MERCHANT_SETTINGS_RESTRICT_MULTI_LOCATION_ORDERS,false);export var getDefaultCurrency=makeGetMerchantSettingByKey(MERCHANT_SETTINGS_DEFAULT_CURRENCY);export var getEnableWebIndexing=makeGetMerchantSettingByKey(MERCHANT_SETTINGS_ENABLE_WEB_INDEXING,false);export var getProductShowAlternativeLocation=makeGetMerchantSettingByKey(MERCHANT_SETTINGS_PRODUCT_SHOW_ALTERNATIVE_LOCATION,false);export var getProductListShowInventory=makeGetMerchantSettingByKey(MERCHANT_SETTINGS_PRODUCTLIST_SHOW_INVENTORY,false);
@@ -0,0 +1,25 @@
1
+ import{createSelector}from'reselect';import{WISHLIST_MODE_PERSIST_ON_ADD,SHOP_SETTING_WISHLIST_MODE,SHOP_SETTING_IMAGES,SHOP_SETTING_IMAGES_PRODUCT_PLACEHOLDER,SHOP_SETTING_IMAGES_CATEGORY_PLACEHOLDER,SHOP_SETTING_IMAGES_FAVICON,SHOP_SETTING_NUMBER_OF_ADDRESS_LINES,SHOP_SETTING_GOOGLE_SITE_VERIFICATION_CODE,SHOP_SETTINGS_SHOW_CATEGORY_IMAGES,SHOP_SETTING_REGISTRATION_MODE,SHOP_SETTING_REGISTRATION_MODE_EXTENDED,SHOP_SETTING_LOAD_WISHLIST_ON_APP_START_ENABLED,SHOP_SETTING_WISHLIST_ITEM_QUANTITY_ENABLED,SHOP_SETTING_WISHLIST_ITEM_NOTES_ENABLED,SHOP_SETTING_SHOW_WISHLIST_ITEMS_COUNT_BADGE}from"../constants/shopSettings";/**
2
+ * Retrieves the shopSettings state from the store.
3
+ * @param {Object} state The current application state.
4
+ * @return {Object} The locations state.
5
+ */export var getState=function getState(state){var _state$settings;return(state===null||state===void 0?void 0:(_state$settings=state.settings)===null||_state$settings===void 0?void 0:_state$settings.shopSettings)||{};};/**
6
+ * Creates a selector to retrieve a single shop setting.
7
+ * @param {string} key The key of the shop setting
8
+ * @param {*} [fallback=null] The fallback value when no value can be determined.
9
+ * @returns {Function}
10
+ */export var makeGetShopSettingByKey=function makeGetShopSettingByKey(key){var fallback=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;return createSelector(getState,function(state){return typeof(state===null||state===void 0?void 0:state[key])!=='undefined'?state===null||state===void 0?void 0:state[key]:fallback;});};/**
11
+ * Creates a selector to retrieve multiple shop setting.
12
+ * @param {Array} [keys=[]] Optional keys to filter.
13
+ * @returns {Function}
14
+ */export var makeGetShopSettings=function makeGetShopSettings(){var keys=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];return createSelector(getState,function(state){var result=Object.keys(state).filter(function(key){if(Array.isArray(keys)&&keys.length>0){return keys.includes(key);}return true;}).reduce(function(acc,key){if(state===null||state===void 0?void 0:state[key]){acc[key]=state[key];}return acc;},{});return result;});};/** Selects the current wishlist mode */export var getWishlistMode=makeGetShopSettingByKey(SHOP_SETTING_WISHLIST_MODE,WISHLIST_MODE_PERSIST_ON_ADD);var getShopSettingImages=makeGetShopSettingByKey(SHOP_SETTING_IMAGES,{});/**
15
+ * Selects the placeholder image for products
16
+ */export var getProductImagePlaceholder=createSelector(getShopSettingImages,function(images){return(images===null||images===void 0?void 0:images[SHOP_SETTING_IMAGES_PRODUCT_PLACEHOLDER])||null;});/**
17
+ * Selects the placeholder image for products
18
+ */export var getCategoryImagePlaceholder=createSelector(getShopSettingImages,function(images){return(images===null||images===void 0?void 0:images[SHOP_SETTING_IMAGES_CATEGORY_PLACEHOLDER])||null;});/**
19
+ * Selects the placeholder image for products
20
+ */export var getFavicon=createSelector(getShopSettingImages,function(images){return(images===null||images===void 0?void 0:images[SHOP_SETTING_IMAGES_FAVICON])||null;});/**
21
+ * Selects the number of address lines for registration / address forms
22
+ */export var getNumberOfAddressLines=makeGetShopSettingByKey(SHOP_SETTING_NUMBER_OF_ADDRESS_LINES,2);export var getGoogleSiteVerificationCode=makeGetShopSettingByKey(SHOP_SETTING_GOOGLE_SITE_VERIFICATION_CODE,'');export var getShowCategoryImages=makeGetShopSettingByKey(SHOP_SETTINGS_SHOW_CATEGORY_IMAGES,true);/**
23
+ * Creates a selector to retrieve the current active registration mode.
24
+ * When the selector returns "simple" the form will not contain any address related fields.
25
+ */export var getRegistrationMode=makeGetShopSettingByKey(SHOP_SETTING_REGISTRATION_MODE,SHOP_SETTING_REGISTRATION_MODE_EXTENDED);export var getWishlistItemQuantityEnabled=makeGetShopSettingByKey(SHOP_SETTING_WISHLIST_ITEM_QUANTITY_ENABLED,false);export var getWishlistItemNotesEnabled=makeGetShopSettingByKey(SHOP_SETTING_WISHLIST_ITEM_NOTES_ENABLED,false);export var getLoadWishlistOnAppStartEnabled=makeGetShopSettingByKey(SHOP_SETTING_LOAD_WISHLIST_ON_APP_START_ENABLED,true);export var getShowWishlistItemsCountBadge=createSelector(getLoadWishlistOnAppStartEnabled,makeGetShopSettingByKey(SHOP_SETTING_SHOW_WISHLIST_ITEMS_COUNT_BADGE,true),function(loadWishlistOnAppStartEnabled,showWishlistItemsCountBadge){return loadWishlistOnAppStartEnabled?showWishlistItemsCountBadge:false;});
@@ -1,4 +1,4 @@
1
- function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}function _toArray(arr){return _arrayWithHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i];}return arr2;}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter);}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}import{Observable}from'rxjs/Observable';import{ACTION_RESET}from'@virtuous/conductor';import{main$}from'@shopgate/pwa-common/streams/main';import{routeDidEnter$}from'@shopgate/pwa-common/streams';import{routeDidEnter}from'@shopgate/pwa-common/action-creators';import{getRouterStack}from'@shopgate/engage/core/selectors';import{RELOAD_APP}from"../constants";import{historyReset}from"../actions";/**
1
+ function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}function _toArray(arr){return _arrayWithHoles(arr)||_iterableToArray(arr)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance");}function _iterableToArray(iter){if(Symbol.iterator in Object(iter)||Object.prototype.toString.call(iter)==="[object Arguments]")return Array.from(iter);}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}import{Observable}from'rxjs/Observable';import{ACTION_RESET}from'@virtuous/conductor';import{main$}from'@shopgate/pwa-common/streams/main';import{routeDidEnter$}from'@shopgate/pwa-common/streams';import{routeDidEnter}from'@shopgate/pwa-common/action-creators';import{getRouterStack}from'@shopgate/engage/core/selectors';import{RELOAD_APP}from"../constants";import{historyReset}from"../actions";/**
2
2
  * Gets triggered when the app is supposed to be reloaded
3
3
  * @type {Observable}
4
4
  */export var reloadApp$=main$.filter(function(_ref){var action=_ref.action;return action.type===RELOAD_APP;}).switchMap(function(params){var dispatch=params.dispatch,getState=params.getState;var _getRouterStack=getRouterStack(getState()),_getRouterStack2=_toArray(_getRouterStack),initialRoute=_getRouterStack2[0],otherRoutes=_getRouterStack2.slice(1);if(!otherRoutes.length){// When the initial route is the only route inside the router stack, routeDidEnter$ will
@@ -1,4 +1,4 @@
1
- export*from"./app";export*from"./appPermissions";export*from'@shopgate/pwa-common/streams/main';export*from'@shopgate/pwa-common/streams/error';// --------------- APP --------------- //
1
+ export*from"./app";export*from"./appPermissions";export*from"./optIns";export*from'@shopgate/pwa-common/streams/main';export*from'@shopgate/pwa-common/streams/error';export*from'@shopgate/pwa-common/streams/view';// --------------- APP --------------- //
2
2
  export*from'@shopgate/pwa-common/streams/app';// --------------- CLIENT --------------- //
3
3
  export*from'@shopgate/pwa-common/streams/client';// --------------- ROUTER --------------- //
4
4
  export*from'@shopgate/pwa-common/streams/router';