@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,13 +1,25 @@
1
- import{APP_FEATURE_PUSH_OPT_IN,APP_FEATURE_COOKIE_CONSENT}from'@shopgate/engage/core/constants';import{hasSGJavaScriptBridge}from'@shopgate/pwa-core/helpers';/**
1
+ import{APP_FEATURE_PUSH_OPT_IN,APP_FEATURE_COOKIE_CONSENT,APP_FEATURE_ANDROID_EDGE_TO_EDGE}from'@shopgate/engage/core/constants';import{hasSGJavaScriptBridge,hasWebBridge,hasNewServices,isAndroidOs}from'@shopgate/engage/core/helpers';/**
2
+ * Checks if a specific feature flag is enabled.
3
+ *
4
+ * @param {string} category The top-level category of the featureFlags object
5
+ * (e.g., 'Push', 'Analytics', 'StatusBar').
6
+ * @param {string} flag The feature flag constant to look for.
7
+ * @returns {boolean}
8
+ */function isFeatureFlagEnabled(category,flag){var _window,_window$SGAppInfo,_window$SGAppInfo$fea,_window$SGAppInfo$fea2,_window$SGAppInfo$fea3;// Check if app provides the feature flags of the requested category
9
+ var flags=(_window=window)===null||_window===void 0?void 0:(_window$SGAppInfo=_window.SGAppInfo)===null||_window$SGAppInfo===void 0?void 0:(_window$SGAppInfo$fea=_window$SGAppInfo.featureFlags)===null||_window$SGAppInfo$fea===void 0?void 0:(_window$SGAppInfo$fea2=_window$SGAppInfo$fea[category])===null||_window$SGAppInfo$fea2===void 0?void 0:(_window$SGAppInfo$fea3=_window$SGAppInfo$fea2['1'])===null||_window$SGAppInfo$fea3===void 0?void 0:_window$SGAppInfo$fea3.flags;// CHeck if the feature flag is provided
10
+ return Array.isArray(flags)&&flags.includes(flag);}/**
2
11
  * Determines if the app supports the push opt-in feature
3
12
  * @returns {boolean}
4
- */export var appSupportsPushOptIn=function appSupportsPushOptIn(){var _window,_window$SGAppInfo,_window$SGAppInfo$fea,_window$SGAppInfo$fea2,_window$SGAppInfo$fea3;if(!hasSGJavaScriptBridge()){// Always supported in development
5
- return true;}if(!Array.isArray((_window=window)===null||_window===void 0?void 0:(_window$SGAppInfo=_window.SGAppInfo)===null||_window$SGAppInfo===void 0?void 0:(_window$SGAppInfo$fea=_window$SGAppInfo.featureFlags)===null||_window$SGAppInfo$fea===void 0?void 0:(_window$SGAppInfo$fea2=_window$SGAppInfo$fea.Push)===null||_window$SGAppInfo$fea2===void 0?void 0:(_window$SGAppInfo$fea3=_window$SGAppInfo$fea2['1'])===null||_window$SGAppInfo$fea3===void 0?void 0:_window$SGAppInfo$fea3.flags)){// Not supported on app versions that don't provide the featureFlags object
6
- return false;}// Supported when the feature flags contain the push opt-in flag
7
- return window.SGAppInfo.featureFlags.Push['1'].flags.includes(APP_FEATURE_PUSH_OPT_IN);};/**
13
+ */export var appSupportsPushOptIn=function appSupportsPushOptIn(){if(hasWebBridge()||hasNewServices()){// Not push notifications in browser mode. Deactivated for new system for now
14
+ return false;}if(!hasSGJavaScriptBridge()){// Always supported in development
15
+ return true;}return isFeatureFlagEnabled('Push',APP_FEATURE_PUSH_OPT_IN);};/**
8
16
  * Determines if the app supports the cookie consent feature
9
17
  * @returns {boolean}
10
- */export var appSupportsCookieConsent=function appSupportsCookieConsent(){var _window2,_window2$SGAppInfo,_window2$SGAppInfo$fe,_window2$SGAppInfo$fe2,_window2$SGAppInfo$fe3;if(!hasSGJavaScriptBridge()){// Always supported in development
11
- return true;}if(!Array.isArray((_window2=window)===null||_window2===void 0?void 0:(_window2$SGAppInfo=_window2.SGAppInfo)===null||_window2$SGAppInfo===void 0?void 0:(_window2$SGAppInfo$fe=_window2$SGAppInfo.featureFlags)===null||_window2$SGAppInfo$fe===void 0?void 0:(_window2$SGAppInfo$fe2=_window2$SGAppInfo$fe.Analytics)===null||_window2$SGAppInfo$fe2===void 0?void 0:(_window2$SGAppInfo$fe3=_window2$SGAppInfo$fe2['1'])===null||_window2$SGAppInfo$fe3===void 0?void 0:_window2$SGAppInfo$fe3.flags)){// Not supported on app versions that don't provide the featureFlags object
12
- return false;}// Supported when the feature flags contain the cookie consent flag
13
- return window.SGAppInfo.featureFlags.Analytics['1'].flags.includes(APP_FEATURE_COOKIE_CONSENT);};
18
+ */export var appSupportsCookieConsent=function appSupportsCookieConsent(){if(hasWebBridge()){// Deactivated in browser mode for now
19
+ return false;}if(!hasSGJavaScriptBridge()){// Always supported in development
20
+ return true;}return isFeatureFlagEnabled('Analytics',APP_FEATURE_COOKIE_CONSENT);};/**
21
+ * Determines if the app supports Android with edge-to-edge screens
22
+ * @returns {boolean}
23
+ */export var appSupportsAndroidEdgeToEdge=function appSupportsAndroidEdgeToEdge(){if(hasWebBridge()){// Deactivated in browser mode
24
+ return false;}if(!hasSGJavaScriptBridge()&&isAndroidOs){// Active in dev environment with Android user agent
25
+ return true;}return isFeatureFlagEnabled('StatusBar',APP_FEATURE_ANDROID_EDGE_TO_EDGE);};
@@ -0,0 +1,58 @@
1
+ import _regeneratorRuntime from"@babel/runtime/regenerator";function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}import{COMMAND_GET_APP_PERMISSIONS,COMMAND_REQUEST_APP_PERMISSIONS}from'@shopgate/pwa-core/constants/AppCommands';import{PERMISSION_STATUS_NOT_DETERMINED,PERMISSION_STATUS_NOT_SUPPORTED,PERMISSION_STATUS_GRANTED,PERMISSION_STATUS_DENIED,PERMISSION_ID_LOCATION,PERMISSION_ID_PUSH,PERMISSION_ID_CAMERA}from'@shopgate/pwa-core/constants/AppPermissions';import geolocationRequestBrowser from"../classes/GeolocationRequestBrowser";var MOCK_PERMISSIONS_KEY='sg-mocked-app-permissions';var getMockedAppPermissions;/**
2
+ * In development within the browser, app permissions can be mocked by calling a global functions
3
+ * on the MockedPermissions object. The values are persisted in local storage, so that they survive
4
+ * reload of the PWA.
5
+ *
6
+ * Permissions are stored "globally" and will affect every shop.
7
+ *
8
+ * Example:
9
+ * MockedAppPermissions.setGetAppPermissionsResponse('push', 'notDetermined')
10
+ * MockedAppPermissions.setRequestAppPermissionsResponse('push', 'denied')
11
+ *
12
+ * The object also provides access to the relevant constants.
13
+ *
14
+ * Example:
15
+ * MockedAppPermissions.ID_PUSH
16
+ * MockedAppPermissions.STATUS_DENIED
17
+ *
18
+ * Complete Example:
19
+ * MockedAppPermissions.setRequestAppPermissionsResponse(
20
+ * MockedAppPermissions.ID_PUSH,
21
+ * MockedAppPermissions.STATUS_DENIED
22
+ * )
23
+ */if(process.env.NODE_ENV==='development'){/**
24
+ * Retrieves mocked app permissions from the local storage
25
+ * @returns {Object|null}
26
+ */getMockedAppPermissions=function getMockedAppPermissions(){return JSON.parse(localStorage.getItem(MOCK_PERMISSIONS_KEY));};/**
27
+ * Sets a single mocked app permission status from the local storage
28
+ * @param {string} commandType Command type for which the status is set (get / request)
29
+ * @param {string} permissionId The permissionId for which the status is set
30
+ * @param {string} status The mocked permission status
31
+ */var setMockedAppPermission=function setMockedAppPermission(commandType,permissionId,status){var _current;var current=getMockedAppPermissions();if(current===null){current={};}if(!((_current=current)===null||_current===void 0?void 0:_current[permissionId])){// Add defaults for the permissionId when not set yet
32
+ current[permissionId]={get:PERMISSION_STATUS_GRANTED,request:PERMISSION_STATUS_GRANTED};}// Add the status to the mocked app permissions
33
+ current[permissionId][commandType]=status;// Update local storage
34
+ localStorage.setItem(MOCK_PERMISSIONS_KEY,JSON.stringify(current));};/**
35
+ * Prepare global object in DEV environment to mock app permissions
36
+ */var obj={setGetAppPermissionsResponse:function setGetAppPermissionsResponse(permissionId){var status=arguments.length>1&&arguments[1]!==undefined?arguments[1]:PERMISSION_STATUS_GRANTED;setMockedAppPermission('get',permissionId,status);},setRequestAppPermissionsResponse:function setRequestAppPermissionsResponse(permissionId){var status=arguments.length>1&&arguments[1]!==undefined?arguments[1]:PERMISSION_STATUS_GRANTED;setMockedAppPermission('request',permissionId,status);}};// Populate useful constants
37
+ obj.STATUS_GRANTED=PERMISSION_STATUS_GRANTED;obj.STATUS_DENIED=PERMISSION_STATUS_DENIED;obj.STATUS_NOT_DETERMINED=PERMISSION_STATUS_NOT_DETERMINED;obj.STATUS_NOT_SUPPORTED=PERMISSION_STATUS_NOT_SUPPORTED;obj.ID_PUSH=PERMISSION_ID_PUSH;obj.ID_CAMERA=PERMISSION_ID_CAMERA;obj.ID_LOCATION=PERMISSION_ID_LOCATION;window.MockedAppPermissions=obj;}/**
38
+ * Mapping of states from the browser permissions API to app permissions.
39
+ */var permissionsApiStateMapping={prompt:PERMISSION_STATUS_NOT_DETERMINED,granted:PERMISSION_STATUS_GRANTED,denied:PERMISSION_STATUS_DENIED};/**
40
+ * Determines geolocation permissions from the browser permissions API.
41
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Permissions_API
42
+ * @returns {string|null}
43
+ */var getGeolocationPermissionsFromPermissionsApi=/*#__PURE__*/function(){var _ref=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var state,_ref2;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.prev=0;_context.next=3;return navigator.permissions.query({name:'geolocation'});case 3:_ref2=_context.sent;state=_ref2.state;_context.next=9;break;case 7:_context.prev=7;_context.t0=_context["catch"](0);case 9:return _context.abrupt("return",{state:permissionsApiStateMapping[state]||null});case 10:case"end":return _context.stop();}},_callee,null,[[0,7]]);}));return function getGeolocationPermissionsFromPermissionsApi(){return _ref.apply(this,arguments);};}();/**
44
+ * Determines geolocation permissions from the browser geolocation API.
45
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API
46
+ * @returns {string}
47
+ */var getGeolocationPermissionsFromGeolocationApi=/*#__PURE__*/function(){var _ref3=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(){var state,geolocation,_ref4$code,code;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:state=PERMISSION_STATUS_GRANTED;_context2.prev=1;_context2.next=4;return geolocationRequestBrowser.dispatch();case 4:geolocation=_context2.sent;_context2.next=12;break;case 7:_context2.prev=7;_context2.t0=_context2["catch"](1);_ref4$code=_context2.t0.code;code=_ref4$code===void 0?null:_ref4$code;if(code!==null){state=PERMISSION_STATUS_DENIED;}case 12:return _context2.abrupt("return",{state:state,geolocation:geolocation});case 13:case"end":return _context2.stop();}},_callee2,null,[[1,7]]);}));return function getGeolocationPermissionsFromGeolocationApi(){return _ref3.apply(this,arguments);};}();/**
48
+ * Creates mocked app permissions to support development within browser environments.
49
+ * @param {string} commandName The name of the command for which the permissions are created
50
+ * @param {Object} [commandParams={}] The command params.
51
+ * @param {string} [fallbackStatus] The status that's returned when no status could be determined.
52
+ * @returns {Array}
53
+ */var mockedPermissions=/*#__PURE__*/function(){var _ref5=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(commandName){var commandParams,fallbackStatus,permissionIds,permissions,geolocationState,result,_args3=arguments;return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:commandParams=_args3.length>1&&_args3[1]!==undefined?_args3[1]:{};fallbackStatus=_args3.length>2&&_args3[2]!==undefined?_args3[2]:PERMISSION_STATUS_GRANTED;permissionIds=commandParams.permissionIds;permissions=commandParams.permissions;if(permissions){permissionIds=permissions.map(function(permission){return permission.permissionId;});}if(!permissionIds.includes(PERMISSION_ID_LOCATION)){_context3.next=14;break;}if(!(commandName===COMMAND_GET_APP_PERMISSIONS)){_context3.next=10;break;}_context3.next=9;return getGeolocationPermissionsFromPermissionsApi();case 9:geolocationState=_context3.sent;case 10:if(!(commandName===COMMAND_REQUEST_APP_PERMISSIONS)){_context3.next=14;break;}_context3.next=13;return getGeolocationPermissionsFromGeolocationApi();case 13:geolocationState=_context3.sent;case 14:result=permissionIds.map(function(permissionId){var _geolocationState;var state=fallbackStatus;var geolocation;var useLocalStorageMock=false;// Use mocked permissions from local storage if available
54
+ if(typeof getMockedAppPermissions==='function'){var _permissionMock$permi;var permissionMock=getMockedAppPermissions();var type=commandName===COMMAND_GET_APP_PERMISSIONS?'get':'request';var mockValue=permissionMock===null||permissionMock===void 0?void 0:(_permissionMock$permi=permissionMock[permissionId])===null||_permissionMock$permi===void 0?void 0:_permissionMock$permi[type];if(mockValue){useLocalStorageMock=true;state=mockValue||PERMISSION_STATUS_GRANTED;}}if(!useLocalStorageMock&&permissionId===PERMISSION_ID_LOCATION&&((_geolocationState=geolocationState)===null||_geolocationState===void 0?void 0:_geolocationState.state)){var _geolocationState2=geolocationState;state=_geolocationState2.state;geolocation=_geolocationState2.geolocation;}return _extends({permissionId:permissionId,status:state},geolocation?{data:geolocation}:{});});return _context3.abrupt("return",result);case 16:case"end":return _context3.stop();}},_callee3);}));return function mockedPermissions(_x){return _ref5.apply(this,arguments);};}();/**
55
+ * Creates a function to mock app permissions.
56
+ * @param {string} [fallbackStatus] The status that's returned when no status could be determined.
57
+ * @returns {Function}
58
+ */export var createMockedPermissions=function createMockedPermissions(){var fallbackStatus=arguments.length>0&&arguments[0]!==undefined?arguments[0]:PERMISSION_STATUS_GRANTED;return function(commandName,commandParams){return mockedPermissions(commandName,commandParams,fallbackStatus);};};
@@ -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;}/**
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;}/**
2
2
  * Regular expression to decode all possible types of base url from an url
3
3
  *
4
4
  * URLs of deployed apps
@@ -0,0 +1,4 @@
1
+ /* global SGJavascriptBridge */import{hasSGJavaScriptBridge}from'@shopgate/pwa-core';/**
2
+ * Checks whether the web bridge is active.
3
+ * @returns {boolean}
4
+ */export function hasWebBridge(){var _SGJavascriptBridge;if(!hasSGJavaScriptBridge()){return false;}return['web','desktop','mobile'].includes((_SGJavascriptBridge=SGJavascriptBridge)===null||_SGJavascriptBridge===void 0?void 0:_SGJavascriptBridge.type);}
@@ -0,0 +1,5 @@
1
+ import{hasWebBridge}from"./bridge";import{DEVICE_TYPE_SMARTPHONE,DEVICE_TYPE_TABLET}from"../constants/deviceTypes";/**
2
+ * Determines the type of device that should be used for CMS pages.
3
+ * @returns {string}
4
+ */export var getDeviceTypeForCms=function getDeviceTypeForCms(){return(// use the CMS pages configured for tablets for the storefront website
5
+ hasWebBridge()?DEVICE_TYPE_TABLET:DEVICE_TYPE_SMARTPHONE);};
@@ -0,0 +1,4 @@
1
+ import{configuration}from'@shopgate/pwa-common/collections';import{IS_CONNECT_EXTENSION_ATTACHED}from'@shopgate/pwa-common/constants/Configuration';/**
2
+ * Determines if the PWA uses the new backend services
3
+ * @returns {boolean}
4
+ */export var hasNewServices=function hasNewServices(){return!!configuration.get(IS_CONNECT_EXTENSION_ATTACHED);};
@@ -0,0 +1,32 @@
1
+ import{ToastProvider}from'@shopgate/pwa-common/providers';import{MODAL_PIPELINE_ERROR}from'@shopgate/pwa-common/constants/ModalTypes';import showModal from'@shopgate/pwa-common/actions/modal/showModal';import{logger,i18n}from'@shopgate/engage/core/helpers';/**
2
+ * Creates an error message for a pipeline and a code
3
+ * @param {string} message The pipeline message
4
+ * @param {Object} params Additional params for the message
5
+ * @param {string} [pipeline=''] Name of the pipeline which caused the error
6
+ * @returns {string}
7
+ */var getErrorMessage=function getErrorMessage(message){var params=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var pipeline=arguments.length>2&&arguments[2]!==undefined?arguments[2]:'';if(!/^((\w+)\.){1,}/gi.test(message)){// Stop processing when the message is no i18n key
8
+ return i18n.text(message,params);}var segments=message.split('.');var code=segments.pop();var pipelineKeys=[];var codeKeys=[];var genericKeys=[];var keys=[];// Generate a bunch of lookup keys from the message
9
+ while(segments.length){pipelineKeys.push([].concat(segments,[pipeline,code]));codeKeys.push([].concat(segments,[code]));genericKeys.push([].concat(segments,['generic']));segments.pop();}// Add common keys
10
+ keys=[].concat(pipelineKeys,codeKeys,genericKeys,["common.errors.".concat(code),'common.errors.generic']);var match=keys.find(function(key){return i18n.getPath(key);});try{return i18n.text(match,params);}catch(e){return i18n.text(keys[keys.length-1]);}};/**
11
+ * Generates an error object for the error behaviors
12
+ * @param {Object} originalError The original error object
13
+ * @returns {Object}
14
+ */var getErrorObject=function getErrorObject(originalError){var code=originalError.code,_originalError$contex=originalError.context,pipeline=_originalError$contex===void 0?'':_originalError$contex,meta=originalError.meta;var _meta$input=meta.input,pipelineInput=_meta$input===void 0?{}:_meta$input,originalMessage=meta.message,additionalParams=meta.additionalParams,translated=meta.translated;var message=translated?originalMessage:getErrorMessage(originalMessage,additionalParams,pipeline);var sanitized={code:code?code.toString():code,pipeline:pipeline,pipelineInput:pipelineInput,originalMessage:originalMessage,message:message,additionalParams:additionalParams,translated:translated};return sanitized;};/**
15
+ * Enables a custom implementation for an error behavior. The passed callback will be invoked with
16
+ * an object similar to streams (dispatch, getState, events). Additionally it contains the error
17
+ * object and the error message.
18
+ * @param {Function} callback A callback function for the custom error behavior
19
+ * @returns {Function}
20
+ */var custom=function custom(callback){return function(_ref){var dispatch=_ref.dispatch,getState=_ref.getState,events=_ref.events,error=_ref.error;if(typeof callback!=='function'){logger.error('errorBehavior.custom: Please provide a callback function');return;}var sanitized=getErrorObject(error);callback({dispatch:dispatch,getState:getState,events:events,error:sanitized,message:sanitized.message});};};/**
21
+ * Enables to dispatch a Redux action via a passed callback.
22
+ * The callback is invoked with the error message.
23
+ * @param {Function} callback A callback function for the custom error behavior
24
+ * @returns {Function}
25
+ */var dispatchAction=function dispatchAction(callback){return function(_ref2){var dispatch=_ref2.dispatch,error=_ref2.error;var _getErrorObject=getErrorObject(error),message=_getErrorObject.message;dispatch(callback(message));};};/**
26
+ * Displays a pipeline error as a modal.
27
+ * @returns {Function}
28
+ */var modal=function modal(){return function(_ref3){var dispatch=_ref3.dispatch,error=_ref3.error;var _getErrorObject2=getErrorObject(error),code=_getErrorObject2.code,pipeline=_getErrorObject2.pipeline,message=_getErrorObject2.message,pipelineInput=_getErrorObject2.pipelineInput,originalMessage=_getErrorObject2.originalMessage,additionalParams=_getErrorObject2.additionalParams,translated=_getErrorObject2.translated;dispatch(showModal({confirm:'modal.ok',dismiss:null,title:null,message:message,type:MODAL_PIPELINE_ERROR,params:{pipeline:pipeline,request:pipelineInput,message:originalMessage,code:code,translated:translated,messageParams:additionalParams}}));};};/**
29
+ * Displays a pipeline error as a toast message.
30
+ * @param {number} duration An optional display duration in ms for the toast
31
+ * @returns {Function}
32
+ */var toast=function toast(duration){return function(_ref4){var events=_ref4.events,error=_ref4.error;var _getErrorObject3=getErrorObject(error),message=_getErrorObject3.message;events.emit(ToastProvider.ADD,{id:'pipeline.error',message:message,duration:duration});};};export default{getErrorMessage:getErrorMessage,toast:toast,modal:modal,custom:custom,dispatchAction:dispatchAction};
@@ -0,0 +1,11 @@
1
+ import{themeName,shopNumber}from'@shopgate/pwa-common/helpers/config';import{isDev}from'@shopgate/engage/core/helpers';var STORE_KEY_PREFIX="sgFeatureFlag_".concat(shopNumber,"_").concat(themeName,"__");/**
2
+ * @param {string} key key
3
+ * @returns {string}
4
+ */export function getFeatureFlag(key){return window.localStorage.getItem("".concat(STORE_KEY_PREFIX).concat(key));}/**
5
+ * @param {string} key key
6
+ */export function setABFeatureFlag(key){var hasFlag=getFeatureFlag(key);// flag is already set for user
7
+ if(hasFlag!==null){return;}var random=Math.round(Math.random()*100+1);window.localStorage.setItem("".concat(STORE_KEY_PREFIX).concat(key),random);}/**
8
+ * @param {string} key Key
9
+ * @param {number} percentage percentage for how many users the flag should be set
10
+ * @returns {boolean}
11
+ */export function isFeatureEnabled(key){var percentage=arguments.length>1&&arguments[1]!==undefined?arguments[1]:10;if(isDev){return true;}var featureFlagRandomNumber=getFeatureFlag(key);return featureFlagRandomNumber<=percentage;}
@@ -1,8 +1,27 @@
1
- import{getProductImageSettings}from"../../product/helpers";import{getImageFormat}from"./getImageFormat";/**
1
+ import{CONFIGURATION_COLLECTION_CREATE_EXTERNAL_IMAGE_URL}from'@shopgate/engage/core/constants';import{configuration}from'@shopgate/engage/core/collections';import{getProductImageSettings}from"../../product/helpers";import{getImageFormat}from"./getImageFormat";/**
2
+ * Regex to detect the "fill" query parameter
3
+ */var fillParamRegex=/(fill|fillc)=(\w+)%2C(\d)($|&)/i;/**
4
+ * Appends image service parameters to an image service url
5
+ * @param {string} baseUrl The base url
6
+ * @param {Object} params Additional params for the url
7
+ * @returns {string}
8
+ */var buildUrl=function buildUrl(baseUrl){var params=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var parsedUrl=new URL(baseUrl);/**
9
+ * To improve caching of images, we need to create urls with a consistent order of query params.
10
+ * Otherwise it can happen that different urls create equal images, just because of different
11
+ * ordered query params.
12
+ * To reach this goal we utilize the "append" method of the URLSearchParams object and apply
13
+ * the params in the order given by the "params" object. Since "append" could create duplicate
14
+ * query params, each param needs to be removed from the URLSearchParams before it's added again.
15
+ */Object.keys(params).forEach(function(key){parsedUrl.searchParams["delete"](key);return parsedUrl.searchParams.append(key,params[key]);});/**
16
+ * The "fill" parameter contains a ",". Since this would be url encoded by toString(), and the
17
+ * service will not recognize it anymore, we need to replace the encoding with a ",".
18
+ */return parsedUrl.toString().replace(fillParamRegex,'$1=$2,$3$4');};/**
2
19
  * Returns the actual url to the image, by adding url parameters with the dimensions for img-cdn
3
20
  * @param {string} src Source to the image.
4
21
  * @param {Object} dimension Dimension of the requested image.
5
22
  * @param {number} dimension.width Width in pixels.
6
23
  * @param {number} dimension.height Height in pixels.
7
24
  * @returns {string}
8
- */export var getFullImageSource=function getFullImageSource(src,_ref){var width=_ref.width,height=_ref.height;if(src&&src.includes('images.shopgate.services/v2/images')){var _getProductImageSetti=getProductImageSettings(),fillColor=_getProductImageSetti.fillColor,quality=_getProductImageSetti.quality;var format=getImageFormat();return"".concat(src,"&format=").concat(format,"&width=").concat(width,"&height=").concat(height,"&quality=").concat(quality,"&fill=").concat(fillColor.replace('#',''));}if(src&&src.startsWith('https://img-cdn.shopgate.com')&&!src.includes('?')){return"".concat(src,"?w=").concat(width,"&h=").concat(height,"&q=70&zc=resize&fillc=FFFFFF");}return src;};
25
+ */export var getFullImageSource=function getFullImageSource(src){var _ref=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},width=_ref.width,height=_ref.height;if(src&&src.includes('images.shopgate.services/v2/images')){var _getProductImageSetti2=getProductImageSettings(),fillColor=_getProductImageSetti2.fillColor,quality=_getProductImageSetti2.quality;var format=getImageFormat();return buildUrl(src,{format:format,width:width,height:height,quality:quality,fill:fillColor.replace('#','')});}if(src&&src.startsWith('https://img-cdn.shopgate.com')&&!src.includes('?')){return buildUrl(src,{w:width,h:height,q:70,zd:'resize',fillc:'FFFFFF'});}// Check if an extension registered an external image url handler within the config collection.
26
+ var createUrlFn=configuration.get(CONFIGURATION_COLLECTION_CREATE_EXTERNAL_IMAGE_URL);if(typeof createUrlFn==='function'){var _getProductImageSetti4=getProductImageSettings(),_fillColor=_getProductImageSetti4.fillColor,_quality=_getProductImageSetti4.quality;var _format=getImageFormat();// Invoke the handler with all relevant parameters.
27
+ var externalUrl=createUrlFn(src,{width:width,height:height,fillColor:_fillColor,quality:_quality,format:_format});if(!!externalUrl&&typeof externalUrl==='string'){return externalUrl;}}return src;};
@@ -0,0 +1,8 @@
1
+ var BASE_URL='https://www.google.com/maps';/**
2
+ * Generates a universal link to google maps that shows the direction to given address.
3
+ * @param {Object} address The address object.
4
+ * @param {string} address.street Street name and number
5
+ * @param {string} address.city City name
6
+ * @param {string} address.postalCode Postal code.
7
+ * @returns {string}
8
+ */export var generateGoogleMapsDirectionsUrl=function generateGoogleMapsDirectionsUrl(){var address=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var mapDestination=encodeURIComponent("".concat(address.street,", ").concat(address.city," ").concat(address.postalCode));var url="".concat(BASE_URL,"/dir/?api=1&destination=").concat(mapDestination);return url;};
@@ -1,4 +1,4 @@
1
- import{getTranslator,getPriceFormatter,getDateFormatter,getTimeFormatter,getNumberFormatter}from'@shopgate/pwa-common/helpers/i18n';import{logger}from'@shopgate/pwa-core/helpers';/**
1
+ import get from'lodash/get';import{getTranslator,getPriceFormatter,getDateFormatter,getTimeFormatter,getNumberFormatter}from'@shopgate/pwa-common/helpers/i18n';import{logger}from'@shopgate/pwa-core/helpers';/**
2
2
  * @typedef {Object} I18nHelpers
3
3
  * @property {Function} init - Inits locales.
4
4
  * @property {Function} text - Text translator.
@@ -7,14 +7,19 @@ import{getTranslator,getPriceFormatter,getDateFormatter,getTimeFormatter,getNumb
7
7
  * @property {Function} date - Date translator.
8
8
  * @property {Function} time - Time translator.
9
9
  * @property {Function} number - Number translator
10
+ * @property {Function} getSupplementalData - Get Supplemental Data
11
+ * @property {Function} getPath - Get locale data by path
12
+ * @property {Function} getLang - Get locale lang code, eg de-DE
10
13
  */ /**
11
14
  * I18n helpers.
12
15
  * @returns {I18nHelpers}
13
16
  */var I18n=function I18n(){var didInit=false;/**
14
17
  * Function that throws when called. Used in a default instance of i18n to notify developer
15
18
  * when the module is used without initialization.
16
- */var notReadyCb=function notReadyCb(){logger.error('i18n is not yet ready. Please postpone translations until App is bootstrapped.');};return{init:function init(_ref){var _this=this;var locales=_ref.locales,lang=_ref.lang,_ref$currencyLocale=_ref.currencyLocale,currencyLocale=_ref$currencyLocale===void 0?null:_ref$currencyLocale;if(didInit){logger.warn('Looks like i18n locales are already inited. Changing locales now may lead to inconsistent translations.');}didInit=true;this.text=getTranslator(locales,lang);this.textWithDefault=function(key,defaultText){var text=_this.text(key);return text===key?defaultText:text;};this.price=getPriceFormatter(currencyLocale||lang);this.date=getDateFormatter(lang);this.time=getTimeFormatter(lang);this.number=getNumberFormatter(lang);// If component decides to act accordingly this information should be exposed.
17
- this.ready=true;},text:notReadyCb,textWithDefault:notReadyCb,price:notReadyCb,date:notReadyCb,time:notReadyCb,number:notReadyCb,ready:false};};/**
18
- *
19
+ */var notReadyCb=function notReadyCb(){logger.error('i18n is not yet ready. Please postpone translations until App is bootstrapped.');};return{init:function init(_ref){var _this=this;var locales=_ref.locales,lang=_ref.lang,_ref$currencyLocale=_ref.currencyLocale,currencyLocale=_ref$currencyLocale===void 0?null:_ref$currencyLocale;if(didInit){logger.warn('Looks like i18n locales are already initialized. Changing locales now may lead to inconsistent translations.');}didInit=true;this.text=getTranslator(locales,lang);this.textWithDefault=function(key,defaultText){var text=_this.text(key);return text===key?defaultText:text;};this.price=getPriceFormatter(currencyLocale||lang);this.date=getDateFormatter(lang);this.time=getTimeFormatter(lang);this.number=getNumberFormatter(lang);this.getSupplementalData=function(){return locales.supplementalData||{};};this.getPath=function(path){return get(locales,path);};this.getLang=function(){return lang;};// If component decides to act accordingly this information should be exposed.
20
+ this.ready=true;},text:notReadyCb,textWithDefault:notReadyCb,price:notReadyCb,date:notReadyCb,time:notReadyCb,number:notReadyCb,getSupplementalData:notReadyCb,getPath:notReadyCb,getLang:notReadyCb,ready:false};};/**
19
21
  * @type {I18nHelpers}
20
- */export var i18n=I18n();
22
+ */export var i18n=I18n();/**
23
+ * Return order of week days, based on firstDay of week locale settings
24
+ * @returns {string[]}
25
+ */export var getWeekDaysOrder=function getWeekDaysOrder(){var _i18n$getSupplemental=i18n.getSupplementalData(),_i18n$getSupplemental2=_i18n$getSupplemental.weekData,_i18n$getSupplemental3=_i18n$getSupplemental2===void 0?{}:_i18n$getSupplemental2,_i18n$getSupplemental4=_i18n$getSupplemental3.firstDay,firstDay=_i18n$getSupplemental4===void 0?'sun':_i18n$getSupplemental4;var days=['sun','mon','tue','wed','thu','fri','sat'];var dayIndex=days.findIndex(function(d){return d===firstDay;});return days.slice(dayIndex).concat(days.slice(0,dayIndex));};
@@ -1,7 +1,7 @@
1
- /** @module core */import{getCurrentRoute as getCurrentRouteHelper,router,history,parseQueryStringToObject,parseObjectToQueryString}from'@shopgate/pwa-common/helpers/router';export*from"./appFeatures";export*from"./baseUrl";export{getFullImageSource}from"./getFullImageSource";export{getImageFormat}from"./getImageFormat";export{i18n}from"./i18n";export{updateLegacyNavigationBar}from"./updateLegacyNavigationBar";// --------------- CORE --------------- //
2
- export*from'@shopgate/pwa-core/helpers';export{default as logGroup}from'@shopgate/pwa-core/helpers/logGroup';export*from'@shopgate/pwa-core/helpers/version';export*from'@shopgate/pwa-common/helpers/data';export*from'@shopgate/pwa-common/helpers/date';export*from'@shopgate/pwa-common/helpers/dom';export*from'@shopgate/pwa-common/helpers/environment';export{default as decodeHTML}from'@shopgate/pwa-common/helpers/html/decodeHTML';export*from'@shopgate/pwa-common/helpers/html/handleDOM';export{default as parseHTML}from'@shopgate/pwa-common/helpers/html/parseHTML';export{default as getTranslator}from'@shopgate/pwa-common/helpers/i18n/getTranslator';export{default as getPriceFormatter}from'@shopgate/pwa-common/helpers/i18n/getPriceFormatter';export{default as getDateFormatter}from'@shopgate/pwa-common/helpers/i18n/getDateFormatter';export{default as getTimeFormatter}from'@shopgate/pwa-common/helpers/i18n/getTimeFormatter';export{default as getNumberFormatter}from'@shopgate/pwa-common/helpers/i18n/getNumberFormatter';export*from'@shopgate/pwa-common/helpers/legacy';// TODO: Can only be exported once the theme uses it. causes issues with the custom routes feature.
1
+ /** @module core */import{getCurrentRoute as getCurrentRouteHelper,router,history,parseQueryStringToObject,parseObjectToQueryString}from'@shopgate/pwa-common/helpers/router';export*from"./environment";export*from"./appFeatures";export*from"./appPermissions";export*from"./baseUrl";export*from"./bridge";export{isBeta}from"../config/isBeta";export{getFullImageSource}from"./getFullImageSource";export{getImageFormat}from"./getImageFormat";export{svgToDataUrl}from"./svgToDataUrl";export{i18n,getWeekDaysOrder}from"./i18n";export{updateLegacyNavigationBar}from"./updateLegacyNavigationBar";export{updateAndroidNavigationBarColor}from"./androidNavigationBar";export{default as nl2br}from"./nl2br";export*from"./string";export{isIOSTheme}from"./isIOSTheme";export{isTouchDevice}from"./isTouchDevice";export{generateGoogleMapsDirectionsUrl}from"./googleMaps";export{useScrollContainer}from"./scrollContainer";export{getDeviceTypeForCms}from"./deviceType";export*from"./featureFlag";// --------------- CORE --------------- //
2
+ export{logger,ajaxUrl,hasSGJavaScriptBridge,useBrowserConnector,hasWebBridgeCore,logDeprecationMessage}from'@shopgate/pwa-core/helpers';export{default as logGroup}from'@shopgate/pwa-core/helpers/logGroup';export*from'@shopgate/pwa-core/helpers/version';export*from'@shopgate/pwa-common/helpers/data';export*from'@shopgate/pwa-common/helpers/date';export*from'@shopgate/pwa-common/helpers/dom';export{env,isDev,isProd,isRemote,isStaging,isWindows}from'@shopgate/pwa-common/helpers/environment';export{default as decodeHTML}from'@shopgate/pwa-common/helpers/html/decodeHTML';export*from'@shopgate/pwa-common/helpers/html/handleDOM';export{default as parseHTML}from'@shopgate/pwa-common/helpers/html/parseHTML';export{default as getTranslator}from'@shopgate/pwa-common/helpers/i18n/getTranslator';export{default as getPriceFormatter}from'@shopgate/pwa-common/helpers/i18n/getPriceFormatter';export{default as getDateFormatter}from'@shopgate/pwa-common/helpers/i18n/getDateFormatter';export{default as getTimeFormatter}from'@shopgate/pwa-common/helpers/i18n/getTimeFormatter';export{default as getNumberFormatter}from'@shopgate/pwa-common/helpers/i18n/getNumberFormatter';export*from'@shopgate/pwa-common/helpers/legacy';// TODO: Can only be exported once the theme uses it. causes issues with the custom routes feature.
3
3
  /*
4
4
  export { default as portalCollection } from '@shopgate/pwa-common/helpers/portals/portalCollection';
5
5
  export { default as routePortals } from '@shopgate/pwa-common/helpers/portals/routePortals';
6
- */export*from'@shopgate/pwa-common/helpers/redux';export*from'@shopgate/pwa-common/helpers/style';export*from'@shopgate/pwa-common/helpers/tracking';export*from'@shopgate/pwa-common/helpers/validation';// --------------- ROUTER --------------- //
6
+ */export*from'@shopgate/pwa-common/helpers/redux';export*from'@shopgate/pwa-common/helpers/style';export*from'@shopgate/pwa-common/helpers/tracking';export*from'@shopgate/pwa-common/helpers/validation';export{default as errorBehavior}from"./errorBehavior";// --------------- ROUTER --------------- //
7
7
  export{getCurrentRouteHelper,router,history,parseQueryStringToObject,parseObjectToQueryString};export{push,pop,replace,reset}from"../router/helpers";
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Checks if current theme is an iOS theme.
3
+ * @returns {boolean}
4
+ */export function isIOSTheme(){if(!process.env.THEME){return false;}return process.env.THEME.includes('ios');}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Checks if the device is a touch device.
3
+ * @returns {boolean}
4
+ */export var isTouchDevice=function isTouchDevice(){try{document.createEvent('TouchEvent');return true;}catch(e){return false;}};
@@ -0,0 +1 @@
1
+ export default(function(str){var isXhtml=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var breakTag=isXhtml?'<br />':'<br>';return String(str).replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g,"$1".concat(breakTag,"$2"));});
@@ -0,0 +1,4 @@
1
+ import{hasWebBridge}from"./bridge";/**
2
+ * Checks whether the app shall use a scroll container
3
+ * @returns {boolean}
4
+ */export var useScrollContainer=function useScrollContainer(){return!hasWebBridge();};
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Takes a string and transforms the string into upper case.
3
+ * @param {string} text The string to modify.
4
+ * @returns {string}
5
+ */export var toUpperCase=function toUpperCase(text){return text.toUpperCase();};/**
6
+ * Takes a string and transforms the string into lower case.
7
+ * @param {string} text The string to modify.
8
+ * @returns {string}
9
+ */export var toLowerCase=function toLowerCase(text){return text.toLowerCase();};
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Converts a raw SVG markup string into a Base64-encoded data URL
3
+ * @param {string} svg the SVG which should be converted
4
+ * @param {string} [fallbackSVG] the fallback SVG in case the first isn't available
5
+ * @returns {string|null} data URL
6
+ */export var svgToDataUrl=function svgToDataUrl(svg,fallbackSVG){if(!svg){return fallbackSVG||null;}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(svg);// 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 fallbackSVG||null;}};
@@ -1,4 +1,7 @@
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 Color from'color';import broadcastEvent from'@shopgate/pwa-core/commands/broadcastEvent';/**
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 Color from'color';import{isAvailable,StatusBar}from'@shopgate/native-modules';import{broadcastEvent}from'@shopgate/engage/core/commands';import{isDev}from'@shopgate/engage/core/helpers';import{UIEvents}from'@shopgate/engage/core/events';/**
2
2
  * Updates the styles of the navigation bar of iOS devices.
3
3
  * @param {Object} options Options for the status bar.
4
- */export var updateLegacyNavigationBar=function updateLegacyNavigationBar(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var targetTab=options.targetTab||'main';var isDefault=options.isDefault;var styles=_extends({},options.color&&{color:options.color},options.background&&{background:options.background},options.buttonColor&&{buttonColor:options.buttonColor},options.buttonColorDisabled&&{buttonColorDisabled:options.buttonColorDisabled},options.statusBarBackground&&{statusBarBackground:options.statusBarBackground});if(!styles.statusBarBackground&&styles.background){styles.statusBarBackground=styles.background;}var statusBarStyle;if(options.statusBarStyle){statusBarStyle=options.statusBarStyle;}else if(styles.statusBarBackground){statusBarStyle=Color(styles.statusBarBackground).isDark()?'light':'dark';}broadcastEvent({event:'updateNavigationBarStyle',parameters:[_extends({},statusBarStyle&&{statusBarStyle:statusBarStyle},isDefault&&{isDefault:isDefault},{targetTab:targetTab,styles:styles})]});};
4
+ */export var updateLegacyNavigationBar=function updateLegacyNavigationBar(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var targetTab=options.targetTab||'main';var isDefault=options.isDefault;var styles=_extends({},options.color&&{color:options.color},{},options.background&&{background:options.background},{},options.buttonColor&&{buttonColor:options.buttonColor},{},options.buttonColorDisabled&&{buttonColorDisabled:options.buttonColorDisabled},{},options.statusBarBackground&&{statusBarBackground:options.statusBarBackground});if(!styles.statusBarBackground&&styles.background){styles.statusBarBackground=styles.background;}var statusBarStyle;if(options.statusBarStyle){statusBarStyle=options.statusBarStyle;}else if(styles.statusBarBackground){if(styles.statusBarBackground==='transparent'){statusBarStyle='none';}else{statusBarStyle=Color(styles.statusBarBackground).isDark()?'light':'dark';}}// Status bar update via native-modules deactivated for now since it doesn't work
5
+ // reliable when opening a page inside the In-App-Browser.
6
+ if(false&&isAvailable()){var style=statusBarStyle==='dark'?'dark-content':'light-content';StatusBar.setBarStyle({style:style});if(styles.statusBarBackground){StatusBar.setBackgroundColor({color:styles.statusBarBackground});}return;}var payload=_extends({},statusBarStyle&&{statusBarStyle:statusBarStyle},{},isDefault&&{isDefault:isDefault},{targetTab:targetTab,styles:styles});broadcastEvent({event:'updateNavigationBarStyle',parameters:[payload]});if(isDev){// Dispatch the payload in dev as regular event, so that simulated top inset can adopt the color
7
+ UIEvents.emit('devInternalUpdateStatusBarStyle',payload);}};
@@ -0,0 +1 @@
1
+ export{default as withShowModal}from'@shopgate/pwa-common/helpers/modal/withShowModal';export{withTheme}from"./withTheme";export{withRoute}from"./withRoute";export{withCurrentProduct}from"./withCurrentProduct";export{withForwardedRef}from"./withForwardedRef";export{withNavigation}from"./withNavigation";export{withWidgetSettings}from"./withWidgetSettings";export{withWidgetStyles}from"./withWidgetStyles";export{withApp}from"./withApp";export{withThemeResources,withThemeComponents,withThemeWidgets}from"./withThemeResources";
@@ -6,4 +6,4 @@ function _extends(){_extends=Object.assign||function(target){for(var i=1;i<argum
6
6
  * The actual HOC.
7
7
  * @param {Object} props The component props.
8
8
  * @returns {JSX}
9
- */var WithApp=function WithApp(props){return/*#__PURE__*/React.createElement(AppContext.Consumer,null,function(appContext){return/*#__PURE__*/React.createElement(WrappedComponent,_extends({app:appContext},props));});};var displayName=WrappedComponent.displayName||WrappedComponent.name||'Component';WithApp.displayName="WithApp(".concat(displayName,")");return WithApp;}
9
+ */var WithApp=function WithApp(props){return React.createElement(AppContext.Consumer,null,function(appContext){return React.createElement(WrappedComponent,_extends({app:appContext},props));});};var displayName=WrappedComponent.displayName||WrappedComponent.name||'Component';WithApp.displayName="WithApp(".concat(displayName,")");return WithApp;}
@@ -1,4 +1,4 @@
1
- function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import React from'react';import{ThemeContext}from'@shopgate/pwa-common/context';/**
1
+ function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import React,{useContext}from'react';import{ThemeContext}from'@shopgate/pwa-common/context';/**
2
2
  * Gets the context props for the wrapped component.
3
3
  * @param {Object} context The context.
4
4
  * @param {string|null} prop The optional prop name.
@@ -7,10 +7,10 @@ function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj
7
7
  * Injects the current Product Context information into the desired component.
8
8
  * @param {Function} WrappedComponent The react component to wrap.
9
9
  * @param {Object} [options] A optional prop name to inject the current product properties.
10
- * @param {string} options.prop An optional prop name to inject the current product properties.
10
+ * @param {string} [options.prop] An optional prop name to inject the current product properties.
11
11
  * @returns {JSX}
12
12
  */export function withCurrentProduct(WrappedComponent){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};/**
13
13
  * The actual HOC.
14
14
  * @param {Object} props The component props.
15
15
  * @returns {JSX}
16
- */var WithCurrentProduct=function WithCurrentProduct(props){return/*#__PURE__*/React.createElement(ThemeContext.Consumer,null,function(_ref2){var ProductContext=_ref2.contexts.ProductContext;return/*#__PURE__*/React.createElement(ProductContext.Consumer,null,function(productProps){return/*#__PURE__*/React.createElement(WrappedComponent,_extends({},getInjectedProps(productProps,options.prop),props));});});};var displayName=WrappedComponent.displayName||WrappedComponent.name||'Component';WithCurrentProduct.displayName="WithCurrentProduct(".concat(displayName,")");return WithCurrentProduct;}
16
+ */function WithCurrentProduct(props){var _useContext=useContext(ThemeContext),ProductContext=_useContext.contexts.ProductContext;var productProps=useContext(ProductContext);return React.createElement(WrappedComponent,_extends({},getInjectedProps(productProps,options.prop),props));}var displayName=WrappedComponent.displayName||WrappedComponent.name||'Component';WithCurrentProduct.displayName="WithCurrentProduct(".concat(displayName,")");return WithCurrentProduct;}
@@ -10,4 +10,4 @@ function _extends(){_extends=Object.assign||function(target){for(var i=1;i<argum
10
10
  * @param {Object} props The component props.
11
11
  * @param {Object} ref The forwarded ref.
12
12
  * @returns {JSX}
13
- */var WithForwardedRef=function WithForwardedRef(props,ref){var injected=_defineProperty({},options.prop||'forwardedRef',ref);return/*#__PURE__*/React.createElement(WrappedComponent,_extends({},props,injected));};var displayName=WrappedComponent.displayName||WrappedComponent.name||'Component';WithForwardedRef.displayName="WithForwardedRef(".concat(displayName,")");return/*#__PURE__*/forwardRef(WithForwardedRef);}
13
+ */var WithForwardedRef=function WithForwardedRef(props,ref){var injected=_defineProperty({},options.prop||'forwardedRef',ref);return React.createElement(WrappedComponent,_extends({},props,injected));};var displayName=WrappedComponent.displayName||WrappedComponent.name||'Component';WithForwardedRef.displayName="WithForwardedRef(".concat(displayName,")");return forwardRef(WithForwardedRef);}
@@ -12,4 +12,4 @@ function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj
12
12
  * The actual HOC.
13
13
  * @param {Object} props The component props.
14
14
  * @returns {JSX}
15
- */var WithNavigation=function WithNavigation(props){return/*#__PURE__*/React.createElement(WrappedComponent,_extends({},getInjectedProps(options.prop),props));};var displayName=WrappedComponent.displayName||WrappedComponent.name||'Component';WithNavigation.displayName="WithNavigation(".concat(displayName,")");return WithNavigation;}
15
+ */var WithNavigation=function WithNavigation(props){return React.createElement(WrappedComponent,_extends({},getInjectedProps(options.prop),props));};var displayName=WrappedComponent.displayName||WrappedComponent.name||'Component';WithNavigation.displayName="WithNavigation(".concat(displayName,")");return WithNavigation;}
@@ -13,4 +13,4 @@ function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj
13
13
  * The actual HOC.
