@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
@@ -1,10 +1,10 @@
1
- import{appConfig}from'@shopgate/engage';import{UPDATE_COOKIE_CONSENT,COOKIE_CONSENT_HANDLED,HIDE_COOKIE_CONSENT_MODAL,SHOW_COOKIE_CONSENT_MODAL}from"../constants";/**
1
+ import{appConfig}from'@shopgate/engage';import{UPDATE_COOKIE_CONSENT,COOKIE_CONSENT_HANDLED,HIDE_COOKIE_CONSENT_MODAL,SHOW_COOKIE_CONSENT_MODAL}from"../constants";var _appConfig$cookieCons=appConfig.cookieConsent,_appConfig$cookieCons2=_appConfig$cookieCons===void 0?{}:_appConfig$cookieCons,showComfortCookiesToggle=_appConfig$cookieCons2.showComfortCookiesToggle;/**
2
2
  * action to be dispatched when the cookie consent modal should be shown
3
3
  * @returns {Function}
4
4
  */export var showCookieConsentModal=function showCookieConsentModal(){return{type:SHOW_COOKIE_CONSENT_MODAL};};/**
5
5
  * action to be dispatched when the cookie consent modal should be hidden
6
6
  * @returns {Function}
7
- */export var hideCookieConsentModal=function hideCookieConsentModal(){return{type:HIDE_COOKIE_CONSENT_MODAL};};var _appConfig$cookieCons=appConfig.cookieConsent;_appConfig$cookieCons=_appConfig$cookieCons===void 0?{}:_appConfig$cookieCons;var showComfortCookiesToggle=_appConfig$cookieCons.showComfortCookiesToggle;/**
7
+ */export var hideCookieConsentModal=function hideCookieConsentModal(){return{type:HIDE_COOKIE_CONSENT_MODAL};};/**
8
8
  * action to be dispatched when the user accepted the selected cookies in the custom modal
9
9
  * @param {Object} params Action params
10
10
  * @param {boolean} [params.comfortCookiesAccepted=false] whether this cookie type was accepted
@@ -1,8 +1,20 @@
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{historyPush,grantAppTrackingTransparencyPermission}from'@shopgate/engage/core/actions';import{updateCookieConsent,hideCookieConsentModal}from"../action-creators";import{PRIVACY_SETTINGS_PATTERN}from"../constants";/**
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{historyPush,grantAppTrackingTransparencyPermission}from'@shopgate/engage/core/actions';import{softOptInSelected}from'@shopgate/engage/core/action-creators';import{updateCookieConsent,hideCookieConsentModal}from"../action-creators";import{PRIVACY_SETTINGS_PATTERN}from"../constants";import{getCookieConsentTrackingMeta,getIsCookieConsentModalVisible,getIsCookieConsentHandled}from"../selectors/cookieConsent";/**
2
+ * Broadcasts updates of the cookie consent states and dispatches related tracking events.
3
+ * @param {Object} update Updated cookie consent states
4
+ * @param {boolean} update.comfortCookiesAccepted Whether comfort cookies
5
+ * are accepted.
6
+ * @param {boolean} update.statisticsCookiesAccepted Whether statistics cookies
7
+ * are accepted.
8
+ * @returns {Function}
9
+ */var updateCookieConsentLocal=function updateCookieConsentLocal(update){return function(dispatch,getState){var comfortCookiesAccepted=update.comfortCookiesAccepted,statisticsCookiesAccepted=update.statisticsCookiesAccepted;var state=getState();// Whether the update was triggered by a button from within the modal
10
+ var updateFromModal=getIsCookieConsentModalVisible(state);// Whether the cookie consent was already handled when the update came in
11
+ var cookieConsentHandled=getIsCookieConsentHandled(state);if(!cookieConsentHandled){// Prepare tracking events when cookie consent wasn't handled yet
12
+ var meta=getCookieConsentTrackingMeta(state,{allowComfort:comfortCookiesAccepted,allowStatistics:statisticsCookiesAccepted});var selection='manage';if(updateFromModal){selection=comfortCookiesAccepted&&statisticsCookiesAccepted?'approvedAll':'deniedAll';}dispatch(softOptInSelected({selection:selection,meta:meta}));}// Broadcast the actual state update
13
+ dispatch(updateCookieConsent(update));};};/**
2
14
  * action to be dispatched when the user accepted all cookies in the custom modal
3
15
  * and native modal should be triggered for setting the permission
4
16
  * @returns {Function}
5
- */export var acceptAllCookies=function acceptAllCookies(){return/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(dispatch){return _regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:_context.next=2;return dispatch(grantAppTrackingTransparencyPermission());case 2:dispatch(updateCookieConsent({comfortCookiesAccepted:true,statisticsCookiesAccepted:true}));dispatch(hideCookieConsentModal());case 4:case"end":return _context.stop();}}},_callee);}));return function(_x){return _ref.apply(this,arguments);};}();};/**
17
+ */export var acceptAllCookies=function acceptAllCookies(){return(/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(dispatch,getState){var meta;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:meta=getCookieConsentTrackingMeta(getState());_context.next=3;return dispatch(grantAppTrackingTransparencyPermission({meta:meta}));case 3:dispatch(updateCookieConsentLocal({comfortCookiesAccepted:true,statisticsCookiesAccepted:true}));dispatch(hideCookieConsentModal());case 5:case"end":return _context.stop();}},_callee);}));return function(_x,_x2){return _ref.apply(this,arguments);};}());};/**
6
18
  * action to be dispatched when the user accepted the selected cookies in the custom modal
7
19
  * and native modal should be triggered for setting the permission
8
20
  * @param {Object} params Action params
@@ -11,11 +23,11 @@ import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGenera
11
23
  * @param {boolean|null} params.statisticsCookiesAccepted whether this cookie type was accepted
12
24
  * by user
13
25
  * @returns {Function}
14
- */export var acceptSelectedCookies=function acceptSelectedCookies(_ref2){var comfortCookiesAccepted=_ref2.comfortCookiesAccepted,statisticsCookiesAccepted=_ref2.statisticsCookiesAccepted;return/*#__PURE__*/function(){var _ref3=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(dispatch){return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1){switch(_context2.prev=_context2.next){case 0:if(!(comfortCookiesAccepted||statisticsCookiesAccepted)){_context2.next=3;break;}_context2.next=3;return dispatch(grantAppTrackingTransparencyPermission());case 3:dispatch(updateCookieConsent({comfortCookiesAccepted:comfortCookiesAccepted,statisticsCookiesAccepted:statisticsCookiesAccepted}));dispatch(hideCookieConsentModal());case 5:case"end":return _context2.stop();}}},_callee2);}));return function(_x2){return _ref3.apply(this,arguments);};}();};/**
26
+ */export var acceptSelectedCookies=function acceptSelectedCookies(_ref2){var comfortCookiesAccepted=_ref2.comfortCookiesAccepted,statisticsCookiesAccepted=_ref2.statisticsCookiesAccepted;return(/*#__PURE__*/function(){var _ref3=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(dispatch,getState){var meta;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:if(!(comfortCookiesAccepted||statisticsCookiesAccepted)){_context2.next=4;break;}meta=getCookieConsentTrackingMeta(getState());_context2.next=4;return dispatch(grantAppTrackingTransparencyPermission({meta:meta}));case 4:dispatch(updateCookieConsentLocal({comfortCookiesAccepted:comfortCookiesAccepted,statisticsCookiesAccepted:statisticsCookiesAccepted}));dispatch(hideCookieConsentModal());case 6:case"end":return _context2.stop();}},_callee2);}));return function(_x3,_x4){return _ref3.apply(this,arguments);};}());};/**
15
27
  * action to be dispatched when the user selected only the required cookies in the custom modal
16
28
  * and native modal should be triggered for setting the permission
17
29
  * @returns {Function}
18
- */export var acceptRequiredCookies=function acceptRequiredCookies(){return function(dispatch){dispatch(updateCookieConsent({comfortCookiesAccepted:false,statisticsCookiesAccepted:false}));dispatch(hideCookieConsentModal());};};/**
30
+ */export var acceptRequiredCookies=function acceptRequiredCookies(){return function(dispatch){dispatch(updateCookieConsentLocal({comfortCookiesAccepted:false,statisticsCookiesAccepted:false}));dispatch(hideCookieConsentModal());};};/**
19
31
  * action to be dispatched when the user opted to configure cookie settings in the custom modal
20
32
  * @returns {Function}
21
- */export var openPrivacySettings=function openPrivacySettings(){return function(dispatch){dispatch(historyPush({pathname:PRIVACY_SETTINGS_PATTERN}));dispatch(hideCookieConsentModal());};};
33
+ */export var openPrivacySettings=function openPrivacySettings(){return function(dispatch){dispatch(historyPush({pathname:PRIVACY_SETTINGS_PATTERN}));};};
@@ -1,8 +1,6 @@
1
- import{connect}from'react-redux';import{getIsCookieConsentModalVisible}from"../../selectors/cookieConsent";import{acceptAllCookies,acceptRequiredCookies,openPrivacySettings}from"../../actions";/**
2
- * Maps the contents of the state to the component props.
3
- * @param {Object} state The current application state.
1
+ import{connect}from'react-redux';import{makeGetPrivacyPolicyLink}from'@shopgate/engage/page/selectors';import{getIsCookieConsentModalVisible}from"../../selectors/cookieConsent";import{acceptAllCookies,acceptRequiredCookies,openPrivacySettings}from"../../actions";/**
4
2
  * @return {Object} The extended component props.
5
- */var mapStateToProps=function mapStateToProps(state){return{isCookieConsentModalVisible:getIsCookieConsentModalVisible(state)};};/**
3
+ */var makeMapStateToProps=function makeMapStateToProps(){var getPrivacyPolicyLink=makeGetPrivacyPolicyLink();return function(state){return{isCookieConsentModalVisible:getIsCookieConsentModalVisible(state),privacyPolicyLink:getPrivacyPolicyLink(state)};};};/**
6
4
  * Connects the dispatch function to a callable function in the props.
7
5
  * @return {Object} The extended component props.
8
- */var mapDispatchToProps={acceptAllCookies:acceptAllCookies,acceptRequiredCookies:acceptRequiredCookies,openPrivacySettings:openPrivacySettings};export default connect(mapStateToProps,mapDispatchToProps);
6
+ */var mapDispatchToProps={acceptAllCookies:acceptAllCookies,acceptRequiredCookies:acceptRequiredCookies,openPrivacySettings:openPrivacySettings};export default connect(makeMapStateToProps,mapDispatchToProps);
@@ -1,9 +1,6 @@
1
- import React,{useMemo}from'react';import PropTypes from'prop-types';import{Grid,I18n,Button,Modal,Link}from'@shopgate/engage/components';import{appConfig}from'@shopgate/engage';import{PRIVACY_PATH}from'@shopgate/engage/page';import classNames from'classnames';import connect from"./connector";import cookieImage from"./tracking-opt-in.svg";import styles from"./style";/**
1
+ import React,{useMemo,useCallback}from'react';import PropTypes from'prop-types';import throttle from'lodash/throttle';import{Grid,I18n,Button,Modal,Link,ConditionalWrapper}from'@shopgate/engage/components';import{appConfig}from'@shopgate/engage';import classNames from'classnames';import connect from"./connector";import cookieImage from"./tracking-opt-in.svg";import styles from"./style";import{svgToDataUrl}from"../../../core";/**
2
2
  * The cookie consent modal component.
3
3
  * @param {Object} props The component props.
4
4
  * @returns {JSX.Element}
5
- */var CookieConsentModal=function CookieConsentModal(_ref){var isCookieConsentModalVisible=_ref.isCookieConsentModalVisible,acceptAllCookies=_ref.acceptAllCookies,acceptRequiredCookies=_ref.acceptRequiredCookies,openPrivacySettings=_ref.openPrivacySettings;var _appConfig$cookieCons=appConfig.cookieConsent;_appConfig$cookieCons=_appConfig$cookieCons===void 0?{}:_appConfig$cookieCons;var modalMessage=_appConfig$cookieCons.modalMessage,modalTitle=_appConfig$cookieCons.modalTitle,modalButtonConfigureSettings=_appConfig$cookieCons.modalButtonConfigureSettings,modalButtonOnlyRequired=_appConfig$cookieCons.modalButtonOnlyRequired,modalButtonAcceptAll=_appConfig$cookieCons.modalButtonAcceptAll,modalImageURL=_appConfig$cookieCons.modalImageURL,modalImageSVG=_appConfig$cookieCons.modalImageSVG,showRequiredCookiesButton=_appConfig$cookieCons.showRequiredCookiesButton;var imageSRC=useMemo(function(){if(!modalImageURL&&!modalImageSVG){return cookieImage;}if(modalImageURL){return modalImageURL;}// if SVG overwrite configured: create data url
6
- try{// encode SVG string to UTF-8 byte array to handle non-Latin1 characters
7
- // (e.g. Unicode characters like emojis)
8
- var utf8Encoder=new TextEncoder();var svgBytes=utf8Encoder.encode(modalImageSVG);// Convert the byte array to a Base64 string
9
- var base64Svg=btoa(String.fromCharCode.apply(null,svgBytes));return"data:image/svg+xml;base64,".concat(base64Svg);}catch(e){return cookieImage;}},[modalImageSVG,modalImageURL]);if(!isCookieConsentModalVisible){return null;}return/*#__PURE__*/React.createElement(Modal,{isOpened:isCookieConsentModalVisible,classes:{content:styles.modalContent,layout:styles.modalLayout}},/*#__PURE__*/React.createElement(Grid,{component:"div",className:classNames(styles.container,'cookie-consent-modal__container'),role:"alertdialog","aria-modal":true,"aria-labelledby":"cookieConsentDialogTitle","aria-describedby":"cookieConsentDialogMessage"},/*#__PURE__*/React.createElement(Grid.Item,{component:"div",className:styles.item},/*#__PURE__*/React.createElement("img",{src:imageSRC,className:classNames(styles.image,'cookie-consent-modal__image'),alt:"","aria-hidden":"true"}),/*#__PURE__*/React.createElement(I18n.Text,{className:classNames(styles.title,'cookie-consent-modal__title'),string:modalTitle||'cookieConsentModal.title',id:"cookieConsentDialogTitle"}),/*#__PURE__*/React.createElement(I18n.Text,{string:modalMessage||'cookieConsentModal.message',className:classNames('cookie-consent-modal__message'),acceptPlainTextWithPlaceholders:true,id:"cookieConsentDialogMessage"},/*#__PURE__*/React.createElement(I18n.Placeholder,{forKey:"privacyLink"},/*#__PURE__*/React.createElement(Link,{href:PRIVACY_PATH,tag:"span"},/*#__PURE__*/React.createElement(I18n.Text,{string:"cookieConsentModal.privacyText",className:styles.link})))),/*#__PURE__*/React.createElement(Grid.Item,{component:"div",className:styles.buttonWrapper},/*#__PURE__*/React.createElement(Button,{onClick:acceptAllCookies,type:"primary",className:classNames(styles.button,'cookie-consent-modal__button-accept-all')},/*#__PURE__*/React.createElement(I18n.Text,{string:modalButtonAcceptAll||'cookieConsentModal.buttonAcceptAll'})),showRequiredCookiesButton?/*#__PURE__*/React.createElement(Button,{onClick:acceptRequiredCookies,type:"simple",className:classNames(styles.button,'cookie-consent-modal__button-accept-required')},/*#__PURE__*/React.createElement(I18n.Text,{string:modalButtonOnlyRequired||'cookieConsentModal.modalButtonOnlyRequired'})):null,/*#__PURE__*/React.createElement(Button,{onClick:openPrivacySettings,type:"simple",className:classNames(styles.button,'cookie-consent-modal__button-open-settings')},/*#__PURE__*/React.createElement(I18n.Text,{string:modalButtonConfigureSettings||'cookieConsentModal.buttonConfigure'}))))));};export default connect(CookieConsentModal);
5
+ */var CookieConsentModal=function CookieConsentModal(_ref){var isCookieConsentModalVisible=_ref.isCookieConsentModalVisible,acceptAllCookies=_ref.acceptAllCookies,acceptRequiredCookies=_ref.acceptRequiredCookies,openPrivacySettings=_ref.openPrivacySettings,privacyPolicyLink=_ref.privacyPolicyLink;var _appConfig$cookieCons=appConfig.cookieConsent,_appConfig$cookieCons2=_appConfig$cookieCons===void 0?{}:_appConfig$cookieCons,modalMessage=_appConfig$cookieCons2.modalMessage,modalTitle=_appConfig$cookieCons2.modalTitle,modalButtonConfigureSettings=_appConfig$cookieCons2.modalButtonConfigureSettings,modalButtonOnlyRequired=_appConfig$cookieCons2.modalButtonOnlyRequired,modalButtonAcceptAll=_appConfig$cookieCons2.modalButtonAcceptAll,modalImageURL=_appConfig$cookieCons2.modalImageURL,modalImageSVG=_appConfig$cookieCons2.modalImageSVG,showRequiredCookiesButton=_appConfig$cookieCons2.showRequiredCookiesButton;var imageSRC=useMemo(function(){if(!modalImageURL&&!modalImageSVG){return cookieImage;}if(modalImageURL){return modalImageURL;}return svgToDataUrl(modalImageSVG,cookieImage);},[modalImageSVG,modalImageURL]);// Button event handlers are throttled to prevent multiple clicks
6
+ var handleAcceptAllCookies=useCallback(throttle(acceptAllCookies,1000,{leading:true,trailing:false}),[]);var handleAcceptRequiredCookies=useCallback(throttle(acceptRequiredCookies,1000,{leading:true,trailing:false}),[]);var handleOpenPrivacySettings=useCallback(throttle(openPrivacySettings,1000,{leading:true,trailing:false}),[]);if(!isCookieConsentModalVisible){return null;}return React.createElement(Modal,{classes:{content:styles.modalContent,layout:styles.modalLayout}},React.createElement(Grid,{component:"div",className:classNames(styles.container,'cookie-consent-modal__container'),role:"alertdialog","aria-modal":true,"aria-labelledby":"cookieConsentDialogTitle","aria-describedby":"cookieConsentDialogMessage"},React.createElement(Grid.Item,{component:"div",className:styles.item},React.createElement("img",{src:imageSRC,className:classNames(styles.image,'cookie-consent-modal__image'),alt:"","aria-hidden":"true"}),React.createElement(I18n.Text,{className:classNames(styles.title,'cookie-consent-modal__title'),string:modalTitle||'cookieConsentModal.title',id:"cookieConsentDialogTitle"}),React.createElement(I18n.Text,{string:modalMessage||'cookieConsentModal.message',className:classNames('cookie-consent-modal__message'),acceptPlainTextWithPlaceholders:true,id:"cookieConsentDialogMessage"},React.createElement(I18n.Placeholder,{forKey:"privacyLink"},React.createElement(ConditionalWrapper,{condition:!!privacyPolicyLink,wrapper:function wrapper(children){return React.createElement(Link,{href:privacyPolicyLink,tag:"span"},children);}},React.createElement(I18n.Text,{string:"cookieConsentModal.privacyText",className:styles.link})))),React.createElement(Grid.Item,{component:"div",className:styles.buttonWrapper},React.createElement(Button,{onClick:handleAcceptAllCookies,type:"primary",className:classNames(styles.button,'cookie-consent-modal__button-accept-all')},React.createElement(I18n.Text,{string:modalButtonAcceptAll||'cookieConsentModal.buttonAcceptAll'})),showRequiredCookiesButton?React.createElement(Button,{onClick:handleAcceptRequiredCookies,type:"simple",className:classNames(styles.button,'cookie-consent-modal__button-accept-required')},React.createElement(I18n.Text,{string:modalButtonOnlyRequired||'cookieConsentModal.modalButtonOnlyRequired'})):null,React.createElement(Button,{onClick:handleOpenPrivacySettings,type:"simple",className:classNames(styles.button,'cookie-consent-modal__button-open-settings')},React.createElement(I18n.Text,{string:modalButtonConfigureSettings||'cookieConsentModal.buttonConfigure'}))))));};CookieConsentModal.defaultProps={privacyPolicyLink:null};export default connect(CookieConsentModal);
@@ -1,18 +1,18 @@
1
1
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
2
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
3
  <svg width="100%" height="100%" viewBox="0 0 895 895" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
4
- <g transform="matrix(1,0,0,1,-197.772,-376.125)">
5
- <g transform="matrix(1.28727,0,0,1.28727,-185.288,-236.524)">
6
- <g transform="matrix(1.25456,0,0,1.25456,-164.192,-209.593)">
7
- <circle cx="645" cy="823.354" r="276.929" style="fill:rgb(235,235,235);"/>
8
- </g>
9
- <g transform="matrix(17.6233,0,0,17.6233,433.521,611.874)">
10
- <path d="M12,0C8.629,2.866 6.516,3 3,3L3,14.535C3,19.138 6.203,20.339 12,24C17.797,20.339 21,19.138 21,14.535L21,3C17.484,3 15.371,2.866 12,0Z" style="fill:rgb(255,115,115);fill-rule:nonzero;"/>
11
- <path d="M12.99,-1.164C12.419,-1.649 11.581,-1.649 11.01,-1.164C8.014,1.383 6.125,1.472 3,1.472C2.156,1.472 1.472,2.156 1.472,3L1.472,14.535C1.472,17.357 2.45,19.137 4.32,20.771C5.891,22.144 8.2,23.407 11.184,25.292C11.682,25.607 12.318,25.607 12.816,25.292C15.8,23.407 18.109,22.144 19.68,20.771C21.55,19.137 22.528,17.357 22.528,14.535L22.528,3C22.528,2.156 21.844,1.472 21,1.472C17.875,1.472 15.986,1.383 12.99,-1.164ZM12,0C8.629,2.866 6.516,3 3,3L3,14.535C3,19.138 6.203,20.339 12,24C17.797,20.339 21,19.138 21,14.535L21,3C17.484,3 15.371,2.866 12,0Z" style="fill:rgb(216,216,216);"/>
12
- </g>
13
- <g transform="matrix(24.4351,0,0,24.4351,340.416,541.775)">
14
- <path d="M15.762,8.047L11.381,12.522L9.166,10.399L7.93,11.638L11.381,15L17,9.285L15.762,8.047Z" style="fill:white;fill-rule:nonzero;"/>
15
- </g>
16
- </g>
17
- </g>
4
+ <g transform="matrix(1,0,0,1,-197.772,-376.125)">
5
+ <g transform="matrix(1.28727,0,0,1.28727,-185.288,-236.524)">
6
+ <g transform="matrix(1.25456,0,0,1.25456,-164.192,-209.593)">
7
+ <circle cx="645" cy="823.354" r="276.929" style="fill:rgb(235,235,235);"/>
8
+ </g>
9
+ <g transform="matrix(17.6233,0,0,17.6233,433.521,611.874)">
10
+ <path d="M12,0C8.629,2.866 6.516,3 3,3L3,14.535C3,19.138 6.203,20.339 12,24C17.797,20.339 21,19.138 21,14.535L21,3C17.484,3 15.371,2.866 12,0Z" style="fill:rgb(86,217,95);fill-rule:nonzero;"/>
11
+ <path d="M12.99,-1.164C12.419,-1.649 11.581,-1.649 11.01,-1.164C8.014,1.383 6.125,1.472 3,1.472C2.156,1.472 1.472,2.156 1.472,3L1.472,14.535C1.472,17.357 2.45,19.137 4.32,20.771C5.891,22.144 8.2,23.407 11.184,25.292C11.682,25.607 12.318,25.607 12.816,25.292C15.8,23.407 18.109,22.144 19.68,20.771C21.55,19.137 22.528,17.357 22.528,14.535L22.528,3C22.528,2.156 21.844,1.472 21,1.472C17.875,1.472 15.986,1.383 12.99,-1.164ZM12,0C8.629,2.866 6.516,3 3,3L3,14.535C3,19.138 6.203,20.339 12,24C17.797,20.339 21,19.138 21,14.535L21,3C17.484,3 15.371,2.866 12,0Z" style="fill:rgb(216,216,216);"/>
12
+ </g>
13
+ <g transform="matrix(24.4351,0,0,24.4351,340.416,541.775)">
14
+ <path d="M15.762,8.047L11.381,12.522L9.166,10.399L7.93,11.638L11.381,15L17,9.285L15.762,8.047Z" style="fill:white;fill-rule:nonzero;"/>
15
+ </g>
16
+ </g>
17
+ </g>
18
18
  </svg>