14
14
  * @param {Object} props The component props.
15
15
  * @returns {JSX}
16
- */var WithRoute=function WithRoute(props){return/*#__PURE__*/React.createElement(RouteContext.Consumer,null,function(routeContext){return/*#__PURE__*/React.createElement(WrappedComponent,_extends({},getInjectedProps(routeContext,options.prop),props));});};var displayName=WrappedComponent.displayName||WrappedComponent.name||'Component';WithRoute.displayName="WithRoute(".concat(displayName,")");return WithRoute;}
16
+ */var WithRoute=function WithRoute(props){return React.createElement(RouteContext.Consumer,null,function(routeContext){return React.createElement(WrappedComponent,_extends({},getInjectedProps(routeContext,options.prop),props));});};var displayName=WrappedComponent.displayName||WrappedComponent.name||'Component';WithRoute.displayName="WithRoute(".concat(displayName,")");return WithRoute;}
@@ -8,10 +8,49 @@ var _excluded=["contexts"];function _objectWithoutProperties(source,excluded){if
8
8
  * @param {Function} WrappedComponent The react component to wrap.
9
9
  * @param {Object} [options={}] Options for the HOC.
10
10
  * @param {string} [options.prop] An optional prop name to inject the theme properties.
11
- * @returns {JSX}
11
+ * @deprecated
12
+ *
13
+ * Use `withThemeComponents()` instead.
14
+ * ```js
15
+ * import { withThemeComponents } from '@shopgate/engage/core/hocs';
16
+ *
17
+ * function MyComponent({ themeComponents }) {
18
+ * const { ProductCard } = themeComponents;
19
+ * return <ProductCard />;
20
+ * }
21
+ * ````
22
+ * This HOC will NOT expose components that can be imported directly from the `@shopgate/engage`
23
+ * package (see list below).
24
+ *
25
+ * ---
26
+ * Use these updated imports instead of deprecated context values:
27
+ *
28
+ * ```js
29
+ * // Deprecated: Drawer → use SheetDrawer
30
+ * import { SheetDrawer } from '@shopgate/engage/components';
31
+ *
32
+ * // Deprecated: PriceDifference → use PriceDifference
33
+ * import { PriceDifference } from '@shopgate/engage/product/components';
34
+ *
35
+ * // Deprecated: ProductSlider → use ProductSlider
36
+ * import { ProductSlider } from '@shopgate/engage/product/components';
37
+ *
38
+ * // Deprecated: SelectOption → use SelectOption
39
+ * import { SelectOption } from '@shopgate/engage/product/components';
40
+ *
41
+ * // Deprecated: TextOption → use TextOption
42
+ * import { TextOption } from '@shopgate/engage/product/components';
43
+ *
44
+ * // Deprecated: View → use View
45
+ * import { View } from '@shopgate/engage/components'
46
+ *
47
+ * // Deprecated: { contexts: { ProductContext }} → use ProductContext
48
+ * import { ProductContext } from '@shopgate/engage/product/contexts';
49
+ * ```
50
+ * @returns {JSX.Element}
12
51
  */export function withTheme(WrappedComponent){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};/**
13
52
  * The actual HOC.
14
53
  * @param {Object} props The component props.
15
- * @returns {JSX}
16
- */var WithTheme=function WithTheme(props){return/*#__PURE__*/React.createElement(ThemeContext.Consumer,null,function(_ref2){var contexts=_ref2.contexts,themeContext=_objectWithoutProperties(_ref2,_excluded);return/*#__PURE__*/ (// The contexts are left out in favor of other HOCs.
54
+ * @returns {JSX.Element}
55
+ */var WithTheme=function WithTheme(props){return React.createElement(ThemeContext.Consumer,null,function(_ref2){var contexts=_ref2.contexts,themeContext=_objectWithoutProperties(_ref2,_excluded);return(// The contexts are left out in favor of other HOCs.
17
56
  React.createElement(WrappedComponent,_extends({},getInjectedProps(themeContext,options.prop),props)));});};var displayName=WrappedComponent.displayName||WrappedComponent.name||'Component';WithTheme.displayName="WithTheme(".concat(displayName,")");return WithTheme;}
@@ -0,0 +1,16 @@
1
+ function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import React from'react';import{useThemeResources,useThemeComponents,useThemeWidgets}from'@shopgate/engage/core/hooks';/**
2
+ * HOC that injects the value of the ThemeResources context as a prop called `themeResources`.
3
+ * The context provides access to different groups of React components provided by the theme.
4
+ * @param {React.ComponentType<any>} WrappedComponent The wrapped component
5
+ * @returns {React.FC<any>}
6
+ */export var withThemeResources=function withThemeResources(WrappedComponent){return function ThemeResourcesWrapper(props){var themeResources=useThemeResources();return React.createElement(WrappedComponent,_extends({},props,{themeResources:themeResources}));};};/**
7
+ * HOC that injects the `components` value of the ThemeResources context as a prop called
8
+ * `themeComponents`.
9
+ * @param {React.ComponentType<any>} WrappedComponent The wrapped component
10
+ * @returns {React.FC<any>}
11
+ */export var withThemeComponents=function withThemeComponents(WrappedComponent){return function ThemeResourcesWrapper(props){var themeComponents=useThemeComponents();return React.createElement(WrappedComponent,_extends({},props,{themeComponents:themeComponents}));};};/**
12
+ * HOC that injects the `widgets` value of the ThemeResources context as a prop called
13
+ * `themeWidgets`.
14
+ * @param {React.ComponentType<any>} WrappedComponent The wrapped component
15
+ * @returns {React.FC<any>}
16
+ */export var withThemeWidgets=function withThemeWidgets(WrappedComponent){return function ThemeResourcesWrapper(props){var themeWidgets=useThemeWidgets();return React.createElement(WrappedComponent,_extends({},props,{themeWidgets:themeWidgets}));};};
@@ -10,4 +10,4 @@ function _extends(){_extends=Object.assign||function(target){for(var i=1;i<argum
10
10
  * The actual HOC.
11
11
  * @param {Object} props The component props.
12
12
  * @returns {JSX}
13
- */var WithWidgetSettings=function WithWidgetSettings(props){var settings=useWidgetSettings(widgetId,index);return/*#__PURE__*/React.createElement(WrappedComponent,_extends({widgetSettings:settings},props));};var displayName=WrappedComponent.displayName||WrappedComponent.name||'Component';WithWidgetSettings.displayName="WithWidgetSettings(".concat(displayName,")");return WithWidgetSettings;}
13
+ */var WithWidgetSettings=function WithWidgetSettings(props){var settings=useWidgetSettings(widgetId,index);return React.createElement(WrappedComponent,_extends({widgetSettings:settings},props));};var displayName=WrappedComponent.displayName||WrappedComponent.name||'Component';WithWidgetSettings.displayName="WithWidgetSettings(".concat(displayName,")");return WithWidgetSettings;}
@@ -8,4 +8,4 @@ function _extends(){_extends=Object.assign||function(target){for(var i=1;i<argum
8
8
  * The actual HOC.
9
9
  * @param {Object} props The component props.
10
10
  * @returns {JSX}
11
- */var WithWidgetStyles=function WithWidgetStyles(props){var styles=useWidgetStyles(widgetId,index);return/*#__PURE__*/React.createElement(WrappedComponent,_extends({widgetStyles:styles},props));};var displayName=WrappedComponent.displayName||WrappedComponent.name||'Component';WithWidgetStyles.displayName="WithWidgetStyles(".concat(displayName,")");return WithWidgetStyles;}
11
+ */var WithWidgetStyles=function WithWidgetStyles(props){var styles=useWidgetStyles(widgetId,index);return React.createElement(WrappedComponent,_extends({widgetStyles:styles},props));};var displayName=WrappedComponent.displayName||WrappedComponent.name||'Component';WithWidgetStyles.displayName="WithWidgetStyles(".concat(displayName,")");return WithWidgetStyles;}
@@ -0,0 +1 @@
1
+ export{default as useLongPress}from"./useLongPress";export{default as useScrollDirectionChange}from"./useScrollDirectionChange";
@@ -0,0 +1,68 @@
1
+ import { MouseEvent as ReactMouseEvent, TouchEvent as ReactTouchEvent } from 'react';
2
+
3
+ export interface LongPressHandlers {
4
+ /**
5
+ * Attach to `onMouseDown` event.
6
+ */
7
+ onMouseDown: (e: ReactMouseEvent | TouchEvent) => void;
8
+
9
+ /**
10
+ * Attach to `onTouchStart` event.
11
+ */
12
+ onTouchStart: (e: ReactTouchEvent | TouchEvent) => void;
13
+
14
+ /**
15
+ * Attach to `onMouseUp` event.
16
+ */
17
+ onMouseUp: (e: ReactMouseEvent | TouchEvent) => void;
18
+
19
+ /**
20
+ * Attach to `onMouseLeave` event.
21
+ */
22
+ onMouseLeave: (e: ReactMouseEvent | TouchEvent) => void;
23
+
24
+ /**
25
+ * Attach to `onTouchEnd` event.
26
+ */
27
+ onTouchEnd: (e: ReactTouchEvent | TouchEvent) => void;
28
+
29
+ /**
30
+ * Attach to `onContextMenu` event to prevent the native context menu.
31
+ */
32
+ onContextMenu: (e: MouseEvent) => void;
33
+ }
34
+
35
+ export interface UseLongPressOptions {
36
+ /**
37
+ * Duration in milliseconds to trigger long press.
38
+ * @default 1000
39
+ */
40
+ threshold?: number;
41
+
42
+ /**
43
+ * Called when the press starts.
44
+ */
45
+ onStart?: (e: ReactMouseEvent | ReactTouchEvent) => void;
46
+
47
+ /**
48
+ * Called when the long press completes.
49
+ */
50
+ onFinish?: (e: ReactMouseEvent | ReactTouchEvent) => void;
51
+
52
+ /**
53
+ * Called when the press is cancelled before the threshold.
54
+ */
55
+ onCancel?: (e: ReactMouseEvent | ReactTouchEvent) => void;
56
+ }
57
+
58
+ /**
59
+ * Custom hook to handle long press interactions.
60
+ *
61
+ * @param callback Function to call on long press.
62
+ * @param options Configuration and lifecycle callbacks.
63
+ * @returns An object containing event handlers for mouse and touch events.
64
+ */
65
+ export default function useLongPress(
66
+ callback: (e: ReactMouseEvent | ReactTouchEvent) => void,
67
+ options?: UseLongPressOptions
68
+ ): LongPressHandlers;
@@ -0,0 +1,13 @@
1
+ // @ts-check
2
+ import{useRef,useCallback}from'react';/** @typedef {import('./useLongPress').LongPressHandlers} LongPressHandlers */ /** @typedef {import('./useLongPress').UseLongPressOptions} UseLongPressOptions */ /**
3
+ * Prevents the default context menu from appearing on long press.
4
+ * @param {MouseEvent} e The event object.
5
+ */var preventContextMenu=function preventContextMenu(e){e.preventDefault();};// eslint-disable-next-line valid-jsdoc
6
+ /**
7
+ * Custom hook to handle long press interactions.
8
+ *
9
+ * @param {(e: Event) => void} callback - Function to call on long press.
10
+ * @param {UseLongPressOptions} [options={}] - Configuration and lifecycle callbacks.
11
+ * @returns {LongPressHandlers} An object containing event handlers for mouse and touch events.
12
+ */export default function useLongPress(callback){var _ref=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},_ref$threshold=_ref.threshold,threshold=_ref$threshold===void 0?1000:_ref$threshold,onStart=_ref.onStart,onFinish=_ref.onFinish,onCancel=_ref.onCancel;var timerRef=useRef(null);var triggeredRef=useRef(false);var start=useCallback(function(e){if(onStart)onStart(e);triggeredRef.current=false;timerRef.current=setTimeout(function(){callback(e);triggeredRef.current=true;if(onFinish)onFinish(e);},threshold);},[onStart,threshold,callback,onFinish]);var cancel=useCallback(function(e){clearTimeout(timerRef.current);if(!triggeredRef.current&&onCancel){onCancel(e);}},[onCancel]);return{onMouseDown:start,onTouchStart:start,onMouseUp:cancel,onMouseLeave:cancel,onTouchEnd:cancel,// prevents right-click or long-press menu
13
+ onContextMenu:preventContextMenu};}