@@ -1,8 +1,6 @@
1
- import{connect}from'react-redux';import{acceptAllCookies,acceptSelectedCookies}from"../../actions";import{getAreComfortCookiesAcceptedInternal,getAreStatisticsCookiesAcceptedInternal}from"../../selectors/cookieConsent";/**
2
- * Maps the contents of the state to the component props.
3
- * @param {Object} state The current application state.
1
+ import{connect}from'react-redux';import{makeGetPrivacyPolicyLink}from'@shopgate/engage/page/selectors';import{acceptAllCookies,acceptSelectedCookies}from"../../actions";import{getAreComfortCookiesAcceptedInternal,getAreStatisticsCookiesAcceptedInternal}from"../../selectors/cookieConsent";/**
4
2
  * @return {Object} The extended component props.
5
- */var mapStateToProps=function mapStateToProps(state){return{comfortCookiesAcceptedState:getAreComfortCookiesAcceptedInternal(state),statisticsCookiesAcceptedState:getAreStatisticsCookiesAcceptedInternal(state)};};/**
3
+ */var makeMapStateToProps=function makeMapStateToProps(){var getPrivacyPolicyLink=makeGetPrivacyPolicyLink();return function(state){return{comfortCookiesAcceptedState:getAreComfortCookiesAcceptedInternal(state),statisticsCookiesAcceptedState:getAreStatisticsCookiesAcceptedInternal(state),privacyPolicyLink:getPrivacyPolicyLink(state)};};};/**
6
4
  * Connects the dispatch function to a callable function in the props.
7
5
  * @return {Object} The extended component props.
8
- */var mapDispatchToProps={acceptAllCookies:acceptAllCookies,acceptSelectedCookies:acceptSelectedCookies};export default connect(mapStateToProps,mapDispatchToProps);
6
+ */var mapDispatchToProps={acceptAllCookies:acceptAllCookies,acceptSelectedCookies:acceptSelectedCookies};export default connect(makeMapStateToProps,mapDispatchToProps);
@@ -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 React,{useCallback,useState}from'react';import{Button,Grid,I18n,Link,Switch}from'@shopgate/engage/components';import PropTypes from'prop-types';import{PRIVACY_PATH}from'@shopgate/engage/page';import{appConfig}from'@shopgate/engage';import{i18n}from'@shopgate/engage/core';import classNames from'classnames';import styles from"./style";import connect from"./connector";/**
1
+ function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance");}function _iterableToArrayLimit(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}import React,{useCallback,useState}from'react';import{Button,Grid,I18n,Link,Switch,ConditionalWrapper}from'@shopgate/engage/components';import PropTypes from'prop-types';import{appConfig}from'@shopgate/engage';import{i18n}from'@shopgate/engage/core';import classNames from'classnames';import styles from"./style";import connect from"./connector";/**
2
2
  * The PrivacySettings component.
3
3
  * @returns {JSX.Element}
4
- */var PrivacySettings=function PrivacySettings(_ref){var acceptAllCookies=_ref.acceptAllCookies,acceptSelectedCookies=_ref.acceptSelectedCookies,comfortCookiesAcceptedState=_ref.comfortCookiesAcceptedState,statisticsCookiesAcceptedState=_ref.statisticsCookiesAcceptedState;var _appConfig$cookieCons=appConfig.cookieConsent;_appConfig$cookieCons=_appConfig$cookieCons===void 0?{}:_appConfig$cookieCons;var settingsComfortText=_appConfig$cookieCons.settingsComfortText,settingsComfortTitle=_appConfig$cookieCons.settingsComfortTitle,settingsStatisticsText=_appConfig$cookieCons.settingsStatisticsText,settingsStatisticsTitle=_appConfig$cookieCons.settingsStatisticsTitle,settingsRequiredText=_appConfig$cookieCons.settingsRequiredText,settingsRequiredTitle=_appConfig$cookieCons.settingsRequiredTitle,showComfortCookiesToggle=_appConfig$cookieCons.showComfortCookiesToggle;var _useState=useState(comfortCookiesAcceptedState!==null?comfortCookiesAcceptedState:false),_useState2=_slicedToArray(_useState,2),areComfortCookiesSelected=_useState2[0],setAreComfortCookiesSelected=_useState2[1];var _useState3=useState(statisticsCookiesAcceptedState!==null?statisticsCookiesAcceptedState:false),_useState4=_slicedToArray(_useState3,2),areStatisticsCookiesSelected=_useState4[0],setAreStatisticsCookiesSelected=_useState4[1];var handleChangeComfortCookies=useCallback(function(){setAreComfortCookiesSelected(!areComfortCookiesSelected);},[areComfortCookiesSelected]);var handleChangeStatisticsCookies=useCallback(function(){setAreStatisticsCookiesSelected(!areStatisticsCookiesSelected);},[areStatisticsCookiesSelected]);var handleAcceptAllCookies=useCallback(function(){setAreStatisticsCookiesSelected(true);setAreComfortCookiesSelected(true);acceptAllCookies();},[acceptAllCookies]);return/*#__PURE__*/React.createElement(Grid,{component:"div",className:styles.container},/*#__PURE__*/React.createElement(Grid.Item,{component:"div",className:styles.item},showComfortCookiesToggle?/*#__PURE__*/React.createElement(Grid.Item,{component:"div",className:styles.switchWrapper},/*#__PURE__*/React.createElement(Switch,{onChange:handleChangeComfortCookies,checked:areComfortCookiesSelected,a11yFallbackText:"".concat(i18n.text(settingsComfortTitle||'cookieSettings.comfortTitle'),". ").concat(i18n.text(settingsComfortText||'cookieSettings.comfort'))},/*#__PURE__*/React.createElement("span",{className:styles.title},/*#__PURE__*/React.createElement(I18n.Text,{string:settingsComfortTitle||'cookieSettings.comfortTitle'})),/*#__PURE__*/React.createElement("span",null,/*#__PURE__*/React.createElement(I18n.Text,{string:settingsComfortText||'cookieSettings.comfort'})))):null,/*#__PURE__*/React.createElement(Grid.Item,{component:"div",className:styles.switchWrapper},/*#__PURE__*/React.createElement(Switch,{onChange:handleChangeStatisticsCookies,checked:areStatisticsCookiesSelected,a11yFallbackText:"".concat(i18n.text(settingsStatisticsTitle||'cookieSettings.statisticsTitle'),". ").concat(i18n.text(settingsStatisticsText||'cookieSettings.statistics'))},/*#__PURE__*/React.createElement("span",{className:styles.title},/*#__PURE__*/React.createElement(I18n.Text,{string:settingsStatisticsTitle||'cookieSettings.statisticsTitle'})),/*#__PURE__*/React.createElement("span",null,/*#__PURE__*/React.createElement(I18n.Text,{string:settingsStatisticsText||'cookieSettings.statistics'})))),/*#__PURE__*/React.createElement(Grid.Item,{component:"div",className:styles.switchWrapper},/*#__PURE__*/React.createElement(Switch,{disabled:true,checked:true,a11yFallbackText:"".concat(i18n.text(settingsRequiredTitle||'cookieSettings.requiredTitle'),". ").concat(i18n.text(settingsRequiredText||'cookieSettings.required'))},/*#__PURE__*/React.createElement("span",{className:styles.title},/*#__PURE__*/React.createElement(I18n.Text,{string:settingsRequiredTitle||'cookieSettings.requiredTitle'})),/*#__PURE__*/React.createElement("span",null,/*#__PURE__*/React.createElement(I18n.Text,{string:settingsRequiredText||'cookieSettings.required'}))))),/*#__PURE__*/React.createElement(Grid.Item,{component:"div",className:styles.buttonWrapper},/*#__PURE__*/React.createElement(Button,{onClick:function onClick(){return handleAcceptAllCookies();},type:"primary",className:classNames(styles.button,'privacy-settings__button-accept-all')},/*#__PURE__*/React.createElement(I18n.Text,{string:"cookieConsentModal.buttonAcceptAll"})),/*#__PURE__*/React.createElement(Button,{onClick:function onClick(){return acceptSelectedCookies({comfortCookiesAccepted:areComfortCookiesSelected,statisticsCookiesAccepted:areStatisticsCookiesSelected});},type:"simple",className:classNames(styles.button,'privacy-settings__button-accept-selected')},/*#__PURE__*/React.createElement(I18n.Text,{string:"cookieConsentModal.modalButtonConfirmSelected"}))),/*#__PURE__*/React.createElement(Grid.Item,{component:"div"},/*#__PURE__*/React.createElement(I18n.Text,{string:"cookieSettings.privacy"},/*#__PURE__*/React.createElement(I18n.Placeholder,{forKey:"privacyLink"},/*#__PURE__*/React.createElement(Link,{href:PRIVACY_PATH,tag:"span"},/*#__PURE__*/React.createElement(I18n.Text,{string:"cookieConsentModal.privacyText",className:styles.link}))))));};PrivacySettings.defaultProps={comfortCookiesAcceptedState:null,statisticsCookiesAcceptedState:null};export default connect(PrivacySettings);
4
+ */var PrivacySettings=function PrivacySettings(_ref){var acceptAllCookies=_ref.acceptAllCookies,acceptSelectedCookies=_ref.acceptSelectedCookies,comfortCookiesAcceptedState=_ref.comfortCookiesAcceptedState,statisticsCookiesAcceptedState=_ref.statisticsCookiesAcceptedState,privacyPolicyLink=_ref.privacyPolicyLink;var _appConfig$cookieCons=appConfig.cookieConsent,_appConfig$cookieCons2=_appConfig$cookieCons===void 0?{}:_appConfig$cookieCons,settingsComfortText=_appConfig$cookieCons2.settingsComfortText,settingsComfortTitle=_appConfig$cookieCons2.settingsComfortTitle,settingsStatisticsText=_appConfig$cookieCons2.settingsStatisticsText,settingsStatisticsTitle=_appConfig$cookieCons2.settingsStatisticsTitle,settingsRequiredText=_appConfig$cookieCons2.settingsRequiredText,settingsRequiredTitle=_appConfig$cookieCons2.settingsRequiredTitle,showComfortCookiesToggle=_appConfig$cookieCons2.showComfortCookiesToggle;var _useState=useState(comfortCookiesAcceptedState!==null?comfortCookiesAcceptedState:false),_useState2=_slicedToArray(_useState,2),areComfortCookiesSelected=_useState2[0],setAreComfortCookiesSelected=_useState2[1];var _useState3=useState(statisticsCookiesAcceptedState!==null?statisticsCookiesAcceptedState:false),_useState4=_slicedToArray(_useState3,2),areStatisticsCookiesSelected=_useState4[0],setAreStatisticsCookiesSelected=_useState4[1];var handleChangeComfortCookies=useCallback(function(){setAreComfortCookiesSelected(!areComfortCookiesSelected);},[areComfortCookiesSelected]);var handleChangeStatisticsCookies=useCallback(function(){setAreStatisticsCookiesSelected(!areStatisticsCookiesSelected);},[areStatisticsCookiesSelected]);var handleAcceptAllCookies=useCallback(function(){setAreStatisticsCookiesSelected(true);setAreComfortCookiesSelected(true);acceptAllCookies();},[acceptAllCookies]);return React.createElement(Grid,{component:"div",className:styles.container},React.createElement(Grid.Item,{component:"div",className:styles.item},showComfortCookiesToggle?React.createElement(Grid.Item,{component:"div",className:styles.switchWrapper},React.createElement(Switch,{onChange:handleChangeComfortCookies,checked:areComfortCookiesSelected,a11yFallbackText:"".concat(i18n.text(settingsComfortTitle||'cookieSettings.comfortTitle'),". ").concat(i18n.text(settingsComfortText||'cookieSettings.comfort'))},React.createElement("span",{className:styles.title},React.createElement(I18n.Text,{string:settingsComfortTitle||'cookieSettings.comfortTitle'})),React.createElement("span",null,React.createElement(I18n.Text,{string:settingsComfortText||'cookieSettings.comfort'})))):null,React.createElement(Grid.Item,{component:"div",className:styles.switchWrapper},React.createElement(Switch,{onChange:handleChangeStatisticsCookies,checked:areStatisticsCookiesSelected,a11yFallbackText:"".concat(i18n.text(settingsStatisticsTitle||'cookieSettings.statisticsTitle'),". ").concat(i18n.text(settingsStatisticsText||'cookieSettings.statistics'))},React.createElement("span",{className:styles.title},React.createElement(I18n.Text,{string:settingsStatisticsTitle||'cookieSettings.statisticsTitle'})),React.createElement("span",null,React.createElement(I18n.Text,{string:settingsStatisticsText||'cookieSettings.statistics'})))),React.createElement(Grid.Item,{component:"div",className:styles.switchWrapper},React.createElement(Switch,{disabled:true,checked:true,a11yFallbackText:"".concat(i18n.text(settingsRequiredTitle||'cookieSettings.requiredTitle'),". ").concat(i18n.text(settingsRequiredText||'cookieSettings.required'))},React.createElement("span",{className:styles.title},React.createElement(I18n.Text,{string:settingsRequiredTitle||'cookieSettings.requiredTitle'})),React.createElement("span",null,React.createElement(I18n.Text,{string:settingsRequiredText||'cookieSettings.required'}))))),React.createElement(Grid.Item,{component:"div",className:styles.buttonWrapper},React.createElement(Button,{onClick:function onClick(){return handleAcceptAllCookies();},type:"primary",className:classNames(styles.button,'privacy-settings__button-accept-all')},React.createElement(I18n.Text,{string:"cookieConsentModal.buttonAcceptAll"})),React.createElement(Button,{onClick:function onClick(){return acceptSelectedCookies({comfortCookiesAccepted:areComfortCookiesSelected,statisticsCookiesAccepted:areStatisticsCookiesSelected});},type:"simple",className:classNames(styles.button,'privacy-settings__button-accept-selected')},React.createElement(I18n.Text,{string:"cookieConsentModal.modalButtonConfirmSelected"}))),React.createElement(Grid.Item,{component:"div"},React.createElement(I18n.Text,{string:"cookieSettings.privacy"},React.createElement(I18n.Placeholder,{forKey:"privacyLink"},React.createElement(ConditionalWrapper,{condition:!!privacyPolicyLink,wrapper:function wrapper(children){return React.createElement(Link,{href:privacyPolicyLink,tag:"span"},children);}},React.createElement(I18n.Text,{string:"cookieConsentModal.privacyText",className:styles.link}))))));};PrivacySettings.defaultProps={comfortCookiesAcceptedState:null,statisticsCookiesAcceptedState:null,privacyPolicyLink:null};export default connect(PrivacySettings);
@@ -0,0 +1 @@
1
+ export{track}from'@shopgate/pwa-tracking/helpers';
@@ -1,4 +1,4 @@
1
- import{createSelector}from'reselect';import{appConfig}from'@shopgate/engage';import{appSupportsCookieConsent}from'@shopgate/engage/core/helpers';var _appConfig$cookieCons=appConfig.cookieConsent;_appConfig$cookieCons=_appConfig$cookieCons===void 0?{}:_appConfig$cookieCons;var isCookieConsentActivated=_appConfig$cookieCons.isCookieConsentActivated,showComfortCookiesToggle=_appConfig$cookieCons.showComfortCookiesToggle;/**
1
+ function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import{createSelector}from'reselect';import{appConfig}from'@shopgate/engage';import{appSupportsCookieConsent}from'@shopgate/engage/core/helpers';var _appConfig$cookieCons=appConfig.cookieConsent,_appConfig$cookieCons2=_appConfig$cookieCons===void 0?{}:_appConfig$cookieCons,isCookieConsentActivated=_appConfig$cookieCons2.isCookieConsentActivated,showComfortCookiesToggle=_appConfig$cookieCons2.showComfortCookiesToggle;/**
2
2
  * Selects the cookie consent modal state.
3
3
  * @param {Object} state The current state of the cookie consent modal.
4
4
  * @returns {Object} whether cookie consent modal is shown.
@@ -9,7 +9,8 @@ import{createSelector}from'reselect';import{appConfig}from'@shopgate/engage';imp
9
9
  */export var getCookieSettingsState=function getCookieSettingsState(state){var _state$tracking2;return(state===null||state===void 0?void 0:(_state$tracking2=state.tracking)===null||_state$tracking2===void 0?void 0:_state$tracking2.cookieSettings)||{};};/**
10
10
  * Determines whether the cookie consent process is finished (selection happened before, feature is
11
11
  * inactive, app doesn't support the feature).
12
- * @returns {boolean} whether cookie consent settings have been chosen by the user.
12
+ * @returns {boolean} Whether the cookie consent process is handled either by user
13
+ * or by app/feature settings
13
14
  */export var getIsCookieConsentHandled=createSelector(getCookieSettingsState,function(settingsState){if(!isCookieConsentActivated||!appSupportsCookieConsent()){return true;}return(settingsState===null||settingsState===void 0?void 0:settingsState.comfortCookiesAccepted)!==null||(settingsState===null||settingsState===void 0?void 0:settingsState.statisticsCookiesAccepted)!==null;});/**
14
15
  * Selects the property of the comfort cookie settings.
15
16
  * @private This selector is intended to be used internally. When a cookie consent status needs
@@ -21,14 +22,18 @@ import{createSelector}from'reselect';import{appConfig}from'@shopgate/engage';imp
21
22
  * to be checked for a feature, please use `getAreStatisticsCookiesAccepted` instead.
22
23
  * @returns {boolean|null} whether statistics cookies have been selected by the user.
23
24
  */export var getAreStatisticsCookiesAcceptedInternal=createSelector(getCookieSettingsState,function(settingsState){return settingsState.statisticsCookiesAccepted;});/**
24
- * Determines if comfort cookies where accepted in the cookie consent process. When cookie
25
+ * Determines if comfort cookies were accepted in the cookie consent process. When cookie
25
26
  * consent is inactive, the selector will also return true.
26
27
  * @returns {boolean} whether comfort cookies are set and should activate tracking.
27
28
  */export var getAreComfortCookiesAccepted=createSelector(getCookieSettingsState,getIsCookieConsentHandled,function(settingsState,consentHandled){if(!consentHandled)return false;if(!isCookieConsentActivated||!showComfortCookiesToggle)return true;if(settingsState.comfortCookiesAccepted===null)return true;return settingsState.comfortCookiesAccepted;});/**
28
- * Determines if statistics cookies where accepted in the cookie consent process. When cookie
29
+ * Determines if statistics cookies were accepted in the cookie consent process. When cookie
29
30
  * consent is inactive, the selector will also return true.
30
31
  * @returns {boolean} whether statistics cookies are set and should activate tracking.
31
32
  */export var getAreStatisticsCookiesAccepted=createSelector(getCookieSettingsState,getIsCookieConsentHandled,function(settingsState,consentHandled){if(!consentHandled)return false;if(!isCookieConsentActivated)return true;if(settingsState.statisticsCookiesAccepted===null)return true;return settingsState.statisticsCookiesAccepted;});/**
32
33
  * Selects the visibility property of the cookie consent modal.
33
34
  * @returns {boolean} whether cookie consent modal is shown.
34
- */export var getIsCookieConsentModalVisible=createSelector(getCookieConsentModalState,getAreComfortCookiesAcceptedInternal,getAreStatisticsCookiesAcceptedInternal,function(modalState,comfortCookiesState,statisticsCookiesState){return modalState.isCookieConsentModalVisible&&comfortCookiesState===null&&statisticsCookiesState===null;});
35
+ */export var getIsCookieConsentModalVisible=createSelector(getCookieConsentModalState,getAreComfortCookiesAcceptedInternal,getAreStatisticsCookiesAcceptedInternal,function(modalState,comfortCookiesState,statisticsCookiesState){return modalState.isCookieConsentModalVisible&&comfortCookiesState===null&&statisticsCookiesState===null;});/**
36
+ * Determines if the cookie consent feature is activated
37
+ */export var getIsCookieConsentActivated=createSelector(function(){return isCookieConsentActivated&&appSupportsCookieConsent();});/**
38
+ * Creates a meta data object for tracking opt in tracking events
39
+ */export var getCookieConsentTrackingMeta=createSelector(getIsCookieConsentActivated,function(_){var props=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};return props;},function(isActivated,states){return _extends({permission:'tracking',usesSoftTrackingOptIn:isActivated},states);});
@@ -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{main$}from'@shopgate/engage/core/streams';import'rxjs/add/observable/of';import{Observable}from'rxjs/Observable';import{COOKIE_CONSENT_HANDLED,UPDATE_COOKIE_CONSENT}from"../constants";/**
1
+ var _excluded=["type"];function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key];}}return target;}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key];}return target;}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance");}function _iterableToArrayLimit(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}import{main$,routeWillEnter$}from'@shopgate/engage/core/streams';import'rxjs/add/observable/of';import{Observable}from'rxjs/Observable';import{makeGetPrivacyPolicyLink}from'@shopgate/engage/page/selectors';import{COOKIE_CONSENT_HANDLED,UPDATE_COOKIE_CONSENT,PRIVACY_SETTINGS_PATTERN}from"../constants";import{getIsCookieConsentHandled}from"../selectors/cookieConsent";/**
2
2
  * Gets triggered when the cookie consent has been updated by the user or handled already.
3
3
  * This stream is only for internal usage and will be triggered independent of changed payload.
4
4
  * @type {Observable}
@@ -19,7 +19,7 @@ function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimi
19
19
  */export var privacySettingsConfirmedWithoutChangeInternal$=cookieConsentSetInternal$.pairwise().filter(function(_ref3){var _ref4=_slicedToArray(_ref3,2),actionPrev=_ref4[0].action,actionCurrent=_ref4[1].action;return actionPrev.comfortCookiesAccepted===actionCurrent.comfortCookiesAccepted&&actionPrev.statisticsCookiesAccepted===actionCurrent.statisticsCookiesAccepted;}).switchMap(function(_ref5){var _ref6=_slicedToArray(_ref5,2),latest=_ref6[1];return Observable.of(latest);});/**
20
20
  * Gets triggered when cookie consent settings changed after initialization
21
21
  * @type {Observable}
22
- */export var cookieConsentUpdated$=cookieConsentSetInternal$.pairwise().filter(function(_ref7){var _ref8=_slicedToArray(_ref7,2),actionPrev=_ref8[0].action,actionCurrent=_ref8[1].action;return actionPrev.comfortCookiesAccepted!==actionCurrent.comfortCookiesAccepted||actionPrev.statisticsCookiesAccepted!==actionCurrent.statisticsCookiesAccepted;}).switchMap(function(_ref9){var _ref10=_slicedToArray(_ref9,2),latest=_ref10[1];return Observable.of(latest);});/**
22
+ */export var cookieConsentUpdated$=cookieConsentSetInternal$.pairwise().filter(function(_ref7){var _ref8=_slicedToArray(_ref7,2),actionPrev=_ref8[0].action,actionCurrent=_ref8[1].action;return actionPrev.comfortCookiesAccepted!==actionCurrent.comfortCookiesAccepted||actionPrev.statisticsCookiesAccepted!==actionCurrent.statisticsCookiesAccepted;}).switchMap(function(_ref9){var _ref10=_slicedToArray(_ref9,2),previous=_ref10[0],latest=_ref10[1];var _previous$action=previous.action,type=_previous$action.type,prevPayload=_objectWithoutProperties(_previous$action,_excluded);return Observable.of(_extends({},latest,{action:_extends({},latest.action,{previous:prevPayload})}));});/**
23
23
  * Gets triggered when the cookie consent has been updated by the user or handled already.
24
24
  * @type {Observable}
25
25
  */export var cookieConsentSet$=cookieConsentInitialized$.merge(cookieConsentUpdated$);/**
@@ -36,4 +36,11 @@ function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimi
36
36
  * Gets triggered when statistics cookies where accepted first and declined afterwards during an
37
37
  * app session.
38
38
  * @type {Observable}
39
- */export var statisticsCookiesDeclined$=statisticsCookiesAccepted$.switchMap(function(){return cookieConsentSet$.filter(function(_ref14){var action=_ref14.action;return action.statisticsCookiesAccepted===false;}).first();});
39
+ */export var statisticsCookiesDeclined$=statisticsCookiesAccepted$.switchMap(function(){return cookieConsentSet$.filter(function(_ref14){var action=_ref14.action;return action.statisticsCookiesAccepted===false;}).first();});/**
40
+ * Emit when the cookie consent modal is supposed to be shown / hidden on route changes.
41
+ *
42
+ * When cookie consent is not handled yet, the modal should overlay every route, except the
43
+ * pages with privacy polity and privacy settings when extended consent decisions are taken.
44
+ */export var cookieConsentModalShouldToggleInternal$=routeWillEnter$// Stop the stream after cookie consent is handled
45
+ .takeUntil(cookieConsentInitialized$).switchMap(function(input){var action=input.action,getState=input.getState;var isCookieConsentHandled=getIsCookieConsentHandled(getState());var showConsentModal=false;// Only run extended logic when cookie consent is active and still need to be handled
46
+ if(!isCookieConsentHandled){var _action$route;var pagesWithoutModal=[PRIVACY_SETTINGS_PATTERN,makeGetPrivacyPolicyLink()(getState())];showConsentModal=!pagesWithoutModal.includes(action===null||action===void 0?void 0:(_action$route=action.route)===null||_action$route===void 0?void 0:_action$route.pathname);}return Observable.of(_extends({},input,{showConsentModal:showConsentModal}));});
@@ -1,11 +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);});};}import{reloadApp}from'@shopgate/engage/core/action-creators';import{appSupportsCookieConsent,hasSGJavaScriptBridge}from'@shopgate/engage/core/helpers';import{analyticsSetConsent}from'@shopgate/engage/core/commands';import{cookieConsentInitialized$,cookieConsentUpdated$}from"../streams";/**
1
+ import _regeneratorRuntime from"@babel/runtime/regenerator";var _excluded=["permission"],_excluded2=["permission"],_excluded3=["permission"];function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key];}}return target;}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key];}return target;}function 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{softOptInShown$,softOptInSelected$,hardOptInShown$,hardOptInSelected$,routeWillEnter$}from'@shopgate/engage/core/streams';import{getCurrentQuery}from'@shopgate/engage/core/selectors';import{track}from'@shopgate/engage/tracking/helpers';import{reloadApp}from'@shopgate/engage/core/action-creators';import{appSupportsCookieConsent,hasSGJavaScriptBridge}from'@shopgate/engage/core/helpers';import{analyticsSetConsent}from'@shopgate/engage/core/commands';import{cookieConsentInitialized$,cookieConsentUpdated$}from"../streams";import{getIsCookieConsentHandled}from"../selectors/cookieConsent";import{PRIVACY_SETTINGS_PATTERN}from"../constants";var softTrackingOptInShown$=softOptInShown$.filter(function(_ref){var _action$meta;var action=_ref.action;return(action===null||action===void 0?void 0:(_action$meta=action.meta)===null||_action$meta===void 0?void 0:_action$meta.permission)==='tracking';});var softTrackingOptInSelected$=softOptInSelected$.filter(function(_ref2){var _action$meta2;var action=_ref2.action;return(action===null||action===void 0?void 0:(_action$meta2=action.meta)===null||_action$meta2===void 0?void 0:_action$meta2.permission)==='tracking';});var hardTrackingOptInShown$=hardOptInShown$.filter(function(_ref3){var _action$meta3;var action=_ref3.action;return(action===null||action===void 0?void 0:(_action$meta3=action.meta)===null||_action$meta3===void 0?void 0:_action$meta3.permission)==='tracking';});var hardTrackingOptInSelected$=hardOptInSelected$.filter(function(_ref4){var _action$meta4;var action=_ref4.action;return(action===null||action===void 0?void 0:(_action$meta4=action.meta)===null||_action$meta4===void 0?void 0:_action$meta4.permission)==='tracking';});var privacySettingsWillEnter$=routeWillEnter$.filter(function(_ref5){var action=_ref5.action;return action.route.pattern===PRIVACY_SETTINGS_PATTERN;})// Only emit when cookie consent is already handled
2
+ .filter(function(_ref6){var getState=_ref6.getState;return getIsCookieConsentHandled(getState());});/**
2
3
  * Analytics subscriptions
3
4
  * @param {Function} subscribe The subscribe function
4
5
  */export default function analytics(subscribe){/**
5
6
  * Sends cookie consent decisions to the app
6
7
  * @param {Object} params Function params
7
8
  * @param {Object} params.action Cookie consent update action
8
- */var sendConsentToApp=/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref){var action,statisticsCookiesAccepted,comfortCookiesAccepted;return _regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:action=_ref.action;if(!(!appSupportsCookieConsent()||!hasSGJavaScriptBridge())){_context.next=3;break;}return _context.abrupt("return");case 3:statisticsCookiesAccepted=action.statisticsCookiesAccepted,comfortCookiesAccepted=action.comfortCookiesAccepted;// Send consent decisions to the app
9
- _context.next=6;return analyticsSetConsent({statistics:statisticsCookiesAccepted,comfort:comfortCookiesAccepted});case 6:case"end":return _context.stop();}}},_callee);}));return function sendConsentToApp(_x){return _ref2.apply(this,arguments);};}();subscribe(cookieConsentInitialized$,/*#__PURE__*/function(){var _ref4=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref3){var action;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1){switch(_context2.prev=_context2.next){case 0:action=_ref3.action;_context2.next=3;return sendConsentToApp({action:action});case 3:case"end":return _context2.stop();}}},_callee2);}));return function(_x2){return _ref4.apply(this,arguments);};}());subscribe(cookieConsentUpdated$,/*#__PURE__*/function(){var _ref6=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref5){var dispatch,action;return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1){switch(_context3.prev=_context3.next){case 0:dispatch=_ref5.dispatch,action=_ref5.action;_context3.next=3;return sendConsentToApp({action:action});case 3:// The PWA is reloaded whenever cookie consent settings changed to guarantee that all trackers
9
+ */var sendConsentToApp=/*#__PURE__*/function(){var _ref8=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref7){var action,statisticsCookiesAccepted,comfortCookiesAccepted;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:action=_ref7.action;if(!(!appSupportsCookieConsent()||!hasSGJavaScriptBridge())){_context.next=3;break;}return _context.abrupt("return");case 3:statisticsCookiesAccepted=action.statisticsCookiesAccepted,comfortCookiesAccepted=action.comfortCookiesAccepted;// Send consent decisions to the app
10
+ _context.next=6;return analyticsSetConsent({statistics:statisticsCookiesAccepted,comfort:comfortCookiesAccepted});case 6:case"end":return _context.stop();}},_callee);}));return function sendConsentToApp(_x){return _ref8.apply(this,arguments);};}();subscribe(cookieConsentInitialized$,/*#__PURE__*/function(){var _ref10=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref9){var action;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:action=_ref9.action;_context2.next=3;return sendConsentToApp({action:action});case 3:case"end":return _context2.stop();}},_callee2);}));return function(_x2){return _ref10.apply(this,arguments);};}());subscribe(cookieConsentUpdated$,/*#__PURE__*/function(){var _ref12=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref11){var dispatch,action;return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:dispatch=_ref11.dispatch,action=_ref11.action;_context3.next=3;return sendConsentToApp({action:action});case 3:// The PWA is reloaded whenever cookie consent settings changed to guarantee that all trackers
10
11
  // are turned off
11
- dispatch(reloadApp());case 4:case"end":return _context3.stop();}}},_callee3);}));return function(_x3){return _ref6.apply(this,arguments);};}());}
12
+ dispatch(reloadApp());case 4:case"end":return _context3.stop();}},_callee3);}));return function(_x3){return _ref12.apply(this,arguments);};}());subscribe(softTrackingOptInShown$,function(_ref13){var getState=_ref13.getState;track('customEvent',{eventCategory:'softTrackingOptIn',eventAction:'shown',eventLabel:null,additionalEventParams:{eventName:'softTrackingOptInShown'}},getState());});subscribe(softTrackingOptInSelected$,function(_ref14){var action=_ref14.action,getState=_ref14.getState;var selection=action.selection,_action$meta5=action.meta,permission=_action$meta5.permission,meta=_objectWithoutProperties(_action$meta5,_excluded);track('customEvent',{eventCategory:'softTrackingOptIn',eventAction:'decision',eventLabel:selection,additionalEventParams:_extends({eventName:'softTrackingOptInSelected',selection:selection},meta)},getState());});subscribe(hardTrackingOptInShown$,function(_ref15){var action=_ref15.action,getState=_ref15.getState;var _action$meta6=action.meta,permission=_action$meta6.permission,meta=_objectWithoutProperties(_action$meta6,_excluded2);track('customEvent',{eventCategory:'hardTrackingOptIn',eventAction:'shown',eventLabel:null,additionalEventParams:_extends({eventName:'hardTrackingOptInShown'},meta)},getState());});subscribe(hardTrackingOptInSelected$,function(_ref16){var action=_ref16.action,getState=_ref16.getState;var selection=action.selection,_action$meta7=action.meta,permission=_action$meta7.permission,meta=_objectWithoutProperties(_action$meta7,_excluded3);track('customEvent',{eventCategory:'hardTrackingOptIn',eventAction:'decision',eventLabel:selection,additionalEventParams:_extends({eventName:'hardTrackingOptInSelected',selection:selection},meta)},getState());});subscribe(cookieConsentUpdated$,function(_ref17){var action=_ref17.action,getState=_ref17.getState;var _getCurrentQuery=getCurrentQuery(getState()),_getCurrentQuery$sour=_getCurrentQuery.source,source=_getCurrentQuery$sour===void 0?'other':_getCurrentQuery$sour;var allowComfortNew=action.comfortCookiesAccepted,allowStatisticsNew=action.statisticsCookiesAccepted,_action$previous=action.previous,_action$previous2=_action$previous===void 0?{}:_action$previous,allowComfortOld=_action$previous2.comfortCookiesAccepted,allowStatisticsOld=_action$previous2.statisticsCookiesAccepted;track('customEvent',{eventCategory:'softTrackingSettings',eventAction:'changed',eventLabel:null,additionalEventParams:{eventName:'softTrackingSettingsChanged',context:source,allowComfortOld:allowComfortOld,allowComfortNew:allowComfortNew,allowStatisticsOld:allowStatisticsOld,allowStatisticsNew:allowStatisticsNew}},getState());});subscribe(privacySettingsWillEnter$,function(_ref18){var getState=_ref18.getState;var _getCurrentQuery2=getCurrentQuery(getState()),_getCurrentQuery2$sou=_getCurrentQuery2.source,source=_getCurrentQuery2$sou===void 0?'other':_getCurrentQuery2$sou;track('customEvent',{eventCategory:'softTrackingSettings',eventAction:'shown',eventLabel:null,additionalEventParams:{eventName:'softTrackingSettingsShown',context:source}},getState());});}
@@ -1,17 +1,13 @@
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{main$,appDidStart$}from'@shopgate/engage/core/streams';import{ROUTE_WILL_LEAVE}from'@shopgate/engage/core/constants';import{PRIVACY_SETTINGS_PATTERN}from'@shopgate/engage/tracking/constants';import{appSupportsCookieConsent}from'@shopgate/engage/core/helpers';import{grantAppTrackingTransparencyPermission,historyReset,historyPop}from'@shopgate/engage/core/actions';import{handleCookieConsent,showCookieConsentModal}from"../action-creators";import{getIsCookieConsentHandled,getAreComfortCookiesAccepted,getAreStatisticsCookiesAccepted}from"../selectors/cookieConsent";import{cookieConsentInitializedByUserInternal$,privacySettingsConfirmedWithoutChangeInternal$}from"../streams/cookieConsent";/**
2
- * stream which gets triggered when the user navigates back from privacy settings page
3
- * and cookie consent modal needs to be shown again.
4
- * @type {Observable}
5
- */export var navigateBackToCookieModal$=main$.filter(function(_ref){var action=_ref.action;return action.type===ROUTE_WILL_LEAVE;}).filter(function(_ref2){var action=_ref2.action;return action.route.pathname===PRIVACY_SETTINGS_PATTERN;});/**
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{appDidStart$}from'@shopgate/engage/core/streams';import{appSupportsCookieConsent}from'@shopgate/engage/core/helpers';import{grantAppTrackingTransparencyPermission,historyReset,historyPop}from'@shopgate/engage/core/actions';import{softOptInShown}from'@shopgate/engage/core/action-creators';import{handleCookieConsent,showCookieConsentModal,hideCookieConsentModal}from"../action-creators";import{getIsCookieConsentHandled,getAreComfortCookiesAccepted,getAreStatisticsCookiesAccepted,getCookieConsentTrackingMeta}from"../selectors/cookieConsent";import{cookieConsentInitializedByUserInternal$,privacySettingsConfirmedWithoutChangeInternal$,cookieConsentModalShouldToggleInternal$}from"../streams/cookieConsent";/**
6
2
  * determine whether to show the cookie consent modal at app start
7
3
  * @param {Function} subscribe The subscribe function
8
- */export default function cookieConsent(subscribe){subscribe(appDidStart$,/*#__PURE__*/function(){var _ref4=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref3){var dispatch,getState,state,isCookieConsentHandled,comfortCookiesAccepted,statisticsCookiesAccepted;return _regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:dispatch=_ref3.dispatch,getState=_ref3.getState;state=getState();isCookieConsentHandled=getIsCookieConsentHandled(state);/**
4
+ */export default function cookieConsent(subscribe){subscribe(appDidStart$,/*#__PURE__*/function(){var _ref2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref){var dispatch,getState,state,isCookieConsentHandled,trackingMeta,comfortCookiesAccepted,statisticsCookiesAccepted;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:dispatch=_ref.dispatch,getState=_ref.getState;state=getState();isCookieConsentHandled=getIsCookieConsentHandled(state);trackingMeta=getCookieConsentTrackingMeta(state);/**
9
5
  * if merchant has not activated the cookie feature OR if merchant has activated cookie feature
10
6
  * and user has chosen cookies already trigger stream to run code that depends on the cookie
11
7
  * consent.
12
- */if(!isCookieConsentHandled){_context.next=12;break;}comfortCookiesAccepted=getAreComfortCookiesAccepted(state);statisticsCookiesAccepted=getAreStatisticsCookiesAccepted(state);dispatch(handleCookieConsent({comfortCookiesAccepted:comfortCookiesAccepted,statisticsCookiesAccepted:statisticsCookiesAccepted}));if(!(appSupportsCookieConsent()&&(comfortCookiesAccepted||statisticsCookiesAccepted))){_context.next=10;break;}_context.next=10;return dispatch(grantAppTrackingTransparencyPermission());case 10:_context.next=13;break;case 12:// if merchant has activated cookie feature but user has not chosen cookies yet:
8
+ */if(!isCookieConsentHandled){_context.next=13;break;}comfortCookiesAccepted=getAreComfortCookiesAccepted(state);statisticsCookiesAccepted=getAreStatisticsCookiesAccepted(state);dispatch(handleCookieConsent({comfortCookiesAccepted:comfortCookiesAccepted,statisticsCookiesAccepted:statisticsCookiesAccepted}));if(!(appSupportsCookieConsent()&&(comfortCookiesAccepted||statisticsCookiesAccepted))){_context.next=11;break;}_context.next=11;return dispatch(grantAppTrackingTransparencyPermission({meta:trackingMeta}));case 11:_context.next=15;break;case 13:// if merchant has activated cookie feature but user has not chosen cookies yet:
13
9
  // show cookie consent modal to make user choose them
14
- dispatch(showCookieConsentModal());case 13:case"end":return _context.stop();}}},_callee);}));return function(_x){return _ref4.apply(this,arguments);};}());subscribe(navigateBackToCookieModal$,function(_ref5){var dispatch=_ref5.dispatch,getState=_ref5.getState;var isCookieConsentHandled=getIsCookieConsentHandled(getState());if(!isCookieConsentHandled){dispatch(showCookieConsentModal());}});subscribe(cookieConsentInitializedByUserInternal$,function(_ref6){var dispatch=_ref6.dispatch;// Reset history after consent initialization to guarantee an empty history
15
- dispatch(historyReset());});subscribe(privacySettingsConfirmedWithoutChangeInternal$,function(_ref7){var dispatch=_ref7.dispatch;// Remove privacy settings route from route stack when any button was clicked but no settings
10
+ dispatch(softOptInShown({meta:trackingMeta}));dispatch(showCookieConsentModal());case 15:case"end":return _context.stop();}},_callee);}));return function(_x){return _ref2.apply(this,arguments);};}());subscribe(cookieConsentInitializedByUserInternal$,function(_ref3){var dispatch=_ref3.dispatch;// Reset history after consent initialization to guarantee an empty history
11
+ dispatch(historyReset());});subscribe(privacySettingsConfirmedWithoutChangeInternal$,function(_ref4){var dispatch=_ref4.dispatch;// Remove privacy settings route from route stack when any button was clicked but no settings
16
12
  // where changed. When something was changed, app will reset via the "analytics" streams.
17
- dispatch(historyPop());});}
13
+ dispatch(historyPop());});subscribe(cookieConsentModalShouldToggleInternal$,function(_ref5){var dispatch=_ref5.dispatch,showConsentModal=_ref5.showConsentModal;dispatch(showConsentModal?showCookieConsentModal():hideCookieConsentModal());});}
package/types.js ADDED
File without changes
package/user/index.js CHANGED
@@ -2,5 +2,5 @@
2
2
  export{disableLogin}from'@shopgate/pwa-common/action-creators/user';// ACTIONS
3
3
  export{default as fetchRegisterUrl}from'@shopgate/pwa-common/actions/user/fetchRegisterUrl';export{default as fetchUser}from'@shopgate/pwa-common/actions/user/fetchUser';export{default as login}from'@shopgate/pwa-common/actions/user/login';export{default as logout}from'@shopgate/pwa-common/actions/user/logout';// CONSTANTS
4
4
  export*from'@shopgate/pwa-common/constants/Registration';export*from'@shopgate/pwa-common/constants/user';export{REGISTER_PATH,LOGIN_PATH};// SELECTORS
5
- export*from'@shopgate/pwa-common/selectors/user';export*from"./selectors/login";// STREAMS
6
- export*from'@shopgate/pwa-common/streams/user';
5
+ export*from'@shopgate/pwa-common/selectors/user';export*from"./selectors/login";export*from"./selectors/data";// STREAMS
6
+ export*from'@shopgate/pwa-common/streams/user';export{registrationSuccess$}from'@shopgate/engage/registration/streams';
@@ -0,0 +1,10 @@
1
+ import{getUserData}from'@shopgate/pwa-common/selectors/user';/**
2
+ * Selects the id of the currently logged in user or null if not logged in.
3
+ * @param {Object} state The application state.
4
+ * @returns {[number]}
5
+ */export var getUserId=function getUserId(state){var userData=getUserData(state)||{};return userData.id||null;};/**
6
+ * Selects the external customer number (ecp identifier)
7
+ * of the currently logged in user or null if not logged in.
8
+ * @param {Object} state The application state.
9
+ * @returns {[number]}
10
+ */export var getExternalCustomerNumber=function getExternalCustomerNumber(state){var userData=getUserData(state)||{};return userData.externalCustomerNumber||null;};
@@ -1 +0,0 @@
1
- import React from'react';import{mount}from'enzyme';import MessageBar from"./index";var MESSAGE1='This is some information';var MESSAGE2='This is an error that happened here.';var MESSAGE3='This is just a warning. Nothing to freak out about.';var MESSAGE4='Normal pre-translated message.';var MESSAGE5='Other normal pre-translated message.';var MESSAGE6='some.translation.string';var MESSAGE7='Message with messageParams';describe('<MessageBar />',function(){describe('General rendering',function(){it('should be empty if no messages have been set',function(){var wrapper=mount(/*#__PURE__*/React.createElement(MessageBar,{messages:[]}));expect(wrapper).toMatchSnapshot();});it('should render a message as info if type is missing',function(){var wrapper=mount(/*#__PURE__*/React.createElement(MessageBar,{messages:[{message:'something'}]}));expect(wrapper).toMatchSnapshot();});});describe('Multiple messages rendering',function(){it('should render messages without frontend translation',function(){var wrapper=mount(/*#__PURE__*/React.createElement(MessageBar,{messages:[{type:'info',message:MESSAGE1},{type:'error',message:MESSAGE2},{type:'warning',message:MESSAGE3},{message:MESSAGE4,translated:null},{message:MESSAGE5,translated:true}]}));expect(wrapper).toMatchSnapshot();});it('should translate and render all given messages',function(){var wrapper=mount(/*#__PURE__*/React.createElement(MessageBar,{messages:[{message:MESSAGE6,translated:false},{message:MESSAGE7,messageParams:{myCustomParam1:'-> TEST-VALUE #1 <-',myCustomParam2:'-> TEST-VALUE #2 <-'},translated:false}]}));expect(wrapper).toMatchSnapshot();});});it('should render with custom classNames',function(){var wrapper=mount(/*#__PURE__*/React.createElement(MessageBar,{messages:[{message:MESSAGE1}],classNames:{container:'cls-container',message:'cls-message'}}));expect(wrapper).toMatchSnapshot();});});
@@ -1,2 +0,0 @@
1
- import{css}from'glamor';// TODO: Remove the usage of themeConfig here
2
- import{themeConfig}from'@shopgate/pwa-common/helpers/config';var container=css({background:themeConfig.colors.background,display:'flex',flexDirection:'column',flexShrink:0}).toString();var messageBase={padding:"".concat(themeConfig.variables.gap.small,"px ").concat(themeConfig.variables.gap.big,"px"),fontSize:'0.875rem',fontWeight:500,':not(:last-child)':{marginBottom:themeConfig.variables.gap.small*0.5}};var info=css(messageBase,{background:themeConfig.colors.accent,color:themeConfig.colors.accentContrast}).toString();var error=css(messageBase,{background:themeConfig.colors.error,color:themeConfig.colors.light}).toString();var warning=css(messageBase,{background:themeConfig.colors.warning,color:themeConfig.colors.light}).toString();var srOnly=css({position:'absolute',width:1,height:1,padding:0,margin:-1,overflow:'hidden',clip:'rect(0, 0, 0, 0)',whiteSpace:'nowrap',border:0});export default{container:container,info:info,error:error,warning:warning,srOnly:srOnly};
@@ -1 +0,0 @@
1
- export var FAVORITES_SHOW_LIMIT=10;
@@ -1,9 +0,0 @@
1
- import{connect}from'react-redux';import isEqual from'lodash/isEqual';import{getVariantAvailabilityByCharacteristics}from'@shopgate/pwa-common-commerce/product/selectors/product';/**
2
- * @param {Object} state The application state.
3
- * @param {Object} props The component props.
4
- * @return {Object}
5
- */var mapStateToProps=function mapStateToProps(state,props){return{availability:getVariantAvailabilityByCharacteristics(state,props)};};/**
6
- * @param {Object} next The next component props.
7
- * @param {Object} prev The previous component props.
8
- * @returns {boolean}
9
- */var areStatePropsEqual=function areStatePropsEqual(next,prev){if(!isEqual(prev.availability,next.availability)){return false;}return true;};export default connect(mapStateToProps,null,null,{areStatePropsEqual:areStatePropsEqual});
@@ -1,5 +0,0 @@
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,{PureComponent,Fragment}from'react';import PropTypes from'prop-types';import Availability from'@shopgate/pwa-ui-shared/Availability';import Portal from'@shopgate/pwa-common/components/Portal';import{PRODUCT_VARIANT_SELECT_PICKER_AVAILABILITY_BEFORE,PRODUCT_VARIANT_SELECT_PICKER_AVAILABILITY,PRODUCT_VARIANT_SELECT_PICKER_AVAILABILITY_AFTER}from'@shopgate/pwa-common-commerce/product/constants/Portals';import connect from"./connector";import styles from"./style";/**
2
- * The VariantAvailability component.
3
- */var VariantAvailability=/*#__PURE__*/function(_PureComponent){_inherits(VariantAvailability,_PureComponent);var _super=_createSuper(VariantAvailability);function VariantAvailability(){_classCallCheck(this,VariantAvailability);return _super.apply(this,arguments);}_createClass(VariantAvailability,[{key:"render",value:/**
4
- * @returns {JSX}
5
- */function render(){if(!this.props.availability){return null;}var availability=this.props.availability;var state=availability.state,text=availability.text;return/*#__PURE__*/React.createElement(Fragment,null,/*#__PURE__*/React.createElement(Portal,{name:PRODUCT_VARIANT_SELECT_PICKER_AVAILABILITY_BEFORE,props:availability}),/*#__PURE__*/React.createElement(Portal,{name:PRODUCT_VARIANT_SELECT_PICKER_AVAILABILITY,props:availability},/*#__PURE__*/React.createElement(Availability,{className:styles,state:state,text:text})),/*#__PURE__*/React.createElement(Portal,{name:PRODUCT_VARIANT_SELECT_PICKER_AVAILABILITY_AFTER,props:availability}));}}]);return VariantAvailability;}(PureComponent);_defineProperty(VariantAvailability,"defaultProps",{availability:null});export default connect(VariantAvailability);
@@ -1,5 +0,0 @@
1
- import{useWidgetSettings}from"../../../core";/**
2
- * @param {Object} [productStock={}] product.stock object
3
- * @returns {Object}
4
- */export var getQuantityRange=function getQuantityRange(){var productStock=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var settings=useWidgetSettings('@shopgate/engage/product/QuantityPicker');var min=settings.minOrderQuantity;if(productStock.minOrderQuantity>0){min=productStock.minOrderQuantity;}var max=settings.maxOrderQuantity;if(productStock.maxOrderQuantity>0){max=Math.min(Math.max(min,settings.maxOrderQuantity),productStock.maxOrderQuantity);}// Normalize min if max is finally less then min
5
- min=Math.min(min,max);return{min:min,max:max};};